马尔可夫决策过程

马尔可夫过程

随机过程

随机过程(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,\cdots,S_t) (S1,,St)时下一个时刻状态为 S t + 1 S_{t+1} St+1的概率表示成 P ( S t + 1 ∣ S 1 , ⋯   , S t ) P(S_{t+1}|S_1,\cdots,S_t) P(St+1S1,,St)

马尔可夫性值

在随机过程中,马尔可夫性质(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,\cdots,s_t) P(st+1st)=P(st+1s1,,st)

马尔科夫过程

马尔可夫过程是一组具有马尔可夫性质的随机变量序列 s 1 , ⋯   , s t s_1,\cdots,s_t s1,,st,其中下一个时刻的状态 s t + 1 s_{t+1} st+1只取决于当前状态 s t s_t st。我们设状态的历史为 h t = { s 1 , s 2 , . . . . . . , s t } h_t=\{s_1,s_2,......,s_t\} ht={s1,s2,......,st} h t h_t ht包含了之前的所有状态),则马尔可夫过程满足条件:
p ( s t + 1 ∣ s t ) = p ( s t + 1 ∣ h t ) (1) p(s_{t+1}|s_t)=p(s_{t+1}|h_t) \tag{1} p(st+1st)=p(st+1ht)(1)
从当前 s t s_t st转移到 s t + 1 s_{t+1} st+1,它是直接就等于它之前所有的状态转移到 s t + 1 s_{t+1} st+1

离散时间的马尔可夫过程也称为马尔可夫链(Markov chain)。马尔可夫链是最简单的马尔可夫过程,其状态是有限的。例如,下图里面有4个状态,这4个状态在 s 1 , s 2 , s 3 , s 4 s_1,s_2,s_3,s_4 s1,s2,s3,s4之间相互转移。比如从 s 1 s_1 s1开始, s 1 s_1 s1有 0.1 的概率继续存留在 s 1 s_1 s1状态,有 0.2 的概率转移到 s 2 s_2 s2,有 0.7 的概率转移到 s 4 s_4 s4
在这里插入图片描述
我们可以用状态转移矩阵(state transition matrix) P P P 来描述状态转移 p ( s t + 1 = s ′ ∣ s t = s ) p(s_{t+1}=s^{′} | s_t=s) p(st+1=sst=s)
P = ( p ( s 1 ∣ s 1 ) p ( s 2 ∣ s 1 ) . . . p ( s N ∣ s 1 ) p ( s 1 ∣ s 2 ) p ( s 2 ∣ s 2 ) . . . p ( s N ∣ s 2 ) ⋮ ⋮ ⋱ ⋮ p ( s 1 ∣ s N ) p ( s 2 ∣ s N ) . . . p ( s N ∣ s N ) ) P=\begin{pmatrix} p(s_1|s_1)&p(s_2|s_1)&...&p(s_N|s_1)\\ p(s_1|s_2)&p(s_2|s_2)&...&p(s_N|s_2)\\ ⋮&⋮&⋱&⋮\\ p(s_1|s_N)&p(s_2|s_N)&...&p(s_N|s_N)\\ \end{pmatrix} P= p(s1s1)p(s1s2)p(s1sN)p(s2s1)p(s2s2)p(s2sN).........p(sNs1)p(sNs2)p(sNsN)
状态转移矩阵类似于条件概率(conditional probability),它表示当我们知道当前我们在状态 s 1 s_1 s1时,到达下面所有状态的概率。所以它的每一行描述的是从一个节点到达所有其他节点的概率。

马尔可夫奖励过程

马尔可夫奖励过程(Markov reward process, MRP)是马尔可夫链加上奖励函数。在马尔可夫奖励过程中,状态转移矩阵和状态都与马尔可夫链一样,只是多了奖励函数(reward function)。奖励函数 R R R是一个 期望,表示当我们到达某一个状态的时候,可以获得多大的奖励。
R ( s ) = E [ R t + 1 ∣ s t = s ] R(s)=E[R_{t+1}|s_t=s] R(s)=E[Rt+1st=s]

