我知道前馈neural network的基础知识,以及如何使用反向传播algorithm来训练它们,但是我正在寻找一种algorithm,比我可以用来在线训练ANN强化学习。 例如, 推车杆摆动问题是我想用ANN解决的问题。 在这种情况下,我不知道应该怎样控制钟摆,我只知道我离理想位置有多近。 我需要根据奖励和惩罚来学习。 因此,监督式学习不是一种select。 另一种情况就像蛇游戏 ,反馈延迟,只限于目标和反目标,而不是奖励。 对于第一种情况,我可以考虑一些algorithm,比如爬山或者遗传algorithm,但是我猜测它们都会很慢。 他们也可能适用于第二种情况,但速度非常慢,不利于在线学习。 我的问题很简单: 是否有一个简单的algorithm来训练强化学习的人工neural network? 我主要对实时奖励情况感兴趣,但是如果有基于目标的情况的algorithm可用,甚至更好。
我目前正在试图让人工neural network玩一个电子游戏,我希望能从这个美妙的社区获得一些帮助。 我决定使用“暗黑破坏神2”(Diablo 2)。因此,玩家可以实时从等轴测视angular观看,并且玩家可以控制相机所在的一个angular色。 为了使事情具体化,任务是让你的angular色x的经验值不降低到0,通过杀死怪物获得经验值。 这是一个游戏的例子: 现在,因为我希望networking完全基于从屏幕像素获得的信息进行操作,为了有效地播放它,它必须学习非常丰富的表示,因为这可能需要它知道(至less隐含)如何把游戏世界分成对象和如何与之交互。 而所有这些信息都必须被教给networking……不知何故。 我不能为了我的生活想到如何训练这个东西。 我唯一的想法是有一个单独的程序从屏幕上直观地提取游戏中天生好/坏的东西(例如健康,黄金,经验),然后在强化学习过程中使用该属性。 我认为这是答案的一部分 ,但我认为这还不够。 从原始视觉input到目标导向行为的抽象层次太多,以至于这种有限的反馈,在我的有生之年就要训练一个networking。 所以,我的问题:你还有什么其他的方式可以用来培养一个networking来完成这个任务的至less一部分? 最好不要制造数千个标记的例子… 只是稍微指出一点:我正在寻找一些其他的强化学习来源和/或任何无监督的方法来提取有用的信息在这个设置。 或者是一个监督algorithm,如果你可以想办法从游戏世界中获取标签数据而不需要手动标记它。 UPDATE(04/27/12): 奇怪的是,我仍然在努力,似乎正在取得进展。 让neural network控制器工作的最大秘诀就是使用适合于这个任务的最先进的neural network架构。 因此,我一直在使用深度信念networking组成的条件限制玻尔兹曼机器 ,我已经在一个无监督的方式(在我玩游戏的video)训练之前微调与时间差异向后传播 (即强化学习与标准前馈人工neural network)。 仍然在寻找更有价值的input,特别是在实时动作select的问题上,以及如何为ANN处理编码彩色图像:-) UPDATE(15年10月21日): 只记得我今天回答了这个问题,我想我应该提一下,这不再是一个疯狂的想法。 自从我上次更新以来,DeepMind发布了他们关于让neural network从视觉input中玩atari游戏的自然论文 。 事实上,阻止我使用他们的体系结构玩“暗黑破坏神2”的一个有限子集的唯一原因是缺乏对底层游戏引擎的访问。 渲染到屏幕然后redirect到networking太慢,无法在合理的时间内进行训练。 因此,我们很可能不会在近期看到这种机器人玩“暗黑破坏神2”,但只是因为它会播放开源或API访问渲染目标的东西。 (地震也许?)