我正在努力让人工神经网络玩电子游戏,我希望能从这里的精彩社区获得一些帮助.
我已经确定了暗黑破坏神2.因此,游戏玩法是实时的,并且从等角度的角度来看,玩家控制着摄像机所在的单个化身.
为了使事情具体化,任务是获得你的角色x经验值,而不将其生命值降为0,通过杀死怪物获得经验值.以下是游戏玩法的示例:

现在,由于我希望网络仅根据屏幕上的像素获得的信息进行操作,因此必须学习非常丰富的表示以便有效地发挥作用,因为这可能需要它(至少隐含地)知道如何将游戏世界划分为对象以及如何与它们进行交互.
所有这些信息都必须以某种方式传授给网络.我不能为我的生活想到如何培养这件事.我唯一的想法就是有一个单独的程序从屏幕上直观地从游戏中提取一些好的/坏的东西(例如健康,黄金,经验),然后在强化学习过程中使用该属性.我认为这将是答案的一部分,但我认为这还不够; 从原始视觉输入到目标导向行为的抽象层次太多,这种有限的反馈在我的一生中训练网络.
所以,我的问题是:你还有什么其他的方法来训练网络至少完成这项任务的某些部分?最好不要制作数千个带标签的例子......
只是为了更多方向:我正在寻找其他一些强化学习来源和/或任何用于在此设置中提取有用信息的无监督方法.或者,如果您可以想到一种将标记数据从游戏世界中取出而无需手动标记的方法,则可以采用监督算法.
UPDATE(04/27/12):
奇怪的是,我仍然在努力,似乎正在取得进展.让ANN控制器工作的最大秘诀是使用适合该任务的最先进的ANN架构.因此,我一直在使用一个深层次的信念网络,这是由我用无人监督的方式训练的因素条件限制Boltzmann机器(在我玩游戏的视频中),然后使用时间差异反向传播进行微调(即用标准进行强化学习)前馈人工神经网络.
仍在寻找更有价值的输入,特别是关于实时动作选择的问题以及如何编码用于ANN处理的彩色图像:-)
UPDATE(15年10月21日):
记得我在今天回答了这个问题,我想应该提一下,这不再是一个疯狂的想法.自从我上次更新以来,DeepMind发布了他们的自然论文,用于通过视觉输入获取神经网络来玩atari游戏.事实上,唯一阻止我使用他们的架构来玩,暗黑2的有限子集是缺乏对底层游戏引擎的访问.渲染到屏幕然后将其重定向到网络的速度太慢,无法在合理的时间内进行训练.因此,我们可能不会很快看到这种机器人在玩暗黑破坏神2,但这只是因为它会播放某些东西,无论是开源还是对渲染目标的API访问.(也许是地震?)
machine-learning video-processing computer-vision reinforcement-learning neural-network
在强化学习中,策略迭代和值迭代之间有什么区别?
根据我的理解,在价值迭代中,您使用Bellman方程来求解最优策略,而在策略迭代中,您随机选择策略π,并找到该策略的奖励.
我怀疑的是,如果你在PI中选择随机策略π,即使我们选择了几个随机策略,它如何保证成为最优策略.
machine-learning reinforcement-learning markov-models value-iteration
我知道前馈神经网络的基础知识,以及如何使用反向传播算法对它们进行训练,但我正在寻找一种算法,而不是我可以用来通过强化学习在线训练ANN.
例如,推车杆摆动问题是我想用ANN解决的问题.在那种情况下,我不知道应该怎样做才能控制钟摆,我只知道我与理想位置有多接近.我需要根据奖励和惩罚来学习ANN.因此,监督学习不是一种选择.
另一种情况是蛇游戏,其中反馈被延迟,并且仅限于目标和反目标,而不是奖励.
我可以为第一种情况考虑一些算法,比如爬山或遗传算法,但我猜它们都会很慢.它们也可能适用于第二种情况,但速度极慢,不利于在线学习.
我的问题很简单:是否有一种简单的算法来训练具有强化学习的人工神经网络?我主要对实时奖励情况感兴趣,但如果基于目标的情境的算法可用,甚至更好.
language-agnostic algorithm machine-learning reinforcement-learning neural-network
虽然我知道SARSA是在政策上,而Q-learning是不合时宜的,但在查看他们的公式时,很难(对我而言)看到这两种算法之间存在任何差异.
根据" 强化学习:引言"(Sutton和Barto)一书.在SARSA算法中,给定策略,相应的动作值函数Q(在状态s和动作a,在时间步t),即Q(s t,a t),可以更新如下
Q(s t,a t)= Q(s t,a t)+α*(r t +γ*Q(s t + 1,a t + 1) - Q(s t,a t))
另一方面,Q学习算法的更新步骤如下
Q(s t,a t)= Q(s t,a t)+α*(r t +γ*max a Q(s t + 1,a) - Q(s t,a t))
也可以写成
Q(s t,a t)=(1 - α)*Q(s t,a t)+α*(r t +γ*max a …
artificial-intelligence reinforcement-learning q-learning sarsa
我知道强化学习的基础知识,但是为了能够阅读arxiv PPO论文需要了解哪些条款?
学习和使用PPO的路线图是什么?
我知道SVM被认为是'ANN杀手',因为它们会自动选择表示复杂性并找到全局最优(这里有一些SVM称赞引用).
但这里我还不清楚 - 所有这些优势主张只针对2级决策问题的情况还是更进一步?(我认为它们适用于非线性可分类,否则没有人会关心)
所以我想要澄清一些案例的样本:
我不希望有人回答所有这些lil'子问题,而是在实践中给出SVM优于常见ANN等价物(例如FFBP,循环BP,Boltzmann机器,SOM等)的一般界限.并且优选地,理论上也是如此.
我正在尝试让代理人学习在强化学习环境中最好地执行某些任务所必需的鼠标移动(即奖励信号是学习的唯一反馈).
我希望使用Q学习技术,但是当我找到一种方法将这种方法扩展到连续状态空间时,我似乎无法弄清楚如何适应连续动作空间的问题.
我可以强迫所有鼠标移动到一定幅度并且只在一定数量的不同方向上移动,但是使动作离散的任何合理方式都会产生巨大的动作空间.由于标准Q学习需要代理评估所有可能的动作,因此这种近似并不能解决任何实际意义上的问题.
algorithm machine-learning reinforcement-learning q-learning
对于一个ai级项目,我需要实现一个强化学习算法,该算法击败了一个简单的俄罗斯方块游戏.游戏是用Java编写的,我们有源代码.我知道强化学习理论的基础知识,但是想知道SO社区中是否有人亲身体验过这类事情.
编辑:越具体越好,但欢迎关于该主题的一般资源.
跟进:
我觉得如果我发布一个后续内容会很好.
这是我为任何未来的学生最终得到的解决方案(代码和写作):).
language-agnostic artificial-intelligence machine-learning reinforcement-learning
我正在学习强化学习和阅读萨顿的大学课程.除了经典的PD,MC,TD和Q-Learning算法之外,我还在阅读有关决策问题解决的政策梯度方法和遗传算法.我之前从未有过这个主题的经验,而且我很难理解何时应该优先选择一种技术.我有一些想法,但我不确定.有人可以简单解释或告诉我一个来源,我可以找到一些应该使用某些方法的典型情况吗?据我所理解:
更准确地说,我认为选择一种学习方法,程序员应该问自己以下问题:
但我不知道问题的这些细节如何影响学习方法的选择.我希望有些程序员已经对RL方法有一些经验,可以帮助我更好地理解他们的应用程序.
algorithm artificial-intelligence machine-learning markov-chains reinforcement-learning
深层强化学习和强化学习有什么区别?我基本上都知道强化学习是什么,但在这种背景下,具体术语深刻的含义是什么?