蒙特卡洛方法、DP方法和TD方法的主要区别(原理版)

蒙特卡洛方法和TD都不需要环境模型,而DP方法需要依赖完整的环境模型,这是最重要的前提。

一、三种方法的更新方式

DP

基于策略迭代的DP可以表示成(严谨写法不是下面这样的,下面的写法主要是为了展示算法中的更新过程):
v k + 1 ( s ) = Σ a π ( a ∣ s ) Σ s ′ , r ′ p ( s ′ , r ∣ s , a ) [ r + γ v k ( s ′ ) ] v_{k+1}(s) = \Sigma_{a}\pi(a|s) \Sigma_{s',r'} p(s',r|s,a)[r+\gamma v_{k}(s')] vk+1(s)=Σaπ(as)Σs,rp(s,rs,a)[r+γvk(s)]

基于价值函数的DP可以表示成(非严谨写法):
v k + 1 ( s ) = m a x a Σ s ′ , r ′ p ( s ′ , r ∣ s , a ) [ r + γ v k ( s ′ ) ] v_{k+1}(s) = max_{a} \Sigma_{s',r'} p(s',r|s,a)[r+\gamma v_{k}(s')] vk+1(s)=maxaΣs,rp(s,rs,a)[r+γvk(s)](k为迭代次数,可不用管)

**

蒙特卡洛方法

**
首次访问型的蒙特卡洛方法可以表示成:
V ( S t ) V(S_{t}) V(St) ← \gets V ( S t ) + ( G ( t ) − V ( S t ) ) / ( n + 1 ) V(S_{t})+(G(t) -V(S_{t}))/(n+1) V(St)+(G(t)V(St))/(n+1)

适用于非平稳环境的每次访问型蒙特卡洛方法可以表示成:
V ( S t ) V(S_{t}) V(St) ← \gets V ( S t ) + α ( G ( t ) − V ( S t ) ) V(S_{t})+\alpha(G(t) -V(S_{t})) V(St)+α(G(t)V(St))

**

TD方法

**
V ( S t ) V(S_{t}) V(St) ← \gets V ( S t ) + α ( R ( t + 1 ) + γ V ( S t + 1 ) − V ( S t ) ) V(S_{t})+\alpha(R(t+1) + \gamma V(S_{t+1}) -V(S_{t})) V(St)+α(R(t+1)+γV(St+1)V(St))

可以看到TD方法用 ( R ( t + 1 ) + γ V ( S t + 1 ) (R(t+1) + \gamma V(S_{t+1}) (R(t+1)+γV(St+1)近似替代了每次访问型蒙特卡洛中的G(t)。

二、三种方法的更新方式总结

  • 蒙特卡洛方法通过采样得到G(t)来更新 V ( S t ) V(S_{t}) V(St),并且 V ( S t ) V(S_{t}) V(St)的终值作为 V π V_{\pi} Vπ(s)的估计值

  • DP则是通过环境模型给定的p(s’,r|s,a)以及 π \pi π(a|s)来迭代更新 v π v_{\pi} vπ(s),在更新时将 v π ( S t ) v_{\pi} (S_{t}) vπ(St)作为 v π v_{\pi} vπ(s)的估计值。

  • TD方法结合了二者,将 v π ( S t ) v_{\pi} (S_{t}) vπ(St)作为 v π v_{\pi} vπ(s)的估计值,从而在单步采样后得到G(t)的估计值,并用G(t)的估计值更新 V ( S t ) V(S_{t}) V(St),最后将 V ( S t ) V(S_{t}) V(St)的终止作为 v π ( s ) v_{\pi}(s) vπ(s)的终值。

  • TD和蒙特卡洛的更新又叫采样更新,采样更新和DP方法使用的更新方式的不同在于,采样更新依赖的是基于后继结点的样本数据;而DP是依赖于后继结点的分布状态(环境模型所决定的)。

三、更新方式的原理探究

1、蒙特卡洛方法

通过大量采样的模拟真实情况

2、DP

凭借环境模型保证了可靠性

3、TD

TD方法的背后理论究竟是什么呢?TD在更新方式上简单的融合了蒙特卡洛方法和DP,但是蒙特卡洛和DP适用的先决条件实际上有很大差异。这时候数学推导就发挥它奇妙作用,为TD理论进行了强有力的背书。

如果价值函数数组V在一幕内没有发生改变,那么蒙特卡洛误差实际上可以写成TD误差之和。其中TD误差是指 δ t = R ( t + 1 ) + γ V ( S t + 1 ) − V ( S t ) \delta_{t} = R(t+1) + \gamma V(S_{t+1}) -V(S_{t}) δt=R(t+1)+γV(St+1)V(St), 蒙特卡洛误差是指 G ( t ) − V ( S t ) G(t) -V(S_{t}) G(t)V(St), 推导如下。
G ( t ) − V ( S t ) = G ( t ) − V ( S t ) + γ V ( S t + 1 ) − γ V ( S t + 1 ) = R ( t + 1 ) + γ G ( t + 1 ) − V ( S t ) + γ V ( S t + 1 ) − γ V ( S t + 1 ) = δ t + γ ( ( G t + 1 ) − V ( S t + 1 ) ) = δ t + γ δ t + 1 + δ 2 ( G t + 2 − V ( S t + 2 ) ) = δ t + γ δ t + 1 + γ 2 δ t + 2 + ⋯ + γ T − t − 1 δ T − 1 + γ T − t ( G ( T ) − V ( S T ) ) = δ t + γ δ t + 1 + γ 2 δ t + 2 + ⋯ + γ T − t − 1 δ T − 1 + γ T − t ( 0 − 0 ) = Σ k = t T − 1 γ k − t δ k G(t) -V(S_{t}) \\= G(t) -V(S_{t}) + \gamma V(S_{t+1}) - \gamma V(S_{t+1}) \\= R(t+1) + \gamma G(t+1) - V(S_{t} ) + \gamma V(S_{t+1}) - \gamma V(S_{t+1}) \\= \delta_{t} + \gamma((G_{t+1})-V(S_{t+1})) \\= \delta_{t} + \gamma \delta_{t+1} + \delta^{2}(G_{t+2} - V(S_{t+2})) \\= \delta_{t} + \gamma \delta_{t+1} + \gamma^{2}\delta_{t+2} + \cdots +\gamma^{T-t-1}\delta_{T-1} + \gamma^{T-t}(G(T) - V(S_{T})) \\= \delta_{t} + \gamma \delta_{t+1} + \gamma^{2}\delta_{t+2} + \cdots +\gamma^{T-t-1}\delta_{T-1} + \gamma^{T-t}(0-0) \\= \Sigma^{T-1}_{k=t}\gamma^{k-t}\delta_{k} G(t)V(St)=G(t)V(St)+γV(St+1)γV(St+1)=R(t+1)+γG(t+1)V(St)+γV(St+1)γV(St+1)=δt+γ((Gt+1)V(St+1))=δt+γδt+1+δ2(Gt+2V(St+2))=δt+γδt+1+γ2δt+2++γTt1δT1+γTt(G(T)V(ST))=δt+γδt+1+γ2δt+2++γTt1δT1+γTt(00)=Σk=tT1γktδk

如果V在该幕中变化了,这个等式就不准确,但是如果时刻步长较小,则等式仍能近似成立。这个等式就是TD理论和算法的重要支撑。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值