在上周,通过结合HMN项目中的video信息与其各项评估分数(BLEU、CIDEr、METEOR、ROUGE)加以分析,发现了模型在某些类别活动上的识别效果一般,为了改善模型在数据集上的表现,尝试借助强化学习的方式,因此本周主要对强化学习的基础内容进行学习。此外除了这种方式,还应从模型输入特征中的context feature(上下文特征)以及模型的目标检测方法上进行剖析,进而改善模型在实体模块表现差的状况。
广泛地讲,强化学习是机器通过与环境交互来实现目标的一种计算方法。机器和环境的一轮交互是指,机器在环境的一个状态下做一个动作决策,把这个动作作用到环境当中,这个环境发生相应的改变并且将相应的奖励反馈和下一轮状态传回机器。这种交互是迭代进行的,机器的目标是最大化在多轮交互过程中获得的累积奖励的期望。强化学习用智能体(agent)这个概念来表示做决策的机器。相比于有监督学习中的“模型”,强化学习中的“智能体”强调机器不但可以感知周围的环境信息,还可以通过做决策来直接改变这个环境,而不只是给出一些预测信号。
智能体有3种关键要素,即感知、决策和奖励。
强化学习的智能体是在和一个动态环境的交互中完成序贯决策的。我们说一个环境是动态的,意思就是它会随着某些因素的变化而不断演变,这在数学和物理中往往用随机过程来刻画。对于一个随机过程,其最关键的要素就是状态以及状态转移的条件概率分布。
如果在环境这样一个自身演变的随机过程中加入一个外来的干扰因素,即智能体的动作,那么环境的下一刻状态的概率分布将由当前状态和智能体的动作来共同决定,用最简单的数学公式表示则是:
下 一 状 态 P ( ⋅ ∣ 当 前 状 态 , 智 能 体 的 动 作 ) 下一状态 ~ P(·|当前状态,智能体的动作) 下一状态 P(⋅∣当前状态,智能体的动作)
根据上式可知,智能体决策的动作作用到环境中,使得环境发生相应的状态改变,而智能体接下来则需要在新的状态下进一步给出决策。
由此我们看到,与面向决策任务的智能体进行交互的环境是一个动态的随机过程,其未来状态的分布由当前状态和智能体决策的动作来共同决定,并且每一轮状态转移都伴随着两方面的随机性:一是智能体决策的动作的随机性,二是环境基于当前状态和智能体动作来采样下一刻状态的随机性。 通过对环境的动态随机过程的刻画,我们能清楚地感受到,在动态随机过程中学习和在一个固定的数据分布下学习是非常不同的。
在上述动态环境下,智能体和环境每次进行交互时,环境会产生相应的奖励信号,其往往由实数标量来表示。这个奖励信号一般是诠释当前状态或动作的好坏的及时反馈信号,好比在玩游戏的过程中某一个操作获得的分数值。整个交互过程的每一轮获得的奖励信号可以进行累加,形成智能体的整体回报(return),好比一盘游戏最后的分数值。根据环境的动态性我们可以知道,即使环境和智能体策略不变,智能体的初始状态也不变,智能体和环境交互产生的结果也很可能是不同的,对应获得的回报也会不同。因此,在强化学习中,我们关注回报的期望,并将其定义为价值(value),这就是强化学习中智能体学习的优化目标。
价值的计算有些复杂,因为需要对交互过程中每一轮智能体采取动作的概率分布和环境相应的状态转移的概率分布做积分运算。强化学习和有监督学习的学习目标其实是一致的,即在某个数据分布下优化一个分数值的期望。不过,经过后面的分析我们会发现,强化学习和有监督学习的优化途径是不同的。
有监督学习的任务建立在从给定的数据分布中采样得到的训练数据集上,通过优化在训练数据集中设定的目标函数(如最小化预测误差)来找到模型的最优参数。这里,训练数据集背后的数据分布是完全不变的。
在强化学习中,数据是在智能体与环境交互的过程中得到的。如果智能体不采取某个决策动作,那么该动作对应的数据就永远无法被观测到,所以当前智能体的训练数据来自之前智能体的决策结果。因此,智能体的策略不同,与环境交互所产生的数据分布就不同。
具体而言,强化学习中有一个关于数据分布的概念,叫作占用度量(occupancy measure):归一化的占用度量用于衡量在一个智能体决策与一个动态环境的交互过程中,采样到一个具体的状态动作对(state-action pair)的概率分布。
占用度量有一个很重要的性质:给定两个策略及其与一个动态环境交互得到的两个占用度量,那么当且仅当这两个占用度量相同时,这两个策略相同。也就是说,如果一个智能体的策略有所改变,那么它和环境交互得到的占用度量也会相应改变。
根据占用度量这一重要的性质,我们可以领悟到强化学习本质的思维方式。
对于一般的有监督学习任务,我们的目标是找到一个最优的模型函数,使其在训练数据集上最小化一个给定的损失函数。在训练数据独立同分布的假设下,这个优化目标表示最小化模型在整个数据分布上的泛化误差(generalization error),用简要的公式可以概括为:
相比之下,强化学习任务的最终优化目标是最大化智能体策略在和动态环境交互过程中的价值。根据1.5节的分析,策略的价值可以等价转换成奖励函数在策略的占用度量上的期望,即:
综上所述,一般有监督学习和强化学习的范式之间的区别为:
在大多数情况下,强化学习任务往往比一般的有监督学习任务更难,因为一旦策略有所改变,其交互产生的数据分布也会随之改变,并且这样的改变是高度复杂、不可追踪的,往往不能用显式的数学公式刻画。这就好像一个混沌系统,我们无法得到其中一个初始设置对应的最终状态分布,而一般的有监督学习任务并没有这样的混沌效应。
强化学习关注智能体和环境交互过程中的学习,这是一种试错型学习(trial-and-error learning) 范式。
多臂老虎机问题可以被看作简化版的强化学习问题。与强化学习不同,多臂老虎机不存在状态信息,只有动作和奖励,算是最简单的“和环境交互中的学习”的一种形式。多臂老虎机中的**探索与利用(exploration vs. exploitation)**问题一直以来都是一个特别经典的问题,理解它能够帮助我们学习强化学习。
在多臂老虎机(multi-armed bandit,MAB)问题中,有一个拥有 K K K 根拉杆的老虎机,拉动每一根拉杆都对应一个关于奖励的概率分布 R R R 。我们每次拉动其中一根拉杆,就可以从该拉杆对应的奖励概率分布中获得一个奖励 r r r 。我们在各根拉杆的奖励概率分布未知的情况下,从头开始尝试,目标是在操作 T T T 次拉杆后获得尽可能高的累积奖励。由于奖励的概率分布是未知的,因此我们需要在“探索拉杆的获奖概率”和“根据经验选择获奖最多的拉杆”中进行权衡。“采用怎样的操作策略才能使获得的累积奖励最高”便是多臂老虎机问题。
多臂老虎机问题可以表示为一个元组 < A , R > <A,R>,其中:
假设每个时间步只能拉动一个拉杆,多臂老虎机的目标为最大化一段时间步 T T T内累积的奖励: m a x ∑ t = 1 T r t , r t ∈ R ( ⋅ ∣ a t ) max\sum_{t=1}^Tr_t,r_t\in R(·|a_t) max∑t=1Trt,rt∈R(⋅∣at)。其中 a t a_t at表示在第时间步拉动某一拉杆的动作, r t r_t rt表示动作获得 a t a_t at的奖励。
对于每一个动作 a a a,我们定义其期望奖励为 Q ( a ) = E r t ∈ R ( ⋅ ∣ a t ) [ r ] Q(a)=E_{r_t\in R(·|a_t)}[r] Q(a)=Ert∈R(⋅∣at)[r]。于是,至少存在一根拉杆,它的期望奖励不小于拉动其他任意一根拉杆,我们将该最优期望奖励表示为 Q ∗ = m a x a ∈ A Q ( a ) Q^*=max_{a\in A}Q(a) Q∗=maxa∈AQ(a) 。为了更加直观、方便地观察拉动一根拉杆的期望奖励离最优拉杆期望奖励的差距,我们引入 懊悔(regret) 概念。懊悔定义为拉动当前拉杆的动作 a a a与最优拉杆的期望奖励差,即 R ( a ) = Q ∗ − Q ( a ) R(a)=Q^*-Q(a) R(a)=Q∗−Q(a) 。累积懊悔(cumulative regret) 即操作 T T T 次拉杆后累积的懊悔总量,对于一次完整的 T T T步决策,累积懊悔为 σ R = ∑ t = 1 T R ( a t ) \sigma_R=\sum_{t=1}^TR(a_t) σR=∑t=1TR(at) 。MAB 问题的目标为最大化累积奖励,等价于最小化累积懊悔。
为了知道拉动哪一根拉杆能获得更高的奖励,我们需要估计拉动这根拉杆的期望奖励。由于只拉动一次拉杆获得的奖励存在随机性,所以需要多次拉动一根拉杆,然后计算得到的多次奖励的期望,其算法流程如下所示。
以上 for 循环中的第四步如此更新估值,是因为这样可以进行增量式的期望更新,公式如下:
如果将所有数求和再除以次数,其缺点是每次更新的时间复杂度和空间复杂度均为 O ( n ) O(n) O(n) 。而采用增量式更新,时间复杂度和空间复杂度均为 O ( 1 ) O(1) O(1) 。
马尔可夫决策过程(Markov decision process,MDP)与多臂老虎机问题不同,马尔可夫决策过程包含状态信息以及状态之间的转移机制。如果要用强化学习去解决一个实际问题,第一步要做的事情就是把这个实际问题抽象为一个马尔可夫决策过程,也就是明确马尔可夫决策过程的各个组成要素。
随机过程(stochastic process)是概率论的“动力学”部分。概率论的研究对象是静态的随机现象,而随机过程的研究对象是随时间演变的随机现象(例如天气随时间的变化、城市交通随时间的变化)。在随机过程中,随机现象在某时刻 t t t的取值是一个向量随机变量,用 S t S_t St表示,所有可能的状态组成状态集合 S S S。随机现象便是状态的变化过程。在某时刻 t t t的状态 S t S_t St通常取决于 t t t时刻之前的状态。我们将已知历史信息 ( S 1 , . . . , S t ) (S_1,...,S_t) (S1,...,St)时下一个时刻状态为 S t + 1 S_{t+1} St+1的概率表示成。
当且仅当某时刻的状态只取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性质(Markov property),用公式表示为 P ( S t + 1 ∣ S t ) = P ( S t + 1 ∣ S 1 , . . . , S t ) P(S_{t+1}|S_t)=P(S_{t+1}|S_1,...,S_t) P(St+1∣St)=P(St+1∣S1,...,St)。也就是说,当前状态是未来的充分统计量,即下一个状态只取决于当前状态,而不会受到过去状态的影响。需要明确的是,具有马尔可夫性并不代表这个随机过程就和历史完全没有关系。因为虽然 t + 1 t+1 t+1时刻的状态只与 t t t时刻的状态有关,但是 t t t时刻的状态其实包含了 t − 1 t-1 t−1时刻的状态的信息,通过这种链式的关系,历史的信息被传递到了现在。马尔可夫性可以大大简化运算,因为只要当前状态可知,所有的历史信息都不再需要了,利用当前状态信息就可以决定未来。
马尔可夫过程(Markov process) 指具有马尔可夫性质的随机过程,也被称为马尔可夫链(Markov chain)。我们通常用元组 < S , P > <S,P> 描述一个马尔可夫过程,其中 S S S 是有限数量的状态集合, P P P 是状态转移矩阵(state transition matrix)。假设一共有 n n n个状态,此时 S = s 1 , s 2 , . . . , s n S={s_1,s_2,...,s_n} S=s1,s2,...,sn。状态转移矩阵定义了所有状态对之间的转移概率,即:
矩阵 P P P中第 i i i行第 j j j列元素 P ( s j ∣ s i ) = P ( S t + 1 = s j ∣ S t = s i ) P(s_j|s_i)=P(S_{t+1}=s_j|S_t=s_i) P(sj∣si)=P(St+1=sj∣St=si)表示从状态 s i s_i si转移到状态 s j s_j sj的概率,我们称 P ( s ′ ∣ s ) P(s'|s) P(s′∣s)为状态转移函数。从某个状态出发,到达其他状态的概率和必须为 1,即状态转移矩阵 P P P的每一行的和为 1。
图 3-1 是一个具有 6 个状态的马尔可夫过程的简单例子。其中每个绿色圆圈表示一个状态,每个状态都有一定概率(包括概率为 0)转移到其他状态,其中 s 6 s_6 s6通常被称为终止状态(terminal state),因为它不会再转移到其他状态,可以理解为它永远以概率 1 转移到自己。状态之间的虚线箭头表示状态的转移,箭头旁的数字表示该状态转移发生的概率。从每个状态出发转移到其他状态的概率总和为 1。
相应地,这个马尔可夫过程的状态转移矩阵:
其中第 i i i行第 j j j列的值代表从状态 s i s_i si转移到 s j s_j sj的概率。
给定一个马尔可夫过程,我们就可以从某个状态出发,根据它的状态转移矩阵生成一个状态序列(episode),这个步骤也被叫做采样(sampling)。
在马尔可夫过程的基础上加入奖励函数 r r r 和折扣因子 γ \gamma γ,就可以得到马尔可夫奖励过程(Markov reward process)。一个马尔可夫奖励过程由 < S , P , r , γ > <S,P,r,γ>构成,各个组成元素的含义如下所示。
在一个马尔可夫奖励过程中,从第 t t t时刻状态 S t S_t St开始,直到终止状态时,所有奖励的衰减之和称为回报 G t ( R e t u r n ) G_t(Return) Gt(Return),公式如下:
其中, R t R_t Rt表示在时刻 t t t获得的奖励。在图 3-2 中,我们继续沿用图 3-1 马尔可夫过程的例子,并在其基础上添加奖励函数,构建成一个马尔可夫奖励过程。例如,进入状态 s 2 s_2 s2奖励数为-2(或理解为惩罚数为2),表明我们不希望进入,进入 s 4 s_4 s4可以获得最高的奖励 10 10 10,但是进入 s 6 s_6 s6之后奖励为零,并且此时序列也终止了。
在马尔可夫奖励过程中,一个状态的期望回报(即从这个状态出发的未来累积奖励的期望)被称为这个状态的价值(value)。所有状态的价值就组成了价值函数(value function),价值函数的输入为某个状态,输出为这个状态的价值。价值函数写成 V ( s ) = E [ G t ∣ S t = s ] V(s)=E[G_t|S_t=s] V(s)=E[Gt∣St=s],展开为:
在上式的最后一个等号中,一方面,即时奖励的期望正是奖励函数的输出,即 E [ R t ∣ S t = s ] = r ( s ) E[R_t|S_t=s]=r(s) E[Rt∣St=s]=r(s);另一方面,等式中剩余部分 E [ γ V ( S t + 1 ) S t = s ] E[\gamma V(S_{t+1})S_t=s] E[γV(St+1)St=s]可以根据从状态 s s s出发的转移概率得到,即可以得到:
上式就是马尔可夫奖励过程中非常有名的贝尔曼方程(Bellman equation),对每一个状态都成立。若一个马尔可夫奖励过程一共有 n n n个状态,于是我们可以将贝尔曼方程写成矩阵的形式:
我们可以直接根据矩阵运算求解,得到以下解析解:
以上解析解的计算复杂度是 O ( n 3 ) O(n^3) O(n3),其中 n n n是状态个数,因此这种方法只适用很小的马尔可夫奖励过程。求解较大规模的马尔可夫奖励过程中的价值函数时,可以使用**动态规划(dynamic programming)**算法、蒙特卡洛方法(Monte-Carlo method)和时序差分(temporal difference),这些方法出现在之后的章节。
.2 节和 3.3 节讨论到的马尔可夫过程和马尔可夫奖励过程都是自发改变的随机过程;而如果有一个外界的“刺激”来共同改变这个随机过程,就有了马尔可夫决策过程(Markov decision process,MDP)。我们将这个来自外界的刺激称为智能体(agent)的动作,在马尔可夫奖励过程(MRP)的基础上加入动作,就得到了马尔可夫决策过程(MDP)。马尔可夫决策过程由元组 < S , A , P , r , γ > <S,A,P,r,γ>构成,其中:
我们发现 MDP(马尔可夫决策过程) 与 MRP(马尔可夫奖励过程)非常相像,主要区别为 MDP 中的状态转移函数和奖励函数都比 MRP 多了动作作为自变量。注意,在上面 MDP 的定义中,我们不再使用类似 MRP 定义中的状态转移矩阵方式,而是直接表示成了状态转移函数。这样做一是因为此时状态转移与动作也有关,变成了一个三维数组,而不再是一个矩阵(二维数组);二是因为状态转移函数更具有一般意义,例如,如果状态集合不是有限的,就无法用数组表示,但仍然可以用状态转移函数表示。我们在之后的课程学习中会遇到连续状态的 MDP 环境,那时状态集合都不是有限的。现在我们主要关注于离散状态的 MDP 环境,此时状态集合是有限的。
不同于马尔可夫奖励过程,在马尔可夫决策过程中,通常存在一个智能体来执行动作。例如,一艘小船在大海中随着水流自由飘荡的过程就是一个马尔可夫奖励过程(此时小船可以到达的位置有无限种,无法用状态转移矩阵表示),它如果凭借运气漂到了一个目的地,就能获得比较大的奖励;如果有个水手在控制着这条船往哪个方向前进,就可以主动选择前往目的地获得比较大的奖励。马尔可夫决策过程是一个与时间相关的不断进行的过程,在智能体和环境 MDP 之间存在一个不断交互的过程。
智能体的策略(Policy)通常用字母 π \pi π表示。策略 π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(a|s)=P(A_t=a|S_t=s) π(a∣s)=P(At=a∣St=s)是一个函数,表示在输入状态 s s s情况下采取动作 a a a的概率。当一个策略是**确定性策略(deterministic policy)**时,它在每个状态时只输出一个确定性的动作,即只有该动作的概率为 1,其他动作的概率为 0;当一个策略是随机性策略(stochastic policy)时,它在每个状态时输出的是关于动作的概率分布,然后根据该分布进行采样就可以得到一个动作。在 MDP 中,由于马尔可夫性质的存在,策略只需要与当前状态有关,不需要考虑历史状态。回顾一下在 MRP 中的价值函数,在 MDP 中也同样可以定义类似的价值函数。但此时的价值函数与策略有关,这意为着对于两个不同的策略来说,它们在同一个状态下的价值也很可能是不同的。这很好理解,因为不同的策略会采取不同的动作,从而之后会遇到不同的状态,以及获得不同的奖励,所以它们的累积奖励的期望也就不同,即状态价值不同。
用 V π ( s ) V^\pi(s) Vπ(s)表示在 MDP 中基于策略的状态价值函数(state-value function),定义为从状态 s s s出发遵循策略 π \pi π能获得的期望回报,数学表达为:
不同于 MRP,在 MDP 中,由于动作的存在,我们额外定义一个动作价值函数(action-value function)。我们用 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)表示在 MDP 遵循策略 π \pi π时,对当前状态 s s s执行动作 a a a得到的期望回报:
使用策略 π \pi π时,状态 s s s下采取动作 a a a的价值等于即时奖励加上经过衰减后的所有可能的下一个状态的状态转移概率与相应的价值的乘积:
在贝尔曼方程中加上“期望”二字是为了与接下来的贝尔曼最优方程进行区分。我们通过简单推导就可以分别得到两个价值函数的贝尔曼期望方程(Bellman Expectation Equation):
图 3-4 是一个马尔可夫决策过程的简单例子,其中每个深色圆圈代表一个状态,一共有从 s 1 ~ s 5 s_1 ~ s_5 s1~s5 这 5 个状态。黑色实线箭头代表可以采取的动作,浅色小圆圈代表动作,需要注意,并非在每个状态都能采取所有动作,例如在状态 s 1 s_1 s1,智能体只能采取“保持 s 1 s_1 s1”和“前往 s 2 s_2 s2”这两个动作,无法采取其他动作。
每个浅色小圆圈旁的数字代表在某个状态下采取某个动作能获得的奖励。虚线箭头代表采取动作后可能转移到的状态,箭头边上的数字代表转移概率,如果没有数字则表示转移概率为 1。例如,在 s 2 s_2 s2下, 如果采取动作“前往 s 3 s_3 s3”,就能得到奖励-2(或受到惩罚2),并且转移到 s 3 s_3 s3;在 s 4 s_4 s4下,如果采取“概率前往”,就能得到奖励 1,并且会分别以概率 0.2, 0.4, 0.4 转移到 s 2 , s 3 或 s 4 s_2,s_3 或 s_4 s2,s3或s4。
蒙特卡洛方法(Monte-Carlo methods) 也被称为统计模拟方法,是一种基于概率统计的数值计算方法。运用蒙特卡洛方法时,我们通常使用重复随机抽样,然后运用概率统计方法来从抽样结果中归纳出我们想求的目标的数值估计。一个简单的例子是用蒙特卡洛方法来计算圆的面积。例如,在图 3-5 所示的正方形内部随机产生若干个点,细数落在圆中点的个数,圆的面积与正方形面积之比就等于圆中点的个数与正方形中点的个数之比。如果我们随机产生的点的个数越多,计算得到圆的面积就越接近于真实的圆的面积。
我们现在介绍如何用蒙特卡洛方法来估计一个策略在一个马尔可夫决策过程中的状态价值函数。回忆一下,一个状态的价值是它的期望回报,那么一个很直观的想法就是用策略在 MDP 上采样很多条序列,计算从这个状态出发的回报再求其期望就可以了,公式如下:
在一条序列中,可能没有出现过这个状态,可能只出现过一次这个状态,也可能出现过很多次这个状态。我们介绍的蒙特卡洛价值估计方法会在该状态每一次出现时计算它的回报。还有一种选择是一条序列只计算一次回报,也就是这条序列第一次出现该状态时计算后面的累积奖励,而后面再次出现该状态时,该状态就被忽略了。假设我们现在用策略 π \pi π从状态 s s s开始采样序列,据此来计算状态价值。我们为每一个状态维护一个计数器和总回报,计算状态价值的具体过程如下所示。
(1)使用策略 π \pi π采样若干条序列:
(2)对每一条序列中的每一时间步 t t t的状态 s s s进行以下操作:
(3)每一个状态的价值被估计为回报的平均值 V ( s ) = M ( s ) / N ( s ) V(s)=M(s)/N(s) V(s)=M(s)/N(s)。
根据大数定律,当 N ( s ) → ∞ N(s)→∞ N(s)→∞,有 V ( s ) → V π ( s ) V(s)→V^\pi(s) V(s)→Vπ(s)。计算回报的期望时,除了可以把所有的回报加起来除以次数,还有一种增量更新的方法。对于每个状态 s s s和对应回报 G G G,进行如下计算:
不同策略的价值函数是不一样的。这是因为对于同一个 MDP,不同策略会访问到的状态的概率分布是不同的。想象一下,图 3-4 的 MDP 中现在有一个策略,它的动作执行会使得智能体尽快到达终止状态 s 5 s_5 s5,于是当智能体处于状态 s 3 s_3 s3时,不会采取“前往 s 4 s_4 s4”的动作,而只会以 1 的概率采取“前往 s 5 s_5 s5”的动作,所以智能体也不会获得在 s 4 s_4 s4状态下采取“前往 s 5 s_5 s5”可以得到的很大的奖励 10。可想而知,根据贝尔曼方程,这个策略在状态 s 3 s_3 s3的概率会比较小,究其原因是因为它没法到达状态 s 4 s_4 s4。因此我们需要理解不同策略会使智能体访问到不同概率分布的状态这个事实,这会影响到策略的价值函数。
首先我们定义 MDP 的初始状态分布为 ν 0 ( s ) \nu_0(s) ν0(s),在有些资料中,初始状态分布会被定义进 MDP 的组成元素中。我们用 P t π ( s ) P_t^\pi(s) Ptπ(s)表示采取策略 π \pi π使得智能体在时刻 t t t状态为 s s s的概率,所以我们有 P 0 π ( s ) = ν 0 ( s ) P_0^\pi(s)=\nu_0(s) P0π(s)=ν0(s),然后就可以定义一个策略的状态访问分布(state visitation distribution):
其中, 1 − γ 1- \gamma 1−γ是用来使得概率加和为 1 的归一化因子。状态访问概率表示一个策略和 MDP 交互会访问到的状态的分布。需要注意的是,理论上在计算该分布时需要交互到无穷步之后,但实际上智能体和 MDP 的交互在一个序列中是有限的。不过我们仍然可以用以上公式来表达状态访问概率的思想,状态访问概率有如下性质:
此外,我们还可以定义策略的占用度量(occupancy measure):
它表示动作状态对 ( s , a ) (s,a) (s,a)被访问到的概率。二者之间存在如下关系:
进一步得出如下两个定理。定理 1:智能体分别以策略 π 1 \pi_1 π1和 π 2 \pi_2 π2和同一个 MDP 交互得到的占用度量 ρ π 1 \rho^{\pi_1} ρπ1和 ρ π 2 \rho^{\pi_2} ρπ2满足
定理 2:给定一合法占用度量 ρ \rho ρ,可生成该占用度量的唯一策略是:
注意:以上提到的“合法”占用度量是指存在一个策略使智能体与 MDP 交互产生的状态动作对被访问到的概率。
强化学习的目标通常是找到一个策略,使得智能体从初始状态出发能获得最多的期望回报。我们首先定义策略之间的偏序关系:当且仅当对于任意的状态 s s s都有 V π ( s ) ≥ V π ′ ( s ) V^\pi(s) \geq V^{\pi '}(s) Vπ(s)≥Vπ′(s) ,记 π ≥ π ′ \pi \geq \pi ' π≥π′。于是在有限状态和动作集合的 MDP 中,至少存在一个策略比其他所有策略都好或者至少存在一个策略不差于其他所有策略,这个策略就是最优策略(optimal policy)。最优策略可能有很多个,我们都将其表示为 π ∗ ( s ) \pi ^*(s) π∗(s)。
最优策略都有相同的状态价值函数,我们称之为最优状态价值函数,表示为:
同理,我们定义最优动作价值函数:
为了使 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)最大,我们需要在当前的状态动作对 ( s , a ) (s,a) (s,a)之后都执行最优策略。于是我们得到了最优状态价值函数和最优动作价值函数之间的关系:
这与在普通策略下的状态价值函数和动作价值函数之间的关系是一样的。另一方面,最优状态价值是选择此时使最优动作价值最大的那一个动作时的状态价值:
根据 V ∗ ( s ) V^*(s) V∗(s)和 Q ∗ ( s , a ) Q^*(s,a) Q∗(s,a)的关系,我们可以得到贝尔曼最优方程(Bellman optimality equation):
本章从零开始介绍了马尔可夫决策过程的基础概念知识,并讲解了如何通过求解贝尔曼方程得到状态价值的解析解以及如何用蒙特卡洛方法估计各个状态的价值。马尔可夫决策过程是强化学习中的基础概念,强化学习中的环境就是一个马尔可夫决策过程。