强化学习入门知识与经典项目分析1.2
我们在上一篇文章中详细推导了马尔可夫奖励过程的贝尔曼公式,这一篇文章重点来推导马尔科夫决策过程的贝尔曼公式。
主要的学习资源是四个:
- B站许志钦老师的视频(主要入门理论)https://www.bilibili.com/video/BV15a4y1j7vg?spm_id_from=333.999.0.0
- 书籍《强化学习入门:从原理到实践》(叶强等著,机械工业出版社)
- github中的配套资源 https://github.com/qqiang00/Reinforce
- 书籍《强化学习精要:核心算法与TensorFlow实现》(冯超著,中国工信出版集团)
1.马尔可夫决策过程
在说到这个部分的时候,我觉得我们脑海中应该始终浮现着一个状态-行为链:
\[\{s_0,a_0, s_1, a_1,...s_{t-1},a_{t-1},s_t\} \]这个链条包含了两种状态转换:一种是从状态到行为的转换,是由智能体agent的策略决定的;另一种是从行为到状态的转换,是由环境决定的。这里的策略通常用字母π表示,是某一状态下基于行为集合的一个概率分布,公式定义如下:
\[π(a|s)=P[A_t=a|S_t=s] \]马尔可夫决策过程(MDP)可以用五元组描述,其中:
- S是有限状态集
- A是有限行为集
- P是已知行为的状态转移概率矩阵:\(P_{ss'}^a=P[S_{t+1}=s'|S_t=s, A_t=a]\)
- R是已知状态和行为的奖励函数:\(R_{s}^a=E[R_{t+1}|S_t=s, A_t=a]\)
- γ是衰减因子:γ∈[0,1]
根据上述定义,我们很明显的发现,马尔可夫决策过程相比于马尔可夫奖励过程,增加了行为选择这一部分。对于一个经典的马尔科夫奖励过程,仅仅只是状态链,上一篇文章已经证明了该贝尔曼方程:
\[V(s)=R_s+γ\sum_{s'}P_{ss'}V(s') \]在上式的基础上,考虑行为,就可以拓展出马尔可夫决策过程的贝尔曼方程:
\[V_π(s) = \sum_aπ(a|s)[R_{s}^a + γ\sum_{s'}V_π(s')P_{ss'}^a] \]如果\(π(a|s)\)=1,也就是说只有一种行为,\(A=\{a\}\),那么这时候的马尔可夫决策过程奖励实际上就和马尔可夫奖励过程一样了,二者的贝尔曼方程也一致了。换句话说,马尔可夫奖励过程就是马尔可夫决策过程的一个特例。从这个角度考虑,我觉得就很容易理解这个的拓展过程。
价值与贝尔曼方程 |
状态值函数 \(V_π(s)\)
\(V_π(s)\)是在马尔科夫决策过程下基于策略 π 的状态价值函数,表示从状态 s开始,遵循当前策略 π 时所获得的收获的期望,也称长期回报,其公式定义为:
\[V_π(s)=E[\sum_{k=0}γ^kR_{t+k+1}|S_t=s] \]贝尔曼方程的证明方法一
如果觉得上文公式拓展的过于突兀,可以看下面这部分贝尔曼方程的具体推导
如果从状态-行为链的角度考虑,也可以定义为:
\[\begin{aligned} V_π(s)&=E_{s,a-τ}[\sum_{k=0}γ^kR_{t+k+1}]\\ &=\sum_τP(τ)\sum_{k=0}^\inftyγ^kR_{t+k+1} \end{aligned} \]其中τ是一条\(\{s,a,...,s_{final }\}\)的序列,一般是已知s和a采样得到的(s对应着t时刻)。\(\sum_{k=0}^\inftyγ^kR_{t+k+1}\)表示一条τ序列的收获,\(P(τ)\)表示该条τ序列的概率。
将\(P(τ)\)展开代入可得到:
进一步填充省略号中的内容,采用代换消元的手法进行变换:
\[\begin{aligned} V_π(s)&=\sum_{(s,a,s',a',...)-τ}π(a|s)·P_{ss'}^a·π(a'|s')...·\sum_{k=0}^\inftyγ^kR_{t+k+1}\\ &=\sum_{a}π(a|s)·\sum_{s'}P_{ss'}^a·\sum_{(s',a',s''...)-τ'}π(a'|s')·P_{s's''}^{a'}...·\sum_{k=0}^\inftyγ^kR_{t+k+1}\\ &=\sum_{a}π(a|s)·\sum_{s'}P_{ss'}^a·\sum_{(s',a',s''...)-τ'}π(a'|s')·P_{s's''}^{a'}...·[R_{t+1}+\sum_{k=1}^\inftyγ^kR_{t+k+1}]\\ &=\sum_{a}π(a|s)·\sum_{s'}P_{ss'}^a·[R_{t+1}+\sum_{(s',a',s''...)-τ'}π(a'|s')·P_{s's''}^{a'}...·γ\sum_{k=0}^\inftyγ^kR_{t+k+1}]\\ &=\sum_{a}π(a|s)·\sum_{s'}P_{ss'}^a·[R_{t+1}+γV_π(s')] \end{aligned} \]我们又可以得到关系式 \(R_s^a=\sum_{s'}P_{ss'}^a ·R_{t+1}\),因为每次离开同一个状态执行同一个动作得到的奖励都是同一个固定的值,这点和之前马尔可夫奖励过程很相似。把代入该等式就可以得到贝尔曼方程:
\[V_π(s) = \sum_aπ(a|s)[R_{s}^a + γ\sum_{s'}V_π(s')P_{ss'}^a] \]状态-行为价值函数
由于引入了行为,为了描述同一状态下采取不同行为的价值,定义一个基于行为价值函数\(q_π(s,a)\),表示在遵循策略π时,对当前状态s执行某一具体行为a所能的到的收获的期望:
\[q_π(s, a) = E [G_t|S_t = s, A_t = a] \]贝尔曼方程的证明方法二
根据定义,我们可以得到价值函数、策略、行为价值函数的关系:
\[V_π(s) = \sum_{a\in A}π(a|s)q_π(s,a) \]

将上面两式组合就能得到:
\[V_π(s) = \sum_{a\in A}π(a|s)[R_s^a+γ\sum_{s'\in S}V_{π}(s')P_{ss'}^a] \]
或者
\[q_π(s,a)=R_s^a+γ\sum_{s'\in S}P_{ss'}^a\sum_{a'\in A}π(a'|s')q_π(s',a') \]
马尔可夫决策过程实例 |
