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

Наиболее общую модель обучения с подкреплением можно увидеть ниже. Агент производит действие (A) в время (t), которое приводит к некоторым изменениям в окружающей среде. На следующем этапе происходит обновление состояния(S) + некоторое вознаграждение (R), отправляемое агенту. Процесс может продолжаться бесконечно, пока не будет достигнута определенная цель или агент просто не «умрет».

Если мы хотим, чтобы агент научился некоторому значимому поведению, мы должны правильно определить, как агент может рассчитывать свое вознаграждение. Представьте себе один уровень Pac-Man.

Pac-Man дается определенное количество времени, чтобы собрать как можно больше точек. Было бы довольно легко параметризовать награду в такой игре, как Pac-Man, например, количество гранул, которые вы получите до того, как истечет таймер или вы умрете. Другими словами, вы можете сложить все дробинки за каждое действие до конца игры. Это называется ожидаемым доходом (G), который представляет собой сумму каждой награды (R) с момента (t) до конца игры (T).

Хотя формула кажется простой, как мы можем рассчитать ожидаемый доход от игры без конца? Разве ожидаемая прибыль не будет бесконечной? Представьте себе беспилотный автомобиль, бесконечно едущий по дороге. Его наградой будет то, что он останется на своей полосе, и он потеряет награды, если выйдет за пределы полосы. Мы можем рассчитать вознаграждение за постоянное поведение, расставив более приоритетные награды в будущем, чем вознаграждения, находящиеся в более отдаленном будущем. В конце концов, какой смысл оставаться на полосе движения через 100 миль, когда прямо перед вами препятствие?

Это приведет к ограниченному вознаграждению благодаря математическому свойству, называемому сходимостью. Этот метод установления более высокого приоритета текущих вознаграждений по сравнению с будущими вознаграждениями называется дисконтированной доходностью, формула которого приведена ниже. Вместо того, чтобы просто складывать все условия, как раньше, каждое вознаграждение умножается на некоторый коэффициент (γ). Пока γ равно ‹ 1 и › 0, ценность каждой последующей награды во времени будет все ниже и ниже.

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

Аналогичным образом существует функция значения действия(q sub-π(s, a)), которая вычисляет, насколько хорошо действие соответствует состоянию s и политике π. Уравнение можно увидеть ниже:

Эти функции важны, поскольку они позволяют осуществлять обучение. При этом цель состоит в том, чтобы найти политику, которая приведет к наибольшему вознаграждению, называемую оптимальной политикой. Более конкретно, оптимальная политика — это та, в которой результат функции значения состояния больше, чем все другие политики для каждого отдельного состояния. Также существуют оптимальная функция значения состояния и оптимальная функция значения действия, обозначаемая знаком «sub-*»рядом с функцией.

Давайте окунемся обратно в наш мир игр. Мы говорили об агентах, таких как наш дорогой друг Пакман, которые перемещаются по лабиринтам и собирают точки. А теперь представьте, если бы у Пак-Мэна был секретный дневник, в котором он делал заметки о том, как приятно совершать определенные действия в определенных местах лабиринта. Этот дневник с точки зрения обучения с подкреплением похож на Q-таблицу. Давайте немного упростим лабиринт Pac-Man, ограничим его областью ниже и скажем, что Pac-Man делает 6 ходов, прежде чем игра закончится. Гранулы стоят 1 очко, а вишня — 10.

Когда начинается обучение, дневник пуст; Pac-Man совершенно не осознает, насколько полезным является каждое место. Поскольку каждая точка имеет одинаковый вес, Pac-Man будет предпринимать совершенно случайные действия, заполняя Q-таблицу тем, что он находит в каждой точке.

По мере того, как Pac-Man проходит итерацию за итерацией игры, может возникнуть проблема. Представьте, что Pac-Man начал свое первое действие в самой первой итерации игры. Тогда при каждой второй итерации игры Пак-Ман будет двигаться влево, поскольку он знает, что слева есть шарик, и думает, что справа нет шарика. Он никогда не найдет вишню, потому что он отдает приоритет тем местам, где, как он знает, находятся дробинки, поскольку его цель — максимизировать возможное количество очков на каждой итерации.

По этой причине решения, которые Пак-Ман принимает в начале процесса обучения, должны принимать некоторую степень случайности, называемую скоростью исследования(ε). Исследование – это когда агент игнорирует, какое следующее действие принесет наибольшую ценность, вместо этого выбирает случайное. Напротив, выбор агентами лучшего действия для данного сценария называется эксплуатацией. Этот тонкий баланс между выбором эксплуатации и исследования ограничен скоростью исследования, ε от 0 до 1. При каждом действии генерируется случайное число от 0 до 1. Если число больше скорости исследования, агент выберет наилучшее возможное действие (эксплуатацию) и случайное действие (исследование), если число меньше скорости исследования.

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