54
обучение глубоких сетей Сергей Николенко 1,2 Зимняя школа НИУ ВШЭ, 4 февраля 2017 1 Петербургское отделение математического института им. В.А. Стеклова РАН, Санкт-Петербург 2 Национальный исследовательский университет Высшая школа экономики, Санкт-Петербург Random facts: 4 февраля 1703 г. в Эдо сорок шесть из сорока семи ронинов совершили сэппуку. 4 февраля 1945 г. началась Ялтинская конференция. 4 февраля 2004 г. был запущен Facebook.

Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обучение глубоких сетей

Сергей Николенко1,2

Зимняя школа НИУ ВШЭ, 4 февраля 2017

1Петербургское отделение математического института им. В.А. Стеклова РАН, Санкт-Петербург2Национальный исследовательский университет Высшая школа экономики, Санкт-Петербург

Random facts:• 4 февраля 1703 г. в Эдо сорок шесть из сорока семи ронинов совершили сэппуку.• 4 февраля 1945 г. началась Ялтинская конференция.• 4 февраля 2004 г. был запущен Facebook.

Page 2: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

teaser

• 10 лет назад в машинном обучении началась революция.• Нейронные сети были давно, но обучать глубокие сети неумели.

• А теперь — научились.• И это перевернуло весь мир машинного обучения!• Теперь практически во всех областях лучшие результатыполучаются глубокими нейронными сетями.

2

Page 3: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

teaser

• Обработка изображений:

2

Page 4: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

teaser

• В том числе в реальном времени:

2

Page 5: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

teaser

• Распознавание речи:

2

Page 6: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

teaser

• Обработка естественного языка:

2

Page 7: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

teaser

• Достижения, ранее казавшиеся немыслимыми:

2

Page 8: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

план

• Что же такое глубокие нейронные сети, как они работают ипочему так хороши?

• Наш план:(1) в чём была проблема с AI в целом и нейронными сетями в

частности;(2) что изменилось, в чём заключается революция;(3) какие бывают архитектуры современных глубоких сетей.

3

Page 9: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

строение мозга

• Компьютер считает быстрее человека, но гораздо хуже• понимает естественный язык,• распознаёт изображения, узнаёт людей (это уже не совсем так),• обучается в широком смысле этого слова и т.д...

• Почему так? Как человек всего этого добивается?• В мозге много нейронов; каждый нейрон:

• через дендриты получает сигнал от других нейронов;• время от времени запускает сигнал по аксону;• через синапсы сигнал аксона доходит до дендритов другихнейронов.

4

Page 10: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

строение мозга

• Нейрон время от времени, стохастически, выдаёт сигналы.• Всего нейронов очень много: 1011 нейронов, в среднем 7000связей у каждого, т.е. 1015 синапсов.

• Но firing rate от 10 до 200 герц, и цепочки короткие.

4

Page 11: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обучение признаков

• Другая сторона вопроса – обучение признаков.• Мозг очень хорошо умеет обучаться на очень-оченьмаленькой выборке данных.

• И может адаптироваться к новым источникам информации.• Как он это делает? Можем ли мы сделать так же?

5

Page 12: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обучение признаков

• Системы обработки неструктурированной информациивыглядят обычно так:

вход → признаки → классификатор

• Люди много десятилетий пытались придумать хорошиепризнаки:

• MFCC для распознавания речи;• SIFT для обработки изображений;• ...

• Задача feature engineering: как сделать такие признаки?• Но, может быть, можно найти признаки автоматически? Мозгведь это как-то делает...

5

Page 13: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

пластичность

• Третий аспект — пластичность мозга.

• Она показывает, что есть единый алгоритм обучения,который можно применять к самым разным ситуациям.

6

Page 14: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

суть происходящего

• Вообще говоря, всё, что мы делаем в машинном обучении, —это аппроксимация и оптимизация функций.

• Например:• есть функция из картинок в то, что на них изображено;• или ещё проще: бинарная функция из заданной пикселямикартинки в один бит, «котик или не котик»;

• но функция, мягко скажем, довольно сложная; задана в видедатасета; как нам её реализовать?

• Обычный подход в машинном обучении:• строим какой-то класс моделей, обычно параметрический;• и подгоняем параметры так, чтобы модель хорошо описываладанные;

