В выпуске: генеративные модели, OpenAI, Reinforcement Learning, чатботы, новые трюки для LSTM, еnd-to-end машинный перевод.
Давайте вспомним, что интересного было в 2016 году:
1) Победа в игре го над действующим чемпионом-человеком Ли Седолем
Думаю, многие слышали про ботов, которые отлично играют в шахматы, покер и другие игры. Многие так или иначе просчитывают все возможные ходы соперника наперед, за счет чего и получают преимущество над человеком. Игра го сложна тем, что количество игровых комбинаций превышает количество атомов во Вселенной. Так что найти функцию для оптимального хода в этой игре ой как непросто. Но у ребят-создателей AlphaGo получилось аппроксимировать эту функцию адекватным способом. Про результат вы уже знаете. Прочесть подробнее можно по ссылкам: доступно о сложном, описание архитектуры, код.
2) Перенос художественного стиля
Наверное, многим уже успели надоесть разрисованные фотографии в интернете, но алгоритмы переноса художественного стиля действительно были очень популярны в уходящем году. Огромное количество приложений (DeepArt, Prisma, Mlvch, Artisto) и подходов к самому переносу (feed-forward style transfer, texture networks, neural doodles, GAN), да и факт, что Facebook встроил эту функцию у себя не дает нам игнорировать эту тему. Чтобы ознакомиться, рекомендую посмотреть код и описание на гитхабе Джонсона, PhD студента из Стэнфорда, разработчика одной из самых популярных реализаций.
3) Все что угодно может быть нейронной сетью
Прошлый год был интересен тем, что исследователям получилось хорошо реализовать и использовать понятия внимания, памяти, стэка как дифференциируемые (а, значит, обучаемые) структуры. Но DeepMind пошел еще дальше и заявили, что целый компьютер и есть такая система. Рано говорить о практическом использовании, но подход, и вообще тренд крайне занимательный.
4) OpenAI
Илон Маск, Питер Тиль, Сэм Альтман. Эти ребята не только успешные серийные предприниматели, а теперь и серьезные игроки на рынке искусственного интеллекта. Их компания (некоммерческая) занимается интересными разработками в области reinforcement learning, генеративных моделей и приглашает топ-специалистов для работы. Также они выпустили свои очень удобные библиотеки для обучения с подкреплением (OpenAI Gym) и среду для превращения любой активности на экране для объекта обучения (OpenAI Universe). А еще они предлагают вам взяться за интересные, по их мнению, задачи. Почему бы не попробовать?
5) Генеративные модели
Generative adversarial networks, Variational autoencoders, PixelRNN. Эти три штуки умеют генерировать картинки. Звучит это очень просто и банально, но исследования в генеративных моделях стало бумом в мире машинного обучения, и этот бум еще не закончился. Пока что только-только получается генерировать немного уродливых, но очень реалистичных собак, младенцев, здания, леса и прочие объекты из ImageNet, но это явно только начало чего-то большего. Ознакомиться можно в обзоре от OpenAI. На основе этих же моделей генерируют даже видео и предсказывают, что же произойдет на этом видео через пару секунд.
6) Reinforcement Learning
Второй главный тренд
7) Глубже, глубже, глубже!
В 2014 году парни из Оксфорда показали нам на тот момент глубокую,
8) Компрессия нейронных сетей
После того, как с помощью residual learning мы научились клепать
9) Распознавание и генерация голоса
Да-да, тема заезженная, та и работает уже много лет, но всегда ли вас хорошо понимает Siri или радует ли вас озвучка текста в Google Translate? То-то же. DeepMind (да, снова они) реализовали end-to-end подход для генерации голосадо ужаса похожего на человеческий и эта же архитектура может быть применена для распознавания из сырого аудио.
10) Победа Трампа
Последние выборы в США тоже не обошлись без участия data science. Как оказалось, команда ученых из лагеря Дональда научилась моделировать интересы и личность людей в социальных сетях буквально по
11) Equilibrium Propagation
Сегодня нейронные сети учатся по принципу из прошлого века — есть функция ошибки, есть параметры, от которых она зависит, давайте ее минимизировать! А частные производные считать backpropagation (chain rule студентов первого курса). Йошуа Бенгио поработал над тем, чтобы сделать обучение глубоких сетей более похожим на биологический процесс, где ни четко выраженная функция ошибки, ни производные не нужны. Сложно, но интересно. Хотя бы разок глянуть стоит однозначно.
12) Чатботы
Про чатботы написано много, очень много. Не хочется повторять, например, обзоры от VentureBeat, но мы видим, что при достаточном наборе данных, sequence2sequenceмодели с разными трюками типа neural attention работают, и работают великолепно в пределах предметной области. А что еще нужно, чтобы заменить работников поддержки, которые отвечают на вопросы по продукту...?
13) Новые трюки для LSTM
Юрген Шмидтхубер придумал LSTM модели в далеком 1997, чтобы избавиться от проблем обычных рекуррентных сетей, и сейчас они применяются везде и вовсю: от анализа текста до генераций описаний к изображениям. Но нет предела совершенству — «крестный отец» deep learning, Джефри Хинтон, представляет fast weightsдля еще более эффективной работы рекуррентных сеток, особенно для sequence2sequence моделей.
14) Сверточные сети для графов и структур
Convolutional neural networks уже давно показали свою эффективность в работе с изображениями, текстом, сигналами. Но для работы с структурированными данными, как графовые базы данных, они еще не применялись. И очень зря, они позволяют точно так же эффективно извлекать признаки из структур. Хороший детальный обзор технологии в популярном формате (и немного формул) читаем тут.
15) End-to-end машинный перевод
Машинный перевод, такое чувство, что только и ждал появления deep learning. Глубокие сетки (снова sequence2sequence) как будто созданы, чтобы переводить с одного языка на другой. И Google это сделали, представив Google Neural Machine Translation (GNMT), которая способна переводить 103 языка. Но те, кто учили хоть бы парочку иностранных языков, думаю, знают, как похожи итальянский и испанский, немецкий и голландский, да нам далеко ходить не надо — русский, украинский, белорусский. Неужели для каждой пары нужна отдельная нейронная сеть? И вот тут нам на блюдечке приносят Google’s Multilingual Neural Machine Translation System: Enabling Zero-Shot Translation. Да, это одна архитектура для всех языков. Что еще более занимательно, так все, что они добавили в GNMT — это только дополнительную метку в начале предложения, которое мы переводим. И более того, анализ того, что выучила сеть, дает нам представление о схожести многих языков, даже, на первый взгляд, абсолютно разных, как английский и корейский.
16) Хорошие книги
И, напоследок, любителям почитать. В этом году вышли 2 великолепные книги по Deep Learningи по Reinforcement Learningот уважаемых практиков (Bengio, Goodfellow, Sutton). Обе можно считать первыми значимыми книгами в своих областях. Лично я обе приобрел в бумажном варианте, первую читаю сейчас — не могу нарадоваться, великолепно изложенный материал, хорошо описана математика на доступном уровне, охватывает все последние наработки от обычных перцептронов до генеративных моделей. Вторая книга, даже пролистав, тоже хороша, должна быть отличным вступлением в обучение с подкреплением. Рекомендую! Кстати, первую можно почитать онлайн бесплатно.
← Предыдущий выпуск: AI & ML дайджест #3