Часть III • Продвинутые возможности глубокого обучения с TensorFlow.js
сети стратегий. Хотя этот алгоритм и может показаться сложным, интуитивно он
очень прост. Возвращаемый градиент указывает сети стратегий, как нужно изменить
весовые коэффициенты, чтобы выбирать варианты, более похожие на фактически
выбранные. Градиенты в совокупности с вознаграждениями от эпизодов обучения
и составляют основу данного метода обучения с подкреплением. Именно поэтому
он относится к семейству методов RL, которые называются
градиентным спуском
по стратегиям
(policy gradients).
Рис. 11.5.
Блок A: применение дисконтирования (уравнение (11.1)) к вознаграждениям эпизода
длительностью четыре хода. Блок Б: то же самое, что и в блоке A, только длительность эпизода
составляет 20 ходов (то есть в пять раз больше, чем в блоке A). В результате дисконтирования
действия в начале каждого эпизода обладают большей ценностью, чем действия ближе к его концу
Глава 11. Основы глубокого обучения с подкреплением
441
Листинг 11.3.
Получаем градиенты для весовых коэффициентов, сравнивая логиты
и фактические действия
Во время обучения агент получает возможность сыграть некоторое количество
игр (скажем,
N
) и собрать все дисконтированные вознаграждения в соответствии
с уравнением 11.1, а также градиенты со всех ходов. Далее мы вычисляем соче
тание дисконтированных вознаграждений с градиентами, умножая градиенты на
нормализованную версию дисконтированных вознаграждений. Нормализация
вознаграждений играет здесь важную роль, смещая линейно и масштабируя все дис
контированные вознаграждения от
N
игр так, чтобы их суммарное среднее значение
было равно 0, а суммарное среднеквадратичное отклонение — 1. Пример применения
такой нормализации к дисконтированным вознаграждениям приведен на рис. 11.6,
где показаны нормализованные дисконтированные вознаграждения в случае кратко
го (длина — 4) и более длинного (длина — 20) эпизода. Из этого рисунка должно
быть ясно, каким шагам отдает предпочтение алгоритм REINFORCE: действиям,
произведенным в начале и середине более длинного эпизода. И напротив, всем
шагам более короткого эпизода (длина — 4) присваиваются
отрицательные
вели
чины. Что означает отрицательное нормализованное вознаграждение? А то, что при
обновлении на его основе весовых коэффициентов сети стратегий в будущем сеть
при получении такого же состояния на входе будет стремиться выбрать
другой
курс
действий. В отличие от положительного вознаграждения, при котором сеть будет
стремиться в будущем выбирать
такие же
действия при получении такого же со
стояния на входе.
Код для нормализации дисконтированных вознаграждений и масштабиро
вание с его помощью градиентов довольно громоздки, но не сложны. Ради эко
номии места мы не станем его здесь приводить, но найти его можно в функции
scaleAndAverageGradients()
файла
cart-pole/index.js
. Для обновления весо
вых коэффициентов сети стратегий используются масштабированные градиен
ты. После обновления весовых коэффициентов сеть стратегий выдает на выходе
б
ó
льшие логиты для действий с тех шагов, которым были поставлены в соответ
ствие более высокие дисконтированные вознаграждения, и меньшие логиты — для
действий с тех шагов, которым были поставлены в соответствие более низкие дис
контированные вознаграждения.
Do'stlaringiz bilan baham: |