【笔记2-5】李宏毅深度强化学习笔记(五)Sparse Reward

李宏毅深度强化学习- Sparse Reward

  • Reward Shaping
  • 课程式学习
  • 级联强化学习

李宏毅深度强化学习课程 https://www.bilibili.com/video/av24724071

李宏毅深度强化学习笔记(一)Outline
李宏毅深度强化学习笔记(二)Proximal Policy Optimization (PPO)
李宏毅深度强化学习笔记(三)Q-Learning
李宏毅深度强化学习笔记(四)Actor-Critic
李宏毅深度强化学习笔记(六)Imitation Learning
李宏毅深度强化学习课件

Reward Shaping

当reward的分布非常分散时,对于机器而言学习如何行动会十分困难。
比如说要让一个机器人倒水进水杯里,如果不对机器人做任何指导,可能它做很多次尝试,reward都一直是零。(不知道杯子在哪,不知道拿着手上的水壶干嘛,不知道水壶靠近杯子之后应该怎么做)
因此,在训练或指导一个actor去做你想要它做的事情时,需要进行reward shaping

好奇法:
【笔记2-5】李宏毅深度强化学习笔记(五)Sparse Reward_第1张图片
在原来的模型当中,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生成好奇感的函数,它的网络结构如下:
【笔记2-5】李宏毅深度强化学习笔记(五)Sparse Reward_第2张图片
在这个模型中,两个网络 network1 和 network2 是单独进行训练的。

Network 1:将提取的 a t a_t at s t s_t st 的特征作为输入,输出 s t + 1 s_{t+1} st+1 的提取特征的估计。然后真实的 s t + 1 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 ϕ \phi ϕ 值,输出估计的action a t ^ \hat{a_t} at^,如果估计的action和真实的action a t a_t at 接近,则 ϕ \phi ϕ 可以用来提取有用的特征。

注意:当没有network 2的时候,由network 1给出来的较大的reward意味着 s t + 1 s_{t+1} st+1 很难预测,模型会鼓励actor去冒这个险,但有的时候很难预测的这个state可能是一点都不重要的,因此需要引入network 2来进行重要性计算。比如说,在一个游戏中,对于游戏背景并不会进行太多的state的规定,如果有的时候机器学习到站在一棵树下会导致state难以预测,那么就可能会一直站在树下,但是这一行为对于游戏而言完全没有意义,因此不予考虑。

课程式学习

意味着学习的任务从简单到困难(为机器设计一套课程计划)

比如前文提到的机器人倒水的例子,最开始可以人引导机器人手臂到杯子的附近,教它做倒水的动作,之后再慢慢改变水杯,水壶等变量,让机器从简单学到复杂。

反向课程生成:
【笔记2-5】李宏毅深度强化学习笔记(五)Sparse Reward_第3张图片
给定一个目标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 s_1 s1),删除那些reward太大(意味着已经学会了,课程太简单)的 s 1 s_1 s1,以及那些太小的 s 1 s_1 s1(意味着当前对于机器来说这个课程难度太大),然后继续以 s 1 s_1 s1 为中心采样,重复上述过程。

级联强化学习

如果低一层的agent没法达到目标,那么高一层的agent会受到惩罚(高层agent将自己的愿景传达给底层agent)
如果一个agent到了一个错误的目标,那就假设最初的目标本来就是一个错误的目标(保证已经实现的成果不被浪费)

你可能感兴趣的:(笔记,李宏毅深度强化学习笔记)