Погружение
в глубокие нейронные сети
за 20 минут
Андрей Фильченков
к.ф.-м.н., доц., рук. иссл. гр. МО
каф. КТ, МНЛ КТ
Hackathon по чатботам и AI
30 июля 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=PLrCZzMib1e
9pXgyJ8Y9Io4AocGy66pj1X
Курсы и лекции (на русском)
Погружение в глубокие нейронные сети за 20 минут
35 / 37
Курс по глубоким сетям от Google:
https://www.udacity.com/course/deep-learning--ud
Курс по глубоким сетям от Nando de Freitas в
Oxford:
https://www.youtube.com/watch?v=dV80NAlEins&li
st=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 по чатботам и AI
30 июля 2016, СПб

Андрей Фильченков - Погружение в глубокие нейронные сети за 20 минут - Muzis Hackathon

  • 1.
    Погружение в глубокие нейронныесети за 20 минут Андрей Фильченков к.ф.-м.н., доц., рук. иссл. гр. МО каф. КТ, МНЛ КТ Hackathon по чатботам и AI 30 июля 2016, СПб
  • 2.
    2 / 37 Чтотакое нейронная сеть и какие задачи она решает Как устроена глубокая нейронная сеть Prisma и другие нашумевшие применения Глубокие сети для чатботов Где научиться глубоким нейронным сетям План выступления Погружение в глубокие нейронные сети за 20 минут
  • 3.
    3 / 37 Чтотакое нейронная сеть и какие задачи она решает Как устроена глубокая нейронная сеть Prisma и другие нашумевшие применения Глубокие сети для чатботов Где научиться глубоким нейронным сетям План Погружение в глубокие нейронные сети за 20 минут
  • 4.
    4 / 37 Глубокаянейронная сеть Глубокая сеть Глубинная (нейронная) сеть Deep learning Нейронная сеть Искусственная нейронная сеть Несколько слов о терминологии Погружение в глубокие нейронные сети за 20 минут
  • 5.
    5 / 37 Глубокаянейронная сеть: Семейство математических алгоритмов Слабо связана с нейробиологией Очень сильно связана с машинным обучением Получила популярность примерно в 2012 году От обычных нейронных сетей отличается числом скрытых слоев (больше двух) Что же такое глубокая нейронная сеть? Погружение в глубокие нейронные сети за 20 минут
  • 6.
    6 / 37 Источникизнаний для интеллектуальной системы Эксперты нужно правильно опросить и правильно занести Данные нужно правильно обработать: нужны алгоритмы машинного обучения Откуда берутся знания Погружение в глубокие нейронные сети за 20 минут
  • 7.
    7 / 37 Алгоритмы,у которых качество решения задачи повышается с опытом Наиболее популярная задача — задача предсказания Алгоритмам нужны данные и (в предсказании) правильные ответы (метки) При обучении таких алгоритмов минимизируются ошибка / максимизируется степень похожести на правильный ответ Машинное обучение Погружение в глубокие нейронные сети за 20 минут
  • 8.
    8 / 37 Всеобъекты описываются вектором признаков. Объект становится точкой в многомерном пространстве. Векторное представление объектов Погружение в глубокие нейронные сети за 20 минут
  • 9.
    9 / 37 Линейнаяразделяющая поверхность Погружение в глубокие нейронные сети за 20 минут Линейная поверхность в виде нейрона
  • 10.
    10 / 37 Однакотак бывает не всегда Погружение в глубокие нейронные сети за 20 минут
  • 11.
    11 / 37 Многослойнаянейронная сеть Погружение в глубокие нейронные сети за 20 минут Просто постоим композицию нейронов (как функцию)
  • 12.
    12 / 37 Чтотакое нейронная сеть и какие задачи она решает Как устроена глубокая нейронная сеть Prisma и другие нашумевшие применения Глубокие сети для чатботов Где научиться глубоким нейронным сетям План Погружение в глубокие нейронные сети за 20 минут
  • 13.
    13 / 37 Огромноемножество архитектур Алгоритмы обучения отличаются от обычного обучения нейронной сети (backpropogation), но не радикально Существует множество эвристических приемов, техник и методов для построения и обучения глубоких сетей Современные глубокие сети Погружение в глубокие нейронные сети за 20 минут
  • 14.
    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.
    15 / 37 Визуализацияслоев Погружение в глубокие нейронные сети за 20 минут
  • 16.
    16 / 37 Автоэнкодеры,кодеры и декодеры Погружение в глубокие нейронные сети за 20 минут Элементы архитектуры, в котором в промежуточном слое меньше элементов, чем в соседних Слева — кодер Справа — декодер
  • 17.
    17 / 37 Рекуррентныенейронные сети (RNN) Погружение в глубокие нейронные сети за 20 минут Глубокая сеть с рекуррентными (обратными) связями
  • 18.
    18 / 37 LongShort-Term Memory (LSTM) Погружение в глубокие нейронные сети за 20 минут Специальный подвид RNN, который умеет неплохо представлять сильно разделенные (например, во времени) зависимости
  • 19.
    19 / 37 Чтотакое нейронная сеть и какие задачи она решает Как устроена глубокая нейронная сеть Prisma и другие нашумевшие применения Глубокие сети для чатботов Где научиться глубоким нейронным сетям План Погружение в глубокие нейронные сети за 20 минут
  • 20.
    20 / 37 FindFaceв явном виде использует сверточные сети, выполняя для фотографий поиск похожих лиц Распознавание изображений Погружение в глубокие нейронные сети за 20 минут
  • 21.
    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.
    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.
    23 / 37 Стиль= текстура. Изображение = контент и представлено последним конволюционным слоем. Будем обучать изображение, похожее и на стиль, и на контент. Стилизация изображений Погружение в глубокие нейронные сети за 20 минут Gatys, L. A., Ecker, A. S., & Bethge, M. (2015). A neural algorithm of artistic style. arXiv preprint arXiv:1508.06576.
  • 24.
    24 / 37 В2015 создан DeetArt: https://deepart.io/ Они в явном виде использовали описанный алгоритм В июне 2016 создана Prisma, они завернули это в мобильное приложение, оптимизировали и вместо подгрузки «стилевых» картинок есть фильтрыю DeepArt и Prisma Погружение в глубокие нейронные сети за 20 минут
  • 25.
    25 / 37 Виюне 2016 два сотрудника Яндекса записывают альбом в стиле Летова: https://music.yandex.ru/artist/4445922 “Другая мода А в глазах твоих нет слез Твоя свобода Ветер дунул и унес” «Мы будем драться» Основано на нейропоэте: https://yandex.ru/autopoet Нейронная оборона Погружение в глубокие нейронные сети за 20 минут
  • 26.
    26 / 37 Чтотакое нейронная сеть и какие задачи она решает Как устроена глубокая нейронная сеть Prisma и другие нашумевшие применения Глубокие сети для чатботов Где научиться глубоким нейронным сетям План Погружение в глубокие нейронные сети за 20 минут
  • 27.
    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.
    28 / 37 Извлечениеvs генерация Известны ли заранее ответы? Короткие сессии vs длинные сессии Несколько вопросов или беседа Закрытые vs открытые Фиксирована ли тема беседы? Типы моделей Погружение в глубокие нейронные сети за 20 минут
  • 29.
    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.
    30 / 37 Невозможнопостроить соответствующий корпус для систем, основанных на поиске; они могут быть только для генеративных систем, но это почти что сильный искусственный интеллект. Открытые системы Погружение в глубокие нейронные сети за 20 минут
  • 31.
    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.
    32 / 37 Проблемы: Отсутствиезнаний Проблемы с построением языковой модели Отсутствие модели себя и интенционности Генеративные модели Погружение в глубокие нейронные сети за 20 минут
  • 33.
    33 / 37 Чтотакое нейронная сеть и какие задачи она решает Как устроена глубокая нейронная сеть Prisma и другие нашумевшие применения Глубокие сети для чатботов Где научиться глубоким нейронным сетям План Погружение в глубокие нейронные сети за 20 минут
  • 34.
    34 / 37 Курспо глубоким сетям от CS центра (только что закончился): http://compsciclub.ru/courses/deep-learning/2016- summer/ Курс по Data mining (с 8 лекции будут нейронные сети) от Mail.ru Group: https://www.youtube.com/playlist?list=PLrCZzMib1e 9pXgyJ8Y9Io4AocGy66pj1X Курсы и лекции (на русском) Погружение в глубокие нейронные сети за 20 минут
  • 35.
    35 / 37 Курспо глубоким сетям от Google: https://www.udacity.com/course/deep-learning--ud Курс по глубоким сетям от Nando de Freitas в Oxford: https://www.youtube.com/watch?v=dV80NAlEins&li st=PLE6Wd9FR--EfW8dtjAuPoTuPcqmOV53Fu Курсы и лекции (на английском) Погружение в глубокие нейронные сети за 20 минут
  • 36.
    36 / 37 Главныйсайт про глубокое обучение: http://deeplearning.net/ Паблик в VK по глубокому обучению: https://vk.com/deeplearning Короткая обзорная лекция Жени Путина про глубокие сети: https://www.youtube.com/watch?v=bicXInoeLG4 «Поковыряться» в нейронной сети и посмотреть на то, как она обучается: http://playground.tensorflow.org/ Полезные ссылки Погружение в глубокие нейронные сети за 20 минут
  • 37.
    37 / 37 ДляPython: Theano, TensorFlow, Caffe, Pylearn2, Deepnet Для C: Torch Для C++: Caffe, nnForge, CXXNET, Cuda-convent Для Matlab: Caffe, DeepLearningToolbox, Deepmat, Cuda CNN Библиотеки Погружение в глубокие нейронные сети за 20 минут
  • 38.