强化学习(五)基于时序差分法 TD 的求解

介绍了如何用时序差分法求解最优价值函数,并举例演示了时序差分在线控制算法SARSA的计算过程
摘要由CSDN通过智能技术生成


在《强化学习(四)基于蒙特卡罗算法 Monte-Calo 的求解》的文末中提到,利用蒙特卡罗算法采样近似地求解强化学习问题,尽管该方法非常灵活,适用于连续和非连续问题,以及不需要知道环境的状态转化概率模型,但该方法要基于完整的状态序列,如果无法获取完整的状态序列,蒙特卡罗算法将不适用。而本文将介绍的时序差分法(Temporal-Difference,TD)则是一种可以不使用完整状态序列求解强化学习问题的方法

1. 时序差分法简介

时序差分法(Temporal-Difference,TD)和蒙特卡罗法都是不依赖于模型的求解方法,但前者相比后者的使用条件更加宽松,提高了算法的适应性但容易损失估计价值的准确性。

如下再回顾一遍,免模型的强化学习问题的两个基本问题:

  1. 预测问题(策略评估)。给定强化学习的状态集 S S S,动作集 A A A,采取动作的即时奖励 R R R,奖励衰减因子 γ \gamma γ,以及给定策略 π \pi π,在这些条件下(状态转移概率 P P P 未知),求解策略 π \pi π 的状态价值函数 v ( π ) v(\pi) v(π)
  2. 控制问题(策略迭代)。给定强化学习的状态集 S S S,动作集 A A A,采取动作的即时奖励 R R R,奖励衰减因子 γ \gamma γ,探索率 ϵ \epsilon ϵ,求解最优的状态价值函数 v ∗ v_* v 和最优策略 π ∗ \pi_* π

对于蒙特卡罗方法而言,迭代动作价值函数 Q Q Q 是通过平均所有采样的完整序列中出现的所有状态动作对的价值,而对于每个完整状态序列,在状态 s s s 下动作 a a a 的价值等于做出该动作后的即时奖励加上后续的期望状态价值,因此,每次迭代计算状态动作对的估计价值,需要先计算状态动作的后续状态价值 G t G_t Gt,可以通过奖励衰减因子 γ \gamma γ,后续每个动作的即时奖励 R t R_t Rt,以及结束状态的状态价值,通过如下式子倒推得到:

G t = R t + γ R t + 1 + γ 2 R t + 2 . . . γ T − t R T G_t=R_t+\gamma R_{t+1}+\gamma^2R_{t+2}...\gamma^{T-t}R_T Gt=Rt+γRt+1+γ2Rt+2...γTtRT

这里有些资料会写成 G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 . . . γ T − t − 1 R T G_t=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}...\gamma^{T-t-1}R_T Gt=Rt+1+γRt+2+γ2Rt+3...γTt1RT,认为这个即时奖励是做出动作之后获得的,因此下标将奖励视作是下一阶段的,而本人习惯认为即时奖励是当前阶段的,两种写法下标有所不同,但式子含义相同。

而时序差分法TD,顾名思义,就是通过延申部分状态序列的差值信息来预测(近似)未知的信息。对于不完整状态序列,由于不确定结束状态是什么,因此也不知道各个状态与结束状态之间的距离,无法像蒙塔卡罗方法那样,从结束状态倒推出各个状态的价值。时序差分法就是在这样的背景下,采用连续状态之间的差分进行估计出各个状态价值,递推关系如下:

G t = R t + γ v ( S t + 1 ) G_t=R_t+\gamma v(S_{t+1}) Gt=Rt+γv(St+1)

这里有一个关键点是,如果在不完整序列当中,某状态没有后续状态,则将该状态的后续状态估计价值设为 0 0 0。因此基于该式子,可以得到各个不完整状态序列中的状态动作对的估计价值。另一个与蒙塔卡罗方法有差异的地方是,蒙特卡罗方法由于采样的都是完整的状态序列,因此可以明确每种状态序列下必然出现的状态次数,最终在计算状态的平均估计价值时,可以准确地知道状态的所有出现时价值的平均值。然而对于不完整状态序列,统计状态的出现次数地意义并不大,而是通过学习了率 α \alpha α 来替代蒙特卡罗方法中的 1 / N 1/N 1/N,值迭代式子如下:

v ( s ) = v ( s ) + α ( G t − v ( s ) ) Q ( s , a ) = Q ( s , a ) + α ( G t − Q ( s , a ) ) v(s)=v(s)+\alpha \left( G_t-v(s)\right)\\ Q(s,a)=Q(s,a)+\alpha (G_t-Q(s,a)) v(s)=v(s)+α(Gtv(s))Q(s,a)=Q(s,a)+α(GtQ(s,a))

