Discovering Reinforcement Learning Algorithms [2020] - out-of-distribution meta-RL из древней эпохи
Не так давно мне в комментариях порекомендовали эту статью, где авторы мета-обучают RL-алгоритм на простых задачах, а затем его в меру удачно применяют на более сложных.
1) У нас есть модель агента, выдающая по состоянию s вероятностную стратегию pi и какой-то вектор y.
2) Кроме этого, у нас есть "сеть-учитель", которая и является мета-моделью. Применяется она так: после того, как агент сгенерировал траекторию из pi и y в среде, мы подаёт их в мета-модель, причём в обратном порядке. На выходе мета-модель генерирует таргеты для обучения модели.
3) Агента просто обучают с помощью ошибки между его выдачей и выданными таргетами.
4) Мета-модель обучается с помощью обычного RL. Производительность берётся у агента после его обучения, а производная берётся у действий самого агента в конце обучения. То есть нужно делать бэкпроп через весь процесс обучения агента, чтобы посчитать градиенты мета-модели.
5) Это всё не влезает в память и нестабильно работает, поэтому частично обрубают градиенты и регуляризуют обучение.
В результате модель обходит человека в ~20% игр, обходит также и некоторые классические алгоритмы в части игр, хотя мета-модель обучали только на игрушечных задачах.
Мне кажется, что само понимание, что нужно учить мета-алгоритм, который не затачивается под домен (потому что получает на вход только историю действий и какие-то вспомогательные векторы) - это круто, авторы упоминают второй столп из предыдущего поста, но выбранная мета-архитектура и параметризация вызывает огромное количество вопросов.
@knowledge_accumulator
Не так давно мне в комментариях порекомендовали эту статью, где авторы мета-обучают RL-алгоритм на простых задачах, а затем его в меру удачно применяют на более сложных.
1) У нас есть модель агента, выдающая по состоянию s вероятностную стратегию pi и какой-то вектор y.
2) Кроме этого, у нас есть "сеть-учитель", которая и является мета-моделью. Применяется она так: после того, как агент сгенерировал траекторию из pi и y в среде, мы подаёт их в мета-модель, причём в обратном порядке. На выходе мета-модель генерирует таргеты для обучения модели.
3) Агента просто обучают с помощью ошибки между его выдачей и выданными таргетами.
4) Мета-модель обучается с помощью обычного RL. Производительность берётся у агента после его обучения, а производная берётся у действий самого агента в конце обучения. То есть нужно делать бэкпроп через весь процесс обучения агента, чтобы посчитать градиенты мета-модели.
5) Это всё не влезает в память и нестабильно работает, поэтому частично обрубают градиенты и регуляризуют обучение.
В результате модель обходит человека в ~20% игр, обходит также и некоторые классические алгоритмы в части игр, хотя мета-модель обучали только на игрушечных задачах.
Мне кажется, что само понимание, что нужно учить мета-алгоритм, который не затачивается под домен (потому что получает на вход только историю действий и какие-то вспомогательные векторы) - это круто, авторы упоминают второй столп из предыдущего поста, но выбранная мета-архитектура и параметризация вызывает огромное количество вопросов.
@knowledge_accumulator