强化学习的数学原理-07时序差分方法

引入

1730182586924.png

1730182626855.png

1730182679541.png

这三个例子是层层递进的,都可以用RM算法去解决

TD learing of state values

这个算法是求解给定策略πstatevalue,为什么求解statevalue其实就又回到了之前的PE,有了statevalue就可进行policyimprovement

TDlearning是指的一类强化学习算法。

TDlearning也是一种modelfree的算法他也是依赖于data

TD算法需要的数据有(s0,r1,s1,...,st,rt+1,st+1,...),表示成另一种形式就是(st,rt+1,st+1)这些数据的生成依赖于给定的策略π

下面是TD算法的形式

vt+1(st)=vt(st)αt(st)[vt(st)[rt+1+γvt(st+1)]]

vt+1(s)=vt(s),sst

wheret=0,1,2,...,这里vt(st)statevaluevπ(st)的估计

αt(st)是状态stt时刻的学习率

  • t时刻,只有被visitedstatest被更新,而其他未被访问的statessst保持不变
  • 一般第二个式子很多地方都会省略,但这里写出来更清楚

1730193628454.png

  • TDtarget:vt¯rt+1+γv(st+1)实际上希望vt朝着TDtarget的方向去改进
  • TDerrorδt=v(st)[rt+1+γvt(st+1)]=v(st)vt¯

为什么把vt¯叫做TDtarget

​ 这是因为算法是要将v(st)朝着vt¯的方向改进,也就是说下一个时刻 v(st)vt¯会更接近,所以vt¯叫做TDtarget

vt+1(st)=vt(st)αt(st)[vt(st)vt¯]

对上面的方程进行等价变形

vt+1(st)vt¯=vt(st)vt¯αt(st)[vt(st)vt¯]

vt+1(st)vt¯=[1αt(st)][vt(st)vt¯]

上面的方程在描述一件事情:vtvt¯之间差的变化,左边是t+1时刻的,右边是t时刻的.

对上面方程两边求绝对值.

vt+1(st)vt¯∣=∣[1αt(st)]∣∣[vt(st)vt¯]

因为αt(st)是一个比较小的正数,所以0<1αt(st)<1

所以就有:

vt+1(st)vt¯∣≤∣[vt(st)vt¯]

上面的式子就说明在下一个时刻t+1,v(st)vt¯的距离更近了,所以这个算法就是把vt(st)朝着vt¯的方向改进.


如何理解TDerror

δt=v(st)[rt+1+γv(st+1)]

  • 描述在两个时刻上面的difference
  • 描述vπvt之间的误差,也就是说当vt=vπδt=0,反过来说当δt0时,vtvπ

1730195434109.png


上面的TD算法仅仅能用来估计statevalue,不能直接估计actionvalue,同时也不能找到optimalpolicies

TD learing of action values Sarsa

Sarsa算法及其变形在做的事情是给定一个策略能够估计出来一个actionvalue,这也是policyevaluation(PE)的过程,然后再结合policyimprovement(PE)就可以找到最优策略.


First,给定一个policyπ去估计actionvalue

假设我们有一些experience{(st,at,rt+1,st+1,at+1)}t

有了上面的experience,我们就可以进行算法了

qt+1(st,at)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γqt(st+1,at+1)]]

qt+1(s,a)=qt(s,a),(s,a)(st,at)

wheret=0,1,2,...

  • qt(st,at)qπ(st,at)的一个估计
  • αt(st,at)是依赖于(st,at)的学习率

sarsa算法是stateactionrewardstateaction的首字母的缩写

sarsa算法和上面的TDlearning基本上是一摸一样的,只不过是将对状态的估计,变成了对动作(actionvalue)的估计

sarsa实际上也是在求解一个贝尔曼公式,只不过这个贝尔曼公式的形式和TDlearning中的贝尔曼公式的形式不同

qπ(s,a)=E[R+γqπ(S,A|s,a)],s,a

