强化学习(五)--学习策略(时序差分)

之前的学习中,我们了解到学习强化学习的数据是完整的采样轨迹(蒙特卡洛方法),使用动态规划需要采用自举的方法,使用后继的值函数估计当前的值函数,本章要介绍的实际上是这两种方法的结合,叫做时序差分。

我们首先来回顾一下原来值函数的估计方程。

V(st)<V(st)+α(GtV(st))(5.1)V(s_t)<-V(s_t)+\alpha(G_t-V_(s_t)) \tag{5.1}

而时序差分的场景是不完整的轨迹,无法获取累计回报。它在轨迹sts_t的值函数的时候,用的是离开该状态的立即回报Rt+1R_{t+1},与下一个状态的St+1S_{t+1}的预估折扣值函数γV(St+1)\gamma V(S_{t+1})之和来估计。至于这段的理论基础在哪里呢?实际上是1988年Sutton首次证明了时序差分的最小均方误差上的收敛性。之后时序差分就应用到无法产生完整轨迹的无模型强化学习上。
那么它的公式就变成如下的样式

V(st)<V(st)+α(Rt+1+γV(St+1)V(St))(5.2)V(s_t)<-V(s_t)+\alpha(R_{t+1}+\gamma V_(S_{t+1}) - V(S_t)) \tag{5.2}

其中Rt+1+γV(St+1)R_{t+1}+\gamma V_(S_{t+1})称为TD(时序差分)的目标值;Rt+1+γV(St+1)V(St)R_{t+1}+\gamma V_(S_{t+1})-V(S_t)称为TD的误差

蒙特卡洛、动态规划和时序差分的对比

首先三种方法的核心不同点体现在值函数的更新公式上,蒙特卡洛(MC)方法使用的是值函数的原始定义,该方法依靠采样的完整性上,利用实际的累计回报平均值GtG_t来轨迹值函数,

TD和DP则是利用一步预测的方法计算当前状态值函数,其共同点就是利用的自举,使用后继的值函数逼近当前的值函数。不同的是DP无须采样,直接根据完整模型通过当前的状态S所有可能的转移状态S’,转移概率,立即回报来计算当前状态的S的值函数。而TD方法是无模型方法,无法获取当前状态的所有后继回报和状态,仅能通过采样学习轨迹片段用下一个状态的预估状态更新当前状态的预估价值。
这里也给出一个总结。

image.png

方差和偏差的对比

这里我们通过方差和偏差两个角度来对比这三种方法,对于MC算法来讲,因为采用的大量的模拟轨迹,使用累计回报的策略,每次的动作随机性较大,所以期望等于真值,但是方差却极大。
TD算法使用的是目标函数,是基于下一个状态的真值和当前状态的真值做对比,所以TD的估计是一个无偏估计,但是实际应用中,是基于下一个状态的值函数计算当前预估的值函数,因此是一个有偏估计,但是和MC相比,TD只用了一步随机状态和动作,因此随机性会小很多,方差也会小很多。

方法 偏差 方法
DP 无偏差 无方差
MC 无偏差 无方差
TD 无偏(真实TD目标),有偏(预估TD目标) 低方差

马尔可夫性质

DP的方法是基于模型的方法,基于现有的一个马尔可夫决策模型的状态转移概率和回报,因此具有马尔可夫性质。

而MC和TD都是无模型方法,需要通过轨迹估计当前的状态值函数,不同的是TD不需要完整的轨迹,利用现有的模型构建一个最大可能的马尔可夫决策模型。所以TD也具有马尔可夫性。而MC是一个纯粹的概率模拟,所以不具有马尔可夫性。

Sarsa:在线策略TD

与前面讲到的方法一直,TD也分为策略评估和策略改进两个步骤。根据产生的采样数据的策略和评估改进的策略是否为同一套策略,可以分为在线策略和离线策略。

本节要讲的就是在线策略。我们来简单描述一下这个过程。

image.png

基于状态S,遵循当前的策略π\pi,选择一个动作A,形成了一个状态行为(S,A),与环境交互,得到回报R,进入下一个状态S’,再次遵循当前策略,产生一个行为A’,产生第二个状态行为(S’,A’),利用后一个状态行为对(S’,A’)的Q(S’,A’)值更新前一个状态行为(S,A)的Q(S,A).

Q(S,A)<Q(S,A)+α(R+γQ(S,A)Q(S,A))(5.3)Q(S,A)<-Q(S,A)+\alpha(R+\gamma Q_(S',A') - Q(S,A)) \tag{5.3}

Q-learning:离线策略TD

离线的策略TD学习任务是借助策略μ(as)\mu(a|s)的采样数据来评估另一个策略π(as)\pi(a|s).

离线策略TD也使用重要性采样,假设状态sts_t遵循两个不同的策略产生同样的动作a,那么两种情况产生的行为ata_t的概率是不一样的。

首先我们考虑使用策略π\pi来评估策略π。基于状态sts_t,遵循状策略π,产生行为ata_t,得到回报Rt+1R_{t+1},进入新的状态st+1s_{t+1},再次使用策略π,产生行为at+1a_{t+1},评估策略π对应的目标TD为

Rt+1+γQ(st+1,at+1)(5.4)R_{t+1}+\gamma Q(s_{t+1},a_{t+1}) \tag{5.4}

如果改用策略μ\mu来评估策略π,就需要给Rt+1+γQ(st+1,at+1)R_{t+1}+\gamma Q(s_{t+1},a_{t+1})乘以一个重要性采样,对应的TD目标变为。

π(atst)μ(atst)(Rt+1+γQ(st+1,at+1))(5.5)\frac{π(a_t|s_t)}{\mu (a_t|s_t)}(R_{t+1} + \gamma Q(s_{t+1},a_{t+1})) \tag{5.5}

所以离线策略的TD对应的数学表达为

Q(st,at)<Q(st,at)+α(π(atst)μ(atst)(Rt+1+γQ(st+1,at+1)Q(st,at)))(5.6)Q(s_{t},a_{t}) <- Q(s_{t},a_{t})+\alpha(\frac{π(a_t|s_t)}{\mu (a_t|s_t)}(R_{t+1} + \gamma Q(s_{t+1},a_{t+1})-Q(s_t,a_t)) )\tag{5.6}

这个公式我们可以这样理解,在状态sts_t的时候,分别比较策略π(atst)π(a_t|s_t)和当前策略μ(atst)\mu(a_t|s_t)产生ata_t的概率大小,比值作为TD目标的权重,依次调整原来的状态sts_t的价值Q(st,at)Q(s_t, a_t).

应用这种思想就是Q-learning方法。它的一个要点就是,更新一个状态行为对的Q值,采用的不是当前策略的下一个状态行为对的Q值。

Q(St,At)<Q(St,At)+α(Rt+1+γQ(st+1,A)Q(St,At)))(5.7)Q(S_{t},A_{t}) <- Q(S_{t},A_{t})+\alpha(R_{t+1} + \gamma Q(s_{t+1},A')-Q(S_t,A_t)) )\tag{5.7}

TD的目标Rt+1+γQ(st+1,A)R_{t+1} + \gamma Q(s_{t+1},A')是基于目标策略π产生的行为A’得到的Q值和一个立即回报的和。在Q-learning方法中,实际与环境交互的遵循策略μ\mu是一个基于原始策略的σ\sigma贪心策略,目标策略π是单纯的贪心策略。
同Sarsa方法一样,Q-learning的具体执行时,单个轨迹内,每执行一个时间步,也会基于这个时间步的数据对行为值函数进行更新。其中产生的采样策略是σ\sigma贪心,而评估改进的策略是贪心策略。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×