人工智能-强化学习: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函数 s t , a t , s t + 1 s_t,a_t,s_{t+1} st,at,st+1 作为输入,得到一种新的reward r i r^i ri ,actor的目标现在变为最大化两个部分的reward,即 r r r r i r^i ri 。可以理解为:新的模型中,actor被鼓励基于好奇去采取不一样的行动,这样的好奇带来的行动可以给actor带来额外的收益。
  • ICM函数的全称为 Intrinsic curiosity module,是用来为actor生成好奇感的函数。
  • 两个网络 Network1 和 Network2 是单独进行训练的。
  • Network1:将 a t a_t at 和 提取的 s t s_t st 的特征 Φ ( s t ) Φ(s_t) Φ(st)作为输入,输出 s t + 1 s_{t+1} st+1 的提取特征的估计值 Φ ^ ( s t + 1 ) \hat{Φ}(s_{t+1}) Φ^(st+1)。然后真实的 s t + 1 s_{t+1} st+1 的提取特征 Φ ( s t + 1 ) Φ(s_{t+1}) Φ(st+1) 用来与估计值 Φ ^ ( s t + 1 ) \hat{Φ}(s_{t+1}) Φ^(st+1) 比较,得到两者之间的差别。两者差别越大则 reward r i r^i ri 越大,也就是说,模型鼓励actor去冒险。
  • Network2::用来提取与action相关的有用的特征,输入 s t s_t st s t + 1 s_{t+1} st+1 的特征抽取值 Φ ( s t ) Φ(s_t) Φ(st) Φ ( s t + 1 ) Φ(s_{t+1}) Φ(st+1),输出估计的 action a t ^ \hat{a_t} at^,如果估计的 action a t ^ \hat{a_t} at^ 和真实的action a t a_t at 接近,则说明 Φ Φ Φ 函数提取的特征越有用。
  • 注意:当没有network 2的时候,由network 1给出来的较大的reward意味着 s t + 1 s_{t+1} st+1 很难预测,模型会鼓励actor去冒这个险,但有的时候很难预测的这个state可能是一点都不重要的,因此需要引入network 2来进行重要性计算评估。比如说,在一个游戏中,对于游戏背景并不会进行太多的state的规定,如果有的时候机器学习到站在一棵树下会导致state难以预测,那么就可能会一直站在树下,但是这一行为对于游戏而言完全没有意义,因此不予考虑。

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

  • “制定学习计划” Curriculum Learning,人来设定agent的学习顺序,让Agent以从易到难的顺序学习
  • 比如机器人倒水的例子,最开始可以人引导机器人手臂到杯子的附近,教它做倒水的动作,之后再慢慢改变水杯,水壶等变量,让机器从简单学到复杂。
    在这里插入图片描述
  • 给定一个目标state s g s_g sg
  • s g s_g sg 的附件取一些靠近 s g s_g sg 的样本 s 1 s_1 s1
  • s 1 s_1 s1 开始,每个trajectory 都会有一个reward R ( s 1 ) R(s_1) R(s1),删除那些reward太大(意味着已经学会了,课程太简单)的 s 1 s_1 s1 ,以及那些太小的 s 1 s_1 s1(意味着当前对于机器来说这个课程难度太大)
  • 然后以 s 1 s_1 s1 替代 s g s_g sg作为中心采样,重复上述过程。

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

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



Training Agent for First-Person Shooter Game with Actor-Critic Curriculum Learning
【笔记2-5】李宏毅深度强化学习笔记(五)Sparse Reward
解决Sparse Reward RL任务的简单回顾

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值