训练神经网络以真实受试者的输入/输出为基础,使其行为类似于受试者

目标是创建一个AI来玩一个简单的游戏,跟踪屏幕上水平移动的点,该点会增加速度直到不再被跟踪。

我想创建一个AI,使其行为类似于真实的测试受试者。我有大量的试验记录,这些记录涵盖了几个月的时间,记录了屏幕上点的位置以及用户光标随时间的位置。

我想用这些试验数据来训练网络,使网络的行为类似于真实的测试受试者,这样我就可以获得大量的测试数据,观察改变游戏参数如何影响网络跟踪移动点的能力。

我对了解神经网络的底层代码很感兴趣,并且希望得到一些关于如何开始这个项目的建议。我知道AI在执行不同任务方面可以变得非常出色,比如蛇游戏或其他简单的游戏,但我的目标是让AI的表现类似于真实的测试受试者。


回答:

你的问题有点宽泛,但我还是会尽力回答。

要模仿受试者的行为,你可以使用LSTM网络,它能够理解其所处的状态(在你的案例中,状态可能包括点移动的速度和方向以及指针的位置),然后决定采取什么行动。你需要将你的数据(点的坐标和用户的行为)输入到网络中。

一个更简单但同样有效的方法是使用简单的MLP网络。你的问题看起来并不困难,简单的网络应该能够学会用户在特定情况下的反应。然而,根据你所说的“表现类似于真实的测试受试者”,你可能需要更复杂的架构。

最后,还有GAN网络,如果你对神经网络不熟悉,它们会有些复杂,训练起来困难且耗时,并且在某些情况下可能完全无法训练。好处是它们正是设计用来模仿概率分布的(更简单地说,就是一组数据)。

还有两点重要说明需要提及:

  1. 你的网络的性能在很大程度上取决于你的数据和游戏。例如,如果在你的数据集中用户对相同情况的反应非常不同,MLP或LSTM将无法学会所有这些反应。
  2. 你的网络只能模仿它所学到的内容。因此,如果你计划弄清楚在某些从未在你的数据集中出现过的情况下的行为(例如,如果在你的数据集中点只在直线上移动,但你在实验中希望它在圆圈中移动),你将不会得到好的结果。

希望这对你有帮助。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注