Самостоятельная игра - это автоматическое создание знаний

Фильм 1983 года «Военные игры» имеет незабываемую кульминацию, когда суперкомпьютер, известный как WOPR (Ответ плана военной операции), просят потренироваться, чтобы открыть для себя концепцию игры, в которой невозможно выиграть. Персонаж, которого играет Мэтью Бродерик, спрашивает: «Есть ли способ сыграть самого себя?»

34 года спустя DeepMind показал, как именно это делается в реальной жизни! Решение то же самое, установить количество игроков на ноль (то есть ноль людей).

Об этом последнем прорыве в технологии глубокого обучения можно многое узнать. Авторы DeepMind используют термин самостоятельное обучение с подкреплением. Как я уже отмечал в статье о Племенах ИИ, DeepMind особенно любит свой подход к обучению с подкреплением (RL). DeepMind использует уровни глубокого обучения в сочетании с более классическими подходами RL к художественной форме.

AlphaGo Zero - это последнее воплощение автоматизации игры в го. Можно было бы подумать, что будет сложно превзойти версию AlphaGo, которая превзошла чемпиона мира среди людей по Go. Однако AlphaGo Zero не только превосходит предыдущую систему, но и делает это таким образом, который подтверждает революционный подход. Чтобы быть более конкретным, вот что удалось сделать AlphaGo:

  1. Победите предыдущую версию AlphaGo (окончательный счет: 100–0).
  2. Научитесь выполнять эту задачу с нуля, не извлекая уроки из предыдущих человеческих знаний (то есть записанного игрового процесса).
  3. Уровень чемпиона мира по игре в го всего за 3 дня тренировок.
  4. Сделайте это с помощью нейронных сетей на порядок меньше (4 TPU против 48 TPU).
  5. Сделайте это с меньшим объемом обучающих данных (3,9 миллиона игр против 30 миллионов игр).

Каждый из перечисленных выше пунктов является заслуживающим внимания заголовком. Комбинация каждого пункта списка и того, что он раскрывает, совершенно ошеломляет. Это моя честная попытка разобраться во всем этом.

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

Однако можно было бы ожидать, что в игре Go будет достаточно большое пространство поиска, чтобы менее способный алгоритм оказался достаточно удачливым, чтобы победить лучший собственный. Может быть, AlphaGo Zero узнала о новых действиях инопланетян, которые его конкуренты не могут объяснить в том же пространстве поиска и, таким образом, имеет непреодолимый недостаток. Похоже, что это так, и на это как бы намекает тот факт, что AlphaGo Zero требует меньше вычислительных ресурсов, чтобы превзойти своих конкурентов. Ясно, что он делает намного меньше работы, но, возможно, это просто отрабатывает гораздо более богатый язык стратегии Go. Биологические существа стремятся делать меньше работы. Сжатие языка - это средство для уменьшения когнитивной работы.

Второй пункт бросает вызов нашей нынешней парадигме машинного обучения только с учителем. Первоначальный AlphaGo был загружен с использованием ранее записанного турнирного игрового процесса. Затем последовала самостоятельная игра для улучшения двух внутренних нейронных сетей (то есть сетей политик и ценностей). Напротив, AlphaGo Zero началась с нуля, просто запрограммировав правила игры на Go. Также требовалась одна сеть, а не две. Действительно удивительно, что он смог запустить себя, а затем, в конечном итоге, изучить более продвинутые человеческие стратегии, а также ранее неизвестные стратегии. Более того, порядок, в котором он учился первым, иногда был неожиданным. Это как если бы система выучила новый внутренний язык игры в го. Также интересно поразмышлять о влиянии одной интегрированной нейронной сети на две непересекающиеся нейронные сети. Возможно, существуют определенные стратегии, которым непересекающаяся сеть не может научиться.

