RL 博客:http://blog.sciencenet.cn/home.php?mod=space&uid=3189881&do=blog&view=me&from=space&srchtxt=RL&page=1

转自:http://blog.sciencenet.cn/home.php?mod=space&uid=3189881&do=blog&id=1128648,感谢分享

Monte carlo 和TD 都是model-free 的估值方法, TD 用于online RL 场景

强化学习中的Model-free问题主要的解决思路来源于统计方法。所谓统计方法又可分为Monte Carlo与TD算法。当学习任务可转化为episode task形式时,Monte Carlo与TD算法在实现上的不同主要体现在如何更新状态动作值函数。n-step TD算法则是由两种不同的值函数更新形式相结合所产生的,所以想要理解n-step TD算法,对Monte Carlo与TD进行透彻地的解析是十分有必要的。

 

Backup Diagram的区别

Monte Carlo方法:每个执行一个episode task,更新episode开始时的状态值函数。假设一个episode开始时的状态为【RL系列】从蒙特卡罗方法正式引入强化学习)下面将通过Backup Diagram将MC方法的更新形式更加清晰的表现出来:

Monte Carlo

Monte Carlo与TD算法

 

TD方法:在任意一个episode task执行过程中所遇到的每个状态都会被更新,且每个状态的更新都依赖于下一个状态的值函数与到达下一个状态所获得的奖励。因为是边执行episode边更新值函数,这种方法又被称为on-line learning。实际上,类似MC方法将执行好的episode的轨迹(trajectory)保存在下来,再依照TD方法更新也可以达到与on-line learning相同的效果,但很明显,这个方法是off-line learning,也就是说线下与线上学习并不是区分Monte Carlo与TD算法的依据。TD算法的值函数更新可用下图表示出来:

TD

Monte Carlo与TD算法

由上述示意图可以发现,TD方法的最后一步,也就是对状态V(End)=0,这样一来,这最后一步就与Monte Carlo方法一致了。

 

定步长与不定步长,TD方法

定步长与不定步长的更新方法在Bandit问题里就曾讨论过,定步长实际上为Recency-Weighted Average,不定步长则是Incremental形式。通常来说,Monte Carlo Prediction采用的是不定步长的值函数更新,TD方法则采用的是定步长形式,但也不是固定的,可以互换使用。理论上来说,定步长与不定步长的通用形式可以写为:

 

Vn+1(S)=Vn(S)+α(X−Vn(S))

 

在这个式子中,α的处理总是需要平衡收敛速度与均值方差。

Incremental Implementation作为不定步长的一种形式,可以说是比较好的平衡了收敛速度与均值方差之间的矛盾。对于Incremental形式来说,开始需要收敛速度时,α值的增大非常敏感,这样一来不但收敛速度未得到很大改善反而精确度下降得厉害。(举例:均匀分布与0-1分布)

为了解决这个问题,我们可以人为的构造出与原有需要估计的随机变量Y在TD中被描述为:

 

Y=Rew(S′)+V(S′)

 

为什么MC方法中的随机变量S1为起点的马尔可夫决策模型,每一条之路可以表示为一个episode。

例子一:

Monte Carlo与TD算法

假设共执行了N个episode,其中到达终态的episode个数分别为N1~N7。估计状态V(S1)为:

V(S1)=∑i6NiRi∑i6Ni

 

如果使用TD方法,对状态K2=N4+N5+N6始终成立。

 

V(S1)=K1V(S2)+K2V(S3)K1+K2=∑i6NiRi∑i6Ni

 

至于观察方差的变化,我们首先将通用的值函数更新方程做一个简单的化简:

 

Vn+1(S)=Vn(S)+α(X−Vn(S))=(1−α)Vn(S)+αX

 

值函数X本身对估计值方差的影响。

例子二:

Monte Carlo与TD算法

如上图所示,终态只有End1与End2,让我们假设episode到达End1所获得的Reward为1,到达End2所获得的Reward为0。如按照MC方法更新,则值函数通用更新方程中的随机变量X的概率分布可以写为:

 

P(X=1)=0.5P(X=0)=0.5

 

依据方差计算公式,随机变量X的方差为:

 

Var(X)=E[X2]−(E[X])2=0.25

 

如果我们按照TD方法更新,则可先计算出Var(Y):

 

P(Y=13)=0.5P(Y=23)=0.5Var(Y)=E[Y2]−(E[Y])2=0.0278

 

TD方法的估计均值误差是MC方法的1/10,这也就是TD方法通常可以在保持与MC方法相同的估计均值误差的前提下会以更快的速度收敛的原因(Random Walk问题就很好的应证了这一点,可以参考Sutton书的Figure 6.2与Figure 6.3)。但实际上这也并非是绝对的,MC方法的表现非常仰赖Reward设计与实际的环境,当终态数量很多时,Reward值之间比较接近时,MC方法的估计均值误差也不一定差。

 

n-step TD

对于上述的例子二,可将其episode前进的过程分为三个阶段或三层(如下图所示),所构造的待估计随机变量Y={V(S4),V(S5),V(S6),V(S7)},也就是对第一层的估计依赖于第三层,而跳过了第二层(第二层的估计直接依赖于终态的Reward),这就是2-step TD。可以证明2-step TD的估计均值与1-step TD和MC方法完全一致,但均值估计误差却各不相同。

Monte Carlo与TD算法

下面给出2-step TD的Backup Diagram:

2-Step TD

Monte Carlo与TD算法

可以写出n-step TD的构造随机变量Y的通用表达形式:

 

Y=Rew(Sn)+V(Sn)

 

通常来说,在进入收敛状态后,n-step TD的均值估计误差并不会一定优于1-step TD,但却可以很好的控制收敛的速度与RMSE之间的平衡,并且n-step TD的优势在于可以很好与eligibility traces相关联,这里就不再深入讨论,只探讨n-step TD本身。

 



http://blog.sciencenet.cn/blog-3189881-1128648.html 

相关文章: