Когда использовать определенный алгоритм обучения подкрепления?
Я изучаю Укрепление обучения и чтение книги Саттона для университетского курса. Помимо классических алгоритмов PD, MC, TD и Q-Learning, я читаю о методах градиента политики и генетических алгоритмах решения проблем решения.
У меня никогда не было опыта в этой теме, и у меня возникают проблемы с пониманием того, когда метод должен быть предпочтительнее другого. У меня есть несколько идей, но я не уверен в них. Может кто-нибудь кратко объяснить или рассказать мне источник, где я могу найти что-то о типичной ситуации, когда нужно использовать определенные методы? Насколько я понимаю:
- Динамическое программирование и линейное программирование должны использоваться только тогда, когда MDP имеет несколько действий и состояний, а модель известна, поскольку она очень дорога. Но когда DP лучше LP?
- Методы Монте-Карло используются, когда у меня нет модели проблемы, но я могу сгенерировать образцы. Он не имеет предвзятости, но имеет большую дисперсию.
- Временные методы разности должны использоваться, когда методы MC требуют слишком большого количества выборок, чтобы иметь небольшую дисперсию. Но когда я должен использовать TD и Q-Learning?
- Градиент политики и генетические алгоритмы хороши для непрерывных MDP. Но когда кто-то лучше другого?
Точнее, я думаю, что для выбора методов обучения программист должен задать себе следующие вопросы:
- Агент изучает онлайн или офлайн?
- Можно ли отделить изучение и использование фаз?
- можем ли мы провести достаточно исследований?
- является горизонтом MDP конечным или бесконечным?
- непрерывны состояния и действия?
Но я не знаю, как эти детали проблемы влияют на выбор метода обучения.
Я надеюсь, что у какого-то программиста уже есть некоторый опыт в методах RL и он может помочь мне лучше понять их приложения.
Ответы
Ответ 1
Коротко:
Агент изучает онлайн или офлайн? помогает вам решать, используя онлайн-или автономные алгоритмы. (например, on-line: SARSA, off-line: Q-learning). Он-лайн методы имеют больше ограничений и требуют большего внимания к оплате.
Можно ли отделить изучение и использование фаз? Эти две фазы обычно находятся в балансе. Например, при выборе эпсилон-жадных действий вы используете вероятность (epsilon) для использования и (1-эпсилон) вероятность для изучения. Вы можете разделить эти два вопроса и попросить алгоритм сначала исследовать (например, выбирать случайные действия), а затем использовать. Но эта ситуация возможна, когда вы учитесь автономно и, вероятно, используете модель для динамики системы. И это обычно означает сбор большого количества данных образца заранее.
можем ли мы провести достаточно исследований? Уровень исследования может быть определен в зависимости от определения проблемы. Например, если у вас есть имитационная модель проблемы в памяти, вы можете исследовать ее по своему усмотрению. Но реальное исследование ограничено количеством ресурсов, которые у вас есть. (например, энергия, время,...)
- состояния и действия непрерывные? Учитывая, что это предположение помогает выбрать правильный подход (алгоритм). Для RL разработаны как дискретные, так и непрерывные алгоритмы. Некоторые "непрерывные" алгоритмы внутренне дискретизируют состояние или пространства действий.