View
13
Download
0
Category
Preview:
Citation preview
обучение глубоких сетей
Сергей Николенко1,2
Зимняя школа НИУ ВШЭ, 4 февраля 2017
1Петербургское отделение математического института им. В.А. Стеклова РАН, Санкт-Петербург2Национальный исследовательский университет Высшая школа экономики, Санкт-Петербург
Random facts:• 4 февраля 1703 г. в Эдо сорок шесть из сорока семи ронинов совершили сэппуку.• 4 февраля 1945 г. началась Ялтинская конференция.• 4 февраля 2004 г. был запущен Facebook.
teaser
• 10 лет назад в машинном обучении началась революция.• Нейронные сети были давно, но обучать глубокие сети неумели.
• А теперь — научились.• И это перевернуло весь мир машинного обучения!• Теперь практически во всех областях лучшие результатыполучаются глубокими нейронными сетями.
2
teaser
• Обработка изображений:
2
teaser
• В том числе в реальном времени:
2
teaser
• Распознавание речи:
2
teaser
• Обработка естественного языка:
2
teaser
• Достижения, ранее казавшиеся немыслимыми:
2
план
• Что же такое глубокие нейронные сети, как они работают ипочему так хороши?
• Наш план:(1) в чём была проблема с AI в целом и нейронными сетями в
частности;(2) что изменилось, в чём заключается революция;(3) какие бывают архитектуры современных глубоких сетей.
3
строение мозга
• Компьютер считает быстрее человека, но гораздо хуже• понимает естественный язык,• распознаёт изображения, узнаёт людей (это уже не совсем так),• обучается в широком смысле этого слова и т.д...
• Почему так? Как человек всего этого добивается?• В мозге много нейронов; каждый нейрон:
• через дендриты получает сигнал от других нейронов;• время от времени запускает сигнал по аксону;• через синапсы сигнал аксона доходит до дендритов другихнейронов.
4
строение мозга
• Нейрон время от времени, стохастически, выдаёт сигналы.• Всего нейронов очень много: 1011 нейронов, в среднем 7000связей у каждого, т.е. 1015 синапсов.
• Но firing rate от 10 до 200 герц, и цепочки короткие.
4
обучение признаков
• Другая сторона вопроса – обучение признаков.• Мозг очень хорошо умеет обучаться на очень-оченьмаленькой выборке данных.
• И может адаптироваться к новым источникам информации.• Как он это делает? Можем ли мы сделать так же?
5
обучение признаков
• Системы обработки неструктурированной информациивыглядят обычно так:
вход → признаки → классификатор
• Люди много десятилетий пытались придумать хорошиепризнаки:
• MFCC для распознавания речи;• SIFT для обработки изображений;• ...
• Задача feature engineering: как сделать такие признаки?• Но, может быть, можно найти признаки автоматически? Мозгведь это как-то делает...
5
пластичность
• Третий аспект — пластичность мозга.
• Она показывает, что есть единый алгоритм обучения,который можно применять к самым разным ситуациям.
6
суть происходящего
• Вообще говоря, всё, что мы делаем в машинном обучении, —это аппроксимация и оптимизация функций.
• Например:• есть функция из картинок в то, что на них изображено;• или ещё проще: бинарная функция из заданной пикселямикартинки в один бит, «котик или не котик»;
• но функция, мягко скажем, довольно сложная; задана в видедатасета; как нам её реализовать?
• Обычный подход в машинном обучении:• строим какой-то класс моделей, обычно параметрический;• и подгоняем параметры так, чтобы модель хорошо описываладанные;
• то есть оптимизируем какую-то функцию ошибки или функциюкачества.
• Нейронные сети — это очень мощный и гибкий класс такихмоделей; сложность в том, как же обучить их параметры.
7
история ann
• Давайте попробуем как в природе: есть связанные междусобой нейроны, которые передают друг другу сигналы.
• McCulloch, Pitts, 1943: идея.• Идею искусственных сетей, похожих на современные (даже снесколькими уровнями), предлагал ещё Алан Тьюринг (1948).
• Rosenblatt, 1958: перцептрон (один искусственный нейрон).• Тогда же появился алгоритм обучения градиентным спуском.
8
история ann
• 1960-е годы: изучали перцептроны.• (Minsky, Papert, 1969): XOR нельзя моделироватьперцептроном.
• Это почему-то восприняли как большую проблему, котораяставит крест на нейронных сетях.
• (Brison, Hoback, 1969): предложили алгоритм обратногораспространения ошибки (backpropagation).
• (Hinton, 1974): переоткрыл backpropagation, с тех пор он сталпопулярным.
• Во второй половине 1970-х появились многоуровневые ANN,была разработана современная теория.
• Глубокие модели появились в первой половине 1980-х гг.!Это вообще не очень хитрая идея сама по себе.
8
история ann
• Но к началу 1990-х решили, что нейронные сетииспользовать смысла нет, и началась «вторая зима».
• Это было потому, что тогда ни математически, нивычислительно не могли нормально обучить большиемодели.
• Нужно было обучать сети неделями, а качество, например, нараспознавании речи проигрывало HMM, в других задачахпроигрывало другим методам.
• John Denker, 1994: «neural networks are the second best way ofdoing just about anything».
8
история ann
• Революция deep learning начинается в 2006: в группеДжеффри Хинтона изобрели Deep Belief Networks (DBN).
• Основная идея: научились делать обучение без учителя,выделять признаки (при помощи машин Больцмана, RBM;появились в 1983), использовать это как предобучение.
• Компьютеры стали мощнее, появились способы передатьвычисления на GPU, и вычислительно мы смоглиобрабатывать гораздо более объёмные датасеты, которыекак раз стали доступными.
• А потом появились новые методы регуляризации (дропаут),и RBM с предобучением тоже стали не очень нужны.
• Вот это и есть основные компоненты революции глубокогообучения. Осталось только понять, что всё это значит. :)
8
перцептрон
• Один нейрон обычно моделируется вот так:
• Линейная комбинация входов, потом нелинейность:
𝑦 = 𝑓(𝑤⊤𝑥) = 𝑓 (∑𝑖
𝑤𝑖𝑥𝑖) .
9
перцептрон
• Нелинейности бывают разные, и простые работают не хужесложных!
9
какие бывают архитектуры сетей
• Из нейронов складывается сеть, в которой выходы однихнейронов подают на вход другим.
• Например, классическая feedforward сеть:
10
какие бывают архитектуры сетей
• Глубокая сеть — это просто сеть любой архитектуры, вкоторой несколько уровней.
• Нет никакой магии, конструкция очень простая иестественная.
• Проблема была в том, что глубокие сети никак не хотелиобучаться...
• ...а, собственно, как обучать нейронные сети?
10
граф вычислений и обучение
• Рассмотрим сеть как граф вычислений; например, дляфункции 𝑓(𝑥, 𝑦) = 𝑥2 + 𝑥𝑦 + (𝑥 + 𝑦)2:
11
граф вычислений и обучение
• Самая главная идея: по графу вычислений можно посчитатьпроизводную/градиент как производную композиции:
• Очень просто, но очень мощно: теперь можно делать...11
граф вычислений и обучение
• ...градиентный спуск!• Главный метод оптимизации сложных функций: сдвигаемсяв сторону градиента (при максимизации) или обратную ему(при минимизации):
𝑤 ∶= 𝑤 − 𝜂∇𝑤𝑓.
• Есть масса вариантов и улучшений:• как подбирать скорость градиентного спуска;• метод моментов;• адаптивные методы и так далее.
• Но суть именно такая: считаем градиент, сдвигаемся.
11
граф вычислений и обучение
• Библиотеки глубокого обучения (theano, TensorFlow) — этобиблиотеки для автоматического дифференцирования.
• Они считают производные в графах вычислений.• И этого оказывается достаточно, чтобы реализоватьобучение даже самых сложных нейронных сетей.
• Современные сети отличаются от тех, что раньше неработали:
• очень большими датасетами;• методами регуляризации (dropout, batch normalization);• быстрым и эффективным обучением.
• Но по сути это та же идея, тот же формализм!
11
глубокое обучение и gpu
• Важное замечание об эффективности: не простокомпьютеры стали быстрее, но ещё и обучение стали делатьна GPU (видеокартах):
• основные операции хорошо векторизуются, т.е.представляются в виде умножения матриц;
• GPU предназначены для того, чтобы очень эффективно делатьумножение больших матриц (графика);
• они добиваются этого большой параллелизацией, большимbandwidth и большим кэшем.
• Сейчас глубокое обучение — не меньший двигательпрогресса GPU, чем компьютерные игры и графика.
12
обработка изображений
• А теперь давайте перейдём к сладкому: к архитектурам иинтересным применениям глубоких сетей.
• Для обработки изображений главный инструмент —свёрточные сети:
• Очень старая идея, группа ЛеКуна их разрабатывала с конца1980-х.
13
обработка изображений
• Смысл свёрточной сети – применять одни и те же фильтры кразным частям картинки.
• Разобьём картинку на окна:
13
обработка изображений
• Смысл свёрточной сети – применять одни и те же фильтры кразным частям картинки.
• Разобьём картинку на окна:
13
обработка изображений
• Применим к каждому окну маленькую нейронную сеть:
13
обработка изображений
• Потом сжимаем, выбирая максимум по небольшим окнам(max-pooling).
13
обработка изображений
• И потом уже делаем предсказание обычной сетью:
• Добавление новых уровней увеличивает способность кобобщению.
13
обработка изображений
• Можно и посмотреть, где именно находятся части картинки,вызывающие активацию тех или иных признаков, т.е. можноаннотировать картинки:
13
автокодировщики
• Автокодировщики (autoencoders) отображают вход в себя:
• Шумоподавляющие (denoising) автокодировщики: давайтеподадим искажённый вход, а восстанавливать будемнормальный.
• Используются обычно для выделения хороших признаков.
14
рекуррентные сети
• Рекуррентные сети решают задачи, связанные собработкой последовательностей.
15
рекуррентные сети
• Классические рекуррентные сети имеют скрытое состояние иматрицы весов, которые меняют состояние в зависимости отпредыдущего состояния и входа:
15
рекуррентные сети
• Но у таких сетей проблемы с памятью: она экспоненциальнозатухает.
• LSTM и GRU — специальные «макро-нейроны», которыесодержат ячейки памяти в явном виде:
• Из них сейчас делается большинство рекуррентных сетей,хотя есть и другие идеи (SC-RNN).
• И тоже несколько слоёв обучаются замечать болеевысокоуровневые зависимости.
• Современная обработка текстов делается на рекуррентныхсетях из LSTM/GRU (или свёрточных...).
15
порождение текста буква за буквой
• Пример: случайное порождение текста из обученной на русскоязычнойВикипедии небольшой RNN из трёх LSTM-слоёв.
• Низкая дисперсия даёт монолог Лаки из «В ожидании Годо»:
обещал, на рождество, но спустя семь лет. имя главного командования в составесоветского союза с 1976 года. после проведения в 1992 году в составе советскогосоюза (1977). в 1967 году в составе советского союза состоялся в 1952 году в составесоветско-финской войны 1877 - 1877 годов. в 1966 году в составе советского союзас 1965 года по 1977 год...
• При среднем уровне получается что-то похожее на разумный текст:
обещал, на рождество, но спустя семь лет. имя главного рода собственно вновьобразовалась в россии и народном состоянии. после присказа с постановлениемсоюза писателей россии и генеральной диссертации о спортивном училище с 1980года. в 1970-х годах был основан в составе комитета высшего совета театра впольши. в 1957 - 1962 годах - начальник батальона сан-аухаров...
• А при большой дисперсии — хлебниковская заумь:
обещал, на рождество, но спустя семь лет. имя главы философии пововпели nol-lнози - врайу-7 на луосече. человеческая восстания покторов извоенного чомпдеи э. дроссенбурга, … карл уним-общекрипских. эйелем хфечак от этого спискасравнивала имущно моря в юнасториансический индристское носительскихженатов в церкви испании....
16
машинный перевод
• Машинный перевод — очень хорошая задача:• очевидно нужна;• очень высокого уровня, идеальный перевод вряд ли возможенбез «понимания»;
• но можно даже квантифицировать результаты.
• По сути это задача обучения «последовательность впоследовательность».
• Можно делать обычными двунаправленными LSTM(Bahdanau et al. 2014), и получается неплохо, но разве мыпереводим слово за словом?
17
машинный перевод
• Машинный перевод — архитектура encoder-decoder:
18
машинный перевод
• Машинный перевод — архитектура encoder-decoder совниманием:
19
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
чатботы
• Диалоговые модели — тоже encoder-decoder, но теперьпоследовательно со скрытым состоянием:
21
show, attend, and tell
• Если объединить RNN и CNN, а потом добавить внимание,можно делать подписи к картинкам (Show, Attend, and Tell):
22
порождающие соперничающие сети
• Мы до сих пор разрабатывали модели, которые отвечают навопросы.
• Часто бинарные («это котик?») или с конкретнымичисловыми ответами («где тут котик?»).
• Но как сделать сеть, которая может порождать объекты, а нетолько классифицировать? Например, нарисовать котикаили человеческое лицо.
• Автокодировщики сами по себе не помогают: они сжимают 𝑥до скрытого состояния и разжимают обратно, но как взять«из воздуха» разумную комбинацию скрытых состояний?
23
порождающие соперничающие сети
• GAN (Generative Adversarial Network): пусть• одна сеть будет порождать объекты (рисовать картинки),• а другая будет пытаться отличить сгенерированные объекты отнастоящих.
23
порождающие соперничающие сети
• В результате получаются отличные генераторы и дажелинейная структура в пространстве признаков:
23
порождающие соперничающие сети
• И прямой путь в пространстве признаков приводит кразумному порождению объектов по дороге:
23
обучение с подкреплением
• Обучение с подкреплением: как учимся мы сами?• Мы далеко не всегда знаем набор правильных ответов, мыпросто делаем то или иное действие и получаем результат.
• Как обучить наилучшую стратегию? Обучение сподкреплением пытается обучить функцию состояния 𝑉 (𝑠)или 𝑄(𝑠, 𝑎).
• Оказалось, что можно моделировать эти функции глубокиминейронными сетями.
24
deep q-learning
• Mnih et al., 2015: обучаем компьютер играть в классическиеигры (Atari 2600 из Arcade Learning Environment), подавая навход только картинку из игры (210 × 160 RGB видео, 60 герц) инаграды (очки).
• Во многих играх получается лучше самых крутых людей. Нопока не во всех. И обучение очень медленное.
25
alphago
• AlphaGo — глубокие сети, обучающиеся играть в го:
• Март 2016 г. — матч с Ли Седолем:
26
будет ли strong ai?
• И напоследок: что там с искусственным интеллектом?• Когда будет Strong AI? Будет ли он опасен для человечества?• Насколько то, что мы делаем сейчас, вообще похоже на AI?
27
спасибо!
Спасибо за внимание!
28
Recommended