和之前使用statevalue不同的是,这个贝尔曼期望方程是使用actionvalue来表示的,刻画了不同的actionvalue之间的关系.


上面算法只是对actionvalue进行求解,为了找到最优策略,还需要进行policyimprovement(PE)

实际上Sarsa算法通常就指的是将Sarsapolicyimprovementstep

1730196830078.png

注意上面policyimprovement是采用的之前内容中的ϵgready算法


关于传统的Policyiteration和广义的GPI

1730197254319.png

TD learing of action values Expected Sarsa

这个算法和下面的nstepsarsa算法实际上是没有那么重要的,但是从一个经典算法出发,然后去推广改进,这种思路对于做研究来说是非常常见的

1730197693831.png

相比于原始的sarsa,需要计算期望,也就需要更大的计算量,但是随机性减少了

TD learing of action values n-step Sarsa

nstepSarsa包含了SarsaMonteCarlolearning两种方法

先复习一下actionvalue的定义

qπ(s,a)=E[GtSt=s,At=a]

discountedreturn的写法有很多种形式

SarsaGt(1)=Rt+1+γqπ(St+1+At+1)

Gt(2)=Rt+1+γRt+2+γ2qπ(St+2+At+2)

nstepSarsaGt(n)=Rt+1+γRt+2+...+γnqπ(St+n+At+n)

MCGt=Rt+1+γRt+2+γ2Rt+3+...

1730198567873.png

  • nstepsarsa所需要的数据既不像sarsa那样只需要前面5个(st,at,rt+1,st+1,at+1)也不像MC那样需要整个episoded额全部,而是只需要中间一部分
  • 存在问题,在t时刻是不知道后面(rt+n,st+n,at+n)的,在t时刻虽然得到了一些数据,但是不不能立刻去更新,而是需要等待,等待需要的数据都收集到,才能进行更新

onlineofflineMC方法是offline的,Sarsaonline

nstepsarsa是一种特殊的onlilne

1730199021551.png

TD learing of optimal action values:Q-learning

终于结束了Sarsa来到了大名鼎鼎Qlearning

Qlearning是直接估计optimalactionvalue不需要去做policyevaluationpolicyimprovement,而是能直接去估计最优的actionvalue


下面是Qlearningalgorithm:

qt+1(st,at)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γmaxaAqt(st+1,a]]

qt+1(s,a)=qt(s,a),(s,a)(st,at)

QlearningSarsa非常相似,它们之间的区别仅仅在于TDtarget不同

QlearningTDtargetrt+1+γmaxaAq(st+1,a)

Saras中的TDtargetrt+1+γqt(st+1,at+1)

Qlearning在数学上是在求解一个用actionvalue表示的贝尔曼最优方程

q(s,a)=E[Rt+1+γmaxaq(St+1,a|St=t,At=a)],s,a

上面的就是大名鼎鼎Qlearning了,经过前面TDlearning还有贝尔曼方程的铺垫,Qlearning理解起来就简单多了,下面是关于Qleanring的一些性质


Offpolicy vs onpolicy

TDlearning中存在两个policy

  • 一个是behaviorpolicy是用来和环境交互生成experiencesamples
  • 另一个是targetpolicy是用来不断朝着optimalpolicy去更新的

on-policybehaviorpolicytargetpolicy是相同的

off-policybehaviorpolicytargetpolicy是可以不相同的

Sarsa是一种onpolicy的算法,而Qlearningoffpolicy的算法

1730205503353.png

如何判断一个算法是onpolicy还是offpolicy

  • 看算法在解决什么数学问题
  • 可以看执行算法需要什么东西

image

image

image


两种qlearning的算法伪代码

1730206385197.png

1730206422316.png

offpolicy可以直接使用Gready是因为不需要用targetpolicy去探索生成数据,因为生成数据是πb的事情

a unified point of view

image

image

posted @   cxy8  阅读(99)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示