Я думаю о создании ИИ, пытающегося играть в игру. Однако самообучение с нуля заняло бы целую вечность. Поэтому мне интересно, можно ли начать обучение с данными из существующего игрового процесса (от людей), а затем переключиться на машинное обучение, когда ИИ достигнет точки, когда он узнает основы.
Если это возможно, есть ли способ сделать это с помощью TensorFlow или мне следует сделать это с нуля?
@СебастьянР. Игра представляет собой Rocket League, поэтому я думаю, мы можем сказать, что не обязательно вводить массу данных (вращение, положение всех игроков + мяч), но сам игровой процесс может быть чрезвычайно сложным.
Помимо обучения с подкреплением, которое учится на лету. Погуглите эти ключевые слова, и вы найдете что-то подходящее для вашего случая: Behavior Cloning
и Imitation Learning
.
Если игра не сложная (например, открытый мир), то вас может заинтересовать глубокое обучение с подкреплением (вы упомянули tensorflow), которое не требует существующего игрового процесса. Он начнет сам играть в игру и постепенно будет накапливать опыт и разрабатывать на его основе выигрышные стратегии. Кроме того, использование обучения с учителем для создания вашей модели звучит сложно и, на мой взгляд, требует дополнительных разъяснений.
Да, игра, о которой я говорил, это Rocket League, поэтому я подумал, что глубокое обучение с подкреплением будет слишком медленным, чтобы учиться с 0, поэтому я надеялся начать с ИИ, пытающегося предсказать действия профессионального игрока в играх, а затем, когда ИИ был бы на уровне профессионала или близко к нему, я бы переключился на обучение с подкреплением, чтобы он мог сам изучать более сложные вещи и не беспокоиться об основах.
Ага вижу. Это может быть проблематично, потому что в отличие, скажем, от шахмат, у вас нет доступа ко всей доступной информации в надлежащем формате (функции, необходимые для вашей модели, сложны - вы упомянули положение всех игроков, есть ли у вас доступ к их позициям в любое время, поэтому ты можешь принимать решения?) Единственный способ, который я могу придумать, слишком сложен, используя доступную вам информацию, это использовать CV для обработки изображения перед вами, но с этим подходом также есть проблемы. Я бы порекомендовал youtube.com/watch?v=KSX2psajYrg, но в целом звучит чрезвычайно сложной задачей.
Я слышал, что в игре есть программа/мод под названием RLbot, которую можно использовать для кодирования бота, и вы можете получить такую информацию, как положение, скорость и многое другое. Это полезно, поскольку я мог бы предоставить ИИ более полезную информацию, чем RGB пикселей.
Да, можно было бы полностью использовать дополнительную информацию для окончательной сети. Однако пользователь не всегда имеет доступ к, скажем, положению остальных игроков, потому что они не видны на экране пользователя (насколько я знаю, я никогда не играл в игру) и поэтому не могут быть использованы в реалистичном сценарий.
Всегда хорошо внедрять предварительные знания в ИИ. Однако я думаю, что трудно отследить это человеческое поведение и перевести его в логику. У вас есть дополнительная информация? т.е. что за игра какие правила?