当前位置: 代码迷 >> 综合 >> 【学习笔记】传说中的马尔可夫决策过程(MDP)和贝尔曼方程(Bellman Equation)
  详细解决方案

【学习笔记】传说中的马尔可夫决策过程(MDP)和贝尔曼方程(Bellman Equation)

热度:32   发布时间:2023-12-14 11:00:05.0

最近读了几篇paper,都着重涉及到了强化学习,都点到了马尔可夫决策过程(Markov Decision Process)贝尔曼方程或者叫贝尔曼等式(Bellman Equation),捧着似懂非懂的脑袋,决定这里把它们一网打尽。


1 马尔可夫决策过程(MDP)

马尔可夫决策过程主要是用来描述强化学习任务的,强化学习与我们所熟知的监督学习不一样,监督学习中每个样本都以一个label,从而通过这个label让机器知道什么样的特征对应什么样的label,从而让机器学习做出判定。而强化学习就不一样了,在这一过程中机器并不知道怎样做是对的或者错的,而是先做了从而得到一个环境所给的反馈,再通过这一反馈来 反思 之前做的是否正确,通过不断的尝试,学习获得一个 策略(policy),即究竟要怎样采取行动。

1.1 随机过程

在随机过程前我们肯定听说过随机变量,而随机过程是一族依赖于参数的随机变量全体,这一参数一般是时间,我们可以写成X(t),t∈T{X(t), t\in T}X(t),tT,其中TTT是一参数集,即是一个依赖于时间的随机变量的集合。例如某球场t0t_0t0?tkt_ktk?时刻间的打球人数就是一族依赖于时间的t的随机变量,是一个随机过程。

1.2 马尔可夫性

先来看看什么是马尔可夫性,即在一个随机过程中,下一时刻的状态或是奖励仅仅与当前的状态/奖励有关,而与之前的状态/奖励没关系。可用Eq.(1)来表示:
P(st+1,rt+1∣st,rt,st?1,rt?1,?,s1,r1)=P(st+1,rt+1∣st,rt)(1)P(s_{t+1},r_{t+1}|s_t,r_t,s_{t-1},r_{t-1},\cdots,s_1,r_1) = P(s_{t+1},r_{t+1}|s_t,r_t)\tag{1} P(st+1?,rt+1?st?,rt?,st?1?,rt?1?,?,s1?,r1?)=P(st+1?,rt+1?st?,rt?)(1)

1.3 马尔可夫随机过程

如果过一个随机过程中的任意两个状态之间均满足马尔可夫性,那么就可以称这个随机过程为马尔可夫随机过程。马尔可夫随机过程可用一个二元组(S,P)(S,P)(S,P)来表示,其中SSS是该随机过程中有限状态的集合,PPP是状态间的转移概率矩阵。
注意:PPP并不是对称的,因为状态sis_isi?到状态sjs_jsj?的转移概率不一定等于sjs_jsj?sis_isi?的转移概率。
以下是一个马尔可夫随机过程的例子:


示例

其中状态有:睡觉、学习、练琴、打球、玩,数字表示转移概率。

1.4 马尔可夫决策过程

马尔可夫决策过程是基于马尔可夫随机过程的基础之上的,我们依然可以 用一个元组来表示,即(S,A,P,R,γ)(S,A,P,R,\gamma)(S,A,P,R,γ)。其中SSS是决策过程中状态的集合,AAA是采取的action的集合,PPP是状态间采取某一行为的前提下的转移概率,RRR是采取某一行为而到达下一状态所获得的回报,γ\gammaγ则是衰减系数。
注意: 这里的PPP不同于马尔可夫随机过程中的PPP,这里的PPP依赖于所采取的action,采取不同的action得到下一状态的概率也是不一样的。

马尔可夫决策过程相对于马尔可夫随机过程更加关注状态间是采取何种action进行转移的,并且对于这些action会给予回报,以此来衡量采取该决策的“好坏”,策略用π(a∣s)=P(At=a∣St=s)\pi(a|s) = P(A_t = a|S_t = s)π(as)=P(At?=aSt?=s)来表示,即在状态sss下采取action aaa的概率

