Sparse Reward的思考——Hierarchical RL

背景

现在就出现了另外一个场景,就是我们的目标是多个步骤的。可能在中间的某个步骤,很难获得最好的收益。举个例子,小孩子在学习和玩耍的过程看成一个强化的过程。比如,下一步如果选择玩耍,下一步可以得到1分,但是最终是-100分。对于学习步骤,下一步可能是-1分,但是最终是100分。但是我们的机器在选择适合,可能会选择玩耍,因为最终的reward是多步的,比较难以学习。在这种情况下,就需要用到sparse reward的场景。

  • 通常情况下,Agent 每一步操作有一个 reward 对应,但是,当 reward 的分布非常稀疏时,可能三四步甚至更多步之后才能产生reward。这样的话,对于机器而言学习如何行动会十分困难。
  • 这个一开始的暂时的小的reward 就叫 Sparse Reward
  • 比如说要让一个机器人倒水进水杯里,如果不对机器人做任何指导,可能它做很多次尝试,reward都一直是零。(不知道杯子在哪,不知道拿着手上的水壶干嘛,不知道水壶靠近杯子之后应该怎么做)

一、Reward shaping:Curiosity(好奇法)

  • 如果 reward 分布非常稀疏的时候,actor 会很难学习,所以刻意设计 reward 引导模型学习。
  • 把关键的一些动作强制地定义为正的reward,这样agent就不会反感这一学习行为,从而一步步走到最大的reward。在这里插入图片描述
  • 给强化学习模型添加 Reward shaping 的方法:好奇法 Curiosity
  • 在原来的强化学习模型当中,actor与环境做互动,根据环境给的state,采取一定的action,并得到reward。而新的模型引入了一个新的函数:ICM。

基于上边的例子,有一个ICM(intrinsic curiosity module)可以实现类似的逻辑。就是我们去人工设置一个reward的生成器,来帮助机器进行选择。

但是这样的方法会带来一个问题,就是ICM过于倾向于新的方法。这样会带来的一个问题就是机器总是会选择没出现过的场景。举个例子,在玩游戏的时候,很多的游戏背景是随机出现的,这样机器会一直待在原地不动,这个是因为背景一直变换,所以电脑倾向于选择这种的场景。

那怎么去优化这个问题呢?我们可以去学习另外一个网络,只保留有用的动作.。

二、Curriculum Learning(课程式学习):Reverse Curriculum Generation

应该逐步的进行学习,即学习的时候,应该从比较简单的方法开始学习起来,逐步到比较困难的地方。

  • “制定学习计划” Curriculum Learning,人来设定agent的学习顺序,让Agent以从易到难的顺序学习。
  • 比如机器人倒水的例子,最开始可以人引导机器人手臂到杯子的附近,教它做倒水的动作,之后再慢慢改变水杯,水壶等变量,让机器从简单学到复杂。

例子:

  • 在这里插入图片描述

三、Hierarchical Reinforcement Learning(阶层式强化学习)

  • 有好几个 agent,一些 agent 负责比较 high level 的东西,它负责订目标,然后它订完目标以后再分配给其他的 agent 去执行完成。
  • 如果低一层的agent没法达到目标,那么高一层的agent会受到惩罚
  • 每一层的agent都是将上一层的愿景当做输入,然后决定自己要产生什么输出
  • 如果一个agent实现了一个错误的目标,那就将最初的目标改为这个错误的目标(保证已经实现的成果不被浪费)

在这里插入图片描述

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值