Люди изучают языки с помощью метафор и историй. Человеческие стратегии, открытые в го, называются именами, чтобы игрок мог их узнать. Вполне возможно, что человеческий язык Go неэффективен, поскольку не может выражать более сложные составные концепции. Кажется, что AlphaGo Zero может выполнять свои движения таким образом, чтобы одновременно выполнять несколько задач. Таким образом, люди и, возможно, более ранние версии AlphaGo были ограничены относительно линейным мышлением, в то время как AlphaGo Zero не была обременена неэффективным языком стратегии. Также интересно, что это можно считать системой, которая на самом деле не использует неявную предвзятость, которая может быть присуща языку. Дэвид Сильвер из DeepMind делает еще более смелое заявление:

Он более эффективен, чем предыдущие подходы, потому что, не используя человеческие данные или человеческий опыт каким-либо образом, мы сняли ограничения человеческого знания, и он может сам создавать знания.

Атлантик сообщает о некоторых интересных наблюдениях за игрой в этой новой системе:

Опытные игроки также замечают особенности AlphaGo. Локхарт и другие отмечают, что он почти ведет несколько сражений одновременно, применяя подход, который может показаться немного сумасшедшим для игроков-людей, которые, вероятно, потратили бы больше энергии, сосредотачиваясь на меньших участках доски за раз.

Изученный язык лишен какого-либо исторического багажа, который он мог накопить за столетия изучения го.

В третьем пункте указано, что время обучения также на удивление меньше, чем в предыдущем воплощении. Как будто AlphaGo Zero учится совершенствовать собственное обучение.

Потребовалось всего 3 дня, чтобы достичь уровня, который превосходит лучшего игрока-человека. Более того, он продолжает улучшаться даже после того, как превзошел лучшие предыдущие реализации AlphaGo. Как он может постоянно улучшать свое обучение? Эта способность постепенно изучать и улучшать одну и ту же нейронную сеть - это то, что мы видели в другой архитектуре, известной как FeedbackNet. При обычном обучении на основе SGD в одну и ту же сеть поступают данные за несколько эпох.

Однако здесь каждый набор тренировок совершенно новый и становится все более сложным. Это также аналогично обучению по учебной программе, однако учебная программа является неотъемлемой частью алгоритма. Обучающий набор генерируется самостоятельно, а расчет целевой функции выводится из результата MCTS. Сеть учится, сравнивая себя не с внешними обучающими данными, а с синтетическими данными, созданными из предыдущей версии нейронной сети.

Четвертый пункт - в документе говорится, что потребовалось всего 4 TPU Google (180 тераопс каждый) по сравнению с 48 TPU для предыдущих систем. Как ни странно, в статье Nature отмечается, что это работало в единой системе и не использовало распределенные вычисления. Таким образом, любой, у кого есть четыре графических процессора Nvidia на базе Volta, сможет воспроизвести эти результаты. Выполнение задачи с 1/10 объема вычислительных ресурсов должно быть намеком на то, что здесь происходит что-то принципиально иное. Я еще не проанализировал это подробно, но, возможно, объяснение связано просто с более простой архитектурой.

Наконец, последний пункт списка, в котором кажется, что AGZ расширил свои возможности, используя меньшее количество обучающих данных. Похоже, что синтетические данные, полученные в результате игры с самим собой, содержат больше «обучающих моментов», чем данные, полученные в результате человеческой игры. Обычно способ улучшить сеть - это генерировать больше синтетических данных. Обычной практикой является увеличение данных путем выполнения всевозможных манипуляций с данными (например, кадрирования, перевода и т. Д.), Однако в случае AGZ автоматизация, похоже, могла выбирать более обширные обучающие данные.

Почти каждая новая статья по глубокому обучению, опубликованная (или найденная в Arxiv), имеет тенденцию в лучшем случае показать небольшое улучшение в процентном отношении по сравнению с предыдущими архитектурами. Почти каждый раз более новая реализация также требует больше ресурсов для достижения более высокой точности прогнозов. То, что показал AlphaGo, неслыханно, то есть он требует на порядок меньше ресурсов и менее сложный дизайн, однозначно превосходя все предыдущие алгоритмы.

