tgoop.com/knowledge_accumulator/259
Last Update:
Evolution Strategies as a Scalable Alternative to Reinforcement Learning [2017] - вспомним классику
Представьте ситуацию - вы приводите свою возлюбленную на встречу со своими друзьями и знакомыми, но она слишком отличается от нормальных людей - не так выглядит, не так говорит, увлекается странными вещами. Вообще-то, вроде как, ничего такого, но, каждый раз, когда вы приводите её в свою компанию, вам немножечко стыдно про себя из-за того, что она не такая.
Именно такая социальная динамика сложилась у меня с методом Evolution Strategies. У большинства людей, когда я произношу это название, на лице можно наблюдать весьма смешанные эмоции. Пришло время и вам их испытать.
Рассмотрим следующую постановку задачи - у вас есть пространство параметров и какая-то недифференцируемая метрика качества этих параметров, которую вы хотите максимизировать. Звучит достаточно печально, не правда ли?
Однако, если пространство параметров имеет не такую большую размерность, то печаль становится не такой яркой, и существуют различные подходы к тому, как такую задачу можно решать. Evolution Strategies - один из них.
Итак, вы находитесь в текущей точке пространства параметров - Theta. Метод пытается совершить градиентный подъём в нём, но, так как градиентов-то никаких нет, мы пытаемся его оценить как бы с помощью конечной разности. Одна итерация метода выглядит так:
1) Сэмплируем N стандартных нормальных шумов
2) Генерируем N новых Theha_i = Theta + Sigma * Noise_i
3) Получаем качество в этих точках - R_i
4) Оценка градиента Grad
равна сумме по всем R_i * Noise_i / (N * Sigma)
5) Делаем шаг по нему -Theta_new = Theta + Alpha * Grad
У алгоритма есть следующие плюсы:
1) Простота - в практических кейсах, а не в статьях на NeurIPS, важно, чтобы метод был легко встраиваемый и легко дебагаемый
2) Легко масштабируемый - при наличии бесконечного компьюта, алгоритм суперлегко масштабируется. Стало в 2 раза больше компьютеров - увеличиваем N в 2 раза и улучшаем сходимость.
3) Нетребовательный к коммуникации - на первый взгляд, нам надо передавать векторы шума между обучатором и воркерами. На самом же деле можно обойтись и без этого. Если у воркера и у обучатора есть доступ к одному и тому же генератору случайных чисел, они могут восстановить из него шум. передавая лишь сид.
В статье авторы успешно обучают модель на RL-задаче с помощью ES. Конечно, метод не самый мощный с точки зрения RL - он не использует информацию об индивидуальных наградах и какие-либо реальные градиенты, тем не менее, он работает.
Я уже делал обзоры на статьи, где его применяют. Метод очень удачно ложится на тип Meta Learning, в котором вы оптимизируете модель с низким количеством параметров и большим скрытым состоянием, максимизируя её производительность на валидации. Да, речь про мой любимый VSML, эту и эту статью, где занимаются чем-то похожим.
У каждого метода есть свои плюсы, минусы, а также оптимальное время и место для применения. Призываю коллег не заниматься алгошеймингом.
@knowledge_accumulator
BY Knowledge Accumulator

Share with your friend now:
tgoop.com/knowledge_accumulator/259