Пришло время для обучения с подкреплением. На этот раз наша главная тема — алгоритмы «актор-критик», которые лежат в основе почти всех современных методов RL, от оптимизации проксимальной политики до A3C. Итак, чтобы понять все эти новые методы, вы должны хорошо понимать, что такое Актер-Критик и как они работают.
Но не торопитесь. Давайте на мгновение освежим наши предыдущие знания. Как вы, возможно, знаете, существует два основных типа методов RL:
-
Основанный на ценности: они пытаются найти или приблизиться к оптимальному ценить функция, которая представляет собой сопоставление между действием и значением. Чем выше значение, тем лучше действие. Самый известный алгоритм — это обучение Q и все его усовершенствования, такие как Deep Q Networks, Double Dueling Q Networks и т. д.
-
Основанный на политике: основанные на политике алгоритмы, такие как градиенты политик и REINFORCE, пытаются найти оптимальную политику напрямую, без Q-значения в качестве посредника.
Каждый метод имеет свои преимущества. Например, основанные на политике лучше подходят для непрерывных и стохастических сред, имеют более быструю сходимость, а основанные на значениях более эффективны и устойчивы. Проверьте мои предыдущие сообщения об обучении с подкреплением для более подробной информации.
Когда эти два алгоритмических семейства утвердились в научных сообществах, следующим очевидным шагом будет… попытка их слияния. Так родился Актер-Критик. Актеры-критики стремятся извлечь выгоду из всех преимуществ как основанных на ценностях, так и на основе политики, устраняя при этом все их недостатки. И как они это делают?
Основная идея состоит в том, чтобы разделить модель на две части: одну для вычисления действия на основе состояния, а другую для получения значений Q действия.
Актер принимает в качестве входных данных состояние и выводит наилучшее действие. По сути, он контролирует поведение агента. изучение оптимальной политики
(на основе политики). Критик, с другой стороны, оценивает действие, вычисляя функцию ценности (на основе стоимости). Эти две модели участвуют в игре, в которой они со временем становятся лучше в своих ролях. В результате общая архитектура научится играть в игру более эффективно, чем два метода по отдельности.
Идея о том, что две модели взаимодействуют (или конкурируют) друг с другом, в последние годы становится все более популярной в области машинного обучения. Подумайте, например, о генеративно-состязательных сетях или вариационных автоэнкодерах.
Но вернемся к обучению с подкреплением. Хорошая аналогия актера-критика — мальчик с матерью. Ребенок (актер) постоянно пробует новое и исследует окружающую его среду. Он ест свои игрушки, трогает горячую духовку, бьется головой о стену (в смысле, почему бы и нет). Его мать (критик) наблюдает за ним и либо критикует, либо хвалит. Ребенок слушает, что ему говорит мама, и корректирует свое поведение. По мере того, как ребенок растет, он узнает, какие действия плохие, а какие хорошие, и, по сути, учится играть в игру под названием жизнь. Точно так же работает актер-критик.
Актер может быть аппроксиматором функции, таким как нейронная сеть, и его задача — произвести наилучшее действие для данного состояния. Конечно, это может быть полносвязная нейронная сеть, сверточная или что-то еще. Критик — еще один аппроксиматор функции, который получает на вход среду и действие актора, объединяет их и выводит значение действия (Q-значение) для заданной пары. Позвольте мне на секунду напомнить вам, что значение Q, по сути, является максимальной будущей наградой.
Обучение двух сетей выполняется отдельно и использует градиентное восхождение (чтобы найти глобальный максимум, а не минимум) для обновления обоих их весов. Со временем актер учится совершать все более и более совершенные действия (он начинает изучать политику), а критик все лучше и лучше оценивает эти действия. Важно отметить, что обновление весов происходит на каждом этапе (TD Learning), а не в конце эпизода, в отличие от градиентов политики.
Актеры-критики доказали свою способность изучать большие и сложные среды, и они использовали это во многих известных 2D- и 3D-играх, таких как Doom, Super Mario и других.
Вы устали? Потому что теперь я начинаю волноваться и планирую продолжать. Это действительно хорошая возможность поговорить о двух очень популярных улучшениях моделей актеров-критиков, A2C и A3C.
Преимущество Актер-критик (A2C)
Что такое Преимущество? Фактически значения Q можно разбить на две части: функцию ценности состояния V(s) и значение преимущества A(s, a):
Функция преимущества фиксирует, насколько лучше действие по сравнению с другими в данном состоянии, в то время как, как мы знаем, функция ценности фиксирует, насколько хорошо быть в этом состоянии.
Вы догадываетесь, куда это идет, верно? Вместо того, чтобы заставлять критика изучать ценности Q, мы заставляем его изучать ценности Преимуществ.. Таким образом, оценка действия основывается не только на том, насколько оно хорошо, но и на том, насколько лучше оно может быть. Преимущество функции преимущества (видите, что я здесь сделал?) заключается в том, что она уменьшает высокую дисперсию сетей политик и стабилизирует модель.
Критик асинхронного преимущества (A3C)
A3C, выпущенные DeepMind в 2016 году, произвели фурор в научном сообществе. Простота, надежность, скорость и достижение более высоких результатов в стандартных задачах RL сделали градиенты политик и DQN устаревшими. Ключевым отличием от A2C является асинхронная часть. А3С состоит из несколько независимых агентов(сети) со своими весами, которые параллельно взаимодействуют с другой копией среды. Таким образом, они могут исследовать большую часть пространства состояния-действия за гораздо меньшее время.
Брандомовский взгляд на обучение с подкреплением в сторону сильного ИИ
Агенты (или рабочие) обучаются параллельно и периодически обновляют глобальную сеть, которая содержит общие параметры. Обновления не происходят одновременно, отсюда и асинхронность. После каждого обновления агенты сбрасывают свои параметры на параметры глобальной сети и продолжают самостоятельное исследование и обучение в течение n шагов, пока не обновятся снова.
Мы видим, что информация течет не только от агентов в глобальную сеть, но и между агентами, поскольку каждый агент сбрасывает свои веса глобальной сетью, в которой есть информация обо всех других агентах. Умный да?
Назад к А2С
Основным недостатком асинхронности является то, что некоторые агенты будут работать со старой версией параметров. Конечно, обновление может происходить не асинхронно, а одновременно. В этом случае у нас есть улучшенная версия A2C с несколькими агентами вместо одного. A2C будет ждать, пока все агенты закончат свой сегмент, а затем обновит веса глобальной сети и сбросит все агенты.
Но. Всегда есть но. Некоторые утверждают, что нет необходимости иметь много агентов, если они синхронны, поскольку они по сути ничем не отличаются. И я согласен. На самом деле то, что мы делаем, заключается в создании несколько версий окружения и всего две сети.
Первая сеть (обычно называемая ступенчатой моделью) взаимодействует со всеми средами в течение n временных шагов параллельно и выдает набор впечатлений. Имея этот опыт, мы обучаем вторую сеть (модель поезда) и обновляем ступенчатую модель новыми весами. И повторяем процесс.
Если вас смущает разница между A2C и A3C, загляните на Reddit.
почта
Я попытался дать вам интуитивное объяснение всех этих методов, не используя много математики и кода, так как все было бы сложнее. Однако их несложно реализовать, поскольку они основаны на тех же идеях, что и градиенты политик и сети Deep Q. Если вы хотите создать свою собственную модель актера-критика, которая играет Doom check этот. И я думаю, что вы должны. Только создав вещь самостоятельно, мы сможем по-настоящему понять все аспекты, хитрости и преимущества модели.
Кстати, я пользуюсь этой возможностью, чтобы упомянуть недавно открытую библиотеку Deepmind под названием трфл. Как они утверждают, он предоставляет несколько полезных строительных блоков для реализации агента обучения с подкреплением. Я постараюсь вернуться к вам для более подробной информации.
Кроме того, если вам нужно глубже погрузиться в актерскую критику, я настоятельно рекомендую Продвинутый ИИ: курс глубокого обучения на Python на Удеми. А для тех, кто хочет знать истинное состояние современных реализаций и их вариаций, Передовой ИИ: глубокое обучение с подкреплением в Python имеет отличный дополнительный материал.
Идея объединения политики и метода, основанного на ценностях, в 2018 году считается стандартной для решения задач обучения с подкреплением. Большинство современных алгоритмов полагаются на актеров-критиков и расширяют эту основную идею до более сложных и сложных методов. Некоторые примеры: градиенты глубокой детерминации политики (DDPG), проксимальная оптимизация политики (PPO), оптимизация политики доверенной области (TRPO).
Но не будьте нетерпеливы. Мы прикроем их вовремя…
* Раскрытие информации: Обратите внимание, что некоторые из приведенных выше ссылок могут быть партнерскими ссылками, и без дополнительной оплаты для вас мы будем получать комиссию, если вы решите совершить покупку после перехода по ссылке.