0 概览

  • Advantage Actor-Critic 主要在于Q函数的计算,
  • 其中baseline b选择为状态价值函数,使用神经网络代替Vπ(s,w)V_\pi (s,w)Vπ​(s,w)
  • Q函数使用贝尔曼方程来近似 Qπ(s,A)=rt+γVπ(st+1)Q_\pi(s,A)=r_t+\gamma V_\pi(s_{t+1})Qπ​(s,A)=rt​+γVπ​(st+1​)
  • 其中Advantage 体现在 Qπ(s,A)−Vπ(st)Q_\pi(s,A)-V_\pi(s_t)Qπ​(s,A)−Vπ​(st​)上
  • 贝尔曼方程:
    Qπ(st,at)=ESt+1[Rt+γ∗Vπ(St+1)]Q_\pi(s_t,a_t)=E_{S_{t+1}}[R_t+\gamma *V_\pi(S_{t+1})]Qπ​(st​,at​)=ESt+1​​[Rt​+γ∗Vπ​(St+1​)]
    Vπ(st)=EAt,St+1[Rt+γ∗Vπ(St+1)]]V_\pi (s_t)=E_{A_t,S_{t+1}}[R_t+\gamma *V_\pi(S_{t+1})]]Vπ​(st​)=EAt​,St+1​​[Rt​+γ∗Vπ​(St+1​)]]

1 核心公式

  • policy gradient 公式;
    EA~π[∂Inπ(A∣s;θ)∂θ∗(Qπ(s,A)−b)]E_{A~\pi}[\frac{\partial In\pi(A|s;\theta)}{\partial \theta} * (Q_\pi(s,A)-b)]EA~π​[∂θ∂Inπ(A∣s;θ)​∗(Qπ​(s,A)−b)]
    其中baseline b 使用Vπ(st)V_\pi(s_t)Vπ​(st​)表示
  • 则核心公式为
    EA~π[∂Inπ(A∣s;θ)∂θ∗(Qπ(s,A)−Vπ(st))]E_{A~\pi}[\frac{\partial In\pi(A|s;\theta)}{\partial \theta} * (Q_\pi(s,A)-V_\pi(s_t))]EA~π​[∂θ∂Inπ(A∣s;θ)​∗(Qπ​(s,A)−Vπ​(st​))] (公式1 )

2个神经网络actor 和critic

  • actor ,策略 policy π\piπ 使用神经网络表示: π(a∣s;θ)\pi(a|s;\theta)π(a∣s;θ)
  • critic , 状态价值函数V 使用神经网络表示 Vπ(s,w)V_\pi (s,w)Vπ​(s,w)

3 模型训练

训练目标:

actor 网络:使状态价值函数V的值最大
critic网络:使TDtarget 和st和s_{t}和st​的价值网络误差最小

模型训练

1 观察一组状态转移数据 (st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st​,at​,rt​,st+1​)
2 计算TDtarget ,使用yt=rt+γ.v(st+1;w)y_t=r_t+\gamma . v(s_{t+1};w)yt​=rt​+γ.v(st+1​;w) ,其中V为神经网络
3 计算st和st+1s_t和s_{t+1}st​和st+1​的TD error ; δt=V(st;w)−yt\delta_t=V(s_t;w)-y_tδt​=V(st​;w)−yt​
4 更新策略梯度π\piπ 神经网络;
θ=θ−β∗δt∂Inπ(at∣st;θ)∂θ\theta=\theta-\beta* \delta_t \frac{\partial In\pi(a_t|s_t;\theta)} {\partial \theta}θ=θ−β∗δt​∂θ∂Inπ(at​∣st​;θ)​
5 更新价值网络v
w=w−α∗δt∗∂v(st;w)∂ww=w-\alpha*\delta_t*\frac{\partial v(s_t;w)}{\partial w}w=w−α∗δt​∗∂w∂v(st​;w)​

4 贝尔曼方程推导

基本定义:

  • 回报(累计奖励) return : Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3....U_t=R_t+\gamma R_{t+1}+\gamma^2R{t+2}+\gamma^3R{t+3} ....Ut​=Rt​+γRt+1​+γ2Rt+2+γ3Rt+3....
  • 动作价值函数:Qπ(st,at)=E[Ut∣St=st,At=at]Q_\pi (s_t,a_t)=E[U_t|S_t=s_t,A_t=a_t]Qπ​(st​,at​)=E[Ut​∣St​=st​,At​=at​]
  • 状态价值函数:Vπ(st)=EA[Qπ(st,A)]V_\pi (s_t)=E_A[Q_\pi(s_t,A)]Vπ​(st​)=EA​[Qπ​(st​,A)]

