当前位置:   article > 正文

【深度强化学习 三】Actor-Critic及衍生算法简介(李宏毅老师学习视频笔记)_one-actor-dual-critic

one-actor-dual-critic

首先放视频链接李宏毅老师深度强化学习课程

Actor-Critic算法简介

这是一种policy based和value based方法的结合。首先复习一下加了discount和baseline的policy gradient算法:
∇ R ˉ θ ≈ 1 N ∑ n = 1 N ∑ t = 1 T n ( ∑ t ′ = t T n γ t ′ − t r t ′ n − b ) ∇ log ⁡ p θ ( a t n ∣ s t n ) \nabla \bar{R}_{\theta} \approx \frac{1}{N} \sum_{n=1}^{N} \sum_{t=1}^{T_{n}}\left(\sum_{t^{\prime}=t}^{T_{n}} \gamma^{t^{\prime}-t} r_{t^{\prime}}^{n}-b\right) \nabla \log p_{\theta}\left(a_{t}^{n} | s_{t}^{n}\right) RˉθN1n=1Nt=1Tn(t=tTnγttrtnb)logpθ(atnstn)
这里有一个问题,括号里的累计收益 G t n G^n_t Gtn可能是一个很不稳定的随机变量,即state s s s采取action a a a后轨迹可能有很大不同。而我们sample的轨迹又不能是太多,可能就会相差很多。所以我们希望用期望值代替sample的值。这时候就需要引入value based方法。发现这个期望值刚好是 Q Q Q值,即
E [ G t n ] = Q π θ ( s t n , a t n ) E\left[G_{t}^{n}\right]=Q^{\pi_{\theta}}\left(s_{t}^{n}, a_{t}^{n}\right) E[Gtn]=Qπθ(stn,atn)
这时候baseline可以用state value function V π θ ( s t n ) V^{\pi_{\theta}}\left(s_{t}^{n}\right) Vπθ(stn),这样括号里就变成 Q π ( s t n , a t n ) − V π ( s t n ) Q^{\pi}\left(s_{t}^{n}, a_{t}^{n}\right)-V^{\pi}\left(s_{t}^{n}\right) Qπ(stn,atn)Vπ(stn),看起来需要用两个网络来分别计算,现在考虑到:
Q π ( s t n , a t n ) = E [ r t n + V π ( s t + 1 n ) ] Q^{\pi}\left(s_{t}^{n}, a_{t}^{n}\right)=E\left[r_{t}^{n}+V^{\pi}\left(s_{t+1}^{n}\right)\right] Qπ(stn,atn)=E[rtn+Vπ(st+1n)]
我们为了简单,把期望去掉,得到 Q π ( s t n , a t n ) = r t n + V π ( s t + 1 n ) Q^{\pi}\left(s_{t}^{n}, a_{t}^{n}\right)=r_{t}^{n}+V^{\pi}\left(s_{t+1}^{n}\right) Qπ(stn,atn)=rtn+Vπ(st+1n),这样原式就可以换成 r t n + V π ( s t + 1 n ) − V π ( s t n ) r_{t}^{n}+V^{\pi}\left(s_{t+1}^{n}\right)-V^{\pi}\left(s_{t}^{n}\right) rtn+Vπ(st+1n)Vπ(stn),这便是优势函数版的actor-critic,即Advantage Actor-Critic。
训练的过程是交互——更新V网络——更新policy——再互动

Some tips

  1. 两个网络的前半部分可以共享
  2. 输出larger entropy,即更不确定的action,更鼓励探索。

A3C

关键在于加了多个worker,具体的过程如下

  1. 子worker复制全局的parameters
  2. 交互采样
  3. 计算梯度
  4. 更新全局parameters

Pathwise Derivative Policy Gradient

一种特别的AC算法,这个算法在于critic部分不但能告诉好与不好,还能指出要采用哪一个action。也可以理解为利用actor解决最大化Q的这个optimization problem。

在这里插入图片描述
直观理解就是利用 π \pi π输出一个action a a a,放入Q网络后,能后使Q值尽可能的大。
在这里插入图片描述

感觉最关键一点就是利用 π ( s i ) \pi(s_i) π(si)产生 a a a,同时以最大化 Q ( s i , π ( s i ) ) Q\left(s_{i}, \pi\left(s_{i}\right)\right) Q(si,π(si)) π \pi π的优化目标。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/552040
推荐阅读
相关标签
  

闽ICP备14008679号