Игрушечный проект для обучения с подкреплением

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


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

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


person Betamoo    schedule 17.05.2010    source источник
comment
Лучше разбить этот вопрос на несколько конкретных вопросов.   -  person danben    schedule 17.05.2010


Ответы (2)


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

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

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

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

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

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

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

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

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

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

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

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

person Zach Varberg    schedule 20.05.2010
comment
Существует онлайн-версия указанной книги. webdocs.cs .ualberta.ca / ~ sutton / book / ebook / the-book.html - person Matt; 11.01.2011

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

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

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

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

person BartoszKP    schedule 01.08.2013
comment
Действия не должны быть дискретными, но непрерывное пространство действий делает математику намного более отвратительной, если вы можете, настолько дискретной. - person danelliottster; 20.12.2014