Лекция №13 "Глубокие нейронные сети"

41
Лекция n3 Глубокие нейронные сети Нестеров Павел 17 декабря 2014 г.

Upload: technosphere1

Post on 18-Jul-2015

172 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Лекция №13 "Глубокие нейронные сети"

Лекция n3Глубокие нейронные сети

Нестеров Павел

17 декабря 2014 г.

Page 2: Лекция №13 "Глубокие нейронные сети"

План лекции

Вспоминаем пройденное

Проблемы алгоритма обратного распространения ошибки

Предобучение глубокой нейронной сети

Другие виды глубоких сетей

Некоторые практические применения глубоких сетей

1 / 40

Page 3: Лекция №13 "Глубокие нейронные сети"

Многоснойная нейронная сеть прямого распространения

Рис.: Архитектура сети с двумя скрытыми слоями1

1Neural Networks and Learning Machines (3rd Edition), Simon O. Haykin2 / 40

Page 4: Лекция №13 "Глубокие нейронные сети"

Ограниченная машина Больцмана

∆wij = η(M[v(k)i hj

]data−M [vihj ]model

)∆ai = η

(v(k)i −M [vi ]model

)∆bj = η

(M [hj ]data −M [hj ]model

)

3 / 40

Page 5: Лекция №13 "Глубокие нейронные сети"

Contrastive-divergence

Рис.: Процесс сбора достаточной статистики2

∂ lnP(v (k)

)∂wij

=M∑t

v(k)i h

(t)j P

(h(t)|v (k)

)−

N∑r

M∑t

v(r)i h

(t)j P

(h(t), v (k)

)= M

[v(k)i hj

]data−M [vihj ]model

2https://class.coursera.org/neuralnets-2012-001/lecture4 / 40

Page 6: Лекция №13 "Глубокие нейронные сети"

Семплирование по Гиббсу

Семплирование по Гиббсу не требуется явно выраженное совместноераспределение, а нужны лишь условные вероятности для каждойпеременной, входящей в распределение. Алгоритм на каждом шагеберет одну случайную величину и выбирает ее значение при условиификсированных остальных. Можно показать, чтопоследовательность получаемых значений образуют возвратнуюцепь Маркова, устойчивое распределение которой является как разискомым совместным распределением.

I p0 =∑M

t v(k)i h

(t)j P

(h(t)|v (k)

)- это оценка реального

распределения основываясь на данныхI pk→∞ =

∑Nr

∑Mt v

(r)i h

(t)j P

(h(t), v (r)

)- оценка реального

распределения с помощью семплирования по Гиббсу, котороенесомненно когда то сойдется в реальному3

I∂ lnP(v (k))

∂wij= p0 − pk→∞ = 0

3http://www.ini.rub.de/data/documents/tns/masterthesis janmelchior.pdf5 / 40

Page 7: Лекция №13 "Глубокие нейронные сети"

Зачем нам глубокие сети?

Рис.: Глубокая нейронная сеть4

I Согласно стандартной модели зрительной коры головногомозга5 считается, что каждый следующий нейронный слойвыучивает новый уровень абстракции данных 6 (напримерштрихи, пятна, поверхности, объекты);

I мало того, было показано, что добавление нового слоя в модельулучшает нижнюю вариационную границу логарифмаправдоподобия генеративной модели7.

4Из предентации Scale Deep Learning, Jeff Dean5Hubel and Wiesel 1962; Serre et al. 2005; Ranzato et al. 20076Palmer 1999; Kandel et al. 20007Learning multiple layers of representation (G. Hinton, 2007)

6 / 40

Page 8: Лекция №13 "Глубокие нейронные сети"

Паралич сети, эксперимент

input = 841 layer -5 layer -4 layer -3 layer -2 layer -1 outputneurons 100 100 100 100 100 26

7 / 40

Page 9: Лекция №13 "Глубокие нейронные сети"

Backprop, прямой проход

I y(n)k = σ

(n)k

(∑Nn−1

i=0 w(n)ij x

(n)i

)I выходные значения каждого нейрона

лежат в строго заданных пределах

Прямой проход в нейросети8

8https://class.coursera.org/neuralnets-2012-001/lecture8 / 40

Page 10: Лекция №13 "Глубокие нейронные сети"

Backprop, обратный проход, #1

Рис.: Схема прямого (нелинейного) и обратного (линейного)распространения сигнала в сети

9 / 40

Page 11: Лекция №13 "Глубокие нейронные сети"

Backprop, обратный проход, #2

Вспомним формулу градиента для скрытых слоев:

∂E

∂w(n)ij

= x(n−1)i

∑k

w(n+1)ik

∂E

∂z(n+1)k

∂ynj

∂znj

Выполнив замену δ(n)k = ∂E

∂w(n)ij

, получим следующее:

∂E

