强化学习笔记_4_Actor-Critic Methods

image-20221017131257916

1. Value Network and Policy Network
  • State-Value Function Approximation V π = ∑ a π ( a ∣ s ) ⋅ Q π ( s , a ) V_\pi=\sum_a\pi(a|s)·Q_\pi(s,a) Vπ=aπ(as)Qπ(s,a)

    Policy network(actor): π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ)

    Value network(critic): q ( s , a ; w ) q(s,a;w) q(s,a;w)
    V π = ∑ a π ( a ∣ s ) ⋅ Q π ( s , a ) ≈ ∑ a π ( a ∣ s ; θ ) ⋅ q ( s , a ; w ) V_\pi=\sum_a\pi(a|s)·Q_\pi(s,a)\approx\sum_a\pi(a|s;\theta)·q(s,a;w) Vπ=aπ(as)Qπ(s,a)aπ(as;θ)q(s,a;w)

  • Policy Network (Actor): π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ)

    image-20221017131829801

  • Value Network (Critic): q ( s , a ; w ) q(s,a;w) q(s,a;w)

    image-20221017131859837

  • Actor-Critic Method

2.Train the Neural Network

V ( s ; θ , w ) = ∑ a π ( a ∣ s ; θ ) ⋅ q ( s , a ; w ) V(s;\theta,w)=\sum_a\pi(a|s;\theta)·q(s,a;w) V(s;θ,w)=aπ(as;θ)q(s,a;w)

  • 模型训练:更新参数 θ , w \theta,w θ,w

    • 更新 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ)以提升 V ( s ; θ , w ) V(s;\theta,w) V(s;θ,w)

    • 更新 q ( s , a ; w ) q(s,a;w) q(s,a;w)以使其打分更加精确

  • 算法步骤:

    • 观测得到状态 s t s_t st

    • 以概率 π ( ⋅ ∣ s t ; θ t ) \pi(·|s_t;\theta_t) π(st;θt)随机采样得到动作 a t a_t at

    • 通过动作 a t a_t at,得到新的状态 s t + 1 s_{t+1} st+1和回报reward r t r_t rt

    • 通过TD-Learning更新参数 w w w

    • 通过Policy Gradient更新参数 θ \theta θ

  • Update value network q q q using TD

    • compute q ( s t , a t ; w t ) q(s_t,a_t;w_t) q(st,at;wt) and q ( s t + 1 , a t + 1 ; w t ) q(s_{t+1},a_{t+1};w_t) q(st+1,at+1;wt)
    • TD target: y t = r t + γ ⋅ q ( s t + 1 , a t + 1 ; w t ) y_t=r_t+\gamma·q(s_{t+1},a_{t+1};w_t) yt=rt+γq(st+1,at+1;wt)
    • Loss: L ( w ) = 1 2 [ q ( s t , a t ; w t ) − y t ] 2 L(w)=\frac{1}{2}[q(s_t,a_t;w_t)-y_t]^2 L(w)=21[q(st,at;wt)yt]2
    • Gradient descent: w t + 1 = w t − α ⋅ ∂ L ( w ) ∂ w ∣ w = w t w_{t+1}=w_t-\alpha ·\frac{\partial L(w)}{\partial w}|_{w=w_t} wt+1=wtαwL(w)w=wt
  • Update policy network π \pi π using policy gradient

    • Let g ( a , θ ) = ∂ log ⁡ π ( a ∣ s ; θ ) ∂ θ ⋅ q ( s t , a ; w ) g(a,\theta)=\frac{\partial \log \pi(a|s;\theta)}{\partial \theta}·q(s_t,a;w) g(a,θ)=θlogπ(as;θ)q(st,a;w)
    • ∂ V ( s ; θ , w t ) ∂ θ = E A [ g ( A , θ ) ] \frac{\partial V(s;\theta,w_t)}{\partial \theta}=E_A[g(A,\theta)] θV(s;θ,wt)=EA[g(A,θ)]
    • 以概率 π ( ⋅ ∣ s t ; θ t ) \pi(·|s_t;\theta_t) π(st;θt)随机抽样得到动作 a a a,计算 g ( a , θ ) g(a,\theta) g(a,θ)作为 ∂ V ( s ; θ , w t ) ∂ θ \frac{\partial V(s;\theta,w_t)}{\partial \theta} θV(s;θ,wt)的无偏估计(unbiased)
    • Stochastic gradient ascent: θ t + 1 = θ t + β ⋅ g ( a , θ t ) \theta_{t+1}=\theta_t+\beta·g(a,\theta_t) θt+1=θt+βg(a,θt)

image-20221017134250151

3.算法步骤总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DIbeLTxH-1672473251173)(null)]

在第9步中,使用 q t q_t qt进行计算为标准算法,如将 q t q_t qt替换为第5步得到的 δ t \delta_t δt,则为Policy Gradient with Baseline方法。二者对期望没有影响,但是使用好的Baseline可以降低方差,使方差收敛更快。

Baseline:任何接近 q t q_t qt的数都可以作为Baseline,但是不可以为动作 a t a_t at的函数。如果使用第5步的 δ t \delta_t δt,则Baseline为 r t + γ ⋅ q t + 1 r_t+\gamma·q_{t+1} rt+γqt+1

a t a_t at的函数。如果使用第5步的 δ t \delta_t δt,则Baseline为 r t + γ ⋅ q t + 1 r_t+\gamma·q_{t+1} rt+γqt+1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值