Машинное обучение 2, весна 2016: deep learning

23
Глубокое обучение по Deep Learning Tutorial by Yann LeCun and Marc’Aurelio Ranzato, ICML 2013 И. Куралёнок, Н. Поваров Яндекс СПб, 2016 И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 1 из 17

Upload: cs-center

Post on 16-Jan-2017

207 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Машинное обучение 2, весна 2016: Deep Learning

Глубокое обучениепо Deep Learning Tutorial by Yann LeCun and Marc’Aurelio

Ranzato, ICML 2013

И. Куралёнок, Н. Поваров

Яндекс

СПб, 2016

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 1 из 17

Page 2: Машинное обучение 2, весна 2016: Deep Learning

Глубокое обучениеОпределение по Simona Ullo

”A relatively recently developed1 set of generative machinelearning techniques that autonomously2 generate high-levelrepresentation3 from raw data sources, and using theserepresentations can perform typical machine learning tasks such asclassification, regression and clustering”

1 back to 80s: learning neural networks — multiple layers withnon-linear transformations(backpropagation)

2 from hand-crafted features to feature learning

3 hierarchical representation increasing level of abstraction

2 + 3 = automated discovery of abstraction

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 2 из 17

Page 3: Машинное обучение 2, весна 2016: Deep Learning

Глубокое обучениеОпределение по Simona Ullo

”A relatively recently developed1 set of generative machinelearning techniques that autonomously2 generate high-levelrepresentation3 from raw data sources, and using theserepresentations can perform typical machine learning tasks such asclassification, regression and clustering”

1 back to 80s: learning neural networks — multiple layers withnon-linear transformations(backpropagation)

2 from hand-crafted features to feature learning

3 hierarchical representation increasing level of abstraction

2 + 3 = automated discovery of abstraction

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 2 из 17

Page 4: Машинное обучение 2, весна 2016: Deep Learning

Глубокое обучениеОпределение по Simona Ullo

”A relatively recently developed1 set of generative machinelearning techniques that autonomously2 generate high-levelrepresentation3 from raw data sources, and using theserepresentations can perform typical machine learning tasks such asclassification, regression and clustering”

1 back to 80s: learning neural networks — multiple layers withnon-linear transformations(backpropagation)

2 from hand-crafted features to feature learning

3 hierarchical representation increasing level of abstraction

2 + 3 = automated discovery of abstraction

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 2 из 17

Page 5: Машинное обучение 2, весна 2016: Deep Learning

Глубокое обучениеОпределение по Simona Ullo

”A relatively recently developed1 set of generative machinelearning techniques that autonomously2 generate high-levelrepresentation3 from raw data sources, and using theserepresentations can perform typical machine learning tasks such asclassification, regression and clustering”

1 back to 80s: learning neural networks — multiple layers withnon-linear transformations(backpropagation)

2 from hand-crafted features to feature learning

3 hierarchical representation increasing level of abstraction

2 + 3 = automated discovery of abstraction

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 2 из 17

Page 6: Машинное обучение 2, весна 2016: Deep Learning

Глубокое обучениеОпределение по Simona Ullo

”A relatively recently developed1 set of generative machinelearning techniques that autonomously2 generate high-levelrepresentation3 from raw data sources, and using theserepresentations can perform typical machine learning tasks such asclassification, regression and clustering”

1 back to 80s: learning neural networks — multiple layers withnon-linear transformations(backpropagation)

2 from hand-crafted features to feature learning

3 hierarchical representation increasing level of abstraction

2 + 3 = automated discovery of abstraction

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 2 из 17

Page 7: Машинное обучение 2, весна 2016: Deep Learning

Что считать достаточно глубоким?Известные методы со сложной решающей функцией

Нейронные сети с 1-мскрытым уровнем

SVM и Kernel методы

Деревья решений

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 3 из 17

Page 8: Машинное обучение 2, весна 2016: Deep Learning

Что считать достаточно глубоким?Графические модели

Графические модели могут быть отнесены к глубокомуобучению, однако:

При конструировании графической модели, мы используемтопологию, чтобы “подсказать” какие факторы можнопостроить (по сути не сама сеть конструирует факторы, амы проверяем гипотезу о полезности фактора для данноймодели)

GPM можно свести к нейронным сетям аля Больцман (мыуже говорили, что NN — это язык).

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 4 из 17

Page 9: Машинное обучение 2, весна 2016: Deep Learning

Что считать достаточно глубоким?Итого

Будем смотреть только на нейронныесети, так как больше ничего не нашли:)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 5 из 17

Page 10: Машинное обучение 2, весна 2016: Deep Learning

Какие фичи хорошие?

ПримерДима и Вячеслав фотографировали друг друга, для размещенияв соц сетях. Нафотографировали 1000 фотографий на фонебелой стены. Фотографии 1000× 1000. Общий объеминформации на диске: 1000 · 1000× 1000× 3 ' 3Gb. А сколькона самом деле там информации?

На лице человека < 50 мышц

3 координаты положения относительно камеры

3 координаты угла поворота

⇒ Итого каждая фотография получается из любой другой, знаядополнительные 56 чисел.2 · 1000× 1000× 3+ 998 · 56× 4 ' 6.2Mb

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 6 из 17

Page 11: Машинное обучение 2, весна 2016: Deep Learning

Какие фичи хорошие?

ПримерДима и Вячеслав фотографировали друг друга, для размещенияв соц сетях. Нафотографировали 1000 фотографий на фонебелой стены. Фотографии 1000× 1000. Общий объеминформации на диске: 1000 · 1000× 1000× 3 ' 3Gb. А сколькона самом деле там информации?

На лице человека < 50 мышц

3 координаты положения относительно камеры

3 координаты угла поворота

⇒ Итого каждая фотография получается из любой другой, знаядополнительные 56 чисел.2 · 1000× 1000× 3+ 998 · 56× 4 ' 6.2Mb

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 6 из 17

Page 12: Машинное обучение 2, весна 2016: Deep Learning

Какие фичи хорошие?

Хотим получить такие фичи. Однако, кажется понятно, что мывряд ли сможем получить их напрямую из цветов на картинке ⇒нужно уметь вытаскивать “более высокий уровень абстракции”.На самом деле, мы скорее идем от обратного:

1 Хочется, например, узнать закрыты глаза или нет

2 Линейной комбинацией его предсказать не получается

⇒ будем надеяться, что получится нелинейно

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 7 из 17

Page 13: Машинное обучение 2, весна 2016: Deep Learning

Идея как сделать инвариантныефакторы

Запихнуть точки в более многомерное пространство так,чтобы была разделимость

Уменьшить размерность так, чтобы разделимость осталась

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 8 из 17

Page 14: Машинное обучение 2, весна 2016: Deep Learning

Идея как сделать инвариантныефакторы

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 9 из 17

Page 15: Машинное обучение 2, весна 2016: Deep Learning

Что такое сверткиИли как работает Kinect

Есть задачка:

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 10 из 17

Page 16: Машинное обучение 2, весна 2016: Deep Learning

Что такое сверткиИли как работает Kinect

Дано: Камера, которая умеет мерять глубину,приделанная к телевизору. Много-много (1млн+)размеченных по схеме картинок.Найти: Как расположены по отношении друг к другуtopside и neckРешение:

Возьмем для каждой точки глубину точек вокруг

Представим их в качестве вектора

По полученному вектору подберем решение (у них деревья,насколько я помню), которое отнесет данную точку ксегменту тела

⇒ Profit!И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 10 из 17

Page 17: Машинное обучение 2, весна 2016: Deep Learning

Объединим свертки и Deep Learning

1 Нормализация (whitening)2 Фильтрация (увеличение размерности)3 Нелинейное преобразование (tanh, (1+ e−x)−1, max, ReLU)4 Пулинг (lq, 1

blog(∑

i ebxi))

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 11 из 17

Page 18: Машинное обучение 2, весна 2016: Deep Learning

Типы слоев в сверточных сетях

Простая однослойная сверткаМногослойная сверткаPooling/subsamplingСложный персептрон в качестве классификатора

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 12 из 17

Page 19: Машинное обучение 2, весна 2016: Deep Learning

Почему все это не переобучаетсяадски

Число связей хоть и велико, но все же не такое большоекак в полносвязных слоях

Мы обучаем “фичи” почти независимо

Число факторов “более высокого уровня абстракции”фиксированно 1

Каждая новая фича зависит от большого числа случайныхотображений, и мы надеемся на ЗБЧ

1грубо говоря у нас жесткое ограничение на число значащих параметровИ. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 13 из 17

Page 20: Машинное обучение 2, весна 2016: Deep Learning

Dropout

Если начальные веса рандомны, то при обучении производныебудут сильно неравномерны. Это приведет к вырождению связейи небольшому числу эффективных зависимостей ⇒ никакихЗБЧ ⇒ Dropout:

1 Добавим в вес связи бернуллевскую случайную компоненту

2 Будем учитывать эту компоненту на этапе обучения (прираспространении ошибки) и/или на этапе работы

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 14 из 17

Page 21: Машинное обучение 2, весна 2016: Deep Learning

Известные результаты успешного DLHandwriting Recognition and OCR (late 1980s to mid 1990s)Supervised convolutional nets operating on pixels

Face & People Detection (early 1990s to mid 2000s)Supervised convolutional nets operating on pixels (YLC 1994,2004, Garcia 2004)

Low-Res Object Recognition: road signs, house numbers (early2010’s)Supervised convolutional net operating on pixels

Speech Recognition II (circa 2011)Deep neural nets for acoustic modeling

Object Recognition II, Semantic Labeling (2012, Hinton,YLC,...)Supervised convolutional nets operating on pixels

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 15 из 17

Page 22: Машинное обучение 2, весна 2016: Deep Learning

Deep learning: что забыли?

Нелинейность: диалоги о нелинейности до сих порведутся, но пока выигрывает ReLUДругие виды сетей: нет им числа: DBN, DBM,любое другое поделие с более 2-х скрытых слоевDL как чистый RL: снимем последний слой сети, ипосмотрим как можно использовать получившиесяфакторы

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 16 из 17

Page 23: Машинное обучение 2, весна 2016: Deep Learning

Что мы сегодня узнали

Нейронные сети единственные из известных видовобучения, способные быть “достаточно глубокими”В глубоком обучении слои распределяют по ролямСверточные сети позволяют использоватьсвязность исходного пространства факторовНейронные сети нашли свое применение вкартинках и голосеЕсть живые библиотеки, которые можноиспользовать для DL на дому

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 17 из 17