AI & ML дайджест #4: 16 трендов 2016 года

В выпуске: генеративные модели, 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

Второй главный тренд 2016-го наравне с generative models. Единственное, что жалко, что пока что основное применение обучения с подкреплением — это игрушки. Но после того, как AlphaGo впервые победила в го, появились наработки в Doom, лабиринтах, гоночных симуляторах, DeepMind даже замахнулись на победу в StarCraft. Главная прелесть в том, что алгоритм учится нажимать на кнопки просто из информации на экране. Еще одно интересное и уже практическое применение обучения с подкреплением — это, конечно, беспилотные автомобили.

7) Глубже, глубже, глубже!

В 2014 году парни из Оксфорда показали нам на тот момент глубокую, 16-слойную сетку для распознавания изображений. Совсем чуть-чуть позже Google дали нам Inception, номинально еще более глубокий. Какое-то время все ковырялись с Batch Normalization, Dropouts, Highway networks, пока азиатский отдел Microsoft не показали нам как делать по-настоящему глубокие сетки — Residual Neural Networks. И все как с цепи сорвались в своем желанию сделать сетку глубже и шире. Усложнить inception-блоки и склеить сотню таких — еще не самая страшная затея, как вам увеличивать сетки фрактально или делать residual-соединения ко всем слоям сразу? Краткий обзор такой эволюции можно посмотреть тут.

8) Компрессия нейронных сетей

После того, как с помощью residual learning мы научились клепать 1000-слойные сетки, возникает резонный вопрос: а как все эти сотни миллионов параметров хранить? На эту тему придумали несколько интересных подходов, как все это дело сжимать, рекомендую ознакомиться с следующими статьями: раз, два, три.

9) Распознавание и генерация голоса

Да-да, тема заезженная, та и работает уже много лет, но всегда ли вас хорошо понимает Siri или радует ли вас озвучка текста в Google Translate? То-то же. DeepMind (да, снова они) реализовали end-to-end подход для генерации голоса до ужаса похожего на человеческий и эта же архитектура может быть применена для распознавания из сырого аудио.

10) Победа Трампа

Последние выборы в США тоже не обошлись без участия data science. Как оказалось, команда ученых из лагеря Дональда научилась моделировать интересы и личность людей в социальных сетях буквально по 10-50 лайкам — определять пол, возраст, расу, даже половую ориентацию. В отличие от лагеря Клинтон, где статистики разделяли людей по старым обычным критериям, ученые Трампа благодаря мегаточной таргетированой рекламе принесли ему победу. Подробнее читаем тут.

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

Похожие статьи:
Советы сеньоров — постоянная рубрика, в которой опытные специалисты делятся практическими советами с джуниорами — общие лайфхаки...
Темою чергової live-дискусії на DOU стало тестування у сучасному ІТ. Ми поговорили з Мікалаєм Аліменковим, незалежним консультантом...
Привет, меня зовут Саша, и я программист. Мне 35 лет, из которых 35 живу в Днепре. По специализации я Full Stack JS Dev. Последние 6 лет...
Еще несколько лет назад компания RIM (сейчас BlackBerry) была одним из лидеров рынка смартфонов, особенно в Северной Америке, но в...
Уже который год украинские IT-компании провожают октябрь, устраивая парад зомби и монстров в своих офисах. Представляем...
Яндекс.Метрика