狗都能看懂的Sparse Reward的讲解

Sparse Reward

现实中有很多任务是没办法获得reward,例如打网球。只有在打到网球,并且有效得分后才能的得到reward。这种任务是sparse reward(稀疏的奖励)的。现实生活中,有很多这样任务。但是作为人类,在学习这些任务的时候,是非常迅速的,能在很短的时间学会这个任务。所以我们需要模仿人类的学习机制,去优化sparse reward场景的任务。

Reward Shaping

人为设计奖励,有时候本身任务的reward设计拿来直接训练用不是很合。比如打网球,它的规则是为了简化比赛的,而我们为了训练一个会打网球的人。是不会一上来就让他打比赛的。我们会让他先学习如何挥拍,如何击打球,怎么打到对面去,然后再得分,循序渐进。那我们如果要训练一个打网球的agent时,就可以人为设计奖励,比如多移动可以给一点reward,向球跑可以给多一点reward,有挥拍动作给reward。在训练到后期的时候,慢慢修改reward规则,更严格一些,要向球跑加击打动作了才有高reward等。

总而言之,Reward Shaping就是指让稀疏奖励更好被训练而提出来的人为设计奖励的一种方法。

Curiosity

在某些任务中,可能会给一个初始分数,agent在探索时,由于sparse reward的特性,agent会很难获得分数,且分数还会一直降低。这样的情况,多半训练到后面,agent就摆烂了,待在原地不探索。

icm-0.png

Curiosity是一种好奇心机制,鼓励agent进行探索。之前几篇博客里面说到是,随机生成一个概率,随机到了就探索。但是这个策略不同,是设计一个规则,利用reward进行鼓励探索。在上图中,ICM模块会饭回一个 r n i r^i_n rni,它会影响total reward。所以 r n i r^i_n rni的值越大越好。

icm-1.png

Curiosity内部是这样的,里面的network输入是 a t a_t at s t s_t st,输出一个预测的 s ^ t + 1 \hat{s}_{t+1} s^t+1,看它与实际的 s t + 1 s_{t+1} st+1差了多少,差的越多,得到的reward就越大。本质上是鼓励agent去探索。但这样做也会有副作用,某些state其实是比较差的,可能你一去探索就导致游戏结束。那我们也需要做限制。

icm-2.png

做法是再加一个network做过滤器,输入 s t s_t st s t + 1 s_{t+1} st+1,预测 a ^ t \hat{a}_t a^t a ^ t \hat{a}_t a^t a t a_t at越接近越好。因为这样就说明过滤后的状态是跟 a t a_t at有相关的,这样就可以把无关的过滤了。

Curriculum Learning

课程设计是指可以模仿人类学习的路线,从简单到难。这个很符合直觉,就像下面的游戏。让机器人学会把板子通过小孔放进棍子里。但对于机器人来说,一开始找准位置可能很难,但先让它学会从棍子中上放下去可能很简单。所以先让agent学简单的操作,一步一步变难,这也就是Curriculum Learning的思想

currculum.png

Reverse Curriculum Generation

rcg-1.png

逆向课程设计,我理解和课程没多大关系,就是按照目标state,回退到离他最近的 s 1 s_1 s1,然后让agent学习从这个 s 1 s_1 s1 s g s_g sg,等到学习到收敛了,再跳到下一步。

rcg-2.png

Hierarchical RL

这个思想其实就是分层次处理,就像一个公司/学校,一层层将任务从最顶层传递到最底层去做。每一层传递的是对应的指令,而不是同样的目标,比如,校长给教授说的是,今年要申请xxx指标,要有n篇文章。教授传递给研究生,要发n篇文章,需要怎么怎么做。

hrl-1.png

具体的例子类似于这个小球一样,从紫色移动到黄色,品红色的点是引导的,相当于把高层任务一层层拆成几个下层任务。

hrl-2.png

总结

Sparse Reward是生活中比较常见的任务场景,这些任务都是将reward高度集成了。对应的解决方法也很多,无非都是将reward拆解开,具体化,层次化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值