Андрей Фильченков - Погружение в глубокие нейронные...

Post on 10-Feb-2017

1.096 Views

Category:

Software

9 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Погружение в глубокие нейронные сети

за 20 минутАндрей Фильченков

к.ф.-м.н., доц., рук. иссл. гр. МОкаф. КТ, МНЛ КТ

Hackathon по чатботам и AI30 июля 2016, СПб

2 / 37

Что такое нейронная сеть и какие задачи она решаетКак устроена глубокая нейронная сетьPrisma и другие нашумевшие примененияГлубокие сети для чатботовГде научиться глубоким нейронным сетям

План выступления

Погружение в глубокие нейронные сети за 20 минут

3 / 37

Что такое нейронная сеть и какие задачи она решаетКак устроена глубокая нейронная сетьPrisma и другие нашумевшие примененияГлубокие сети для чатботовГде научиться глубоким нейронным сетям

План

Погружение в глубокие нейронные сети за 20 минут

4 / 37

Глубокая нейронная сетьГлубокая сетьГлубинная (нейронная) сетьDeep learningНейронная сетьИскусственная нейронная сеть

Несколько слов о терминологии

Погружение в глубокие нейронные сети за 20 минут

5 / 37

Глубокая нейронная сеть:Семейство математических алгоритмовСлабо связана с нейробиологиейОчень сильно связана с машинным обучениемПолучила популярность примерно в 2012 годуОт обычных нейронных сетей отличается числом скрытых слоев (больше двух)

Что же такое глубокая нейронная сеть?

Погружение в глубокие нейронные сети за 20 минут

6 / 37

Источники знаний для интеллектуальной системыЭкспертынужно правильно опросить и правильно занестиДанныенужно правильно обработать: нужны алгоритмы машинного обучения

Откуда берутся знания

Погружение в глубокие нейронные сети за 20 минут

7 / 37

Алгоритмы, у которых качество решения задачи повышается с опытомНаиболее популярная задача — задача предсказанияАлгоритмам нужны данные и (в предсказании) правильные ответы (метки)При обучении таких алгоритмов минимизируются ошибка / максимизируется степень похожести на правильный ответ

Машинное обучение

Погружение в глубокие нейронные сети за 20 минут

8 / 37

Все объекты описываются вектором признаков. Объект становится точкой в многомерном пространстве.

Векторное представление объектов

Погружение в глубокие нейронные сети за 20 минут

9 / 37

Линейная разделяющая поверхность

Погружение в глубокие нейронные сети за 20 минут

Линейная поверхность в виде нейрона

10 / 37

Однако так бывает не всегда

Погружение в глубокие нейронные сети за 20 минут

11 / 37

Многослойная нейронная сеть

Погружение в глубокие нейронные сети за 20 минут

Просто постоим композицию нейронов (как функцию)

12 / 37

Что такое нейронная сеть и какие задачи она решаетКак устроена глубокая нейронная сетьPrisma и другие нашумевшие примененияГлубокие сети для чатботовГде научиться глубоким нейронным сетям

План

Погружение в глубокие нейронные сети за 20 минут

13 / 37

Огромное множество архитектурАлгоритмы обучения отличаются от обычного обучения нейронной сети (backpropogation), но не радикальноСуществует множество эвристических приемов, техник и методов для построения и обучения глубоких сетей

Современные глубокие сети

Погружение в глубокие нейронные сети за 20 минут

14 / 37

Сверточные нейронные сети (CNN)

Погружение в глубокие нейронные сети за 20 минут

LeCun, Yann, et al. "Gradient-based learning applied to document recognition." Proceedings of the IEEE 86.11 (1998): 2278-2324.

Szegedy, Christian, et al. "Going deeper with convolutions." arXiv preprint arXiv:1409.4842 (2014).

15 / 37

Визуализация слоев

Погружение в глубокие нейронные сети за 20 минут

16 / 37

Автоэнкодеры, кодеры и декодеры

Погружение в глубокие нейронные сети за 20 минут

Элементы архитектуры, в котором в промежуточном слое меньше элементов, чем в соседних

Слева — кодерСправа — декодер

17 / 37

Рекуррентные нейронные сети (RNN)

Погружение в глубокие нейронные сети за 20 минут

Глубокая сеть с рекуррентными (обратными) связями

18 / 37

Long Short-Term Memory (LSTM)

Погружение в глубокие нейронные сети за 20 минут

Специальный подвид RNN, который умеет неплохо представлять сильно разделенные (например, во времени) зависимости

19 / 37

Что такое нейронная сеть и какие задачи она решаетКак устроена глубокая нейронная сетьPrisma и другие нашумевшие примененияГлубокие сети для чатботовГде научиться глубоким нейронным сетям

План

Погружение в глубокие нейронные сети за 20 минут

20 / 37

FindFace в явном виде использует сверточные сети, выполняя для фотографий поиск похожих лиц

Распознавание изображений

Погружение в глубокие нейронные сети за 20 минут

21 / 37

Развернем сеть, и пусть она по меткам предсказывает изображения

Генерация изображений

Погружение в глубокие нейронные сети за 20 минут

Dosovitskiy, A., Tobias Springenberg, J., & Brox, T. (2015). Learning to generate chairs with convolutional neural networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 1538-1546).

22 / 37

Будем сохранять «внутреннее представление» изображения (матрицы Грэхема на конволюционных слоях)

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

Генерация текстур

Погружение в глубокие нейронные сети за 20 минут

Gatys, L., Ecker, A. S., & Bethge, M. (2015). Texture synthesis using convolutional neural networks. In Advances in Neural Information Processing Systems (pp. 262-270).

23 / 37

Стиль = текстура. Изображение = контент и представлено последним конволюционным слоем. Будем обучать изображение, похожее и на стиль, и на контент.