• то есть оптимизируем какую-то функцию ошибки или функциюкачества.

• Нейронные сети — это очень мощный и гибкий класс такихмоделей; сложность в том, как же обучить их параметры.

7

Page 15: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

история ann

• Давайте попробуем как в природе: есть связанные междусобой нейроны, которые передают друг другу сигналы.

• McCulloch, Pitts, 1943: идея.• Идею искусственных сетей, похожих на современные (даже снесколькими уровнями), предлагал ещё Алан Тьюринг (1948).

• Rosenblatt, 1958: перцептрон (один искусственный нейрон).• Тогда же появился алгоритм обучения градиентным спуском.

8

Page 16: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

история ann

• 1960-е годы: изучали перцептроны.• (Minsky, Papert, 1969): XOR нельзя моделироватьперцептроном.

• Это почему-то восприняли как большую проблему, котораяставит крест на нейронных сетях.

• (Brison, Hoback, 1969): предложили алгоритм обратногораспространения ошибки (backpropagation).

• (Hinton, 1974): переоткрыл backpropagation, с тех пор он сталпопулярным.

• Во второй половине 1970-х появились многоуровневые ANN,была разработана современная теория.

• Глубокие модели появились в первой половине 1980-х гг.!Это вообще не очень хитрая идея сама по себе.

8

Page 17: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

история ann

• Но к началу 1990-х решили, что нейронные сетииспользовать смысла нет, и началась «вторая зима».

• Это было потому, что тогда ни математически, нивычислительно не могли нормально обучить большиемодели.

• Нужно было обучать сети неделями, а качество, например, нараспознавании речи проигрывало HMM, в других задачахпроигрывало другим методам.

• John Denker, 1994: «neural networks are the second best way ofdoing just about anything».

8

Page 18: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

история ann

• Революция deep learning начинается в 2006: в группеДжеффри Хинтона изобрели Deep Belief Networks (DBN).

• Основная идея: научились делать обучение без учителя,выделять признаки (при помощи машин Больцмана, RBM;появились в 1983), использовать это как предобучение.

• Компьютеры стали мощнее, появились способы передатьвычисления на GPU, и вычислительно мы смоглиобрабатывать гораздо более объёмные датасеты, которыекак раз стали доступными.

• А потом появились новые методы регуляризации (дропаут),и RBM с предобучением тоже стали не очень нужны.

• Вот это и есть основные компоненты революции глубокогообучения. Осталось только понять, что всё это значит. :)

8

Page 19: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

перцептрон

• Один нейрон обычно моделируется вот так:

• Линейная комбинация входов, потом нелинейность:

𝑦 = 𝑓(𝑤⊤𝑥) = 𝑓 (∑𝑖

𝑤𝑖𝑥𝑖) .

9

Page 20: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

перцептрон

• Нелинейности бывают разные, и простые работают не хужесложных!

9

Page 21: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

какие бывают архитектуры сетей

• Из нейронов складывается сеть, в которой выходы однихнейронов подают на вход другим.

• Например, классическая feedforward сеть:

10

Page 22: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

какие бывают архитектуры сетей

• Глубокая сеть — это просто сеть любой архитектуры, вкоторой несколько уровней.

• Нет никакой магии, конструкция очень простая иестественная.

• Проблема была в том, что глубокие сети никак не хотелиобучаться...

• ...а, собственно, как обучать нейронные сети?

10

Page 23: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

граф вычислений и обучение

• Рассмотрим сеть как граф вычислений; например, дляфункции 𝑓(𝑥, 𝑦) = 𝑥2 + 𝑥𝑦 + (𝑥 + 𝑦)2:

11

Page 24: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

граф вычислений и обучение

• Самая главная идея: по графу вычислений можно посчитатьпроизводную/градиент как производную композиции:

• Очень просто, но очень мощно: теперь можно делать...11

Page 25: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

граф вычислений и обучение

• ...градиентный спуск!• Главный метод оптимизации сложных функций: сдвигаемсяв сторону градиента (при максимизации) или обратную ему(при минимизации):

𝑤 ∶= 𝑤 − 𝜂∇𝑤𝑓.

• Есть масса вариантов и улучшений:• как подбирать скорость градиентного спуска;• метод моментов;• адаптивные методы и так далее.

• Но суть именно такая: считаем градиент, сдвигаемся.