回报与价值函数

回报(return)可以定义为奖励的逐步叠加,假设时刻 t t t后的奖励序列为 r t + 1 , r t + 2 , r t + 3 , ⋯   , r_{t+1},r_{t+2},r_{t+3},\cdots, rt+1,rt+2,rt+3,,则回报为
G t = r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + ⋯ + γ T − t − 1 r T G_t=r_{t+1}+γr_{t+2}+γ^2r_{t+3}+γ^3r_{t+4}+\cdots+γ^{T-t-1}r_{T} Gt=rt+1+γrt+2+γ2rt+3+γ3rt+4++γTt1rT
其中, T T T是最终时刻, γ γ γ是折扣因子,越往后得到的奖励折扣越多。这说明我们更希望得到现有的奖励,对未来的奖励要打折扣。当我们有了回报之后,就可以定义状态的价值了,就是状态价值函数(state-value function)。对于马尔可夫奖励过程,状态价值函数被定义成回报的期望,即
V t ( s ) = E [ G t ∣ s t = s ] = E [ r t + 1 + γ r t + 2 + γ 2 r t + 3 + γ 3 r t + 4 + . . . + γ T − t − 1 r T ∣ s t = s ] \begin{aligned} V^t(s)&=E[G_t|s_t=s] \\ &=E[r_{t+1}+γr_{t+2}+γ^2r_{t+3}+γ^3r_{t+4}+...+γ^{T-t-1}r_{T}|s_t=s] \end{aligned} Vt(s)=E[Gtst=s]=E[rt+1+γrt+2+γ2rt+3+γ3rt+4+...+γTt1rTst=s]
其中, G t G_t Gt是之前定义的折扣回报(discounted return)。我们对 G t G_t Gt取了一个期望,期望就是从这个状态开始,我们可能获得多大的价值。

我们使用折扣因子的原因如下。第一,有些马尔可夫过程是带环的,它并不会终结,我们想避免无穷的奖励。第二,我们并不能建立完美的模拟环境的模型,我们对未来的评估不一定是准确的,我们不一定完全信任模型,因为这种不确定性,所以我们对未来的评估增加一个折扣。我们想把这个不确定性表示出来,希望尽可能快地得到奖励,而不是在未来某一个点得到奖励。第三,如果奖励是有实际价值的,我们可能更希望立刻就得到奖励,而不是后面再得到奖励(现在的钱比以后的钱更有价值)。最后,我们也更想得到即时奖励。有些时候可以把折扣因子设为 0,我们就只关注当前的奖励。我们也可以把折扣因子设为 1,对未来的奖励并没有打折扣,未来获得的奖励与当前获得的奖励是一样的。折扣因子可以作为强化学习智能体的一个超参数(hyperparameter)来进行调整,通过调整折扣因子,我们可以得到不同动作的智能体。

下面是一个计算回报的例子。如图所示,智能体进入第一个状态 s 1 s_1 s1的时候会得到 5 的奖励,进入第七个状态 s 7 s_7 s7的时候会得到 10 的奖励,进入其他状态都没有奖励。我们可以用向量来表示奖励函数,即
R = [ 5 , 0 , 0 , 0 , 0 , 0 , 10 ] R=[5,0,0,0,0,0,10] R=[5,0,0,0,0,0,10]
在这里插入图片描述
我们对 4 步的** 回合 **(episode)( γ = 0.5 γ=0.5 γ=0.5)来采样回报 G G G

( 1 ) s 4 , s 5 , s 6 , s 7 的回报 : 0 + 0.5 × 0 + 0.25 × 0 + 0.125 × 10 = 1.25 (1) s_4,s_5,s_6,s_7的回报:0+0.5×0+0.25×0+0.125×10=1.25 (1)s4,s5,s6,s7的回报:0+0.5×0+0.25×0+0.125×10=1.25