衰减系数γ\gammaγ有何用呢?实际上γ\gammaγ是用来衡量中间状态的影响,sts_tst?st+1s_{t+1}st+1?有直接的影响,而sts_tst?st+2,st+3,st+4,?s_{t+2},s_{t+3},s_{t+4},\cdotsst+2?,st+3?,st+4?,?的影响会越来越小,因此需要引入一个衰减系数γ\gammaγ,那么在ttt时刻的回报可以写成一个 累计值,如Eq.(2)。
Gt=Rt+1+γRt+2+γ2Rt+3+?=∑k=0∞γkRt+k+1(2)G_t = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots = \sum_{k = 0}^{\infty} \gamma^k R_{t+k+1}\tag{2} Gt?=Rt+1?+γRt+2?+γ2Rt+3?+?=k=0?γkRt+k+1?(2)
这里因为GtG_tGt?的值受到概率选择action的影响,所以采用一个期望来计算这个累计回报函数,也称其为 状态值函数,如Eq.(3):
vπ(s)=Eπ[Gt]=Eπ[∑k=0∞γkRt+k+1∣St=s](3)v_\pi(s) = E_\pi[G_t] = E_\pi[ \sum_{k = 0}^{\infty} \gamma^k R_{t+k+1}|S_t = s]\tag{3} vπ?(s)=Eπ?[Gt?]=Eπ?[k=0?γkRt+k+1?St?=s](3)
而时刻ttt回报是由策略来决定的,策略其实就是执行某个action的概率,所以也是由action决定的,再将action加入Eq.(3)中得到Eq.(4),得到 状态-行为函数qπ(s,a)q_\pi(s, a)qπ?(s,a)
qπ(s,a)=Eπ[Gt]=Eπ[∑k=0∞γkRt+k+1∣St=s,At=a](4)q_\pi(s, a)= E_\pi[G_t] = E_\pi[ \sum_{k = 0}^{\infty} \gamma^k R_{t+k+1}|S_t = s, A_t = a]\tag{4} qπ?(s,a)=Eπ?[Gt?]=Eπ?[k=0?γkRt+k+1?St?=s,At?=a](4)
从Eq.(2)中可以看出GtG_tGt?Gt+1G_{t+1}Gt+1?的关系,如Eq.(5):
Gt=Rt+1+γGt+1(5)G_t = R_{t + 1} + \gamma G_{t+1}\tag{5} Gt?=Rt+1?+γGt+1?(5)
则有Eq.(6):
vπ(s)=Eπ[Gt∣St=s]=Eπ[Rt+1+γGt+1∣St=s]=Eπ[Rt+1+γvπ(St+1)∣St=s](6)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]\tag{6}vπ?(s)=Eπ?[Gt?St?=s]=Eπ?[Rt+1?+γGt+1?St?=s]=Eπ?[Rt+1?+γvπ?(St+1?)St?=s](6)
同理有Eq.(7):
qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a](7)q_\pi(s, a) = E_\pi[R_{t + 1} + \gamma q_\pi(S_{t + 1}, A_{t + 1})|S_t = s, A_t = a]\tag{7} qπ?(s,a)=Eπ?[Rt+1?+γqπ?(St+1?,At+1?)St?=s,At?=a](7)

  • 接下来来看看状态值函数和状态-行为函数的 递推关系
    由Eq.(3)和Eq.(4)的定义以及期望的计算法则可得到Eq.(8):
    vπ(s)=∑a∈Aπ(a∣s)qπ(s,a)(8)v_\pi(s) = \sum_{a\in A}\pi(a|s)q_\pi(s, a)\tag{8} vπ?(s)=aA?π(as)qπ?(s,a)(8)
    此外,由马尔可夫性,下一时刻的状态St+1S_{t+1}St+1?只与当前状态有关,所以在当前状态为sss且采取action为aaa的前提下,下一状态为St+1=s′S_{t + 1} = s^{'}St+1?=ss′s^{'}s为任意下一时刻的状态)的概率为:
    Pss′a=P(St+1=s′∣St=s,At=a)(9)P_{ss^{'}}^a = P(S_{t + 1} = s^{'}|S_t = s, A_t = a)\tag{9} Pssa?=P(St+1?=sSt?=s,At?=a)(9)
    由Eq.(7)可得到Eq.(10)的关系式:
    qπ(s,a)=Rsa+γ∑s′∈SPss′avπ(s′)(10)q_\pi(s,a) = R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^av_\pi(s^{'})\tag{10} qπ?(s,a)=Rsa?+γsS?Pssa?vπ?(s)(10)
    其中RsaR_s^aRsa?可以看作即时奖励。
    所以根据Eq.(8)和Eq.(10)可得:
    vπ(s)=∑a∈Aπ(a∣s)(Rsa+γ∑s′∈SPss′avπ(s′))(11)v_\pi(s) = \sum_{a\in A}\pi(a|s)(R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^av_\pi(s^{'}))\tag{11} vπ?(s)=aA?π(as)(Rsa?+γsS?Pssa?vπ?(s))(11)
    qπ(s,a)=Rsa+γ∑s′∈SPss′a∑a∈Aπ(a′∣s′)qπ(s′,a′)(12)q_\pi(s,a) = R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^a\sum_{a\in A}\pi(a^{'}|s^{'})q_\pi(s^{'}, a^{'})\tag{12} qπ?(s,a)=Rsa?+γsS?Pssa?aA?π(as)qπ?(s,a)(12)

上面也有提到过强化学习的最终目的是找到一个 最优策略,最优策略意味着使用该策略会让个体在与环境的交互中收获最多的reward。当然一个全局最优的解往往不是那么好找,一般会尝试去比较不同的策略从而获得一个局部较好的策略。假设v?(s)v_*(s)v??(s)q?(s,a)q_*(s, a)q??(s,a)是使用不同策略得到的状态值函数和状态-行为函数的最大值,即:
v?(s)=maxπvπ(s)(13)v_*(s) = max_\pi v_\pi(s)\tag{13} v??(s)=maxπ?vπ?(s)(13)
q?(s,a)=maxπqπ(s,a)(14)q_*(s, a) = max_\pi q_\pi(s, a)\tag{14} q??(s,a)=maxπ?qπ?(s,a)(14)
从Eq.(13)和Eq.(14)中可以看出,只要找到了这两个最大值,那么其对应的的策略π?\pi_*π??便可以作为强化学习的一个解。
同理也可以找到v?(s)v_*(s)v??(s)q?(s,a)q_*(s, a)q??(s,a)之间的递推关系:
v?(s)=maxaq?(s,a)(15)v_*(s) = max_aq_*(s, a)\tag{15} v??(s)=maxa?q??(s,a)(15)
q?(s,a)=Rsa+γ∑s′∈SPss′av?(s′)(16)q_*(s, a) = R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^av_*(s^{'})\tag{16} q??(s,a)=Rsa?+γsS?Pssa?v??(s)(16)
互相带入可得:
v?(s)=maxa(Rsa+γ∑s′∈SPss′av?(s′))(17)v_*(s) = max_a(R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^av_*(s^{'}))\tag{17} v??(s)=maxa?(Rsa?+γsS?Pssa?v??(s))(17)
q?(s,a)=Rsa+γ∑s′∈SPss′amaxa′q?(s′,a′)(18)q_*(s, a) = R_s^a + \gamma \sum_{s^{'}\in S}P_{ss^{'}}^amax_{a^{'}}q_*(s^{'}, a^{'})\tag{18} q??(s,a)=Rsa?+γsS?Pssa?maxa?q??(s,a)(18)


2 贝尔曼方程(Bellman Equation)

实际上在上述的推导过程中已经给出了两个贝尔曼方程:Eq.(6)和Eq.(7),给出了 相邻状态的关系。实际上,贝尔曼方程也被称作“动态规划方程”,由理查?\cdot?贝尔曼发现。贝尔曼方程将决策问题在特定时间点的值来自初始选择的报酬由初始选择衍生的决策问题的值来表示。


对于强化学习,周志华老师的西瓜书中有描述其和我们熟悉的监督学习的区别:强化学习中的“状态”对应着监督学习中的“示例”,而action对应着监督学习中的“标记”,“策略”则对应着监督学习中的“分类器”/“回归器”,但不同的是强化学习中没有有标记样本(示例-标记对),即没人能告诉机器在什么状态下应该做什么样的动作,只有等到最终结果揭晓,才能通过“反思”之前的动作是否正确来进行学习。

也许强化学习在未来可以大有所为。

  相关解决方案