11

Page 26: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

граф вычислений и обучение

• Библиотеки глубокого обучения (theano, TensorFlow) — этобиблиотеки для автоматического дифференцирования.

• Они считают производные в графах вычислений.• И этого оказывается достаточно, чтобы реализоватьобучение даже самых сложных нейронных сетей.

• Современные сети отличаются от тех, что раньше неработали:

• очень большими датасетами;• методами регуляризации (dropout, batch normalization);• быстрым и эффективным обучением.

• Но по сути это та же идея, тот же формализм!

11

Page 27: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

глубокое обучение и gpu

• Важное замечание об эффективности: не простокомпьютеры стали быстрее, но ещё и обучение стали делатьна GPU (видеокартах):

• основные операции хорошо векторизуются, т.е.представляются в виде умножения матриц;

• GPU предназначены для того, чтобы очень эффективно делатьумножение больших матриц (графика);

• они добиваются этого большой параллелизацией, большимbandwidth и большим кэшем.

• Сейчас глубокое обучение — не меньший двигательпрогресса GPU, чем компьютерные игры и графика.

12

Page 28: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обработка изображений

• А теперь давайте перейдём к сладкому: к архитектурам иинтересным применениям глубоких сетей.

• Для обработки изображений главный инструмент —свёрточные сети:

• Очень старая идея, группа ЛеКуна их разрабатывала с конца1980-х.

13

Page 29: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обработка изображений

• Смысл свёрточной сети – применять одни и те же фильтры кразным частям картинки.

• Разобьём картинку на окна:

13

Page 30: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обработка изображений

• Смысл свёрточной сети – применять одни и те же фильтры кразным частям картинки.

• Разобьём картинку на окна:

13

Page 31: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обработка изображений

• Применим к каждому окну маленькую нейронную сеть:

13

Page 32: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обработка изображений

• Потом сжимаем, выбирая максимум по небольшим окнам(max-pooling).

13

Page 33: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обработка изображений

• И потом уже делаем предсказание обычной сетью:

• Добавление новых уровней увеличивает способность кобобщению.

13

Page 34: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обработка изображений

• Можно и посмотреть, где именно находятся части картинки,вызывающие активацию тех или иных признаков, т.е. можноаннотировать картинки:

13

Page 35: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

автокодировщики

• Автокодировщики (autoencoders) отображают вход в себя:

• Шумоподавляющие (denoising) автокодировщики: давайтеподадим искажённый вход, а восстанавливать будемнормальный.

• Используются обычно для выделения хороших признаков.

14

Page 36: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

рекуррентные сети

• Рекуррентные сети решают задачи, связанные собработкой последовательностей.

15

Page 37: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

рекуррентные сети

• Классические рекуррентные сети имеют скрытое состояние иматрицы весов, которые меняют состояние в зависимости отпредыдущего состояния и входа:

15

Page 38: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

рекуррентные сети

• Но у таких сетей проблемы с памятью: она экспоненциальнозатухает.

• LSTM и GRU — специальные «макро-нейроны», которыесодержат ячейки памяти в явном виде:

• Из них сейчас делается большинство рекуррентных сетей,хотя есть и другие идеи (SC-RNN).

• И тоже несколько слоёв обучаются замечать болеевысокоуровневые зависимости.

• Современная обработка текстов делается на рекуррентныхсетях из LSTM/GRU (или свёрточных...).

15

Page 39: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

порождение текста буква за буквой

• Пример: случайное порождение текста из обученной на русскоязычнойВикипедии небольшой RNN из трёх LSTM-слоёв.

• Низкая дисперсия даёт монолог Лаки из «В ожидании Годо»:

обещал, на рождество, но спустя семь лет. имя главного командования в составесоветского союза с 1976 года. после проведения в 1992 году в составе советскогосоюза (1977). в 1967 году в составе советского союза состоялся в 1952 году в составесоветско-финской войны 1877 - 1877 годов. в 1966 году в составе советского союзас 1965 года по 1977 год...

• При среднем уровне получается что-то похожее на разумный текст:

обещал, на рождество, но спустя семь лет. имя главного рода собственно вновьобразовалась в россии и народном состоянии. после присказа с постановлениемсоюза писателей россии и генеральной диссертации о спортивном училище с 1980года. в 1970-х годах был основан в составе комитета высшего совета театра впольши. в 1957 - 1962 годах - начальник батальона сан-аухаров...