( 2 ) s 4 , s 3 , s 2 , s 1 的回报 : 0 + 0.5 × 0 + 0.25 × 0 + 0.125 × 5 = 0.625 (2) s_4,s_3,s_2,s_1的回报:0+0.5×0+0.25×0+0.125×5=0.625 (2)s4,s3,s2,s1的回报:0+0.5×0+0.25×0+0.125×5=0.625

( 3 ) s 4 , s 5 , s 6 , s 6 的回报 : 0 + 0.5 × 0 + 0.25 × 0 + 0.125 × 0 = 0 (3) s_4,s_5,s_6,s_6的回报:0+0.5×0+0.25×0+0.125×0=0 (3)s4,s5,s6,s6的回报:0+0.5×0+0.25×0+0.125×0=0

我们现在可以计算每一个回合得到的奖励,比如我们对轨迹 s 4 , s 5 , s 6 , s 7 s_4,s_5,s_6,s_7 s4,s5,s6,s7的奖励进行计算,这里折扣因子是 0.5。在 s 4 s_4 s4的时候,奖励为0。下一个状态 s 5 s_5 s5的时候,因为我们已经到了下一步,所以要把 s 5 s_5 s5进行折扣, s 5 s_5 s5的奖励也是0。然后是 s 6 s_6 s6,奖励也是0,折扣因子应该是0.25。到达 s 7 s_7 s7后,我们获得了一个奖励,但是因为状态 s 7 s_7 s7的奖励是未来才获得的奖励,所以我们要对之进行3次折扣。最终这个轨迹的回报就是 1.25。类似地,我们可以得到其他轨迹的回报。

当我们有了一些轨迹的实际回报时,怎么计算它的价值函数呢?比如我们想知道 s 4 s_4 s4的价值,即当我们进入 s 4 s_4 s4后,它的价值到底如何?一个可行的做法就是我们可以生成很多轨迹,然后把轨迹都叠加起来。比如我们可以从 s 4 s_4 s4开始,采样生成很多轨迹,把这些轨迹的回报都计算出来,然后将其取平均值作为我们进入 s 4 s_4 s4的价值。这其实是一种计算价值函数的办法,也就是通过蒙特卡洛(Monte Carlo,MC)采样的方法计算 s 4 s_4 s4的价值。

贝尔曼方程

