【详解+推导!!】Actor-Critic 演员评论家算法

Actor-Critic,演员评论家算法是强化学习中的一种很实用的方法。
比较详细的推导可以看:https://datawhalechina.github.io/easy-rl/#/chapter9/chapter9?id=actor-critic-1

1. 简介

演员-评论家算法(Actor-Critic Algorithm) 是一种结合 policy base 和 value base 思想的算法,Actor是利用策略梯度算法实现,Critic使用时序差分实现。

  • Actor(演员)是策略函数 π θ ( s ) \pi_\theta(s) πθ(s),一般用神经网络实现,输入是当前状态,输出是一个动作。该网络的训练目标是最大化累计回报的期望
  • Critic(评论家)是值函数 V π ( s ) V^\pi(s) Vπ(s),该网络可以对当前策略的值函数进行估计,也就是可以评价Actor(策略函数)的好坏。
  • 原始的Actor(策略梯度法)是使用累计回报的期望作为训练依据,这样做 只有等到回合结束才能更新 π θ ( s ) \pi_\theta(s) πθ(s)的参数。

在 Actor-Critic 算法 里面,最知名的方法就是 A3C(Asynchronous Advantage Actor-Critic)。

  • 如果去掉 Asynchronous,只有 Advantage Actor-Critic,就叫做 A2C。
  • 如果加了 Asynchronous,变成 Asynchronous Advantage Actor-Critic,就变成 A3C。

2. Review: Policy Gradient

策略梯度法(Policy Gradient)可以参考:https://blog.csdn.net/qq_33302004/article/details/115495686

我们回顾一下policy gradient,其主要过程就是:

  • 先初始化一个策略网络 θ \theta θ
  • 用这个策略网络进行 N N N次游戏,产生 N N N τ \tau τ(游戏记录):
    τ 1 : { s 1 1 , a 1 1 , s 2 1 , a 2 1 , . . . } , R ( τ 1 ) τ 2 : { s 1 2 , a 1 2 , s 2 2 , a 2 2 , . . . } , R ( τ 2 ) . . . τ N : { s 1 N , a 1 N , s 2 N , a 2 N , . . . } , R ( τ N ) \tau^1: \{s_1^1, a_1^1, s_2^1, a_2^1, ... \}, R(\tau^1) \\ \tau^2: \{s_1^2, a_1^2, s_2^2, a_2^2, ... \}, R(\tau^2) \\ ... \\ \tau^N: \{s_1^N, a_1^N, s_2^N, a_2^N, ... \}, R(\tau^N) \\ τ1:{ s11,a11,s21,a21,...},R(τ1)τ2:{ s12,a12,s22,a22,...},R(τ2)...τN:{ s1N,a1N,s2N,a2N,...},R(τN)
  • 我们利用这 N N N τ \tau τ进行梯度上升,调整策略网络的参数:
    ∇ R ˉ ( τ ) = 1 N ∑ n = 1 N ∑ t = 1 T n ( ∑ t ′ = t T r t ′ n γ t ′ − t − b ) ∇ l o g p θ ( a t n ∣ s t n ) , γ ∈ [ 0 , 1 ] \nabla\bar{R}(\tau) = \frac1N \sum_{n=1}^N \sum_{t=1}^{T_n} (\sum_{t'=t}^T r_{t'}^n \gamma^{t'-t} - b) \nabla log p_\theta(a_t^n|s_t^n) , \gamma \in[0,1] Rˉ(τ)=N1n=1Nt=1Tnt=tTrtnγttb)logpθ(atnstn),γ[0,1]
  • 再如此重复2、3步。

3. Review: Q-Learning

Q-Learning可以参考:https://blog.csdn.net/qq_33302004/article/details/114871232

简而言之,Q-Learning就是一种 value base 的方法,该方法会建立一个Q表,里面存储了每一对 ( s , a ) (s,a) (s,a)对应的value值,agent会根据Q表中的值决定在状态 s s s下采用哪种动作。以上面的方法,agent不断与环境进行互动,并更新Q表,最终Q表不断收敛,机器人也取得了比较好的效果。

大致过程如下:

  • 初始化Q表
  • Repeat (for each episode):
    • 初始化状态s;
    • Repeat (for each step of episode):
      • 依据某种策略,从Q表中根据当前状态s,选择一个动作a;
      • 执行动作a,进入状态s’,获得环境反馈r;
        • Q
  • 22
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值