Проект обучения игрушкам для подкрепления - PullRequest
3 голосов
/ 17 мая 2010

Мой игрушечный проект для изучения и применения Укрепления:
- Агент пытается достичь цели цель"безопасно" и "быстро" ....
- Но есть снаряды и ракеты , которые запускаются на пути агента.
- Агент может определить положение ракет - с некоторым шумом - только если они находятся "рядом"
- Затем агент должен научиться избегать попадания в эти ракеты.
- Агент может заряжаться со временем - топливо , которое расходуется при движении агента
- Непрерывные действия : ускорение вперед - поворот на угол


Мне нужны некоторые подсказки и имена алгоритмов RL, которые подходят для этого случая.
- Я думаю, что это POMDP, но могу ли я смоделировать его как MDP и просто игнорировать шум?
- В случае POMDP, каков рекомендуемый способ оценки вероятности?
- Что лучше использовать в этом случае: функции значений или итерации политики?
- Могу ли я использовать NN для моделирования динамики среды вместо использования явных уравнений?
- Если да, следует ли рекомендовать конкретный тип / модель NN?
- Я думаю, что действия должны быть дискретизированы, верно?

Я знаю, что на изучение такой темы потребуются время и усилия, но я очень хочу ...
Вы можете ответить на некоторые вопросы, если не можете ответить на все ...
Спасибо

Ответы [ 2 ]

7 голосов
/ 20 мая 2010

Если это ваш первый эксперимент с обучением подкреплению, я бы рекомендовал начать с чего-то гораздо более простого, чем это. Вы можете начать с простых вещей, а затем перейти к более сложному проекту, как этот. У меня проблемы с POMDP, и я довольно давно работаю в RL. Сейчас я постараюсь ответить, на какие вопросы могу.

Я думаю, что это POMDP, но я могу смоделировать его как MDP и просто игнорировать шум?

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

В случае POMDP, Каков рекомендуемый способ оценки вероятности?

Я не понимаю вашего вопроса. Вы бы использовали некоторую форму правила Байеса. То есть у вас будет какое-то распределение, которое является вашим состоянием убеждения (вероятностью нахождения в каком-либо данном состоянии), которое будет вашим предыдущим распределением, и, основываясь на наблюдении, вы скорректируете его и получите последующее распределение. Изучите правило Байеса, если вам нужна дополнительная информация.

Что лучше использовать в этом случае: функции значений или итерации политики?

Большая часть моего опыта использовала функции-значения и находила их относительно простыми в использовании / понимании. Но я не знаю, что еще тебе сказать. Я думаю, что это, вероятно, ваш выбор, мне пришлось бы потратить время на работу над проектом, чтобы сделать лучший выбор.

Могу ли я использовать NN для моделирования динамики среды вместо использования явных уравнений? Если да, следует ли рекомендовать конкретный тип / модель NN?

Я ничего не знаю об использовании NN для моделирования среды, извините.

Я думаю, что действия должны быть дискретизированы, верно?

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

Если вы только изучаете все это, я бы порекомендовал текст Sutton and Barto . Также, если вы хотите увидеть простой пример алгоритма RL, у меня есть очень простой базовый класс и пример использования его в github (написано на Python). Класс abstract_rl предназначен для расширения для задач RL, но он очень прост. simple_rl.py - это пример простой задачи (это простая сетка, целью которой является одна позиция, и он использует QLearning в качестве алгоритма) с использованием base_rl, который можно запустить и напечатать некоторые графики, показывающие вознаграждение с течением времени. Ни один из них не очень сложен, но если вы только начинаете, может помочь дать вам некоторые идеи. Я надеюсь, что это помогло. Дайте мне знать, если у вас есть более или более конкретные вопросы.

0 голосов
/ 01 августа 2013

Могу ли я использовать NN для моделирования динамики среды вместо использования явных уравнений? Если да, следует ли рекомендовать конкретный тип / модель NN?

Да, нейронные сети, как известно, способны решать задачи прогнозирования. Однако это зависит от того, как вы определяете свою задачу: хотите ли вы, чтобы ваш алгоритм учился управлять только средой, когда он знает ее динамику, или вы хотите научиться решать задачу в неизвестной среде? Последний случай чаще встречается в RL.

Я думаю, что действия должны быть дискретизированы, верно?

Нет, они не должны быть. Например, решения Actor-Critic работают для непрерывных действий. Я также слышал о RL на основе гауссовского процесса. Многие материалы по обоим решениям легко найти через Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...