18 октября в журнале Nature была опубликована статья компании DeepMind о новых достижениях AlphaGo. Новая версия программы получила название Zero, так как была обучена с нуля без использования данных, полученных от человека, кроме правил самой игры Го. Для тренировок прошлой версии, победившей в чемпионатах с людьми, изначально использовался метод обучения с учителем (supervised learning), и лишь потом обучение с подкреплением (reinforcement learning). То есть изначально программа тренировалась, изучая человеческий опыт и лишь потом на игре против своих же версий. То есть прежняя версия изначально училась предсказывать человеческие ходы. AlphaGo Zero стала своим собственным учителем: нейронная сеть тренировалась предсказывать свой собственный выбор, а также выбор версии-чемпиона.



Создатели программы обоснованно утверждают, что Zero является на данный момент самым сильным игроком в Го за всю историю.

Предыдущие версии AlphaGo изначально училась играть в Го на тысячах людских партий от любительских до профессиональных. Zero была избавлена от человеческих предрассудков, она перескочила этот этап, начала учиться, играя сама с собой, делая изначально просто произвольные ходы. В скором времени программа превзошла человеческий уровень и победила версию-чемпиона.



Но избавление от влияния человеческого опыта — не единственное изменение. На официальном сайте упоминается использование новой формы обучения с подкреплением, суть которой не вполне раскрывается. Понятно, что нейронную сеть объединяют с мощным поисковым алгоритмом. В процессе игр коэффициенты нейронной сети настраиваются и обновляются. Затем обновленную нейронную сеть снова рекомбинируют с поисковым алгоритмом для получения более сильной версии AlphaGo Zero. И так итерация за итерацией система развивается, вместе с тем растет и уровень игры.

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

Однако упоминается также еще несколько отличий:

  • Zero использует в качестве входа только черные и белые цвета камней на доске, тогда как предшествующим версиям на вход подавалось еще небольшое количество искусственных параметров.
  • В прошлых версиях использовались две отдельные сети “policy network” (для выбора следующего хода) и ”value network” (для предсказания потенциального победителя из каждой позиции). В новой версии Zero они были объединены, что позволило более эффективно обучаться.
  • Также AlphaGo Zero больше не использует “rollouts” — быстрое случайное проигрывание партий другими программами для игры в Го с целью предсказания, какой игрок выиграет из текущей позиции. Здесь сделан упор на высокое качество оценочных нейронных сетей.

Все эти изменения, по словам авторов, помогли улучшить производительность (performance) системы, ее мощность и эффективность, и в то же время сделали ее более универсальной. Если система может учиться самостоятельно абсолютно с нуля — это значит, что из игры в Го её можно “трансплантировать” в любую другую отрасль человеческого знания. Компания DeepMind давно заявляла о том, что их миссия — создание искусственного интеллекта общего назначения, единой системы, которая “из коробки” могла бы решать самые разные задачи.

Важное открытие заключается в том, что AlphaGo не просто научилась играть как люди, но то, что она разработала свои принципиально новые и крайне эффективные подходы к игре в Го, свои стратегии, о которых люди, играя в эту игру тысячи лет, не догадывались. Мало того, что за короткий промежуток времени она освоила то знание, на которое людям потребовались тысячи лет, она выработала принципиально новое знание. И если эта система показала такую высокую эффективность в таком сложном деле, как игра в Го, следующим этапом создатели системы видят поиски ее применения в других отраслях.

Комментарии (6)


  1. vassabi
    21.10.2017 20:50

    (глядя на гифку с графиком роста)
    вот все шутили, про "как выучить С++ за 21 день". А ведь "роботы" — смогут.


    1. GreatNonentity Автор
      21.10.2017 21:05
      +1

      А кстати интересно, что если взять современные технологии NLP (word2vec, Skip-Gram, CBoW...), построить какие-нибудь LSTM сети, натренировать их на программном коде на каком-нибудь конкретном языке. Можно ли из этого будет получить рабочий код? Я пока не говорю о том, чтобы он делал что-то полезное — просто работал. Кажется, это задача реализуемая, языки программирования проще естественных языков.
      А вот как поставить задачу такой системе, чтобы она сделала что-то осмысленное?


      1. Stalker_RED
        21.10.2017 23:36

        TDD же. Пишем осмысленные тесты, а код под эти тесты генерирует нейронная сеть. Можно еще генетическими алгоритмами немножко оптимизировать.


  1. SLY_G
    21.10.2017 21:08
    +2

    Вы на час опоздали:
    geektimes.ru/post/294603


  1. DEM_dwg
    22.10.2017 11:18

    Т.е. теперь можно ожидать, что то типа детского мата в ГО.
    Комбинация которая будет позволять выигрывать при наименьшем количестве шагов.


    1. napa3um
      22.10.2017 12:18

      Нет, ниоткуда это не следует (хоть и не исключает).