【强化学习笔记4】无模型预测

2019/02/27 RL RL_Notes

上一张我们学习了如何应用动态规划解决强化学习问题,但是这是在MDP所有信息已知的情况下,如果不知道环境信息,我们该如何解决预测和控制问题呢?这章我们先来解决无环境信息的预测问题,称之为Model-Free Prediction。

Model-Free Prediction

Model-Free Prediction实际上是对未知环境MDP的值函数进行评估,主要有Monte-Carlo Learning(蒙特卡洛学习)、Temporal-Difference Learning(时间差分学习)、Temporal-Difference Lambda(时间差分学习的扩展)。

Monte-Carlo Learning

特色:

  • 蒙特卡洛方法直接从经验片段中学习
  • 蒙特卡洛方法是model-free的,也就是不知道MDP的状态转移矩阵和奖励函数
  • 蒙特卡洛方法需要从完整的经验片段中学习
  • 蒙特卡洛方法采用最简单的想法:值函数值 = 回报的均值
  • 蒙特卡洛方法只能应用到有回合制的MDP中,也就是你的所有经验片段必须能够终止

蒙特卡洛方法如何进行策略评估呢?

  • 目标:从按照策略 $\pi$ 得到的经验片段中学习 $v_\pi$
  • 回报的定义是折扣奖励和
  • 值函数的定义是回报的期望
  • 蒙特卡洛策略评估方法采用经验回报的均值来替代回报期望

我们已经知道用经验回报的均值来表示回报期望,假如我们用(S,R)元组来表示状态-即时奖励对,有一个经验片段为 (A, 3), (B,4), (C,3), (A, 5), (D,4). 那么我们怎么计算状态A的回报呢?是以第一次A开始算还是以第二次A开始算呢?有两种方法来计算,一种是以每个状态第一次出现开始计算,后面出现的忽略,这个片段对于状态A,回报为 $G = 19$ ;另一种方法是每个状态每次出现都作为一次,这个片段对于状态A,会计数两次,一次回报为 $G = 19$,另一次回报为 $G = 9$。

下面介绍一种增量式的平均值计算方法,这个方法非常重要, 后面经常用到,假如有一个序列 $x_1, x_2, \cdots, $

他的均值依次为:

我们可以用增量式的方法来依次计算

那么均值依次为:

采用增量式的均值计算方法,蒙特卡洛方法的步骤为:

  • 根据策略 $\pi$ 生成经验片段
  • 将经验片段处理成 $\left( S_t, G_t \right)$ 状态-回报对
  • 对所有的$\left( S_t, G_t \right)$

这里更新式通常写作

在机器学习中,这个 $\alpha$ 通常称之为学习率,这里也是这个意思,不过我们可以直观的理解,当学习很久以前的经验片段,我们让学习率变小,也就是让时间距离久的经验起小一点的作用,当学习近期的经验片段,我们让学习率变大,也就是让时间距离近的经验起大一点的作用,这样看来 $\alpha$ 就是用来控制学习的速率的。

Temporal-Difference Learning

特色:

  • 时间差分方法直接从经验片段中学习
  • 时间差分方法是无模型的,也就是不知道MDP的状态转移矩阵和奖励函数
  • 时间差分方法可以从不完整的经验片段中学习
  • 时间差分方法更新一个猜测基于另一个猜测(这是英文直译,后面自然会明白)

蒙特卡洛学习方法与时间差分学习方法的差异

目标:都是从按照策略 $\pi$ 生成的经验片段中学习值函数 $v_\pi$

更新公式

  • 蒙特卡洛方法: $V(S_t) \leftarrow V(S_t) + \alpha (G_t - V(S_t))$
  • 时间差分方法: $V(S_t) \leftarrow V(S_t) + \alpha (R_{t+1} + \gamma V(S_{t+1}) - V(S_t))$

其中 $R_{t+1} + \gamma V(S_{t+1})$ 被称之为TD目标 $\delta_t = R_{t+1} + \gamma V(S_{t+1}) - V(S_t)$ 被称之为TD误差

蒙特卡洛方法和时间差异方法的优劣

  • TD可以在每一步中学习(在线学习),而MC必须等到片段结束才能学习
  • TD可以从不完整的片段中学习, 而MC只能从完整的片段中学习
  • TD可以在没有终止状态(连续)的MDP环境中工作,而MC只能在有终止状态(回合制)的MDP环境中工作
  • 回报 $G_t = R_{t+1} + \gamma R_{t+2} + \cdots + \gamma^{T-1}R_T$ 是 $v_\pi(S_t)$ 的无偏估计, 而TD目标 $R_{t+1} + \gamma V(S_{t+1})$ 却是 $v_\pi(S_t)$ 的有偏估计
  • TD目标比回报的方差低,因为回报依赖多个随机行为、转移、奖励,而TD目标值依赖一个随机行为、转移和奖励
  • MC高方差,无偏差;TD低方差,一些偏差。
  • MC有好的收敛性,对初始值不太敏感,非常简单理解和使用;TD通常比MC更有效率,对初始值更敏感
  • MC拟合经验数据,而TD拟合MDP
  • MC不利用马尔可夫属性,通常在非马尔可夫环境中更高效;TD利用马尔可夫属性,通常在马尔可夫环境中更高效

Temporal-Difference lambda

TD($\lambda$)是在TD上的扩展,试想,如果我们TD目标向前看n步,如果n足够大,那么TD实际上就变成了MC方法

我们定义n-step回报为:

n-step的时间差分方法更新式为

当n = 1时就是普通的TD方法,当n趋于无穷大时就是MC方法,自然就萌生了一个想法,能不能将这两个优点结合起来呢?使用加权平均来将这些回报结合起来。

前面的系数是为了保证权值和为1.

所以TD($\lambda$)的更新公式为

原教程中将这种TD lambda称之为前向的观点,还有后向的观点,这里不在叙述,有兴趣的请移步原教程ppt。

Search

    Table of Contents