总的而言,时序差分法为了支持不完整状态序列的计算,采用了前后连续状态价值之间关系来计算各个状态价值;以及用 α \alpha α 替代了状态出现次数的倒数。接着将会以一个简单的案例,演示时序差分法的计算过程。

2. 利用时序差分法求解最优价值函数

时序差分法 TD 基于的是状态序列当中连续的状态的估计价值之间的关系迭代计算的。对于每个状态序列而言,最后的状态并不确定是否是结束状态,即使在所有的状态序列中都是以某个状态作为结尾,使用的也是 TD 公式。从这里可以看出,时序差分的方法相比蒙特卡罗方法的灵活性更高,不需要确认状态序列是否为完整序列都可以直接计算,因此目前绝大部分的强化学习以及深度强化学习的求解问题的方法都是以时序差分的思想为基础的。

2.1 策略评估(预测)

2.1.1 单步时序差分

接下来先通过一个策略评估的简单案例对比 MC 方法和 TD 方法之间的区别,具体案例如下:假设强化学习的状态空间有 { A , B , C , D } \{ A,B,C, D \} { A,B,C,D} 三个状态,基于已知策略,模拟采样获得以下若干完整序列:

  1. A 2 → B 1 → C 1 → D 1 A_2\rightarrow B_1\rightarrow C_1\rightarrow D_1 A2B1C1D1
  2. B 0 → C 2 → D 2 B_0\rightarrow C_2 \rightarrow D_2 B0C2D2
  3. A 3 → C 0 → D 0 A_3\rightarrow C_0 \rightarrow D_0 A3C0D0

其中,状态的下标表示该状态下,基于已有策略采取动作之后获得的即时奖励。先基于蒙特卡罗方法计算,每个状态序列中状态的收获通过: G t = R t + γ R t + 1 + γ 2 R t + 2 . . . γ T − t R T G_t=R_t+\gamma R_{t+1}+\gamma^2R_{t+2}...\gamma^{T-t}R_T Gt=Rt+γRt+1+γ2Rt+2...γTtRT 计算后,再求平均,令 γ = 1 \gamma=1 γ=1,可得:

v ( A ) = 4 , v ( B ) = 3.5 , v ( C ) = 2 , v ( D ) = 1 v(A)=4,v(B)=3.5,v(C)=2,v(D)=1 v(A)=4,v(B)=3.5,v(C)=2,v(D)=1

基于时序差分法计算,每个状态的收获是根据后续状态的预估价值计算的,先计算没有后续状态的状态 D D D,可得 v ( D ) = 1 v(D)=1 v(D)=1,接着按照式子 G t = R t + γ v ( S t + 1 ) G_t=R_t+\gamma v(S_{t+1}) Gt=Rt+γv(S<

  • 26
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
时序强化学习(Temporal Difference Reinforcement Learning, TDRL)是一类强化学习,结合了动态规划和蒙特卡洛方的思想。它通过使用经验数据进行增量式的更新,同时利用了当前和未来的估计值来逼近最优值函数。 时序强化学习的核心思想是通过估计值函数的分来更新值函数的估计值。在每个时间步,智能体观察到当前状态、选择动作、观察到下一个状态和收到奖励。然后,根据分误TD)来更新值函数的估计值。 TD定义为当前状态下的估计值与下一个状态的估计值之加上即时奖励。TD可以表示为: TD_error = R + γV(s') - V(s) 其中,R是即时奖励,V(s)是当前状态s的估计值,V(s')是下一个状态s'的估计值,γ是折扣因子,用于衡量未来奖励的重要性。 根据TD,可以使用不同的更新规则来更新值函数的估计值。常见的时序强化学习包括以下几种: 1. SARSA(State-Action-Reward-State-Action):SARSA算使用状态-动作对的估计值来更新Q值函数的估计值。在每个时间步,智能体根据当前策略选择动作,观察到下一个状态和奖励,并根据TD来更新Q值函数的估计值。 2. Q-learning:Q-learning算也是一种基于TD的更新规则,但它使用了下一个状态的最大估计值来更新Q值函数的估计值。在每个时间步,智能体根据当前策略选择动作,观察到下一个状态和奖励,并通过TD和最大估计值来更新Q值函数的估计值。 3. TD(λ):TD(λ)算是一种使用λ折扣因子的时序强化学习。它通过考虑未来多个时间步的估计值来更新值函数的估计值。TD(λ)算将过去若干时间步的TD进行加权求和,并根据加权和来更新值函数的估计值。 时序强化学习具有较高的效率和适应性,可以在每个时间步骤中进行更新,不需要等到任务结束后才进行更新。它能够快速收敛到最优策略,并且可以处理具有部分可观测性和连续状态空间的问题。该方在许多领域中都有广泛的应用,如机器人控制、游戏智能、自动驾驶等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lins号丹

小小鼓励,满满动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值