Резюме доклада: «Стратегии эволюции как масштабируемая альтернатива обучению с подкреплением»

Абстрактный:

В течение долгого времени доминировали методы RL, основанные на Марковском процессе принятия решений (MDP). Но в этой статье исследуется альтернатива → Стратегии эволюции (ES). Они экспериментируют с MuJoCo и Atari - и ES конкурирует с RL!

ES очень хорошо масштабируется (более 1000 параллельных рабочих процессов), инвариантен к частоте действий и отложенным вознаграждениям, устойчив к чрезвычайно длинным горизонтам и не требует приближения значения дисконтирования / функции ценности. ES смог заставить трехмерного гуманоида ходить всего за 10 минут!

Вступление:

Одна из ключевых целей машинного обучения - выполнение сложных задач в неопределенной среде. Один из подходов связан с RL, где традиционно преобладали концепции MDP. Но есть альтернатива - оптимизация по черному ящику! Один набор оптимизаций черного ящика - ES.

Эта статья берет ES (старую идею) и возвращает ее в свет! Они могут показать, что ES конкурирует с традиционными техниками RL. Основные выводы этой статьи:

  1. Они используют виртуальную пакетную нормализацию + другие параметры, чтобы повысить надежность ES (потому что без них ES не годится).
  2. Распараллеливайте ES как сумасшедший, используя новую коммуникационную стратегию между рабочими, чтобы добиться линейного ускорения.
  3. Эффективность передачи данных ES довольно хороша (по сравнению с A3C ему требуется всего 3-10 раз больше данных). Но мы сокращаем вычисления (в 3 раза), потому что нам не нужны функции обратного распространения или значения.
  4. ES исследовал пространство поиска намного лучше, чем методы градиента политики.
  5. ES довольно устойчив к настройкам гиперпараметров.

Оптимизаторы черного ящика также обладают довольно привлекательными свойствами:

  • Безразличие к распределению наград (разреженное / плотное)
  • Нет необходимости в обратном распространении
  • Толерантность к сколь угодно долгим временным горизонтам

Но они менее эффективны в решении сложных задач RL. Эта статья надеется вдохновить на дальнейшую работу в этой области (потому что это так здорово!), Поскольку ES конкурирует с RL!

Стратегии развития:

ES - это подмножество оптимизации черного ящика, которое было вдохновлено (как вы уже догадались) эволюцией. А работает это так:

  1. У нас есть поколение организмов (итерация)
  2. У каждого организма свой геном (параметры)
  3. И эти геномы помогают организмам приспособиться. лучшие организмы (наиболее приспособленные) начинают воспроизводиться и создают следующее поколение
  4. Но это следующее поколение будет иметь другие геномы, чем предыдущее поколение, потому что их гены были мутированы (параметры нарушены (из-за шума)).
  5. Мы делаем это до тех пор, пока у нас не появятся организмы, которые хорошо подходят для окружающей среды.

Разные алгоритмы по-разному выполняют размножение, мутации и популяции. Но в этой работе основное внимание уделяется Стратегиям естественной эволюции (NES), которые работают следующим образом:

Представьте, что у нас есть коробка. Это поле называется F. Мы вводим тонну чисел (θ) в букву F и получаем одно единственное число (убыток / награда).

Теперь представьте эти числа (θ) как геном. Геном входит, и черный ящик (симулятор) диктует, насколько подходит геном. Но у вида есть не только один геном - у него есть целая популяция из них. Итак, у нас есть бог природы (p), который создает популяцию:

(Мы вернемся к ψ позже)

Этот бог природы не просто копошится и создает случайные организмы - нет! У него есть цель: создать самые лучшие организмы. AKA максимизирует среднее значение, которое выходит из черного ящика.

Хорошо, теперь у бога природы есть цель. И он пытается работать в этом направлении. Следовательно, ψ - это умение бога природы. Мы обновляем значение навыка:

И здесь аналогия рушится. Мы можем преобразовать этот градиент (как мы повышаем значение навыка), адаптируя форму, аналогичную REINFORCE из RL:

Эта работа посвящена RL. Таким образом, черный ящик (F) - это просто среда. Геномы (θ) - это параметры для функций политики (например, организмов!).

Большинство задач RL не поддаются дифференциации (вы не можете просто найти градиенты весов относительно потерь). Для ES мы также можем обойти это с помощью бога природы, который в данном случае является изотропным многомерным гауссовским (давайте просто скажем, что немецкий математик был могущественным парнем).

Среднее значение гауссианы равно ψ, и имеет фиксированную ковариацию. Таким образом, мы можем просто записать всю часть математического ожидания через θ вместо ψ:

Где ϵ - распределение Гаусса. И мы можем видеть, что параметры вводятся с шумом (масштабируются по σ).

