标签: reinforcement-learning

如何训练人工神经网络使用视觉输入玩暗黑破坏神2?

我正在努力让人工神经网络玩电子游戏,我希望能从这里的精彩社区获得一些帮助.

我已经确定了暗黑破坏神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

131
推荐指数
4
解决办法
4万
查看次数

值迭代和策略迭代之间有什么区别?

在强化学习中,策略迭代值迭代之间有什么区别?

根据我的理解,在价值迭代中,您使用Bellman方程来求解最优策略,而在策略迭代中,您随机选择策略π,并找到该策略的奖励.

我怀疑的是,如果你在PI中选择随机策略π,即使我们选择了几个随机策略,它如何保证成为最优策略.

machine-learning reinforcement-learning markov-models value-iteration

65
推荐指数
3
解决办法
4万
查看次数

用强化学习训练神经网络

我知道前馈神经网络的基础知识,以及如何使用反向传播算法对它们进行训练,但我正在寻找一种算法,而不是我可以用来通过强化学习在线训练ANN.

例如,推车杆摆动问题是我想用ANN解决的问题.在那种情况下,我不知道应该怎样做才能控制钟摆,我只知道我与理想位置有多接近.我需要根据奖励和惩罚来学习ANN.因此,监督学习不是一种选择.

另一种情况是蛇游戏,其中反馈被延迟,并且仅限于目标和反目标,而不是奖励.

我可以为第一种情况考虑一些算法,比如爬山或遗传算法,但我猜它们都会很慢.它们也可能适用于第二种情况,但速度极慢,不利于在线学习.

我的问题很简单:是否有一种简单的算法来训练具有强化学习的人工神经网络?我主要对实时奖励情况感兴趣,但如果基于目标的情境的算法可用,甚至更好.

language-agnostic algorithm machine-learning reinforcement-learning neural-network

61
推荐指数
2
解决办法
3万
查看次数

Q学习与SARSA有什么区别?

虽然我知道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

50
推荐指数
4
解决办法
2万
查看次数

了解RL中的近端策略优化算法的方法是什么?

我知道强化学习的基础知识,但是为了能够阅读arxiv PPO论文需要了解哪些条款?

学习和使用PPO的路线图是什么?

machine-learning reinforcement-learning

33
推荐指数
3
解决办法
1万
查看次数

支持向量机 - 比学习情境的人工神经网络更好?

我知道SVM被认为是'ANN杀手',因为它们会自动选择表示复杂性并找到全局最优(这里有一些SVM称赞引用).

但这里我还不清楚 - 所有这些优势主张只针对2级决策问题的情况还是更进一步?(我认为它们适用于非线性可分类,否则没有人会关心)

所以我想要澄清一些案例的样本:

  • SVM是否比具有多个类的ANN更好?
  • 在线设置?
  • 在强化学习这样的半监督案例中怎么样?
  • 是否有更好的无监督版SVM?

我不希望有人回答所有这些lil'子问题,而是在实践中给出SVM优于常见ANN等价物(例如FFBP,循环BP,Boltzmann机器,SOM等)的一般界限.并且优选地,理论上也是如此.

machine-learning svm reinforcement-learning neural-network

32
推荐指数
2
解决办法
1万
查看次数

如何将强化学习应用于连续动作空间?

我正在尝试让代理人学习在强化学习环境中最好地执行某些任务所必需的鼠标移动(即奖励信号是学习的唯一反馈).

我希望使用Q学习技术,但是当我找到一种方法将这种方法扩展到连续状态空间时,我似乎无法弄清楚如何适应连续动作空间的问题.

我可以强迫所有鼠标移动到一定幅度并且只在一定数量的不同方向上移动,但是使动作离散的任何合理方式都会产生巨大的动作空间.由于标准Q学习需要代理评估所有可能的动作,因此这种近似并不能解决任何实际意义上的问题.

algorithm machine-learning reinforcement-learning q-learning

27
推荐指数
4
解决办法
2万
查看次数

强化学习的良好实施?

对于一个ai级项目,我需要实现一个强化学习算法,该算法击败了一个简单的俄罗斯方块游戏.游戏是用Java编写的,我们有源代码.我知道强化学习理论的基础知识,但是想知道SO社区中是否有人亲身体验过这类事情.

  1. 对于在俄罗斯方块游戏中实施强化学习,您的推荐读数是什么?
  2. 是否有任何良好的开源项目可以完成类似的事情,值得一试?

编辑:越具体越好,但欢迎关于该主题的一般资源.

跟进:

我觉得如果我发布一个后续内容会很好.

这是我为任何未来的学生最终得到的解决方案(代码和写作):).

/代码

language-agnostic artificial-intelligence machine-learning reinforcement-learning

22
推荐指数
1
解决办法
5770
查看次数

何时使用某种强化学习算法?

我正在学习强化学习和阅读萨顿的大学课程.除了经典的PD,MC,TD和Q-Learning算法之外,我还在阅读有关决策问题解决的政策梯度方法和遗传算法.我之前从未有过这个主题的经验,而且我很难理解何时应该优先选择一种技术.我有一些想法,但我不确定.有人可以简单解释或告诉我一个来源,我可以找到一些应该使用某些方法的典型情况吗?据我所理解:

  • 仅当MDP具有很少的动作和状态并且模型已知时才应使用动态编程和线性编程,因为它非常昂贵.但是当DP比LP好?
  • 当我没有问题模型但我可以生成样本时使用蒙特卡罗方法.它没有偏见,但有很大的差异.
  • 当MC方法需要太多样本以具有低方差时,应使用时间差异方法.但是什么时候我应该使用TD和Q-Learning?
  • Policy Gradient和Genetic算法适用于连续MDP.但是当一个比另一个更好?

更准确地说,我认为选择一种学习方法,程序员应该问自己以下问题:

  • 代理人在线或离线学习吗?
  • 我们可以分开探索和开发阶段吗?
  • 我们可以进行足够的探索吗
  • MDP的地平线是有限的还是无限的?
  • 国家和行动是否连续?

但我不知道问题的这些细节如何影响学习方法的选择.我希望有些程序员已经对RL方法有一些经验,可以帮助我更好地理解他们的应用程序.

algorithm artificial-intelligence machine-learning markov-chains reinforcement-learning

22
推荐指数
1
解决办法
3344
查看次数

强化学习和深度RL有什么区别?

深层强化学习和强化学习有什么区别?我基本上都知道强化学习是什么,但在这种背景下,具体术语深刻的含义是什么?

machine-learning reinforcement-learning q-learning

21
推荐指数
2
解决办法
8234
查看次数