Многие давние практики обучения с подкреплением применительно к играм отмечали, что реальный дизайн даже не нов и был сформулирован несколько десятилетий назад. Тем не менее, эффективность этого подхода была наконец экспериментально подтверждена командой DeepMind. В Deep Learning, как и в спорте, нельзя выиграть на бумаге, вам нужно сыграть в игру, чтобы увидеть, кто победит. Короче говоря, какой бы простой ни была идея, вы никогда не узнаете, насколько хорошо она будет работать, если эксперименты не будут проводиться на самом деле.

Нет ничего нового в алгоритме итерации политики или архитектуре нейронной сети. Итерация политики - это старый алгоритм, который учится совершенствовать политики, чередуя оценку политики и улучшение политики. То есть между оценкой функции стоимости текущей политики и использованием функции текущей стоимости для поиска лучшей политики.

Единственная нейронная сеть, которую он использует, представляет собой пешеходную сверточную сеть:

Общая глубина сети в сети из 20 или 40 блоков составляет 39 или 79 параметризованных уровней, соответственно, для остаточной башни, плюс дополнительные 2 уровня для заголовка политики и 3 уровня для заголовка значения.

Как и в предыдущих воплощениях AlphaGo, поиск по дереву Монте-Карло (MCTS) используется для выбора следующего хода. AlphaGo Zero использует вычисления поиска по дереву как способ оценки и обучения нейронной сети. Таким образом, MCTS, использующий предварительно обученную нейронную сеть, выполняет поиск выигрышных ходов. Оценка политики оценивает функцию ценности по множеству выбранных траекторий. Результаты этого поиска затем используются для обучения нейронной сети. Таким образом, после каждой игры для следующей самостоятельной игры выбирается новая и потенциально улучшенная сеть. DeepMind называет это «самостоятельным обучением с подкреплением»:

Новый алгоритм обучения с подкреплением. Поиск MCTS выполняется под управлением нейронной сети fθ. Поиск MCTS выводит вероятности π воспроизведения каждого хода. Эти вероятности поиска обычно выбирают гораздо более сильные ходы, чем исходные вероятности p ходов нейронной сети fθ (s); Таким образом, MCTS можно рассматривать как мощного оператора по совершенствованию политики.

Самостоятельная игра с поиском - использование улучшенной политики на основе MCTS для выбора каждого хода, а затем использование победителя игры z в качестве выборки значения - может рассматриваться как мощный оператор оценки политики.

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

Эта игра с самим собой напоминает мне более раннюю статью о Странной петле в глубоком обучении. Я писал о многих недавних достижениях в области глубокого обучения, таких как лестничные сети и генерирующие состязательные сети (GAN), в которых для улучшения распознавания и генерации использовался метод на основе цикла. Кажется, что когда у вас есть такой механизм, который может выполнять оценку своих конечных результатов, точность намного выше при меньшем количестве обучающих данных. В случае AlphaGo Zero нет данных для обучения. Данные для обучения генерируются в процессе самостоятельной игры. Например, GAN совместно улучшает свое поколение, имея две сети (дискриминатор и генератор), работающие друг с другом. AlphaGo Zero, напротив, сравнивает возможности сети, обученной в предыдущей игре, с возможностями текущей сети. В обоих случаях у вас есть две сети, которые кормят друг друга во время обучения.

Каждый должен задуматься над важным вопросом: Насколько универсален алгоритм AlphaGo Zero? DeepMind публично заявила, что они будут применять эту технологию для открытия лекарств. Ранее я писал о том, как оценить уместность технологий глубокого обучения (см .: Reality Checklist). В этой оценке есть шесть неопределенностей в любой области, которые необходимо учитывать: неопределенность выполнения, неопределенность наблюдений, неопределенность продолжительности, неопределенность действий, неопределенность оценки и неопределенность обучения.

В AlphaGo Zero, похоже, решена проблема неопределенности обучения. AlphaGo Zero изучает лучшие стратегии, просто играя против самого себя. То есть он способен «вообразить» ситуации, а затем, путем самосовершенствования, находить лучшие стратегии. Он может сделать это эффективно, потому что все другие неопределенности известны. То есть в результатах последовательности действий нет недетерминизма. Есть полная информация. Эффект от действий предсказуем. Есть способ измерить успех. Короче говоря, поведение игры в го предсказуемо, однако системы реального мира - нет.