И, сложив все вместе - вот как мы определяем градиент θ:

Мы можем описать это простым псевдокодом:

Или простой английский:

  1. Начнем с некоторых параметров θ, которые инициализируются случайным образом.
  2. Затем мы делаем несколько копий оригинала θ и добавляем в каждую из них много шума.
  3. Мы оцениваем их → у тех, кто преуспевает, будет больше веса. Те, кто не преуспевает, не будут иметь такой вес. (Более приспособленные организмы диктуют путь будущему поколению)
  4. Потом повторяем. 2 и 3 снова и снова, пока у нас не будет хорошего θ.

С другой стороны, ES также имеет уникальное преимущество - он безумно масштабируем, потому что:

  1. Нам нужно закончить целые серии, прежде чем что-либо отправлять, поэтому мы нечасто общаемся
  2. А когда мы общаемся, нам нужно только одно значение (случайные начальные числа). Каждому рабочему нужно разное случайное семя, поэтому им просто нужно знать, у кого какое семя. С другой стороны, градиентные методы должны разделять целые градиенты.
  3. Нет необходимости в функциях значений! Эти ребята не крутые, потому что нам нужно обновить их несколько раз, чтобы получить от них достаточно сигнала, плюс, когда политика изменяется, нам нужно подождать пару итераций, прежде чем функция значения догонит.

ES нужны только случайные числа и псевдокод:

И на простом английском:

  1. В процессе работы мы будем отбирать некоторый шум, вводить его в параметры и запускать моделирование.
  2. Каждый рабочий будет отправлять результаты каждого моделирования друг другу.
  3. Что знает каждый рабочий? Что ж, у них есть список результатов каждой симуляции. И они знают случайные начальные числа, связанные с каждой симуляцией. Следовательно…
  4. Они могут восстановить введенный шум, используя случайные начальные числа
  5. Наконец, обновите параметр модели, используя (введенный шум, результаты)
  6. Повторяйте петлю 1–5 снова и снова.

Кроме того, мы собираемся сделать много других интересных вещей, чтобы помочь модели:

  • На практике мы генерируем блок гауссовского шума, и случайное начальное число просто индексирует его → И это не вызывает никаких проблем. Положительным моментом является то, что восстановление введенного шума происходит очень быстро.
  • Для более крупных сетей / большего количества рабочих мы могли бы просто попросить их изменять только часть параметров.
  • Мы также используем зеркальную выборку, где мы оцениваем пары возмущений (-, ϵ).
  • Мы также занимаемся формированием фитнеса с помощью преобразователя рангов, чтобы избежать выбросов + избежать попадания в локальные оптимумы.
  • Примените уменьшение веса, чтобы параметры не были слишком большими по сравнению с отклонениями.
  • Не адаптируется σ во время обучения, потому что оно не имеет значения.
  • Ограничьте длину каждого эпизода постоянным количеством шагов - и мы корректируем это число по мере продвижения (один способ = установить его равным удвоенному среднему значению, таким образом, в худшем случае 50% ЦП утилизация)
  • Виртуальная норма партии (буквально такая же, как норма обычной партии). Это незначительные затраты (потому что они предназначены только для расчета нормализующей статистики), но предотвращает серьезную проблему: иногда, когда мы возмущаем сеть, мы в конечном итоге получаем, что все политики выполняют одно и то же действие. Virtual Batchnorm делает политику более чувствительной.
  • Иногда мы дискретизировали действия в играх с непрерывными действиями. Это сделало действия негладкими → Вызвало более широкое разнообразие поведения.

Сглаживание в пространстве параметров по сравнению с сглаживанием в пространстве действий:

Иначе известный как куда мы вводим шум! Методы градиента делают это в области действий, а ES - в области параметров .

Давайте посмотрим на это с точки зрения RL: пространство действий может быть дискретным, а политики могут быть детерминированными, что означает, что мы получим некоторые негладкие функции. К тому же мы не можем выполнить обратное распространение традиционным способом, так как это не гладко.

Теперь предположим, что у нас есть функция вознаграждения R. И она выполняет некоторые действия a. Эти действия определяются через сеть политик, которая параметризуется θ. Итак, получаем:

Теперь мы можем попытаться сделать его более плавным, добавив шума в область действия! Итак, представьте себе выходы сети. Непосредственно перед тем, как мы его софтмаксируем, мы просто добавим немного шума, чтобы немного его испортить (добавим элемент случайности). Возмущение выглядит так:

Теперь новая функция черного ящика выглядит так:

А градиент выглядит так:

Как и в предыдущем разделе, ES использует другой подход - они вводят шум непосредственно в пространство параметров. Мы получаем новые θ, добавляя шум в старые θ.

Когда ES лучше, чем градиенты политики?

