前言
本期是手把手教你入门强化学习第二篇了,在这期,笔者会介绍强化学习中最核心的数学模型------Markov决策过程
,用来描述智能体(Agent)与环境(Environment)交互的框架。同样会尽量通俗易懂,不过本次会有大量数学推导,如果对此不了解的友友,看不懂的没有关系,跟上期一样同样会有实践代码环节
,帮助大家更好地理解背后的原理。
前期回顾
一、马尔可夫过程
马尔可夫性质
我们在一个时序的过程中,若t+1时的状态只跟t时的状态有关,而与t时之前的任何状态都没有关系,我们就认为t时的状态具有马尔可夫性质。
马尔可夫过程
而具备马尔可夫性质的随机过程称为马尔可夫过程(MP)或者马尔可夫链(MC)。这个过程我们能够用一个元组来描述<S,P>。
S 是有限状态的集合, P 是状态转移概率矩阵。
状态转移矩阵定义了从任意状态到其所有后续状态s'的状态转移概率:
<math xmlns="http://www.w3.org/1998/Math/MathML"> P = ( P 11 ... P 1 n ⋮ ⋮ P n 1 ... P n n ) P = \begin{pmatrix} P_{11} &\dots & P_{1n} \\ \vdots & &\vdots\\ P_{n1} &\dots &P_{nn} \end{pmatrix} </math>P= P11⋮Pn1......P1n⋮Pnn 每一行的转移概率之和相加为一。
如果我们从马尔可夫过程中生成一个状态序列 这一过程叫做采样 (也就是根据转移概率,随机选择生成一串状态) 若最后一个状态是终止状态,我们就称该状态是完整的状态序列。
二、马尔可夫奖励过程
但是上面这个我们还没有引入强化学习中的奖励过程,若我们引入奖励,我们需要变为4元组,称为马尔可夫奖励过程(MRP)。它是由<S,P,R, <math xmlns="http://www.w3.org/1998/Math/MathML"> γ \gamma </math>γ>构成的一个元组,其中 S,P上述已经提过,而R是一个奖励函数, <math xmlns="http://www.w3.org/1998/Math/MathML"> γ \gamma </math>γ是一个衰减因子: <math xmlns="http://www.w3.org/1998/Math/MathML"> γ ∈ [ 0 , 1 ] \gamma\in[0,1] </math>γ∈[0,1]。 在马尔可夫过程中,我们每经历一次状态转移,也就是强化学习中,智能体做出动作,都会收到环境所给予的奖励,我们把一个状态序列所经历的所有奖励累计起来,叫做收获
(return)。
收获(Return)是在一个马尔可夫奖励过程中从某一状态St开始采样直到终止状态时所有奖励的衰减之和。数学表达式如下:
<math xmlns="http://www.w3.org/1998/Math/MathML"> G t = R t + 1 + γ R t + 2 + ⋯ = ∑ k = 0 ∞ γ k R t + k + 1 G_{t}=R_{t+1}+\gamma R_{t+2} + \dots = \sum_{k=0}^ \infty\gamma^{k}R_{t+k+1} </math>Gt=Rt+1+γRt+2+⋯=∑k=0∞γkRt+k+1 在这一过程中,我们引入 <math xmlns="http://www.w3.org/1998/Math/MathML"> γ \gamma </math>γ 这个在[0,1]范围内的衰减系数。我们可以这样理解,对于当下时刻当前状态来说,当前的奖励对我影响是最大的,随着状态的转移,奖励逐渐衰减。但当 <math xmlns="http://www.w3.org/1998/Math/MathML"> γ \gamma </math>γ衰减系数取1时,我们认为它具有"长远眼光",因为它将所有状态(后续转移状态)的奖励同等考虑。
这时候我们引入一个新的概念,价值。
价值(Value)
是马尔可夫奖励过程中状态收获的期望。其数学表达式为:
<math xmlns="http://www.w3.org/1998/Math/MathML"> v ( s ) = E [ G t ∣ S t = s ] v(s) = E[G_{t}|S_t = s] </math>v(s)=E[Gt∣St=s] 一个状态的价值是该状态的收获的期望,也就是说从这个状态出发的所有状态序列(一般计算不了,我们尽量算多,算的越多越准确),我们计算它的奖励,然后对其求期望就是这个状态具备的价值。 这时候我们提出一个函数,价值函数
。它建立了状态到价值的映射关系。不过我们发现它的计算过程过于复杂,有没有更简单的方法呢?
我们把公式推导一下。
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> v ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + ... ∣ S t = s ] = E [ R t + 1 + γ ( R t + 2 + γ R t + 3 + ... ) ∣ S t = s ] = E [ R t + 1 + γ ( G t + 1 ) ∣ S t = s ] = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] \begin{split} v(s) &= E[G_{t}|S_{t} = s]\\ &=E[R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+\dots|S_{t} = s]\\ &=E[R_{t+1}+\gamma(\R_{t+2}+\gamma R_{t+3}+\dots)|S_{t} = s]\\ &=E[R_{t+1}+\gamma(G_{t+1})|S_{t} = s]\\ &=E[R_{t+1}+\gamma v(S_{t+1})|S_{t}=s]\\ \end{split} </math>v(s)=E[Gt∣St=s]=E[Rt+1+γRt+2+γ2Rt+3+...∣St=s]=E[Rt+1+γ(Rt+2+γRt+3+...)∣St=s]=E[Rt+1+γ(Gt+1)∣St=s]=E[Rt+1+γv(St+1)∣St=s]
最终得到: <math xmlns="http://www.w3.org/1998/Math/MathML"> v ( s ) = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] v(s)=E[R_{t+1}+\gamma v(S_{t+1})|S_{t}=s] </math>v(s)=E[Rt+1+γv(St+1)∣St=s] 而又因为 <math xmlns="http://www.w3.org/1998/Math/MathML"> R t + 1 R_{t+1} </math>Rt+1的期望就是其自身,因为每次离开同一个状态得到的奖励都是一个固定值,用s'表示下一个状态,故最后方程可以写出:
<math xmlns="http://www.w3.org/1998/Math/MathML"> v ( s ) = R s + γ ∑ s ′ ∈ S P s s ′ v ( s ′ ) v(s)=R_{s}+\gamma \sum_{s' \in S}P_{ss'}v(s') </math>v(s)=Rs+γ∑s′∈SPss′v(s′) 这就是马尔可夫奖励过程中的贝尔曼方程
,他表示一个状态的价值由两部分组成:
1 该状态的即时奖励
2 其他状态的衰减奖励和转移概率相乘的总和
在强化学习问题中,如果智能体能够知道每个状态的价值,就能在当前状态下所有能采取的行为中,选择出哪一个行为最有意义、最有价值。
马尔可夫决策过程
马尔可夫奖励过程不涉及智能体的决策选择,而马尔可夫决策过程(MDP)则是由一个五元组组成<S,P,A,R, <math xmlns="http://www.w3.org/1998/Math/MathML"> γ \gamma </math>γ>,相较于奖励过程,我们多一个元素,A表示一个有限行为集。
这里给出一个概念,策略函数
,用字母 <math xmlns="http://www.w3.org/1998/Math/MathML"> π \pi </math>π表示。策略函数 <math xmlns="http://www.w3.org/1998/Math/MathML"> π \pi </math>π是某一状态下基于行为集合的一个概率分布,我们给出策略函数:
<math xmlns="http://www.w3.org/1998/Math/MathML"> π ( a ∣ s ) = P [ A t = a ∣ S t = s ] \pi(a|s) = P[A_{t}=a|S_{t}=s] </math>π(a∣s)=P[At=a∣St=s] 这里解释一下为什么是概率分布,由于动作的选择就有概率性的,我们采取行为是从这个动作空间进行抽样得到的。
这个时候,我们拓展一下之前定义的价值函数, <math xmlns="http://www.w3.org/1998/Math/MathML"> v π ( s ) v_{\pi}(s) </math>vπ(s)是在马尔可夫决策过程中基于策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π \pi </math>π的状态价值函数
,表示从状态s开始,遵循当前策略 <math xmlns="http://www.w3.org/1998/Math/MathML"> π \pi </math>π时所获得收获的期望:
<math xmlns="http://www.w3.org/1998/Math/MathML"> v π ( s ) = E [ G t ∣ S t = s ] v_{\pi}(s)=E[G_{t}|S_{t}=s] </math>vπ(s)=E[Gt∣St=s] 同样,由于引入了行为,为了描述同一状态下采取不同行为的价值,我们定义一个基于策略π的行为价值函数
<math xmlns="http://www.w3.org/1998/Math/MathML"> q π ( s , a ) q_{\pi}(s,a) </math>qπ(s,a),表示在遵循策略π时对当前状态s执行某一具体行为a所能得到的收获的期望:
定义了基于策略π的状态价值函数和行为价值函数后,依据贝尔曼方程,我们可以得到如下两个贝尔曼期望方程:
由于行为是连接马尔可夫决策过程中状态转换的桥梁,因此一个行为的价值与状态的价值关系紧密,具体表现为一个状态的价值可以用该状态下所有行为价值来表达:
类似地,一个行为的价值可以用该行为所能到达的后续状态的价值来表达:
组合起来,我们得到:
或者
解决强化学习问题意味着要寻找一个最优的策略(让个体在与环境交互过程中获得始终比其他策略都要多的收获),这个最优策略用π表示。一旦找到最优策略π ,就意味着该强化学习问题得到了解决。寻找最优策略是一件比较困难的事情,但是可以通过比较两个不同策略的优劣来确定一个较好的策略。
【定义】最优状态价值函数(Optimal Value Function)是所有策略下产生的众多状态价值函数中的最大者:
【定义】最优行为价值函数(Optimal Action-Value Function)是所有策略下产生的众多行为价值函数中的最大者:
最优策略
可以通过最大化最优行为价值函数q*(s,a)来获得:
也就是说最优策略在面对每一个状态时将总是选择能够带来最大、最优行为价值的行为。这同时意味着,一旦得到 <math xmlns="http://www.w3.org/1998/Math/MathML"> q ∗ ( s , a ) q_{*}(s,a) </math>q∗(s,a),最优策略也就找到了。因此求解强化学习问题就转变为求解最优行为价值函数问题。
而求解贝尔曼最优方程不是线性方程,无法直接求解,通常采用迭代法来求解,具体有价值迭代、策略迭代、Q学习、Sarsa学习等多种迭代方法,我将在后面几期的博客中详细介绍。
总结
本博客从马尔可夫性质引入,到马尔可夫过程,再到马尔可夫奖励过程,最后到马尔可夫决策过程,从中讲述了强化学习中最重要的几个概念,包括策略函数
,状态转移
,价值函数
,最优行为价值函数
,这也是我们学强化学习前必须掌握的概念。
如果想要更深入强化学习的内容,关注我,下期更精彩
创作不易,求关注,点赞,收藏,谢谢~