Reinforcement Learning An Introduction 读书笔记

第一章 表格法

首先,为什么叫做Tabular Solution,实际上,翻译作表格,不算和恰当,它应该是一种存储过去(包括state,action,reward等内容)的方式,在这一章里,比较常用的存储容器,list就用来存储这些内容。此外,在做关于策略的估计,更新迭代的时候,基本没有使用到什么复杂函数,这也是它叫做表格法的原因,没什么技术,就是列表格,找极值而已。

第二节 多臂赌博机 Multi-arm bandits

这一节的关键词应该是 Evaluative
评估是强化学习里面非常重要的概念,评估的对象,是做出的决策行动。为什么要评估这些过去做出的选择呢?因为这相当于一种反馈,而反馈,就是实现自动控制的基础。可以说,就是这些对于状态,行为做出的评估,为后续的行为提供了有效的指导,使得目标能更快更好的达到。

多臂赌博机的抽象模型:
你持续不断的面临k种选择,每选择一次,将获得依选择而异的一个奖励值。你的目标是在有限的次数(例如1000次)之内,得到最多的奖励。

探索还是剥削?
什么是剥削(Exploit)探索(Explore)的矛盾?如果一味剥削,使用从前的实验带来的成果,就不能发现新的,没有遇到过的更好的行为,而如果一味探索,就像没头苍蝇胡乱选择,则会带来奖励(reward)不高的后果。
这组矛盾是强化学习里非常重要的一组矛盾,后面也提出了一些办法来平衡它们。
这里作者提出的观点是:
是选择探索还是剥削,取决于对价值估计的准确性,不确定性,以及后续剩下的步数。

有节制的贪心算法
采样平均(sample-average)方法计算一个行为的价值:
{Q_t}(a) = \frac{{\sum\nolimits_{i = 1}^{t - 1} {{R_i} \times {1_{{A_i} = a}}} }}{{\sum\nolimits_{i = 1}^{i - 1} {{1_{{A_i} = a}}} }}
t时刻之前采取这个行为获得的平均奖励数(平均每次得到多少奖励)
使用贪心算法选择行为:
{A_t} = \arg {\max _a}{Q_t}(a)

而进一步的,\varepsilon - greedy 方法,以\varepsilon的概率任意选择行为,1 - \varepsilon的概率选择贪心行为,加入了一些探索,而非一味剥削,在后期,往往能取得更好的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对应的价值,这么一套对应关系,就是基于策略\pi的policy value{V_\pi }
{V_\pi }(s) 的计算,遵循以下公式:
\begin{array}{l} {V_\pi }(s) = {E_\pi }[{G_t}|{S_t} = s]\\ = {E_\pi }[{R_{t + 1}} + \gamma {G_{t + 1}}|{S_t} = s]\\ = {E_\pi }[{R_{t + 1}} + \gamma {V_\pi }({S_{t + 1}})|{S_t} = s]\\ = \sum\limits_a {\pi (a|s)\sum\limits_{s',r} {p'(s',r|s,a)[r + \gamma {V_\pi }(s')]} } \end{array}
(格式有点不好调,后面有时间再修修)

