Иными словами, вместо того чтобы учиться приводить свои выходные сигналы в соответствие с присвоенными человеком метками, сеть учится делать их согласованными от одной итерации к другой, полагая, что более поздние итерации рассчитывают ценность лучше, чем более ранние. Такой подход к обучению называется методом временных различий.
Вкратце вот как глубокое Q-обучение работает для игры Breakout (и всех остальных игр Atari). Система сообщает свое текущее состояние, которое становится входным сигналом глубокой Q-сети. Глубокая Q-сеть выдает значение ценности для каждого возможного действия. Система выбирает и выполняет действие, после чего оказывается в новом состоянии. Происходит обучение: система сообщает свое новое состояние сети, которая выдает новые значения ценности для каждого действия. Разница между новым набором ценностей и предыдущим набором ценностей считается “погрешностью” сети, и эта погрешность используется при коррекции весов в сети по методу обратного распространения ошибки. Эти шаги повторяются в ходе множества эпизодов (сеансов игры). На всякий случай уточню, что все элементы системы – глубокая Q-сеть, виртуальный “джойстик” и сама игра – представляют собой программы, работающие на компьютере.
Таков, по сути, алгоритм, разработанный специалистами DeepMind, хотя они прибегли к некоторым хитростям, чтобы усовершенствовать и ускорить его
[188]. Сначала, пока система ничему не научилась, сеть выдает случайные выходные сигналы, и система совершает случайные игровые действия. Но постепенно, по мере того как сеть узнает веса, которые улучшают выходные сигналы, игровые навыки системы совершенствуются, часто весьма радикальным образом.
Агент за 650 миллионов долларов
Специалисты DeepMind применили свой метод глубокого Q-обучения к 49 различным играм Atari в Arcade Learning Environment. Хотя программисты DeepMind использовали для каждой игры одну и ту же архитектуру сети и одни и те же настройки гиперпараметров, их система осваивала каждую игру с нуля, то есть знания системы (веса сети), полученные при освоении одной игры, не применялись, когда система начинала обучение другой игре. Чтобы освоить каждую из игр, системе требовалось несколько тысяч обучающих эпизодов, но на мощных компьютерах процесс шел довольно быстро.
Когда глубокая Q-сеть обучилась каждой игре, специалисты DeepMind сравнили навыки машины с навыками “профессионального тестировщика игр”, которому позволили для подготовки по два часа поиграть в каждую игру. Работа мечты, скажете вы? Только если вам нравится позорно проигрывать компьютеру! Программы глубокого Q-обучения, созданные DeepMind, показали лучшие результаты, чем тестировщик, более чем в половине игр. В половине из этих игр результат программ оказался более чем в два раза лучше человеческого. В половине из этих игр результат программ был более чем в пять раз выше. Настоящего триумфа DNQ-программа добилась в игре Breakout, набирая в среднем более чем в десять раз больше очков, чем человек.
Чему именно научились эти сверхчеловеческие программы? Проанализировав результаты, специалисты DeepMind выяснили, что их программы освоили очень хитрые стратегии. Так, программа для игры в Breakout научилась применять великолепную уловку, показанную на рис. 29. Программа поняла, что если выбить кирпичи таким образом, чтобы проложить узкий тоннель у края кладки, то мяч начнет скакать между “потолком” и верхним рядом кирпичей, быстро выбивая дорогие верхние кирпичи при неизменном положении ракетки.
DeepMind впервые представила свою работу в 2013 году на международной конференции по машинному обучению
[189]. Собравшиеся были поражены. Менее года спустя Google объявила о покупке DeepMind за 440 миллионов фунтов стерлингов (около 650 миллионов долларов на момент заключения сделки) – вероятно, благодаря этим результатам. Да, обучение с подкреплением порой приносит солидные награды.
Получив огромные деньги и доступ к ресурсам Google, специалисты DeepMind – которая теперь называется Google DeepMind – поставили перед собой более серьезную задачу, входящую в число “больших вызовов” ИИ: создать программу, лучше людей играющую в го. Разработанная DeepMind программа AlphaGo стала логическим продолжением долгой истории ИИ в настольных играх. Давайте для начала кратко изложим эту историю, что поможет нам понять, как работает AlphaGo и почему это так важно.
Рис. 29. Программа компании DeepMind освоила стратегию проброса мяча сквозь кирпичи при игре в Breakout, что позволило ей быстро уничтожать дорогие кирпичи верхних рядов, благодаря отскокам мяча от потолка
Шахматы и шашки
В 1949 году инженер Артур Сэмюэл поступил на работу в лабораторию IBM, расположенную в Покипси, в штате Нью-Йорк, и сразу приступил к программированию ранней версии компьютера IBM 701 для игры в шашки. Если у вас есть опыт в компьютерном программировании, вы оцените стоявшую перед ним задачу: как отметил один историк, “Сэмюэл первым решил написать серьезную программу для IMB 701, а потому не имел возможности использовать системные утилиты [то есть, по сути, не имел операционной системы!]. В частности, у него не было ассемблера, поэтому ему приходилось прописывать все операционные коды и адреса”
[190]. Для читателей, не имеющих опыта в программировании, поясню: это все равно что строить дом, имея лишь ручную пилу и молоток. Созданная Сэмюэлом программа для игры в шашки стала одной из первых программ машинного обучения – и именно Сэмюэл ввел в обиход сам термин “машинное обучение”
[191].