Обучение с подкреплением (Reinforcement Learning) делится на два больших класса: Model-Free и Model-Based. В первом случае действия оптимизируются напрямую по сигналу награды, а во втором нейросеть является только моделью реальности, а оптимальные действия выбираются с помощью внешнего планировщика. У каждого подхода есть свои достоинства и недостатки.
Разработчики из Berkeley и Google Brain представили Model-Based алгоритм PDDM с улучшенным планировщиком, позволяющий эффективно обучаться сложным движениям с большим числом степеней свободы на небольшом числе примеров. Чтобы научиться вращать мячи в роботизированной руке с реалистичными суставами пальцев с 24 степенями свободы, потребовалось всего 4 часа практики на реальном физическом роботе.
Обучение с подкреплением (Reinforcement Learning) — это обучение роботов по сигналу награды. Это похоже на то, как учатся живые существа. Но проблема осложняется тем, что неизвестно как нужно изменять веса нейросети, чтобы предлагаемые ею действия вели к увеличению награды. Поэтому в Reinforcement Learning обычные методы обучения нейросетей не подходят. Ведь неизвестно, что именно она должна выдавать на своем выходе, а значит невозможно найти ошибку между ее предсказанием и реальным положением вещей. Чтобы пропустить эту разницу обратно по слоям нейросети и изменить веса между нейронами, чтобы минимизировать эту ошибку. Это классический алгоритм обратного распространения ошибки, которым обучают нейросети.
Поэтому учеными было изобретено несколько способов, как решить эту задачу.
Model-Free
Одним из самых эффективных подходов оказалась модель actor-critic (актер-критик). Пусть одна нейросеть (actor) на своем входе получает состояние окружающей среды state, а на выходе выдает действия actions, которые должны вести к увеличению награды reward. Пока эти действия случайные и просто зависят от прохождения сигнала внутри сети, так как нейросеть еще не обучена. А вторая нейросеть (critic) пусть на вход получает тоже состояние окружающей среды state, но еще и действия actions с выхода первой сети. А на выходе пусть предсказывает только награду reward, которая будет получена, если применить эти действия.
А теперь следите за руками: какие должны быть на выходе первой сети оптимальные действия actions, ведущие к увеличению награды, мы не знаем. Поэтому с помощью алгоритма обратного распространения ошибки обучить ее не можем. А вот вторая нейросеть очень даже может предсказывать точное значение награды reward (а точнее, обычно ее изменение), которую она получит, если сейчас применить действия actions. Так давайте возьмем градиент изменения ошибки из второй сети, и применим его к первой! Так можно обучать первую нейросеть классическим методом обратного распространения ошибки. Просто ошибку берем не из выходов первой сети, а из выходов второй.
В итоге первая нейросеть обучится выдавать оптимальные действия, ведущие к увеличению награды. Потому что если критик critic ошибся и предсказал меньшую награду, чем оказалась в реальности, то градиент этой разницы будет двигать действия актера actor в направлении, чтобы критик точнее предсказывал награду. А значит в сторону более оптимальных действий (ведь именно они приведут к тому, что критик точно предскажет более высокую награду). Аналогичный прицип работает и в обратную сторону: если критик завысил ожидаемую награду, разница между ожиданием и реальностью будет понижать выходы actions у первой нейросети, которые привели к этому завышенному показанию reward у второй сети.
Как видите, в этом случае действия оптимизируются напрямую по сигналу награды. Это общая суть всех Model-Free алгоритмов в Reinforcement Learning. Именно они являются state-of-the-art на данный момент.
Их преимуществом является то, оптимальные действия ищутся градиентным спуском, поэтому в итоге находятся самые оптимальные. А значит показывающие лучший результат. Другим преимуществом является возможность использовать маленькие (а значит быстрее обучаемые) нейросети. Если из всего многообразия факторов окружающей среды ключевыми для решения задачи являются какие-то конкретные, то градиентный спуск вполне способен их выявить. И использовать для решения задачи. Эти два преимущества обеспечили успех прямым Model-Free методам.
Но у них есть и недостатки. Так как действия обучаются напрямую по сигналу награды, то нужно много обучающих примеров. Десятки миллионов даже для очень простых случаев. Они плохо работают на задачах с большим числом степеней свободы. Если алгоритму сразу не удастся выявить ключевые факторы среди ландшафта высокой размерности, то он скорее всего вообще не обучится. Также Model-Free методы могут эксплуатировать уязвимости в системе, зацикливаясь на неоптимальном действии (если к нему сошелся градиентный спуск), игнорируя остальные факторы окружающей среды. Для даже немного отличающихся задач Model-Free методы приходится обучать полностью заново.
Model-Based
Model-Based методы в Reinforcement Learning в корне отличаются от описанного выше подхода. В Model-Based нейросеть только предсказывает что будет дальше. Не предлагая никаких действий. То есть, является просто моделью реальности (отсюда "Model"-Based в названии). А вовсе не системой принятия решений.
На вход Model-Based нейросети подают текущее состояние окружающей среды state и какие хотим совершить действия actions. А нейросеть предсказывает как изменится в будущем state после применения этих действий. Она может также предсказывать какая будет награда reward в результате этих действий. Но это не обязательно, так как награду обычно можно вычислить из известного state. Далее этот выходной state можно подать обратно на вход нейросети (вместе с новыми предполагаемыми actions), и так рекурсивно предсказывать изменение внешней окружающей среды на много шагов вперед.
Model-Based нейросети очень легко обучаются. Так как они просто предсказывают как будет изменяться мир, не делая никаких предложений какие должны быть оптимальные действия, чтобы награда увеличивалась. Поэтому Model-Based нейросеть использует для своего обучения все существующие примеры, а не только те, что ведут к увеличению или уменьшению награды, как это происходит в Model-Free. Это причина того, почему Model-Based нейросетям нужно намного меньше примеров для обучения.
Единственным недостатком является то, Model Based нейросеть должна изучить реальную динамику системы, а значит должна обладать достаточной емкостью для этого. Model-Free нейросеть может сойтись на ключевых факторах, игнорируя остальные, и поэтому быть маленькой простой сетью (если задача в принципе решаема меньшими ресурсами).
Другим большим преимуществом, помимо обучения на меньшем на порядки числе примеров, является то, что будучи универсальной моделью мира, единственную Model-Based нейросеть можно использовать для решения любого числа задач в этом мире.
Главная проблема в Model-Based подходе — а какие, собственно, действия actions подавать нейросети на вход? Ведь нейросеть сама не предлагает никаких оптимальных действий.
Самый простой способ — это прогонять через такую нейросеть десятки тысяч случайных действий и выбрать те, для которых нейросеть предскажет наибольшую награду. Это классический Model-Based Reinforcement Learning. Однако при больших размерностях и длинных временных цепочках, число возможных действий получается слишком велико чтобы их все перебрать (или даже угадать хотя бы немного оптимальные).
По этой причине Model-Based методы обычно уступают Model-Free, которые градиентным спуском напрямую сходятся к самым оптимальным действиям.
Улучшенная версия, применимая к движениям в робототехнике — это использовать не случайные actions, а сохранять предыдущее движение, добавляя случайность по нормальному распределению. Так как движения роботов обычно плавные, это позволяет сократить число переборов. Но при этом можно упустить важное резкое изменение.
Конечным вариантом развития такого подхода можно считать CEM вариант, в котором используется не фиксированное нормальное распределение, вносящее случайности в текущую траекторию actions, а подбирающее параметры случайного распределения с помощью кросс-энтропии. Для этого запускается популяция расчетов actions и лучшие из них используются для уточнения разброса параметров в следующем поколении. Что-то вроде эволюционного алгоритма.
PDDM
Такое длинное вступление понадобилось для того, чтобы объяснить что происходит в новом предложенном PDDM Model-Based алгоритме обучения с подкреплением. Прочитав статью в Berkeley AI блоге (или расширенную версию), и даже оригинальную статью arxiv.org/abs/1909.11652, это могло быть не очевидно.
PDDM метод повторяет идею CEM при выборе случайных действий actions, которые надо прогнать через Model-Based нейросеть, чтобы выбрать действия с максимальной предсказываемой наградой. Только вместо подбора параметров случайного распределения, как это делается в CEM, PDDM использует временную корреляцию между actions и более мягкое (soft) правило обновления случайного распределения. Формула приведена в оригинальной статье. Это позволяет проверить большее число подходящих actions на длинных временных дистанциях, особенно если движения требуют точной координации. Дополнительно авторы алгоритма фильтруют кандидатов в actions, получая тем самым более плавную траекторию движений.
Проще говоря, разботчики просто предложили более удачную формулу для выбора случайных actions для проверки в классическом Model-Based Reinforcement Learning.
Но результат получился очень хорошим.
Всего за 4 часа тренировки на реальном роботе, роборука с 24 степенями свободы научилась удерживать два шара и вращать их в ладони, не роняя. Недостижимый результат для любых современных Model-Free методов на таком малом числе примеров.
Что интересно, для обучения они использовали вторую роборуку с 7 степенями свободы, которая подбирала уроненные мячи и возвращала их в ладонь основной роборуке:
В итоге уже через 1-2 часа роборука могла уверенно удерживать шары и передвигать их в ладони, а 4 часов оказалось достаточно для полного обучения.
Обратите внимание на дерганные движения пальцев. Это характерная особенность Model-Based подходов. Так как предполагаемые actions выбираются случайно, то не всегда совпадают с оптимальными. Model-Free алгоритм потенциально мог бы сойтись на действительно оптимальных плавных движениях.
Однако Model-Based подход позволяет с одной обученной нейросетью, моделирующей мир, решать разные задачи без ее переобучения. В статье есть несколько примеров, например можно без проблем поменять направление вращения шаров в руке (в Model-Free пришлось бы заново обучать нейросеть для этого). Или удерживать мяч в конкретной точке ладони, следуя за красной точкой.
Также можно заставить роборуку рисовать карандашом произвольные траектории, обучение чему для Model-Free методов очень сложная задача.
Хотя предложенный алгоритм не является панацеей, и даже не является ИИ алгоритмом в полном смысле этого слова (в PDDM нейросеть просто заменяет аналитическую модель, а решения принимаются случайным поиском с хитрым правилом, уменьшающем число переборов вариантов), он может быть полезен в робототехнике. Так как показал заметное улучшение результатов и обучается на очень маленьком числе примеров.
Автор: DesertFlow