这个想法就是说,在当前系统状态是s的情况下,后续直到过程结束,获得的回报的期望。因为环境是完全已知的,即状态转移概率p(s',r|a,s)都是已知的,\pi (a|s)由策略\pi决定,也是已知的,所以,我们可以准确的求到后续能得到的回报的期望,用更文学的表达的话,应该是这个状态包含的潜力

怎么把这个公式落实到方法上来呢?对于比较小型的问题,状态和行为数量都是有限的,硬算也可以,但是问题要是比较复杂,状态空间维数较高,硬算就行不通了。所以,书里推出了一个以贝尔曼公式作为迭代准则的迭代的方法,步骤上比较简单,也能在一定的条件下收敛到真实值。
贝尔曼公式如下:
\begin{array}{l} {V_{k + 1}}(s) = E[{R_{t + 1}} + \gamma {V_k}({s_{t + 1}})|{S_t} = s]\\ = \sum\limits_a {\pi (a|s)\sum\limits_{s',r} {p(s,r|s,a)[r + \gamma {V_k}(s)]} } \end{array}
步骤如下图:

迭代的策略评估方法

策略提升
首先,需要计算state-action value:
\begin{array}{l} {q_\pi }(s,a) = E[{R_{t + 1}} + \gamma {V_\pi }({S_{t + 1}})|{S_t} = s,{A_t} = a]\\ = \sum\limits_{s',r} {p(s',r|s,a)[r + \gamma {V_\pi }(s')]} \end{array}
这里{V_\pi }(s')就是前面策略评估得到的结果,前面的系数来自环境模型。
接着,策略更新准则由下面的公式作为准则:
\pi '(s) = \arg {\max _a}{q_\pi }(s,a)
实际上,就是围绕价值的贪心算法。这样一次迭代能把所有state对应的action都更新一遍。
补充一句,\pi是一种策略,一种state与action的对应关系,反应到数据结构上来说,就是一种2行n列的表格,n是state的数量。所以一次更新就是把整个表都刷新一遍。

策略迭代
综合前面的两部分,策略迭代描述的是一种整体交替更新的过程和方法。如图所示:

策略迭代

E-策略评估,I-策略提升

广义策略迭代GPI
我们用GPI来代指策略评估和策略提升交替进行的一般概念,而不依赖两个过程的粒度和其他细节。几乎所有强化学习方法都可以被描述为GPI

GPI

当评估过程和提升过程都稳定,即更新后和更新前的差别小到一定程度,就可以推断价值函数和策略达到最优了。
交替的过程

这个图揭示了策略评估和策略提升两者的关系,策略评估使得向真实的价值靠拢的同时,使得策略远离了最好的贪心策略,策略提升使策略向贪心策略靠拢的同时,使策略的价值,远离了它的真实价值。当真实的价值和贪心算法交汇到一处的时候,就达到的最好的状态:价值是准确的价值,策略是贪心(收获最多)的策略

第五节 蒙特卡洛(MC)方法

将上一节的问题进一步复杂化:没有完整的环境模型了,状态转移率没有了,怎么办?
概率论里有一个东西叫大数定律,粗略来说,这个定律揭示的内容就是:当采样数量足够多,就能够足够逼近一个分布
我们不能知道环境的具体模型,但通过采样,来逼近状态转移率。举个例子,以policy \pi做了一轮(one episode)实验,得到一个state-action-reward的序列。那么,对于序列中出现过的state,可以用{G_t} = \sum\limits_{i = t}^T {{\gamma ^{i - t}}{r_i}}表示。其中t是该状态第一次出现的时刻,T是该轮结束的时刻(也可以是每一次出现的时刻,方法上有细微的差别,想法和结果其实是一样的)。实验的次数足够多,就能够足够逼近{V_\pi }

我们以采样取平均代替策略评估,但依然有问题。没有状态转移率,state-action value的无法计算的。怎么办呢?直接对state-action value做采样代替state value采样,就可以解决了。

策略提升方面,与DP没有什么显著的差别。其余的技术细节这里限于篇幅不再细说,还有一个关于Importance Sampling 的部分,用到的地方不仅限于MC方法,它是一个使用非常广泛的off-policy技巧,后续会写一个关于off-policy的专题。

第六章 时序差分(Temporal-Difference Learning)

MC问题将没有模型的问题已经基本得到解决了,但是,MC方法有诸如大量的存储消耗,更新较慢,方差大的问题,TD问题有效的解决了这些问题,相当于MC的一个进化版。
V({S_t}) \leftarrow V({S_t}) + \alpha [{R_{t + 1}} + \gamma V({S_{t + 1}}) - V({S_t})]
这是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({S_t},{A_t}) \leftarrow Q({S_t},{A_t}) + \alpha [{R_{t + 1}} + \gamma Q({S_{t + 1}},{A_{t + 1}}) - Q({S_t},{A_t})]
Q-learning
Q({S_t},{A_t}) \leftarrow Q({S_t},{A_t}) + \alpha [{R_{t + 1}} + \gamma {\max _a}Q({S_{t + 1}},a) - Q({S_t},{A_t})]
Expected Sarsa
Q({S_t},{A_t}) \leftarrow Q({S_t},{A_t}) + \alpha [{R_{t + 1}} + \gamma \sum\limits_a {\pi (a|{S_{t + 1}})} Q({S_{t + 1}},a) - Q({S_t},{A_t})]

第七章 多步自举 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.)

\begin{array}{l} {G_t}^{(1)} = {R_{t + 1}} + \gamma {V_t}({S_{t + 1}})\\ {G_t}^{(2)} = {R_{t + 1}} + \gamma {R_{t + 1}} + {\gamma ^2}{V_t}({S_{t + 2}})\\ {G_t}^{(n)} = {R_{t + 1}} + \gamma {R_{t + 1}} + ... + {\gamma ^{n - 1}}{R_{t + n}} + {\gamma ^n}{V_{t + n - 1}}({S_{t + n}}) \end{array}
迭代规则如下:
{V_{t + n}}({S_t}) = {V_{t + n - 1}}({S_t}) + \alpha [{G_t}^{(n)} - {V_{t + n - 1}}({S_t})],0 \le t < T

从TD到MC方法的备份频谱图

这个图很清晰的揭示了这三种方法的区别和联系。白色○代表序列中的state,黑色·代表序列中的action。

到这里,表格法里核心的内容差不多就都写到了。总的来说,书里的这些内容,算是一个强化学习比较“规整的入门”,是阅读其他论文,了解其他方法的基础。这里打一个不是很恰当的比方,入门内容,与论文,新式方法的关系,就像“道”和“术”的关系,术是从道里面生出来的,所以,理解这个“道”,对于术的理解和学习,是非常非常重要的。另外,阅读英文专业书的体验,由一开始的生涩艰难,到后来的流畅舒适,一步步的,我感受到了行业大牛对于“道”的深刻理解,也领略到了书中简练,精确文字表达的魅力。这次的阅读是一把钥匙,打开一扇英文专业书阅读的大门,总而言之,获益匪浅。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容