machine-learning - 在真实主题输入/输出上训练神经网络,使其行为与主题相似
问题描述
目标是创建一个 AI 来玩一个简单的游戏,跟踪屏幕上水平移动的点,从而提高速度直到不再被跟踪。
我想创建一个人工智能,使其行为类似于真实的测试对象。我记录了数月的大量试验,屏幕上的点位置和用户光标位置随着时间的推移。
我想在这些试验中训练网络,使网络的行为类似于真实的测试对象,然后我可以获得非常大量的测试数据,以观察游戏参数的变化如何影响网络跟踪移动点的能力.
我有兴趣了解神经网络的底层代码,并希望得到一些关于从哪里开始这个项目的建议。我知道 AI 可以非常擅长执行不同的任务,例如蛇或其他简单的游戏,但我的目标是让 AI 执行类似于真实测试对象的性能。
解决方案
你的问题有点笼统,但我还是会尽力回答。
为了模仿你可以使用的主题行为和 LSTM 网络,它了解它所处的状态(在你的情况下,状态可能包括关于点的速度和方向以及指针在哪里的信息),然后决定一种行为。您需要将数据(点坐标和用户行为)输入网络。
一种更简单但有效的方法是使用简单的 MLP 网络。您的问题似乎并不难,一个简单的网络应该能够了解用户在特定情况下会做什么。但是,根据您所说的“与真实测试对象类似地执行”的意思,您可能需要更复杂的架构。
最后还有 GAN 网络,如果你不熟悉 NN,它会有些复杂,训练起来既困难又费时,在某些情况下可能根本无法训练。好的一面是它们的设计目的是模仿概率分布(或者更简单地说,一组数据)。
还有两个更重要的注意事项需要提及:
- 您的网络性能在很大程度上取决于您的数据和游戏。例如,如果在您的数据集中,用户对相同情况的行为非常不同,MLP 或 LSTM 将无法学习所有这些反应。
- 你的网络只能模仿它所教的东西。因此,如果您打算弄清楚人类代理在您的数据集中从未发生过的某些条件下会做什么(例如,如果在您的数据集中,点仅沿直线移动,但您希望它在实验时沿圆圈移动),您不会得到好的结果。
希望这可以帮助。
推荐阅读
- angular - jHipster Master 详细视图
- angularjs - 错误:'模块'ui.router'不可用!'
- c# - 在层次树中搜索以获取只有结果节点的树
- python - 我可以将特定功能绑定到 Pandas 数据框列吗?
- hive - 将带时区的字符串转换为 unix 时间戳
- automationanywhere - 击键命令不适用于 RDP 会话
- javascript - Bootstrap 4 砌体效果响应性
- macos - 在 MoJave 中重新启动后没有 Apache 进程
- node.js - 如何为任何版本的节点找到最新的 Typescript 目标支持?
- linux - cve-2017-1000253 概念证明的编译错误