Game AI - изменение модели классификации изображений для аналогового вывода
Я разрабатываю игровой AI, который пытается освоить гоночный симулятор. Я уже обучил CNN (alexnet) игровым кадрам, в которых я играю в игру и нажимаю клавиши в качестве цели. У меня было две основные проблемы с этой настройкой:
Извлечение текущей скорости из спидометра, чтобы подать ее на ИИ. Этот вопрос уже был решен здесь.
Во время тестирования я заметил, что ИИ не может делать небольшие корректировки на прямых дорогах и сильно срезает повороты.
Я почти уверен, что вторая проблема связана с тем, что игра обрабатывает нажатые двоичные клавиши (например, нажатие "а" -> 100% левого поворота). ИИ просто не может делать точные движения. Чтобы решить эту проблему, я хочу эмулировать джойстик, который точно контролирует игру. Используя pygame, мне уже удалось записать входные данные моего контроллера в качестве обучающих данных.
Контроллер имеет две оси, одна для поворота, другая для дроссельной заслонки. Обе оси могут иметь любое значение от -1 до 1:
Axis 0: Value -1 -> 100% left
Value +1 -> 100% right
Axis 1: Value -1 -> full break
Value +1 -> full throttle
Моя цель - научить alexnet выводить аналоговые значения необработанных осей, учитывая текущую скорость и захваченный кадр, и передавать свои прогнозы в эмулятор джойстика. На GitHub я нашел кого-то, кто попробовал нечто подобное и не смог добиться хороших результатов даже на модифицированном alexnet. Из-за этого мне было интересно, можно ли вообще изменить CNN для вывода аналоговых значений вместо использования его в качестве классификатора изображения.
Мой вопрос: стоит ли прилагать усилия для редактирования alexnet, вместо того, чтобы использовать совершенно другую модель. Я нашел в сети некоторые модели, такие как модель NVIDIA "сквозное самостоятельное вождение", которая, к сожалению, контролирует только угол поворота рулевого колеса, и, кажется, создана для повседневной езды на низкой скорости.
Спасибо!