обучить нейронную сеть реальному субъектному вводу / выводу, чтобы он вел себя подобно субъекту - PullRequest
0 голосов
/ 04 июня 2019

Цель состоит в том, чтобы создать ИИ, который будет играть в простую игру, отслеживая горизонтально движущуюся точку по экрану, которая увеличивает скорость до тех пор, пока ее не отследят.

Я хотел бы создать ИИ, который будет вести себя так же, как настоящий испытуемый. У меня есть большое количество испытаний, которые были записаны за многие месяцы, положение точки на экране и положение курсора пользователя во времени.

Я хотел бы обучить сеть на этих испытаниях, чтобы сеть действовала аналогично реальному испытуемому, и затем я мог бы получить очень большие объемы тестовых данных, чтобы наблюдать, как изменение параметров игры влияет на способность сетей отслеживать движущаяся точка.

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

1 Ответ

0 голосов
/ 04 июня 2019

Ваш вопрос немного широк, но я все же постараюсь ответить.

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

Более простым, но эффективным подходом было бы использование простой сети MLP. Ваша проблема не кажется сложной, и простая сеть должна быть в состоянии узнать, что пользователь будет делать в определенной ситуации. Однако, исходя из того, что вы подразумеваете под «работой, аналогичной реальному объекту тестирования», вам может потребоваться более сложная архитектура.

Наконец, есть сети GAN, которые несколько сложны, если вы не знакомы с сетями NN, их сложно и отнимает много времени для обучения, а в некоторых случаях они могут вообще не пройти обучение. С другой стороны, они точно предназначены для имитации распределения вероятностей (или, проще говоря, набора данных).

Следует упомянуть еще два важных замечания:

  1. Производительность вашей сети сильно зависит от ваших данных и игры. например, если в вашем наборе данных пользователи действовали совершенно по-разному в одной и той же ситуации, MLP или LSTM не смогут изучить все эти реакции.
  2. Ваша сеть может имитировать только то, чему ее учили. Поэтому, если вы планируете выяснить, что будет делать человеческий агент при некоторых условиях, которые никогда не встречались в вашем наборе данных (например, если в вашем наборе данных точка перемещается только по линии, но вы хотите, чтобы она перемещалась по кругу при экспериментировании), вы не получит хороших результатов.

надеюсь, это поможет.

...