此外,我们可以使用贝尔曼方程求解价值函数。贝尔曼方程就是当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。贝尔曼方程(Bellman equation)如下:
V ( s ) = R ( s ) ⏟ 及时奖励 + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) ⏟ 未来奖励的折扣总和 V(s)=\underbrace{R(s)}_{\text{及时奖励}}+\underbrace{γ\sum_{s^{'}∈S}p(s^{'}|s)V(s^{'})}_{\text{未来奖励的折扣总和}} V(s)=及时奖励 R(s)+未来奖励的折扣总和 γsSp(ss)V(s)
其中,

  • s ′ s^{'} s可以看成未来的所有状态
  • p ( s ′ ∣ s ) p(s^{'}|s) p(ss)是指从当前状态转移到未来状态的概率
  • V ( s ′ ) V(s^{'}) V(s)代表的是未来某一个状态的价值。我们从当前状态开始,有一定的概率去到未来的所有状态,所以我们要把 p ( s ′ ∣ s ) p(s^{'}|s) p(ss)写上去。我们得到了未来状态后,乘一个 γ γ γ,这样就可以把未来的奖励打折扣。
  • γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) γ\sum_{s^{'}∈S}p(s^{'}|s)V(s^{'}) γsSp(ss)V(s)可以看成未来奖励的折扣总和(discounted sum of future reward)。

贝尔曼方程的推导过程如下:

V t ( 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 ∣ s t = s ] + γ E [ r t + 2 + γ r t + 3 + γ 2 r t + 4 + . . . ∣ s t = s ] = R ( s ) + γ E [ G t + 1 ∣ s t = s ] = R ( s ) + γ E [ V ( s t + 1 ∣ s t = s ) ] = R ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) \begin{aligned} V^t(s)&=E[G_t|s_t=s] \\ &=E[r_{t+1}+γr_{t+2}+γ^2r_{t+3}+...|s_t=s]\\ &=E[r_{t+1}|s_t=s]+γE[r_{t+2}+γr_{t+3}+γ^2r_{t+4}+...|s_t=s]\\ &=R(s)+γE[G_{t+1}|s_t=s]\\ &=R(s)+γE[V(s_{t+1}|s_t=s)]\\ &=R(s)+γ\sum_{s^{'}∈S}p(s^{'}|s)V(s^{'}) \end{aligned} Vt(s)=E[Gtst=s]=E[rt+1+γrt+2+γ2rt+3+...∣st=s]=E[rt+1st=s]+γE[rt+2+γrt+3+γ2rt+4+...∣st=s]=R(s)+γE[Gt+1st=s]=R(s)+γE[V(st+1st=s)]=R(s)+γsSp(ss)V(s)

例子:假设有一个马尔可夫链如下图所示( γ = 1 γ=1 γ=1),计算红色框的 价值

在这里插入图片描述
我们可以把贝尔曼方程写成矩阵的形式:
( V ( s 1 ) V ( s 2 ) ⋮ V ( s N ) ) = ( R ( s 1 ) R ( s 2 ) ⋮ R ( s N ) ) + γ ( p ( s 1 ∣ s 1 ) p ( s 2 ∣ s 1 ) … p ( s N ∣ s 1 ) p ( s 1 ∣ s 2 ) p ( s 2 ∣ s 2 ) … p ( s N ∣ s 2 ) ⋮ ⋮ ⋱ ⋮ p ( s 1 ∣ s N ) p ( s 2 ∣ s N ) … p ( s N ∣ s N ) ) ( V ( s 1 ) V ( s 2 ) ⋮ V ( s N ) ) \begin{pmatrix} V(s_1) \\ V(s_2) \\ \vdots\\ V(s_N) \end{pmatrix}= \begin{pmatrix} R(s_1) \\ R(s_2) \\ \vdots\\ R(s_N) \end{pmatrix}+γ \begin{pmatrix} p(s_1|s_1)&p(s_2|s_1)&\dots&p(s_N|s_1)\\ p(s_1|s_2)&p(s_2|s_2)&\dots&p(s_N|s_2)\\ \vdots&\vdots&\ddots&\vdots\\ p(s_1|s_N)&p(s_2|s_N)&\dots&p(s_N|s_N) \end{pmatrix} \begin{pmatrix} V(s_1)\\ V(s_2)\\ \vdots\\ V(s_N) \end{pmatrix} V(s1)V(s2)V(sN) = R(s1)R(s2)R(sN) +γ p(s1s1)p(s1s2)p(s1sN)p(s2s1)p(s2s2)p(s2sN)p(sNs1)p(sNs2)p(sNsN) V(s1)V(s2)V(sN)

我们当前的状态是向量 [ V ( s 1 ) , V ( s 2 ) , ⋯   , V ( s N ) ] T [V(s_1),V(s_2),\cdots,V(s_N)]^{T} [V(s1),V(s2),,V(sN)]T。每一行来看,向量 V V V乘状态转移矩阵里面的某一行,再加上它当前可以得到的奖励,就会得到它当前的价值。

当我们把贝尔曼方程写成矩阵形式后,可以直接求解:
V = R + γ P V I V = R + γ P V ( I − γ P ) V = R V = ( I − γ P ) − 1 R \begin{aligned} &V=R+γPV\\ &IV=R+γPV\\ &(I-γP)V=R\\ &V=(I-γP)^{-1}R \end{aligned} V=R+γPVIV=R+γPV(IγP)V=RV=(IγP)1R
我们可以通过矩阵求逆把 V V V的价值直接求出来。但是一个问题是这个矩阵求逆的过程的复杂度是 O ( N 3 ) O(N^3) O(N3)。所以当状态非常多的时候,比如从10个状态到1000个状态,或者到100万个状态,当我们有100万个状态的时候,状态转移矩阵就会是一个100万乘100万的矩阵,对这样一个大矩阵求逆是非常困难的。所以这种方法只适用于很小量的马尔可夫奖励过程。

马尔可夫决策过程

相对于马尔可夫奖励过程,马尔可夫决策过程(Markov decision process, MDP)多了决策(决策是指动作),其他的定义与马尔可夫奖励过程的是类似的。此外,状态转移也多了一个条件,变成了 p ( s t + 1 = s ′ ∣ s t = s , a t = a ) p(s_{t+1}=s^{'}|s_t=s,a_t=a) p(st+1=sst=s,at=a),表示未来的状态不仅依赖于当前的状态,也依赖于在当前状态智能体采取的动作。马尔可夫决策过程满足条件:
p ( s t + 1 ∣ s t , a t ) = p ( s t + 1 ∣ h t , a t ) p(s_{t+1}|s_t,a_t)=p(s_{t+1}|h_t,a_t) p(st+1st,at)=p(st+1ht,at)
对于奖励函数,它也多了一个当前的动作,变成了
R ( s t = s , a t = a ) = E [ r t ∣ s t = s , a t = a ] R(s_t=s,a_t=a)=E[r_t|s_t=s,a_t=a] R(st=s,at=a)=E[rtst=s,at=a]
当前的状态以及采取的动作会决定智能体在当前可能得到的奖励多少。

策略

策略 π π π是一个函数,表示输入状态为 s s s的情况下采取动作 a a a的概率。
π ( a ∣ s ) = p ( a t = a ∣ s t = s ) π(a|s)=p(a_t=a|s_t=s) π(as)=p(at=ast=s)
概率代表在所有可能的动作里面怎样采取行动,比如可能有 0.7 的概率往左走,有 0.3 的概率往右走,这是一个概率的表示。另外策略也可能是确定的,它有可能直接输出一个值,或者直接告诉我们当前应该采取什么样的动作,而不是一个动作的概率。

已知马尔可夫决策过程和策略 π π π,我们可以把马尔可夫决策过程转换成马尔可夫奖励过程。在马尔可夫决策过程里面,状态转移函数 P ( s ′ ∣ s , a ) P(s^{'}|s,a) P(ss,a)基于它当前的状态以及它当前的动作。因为我们现在已知策略函数,也就是已知在每一个状态下,可能采取的动作的概率,所以我们就可以直接把动作进行加和,去掉 a a a,这样我们就可以得到对于马尔可夫奖励过程的转移,这里就没有动作,即
P π ( s ′ ∣ s ) = ∑ a ∈ A π ( a ∣ s ) p ( s ′ ∣ s , a ) P_π(s^{'}|s)=\sum_{a∈A}π(a|s)p(s^{'}|s,a) Pπ(ss)=aAπ(as)p(ss,a)
对于奖励函数,我们也可以把动作去掉,这样就会得到类似于马尔可夫奖励过程的奖励函数,即
R π ( s ) = ∑ a ∈ A π ( a ∣ s ) R ( s , a ) R_π(s)=\sum_{a∈A}π(a|s)R(s,a) Rπ(s)=aAπ(as)R(s,a)

马尔科夫决策过程中的价值函数

马尔可夫决策过程中的状态价值函数定义
V π ( s ) = E π [ G t ∣ s t = s ] (2) V_π(s)=E_π[G_t|s_t=s] \tag{2} Vπ(s)=Eπ[Gtst=s](2)
状态价值函数 V π ( s ) V_π(s) Vπ(s)是从状态 s s s出发,遵循策略 π π π得到的期望回报。

马尔可夫决策过程中的动作价值函数定义
Q π ( s , a ) = E π [ G t ∣ s t = s , a t = a ] (3) Q_π(s,a)=E_π[G_t|s_t=s,a_t=a] \tag{3} Qπ(s,a)=Eπ[Gtst=s,at=a](3)
动作价值函数 Q π ( s , a ) Q_π(s,a) Qπ(s,a)是从状态 s s s开始,遵循策略 π π π,对当前状态 s s s执行动作 a a a得到的期望回报。

状态价值函数和动作价值函数的 关系

在使用策略 π π π中,状态 s s s的价值等于在该状态下基于策略 π π π采取所有动作的概率与相应的价值相乘再求和的结果:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) (4) V_π(s)=\sum_{a∈A}π(a|s)Q_π(s,a) \tag{4} Vπ(s)=aAπ(as)Qπ(s,a)(4)
使用策略 π π π时,状态 s s s下采取动作 a a a的价值等于即时奖励加上经过衰减后的所有可能的下一个状态的状态转移概率与相应的价值的乘积:
Q ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ( s ′ ) Q(s,a)=R(s,a)+γ\sum_{s^{'}∈S}p(s^{'}|s,a)V(s^{'}) Q(s,a)=R(s,a)+γsSp(ss,a)V(s)

贝尔曼期望方程

我们可以把状态价值函数和动作价值函数拆解成两个部分:即时奖励和后续状态的折扣价值(discounted value of successor state)。通过对状态价值函数进行分解,我们就可以得到一个类似于之前马尔可夫奖励过程的贝尔曼方程————贝尔曼期望方程(Bellman expectation equation):
V π ( s ) = E π [ r t + 1 + γ V π ( s t + 1 ) ∣ s t = s ] (5) V_π(s)=E_π[r_{t+1}+γV_π(s_{t+1})|s_t=s] \tag{5} Vπ(s)=Eπ[rt+1+γVπ(st+1)st=s](5)
对于动作价值函数,我们也可以做类似的分解,得到动作价值函数的贝尔曼期望方程:
Q π ( s , a ) = E π [ r t + 1 + γ Q π ( s t + 1 , a t + 1 ) ∣ s t = s , a t = a ] (6) Q_π(s,a)=E_π[r_{t+1}+γQ_π(s_{t+1},a_{t+1})|s_t=s,a_t=a] \tag{6} Qπ(s,a)=Eπ[rt+1+γQπ(st+1,at+1)st=s,at=a](6)
贝尔曼期望方程定义了当前状态与未来状态之间的关联。

我们进一步进行简单的分解,先给出式(7):
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) (7) V_π(s)=\sum_{a∈A}π(a|s)Q_π(s,a) \tag{7} Vπ(s)=aAπ(as)Qπ(s,a)(7)
接着,我们再给出式(8):
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π ( s ′ ) (8) Q_π(s,a)=R(s,a)+γ\sum_{s^{'}∈S}p(s^{'}|s,a)V_ π(s^{'}) \tag{8} Qπ(s,a)=R(s,a)+γsSp(ss,a)Vπ(s)(8)
式(7)和式(8)代表状态价值函数与动作价值函数之间的关系。

我们把式(8)代入式(7)可得
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V π ( s ′ ) ) (9) V_π(s)=\sum_{a∈A}π(a|s)\left( R(s,a)+γ\sum_{s^{'}∈S}p(s^{'}|s,a)V_π(s^{'}) \right ) \tag{9} Vπ(s)=aAπ(as) R(s,a)+γsSp(ss,a)Vπ(s) (9)
式(9)代表当前状态的价值与未来状态价值之间的关联。

我们把式(7)代入式(8)可得
Q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) Q π ( s ′ , a ′ ) (10) Q_π(s,a)=R(s,a)+γ\sum_{s^{'}∈S}p(s^{'}|s,a)\sum_{a^{'}∈A}π(a^{'}|s^{'})Q_π(s^{'},a^{'}) \tag{10} Qπ(s,a)=R(s,a)+γsSp(ss,a)aAπ(as)Qπ(s,a)(10)
式(10)代表当前时刻的动作价值函数与未来时刻的动作价值函数之间的关联。

式(9)和式(10)是贝尔曼期望方程的另一种形式。

例子,如下图所示,求红色框的 价值?

在这里插入图片描述
再比如,左边的-1.3这个状态是 怎么来的

最优价值函数

在马尔可夫决策过程中,最优价值函数分为两种:最优状态值函数和最优动作值函数。

最优状态价值函数是所有策略产生的状态价值函数中,使状态 s s s价值最大的函数:
V ∗ ( s ) = max ⁡ π V π ( s ) V^*(s)=\max_πV_π(s) V(s)=πmaxVπ(s)
最优动作价值函数是指所有策略产生的动作价值函数中,使状态-行动价值最大的函数:
Q ∗ ( s , a ) = max ⁡ π Q π ( s , a ) Q^*(s,a)=\max_πQ_π(s,a) Q(s,a)=πmaxQπ(s,a)

最优价值函数明确了MDP的最优可能表现。一旦最优价值函数知晓,则认为MDP已完成求解。

为了使 Q π ( s , a ) Q_π(s,a) Qπ(s,a)最大,我们需要在当前的状态动作对 ( s , a ) (s,a) (s,a)之后都执行最优策略。于是我们得到了最优状态价值函数和最优动作价值函数之间的关系:
Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ∗ ( s ′ ) Q^*(s,a)=R(s,a)+γ\sum_{s^{'}∈S}p(s^{'}|s,a)V^*(s^{'}) Q(s,a)=R(s,a)+γsSp(ss,a)V(s)
这与在普通策略下的状态价值函数和动作价值函数之间的关系是一样的。另一方面,最优状态价值是选择此时使最优动作价值最大的那一个动作时的状态价值:

V ∗ ( s ) = max ⁡ a ∈ A Q ∗ ( s , a ) V^*(s)=\max_{a∈A}Q^*(s,a) V(s)=aAmaxQ(s,a)

最优策略

强化学习的目标通常是找到一个策略,使得智能体从初始状态出发能获得最多的期望回报。我们首先定义策略之间的偏序关系:当且仅当对于任意的状态 s s s都有 V π ( s ) ≥ V π ′ ( s ) V_π(s)≥V_{π'}(s) Vπ(s)Vπ(s),记作 π > π ′ π>π' ππ。于是在有限状态和动作集合的 MDP 中,至少存在一个策略比其他所有策略都好或者至少存在一个策略不差于其他所有策略,这个策略就是最优策略(optimal policy)。最优策略可能有很多个,我们都将其表示为 π ∗ ( s ) π^*(s) π(s)
π ∗ ( s ) = arg ⁡ max ⁡ π V π ( s ) π^*(s)=\arg\max_πV_π(s) π(s)=argπmaxVπ(s)

贝尔曼最优方程

根据 V ∗ ( s ) V^*(s) V(s) Q ∗ ( s , a ) Q^*(s,a) Q(s,a)的关系,我们可以得到贝尔曼最优方程
Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) max ⁡ a ′ Q ∗ ( s ′ , a ′ ) Q^*(s,a)=R(s,a)+γ\sum_{s^{'}∈S}p(s^{'}|s,a)\max_{a^{'}}Q^*(s^{'},a^{'}) Q(s,a)=R(s,a)+γsSp(ss,a)amaxQ(s,a)
V ∗ ( s ) = max ⁡ a ( R ( s , a ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s , a ) V ∗ ( s ′ ) ) V^*(s)=\max_a\left( R(s,a)+γ\sum_{s^{'}∈S}p(s^{'}|s,a)V^*(s^{'}) \right) V(s)=amax R(s,a)+γsSp(ss,a)V(s)

贝尔曼最优方程是非线性的,不能使用与策略优化相同的直接矩阵解决方案,可以通过一些其他迭代方法来求解。

  • 价值迭代
  • 策略迭代
  • Q-learning
  • Sarsa
  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值