Я новичок в обучении с подкреплением и q-обучении, и я пытаюсь понять концепции и попытаться их реализовать. Большинство материалов, которые я нашел, используют слои CNN для обработки ввода изображения. Я думаю, что лучше начать с чего-то более простого, поэтому я использую мир сетки.
Это то, что я уже реализовал. Я реализовал среду, следуя MDP, и имею сетку 5x5 с фиксированной позицией агента (A) и целевой позицией (T). Начальное состояние может выглядеть так.
-----
---T-
-----
-----
A----
В настоящее время я представляю свое состояние в виде одномерного вектора длиной 25 (5x5), где 1 находится в позиции, где находится агент, в противном случае 0, поэтому, например, состояние выше будет представлено как вектор
[1, 0, 0, ..., 0]
Я успешно реализовал решения с Q-таблицей и простой NN без скрытого слоя.
Теперь я хочу продвинуться немного дальше и усложнить задачу, сделав целевую позицию случайной в каждом эпизоде. Поскольку теперь нет корреляции между моим текущим представлением состояния и действиями, мои агенты действуют случайным образом. Чтобы решить мою проблему, сначала мне нужно настроить представление состояния, чтобы оно содержало некоторую информацию, такую как расстояние до цели, направление или и то, и другое. Проблема в том, что я не знаю, как сейчас представить свое состояние. У меня возникли некоторые идеи:
- [х, у, расстояние_T]
- [расстояние_T]
два вектора 5x5, один для позиции агента, один для позиции цели
[1, 0, 0, ..., 0], [0, 0, ..., 1, 0, ..., 0]
Я знаю, что даже если я разберусь с представлением состояния, моя реализованная модель не сможет решить проблему, и мне нужно будет перейти к скрытым слоям, испытать повтор, замороженную целевую сеть и так далее, но я хочу только проверить провал модели.
В заключение хочу спросить, как представить такое состояние как вход для нейронной сети. Если есть какие-либо источники информации, статьи, документы и т. д., которые я пропустил, не стесняйтесь публиковать их.
Заранее спасибо.