贝尔曼方程推导

  • Qπ(st,at)=ESt+1,At+1[Rt+γ∗Qπ(St+1,At+1)]Q_\pi(s_t,a_t)=E_{S_{t+1},A_{t+1}}[R_t+\gamma *Q_\pi(S_{t+1},A_{t+1})]Qπ​(st​,at​)=ESt+1​,At+1​​[Rt​+γ∗Qπ​(St+1​,At+1​)]
    讲求和At+1A_{t+1}At+1​移动到公式内
  • Qπ(st,at)=ESt+1[Rt+γ∗EAt+1[Qπ(St+1,At+1)]]Q_\pi(s_t,a_t)=E_{S_{t+1}}[R_t+\gamma *E_{A_{t+1}}[Q_\pi(S_{t+1},A_{t+1})]]Qπ​(st​,at​)=ESt+1​​[Rt​+γ∗EAt+1​​[Qπ​(St+1​,At+1​)]]

其中

  • EAt+1[Qπ(St+1,At+1)]=Vπ(St+1)E_{A_{t+1}}[Q_\pi(S_{t+1},A_{t+1})]=V_\pi(S_{t+1})EAt+1​​[Qπ​(St+1​,At+1​)]=Vπ​(St+1​)
    则
  • Qπ(st,at)=ESt+1[Rt+γ∗Vπ(St+1)]Q_\pi(s_t,a_t)=E_{S_{t+1}}[R_t+\gamma *V_\pi(S_{t+1})]Qπ​(st​,at​)=ESt+1​​[Rt​+γ∗Vπ​(St+1​)] (公式2)

根据状态价值函数定义:Vπ(st)=EA[Qπ(st,A)]V_\pi (s_t)=E_A[Q_\pi(s_t,A)]Vπ​(st​)=EA​[Qπ​(st​,A)]
=》Vπ(st)=EAt[ESt+1[Rt+γ∗Vπ(St+1)]]V_\pi (s_t)=E_{A_t}[E_{S_{t+1}}[R_t+\gamma *V_\pi(S_{t+1})]]Vπ​(st​)=EAt​​[ESt+1​​[Rt​+γ∗Vπ​(St+1​)]]

  • Vπ(st)=EAt,St+1[Rt+γ∗Vπ(St+1)]]V_\pi (s_t)=E_{A_t,S_{t+1}}[R_t+\gamma *V_\pi(S_{t+1})]]Vπ​(st​)=EAt​,St+1​​[Rt​+γ∗Vπ​(St+1​)]]。(公式3)

核心公式:
Qπ(st,at)=ESt+1[Rt+γ∗Vπ(St+1)]Q_\pi(s_t,a_t)=E_{S_{t+1}}[R_t+\gamma *V_\pi(S_{t+1})]Qπ​(st​,at​)=ESt+1​​[Rt​+γ∗Vπ​(St+1​)]
Vπ(st)=EAt,St+1[Rt+γ∗Vπ(St+1)]]V_\pi (s_t)=E_{A_t,S_{t+1}}[R_t+\gamma *V_\pi(S_{t+1})]]Vπ​(st​)=EAt​,St+1​​[Rt​+γ∗Vπ​(St+1​)]]

5 蒙特卡洛近似

  • Qπ(st,at)=ESt+1[Rt+γ∗Vπ(St+1)]Q_\pi(s_t,a_t)=E_{S_{t+1}}[R_t+\gamma *V_\pi(S_{t+1})]Qπ​(st​,at​)=ESt+1​​[Rt​+γ∗Vπ​(St+1​)]。(公式2)
  • Vπ(st)=EAt,St+1[Rt+γ∗Vπ(St+1)]]V_\pi (s_t)=E_{A_t,S_{t+1}}[R_t+\gamma *V_\pi(S_{t+1})]]Vπ​(st​)=EAt​,St+1​​[Rt​+γ∗Vπ​(St+1​)]] (公式3)

公式蒙特卡洛近似:

  • Qπ(st,at)=rt+γ∗Vπ(St+1)Q_\pi(s_t,a_t)=r_t+\gamma *V_\pi(S_{t+1})Qπ​(st​,at​)=rt​+γ∗Vπ​(St+1​)
  • Vπ(st)=rt+γ∗Vπ(St+1)]V_\pi (s_t)=r_t+\gamma *V_\pi(S_{t+1})]Vπ​(st​)=rt​+γ∗Vπ​(St+1​)]
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