1~8.PART one总结--阅读笔记【Reinforcement Learning An Introduction 2nd】

本书主要分为三大部分,分别是基于表格的方法;近似策略方法;扩展部分。
第一部分属于rl基础内容,基本涵盖了基于值函数方法的核心思想。要熟悉并善于分析不同方法之间的区别和联系,构建起整个知识体系框架。

之前我们所讲的方法都有很多共同点:
试图估计值函数;
通过对实际的或仿真的经验进行备份操作来更新值函数;都遵循GPI框架。
尽管大体框架都相同,但彼此之间还是有区别的,重要的区分维度就是更新的深度和宽度:
1~8.PART one总结--阅读笔记【Reinforcement Learning An Introduction 2nd】
横轴表示更新宽度,也就是采样更新和期望更新。纵轴表示更新深度,也就是自举的程度。

上图中的三个角分别代表我们讲的三大类方法:动态规划,时间差分和蒙特卡洛。时间差分是采样的,最简单的就是单步的TD方法,因此位于左上角。如果采样出整条轨迹,那就是MC方法,因此深度最深,位于左下角。介于one-step TD 方法和MC方法之间的是n-step 的TD方法。对于DP,我们只遍历到下一个状态(one-step),但是分布模型会得到所有下一个可能的状态(宽度,expected updates),因此位于右上角。右下角比较极端的情况是采用期望更新,并且一直搜索到终止状态,或者到足够深的状态,这类方法是穷尽搜索。介于DP和穷尽搜索之间的方法有启发式搜索或者是有限深度的搜索方法。

另一个区分的维度就是on-policy还是off-policy。还可以根据以下定义区分:
回报的定义 根据任务是离散的(episode)还是连续,回报是有折扣还是无折扣,可以得到不同的回报的定义
动作值 vs.状态值和afterstates值 值函数有很多种,估计不同值函数的方法不一样,得到的结果也不一样。比如如果只估计状态值函数,为了得到策略,我们还需要知道环境模型或者是一个单独的策略模块
动作选择和探索 如何选择动作以平衡探索和利用?我们介绍了一些简单的方法,比如:ε-贪婪策略,选定好的初始化值以及UCB行为选择
异步还是同步 所有状态的值是同时更新还是单个更新(in-place)
真实经验和仿真经验 值函数的更新应该使用实际经验(学习)还是使用仿真经验(规划)。如果都用,各自占多大比重
更新的位置 哪些状态-动作对应该更新,哪些不应该
更新的时间是更新后再选择动作,还是作为选择动作的一部分
更新的内存更新后的值应该存储多久。是一直保存着,还是我们一旦根据估计值选择了当前的动作,就抛弃这些更新值,正如启发式搜索中所做的一样

最后还有一个非常重要的维度,就是值函数是用表格还是用函数估计,这将在Part Two讨论。