∂w(n)ij

= x(n−1)i

∂ynj

∂znj

∑k

w(n+1)ik δ

(n)k =

∑k

ckδ(n)k

I в итоге получилась линейная функция от δ(n)k .

I δ(n)k - локальный градиент/ошибка нейрона (она как раз и

распространяется обратно)

10 / 40

Page 12: Лекция №13 "Глубокие нейронные сети"

Backprop, затухание градиента, #1

Рассмотрим в качестве функции активации функцию логистическогосигмоида:

y(z) =1

1 + e−z

∂y(z)

∂z= y(z) · (1− y(z))

Построим график значений производной:

I максимум равен σmax = 0.25 = 14

11 / 40

Page 13: Лекция №13 "Глубокие нейронные сети"

Backprop, затухание градиента, #2

Рассмотрим простую сеть:

Вычислим градиенты весов для E (~y , ~t) = 12

∑j(yj − tj)

2:

∂E

∂w(n)ij

= x(n−1)i

∂E

∂y(n)j

∂y(n)j

∂z(n)j

∂E

∂w5= ???

12 / 40

Page 14: Лекция №13 "Глубокие нейронные сети"

Backprop, затухание градиента, #3

Рассмотрим простую сеть:

Вычислим градиенты весов для E (~y , ~t) = 12

∑j(yj − tj)

2:

∂E

∂w(n)ij

= x(n−1)i

∑k

w(n+1)ik

∂E

∂z(n+1)k

∂ynj

∂znj

∂E

∂w5= y4(y5 − t)y5(1− y5) ≤ y4(y5 − t)

1

4∂E

∂w4= ???

13 / 40

Page 15: Лекция №13 "Глубокие нейронные сети"

Backprop, затухание градиента, #4Рассмотрим простую сеть:

Вычислим градиенты весов для E (~y , ~t) = 12

∑j(yj − tj)

2:

∂E

∂w5= y4(y5 − t)y5(1− y5) ≤ y4(y5 − t)

1

4∂E

∂w4= y3w5(y5 − t)y4(1− y4)y5(1− y5) ≤ y3w5(y5 − t)

1

42

∂E

∂w3≤ y2w4w5(y5 − t)

1

43

∂E

∂w2≤ y1w3w4w5(y5 − t)

1

44

∂E

∂w1≤ xw2w3w4w5(y5 − t)

1

45

14 / 40

Page 16: Лекция №13 "Глубокие нейронные сети"

Backprop, паралич сети, выводы

I значение градиента затухает экспоненциально в принципе ⇒сходимость замедляется

I при малых значениях весов этот эффект усиливаетсяI при больших значения весов значение градиента может

экспоненциально возрастать ⇒ алгоритм расходитсяI не глубокие сети не сильно страдают от этого

15 / 40

Page 17: Лекция №13 "Глубокие нейронные сети"

Проблема паралича сети, визуализация

(a) Исходное изображение (b) Образ в первом скрытом слое

Рис.: Оригинал и его образ в первом скрытом слое нейронной сети приколичестве нейронов нем равном размерности входного образа приинициализации весов wij ∼ N (0, 0.01)

16 / 40

Page 18: Лекция №13 "Глубокие нейронные сети"

Решение проблемы паралича сети, идея, #1

I А что если инициализировать веса таким образом, что бы образоригинального изображения в скрытом пространстве описывалбы прообраз максимально точно?

I Есть идеи?

17 / 40

Page 19: Лекция №13 "Глубокие нейронные сети"

Решение проблемы паралича сети, идея, #2I А что если инициализировать веса таким образом, что бы образ

оригинального изображения в скрытом пространстве описывалбы прообраз максимально точно?

I Именно это и делает ограниченная машина Больцмана

18 / 40

Page 20: Лекция №13 "Глубокие нейронные сети"

Жадный алгоритм предобучения

Собственно алгоритм1. последовательно натренировать каждую пару слоев в глубокой

сети (возможно кроме первого и второго скрытого слоя отвыходного слоя);

2. осуществить тонкую настройку весов, используя алгоритмобратного распространения ошибки (fine turning).

Некоторые важные преимущества:I скорость сходимости;I качество (в смысле выбранной меры);I возможно использовать не только размеченные образы для

обучения с учителем (как? примеры? )

19 / 40

Page 21: Лекция №13 "Глубокие нейронные сети"

Deep directed network

Для сети с одним видимым слоем и тремя скрытыми функцияправдоподобия выглядит следующим образом:

p(h1, h2, h3, v |W ) =∏i

Ber(vi |σ

(hT1 w0i

))·∏j

Ber(h1j |σ

(hT2 w1i

))·

·∏k

Ber(h2k |σ

(hT3 w2i

))·∏l

Ber (h3l |w3l)

20 / 40

