强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)

学习笔记:
Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto c 2014, 2015, 2016

参照

需要了解强化学习的数学符号,先看看这里:

策略梯度方法(Policy Gradient Methods)

基于价值函数的思路

\[
\text{Reinforcement Learning} \doteq \pi_* \\
\quad \updownarrow \\
\pi_* \doteq \{ \pi(s) \}, \ s \in \mathcal{S} \\
\quad \updownarrow \\
\begin{cases}
\pi(s) = \underset{a}{argmax} \ v_{\pi}(s' | s, a), \ s' \in S(s), \quad \text{or} \\
\pi(s) = \underset{a}{argmax} \ q_{\pi}(s, a) \\
\end{cases} \\
\quad \updownarrow \\
\begin{cases}
v_*(s), \quad \text{or} \\
q_*(s, a) \\
\end{cases} \\
\quad \updownarrow \\
\text{approximation cases:} \\
\begin{cases}
\hat{v}(s, \theta) \doteq \theta^T \phi(s), \quad \text{state value function} \\
\hat{q}(s, a, \theta) \doteq \theta^T \phi(s, a), \quad \text{action value function} \\
\end{cases} \\
where \\
\theta \text{ - value function's weight vector} \\
\]

策略梯度方法的新思路(Policy Gradient Methods)

\[
\text{Reinforcement Learning} \doteq \pi_* \\
\quad \updownarrow \\
\pi_* \doteq \{ \pi(s) \}, \ s \in \mathcal{S} \\
\quad \updownarrow \\
\pi(s) = \underset{a}{argmax} \ \pi(a|s, \theta) \\
where \\
\pi(a|s, \theta) \in [0, 1] \\
s \in \mathcal{S}, \ a \in \mathcal{A} \\
\quad \updownarrow \\
\pi(a|s, \theta) \doteq \frac{exp(h(s,a,\theta))}{\sum_b exp(h(s,b,\theta))} \\
\quad \updownarrow \\
exp(h(s,a,\theta)) \doteq \theta^T \phi(s,a) \\
where \\
\theta \text{ - policy weight vector} \\
\]

策略梯度定理(The policy gradient theorem)

情节性任务

如何计算策略的价值\(\eta\)
\[
\eta(\theta) \doteq v_{\pi_\theta}(s_0) \\
where \\
\eta \text{ - the performance measure} \\
v_{\pi_\theta} \text{ - the true value function for } \pi_\theta \text{, the policy determined by } \theta \\
s_0 \text{ - some particular state} \\
\]

  • 策略梯度定理
    \[
    \nabla \eta(\theta) = \sum_s d_{\pi}(s) \sum_{a} q_{\pi}(s,a) \nabla_\theta \pi(a|s, \theta) \\
    where \\
    d(s) \text{ - on-policy distribution, the fraction of time spent in s under the target policy } \pi \\
    \sum_s d(s) = 1 \\
    \]

蒙特卡洛策略梯度强化算法(ERINFORCE: Monte Carlo Policy Gradient)

  • 策略价值计算公式
    \[
    \begin{align}
    \nabla \eta(\theta)
    & = \sum_s d_{\pi}(s) \sum_{a} q_{\pi}(s,a) \nabla_\theta \pi(a|s, \theta) \\
    & = \mathbb{E}_\pi \left [ \gamma^t \sum_a q_\pi(S_t,a) \nabla_\theta \pi(a|s, \theta) \right ] \\
    & = \mathbb{E}_\pi \left [ \gamma^t G_t \frac{\nabla_\theta \pi(A_t|S_t, \theta)}{\pi(A_t|S_t, \theta)} \right ]
    \end{align}
    \]

  • Update Rule公式
    \[
    \begin{align}
    \theta_{t+1}
    & \doteq \theta_t + \alpha \gamma^t G_t \frac{\nabla_\theta \pi(A_t|S_t, \theta)}{\pi(A_t|S_t, \theta)} \\
    & = \theta_t + \alpha \gamma^t G_t \nabla_\theta \log \pi(A_t|S_t, \theta) \\
    \end{align}
    \]

  • 算法描述(ERINFORCE: A Monte Carlo Policy Gradient Method (episodic))
    请看原书,在此不做拗述。

带基数的蒙特卡洛策略梯度强化算法(ERINFORCE with baseline)

  • 策略价值计算公式
    \[
    \begin{align}
    \nabla \eta(\theta)
    & = \sum_s d_{\pi}(s) \sum_{a} q_{\pi}(s,a) \nabla_\theta \pi(a|s, \theta) \\
    & = \sum_s d_{\pi}(s) \sum_{a} \left ( q_{\pi}(s,a) - b(s)\right ) \nabla_\theta \pi(a|s, \theta) \\
    \end{align} \\
    \because \\
    \sum_{a} b(s) \nabla_\theta \pi(a|s, \theta) \\
    \quad = b(s) \nabla_\theta \sum_{a} \pi(a|s, \theta) \\
    \quad = b(s) \nabla_\theta 1 \\
    \quad = 0 \\
    where \\
    b(s) \text{ - an arbitrary baseline function, e.g. } b(s) = \hat{v}(s, w) \\
    \]

  • Update Rule公式
    \[
    \delta = G_t - \hat{v}(s, w) \\
    w_{t+1} = w_{t} + \beta \delta \nabla_w \hat{v}(s, w) \\
    \theta_{t+1} = \theta_t + \alpha \gamma^t \delta \nabla_\theta \log \pi(A_t|S_t, \theta) \\
    \]

  • 算法描述
    请看原书,在此不做拗述。

角色评论算法(Actor-Critic Methods)

这个算法实际上是:

  1. 带基数的蒙特卡洛策略梯度强化算法的TD通用化。
  2. 加上资格迹(eligibility traces)

注:蒙特卡洛方法要求必须完成当前的情节。这样才能计算正确的回报\(G_t\)。
TD避免了这个条件(从而提高了效率),可以通过临时差分计算一个近似的回报\(G_t^{(0)} \approx G_t\)(当然也产生了不精确性)。
资格迹(eligibility traces)优化了(计算权重变量的)价值函数的微分值,\(e_t \doteq \nabla \hat{v}(S_t, \theta_t) + \gamma \lambda \ e_{t-1}\)。

  • Update Rule公式
    \[
    \delta = G_t^{(1)} - \hat{v}(S_t, w) \\
    \quad = R_{t+1} + \gamma \hat{v}(S_{t+1}, w) - \hat{v}(S_t, w) \\
    w_{t+1} = w_{t} + \beta \delta \nabla_w \hat{v}(s, w) \\
    \theta_{t+1} = \theta_t + \alpha \gamma^t \delta \nabla_\theta \log \pi(A_t|S_t, \theta) \\
    \]

  • Update Rule with eligibility traces公式
    \[
    \delta = R + \gamma \hat{v}(s', w) - \hat{v}(s', w) \\
    e^w = \lambda^w e^w + \gamma^t \nabla_w \hat{v}(s, w) \\
    w_{t+1} = w_{t} + \beta \delta e_w \\
    e^{\theta} = \lambda^{\theta} e^{\theta} + \gamma^t \nabla_\theta \log \pi(A_t|S_t, \theta) \\
    \theta_{t+1} = \theta_t + \alpha \delta e^{\theta} \\
    where \\
    R + \gamma \hat{v}(s', w) = G_t^{(0)} \\
    \delta \text{ - TD error} \\
    e^w \text{ - eligibility trace of state value function} \\
    e^{\theta} \text{ - eligibility trace of policy value function} \\
    \]

  • 算法描述
    请看原书,在此不做拗述。

针对连续性任务的策略梯度算法(Policy Gradient for Continuing Problems(Average Reward Rate))

  • 策略价值计算公式
    对于连续性任务的策略价值是每个步骤的平均奖赏
    \[
    \begin{align}
    \eta(\theta) \doteq r(\theta)
    & \doteq \lim_{n \to \infty} \frac{1}{n} \sum_{t=1}^n \mathbb{E} [R_t|\theta_0=\theta_1=\dots=\theta_{t-1}=\theta] \\
    & = \lim_{t \to \infty} \mathbb{E} [R_t|\theta_0=\theta_1=\dots=\theta_{t-1}=\theta] \\
    \end{align}
    \]

  • Update Rule公式
    \[
    \delta = G_t^{(1)} - \hat{v}(S_t, w) \\
    \quad = R_{t+1} + \gamma \hat{v}(S_{t+1}, w) - \hat{v}(S_t, w) \\
    w_{t+1} = w_{t} + \beta \delta \nabla_w \hat{v}(s, w) \\
    \theta_{t+1} = \theta_t + \alpha \gamma^t \delta \nabla_\theta \log \pi(A_t|S_t, \theta) \\
    \]

  • Update Rule Actor-Critic with eligibility traces (continuing) 公式
    \[
    \delta = R - \bar{R} + \gamma \hat{v}(s', w) - \hat{v}(s', w) \\
    \bar{R} = \bar{R} + \eta \delta \\
    e^w = \lambda^w e^w + \gamma^t \nabla_w \hat{v}(s, w) \\
    w_{t+1} = w_{t} + \beta \delta e_w \\
    e^{\theta} = \lambda^{\theta} e^{\theta} + \gamma^t \nabla_\theta \log \pi(A_t|S_t, \theta) \\
    \theta_{t+1} = \theta_t + \alpha \delta e^{\theta} \\
    where \\
    R + \gamma \hat{v}(s', w) = G_t^{(0)} \\
    \delta \text{ - TD error} \\
    e^w \text{ - eligibility trace of state value function} \\
    e^{\theta} \text{ - eligibility trace of policy value function} \\
    \]

  • 算法描述(Actor-Critic with eligibility traces (continuing))
    请看原书,在此不做拗述。
    原书还没有完成,这章先停在这里

强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)的更多相关文章

  1. 强化学习读书笔记 - 11 - off-policy的近似方法

    强化学习读书笔记 - 11 - off-policy的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton and ...

  2. 强化学习读书笔记 - 10 - on-policy控制的近似方法

    强化学习读书笔记 - 10 - on-policy控制的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton an ...

  3. 强化学习读书笔记 - 09 - on-policy预测的近似方法

    强化学习读书笔记 - 09 - on-policy预测的近似方法 参照 Reinforcement Learning: An Introduction, Richard S. Sutton and A ...

  4. 强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces)

    强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces) 学习笔记: Reinforcement Learning: An Introduction, Richard S. S ...

  5. 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)

    强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...

  6. 强化学习读书笔记 - 02 - 多臂老O虎O机问题

    # 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...

  7. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

  8. 强化学习(五)—— 策略梯度及reinforce算法

    1 概述 在该系列上一篇中介绍的基于价值的深度强化学习方法有它自身的缺点,主要有以下三点: 1)基于价值的强化学习无法很好的处理连续空间的动作问题,或者时高维度的离散动作空间,因为通过价值更新策略时是 ...

  9. 李宏毅强化学习完整笔记!开源项目《LeeDeepRL-Notes》发布

    Datawhale开源 核心贡献者:王琦.杨逸远.江季 提起李宏毅老师,熟悉强化学习的读者朋友一定不会陌生.很多人选择的强化学习入门学习材料都是李宏毅老师的台大公开课视频. 现在,强化学习爱好者有更完 ...

