第一章 表格法
首先,为什么叫做Tabular Solution,实际上,翻译作表格,不算和恰当,它应该是一种存储过去(包括state,action,reward等内容)的方式,在这一章里,比较常用的存储容器,list就用来存储这些内容。此外,在做关于策略的估计,更新迭代的时候,基本没有使用到什么复杂函数,这也是它叫做表格法的原因,没什么技术,就是列表格,找极值而已。
第二节 多臂赌博机 Multi-arm bandits
这一节的关键词应该是 Evaluative
评估是强化学习里面非常重要的概念,评估的对象,是做出的决策行动。为什么要评估这些过去做出的选择呢?因为这相当于一种反馈,而反馈,就是实现自动控制的基础。可以说,就是这些对于状态,行为做出的评估,为后续的行为提供了有效的指导,使得目标能更快更好的达到。
多臂赌博机的抽象模型:
你持续不断的面临种选择,每选择一次,将获得依选择而异的一个奖励值。你的目标是在有限的次数(例如1000次)之内,得到最多的奖励。
探索还是剥削?
什么是剥削(Exploit)和探索(Explore)的矛盾?如果一味剥削,使用从前的实验带来的成果,就不能发现新的,没有遇到过的更好的行为,而如果一味探索,就像没头苍蝇胡乱选择,则会带来奖励(reward)不高的后果。
这组矛盾是强化学习里非常重要的一组矛盾,后面也提出了一些办法来平衡它们。
这里作者提出的观点是:
是选择探索还是剥削,取决于对价值估计的准确性,不确定性,以及后续剩下的步数。
有节制的贪心算法
采样平均(sample-average)方法计算一个行为的价值:
即时刻之前采取这个行为获得的平均奖励数(平均每次得到多少奖励)
使用贪心算法选择行为:
而进一步的, 方法,以的概率任意选择行为,的概率选择贪心行为,加入了一些探索,而非一味剥削,在后期,往往能取得更好的reward。
乐观的初始值
乐观的初始值也能在初期带来更多的探索行为,从而使后期有更好的表现。
第三节 MDP 有限马尔科夫决策过程
这一章关键词即标题:马尔科夫决策过程
可以说强化学习的目的,就是对于一个马尔科夫决策过程,找到最优策略,即每一步采取什么行动,使得过程结束后,能取得最多的回报。(Reinforcement learning is about learning from interaction how to behave in order to achieve a goal.)因此,需要搞清楚什么是马尔科夫决策过程,它包含一些什么内容,有什么特性等等问题。
agent(智能体):做决策的主体,agent内部的一切都是已知,可控的。
environment(环境):除了agent以外的,未知不能控的部分。
policy(策略):action=f(state),policy 表示的就是这种对应关系。agent做出的决策就依赖这种随机的对应关系。
action(行为):agent做出的选择。
state(状态):选择的基础。通常是从环境中观测到的内容,有时候也叫(observation)
reward(奖励):评估选择的基础,通常是执行一个action得到的一个数值。
return(回报):将来能获得的总奖励的函数,表示的是包含后期在内的综合情况。
马尔科夫性:如果一个环境的状态可以完整的总结过去,并且不降低预测未来的能力,就称之满足马尔科夫性。换一种说法,如果一个环境未来的状态仅仅取决于当前时刻的状态,而不取决于过去做过什么,就是具有马尔科夫性。既往不咎,当下决定未来。
这里多提一句,状态应该怎么表达,选择哪些变量也是有讲究的,我们应该在选择状态表达的时候,尽可能的使之满足马尔科夫特性。不过这门学问,不在本书的讨论范畴。
拥有有限个数的状态和行为(state&action)的MDP称之为有限马尔科夫决策过程。
第四节 动态规划 Dynamic Programming
动态规划指的是 给定一个环境的完整模型的前提下,计算得到最优策略的一系列算法。通过前面概念的铺垫,这里开始进入算法的层面,遵循循序渐进的原则,首先介绍的就是算法上最完备,最直觉的,完全掌握环境特性的情况。
这一章里面,非常重要而且贯穿后面章节的两个概念是策略评估和策略提升,从控制的角度来说,就是一个反馈-控制的过程。
策略评估
评估的对象是一个policy,而评估的结果,其实应该是一个表格,表格里包含了不同的state对应的价值,这么一套对应关系,就是基于策略的policy value
的计算,遵循以下公式:
(格式有点不好调,后面有时间再修修)
这个想法就是说,在当前系统状态是的情况下,后续直到过程结束,获得的回报的期望。因为环境是完全已知的,即状态转移概率都是已知的,由策略决定,也是已知的,所以,我们可以准确的求到后续能得到的回报的期望,用更文学的表达的话,应该是这个状态包含的潜力。
怎么把这个公式落实到方法上来呢?对于比较小型的问题,状态和行为数量都是有限的,硬算也可以,但是问题要是比较复杂,状态空间维数较高,硬算就行不通了。所以,书里推出了一个以贝尔曼公式作为迭代准则的迭代的方法,步骤上比较简单,也能在一定的条件下收敛到真实值。
贝尔曼公式如下:
步骤如下图:
策略提升
首先,需要计算state-action value:
这里就是前面策略评估得到的结果,前面的系数来自环境模型。
接着,策略更新准则由下面的公式作为准则:
实际上,就是围绕价值的贪心算法。这样一次迭代能把所有state对应的action都更新一遍。
补充一句,是一种策略,一种state与action的对应关系,反应到数据结构上来说,就是一种2行n列的表格,n是state的数量。所以一次更新就是把整个表都刷新一遍。
策略迭代
综合前面的两部分,策略迭代描述的是一种整体交替更新的过程和方法。如图所示:
E-策略评估,I-策略提升
广义策略迭代GPI
我们用GPI来代指策略评估和策略提升交替进行的一般概念,而不依赖两个过程的粒度和其他细节。几乎所有强化学习方法都可以被描述为GPI。
当评估过程和提升过程都稳定,即更新后和更新前的差别小到一定程度,就可以推断价值函数和策略达到最优了。
这个图揭示了策略评估和策略提升两者的关系,策略评估使得向真实的价值靠拢的同时,使得策略远离了最好的贪心策略,策略提升使策略向贪心策略靠拢的同时,使策略的价值,远离了它的真实价值。当真实的价值和贪心算法交汇到一处的时候,就达到的最好的状态:价值是准确的价值,策略是贪心(收获最多)的策略
第五节 蒙特卡洛(MC)方法
将上一节的问题进一步复杂化:没有完整的环境模型了,状态转移率没有了,怎么办?
概率论里有一个东西叫大数定律,粗略来说,这个定律揭示的内容就是:当采样数量足够多,就能够足够逼近一个分布
我们不能知道环境的具体模型,但通过采样,来逼近状态转移率。举个例子,以policy 做了一轮(one episode)实验,得到一个state-action-reward的序列。那么,对于序列中出现过的state,可以用表示。其中是该状态第一次出现的时刻,T是该轮结束的时刻(也可以是每一次出现的时刻,方法上有细微的差别,想法和结果其实是一样的)。实验的次数足够多,就能够足够逼近
我们以采样取平均代替策略评估,但依然有问题。没有状态转移率,state-action value的无法计算的。怎么办呢?直接对state-action value做采样代替state value采样,就可以解决了。
策略提升方面,与DP没有什么显著的差别。其余的技术细节这里限于篇幅不再细说,还有一个关于Importance Sampling 的部分,用到的地方不仅限于MC方法,它是一个使用非常广泛的off-policy技巧,后续会写一个关于off-policy的专题。
第六章 时序差分(Temporal-Difference Learning)
MC问题将没有模型的问题已经基本得到解决了,但是,MC方法有诸如大量的存储消耗,更新较慢,方差大的问题,TD问题有效的解决了这些问题,相当于MC的一个进化版。
这是TD方法的核心公式。无模型(model-free)和自举(bootstrap)是TD方法的两个重要特性。自举,书中给出的解释是:update estimate based in part on other learned estimates, without waiting for a final outcome.给一个文学的解释的话,就是道生一,一生二,二生三,三生万物,有点夸张,大体上应该就是这么个意思。用后续state的价值估计,作为前一个state价值估计的一部分。
这样做的好处是显而易见的,价值的更新更快了,计算,存储需求更小了,数据的方差也变小了。
Sarsa,Q-learning,Expected Sarsa都是基于TD的方法,限于篇幅,只放核心公式在这里。
Sarsa
Q-learning
Expected Sarsa
第七章 多步自举 Multi-Step Bootstrapping
多步自举就是介于MC和TD的一种方法,可以说MC和TD分别是MB方法的两种极端。TD方法的限制在于,单布必须更新,更新的频率是不能 控制的,MB方法就解决了这个问题。自举在有重要,可辨识的状态变更的一段时间里,有最好的效果。(bootstrapping works best if it is over a length of time in which a significant and recognizable state change has occurred.)
迭代规则如下:
这个图很清晰的揭示了这三种方法的区别和联系。白色○代表序列中的state,黑色·代表序列中的action。
到这里,表格法里核心的内容差不多就都写到了。总的来说,书里的这些内容,算是一个强化学习比较“规整的入门”,是阅读其他论文,了解其他方法的基础。这里打一个不是很恰当的比方,入门内容,与论文,新式方法的关系,就像“道”和“术”的关系,术是从道里面生出来的,所以,理解这个“道”,对于术的理解和学习,是非常非常重要的。另外,阅读英文专业书的体验,由一开始的生涩艰难,到后来的流畅舒适,一步步的,我感受到了行业大牛对于“道”的深刻理解,也领略到了书中简练,精确文字表达的魅力。这次的阅读是一把钥匙,打开一扇英文专业书阅读的大门,总而言之,获益匪浅。