文章目录
1.本书第一部分总结:方法空间
这一章总结了本书Part I的所有内容,RL并不是一些孤立方法的集合,RL实际上是具有一致的一些想法的集合,每个想法都能看作方法变化的一个dimension,这些dimensions可以组合成一个很大的方法空间。通过dimensions的层面探索问题空间,我们希望能获得更广泛和深入的理解。这小节我们利用方法空间dimensions的概念重新讲一讲本书目前介绍的RL内容。
本书目前所探索的方法都具有三个核心概念:value functions; backing up value updates; GPI。这三个核心概念是智能方法任何模型的根本组织原则。
这些方法中最重要的两个维度:更新的宽度、更新的深度。这些维度用来指导提高值函数的更新过程。width指的是sample updates还是expected updates。depth指的是bootstrapping的程度,四个角就是四种最重要估计值的算法:DP、TD、MC和穷举搜索。左侧边上则是各种程度的n-step updates方法。
DP方法则在右上角,因为这是one-step expected updates的,右下角则是穷举搜索(不一定要搜索到尽头,折扣到微不足道就可以了)。右侧边线上则是不同程度的启发搜索(不同深度的)。
这个正方形基本上涵盖了前面介绍的各种方法。
本书提到的第三个维度则是二值的,on-policy和off-policy方法。其中off-policy的target policy通常是greedy的,而behavior policy则通常是soft的(explorative)。这第三个维度可以作为上图的垂直方向。
除了这三个维度,还有一些其它的维度:
-
return的定义:episodic或continuing?折扣程度?
-
action values; state values; afterstate values。选择哪个值是更合适的?对于只估计state values的,应该知道模型或者独立的动作选择策略(actor-critic方法)。
-
动作选择/探索。如何选择动作保证探索和利用之间的合理平衡?最简单的方式:ε-greedy,乐观初值,soft-max,UCB。
-
同步还是异步?所有状态的updates是同步还是one-by-one的。
-
real还是simulated的?update是基于real经验还是simulated经验的?或者按比例混合?
-
updates的位置。哪个states或者state-action对应该被更新?model-free方法只能选择实际遇到的那些,model-based则可以随意选择。
-
更新的时机:updates应该作为动作选择的一部分还是在其之后?
-
更新的内存。更新值保存多久?
这些总结不是详尽的,他们之间也不是独立的。每个算法还在其它地方有区别,有些算法则同时使用一些维度的不同取值,例如Dyna既使用真实的也使用仿真的经验取估计同一个值函数,也可以同时用多个值函数,用不同的方式计算,针对不同的状态和动作。这些维度构成了探索各种各样方法的内在思想集合。
最后还有一个非常重要的维度,就是值函数是用表格还是用函数估计,这将在第二Part讨论。