内容简要梳理:
本章介绍finite markov decision process,首先介绍了agent-environment interface,定义了agent、state、action等以及马尔科夫性,要注意agent与environment的界限;接着介绍了rl的目标以及回报的概念,提到了episodic task和continuing task的概念及其回报表现形式,为了统一两者的回报表现形式,提出了absorbing state。每个状态值函数和动作值函数是基于动作或动作状态对的遵循该策略的未来反馈期望,为了得到策略需要对值函数进行求解,可通过MC或贝尔曼方程的方式求解,为了得到最优策略,即可求解对应的贝尔曼最优方程。
本章将主要介绍finite markov decision processes(finite MDPs),MDP是形式化序列决策任务的经典工具,MDPs与之前的bandit问题不同的是涉及到了再不同情景下的决策,也就是我们之前提到的associative research。MDPs是关于评估性反馈evaluative feedback,但是是associative的。也就是当前动作不仅会影响当前得到的回报,同时也会影响接下来的状态以及接下来获得的反馈。因此MDPs会包含延迟奖励,需要对即时奖励和延迟奖励进行权衡。
finite MDPs指的是状态空间、动作空间、奖励空间的元素数目是有限的,这要求状态必须包含能够预测下一步的全部信息。
MDPs是从交互中学习进而达成目标。
agent智能体:学习和决策者统称为agent,
environment环境: 除智能体之外的与之进行交互的一切事物都叫做环境。包括智能体直接交互的对象以及自身的某些状态或者组成部分。
action行为:智能体通过行为主观的改变环境的状态。
reward回报:环境执行动作action之后会进行状态的转移,同时反馈给智能体一个信号,这个信号一般是一个回报信号。
状态:某种对于环境的表征形式,可以是特征向量也可以是图片等等。
轨迹:在某个时刻t,智能体处于状态 S t S_{t} St,A∈S,然后做了一个决策,选择一个action A t A_{t} At∈A(s),一个步长之后agent会获得一个标量回报 R t + 1 R_{t+1} Rt+1∈R,并且由此转移到一个新的状态 S t + 1 S_{t+1} St+1,重复这个过程就形成一个轨迹 S 0 S_{0} S0, A 0 A_{0} A0, R 1 R_{1} R1, S 1 S_{1} S1…
联合条件概率:智能体在某个状态s下采取某个动作a,获得回报r并进入下一个状态s’的概率。
可以利用s’和r的联合条件概率函数描述环境。这个式子通常又被称为MDP的动力学dynamics模型。
马尔科夫性:下一状态和反馈仅仅依赖于前一状态和前一状态下执行的动作,而不是之前所有的状态和动作。状态必须包含之前一切的agent和environment交互的所有信息。这种状态叫做马尔科夫性质。
对MDP‘s dynamic进行变形可以得到:
state-transition probabilities状态转移概率:
expected rewards for state-action计算某状态下执行某动作的期望奖励:
expected rewards for state-action-next state计算某状态下执行某动作进入下一状态获得的期望奖励:(Bayes公式–> P(A|B) = P(A)*P(B|A) / p(B) )
agent和environment之间的界限并不是一成不变的,这个boundary一般来说比较靠近agent。比如传感器和电机控制部分被认为是环境的一部分,并不属于agent,划分的准则是任何不能被agent随意改变的部分都属于环境。一般的,奖励也被划分到environment当中,尽管agent知道每次reward是如何反馈得到的,但是reward的计算是在agent之外的,因为agent无法随意改变reward function。agent与environment之间的界限代表的是agent对事物的绝对控制,不只是简单的了解。
MDP框架是一个比较抽象的目标导向性的框架,把任务中的所有信息都归结为三个可传播的信号,action、state、reward。
任务场景中关于动作和状态的选择是一种艺术,选择合理的状态和动作有助于rl算法性能的提升,本书当中对这部分内容没有作详细描述,仅就所举的部分例子展开简要阐述。
exercise:MDP框架是否适用于所有目标导向性任务?不一定,比如天气预报,不仅要关注今天还要关注之前的几天。
在强化学习当中,agent的目标就是最大化一个长期时间内的累积回报值,并不是最大化即时奖励。使用奖励信号来形式化目标是强化学习最显著的特征之一。尽管使用奖励信号来形式化复杂任务的目标看上去有一定的局限性,但是在实际应用中却有很好的效果。
我们所设计的目标要尽可能的直指我们的终极目标,比如下棋,我们的终极目标是赢得比赛,而不是吃掉对手的棋子数,所以设计回报时可以设定如果比赛获胜则+1,失败-1,平局0,但是这样也会带来一个问题,就是稀疏奖励sparse reward的问题。因此如何设计一个好的reward function 也是rl中的一个挑战。
强化学习的目标就是最大化累积回报,假设t时刻之后获得一个回报序列: R t + 1 , R t + 2 , R t + 3 . . . R_{t+1},R_{t+2},R_{t+3}... Rt+1,Rt+2,Rt+3...,用 G t G_{t} Gt表示期望的累积回报: R n R_n Rn
从上式可以看到,这里有一个终止步长T,这说明这个任务并不是一直进行下去的,有终止状态。当到达该终止状态任务就结束。对于这种任务叫做episodic task,与之相对的是连续任务,continuing task.
episodic task的回报表示如上所示,其始终会有一个终止步长。agent和environment之间的交互可以很自然的分为多个episodes,比如棋类游戏等,在确定输赢的时候就是一个终止状态,每个episode都结束于一个特殊的状态,terminal state,从此便会开始一个新的episode。用S表示所有非终止状态的集合, S + S^+ S+表示非终止状态+终止状态。
有些任务并无法自然的终止step,比如连续控制问题,机器人的行走等等,此时上面的回报表达式就有问题了,此时T趋向于无穷,因此 G t G_t Gt就有可能是无限的,为了解决这个问题就需要引入一个系数γ,称作折扣因子(discount factor),其对应的回报表达式是:
γ∈[0,1),这样一来,k步之后的回报实际上是当前立即回报的 γ k − 1 \gamma^{k-1} γk−1倍,如果γ<1,且回报序列{ R k R_k Rk}是有界的,那么上式关于continuing task的回报也是有界的。比如每一步的立即回报是一个非零常数C,那么上式的结果就等于
同时还可以把上式写成一种递推的形式,
这样一来就能够反映出相邻两个状态之间回报的关系。
γ=0时这个agent只关心当前的立即回报,目光短浅;γ越大则表示agent对未来回报考虑得越多,越目光长远。
上面对于不同任务episodic task和continuing task得回报描述是不一样的,如何建立起一个统一的表述模式呢?在episodic task中,状态、回报、动作等都与episode有关,因此我们想要表示某个状态时,比较精确的表示方法是 S t , i S_{t,i} St,i,表示的是在第i个episode中时间t时的状态,但实际上我们在讨论episode时都是针对单个episode来讨论的,因此i可以省略,简写为 S t S_{t} St即可。
如何使用一种统一的方式来表示不同任务下的回报,我们可以把episodic task表示成为continuing task,实际上就是将episodic task的终止状态定义为absorbing state吸收态。即在absorbing state下仅把状态转移到自身,并且获得的奖赏为0,这样一来就把一个episodic task变为了一个continuing task。一旦进入absorbing state中agent就一直循环,且回报为0.
最终得到两类任务的统一回报表现形式是:
注:γ∈[0,1],T是正整数也可以趋向于无穷。但是T=∞和γ=1不能同时满足。
值函数有状态值函数state-value functions 或 动作值函数action-value functions,状态值函数和动作值函数实际上是用来估计agent在某个状态或者在某个状态下采取某个动作有多好。这个“多好”的定义是对未来的期望折扣累积回报。(有研究发现采用期望回报作为目标可能并不合理,相反,应该关注的是期望的分布,该研究分支为分布式强化学习,代表性算法有C51).未来的期望回报如何自然取决于如何选择action,因此值函数是基于如何选择动作来说的,把这个告诉我们如何来选择动作的东东叫做policy。
状态值函数的表示如下:
动作值函数的表示如下:
动作值函数与状态值函数之间的关系:
实际上只要有了动作值函数我们就可以做出决策了,只有状态值函数还不一定。值函数仅仅是我们为了使rl算法做出决策的一个工具。那么问题来了,怎么计算或估计值函数呢?
首先根据上述式子的定义我们可以看出,计算值函数实际上就是求期望,求期望实际上就是求平均,我们可以根据策略 π \pi π所产生的一些经验样本轨迹,然后根据每个样本轨迹计算出每个状态s之后的累积回报,最后取平均就可以。根据大数定理,只要我们的数据足够多这个值就会收敛到真实的 v π ( s ) v_{\pi}(s) vπ(s)。计算动作值函数的方法也类似。把这种估计值函数的方法叫做蒙特卡洛方法Monte Carlo method。除了MC方法,还有就是利用贝尔曼方程迭代求解值函数。
(如果状态、动作空间比较大,这种方法实际上不现实,由此产生的替代的方法就是把值函数表示为一个参数化的函数,通过更新参数来得到精确的值函数,这种方法叫做值函数近似方法function approximation method)
值函数的一个本质特性是他们满足一个迭代关系,可以看上述关于continuing task的回报的递推表达式。对于给定的策略 π \pi π、状态s、以及下一个状态,它们的值函数满足以下关系:
上式就是贝尔曼方程,表达了相邻两个状态之间值函数的关系,
空心圆表示状态,实心圆表示动作,我们先单纯的看最右边的一个分支,从s–>a发生的概率为 π ( a ∣ s ) \pi(a|s) π(a∣s),执行动作a之后转入到下一个状态s’的概率计算,其实就是我们之前所讲到的MDPs的dynamic表示,其获得的奖励是 r+γv(s’) ,而我们要求的是期望,因此对每个分支都进行上述操作即可,加和即可得到上面关于计算状态值函数的贝尔曼方程。
类似的,我们也可以得到针对动作值函数的贝尔曼方程。
其对应的备份图backup diagram如下:
强化学习的目的是找到一个可以获得尽可能多的长期回报的奖励的策略。对于一个finite MDPs来说,实际上是有最优策略的。如果某个策略 π \pi π的所有状态下所获得的期望回报都比 π ′ \pi' π′大,那么我们就可以说该策略比另一个策略好。换句话说,也就是当且仅当所有的状态满足 v π ( s ) ≥ v π ′ ( s ) v_\pi(s)≥v_{\pi'}(s) vπ(s)≥vπ′(s),当然最优策略可能不只有一个,因此我们统称为 v ∗ v_{*} v∗,我们将其定义为:
也就是说最优策略对应的值函数就是最优值函数,其也对应着最优动作值函数:
最优值函数 v ∗ v_{*} v∗是一个策略的值函数,因此其必满足贝尔曼方程的自治条件。但是因为是最优的,所以不依赖于具体的策略,最优的值函数应该是最优策略下最优动作的期望回报:
q ∗ q_{*} q∗的贝尔曼最优方程表示为:
最优贝尔曼方程对应的备份图图下:与之前的区别在于,在选择动作时并不是根据策略求期望,而是借助max的手段。
如何求解最优值函数呢?
对于finite MDPs来说,最优值函数(最优状态值函数) v ∗ ( s ) v_{*}(s) v∗(s)是有唯一解的(还有待证明材料)。假设共有n个状态,那么实际上就有n个这样的等式,而我们要求的未知 v ∗ ( s ) v_{*}(s) v∗(s)也是n个。因此如果MDPs的dyanmic模型p和立即回报r已知,我们就可以利用任何非线性方程求解器来解决这个问题。
通过上面方法显式的求解贝尔曼最优方程来寻找最优策略理论上可行,但实际上有一定的难度:首先需要精确的知道环境的模型,其次要满足马尔科夫性,最主要的式要有足够的计算资料来完成求解。最关键的问题实际上在于第三点,对于状态空间较大的环境,如果每个状态都列一个贝尔曼方程然后再去求解的话,目前的算力难以支持。
很多决策方法都可看作是近似求解贝尔曼最优方程的形式,比如启发式搜索可以看作是对 v ∗ ( s ) v_{*}(s) v∗(s)的若干次展开,达到一定深度之后构成一棵树,然后利用启发式评估函数来近似叶子节点的最优值函数,动态规划方法和贝尔曼最优方程联系紧密,许多rl方法都可以看作是近似求解贝尔曼最优方程。
如何求解最优策略?
求解最优策略的方法分为两种,一种是已知最优状态价值函数 v ∗ v_{*} v∗,另一种是已知最优动作值函数 q ∗ q_{*} q∗。
如果是已知 v ∗ v_{*} v∗的话,还需要进行一步搜索,计算,获得最大值对应的action即为我们的最优策略。其实在已知 v ∗ v_{*} v∗的前提下,借助一步greedy搜索即可。
如果已知 q ∗ q_{*} q∗的话那么获得最优策略更直接, q ∗ ( s , a ) q_{*}(s,a) q∗(s,a)中最大值对应的动作就是最优策略,甚至无需知道环境模型都可,但是需要我们计算所有state-action对应的值函数。
尽管理论上已经定义了最优状态值函数和最优动作值函数以及最优策略,但是由于计算资源的限制和内存的限制,对于状态空间较大的问题难以解决,因此这就迫使我们进行近似求解。遵循两个原则:对经常遇到的状态上投入更多的精力,使得agent在这些状态上做出好的决策,在不常遇到的状态上投入少的精力甚至忽略(这一原则是区分RL与其他近似求解MDP方法的主要区别。)
强化学习是从交互中进行学习,其目的是最大化长期累积奖励。agent是用来做出决策从而达到目标;state是agent做出action的基础;reward是关于agent做出action的即时回报。agent与环境之间有一定的界限,所属agent的是完全由agent可控的,其余都属environment。上面定义的强化学习设定通过一个状态转移分布构成了马尔科夫决策过程。一个有限状态MDP是包含有限状态有限动作和有限reward集合的MDP。
根据有无自然结束状态可将task分为episodic task和continuing task,这两种不同的任务其回报表现形式不同,为了统一其回报表现形式,将episodic task的terminal state转换为absorbing state。
每个状态值函数和动作值函数是基于动作或动作状态对的遵循该策略的未来反馈期望。最优值函数是所有策略中当前状态能够获得的最大反馈期望。取得最优值函数的策略叫做最优策略。贝尔曼最优等式是贝尔曼等式的一个特殊形式,可以得到最优值函数的解。根据最优值函数又能得到最优策略。尽管最优贝尔曼方程理论上可解,agent一般也没有足够的计算资源去利用它。内存也是一个很大的限制,因为很多问题中状态的数量远远超过能够合理存储的程度。
根据对整个环境的了解又把强化学习问题分为complete knowledge 和 incomplete knowledge两种。分类标准是agent是否建立起对环境变化的准确而完全的模型。
尽管理论上已经定义了最优状态值函数和最优动作值函数以及最优策略,但是由于计算资源的限制和内存的限制,对于状态空间较大的问题难以解决,因此这就迫使我们进行近似求解。遵循两个原则:对经常遇到的状态上投入更多的精力,使得agent在这些状态上做出好的决策,在不常遇到的状态上投入少的精力甚至忽略(这一原则是区分RL与其他近似求解MDP方法的主要区别。)