Если это ваш первый эксперимент с обучением подкреплению, я бы рекомендовал начать с чего-то гораздо более простого, чем это. Вы можете начать с простых вещей, а затем перейти к более сложному проекту, как этот. У меня проблемы с 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, который можно запустить и напечатать некоторые графики, показывающие вознаграждение с течением времени. Ни один из них не очень сложен, но если вы только начинаете, может помочь дать вам некоторые идеи. Я надеюсь, что это помогло. Дайте мне знать, если у вас есть более или более конкретные вопросы.