目标是创建一个AI来玩一个简单的游戏,跟踪屏幕上水平移动的点,该点会增加速度直到不再被跟踪。
我想创建一个AI,使其行为类似于真实的测试受试者。我有大量的试验记录,这些记录涵盖了几个月的时间,记录了屏幕上点的位置以及用户光标随时间的位置。
我想用这些试验数据来训练网络,使网络的行为类似于真实的测试受试者,这样我就可以获得大量的测试数据,观察改变游戏参数如何影响网络跟踪移动点的能力。
我对了解神经网络的底层代码很感兴趣,并且希望得到一些关于如何开始这个项目的建议。我知道AI在执行不同任务方面可以变得非常出色,比如蛇游戏或其他简单的游戏,但我的目标是让AI的表现类似于真实的测试受试者。
回答:
你的问题有点宽泛,但我还是会尽力回答。
要模仿受试者的行为,你可以使用LSTM网络,它能够理解其所处的状态(在你的案例中,状态可能包括点移动的速度和方向以及指针的位置),然后决定采取什么行动。你需要将你的数据(点的坐标和用户的行为)输入到网络中。
一个更简单但同样有效的方法是使用简单的MLP网络。你的问题看起来并不困难,简单的网络应该能够学会用户在特定情况下的反应。然而,根据你所说的“表现类似于真实的测试受试者”,你可能需要更复杂的架构。
最后,还有GAN网络,如果你对神经网络不熟悉,它们会有些复杂,训练起来困难且耗时,并且在某些情况下可能完全无法训练。好处是它们正是设计用来模仿概率分布的(更简单地说,就是一组数据)。
还有两点重要说明需要提及:
- 你的网络的性能在很大程度上取决于你的数据和游戏。例如,如果在你的数据集中用户对相同情况的反应非常不同,MLP或LSTM将无法学会所有这些反应。
- 你的网络只能模仿它所学到的内容。因此,如果你计划弄清楚在某些从未在你的数据集中出现过的情况下的行为(例如,如果在你的数据集中点只在直线上移动,但你在实验中希望它在圆圈中移动),你将不会得到好的结果。
希望这对你有帮助。