我目前正在尝试让一个 ANN 玩视频游戏,我希望得到一些来自这里的美好社区的帮助。
我选了暗黑2。因此,游戏是实时的,从一个等距的角度来看,玩家控制一个单一的化身,摄像机的中心。
具体来说,任务是让你的角色获得 x 经验值,而不是让它的生命值降到0,在这里经验值是通过杀死怪物获得的。下面是游戏的一个例子:
现在,既然我希望网络仅仅根据它从屏幕上的像素获得的信息来运行,它必须学习一个非常丰富的表示以便有效地玩,因为这可能需要它知道(至少是隐含地)如何将游戏世界划分为对象以及如何与它们交互。
所有这些信息都必须以某种方式传到网上。我怎么也想不出该怎么训练它。我唯一的想法就是用一个独立的程序从屏幕上直观地提取出游戏中天生的好/坏信息(比如健康、黄金、经验) ,然后在一个强化学习过程中使用这些信息。我认为这将是 一部分的答案,但我不认为这将是足够的; 只是有太多层次的抽象从原始的视觉输入到目标导向的行为,这样有限的反馈训练一个网在我的一生。
那么,我的问题是: 你还能想到其他什么方法来训练一张网来至少完成这项任务的一部分呢?最好不要做成千上万个带标签的例子。
我正在寻找一些其他的强化学习和/或任何无监督的方法来提取这种设置中的有用信息。或者一个有监督的算法,如果你能想到一种方法,不需要手动标记就可以从游戏世界中获得标记数据。
更新(04/27/12) :
奇怪的是,我还在研究这个,而且似乎有进展。使神经网络控制器工作的最大秘诀是使用最先进的神经网络结构来完成任务。因此,我一直在使用一个由分解的 有条件限制的玻尔兹曼机器组成的 深度信仰网,我在无人监督的情况下(在我玩游戏的视频中)训练它,然后再用 时间差反向传播进行微调(即用标准的前馈神经网络进行强化学习)。
尽管如此,仍然在寻找更有价值的输入,特别是在实时动作选择问题以及如何为人工神经网络处理彩色图像编码方面
更新(10/21/15) :
我刚想起来我以前问过这个问题,我想我应该提一下,这不再是一个疯狂的想法了。自从我上次更新以来,DeepMind 公布了他们的自然 关于从视觉输入中获取神经网络来玩雅达利游戏的论文。事实上,唯一阻止我使用他们的架构来玩,一个有限的子集,暗黑破坏神2是缺乏访问底层的游戏引擎。呈现到屏幕,然后将其重定向到网络,这对于在合理的时间内进行训练来说实在是太慢了。因此,我们可能不会看到这种类型的机器人玩暗黑破坏神2任何时候很快,但只是因为它会发挥的东西,要么开源或与 API 访问的呈现目标。(也许是地震?)