一、前言
在强化学习系列(五):蒙特卡罗方法(Monte Carlo)中,我们提到了求解环境模型未知MDP的方法——Monte Carlo,但该方法是每个episode 更新一次(episode-by-episode)。本章介绍一种单步更新的求解环境模型未知MDP的方法——Temporal-Difference Learning(TD)。TD(0)算法结合了DP 和Monte Carlo算法的优点,不仅可以单步更新,而且可以根据经验进行学习。
本章同样将强化学习问题分为prediction 和 control,分别介绍TD是如何用于求解这两类问题的。
二、TD prediction
TD(0)算法结合了DP 和Monte Carlo算法的优点,不仅可以单步更新,而且可以根据经验进行学习。根据他们的backup图可以直观的看出三者区别:
MC算法需要等到一个episode 结束后才能更新value,TD和DP可以单步更新,但区别在于TD不需要知道确切的环境模型(状态转移概率等),可以根据下一步的估计来更新当前估计value。下面我们总结一下TD学习特点:
2.1 MC and TD
为了更好的理解TD算法,将其和MC算法进行进一步比较:
两者的目标都是根据经验估计给定策略 π π 下的value function v(π) v ( π )
但:
- MC更新用的是一个episode 的从state s到 terminal的实际return Gt G t ,表现为一个episode更新一次
- TD更新用的是下一个state St+1 S t + 1 的估计return Rt+1+γV(St+1) R t + 1 + γ V ( S t + 1 ) ,通常叫做TD target
这两者有什么差别呢,举个简单例子:开车回家例子, 下班回家估计到家所需时间,离开办公室估计30分钟后到家,5分钟后找到车发现下雨了,估计下雨堵车还有35分钟到家,下班20分钟时下了高速发现没有堵车,估计还有15分钟到家,结果下班30分钟时遇到堵车,估计还有10分钟到家,然后下班40分钟后到了家附近的小路上,估计还有3分钟到家,3分钟后到家了。
根据MC算法和TD算法( γ γ ),作图如下:
我们先看左图,运用MC算法,举个例子,当离开高速你认为还有15分钟就到家了,然而,实际需要23分钟,此时 Gt−V(St)=8 G t − V ( S t ) = 8 ,假设step size α=1/2 α = 1 / 2 ,那么预计时间会变成15+4 = 19,距离最终到家还有4分钟差值。但这些更新都是离线的,不会发生在你到家的途中,只有当到家的时候才知道原来估计的时间需要修改。
但真的需要等到回家了再调整估计时间吗?如果采用MC方法,答案是肯定的,但是采用TD就不会。可以实时对估计回家时间进行调整。
2.2 Advantages and Disadvantages of MC vs. TD
那么两者的方差和偏差如何呢?
由于TD target Rt+1+γV(St+1) R t + 1 + γ V ( S t + 1 ) 是真实的TD target Rt+1+γvπ(St+1) R t + 1 + γ v π ( S t + 1 ) 的有偏估计,所有MC是无偏差的,但TD是有偏差的。
但TD target的方差比return低,因为return依赖一系列随机的状态量和动作量,和reward ,但TD target 只依赖一组随机的状态量和动作量,和reward 。
总结一下MC和TD的算法优缺点:
2.4 TD prediction算法伪代码
三、TD control
本节针对control problem,将分别介绍on-policy TD(sarsa) 和off-policy TD (importance sample TD、QLearning、expected sarsa等)
3.1 Sarsa: On-policy TD control
和MC一样,TD中Policy evaluation 估计的是action-value function。更新方式如下:
由于更新一次action-value function需要用到5个量 (s,