Стилизация изображений

Погружение в глубокие нейронные сети за 20 минут

Gatys, L. A., Ecker, A. S., & Bethge, M. (2015). A neural algorithm of artistic style. arXiv preprint arXiv:1508.06576.

24 / 37

В 2015 создан DeetArt: https://deepart.io/Они в явном виде использовали описанный алгоритм

В июне 2016 создана Prisma, они

завернули это в мобильное приложение,

оптимизировали и

вместо подгрузки «стилевых» картинок есть

фильтрыю

DeepArt и Prisma

Погружение в глубокие нейронные сети за 20 минут

25 / 37

В июне 2016 два сотрудника Яндекса записывают альбом в стиле Летова:https://music.yandex.ru/artist/4445922

“Другая мода А в глазах твоих нет слез

Твоя свобода Ветер дунул и унес”

«Мы будем драться»

Основано на нейропоэте: https://yandex.ru/autopoet

Нейронная оборона

Погружение в глубокие нейронные сети за 20 минут

26 / 37

Что такое нейронная сеть и какие задачи она решаетКак устроена глубокая нейронная сетьPrisma и другие нашумевшие примененияГлубокие сети для чатботовГде научиться глубоким нейронным сетям

План

Погружение в глубокие нейронные сети за 20 минут

27 / 37

Строим сеть машинного перевода из запросов в ответы (Ritter et al., 2011)Sequence to sequence model (Cho et al., 2014)

Seq2Seq with attention (Bahdanau et al., 2014)

Основная модель

Погружение в глубокие нейронные сети за 20 минут

Ritter, A., Clark, S., & Etzioni, O. (2011, July). Named entity recognition in tweets: an experimental study. In Proceedings of the Conference on Empirical Methods in Natural Language Processing (pp. 1524-1534). Association for Computational Linguistics.Cho, K., Van Merriënboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., & Bengio, Y. (2014). Learning phrase representations using RNN encoder-decoder for statistical machine translation. arXiv preprint arXiv:1406.1078.Bahdanau, D., Cho, K., & Bengio, Y. (2014). Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473.

28 / 37

Извлечение vs генерацияИзвестны ли заранее ответы?Короткие сессии vs длинные сессииНесколько вопросов или беседаЗакрытые vs открытыеФиксирована ли тема беседы?

Типы моделей

Погружение в глубокие нейронные сети за 20 минут

29 / 37

Большой успех, хорошо развито, можно написать самомуПример: Google Smart Reply, генерация автоматических ответов на письма

Поисковая закрытая ответная модель

Погружение в глубокие нейронные сети за 20 минут

Kannan, A., Kurach, K., Ravi, S., Kaufmann, T., Tomkins, A., Miklos, B., Corrado, G., Lukács, L., Ganea, M., Young, P. and Ramavajjala, V., 2016. Smart Reply: Automated Response Suggestion for Email}. In Proceedings of the ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD)} (Vol. 36, pp. 495-503).

30 / 37

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

Открытые системы

Погружение в глубокие нейронные сети за 20 минут

31 / 37

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

Длинные сессии

Погружение в глубокие нейронные сети за 20 минут

Serban, I. V., Sordoni, A., Bengio, Y., Courville, A., & Pineau, J. (2016, March). Building end-to-end dialogue systems using generative hierarchical neural network models. In Proceedings of the 30th AAAI Conference on Artificial Intelligence (AAAI-16).

32 / 37

Проблемы:Отсутствие знанийПроблемы с построением языковой моделиОтсутствие модели себя и интенционности

Генеративные модели

Погружение в глубокие нейронные сети за 20 минут

33 / 37

Что такое нейронная сеть и какие задачи она решаетКак устроена глубокая нейронная сетьPrisma и другие нашумевшие примененияГлубокие сети для чатботовГде научиться глубоким нейронным сетям

План

Погружение в глубокие нейронные сети за 20 минут

34 / 37

Курс по глубоким сетям от CS центра (только что закончился):http://compsciclub.ru/courses/deep-learning/2016-summer/Курс по Data mining (с 8 лекции будут нейронные сети) от Mail.ru Group:https://www.youtube.com/playlist?list=PLrCZzMib1e9pXgyJ8Y9Io4AocGy66pj1X

Курсы и лекции (на русском)

Погружение в глубокие нейронные сети за 20 минут

35 / 37

Курс по глубоким сетям от Google:https://www.udacity.com/course/deep-learning--udКурс по глубоким сетям от Nando de Freitas в Oxford:https://www.youtube.com/watch?v=dV80NAlEins&list=PLE6Wd9FR--EfW8dtjAuPoTuPcqmOV53Fu

Курсы и лекции (на английском)

Погружение в глубокие нейронные сети за 20 минут

36 / 37

Главный сайт про глубокое обучение:http://deeplearning.net/Паблик в VK по глубокому обучению:https://vk.com/deeplearningКороткая обзорная лекция Жени Путина про глубокие сети:https://www.youtube.com/watch?v=bicXInoeLG4«Поковыряться» в нейронной сети и посмотреть на то, как она обучается:http://playground.tensorflow.org/

Полезные ссылки

Погружение в глубокие нейронные сети за 20 минут

37 / 37

Для Python:Theano, TensorFlow, Caffe, Pylearn2, DeepnetДля C:TorchДля C++:Caffe, nnForge, CXXNET, Cuda-conventДля Matlab:Caffe, DeepLearningToolbox, Deepmat, Cuda CNN

Библиотеки

Погружение в глубокие нейронные сети за 20 минут

Спасибо! Вопросы?

Андрей Фильченковaaafil@mail.ru

Hackathon по чатботам и AI30 июля 2016, СПб

top related