Page 22: Лекция №13 "Глубокие нейронные сети"

Deep Boltzmann machine

Для сети с одним видимым слоем и тремя скрытыми функцияправдоподобия выглядит следующим образом:

p(h1, h2, h3, v |W ) =1

Z· exp

∑ij

vihijw1ij+

+∑jk

h1jh2kw2jk +∑kl

h2kh3lw3kl

21 / 40

Page 23: Лекция №13 "Глубокие нейронные сети"

Deep belief network

Для сети с одним видимым слоем и тремя скрытыми функцияправдоподобия выглядит следующим образом:

p(h1, h2, h3, v |W ) =∏i

Ber(vi |σ

(hT1 w0i

))·∏j

Ber(h1j |σ

(hT2 w1i

))·

· 1Z

exp

(∑kl

h2kh3lw3kl

)

22 / 40

Page 24: Лекция №13 "Глубокие нейронные сети"

Autoencoder

Рис.: Архитектура автоассоциатора: при обучении стремятся получитьвыходной вектор x’ наиболее близким к входному вектору x

23 / 40

Page 25: Лекция №13 "Глубокие нейронные сети"

Deep autoencoder

Рис.: Semantic hashing9

9R. Salakhutdinov, G. Hinton24 / 40

Page 26: Лекция №13 "Глубокие нейронные сети"

Discriminative Restricted Boltzmann Machines

Рис.: Classification using Discriminative Restricted Boltzmann Machines10

10H. Larochelle, Y. Bengio25 / 40

Page 27: Лекция №13 "Глубокие нейронные сети"

Deep Discriminative Restricted Boltzmann Machines

Рис.: RBM for MNIST11

11G. Hinton26 / 40

Page 28: Лекция №13 "Глубокие нейронные сети"

Multimodal Deep Boltzmann Machine

Рис.: Image + Text 12,http://videolectures.net/kdd2014_salakhutdinov_deep_learning/

12Srivastava, Salakhutdinov, NIPS 201227 / 40

Page 29: Лекция №13 "Глубокие нейронные сети"

Recurrent Neural Network

Рис.: RNN - это глубокая нейросеть с общими весами во времени 13

13Generating Text with Recurrent Neural Networks, Sutskever, Martens, Hinton28 / 40

Page 30: Лекция №13 "Глубокие нейронные сети"

Convolutional neural network

Рис.: LeNet for MNIST14

I lenet.gif

14Y. LeCunn29 / 40

Page 31: Лекция №13 "Глубокие нейронные сети"

Сжатие размерности пространства, PCA

30 / 40

Page 32: Лекция №13 "Глубокие нейронные сети"

Сжатие размерности пространства, RBM

I rbm features*.png

31 / 40

Page 33: Лекция №13 "Глубокие нейронные сети"

Learning Similarity Measures

Рис.: New similarities in practice 15,http://videolectures.net/kdd2014_salakhutdinov_deep_learning/

15Salakhutdinov and Hinton, AI and Statistics 200732 / 40

Page 34: Лекция №13 "Глубокие нейронные сети"

Neurolinguistic model

Рис.: Deep generative model 16,http://videolectures.net/kdd2014_salakhutdinov_deep_learning/

16Hinton, Salakhutdinov, Science 2006 33 / 40

Page 35: Лекция №13 "Глубокие нейронные сети"

Multimodal data, #1

Рис.: Images from text 17,http://videolectures.net/kdd2014_salakhutdinov_deep_learning/

17Ryan Kiros, 201434 / 40

Page 36: Лекция №13 "Глубокие нейронные сети"

Multimodal data, #2

Рис.: Images from text 18,http://videolectures.net/kdd2014_salakhutdinov_deep_learning/

18Ryan Kiros, 201435 / 40

Page 37: Лекция №13 "Глубокие нейронные сети"

Text from images

Рис.: Text Generated from Imageshttp://videolectures.net/kdd2014_salakhutdinov_deep_learning/

36 / 40

Page 38: Лекция №13 "Глубокие нейронные сети"

Natural language from image

Рис.: Natural Text Generated from Imageshttp://videolectures.net/kdd2014_salakhutdinov_deep_learning/

37 / 40

Page 39: Лекция №13 "Глубокие нейронные сети"

Multimodal Linguistic Regularities, #1

Рис.: Multimodal Linguistic Regularities 19,http://videolectures.net/kdd2014_salakhutdinov_deep_learning/

19Ryan Kiros, 2014 38 / 40

Page 40: Лекция №13 "Глубокие нейронные сети"

Multimodal Linguistic Regularities, #2

Рис.: Multimodal Linguistic Regularities 20,http://videolectures.net/kdd2014_salakhutdinov_deep_learning/

20Ryan Kiros, 2014 39 / 40

Page 41: Лекция №13 "Глубокие нейронные сети"

Вопросы