На интуитивном уровне довольно легко понять, что такое RL. Это как собаки Павлова — даешь компьютеру лакомство, а он сильнее нажимает на рычаг. Вы ругаете компьютер, и он останавливается. (Но поскольку компьютеры тупые, вам даже не нужно давать ему удовольствие — просто дайте ему крутую положительную награду, и он будет удовлетворен.) В RL вещь, которую вы обучаете, называется агентом.

Многие исследования RL проводятся в видеоиграх, потому что они представляют собой контролируемую среду, которую люди могут легко наблюдать, чтобы увидеть, как работает модель RL. Но модели RL также используются в робототехнике и, как известно, в игре AlphaZero от DeepMind.

Так как же сделать это с помощью нейронной сети? Для непосвященных: нейронные сети — это набор математических уравнений, которые принимают некоторые данные в качестве входных данных и пытаются сделать прогноз. Они учатся, пытаясь сделать прогноз, затем наблюдая, насколько далеко их прогноз от правильного ответа, затем корректируя все числа в математике, чтобы немного приблизиться к правильному ответу.

В обучении с подкреплением вы не можете этого сделать. «Правильный ответ», которому вы пытаетесь научить агента, — это серия действий для получения вознаграждения. Например, собакам Павлова нужно осмотреться, найти рычаг, подойти к нему и нажать на него. Обычно шаги, которые вы изучаете с помощью RL, слишком сложны, чтобы указывать их вручную. Если бы поведение было достаточно простым, чтобы его можно было указать, то вы могли бы просто запрограммировать решение вручную, и вам не понадобилось бы обучение с подкреплением.

Поскольку правильный ответ трудно указать явно, обучение с подкреплением использует свой опыт поиска вознаграждения в качестве примера для обучения. Часто он начинает со случайного исследования, затем останавливается на лучших найденных стратегиях и пробует их снова и снова.

Шаг вперед 2: улицы

Давайте углубимся в то, как агент учится нажимать на рычаг. Агенты RL обычно тренируются по серии «эпизодов» или «траекторий». Вы можете думать об этом как о жизни в видеоигре. Агент играет в игру, а затем проверяет свой счет в конце, прежде чем нажать «повторить попытку».

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

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

Давайте объединимся

В отличие от классических задач NLP или CV, обучение с подкреплением фактически создает свои собственные обучающие данные путем исследования. Насколько я могу судить, это делает тренировки более нестабильными. Если программист запутается в исследовании, агент может никогда не научиться желаемому поведению. Это также означает, что агенты RL должны узнать, какие действия на самом деле привели к вознаграждению, а какие были излишними. Собака получила угощение, потому что нажала на рычаг, или просто потому, что она очень хороший мальчик?

Решение, которое алгоритмы RL от Spinning Up, включает в себя обучение второй нейронной сети, которая пытается предсказать вознаграждение в любом заданном сценарии. Нейронная сеть вознаграждения называется «критик», а та, которая выбирает, что делать, называется «актер». Критик может быть обучен в традиционном стиле NN — он рассматривает все, что когда-либо происходило в опыте агента, и вознаграждения, которые агент получил, и использует это для прогнозирования будущих вознаграждений. Критику можно использовать двумя способами:

  1. «По политике»: критик сообщает актору, насколько хорошими были бы другие действия, которые он мог бы совершить, — чтобы актор мог увидеть, в основном, насколько лучше он поступает, чем средний результат для этой ситуации (который называется «преимуществом»). »). Затем нейронная сеть актера может научиться корректировать свои веса, чтобы делать больше того, что дало вознаграждение, или меньше того, что не дало вознаграждения. И актер, и критик учатся одновременно, поэтому по мере того, как критик лучше понимает, в чем заключается награда, актер лучше ее находит.
  2. «Вне политики»: актер учится, повторяя прошлые действия против критика, который скажет актеру, узнали ли мы что-то новое, что говорит нам, действительно ли это было хорошее действие. Например, может быть, есть более короткий путь к рычагу, чем тот, который агент выбрал, когда впервые нашел рычаг. Актер может воспроизвести прошедшее смоделированное действие по этому пути, которое не было успешным, и критик может сказать: «О, на самом деле это выглядит многообещающе», чтобы актер мог позже попробовать это в реальном мире.

Не могли бы вы еще раз объяснить мне, что такое политика или не политика?

Я нашел их запутанными, чтобы отслеживать, потому что я не нашел их имена интуитивно понятными, поэтому я собираюсь углубиться в это.

Существует ряд алгоритмов каждого типа, хотя в целом они ведут себя одинаково.

Согласно политике означает, что актер изучает поведение, затем тестирует его некоторое время, затем обновляет актера на основе того, что он узнал, а затем обновляет критика на основе того, что он узнал. Это называется «политикой», потому что агент учится только в результате действий, которые он предпринимает в «реальном» мире, а агент иногда называют «политикой» в RL.

Неправильное означает, что через некоторое время после того, как об этом узнали, актер воспроизводит свой прошлый опыт, но с новыми ожидаемыми наградами, основанными на том, что узнал критик. Он попробует эти старые действия против критика, и критик, возможно, узнает, что они лучше или хуже, чем они изначально думали (потому что теперь они знают о новых действиях, которые можно предпринять после этого первоначального действия). Это называется «вне политики», потому что агент учится на смоделированных действиях, которые сам агент (политика) никогда бы не выбрал.

Какая разница, практически? Подход, основанный на политике, не будет ошибочно догадываться, что действие ведет к вознаграждению, потому что так сказал критик — он учится только тогда, когда действительно получает вознаграждение в «реальном» мире. Но это может занять много времени. Кроме того, поскольку подход, основанный на политике, пробует только то, что агент уже научился делать, он может игнорировать новые пути, которые критик считает многообещающими и которые следует опробовать. Это может привести к лучшим результатам для внеполитического обучения.

Вы не должны верить мне на слово

Находите это полезным или интересным? Не благодарите меня — поблагодарите Джошуа Ачиама из OpenAI, который собрал Spinning Up! И спасибо Брайану Кристиану за Проблему выравнивания, чье объяснение RL было очень полезным для получения контекста и информирования моего понимания здесь. Многое из того, что я здесь говорю, является просто повторением их работы. (Кроме того, пожалуйста, проверьте мою работу, перейдя прямо к источнику.)