强化学习与多智能体强化学习(三)——Sparse Reward

实际上,强化学习中,大部分时间agent都没办法得到reward,所以agent的训练比较困难。解决Sparse Reward(稀疏奖励)有三个解决方向。

一、Reward Shaping

环境有一个固定的Reward,但为了引导agent去我们想要的方向,设计中间时间点的奖励。

下图是一篇论文中设计的Reward Shaping。训练环境是战斗游戏,当你杀害对方智能体时,你会得到一个大的Reward,但你杀害的过程是很长一段时间,所以设计了几项小的Reward。比如说掉血扣分,捡到补给包加分,如果固定不动扣分,有动作加分之类。这其中有一项Reward比较有意思,那就是Living,它得到的奖励是个很小负奖励,设计的原因是:如果智能体在探索的时候发现正奖励不好获取,它可能为了选择活下来而不去与对方智能体交战,所以这个负奖励的设置其实是为了逼迫你去和对方交战,去探索环境。至于这些奖励是怎么设计的,应该是通过不断的调试找到合适的奖励值。

加上Curiosity,根据s1,a1,s2得到ri1,最终的总Reward包括采取动作得到的Reward和ICM得到的好奇心Reward。

怎么设计ICM,让它有好奇心功能?Network1会 input 现在状态下采取的动作at 和现在的状态st去output 预测接下来的状态st+1,之后再判断这个预测和正式的状态之间区别大不大,区别越大的话得到Reward就越大,也就是鼓励智能体去冒险那些不可预测的情况。在训练的时候,Network要学习怎么根据st和at去预测接下来的状态。

但这个想法是有问题的: 有些State很难去预测,但不代表它就是重要的或好的。所以光教会agent去预测是远远不够的。所以用把无关紧要的事情“过滤”掉,只保留一些重要的Feature(比如说在战斗环境里,风吹草动之类的事情并不是重要的,可以过滤掉)。这个“过滤器”的训练是通过另外一个Network(这个Network的output写错了,得到的应该是预测的,而不是实际的,两个at写反了),就是从需要采取什么才能做到,将这个与实际进行比较,两者越接近越好。这样就能保证抽出来的Feature是和预测这件事有关的。

二、Curriculum Learning 

为智能体的学习做规划,训练由简单到难。比如下面这些战斗训练任务,先从最简单的训练任务(对方速度慢,血量低)做起,再到比较难的任务(对方速度快,血量高)。

比较常见的方法是Reverse Curriculum Generation。以机械手抓东西为例子。先给出一个goal-state(机械手已经抓到东西),接下来再根据goal-state去找靠近goal-state的state(机械手没有抓到东西,但已经非常靠近那个东西),但怎么定义这个状态之间的近是比较麻烦的,再从这些比较近的state做互动,看能不能达到goal-state。

在这过程中会得到reward,之后将这些reward中极端的的reward对应的state删除(对应case太简单或太难), 再从这些适中reward对应的state去衍生出更多的state。

三、 Hierarchical Reinforcement Learning

 之前已经学习过分层强化学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值