随机推荐

  1. Java50道经典习题-程序23 求岁数

    题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁.问第4个人岁数,他说比第3个人大2岁.问第三个人,又说比第2人大两岁.问第2个人,说比第1个人大两岁.最后问第一个人,他说是10岁.请问 ...

  2. Asp.Net Core + Ocelot 网关搭建:路由简单配置

    前言   Ocelot是一个基于中间件的网关实现,功能有很多.从浅入深简单学习并记录一下吧.本篇就是一个简单的路由配置实现. DEMO 搭建   首先建立三个项目.Api.User,Api.Artic ...

  3. rabbitmq关于guest用户登录失败解决方法

    刚安装完rabbitmq,登录的时候出现了: login  failed问题: 查看rabbitmq的文档,发现在3.3.1以后的版中,处于安全的考虑,guest这个默认的用户只能通过localhos ...

  4. PAT——1034. 有理数四则运算

    本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分 ...

  5. WebRTC博客推荐

    1. http://www.cnblogs.com/lingyunhu/ 2. http://www.jianshu.com/u/eadc7531ecb8

  6. JAVA语言编程思维入门

    Java语言是一门强数据类型语言,也就是所有的数据有自己的数据类型,不能搞混淆.比如整数int 字符串String 不能用int a="字符串123";这样写是错的,因为数据类型不 ...

  7. Android 把url生成二维码并贴到给定的底图上

    主要是用到了com.google.zxing jar包生成二维码的功能,这个jar包需要自己接下载 直接上代码 public static Bitmap CreateBinaryCodeImageBy ...

  8. MAC 相关

    1.找回个人收藏下的消失项,如文稿等   点击个人收藏中下的任意项,如桌面.下载等,按住Command+上箭头,出现如下界面,拖住消失项添加到个人收藏即可

  9. Java中的引用:强引用、软引用、弱引用、幻象引用(虚引用)

    Java语言中,除了原始数据类型的变量(八大基本数据类型),其他都是引用类型,指向各种不同的对象. 理解引用对于我们掌握Java对象生命周期和JVM内部相关机制都是有帮助的. 不同的应用类型,不同之处 ...

  10. ASP.net 加载不了字体Failed to load resource: the server responded with a status of 404 (Not Found)

    在bootstrap下加载不了字体内容.出现下列错误. 1.打开IIS找到部署的网站,点击MIME类型,把.woff和.woff2两个类型分别添加到新类型中,重启网站即可.