【深度强化学习】GAIL 与 IRL 的理解
作者:互联网
GAIL 与 IRL 的理解
Inverse Reinforcement Learning
逆强化学习,顾名思义,就是与强化学习的过程反着走。
Reinforcement Learning
强化学习的过程一般如下:
- 首先我们有一个可以互动的环境;
- 然后我们定义/设置一个奖励函数;
- Actor 通过不断与环境互动,来最大化奖励函数,找到一个最优的 actor。
Inverse Reinforcement Learning
逆强化学习的思想与强化学习相反。我们现在不知道奖励函数是什么(不知道如何设置奖励函数),但有专家数据。我们假设 **专家的示例是唯一最优的!**因此,我们需要从专家的示例中学习到奖励函数,然后再通过强化学习方法最大化这个学到的奖励函数,最终得到最优的 actor。
具体框架如下:
- 首先我们有专家策略 π ^ \hat{\pi} π^ 的数据 { τ ^ 1 , τ ^ 2 , ⋯ , τ ^ N } \left\{\hat{\tau}_{1}, \hat{\tau}_{2}, \cdots, \hat{\tau}_{N}\right\} {τ^1,τ^2,⋯,τ^N};
- 然后我们设置一个 actor,也去与环境交互,得到 { τ 1 , τ 2 , ⋯ , τ N } \left\{\tau_{1}, \tau_{2}, \cdots, \tau_{N}\right\} {τ1,τ2,⋯,τN};
- 然后根据 1 和 2 反推出 Reward Function R R R;根据原则:The expert is always the best.
- 然后,我们去最大化这个奖励函数
R
R
R(使用强化学习方法),学出一个新的 actor,这个 actor 再去交互,返回步骤 2。
Generative Adversarial Imitation Learning
GAIL 的思想就是将 GAN 运用在了 IRL 上。
Generative Adversarial Network
GAN 的思想就是我们训练一个生成器
G
G
G,它从一个普通的分布逐渐生成与现有数据分布相似的分布。
Generative Adversarial Imitation Learning
同样,我们希望我们的 actor 能够模仿专家。换句话说,就是 actor 产生的轨迹,与专家产生的轨迹越相似越好。
这里的 “相似” 指的是轨迹的分布相似!
具体过程如下图所示,跟我们上面讨论的 IRL 的图很像。Actor 就对应了这里的 Generator,Reward Function 就对应了这里的 Discriminator。
Discriminator 的训练
在判别器中,我们需要对每个轨迹打分,具体方法是可以将对轨迹的打分拆解为对 state-action 的打分,即 d ( s , a ) d(s,a) d(s,a)。然后在结合起来作为整个轨迹的打分。
训练目标是希望专家的得分更高,而 actor 的得分更低。
Generator 的训练
生成器的目标是使得 actor 的得分不断增大。理论上可以直接对 actor 的参数进行梯度上升的方法,来提升
D
(
τ
i
)
D(\tau_i)
D(τi) 的得分。但实际上不能这样计算,按照 policy gradient 的 trick,可展开为右边的式子。
Algorithm
整个算法的流程大致如下:
Reference
- PPT:https://speech.ee.ntu.edu.tw/~tlkagk/courses/MLDS_2017/Lecture/IRL%20(v3).pdf
- Video:https://www.youtube.com/watch?v=rOho-2oJFeA
标签:tau,GAIL,actor,学习,奖励,IRL,Learning,深度,强化 来源: https://blog.csdn.net/weixin_41960890/article/details/123644185