强化学习基础篇(十八)TD与MC方法的对立统一

2020-10-21  本文已影响0人  Jabes

强化学习基础篇(十八)TD与MC方法的对立统一

1、TD与MC在Bias与Variance的区别

前面介绍TD的过程中,我们已经提到过一些TD和MC的区别,例如在Bias与Variance角度看:

a. MC具有高方差,为无偏估计

b. TD具有低方差,为有偏估计

2、TD与MC在序列完整性上的区别

a. TD可以在知道最终结果之前就进行学习。

b. TD也可以在没有最终输出的场景下进行学习。

3、批量更新方法

假设只有有限的经验,比如10幕数据或100个时间步。在这种情况下,使用增量学习方法的一般方式是反复地呈现这些经验,直到方法最后收敛到一个答案为止。给定近似价值函数V,在访问非终止状态的每个时刻t,使用下面两式计算相应的增量但是价值函数仅根据所有增量的和改变一次。
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))
然后,利用新的值函数再次处理所有可用的经验,产生新的总增量,依此类推,直到价值函数收敛。我们称这种方法为批量更新,因为只有在处理了整批的训练数据后才进行更新。

在批量更新下,如果经验趋于无穷多,只要选择足够小的步长参数\alphaTD(0)就能确定地收敛到与\alpha无关的唯一结果。常数\alpha MC方法在相同条件下也能确定地收敛,但是会收敛到不同的结果。

当然,这是在经验趋于无穷(也即无数次试验)的情况下达到的理想情况,但是实际中我们不可能达到,那如果我们利用有限的经验来对值函数进行估计将得到什么样的结果?比方说,对于下面这K个 episode:
\begin{aligned} & s_1^1,a_1^1,s_2^1,...,s_{T_1}^1 \\ & ... \\ & s_1^K,a_1^K,s_2^K,...,s_{T_1}^K \\ \end{aligned}
如果我们重复从这K个episode中进行采样,对于某一次采样得到的样本k应用MC或者TD(0)方法,会得到什么样的结论呢?先来看一个例子。

4、AB Example

假设在一个强化学习问题中有A和B两个状态,模型未知,不涉及策略和行为,只涉及状态转换和即时奖励,衰减系数为1。现有如下表所示8个完整状态序列的经历,其中除了第1个状态序列发生了状态转移外,其余7个完整的状态序列均只有一个状态构成。现要求根据现有信息计算状态A、 B的价值分别是多少?

序号 状态转移:奖励
1 A:0,B:0
2 B:1
3 B:1
4 B:1
5 B:1
6 B:1
7 B:1
8 B:0

考虑分别使用MC算法和TD算法来计算状态A、 B的价值:

对于MC算法:

在8个完整的状态序列中,只有第一个序列中包含状态A,因此A价值仅能通过第一个序列来计算:
V(A) \leftarrow V(A)+\frac{1}{N(A)}(G_1-V(A))
所以可以得到V(A)=0

状态B的价值,则需要通过状态B在8个序列中的收获值来平均:
\begin{aligned} & V(B) \leftarrow V(B)+\frac{1}{N(B)}(G_1-V(B))\\ \end{aligned}
可以得到V(B)=\frac{6}{8}

对于TD算法

再来考虑应用TD算法。TD算法试图利用现有的episode经验构建一个MDP(如下图),由于存在一个episode使得状态A有后继状态B,因此状态A的价值是通过状态B的价值来计算的,同时经验表明A到B的转移概率是100%,且A状态的即时奖励是0,并且没有衰减,因此A的状态价值等于B的状态价值。

image.png

其计算过程如下:
\begin{aligned} V(A)&= \pi(a|A)[R_A^a+\gamma P_{AB}^aV(B)]\\ &= 1*[0+1*1*V(B)]\\ &= V(B) \end{aligned}

\begin{aligned} V(B)&= \pi(b_1|B)[R_B^{b1}+\gamma P_{BB'}^{b1}V(B')]+\pi(b_2|B)[R_B^{b2}+\gamma P_{BB'}^{b2}V(B')]\\ &= 0.75*[1+1*1*0]+0.25*[0+1*1*0]\\ &= 0.75 \end{aligned}

因此在TD算法下V(A)=V(B)=\frac{6}{8}

5、确定性等价估计(Certainty Equivalence estimate)

AB Example体现了通过批量TD(0)和批量蒙特卡洛方法计算得到的估计值之间的差别。批量蒙特卡洛方法总是找出最小化训练集上均方误差的估计,而批量TD(0)总是找出完全符合马尔科夫过程模型的最大似然估计参数。一个参数的最大似然估计是使得生成训练数据的概率最大的参数值。

TD与MC的另一个差异

6、统一的观点看MC,TD与DP

现在为止所阐述的MC学习算法、TD学习算法和DP算法都可以用来计算状态价值。它们的特点也是十分鲜明的,MC和TD是两种在不依赖模型的情况下的常用方法,这其中又以MC学习需要完整的状态序列来更新状态价值,TD学习则不需要完整的状态序列;DP算法则是基于模型的计算状态价值的方法,它通过计算一个状态S所有可能的转移状态S'及其转移概率以及对应的即时奖励来计算这个状态S的价值。

下图,非常直观的体现了三种算法的区别。

image.png image.png image.png

综合上述三种学习方法的特点,可以小结如下:

当使用单个采样,同时不经历完整的状态序列更新价值的算法是TD学习; 当使用单个采样,但依赖完整状态序列的算法是MC学习; 当考虑全宽度采样,但对每一个采样经历只考虑后续一个状态时的算法是DP学习; 如果既考虑所有状态转移的可能性,同时又依赖完整状态序列的,那么这种算法是穷举(exhausive search)法。

需要说明的是:DP利用的是整个MDP问题的模型,也就是状态转移概率,虽然它并不实际利用采样经历,但它利用了整个模型的规律,因此也被认为是全宽度(full width) 采样的。

image.png
上一篇下一篇

猜你喜欢

热点阅读