Главный научный сотрудник в Neuromation Сергей Николенко в своей колонке на Vc.ru рассказал о том, какими направлениями и результатами в ИИ-сфере запомнился 2017 год. С любезного разрешения автора мы знакомим наших читателей с этим текстом.
Глубокое обучение с подкреплением
Обучение с подкреплением – это раздел искусственного интеллекта, в котором модели обучаются не на размеченных или неразмеченных данных, а в активном диалоге с окружающей средой. Агент исследует среду и получает за это вознаграждения и наказания: как мышка в лабиринте, которая хочет найти сыр, но иногда вместо этого получает удары током.
Основные прорывы в этом направлении сейчас основаны на глубоком обучении с подкреплением, когда этого самого агента, обучающегося получать как можно большую награду, моделируют при помощи глубоких нейронных сетей. Одна из основных задач – научиться распределять награду на все действия, которые к ней привели (credit assignment). Например, программа выиграла партию в шахматы: отлично, но какие ходы действительно были хорошими? Этот вопрос важен и для роботики (см., например): обычно мы не можем сказать роботу, что конкретно нужно делать (на какой угол поворачивать руль машины или шарниры манипулятора), а можем только оценить конечный результат (машина не разбилась, деталь встала на место).
Именно обучение с подкреплением стало основой главных результатов 2017 года в роботике: и беспилотные автомобили, и роботы-манипуляторы основаны на этих идеях. А с другой стороны создаются всё более совершенные сенсоры, которые дают роботам данные, и манипуляторы, которыми они оперируют. Например, описание нашумевшего робота-хирурга больше рассказывает о новых 3D-камерах, чем о «мозгах». Впрочем, я всё-таки думаю, что до полностью автономных роботов-хирургов ещё далеко; сейчас речь скорее идёт о том, чтобы помогать биологическим хирургам в их труде.
Но основные вехи обучения с подкреплением традиционно были связаны с играми. Когда-то TD-Gammon стала первой программой, вставшей на уровень людей-чемпионов в “настоящей человеческой” игре (нарды). Недавние успехи компании DeepMind в глубоком обучении с подкреплением начались с компьютерных игр Atari из восьмидесятых, а поворотным, историческим моментом стал матч весной 2016 года, когда программа AlphaGo обыграла одного из лучших игроков в го в мире Ли Седоля со счётом 4:1.
Порождающие соперничающие сети
Часто требуется не только распознать объект, но и научиться порождать новый. Например, не просто отличить кошек от собак на фотографии, но и суметь сгенерировать новую фотографию кошки, которой не было в наборе, поданном на вход сети. Оказывается, что для искусственного интеллекта это совсем другая, более сложная задача, и решают её так называемыми порождающими моделями (generative models). Сложность здесь во многом в том, что непонятно, как оценить порождённый программой результат, ведь его не было в данных, и мы не знаем, как автоматически оценить “правдоподобность котика на фотографии”.
Один из главных и быстроразвивающихся примеров порождающих моделей – порождающие соперничающие сети (generative adversarial networks, GAN). Они основаны на простой и мощной идее: пусть одна сеть (генератор) порождает нужные объекты (скажем, картинки котиков), а другая сеть (дискриминатор) пытается отличить порождённые генератором объекты от настоящих. В результате две сети соперничают друг с другом, обучаясь поочерёдно: то дискриминатор обучается распознавать фейки от генератора, то генератор обучается обманывать новый дискриминатор, и так далее.
Это направление начало бурно развиваться 2-3 года назад, и 2017-й остаётся годом GAN’ов. Недавно вышла очень интересная работа исследователей из NVIDIA (вот мой более подробный комментарий), которые подняли порождение изображений, в частности человеческих лиц, при помощи GAN на невиданные ранее высоты. Как знать, может быть, скоро станут реальностью страшилки о том, что можно будет породить реалистичную фотографию кого угодно в каком угодно контексте… А может быть, уже стали?..
Кстати, GAN’ы нужны не только для красивых картинок. Например, недавняя серия работ компании Insilico посвящена использованию GAN’ов для порождения молекул с нужными свойствами — например, молекул, которые лечат онкологические заболевания. До клинических испытаний там пока дело не дошло, сейчас ведутся первые лабораторные эксперименты, но направление очень перспективное.
А чем живёт наука?
Мы обсудили два важных направления, которые стали хедлайнерами глубокого обучения в 2017 году. Однако результатов, конечно же, гораздо больше: наука обычно развивается во всех направлениях сразу, не только интенсивно, но и экстенсивно. Самый простой способ получить представление о том, чем прямо сейчас живёт машинное обучение, — это посмотреть на статьи, которые выходят на крупнейших конференциях. Самых важных конференций в этой области две: ICML (International Conference on Machine Learning) и NIPS (Neural Information Processing Systems). Программы и ICML 2017, и NIPS 2017 очень широки и разнообразны; давайте посмотрим, что же сами учёные признали лучшими.
Приз лучшей работе ICML 2017 получила статья «Understanding Black-box Predictions via Influence Functions», авторы которой пытаются не строить новые модели, а объяснять, почему существующие модели дают такие результаты, которые у них получаются. Интерпретируемость – это традиционно больная тема для нейронных сетей, которые всегда приходилось рассматривать как «чёрные ящики»; возможно, скоро мы лучше научимся понимать, что происходит внутри этих чёрных ящиков.
Интересные призы получились и на NIPS 2017. Особенно интересно, что ни одна из трёх лучших работ не относится напрямую к нейронным сетям и глубокому обучению. Две из трёх я не возьмусь объяснить не только в одном абзаце, но и вообще в популярной колонке: в них получены интересные и глубокие результаты из математической статистики. А третья статья и вовсе по теории игр: она объясняет математическую и алгоритмическую стороны программы Libratus, которая в январе этого года обыграла ведущих покерных профессионалов в heads up no limit Texas hold’em. Покер, кстати, — та редкая игра, которая ещё держится под напором машинного обучения, несмотря на очевидные возможности монетизации. Вот и Libratus пока научился обыгрывать людей только один на один (heads up), а на полном или 6-max столе играет далеко не идеально. И особенно любопытно, что глубокое обучение в стиле AlphaZero тут пока применить не удалось, речь в статье идёт о том, как быстро и хорошо искать стратегии именно в теоретико-игровом смысле. Как знать, может быть, именно покер станет следующим большим подвигом глубокого обучения.
А закончим давайте на развлекательной ноте. Приз за лучшую демонстрацию возможностей машинного обучения (best demo) на NIPS 2017 получила модель Magenta, основанная на недавно вышедшей библиотеке deeplearn.js. Оказывается, теперь можно запускать сложные нейронные сети прямо в браузере, причём deeplearn.js умеет даже использовать для этого вашу видеокарту. А сама Magenta умеет писать музыку при помощи рекуррентных сетей — и тут же, прямо в браузере, и исполняет её! Учитывая, что на открытии яндексовской Yet Another Conference в мае 2017 года исполняли довольно убедительную музыку, написанную нейросетью в стиле Скрябина, не исключено, что в скором будущем нас ждёт расцвет творчества кремниевых композиторов.
В общем, 2017 год ещё раз подтвердил очевидное: мы живём в очень интересное время, и чем дальше, тем интереснее. Присоединяйтесь!
Текст: Сергей Николенко