Система DeepMind учится играть в Breakout в ходе множества эпизодов. Каждый эпизод соответствует одному сеансу игры, а каждая итерация в рамках эпизода – одному действию системы. В частности, на каждой итерации система вводит свое состояние в DQN и выбирает действие на основании выходных значений DQN. Система не всегда выбирает действие с наибольшей расчетной ценностью: как я упоминала выше, обучение с подкреплением требует баланса исследования-использования[186]. Система выполняет выбранное действие (например, передвигает ракетку на некоторое расстояние влево) и, возможно, получает вознаграждение, если мяч попадает в один из кирпичей. Затем система совершает обучающий шаг, то есть обновляет веса в DQN по методу обратного распространения ошибки.
Как происходит обновление весов? В этом заключается главное различие обучения с учителем и обучения с подкреплением. Как вы помните из предыдущих глав, метод обратного распространения ошибки подразумевает изменение весов нейронной сети с целью снижения погрешности ее выходных сигналов. При обучении с учителем погрешность оценивается непосредственно. Помните описанную в главе 4 гипотетическую сверточную нейронную сеть, которая училась классифицировать фотографии, распознавая на них кошек и собак? Если на входной обучающей фотографии была собака, но выходная уверенность в категории “собака” составляла всего 20 %, то погрешность такого выходного сигнала равнялась 100 % – 20 % = 80 %. Иными словами, при идеальном раскладе выходная уверенность должна была быть на 80 % выше. Сеть могла рассчитать погрешность, потому что сверялась с меткой, присвоенной человеком.
Но в обучении с подкреплением меток нет. Конкретному кадру игры не присвоена метка с действием, которое необходимо предпринять. Как же в таком случае оценить погрешность выходного сигнала?
Вот ответ. Как вы помните, если вы обучающийся агент, то ценность действия в текущем состоянии определяется на основании вашей оценки того, насколько велико вознаграждение, которое вы получите в конце эпизода, выбрав это действие (и продолжая выбирать высокоценные действия). Эта оценка должна становиться лучше по мере приближения к концу эпизода, когда вы сможете провести учет всех полученных вознаграждений! Главное понимать, что выходные сигналы сети на текущей итерации точнее, чем на предыдущей итерации. В таком случае обучение заключается в том, чтобы корректировать веса сети (используя метод обратного распространения ошибки) с целью минимизации различия между выходными сигналами на текущей и предыдущей итерации. Один из разработчиков этого метода Ричард Саттон говорит, что здесь “догадка уточняется на основе догадки”[187]. Я внесу небольшую поправку: “догадка уточняется на основе лучшей догадки”.
Иными словами, вместо того чтобы учиться приводить свои выходные сигналы в соответствие с присвоенными человеком метками, сеть учится делать их согласованными от одной итерации к другой, полагая, что более поздние итерации рассчитывают ценность лучше, чем более ранние. Такой подход к обучению называется методом временных различий.
Вкратце вот как глубокое Q-обучение работает для игры Breakout (и всех остальных игр Atari). Система сообщает свое текущее состояние, которое становится входным сигналом глубокой Q-сети. Глубокая Q-сеть выдает значение ценности для каждого возможного действия. Система выбирает и выполняет действие, после чего оказывается в новом состоянии. Происходит обучение: система сообщает свое новое состояние сети, которая выдает новые значения ценности для каждого действия. Разница между новым набором ценностей и предыдущим набором ценностей считается “погрешностью” сети, и эта погрешность используется при коррекции весов в сети по методу обратного распространения ошибки. Эти шаги повторяются в ходе множества эпизодов (сеансов игры). На всякий случай уточню, что все элементы системы – глубокая Q-сеть, виртуальный “джойстик” и сама игра – представляют собой программы, работающие на компьютере.
Таков, по сути, алгоритм, разработанный специалистами DeepMind, хотя они прибегли к некоторым хитростям, чтобы усовершенствовать и ускорить его[188]. Сначала, пока система ничему не научилась, сеть выдает случайные выходные сигналы, и система совершает случайные игровые действия. Но постепенно, по мере того как сеть узнает веса, которые улучшают выходные сигналы, игровые навыки системы совершенствуются, часто весьма радикальным образом.
Агент за 650 миллионов долларов