446
Часть III • Продвинутые возможности глубокого обучения с TensorFlow.js
Рис.
11.8.
Схематическая иллюстрация основанного на алгоритме REINFORCE подхода к
решению задачи по удержанию равновесия шеста
на тележке. Эта схема
— расширенный вариант схемы с
рис.
11.4
Глава 11. Основы глубокого обучения с подкреплением
447
11.3. Оценочные сети и Q-обучение: пример
игры «Змейка»
В качестве примера для обсуждения Qобучения возьмем классическую экшенигру
«Змейка». Как и в предыдущем разделе, мы сначала сформулируем задачу RL и про
блемы, которые она ставит перед разработчиками. В ходе этого мы также обсудим,
почему градиенты по стратегиям и алгоритм REINFORCE плохо подходят для ее
решения.
11.3.1. «Змейка» как задача обучения с подкреплением
Впервые появившись среди аркад 1970х годов, «Змейка» быстро стала популярным
жанром компьютерных игр. Каталог snakedqn из репозитория tfjsexamples вклю
чает JavaScriptреализацию простого ее варианта. Извлечь код можно с помощью
следующих команд:
git clone https://github.com/tensorflow/tfjs-examples.git
cd tfjs-examples/snake-dqn
yarn
yarn watch
На открываемой командой
yarn
watch
вебстранице вы увидите доску для игры
«Змейка». Можете загрузить размещенную на сервере предобученную модель глу
бокой Qсети (deep Qnetwork, DQN) и посмотреть, как она играет в игру. Позднее
мы поговорим о том, как обучить подобную модель с нуля, а пока что вам достаточно
понаблюдать за игрой, чтобы составить себе представление о том, как она работает.
На случай, если игра «Змейка» вам незнакома, вот ее основные правила и настройки.
Вопервых, все действия происходят в мире размером 9
×
9 (см. пример на
рис. 11.9). Этот мир (доску) можно увеличить, но в нашем примере по умолчанию
размер равен 9
×
9. Клетки доски делятся на три типа: змейка, фрукты и пустое про
странство. Змейка состоит из синих клеток, за исключением головы, окрашенной
в оранжевый цвет с полукругом, изображающим ее рот. Фрукты изображаются в виде
зеленых клеток с кругом внутри. Пустые клетки — белого цвета. Игра состоит из хо
дов — или, на языке компьютерных игр,
кадров
(frame). На каждом ходе агент должен
выбрать одно из трех возможных действий змейки: двигаться прямо, повернуть налево
или повернуть направо (оставаться на месте нельзя). Агент получает положительное
вознаграждение, если голова змейки соприкасается с клеткой фрукта, в случае чего
клетка фрукта исчезает (змейка ее «съедает»), длина змейки увеличивается на едини
цу со стороны хвоста, а на одной из пустых клеток появляется новый фрукт. Игра за
вершается (змейка «умирает»), когда голова змейки выходит за границы (как в блоке
Б на рис. 11.9) или натыкается на ее собственное тело (как в блоке В).
Одна из главных трудностей при игре в «Змейку» — ее (змейки) рост. Если бы
не это правило, игра была бы намного проще и можно было бы просто направлять
змейку на фрукты все снова и снова, а вознаграждение агента было бы потенциаль
но неограниченным. При наличии правила о росте змейки, однако, агент должен
448
Do'stlaringiz bilan baham: |