Это зависит от задачи + типа оценщика градиента. Для сложных задач RL, где корреляция между отдачей и отдельными действиями мала, дисперсия для обеих оценок градиента будет выглядеть так:

Для градиентов политики дисперсия действий линейно увеличивается со временем (поскольку при каждом действии мы добавляем шум, поэтому диапазон возможных действий увеличивается). В то время как дисперсия ES не зависит от времени (что является привлекательным моментом).

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

Таким образом, ES является преимуществом, когда действия являются длительными, когда у нас очень длинные временные шаги и когда нет хороших оценок функции ценности. .

Размерность проблемы:

ES похож на оценку градиента между всеми измерениями!

Поскольку ES напоминает оценки градиента с использованием конечных разностей, на самом деле он довольно плохо масштабируется по количеству параметров (из-за увеличения пространства поиска). Это означает, что большие сети требуют больше времени для оптимизации, но не означает, что они работают хуже.

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

ES работает лучше в более крупных сетях по сравнению с меньшими - как и для подходов на основе градиента - поскольку более крупные сети имеют меньше локальных минимумов.

Преимущества отсутствия расчета градиентов:

  1. Супер масштабируемость. Нам не нужно сообщать целые градиенты - только результат вознаграждения + случайное начальное число
  2. Мы также можем иметь дело с редкими или отложенными наградами - поскольку мы сообщаем только общую награду за эпизод - в то время как методы на основе градиента имеют индивидуальные награды в точное время.
  3. Сократите вычисление для каждой серии примерно на 66%. Уменьшает объем памяти тоже!
  4. Без взрывных градиентов (как в RNN).
  5. Мы также можем использовать недифференцируемые элементы в архитектуре!
  6. Мы также можем использовать оборудование низкой точности + TPU, так как нам не нужно столько памяти.
  7. Также не обременен необходимостью настройки параметра framekip + или иерархии (которая используется в RL на основе MDP)

Эксперименты:

Сначала тестируем на MoJoCo. Это сравнение TRPO и ES - одинаковые среды, одинаковые сети. В ES нам иногда приходилось дискретизировать пространство действия, чтобы побудить к большему исследованию. Для сложных сред нам требовалось ‹10-кратное увеличение временного шага, а для простых -‹ 3-кратное.

Для Atari они тренировались на ~ 3 раза больше кадров, но они смогли распараллелить систему, чтобы она могла обрабатывать все эти эпизоды за 1 час на игру. Опубликованные результаты для A3C заняли 1 день. Окончательные результаты = результат лучше для 23 игр и хуже для 28.

Для распараллеливания не требуется никаких специальных сетей - и это использовалось на обычном Amazon EC2. Чтобы изучить задание по ходьбе трехмерных гуманоидов (одно из самых сложных), SOTA RL занимает 1 день на современном оборудовании.

ES занимает 11 часов для одной 18-ядерной машины. Но ES может масштабироваться до 80 машин + 440 ядер ЦП → в результате задача решается за 10 минут. Это на 2 порядка меньше!

Кроме того, при экспериментировании с кадровым пропуском (который является важным гиперпараметром для MDP RL) ES является надежным и на него не так сильно влияет кадровый пропуск (поскольку он инвариантен к длине эпизода:

Связанных с работой:

[Буквально цитируют 14 статей + их названия + их краткое описание]

Но главный вклад этой статьи заключается в том, что ES супер масштабируем + конкурентоспособен с SOTA RL с точки зрения производительности даже для самых сложных проблем + близок к эффективности данных + меньше времени на часы на тренировку.

Заключение:

Эта статья прошла через ES как альтернативу MDP - в результате экспериментов выяснилось, что ES конкурирует с традиционными методами RL! Он инвариантен к частоте действий и отложенным вознаграждениям, без необходимости во временном дисконтировании или функциях оценки. Что наиболее важно, ES супер масштабируемый, что делает его быстрым.

Дальнейшая работа - применение ЭС в областях, где MDP не так хорош. Плюс изучение метаобучения в RL. Кроме того, объедините ES с быстрыми реализациями NN с низкой точностью, чтобы в полной мере использовать преимущества градиента 0 ES.

Если вы хотите узнать больше: прочтите статью здесь или просмотрите сообщение в блоге OpenAI. Спасибо OpenAI за то, что всегда придумывает отличные статьи! Мне понравилась эта газета!

Спасибо за прочтение! Я Диксон, 18-летний энтузиаст машинного обучения, который рад использовать его, чтобы повлиять на миллиарды людей 🌎

Если вы хотите присоединиться к моему путешествию, вы можете подписаться на мой ежемесячный информационный бюллетень, проверить мой веб-сайт и подключиться к LinkedIn или Twitter 😃