【发布时间】:2011-09-26 09:40:05
【问题描述】:
我目前正在尝试让 ANN 玩视频游戏,我希望能从这里的优秀社区获得一些帮助。
我选择了《暗黑破坏神 2》。因此,游戏是实时的,从等距的角度来看,玩家控制一个以摄像机为中心的化身。
具体来说,任务是让你的角色 x 经验值而不使其生命值降至 0,其中经验值是通过杀死怪物获得的。以下是游戏玩法示例:
现在,由于我希望网络仅根据从屏幕上的像素获取的信息来运行,它必须学习非常丰富的表示才能有效地播放,因为这可能需要它知道(隐含在至少)如何将游戏世界划分为对象以及如何与它们交互。
所有这些信息都必须以某种方式传授给网络。我这辈子都想不出怎么训练这个东西。我唯一的想法是有一个单独的程序从屏幕上直观地提取游戏中天生好/坏的东西(例如健康、金币、经验),然后在强化学习过程中使用该统计数据。我认为这将是答案的部分,但我认为这还不够;从原始视觉输入到面向目标的行为的抽象层次太多了,无法在我的一生中训练出如此有限的反馈。
那么,我的问题是:您还能想到哪些其他方法来训练网络至少完成部分任务?最好不要制作数千个带标签的示例。
只是为了多一点方向:我正在寻找其他一些强化学习来源和/或任何无监督方法来在此设置中提取有用信息。或者,如果您可以想出一种无需手动标记的方式从游戏世界中获取标记数据,则可以使用监督算法。
更新(2012 年 4 月 27 日):
奇怪的是,我仍在努力,似乎正在取得进展。让 ANN 控制器工作的最大秘诀是使用适合该任务的最先进的 ANN 架构。因此,我一直在使用deep belief net 由分解的conditional restricted Boltzmann machines 组成,我已经以无人监督的方式(在我玩游戏的视频上)进行了训练,然后使用temporal difference back-propagation 进行了微调(即使用标准前馈进行强化学习人工神经网络)。
但仍在寻找更有价值的输入,尤其是关于实时动作选择问题以及如何为 ANN 处理编码彩色图像:-)
更新(2015 年 10 月 21 日):
只记得我以前问过这个问题,并认为我应该提到这不再是一个疯狂的想法。自从我上次更新以来,DeepMind 发布了他们的性质paper on getting neural networks to play Atari games from visual inputs。事实上,唯一阻止我使用他们的架构来玩暗黑破坏神 2 的有限子集是缺乏对底层游戏引擎的访问权限。渲染到屏幕然后将其重定向到网络太慢了,无法在合理的时间内进行训练。因此,我们可能不会很快看到这种机器人在玩暗黑破坏神 2,但这只是因为它会玩开源或通过 API 访问渲染目标的东西。 (也许是地震?)
【问题讨论】:
-
论文中的驾驶问题和游戏的一个很大区别在于,在驾驶问题中,视觉输入是一个足够完整的状态表示:如果右边有障碍物--左转,如果有左边是障碍物——右转。但是,在游戏中,您经常不得不根据屏幕上未显示的内容做出决定。任何时候你进入一家商店,它可能看起来都一样,但你需要购买不同的物品。
-
我记得最好的暗黑破坏神 2 使用了容易提取的精灵表。将对象(玩家、敌人等)绑定到相关精灵列表应该相当简单。它并不能解决物体被彼此遮挡的问题,但它是一个开始。
-
@zergylord 如果您能说出您希望如何坚定地遵守您的标准,这将有所帮助:a) 玩暗黑破坏神 2 和 b) 使用绘制到屏幕上的像素作为您唯一的输入源。如果你想让自己的事情变得更轻松,我认为你将不得不放松其中的一个(或两个)——你愿意这样做吗?
-
投票结束,因为范围太广。
标签: machine-learning computer-vision neural-network video-processing reinforcement-learning