• А при большой дисперсии — хлебниковская заумь:

обещал, на рождество, но спустя семь лет. имя главы философии пововпели nol-lнози - врайу-7 на луосече. человеческая восстания покторов извоенного чомпдеи э. дроссенбурга, … карл уним-общекрипских. эйелем хфечак от этого спискасравнивала имущно моря в юнасториансический индристское носительскихженатов в церкви испании....

16

Page 40: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

машинный перевод

• Машинный перевод — очень хорошая задача:• очевидно нужна;• очень высокого уровня, идеальный перевод вряд ли возможенбез «понимания»;

• но можно даже квантифицировать результаты.

• По сути это задача обучения «последовательность впоследовательность».

• Можно делать обычными двунаправленными LSTM(Bahdanau et al. 2014), и получается неплохо, но разве мыпереводим слово за словом?

17

Page 41: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

машинный перевод

• Машинный перевод — архитектура encoder-decoder:

18

Page 42: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

машинный перевод

• Машинный перевод — архитектура encoder-decoder совниманием:

19

Page 43: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

google translate

• 26 сентября 2016: Wu et al., Google’s Neural MachineTranslation System: Bridging the Gap between Human andMachine Translation:

• та же базовая архитектура: encoder, decoder, attention;• глубокие RNN (8 уровней для encoder и decoder);• несколько трюков (residual connections, двунаправленныйпервый уровень):

20

Page 44: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

чатботы

• Диалоговые модели — тоже encoder-decoder, но теперьпоследовательно со скрытым состоянием:

21

Page 45: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

show, attend, and tell

• Если объединить RNN и CNN, а потом добавить внимание,можно делать подписи к картинкам (Show, Attend, and Tell):

22

Page 46: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

порождающие соперничающие сети

• Мы до сих пор разрабатывали модели, которые отвечают навопросы.

• Часто бинарные («это котик?») или с конкретнымичисловыми ответами («где тут котик?»).

• Но как сделать сеть, которая может порождать объекты, а нетолько классифицировать? Например, нарисовать котикаили человеческое лицо.

• Автокодировщики сами по себе не помогают: они сжимают 𝑥до скрытого состояния и разжимают обратно, но как взять«из воздуха» разумную комбинацию скрытых состояний?

23

Page 47: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

порождающие соперничающие сети

• GAN (Generative Adversarial Network): пусть• одна сеть будет порождать объекты (рисовать картинки),• а другая будет пытаться отличить сгенерированные объекты отнастоящих.

23

Page 48: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

порождающие соперничающие сети

• В результате получаются отличные генераторы и дажелинейная структура в пространстве признаков:

23

Page 49: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

порождающие соперничающие сети

• И прямой путь в пространстве признаков приводит кразумному порождению объектов по дороге:

23

Page 50: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

обучение с подкреплением

• Обучение с подкреплением: как учимся мы сами?• Мы далеко не всегда знаем набор правильных ответов, мыпросто делаем то или иное действие и получаем результат.

• Как обучить наилучшую стратегию? Обучение сподкреплением пытается обучить функцию состояния 𝑉 (𝑠)или 𝑄(𝑠, 𝑎).

• Оказалось, что можно моделировать эти функции глубокиминейронными сетями.

24

Page 51: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

deep q-learning

• Mnih et al., 2015: обучаем компьютер играть в классическиеигры (Atari 2600 из Arcade Learning Environment), подавая навход только картинку из игры (210 × 160 RGB видео, 60 герц) инаграды (очки).

• Во многих играх получается лучше самых крутых людей. Нопока не во всех. И обучение очень медленное.

25

Page 52: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

alphago

• AlphaGo — глубокие сети, обучающиеся играть в го:

• Март 2016 г. — матч с Ли Седолем:

26

Page 53: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

будет ли strong ai?

• И напоследок: что там с искусственным интеллектом?• Когда будет Strong AI? Будет ли он опасен для человечества?• Насколько то, что мы делаем сейчас, вообще похоже на AI?

27

Page 54: Обучение глубоких сетейsergey/slides/N17_HSEWinterSchoolDL.pdf · • 10 лет назад в машинном обучении началась революция

спасибо!

Спасибо за внимание!

28