《Reinforcement Learning: An Introduction》 读书笔记 - 目录
先来看一个例子
每天上班的路程,都是可以看作是一系列子过程的组合,如:走路去地铁站=>地铁1=>地铁2=>公交,总时长是这些子过程之和。每天我们依赖之前的经验,估计当天的时长,并更新我们的经验。
那么如何做出更好的估计呢?如何更快地积累有效的经验?
尤其是在一个没有适合model(回顾MDP中的 )的环境下
两种思路
回顾第二章中的迭代式更新reward方法:
这里并没有对model做任何假设,并且可以以一种在线、增量的方式进行更新
从而我们可以有两种方式:
-
const-α Monte Carlo- stepsize设为一个固定的值,这样新的经验会占有更大的权重,能适应环境的变化
- target定义为 ,也就是需要每一轮episode结束后才能进行更新
-
TD(0)(one-step TD)- stepsize同样是一个固定的
- target定义为 ,和const-α MC的区别在于用代替了实际的reward
- 但是这里要注意的是,仍然是当前的估计值,并不是真实的value,类似第四章中动态规划的做法,这种利用当前估计值进行更新的方法叫做
bootstrap(对比MonteCarlo)
我们来比较一下两种方法
- 相同点
- 两者都是value function的无偏估计
- 每次更新都是基于样本(
sample update),区别于动态规划依赖于model的expected update,所以同时它们都是model-free的 - 另一种表示方式,,即两者都可以认为是一种对老的估计和新的target之间的加权和(平均),为调节因子
- 不同
- TD(0) 可以在每一步都对value做更新,而不用等到episode结束
- 同时,在这种动态的环境下,一般TD(0)的收敛速度都会比const-α MC快
- 考虑下面这个问题,每组都是一个state,reward序列,如何评价状态A,B的value?
- 两种思路
- 不考虑Markov转移,直接用MonteCarlo上极大似然,则V(A)=0, V(B)=0.75
- 考虑问题的整体性,将A->B的转移考虑进来
对这个新的模型假设,做一轮的新的MLE,假设,可以得到V(A)=V(B)=0.75
- 对比一下这两种思路,两者在各自的模型假设下,都得到了各自的最小误差(但两者不一样),但后者似乎更合理一些,且得到了更小的误差
- 尤其是 如果后者的模型假设是对的话,则value function一定是对的,这个被称为
certainty-equivalence estimate(确定性等价估计)
- 两种思路
对于开头提到的那个例子,两者的区别可以看到
Temporal Difference Prediction
- 上面的迭代式中 可以认为是一种当前估计的误差,对应到TD(0)中,就是
-
TD-error - td-error是对不同时间(temporal)的状态的估计的差异(error, difference)
-
- 收敛性
- 对固定的policy ,TD(0) 能保证收敛到, 如果足够小,或者满足以下条件
- 对固定的policy ,TD(0) 能保证收敛到, 如果足够小,或者满足以下条件
- 更新方法
- 上面提到的更新周期是每一个sample更新一次,相当于batch size=1,同理,我们也可以将batch size调大一些
TD Control
上面介绍了用TD method估计state value function,同理,action value function也是一样,并由此进行control
更新的迭代式如下:
算法基本就像value iteration一样
这里的表示在TD中bootstrap方法使用的替代估计量,有几种常见的方法:
-
Sarsa- 在实际计算时,需要先向前模拟一步,产生一个序列,故名SARSA
- 这里,behavior序列(实际抽样模拟的)和target序列( 所代表的)都是当前的序列,所以是on-policy的
-
Q-Learning- 这里,target序列选择的是根据Q选择的最优action,但实际的behavior却不变,所以是off-policy的
-
Expected Sarsa- 如果,那就是动态规划中的方法
- 相比上面的两种,是一种更折中,更稳健的方法
-
举个例子,
- Sarsa在这里效果更好,原因是q-learning过于激进,会很快选择靠近悬崖边的路径,导致经常掉下去,而sarsa会“乖一点”,expected sarsa通常会更优
-
Double Learning- 在q-learning和sarsa中, 用到的target policy是-greedy或贪婪的,这么做容易过于乐观,导致
maximizaion bias(我理解就是由于随机性,贪婪不一定是好的方法,感觉说的就是多臂老虎机中的问题),具体可以看下面的例子 - 因为这个问题,所以一种简单的做法就是维护另一个action-value 估计,两者相关性小
- 每一次选择behavior策略时,综合考虑两个估计
- 而更新的target,则使用另一个value function来估计,即
,且
- 对于来说,
- 以q-learning为例
- 举例
- 在q-learning和sarsa中, 用到的target policy是-greedy或贪婪的,这么做容易过于乐观,导致