Однако во многих контекстах реального мира мы все еще можем создавать точные симуляции или виртуальные миры. Конечно, найденные здесь методы итерации политики могут показаться применимыми к этим виртуальным мирам. Обучение с подкреплением применялось к виртуальным мирам (например, к видеоиграм и стратегическим играм). DeepMind еще не сообщал об экспериментах по использованию итерации политики в играх Atari. Большинство игр, конечно, не нуждаются в таком сложном взгляде на будущее, который требует MCTS, однако есть некоторые игры, такие как Montezuma’s Revenge, которые ему нужны. Игровые эксперименты DeepMind с Atari походили на AlphaGo Zero в том, что для обучения машины не нужны были данные человека.

Разница между AlphaGo Zero и игровыми автоматами состоит в том, что принятие решений на каждом этапе игры намного сложнее. На самом деле для разных игр требуется целый спектр решений. Является ли MCTS самым сложным алгоритмом, который нам когда-либо понадобится?

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

Эта стратегия, влияющая на недостаток памяти, на самом деле может быть выгодной. Люди, играя в стратегическую игру, будут придерживаться определенной стратегии, пока неожиданное событие не нарушит эту стратегию. Пока ходы оппонента соответствуют ожиданиям, нет необходимости менять стратегию. Однако, как мы видели в самой продвинутой автоматизации игры в покер, есть явное преимущество - всегда рассчитывать стратегию с нуля для каждого хода. Такой подход позволяет избежать телеграфирования каких-либо планов и, следовательно, является хорошей стратегией. Однако неверное направление - это стратегия, которая эффективна против людей, но не против машин, которые не обучены отвлекаться на них. (Примечание редактора: очевидно, предыдущие состояния платы используются в качестве входных данных для сети, поэтому, похоже, это наблюдение за отсутствием памяти неверно).

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

Если бы я указал на одно прагматичное открытие Deep Learning в AlphaGo Zero, то это был бы тот факт, что Policy Iteration на удивление хорошо работает с сетями Deep Learning. В предыдущих исследованиях у нас были намеки на то, что инкрементное обучение - это возможность, которая существовала. Однако DeepMind недвусмысленно показал, что постепенное обучение действительно хорошо работает.

AlphaGo Zero, похоже, также имеет эволюционные аспекты. То есть вы выбираете лучшую версию недавно обученной сети и отбрасываете предыдущую. Здесь действительно что-то происходит, что ускользает от хорошего объяснения. Самостоятельная игра по своей сути является конкурентной, а механизм MCTS - это механизм исследовательского поиска. Без исследования система в конечном итоге не сможет победить себя в игре. Чтобы быть эффективной, система должна быть склонна искать новые стратегии, чтобы избежать любого тупика. Подобно собственному эволюционному процессу природы, который не терпит пустоты, AGZ, кажется, открывает неизведанные области и каким-то образом использует эти находки.

Можно думать об этих системах так же, как и о человеческом разуме, с точки зрения языка, который мы используем. Язык - это то, что вы накладываете друг на друга все более и более сложные концепции. В случае с AlphaGo Zero он изучил новый язык, у которого нет унаследованного багажа, и выучил язык, который настолько продвинутый, что его невозможно понять. Не обязательно взаимоисключающие. Как люди, мы понимаем мир с помощью концепций, которые происходят из нашего воплощения с нашим миром. То есть мы эволюционировали, чтобы понимать визуально-пространственное, последовательность, ритм и движение. Все наше понимание происходит из этих основных примитивов. Однако машина может обнаружить концепцию, которая может быть просто не разложима на эти базовые примитивы.

Какая ирония, когда DeepMind обучал ИИ без предвзятости человека, люди обнаружили, что они этого не понимают! Это в другом измерении непонятности. Понятие «непонятность в целом» в том, что информации слишком много. Возможно, существует другое понятие - «непонятность в малом». Что есть примитивные концепции, которые мы просто не способны понять. Позвольте этому на время проникнуть в ваш разум. На самом деле это тот, который в корне шокирует, и большинство не заметит того, что DeepMind, возможно, действительно обнаружил!