人工智能-强化学习:Sparse Reward(稀疏回报)

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

一、Reward shaping:Curiosity(好奇法)

  • 如果 reward 分布非常稀疏的时候,actor 会很难学习,所以刻意设计 reward 引导模型学习。
  • 把关键的一些动作强制地定义为正的reward,这样agent就不会反感这一学习行为,从而一步步走到最大的reward。
    人工智能-强化学习:Sparse Reward(稀疏回报)_第1张图片
  • 给强化学习模型添加 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以从易到难的顺序学习
  • 比如机器人倒水的例子,最开始可以人引导机器人手臂到杯子的附近,教它做倒水的动作,之后再慢慢改变水杯,水壶等变量,让机器从简单学到复杂。
    人工智能-强化学习:Sparse Reward(稀疏回报)_第2张图片
  • 给定一个目标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实现了一个错误的目标,那就将最初的目标改为这个错误的目标(保证已经实现的成果不被浪费)
    人工智能-强化学习:Sparse Reward(稀疏回报)_第3张图片



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

你可能感兴趣的:(#,强化学习/RL,人工智能,强化学习)