强化学习RL学习笔记5-马尔可夫决策过程(MDP)(2)

强化学习笔记专栏传送

上一篇:强化学习RL学习笔记4-马尔可夫决策过程(MDP)(1)
下一篇:强化学习RL学习笔记6-马尔可夫决策过程(MDP)(3)

前言

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题 。

本文是笔者对强化学习的一点学习记录,成文于笔者刚开始接触强化学习期间,主要内容参考LeeDeepRL-Notes,学习期间很多概念和理论框架还很不成熟,若文中存在错误欢迎批评指正,也欢迎广大学习者沟通交流、共同进步。


Markov Decision Process(MDP)(马尔可夫决策过程)

1.MDP

相对于 MRP,马尔可夫决策过程(Markov Decision Process)多了一个 decision

  • MDP多了一个决策,多了一个 action。
  • 状态转移也多了一个条件,变成了 P ( s t + 1 = s ′ ∣ s t = s , a t = a ) P\left(s_{t+1}=s^{\prime} \mid s_{t}=s, a_{t}=a\right) P(st+1=sst=s,at=a) 。未来的状态不仅依赖于当前状态,也依赖于当前状态 agent 采取的动作。
  • 对于价值函数,也多了一个条件,多了一个当前的动作,变成了 R ( s t = s , a t = a ) = E [ r t ∣ s t = s , a t = a ] R\left(s_{t}=s, a_{t}=a\right)=\mathbb{E}\left[r_{t} \mid s_{t}=s, a_{t}=a\right] R(st=s,at=a)=E[rtst=s,at=a] 。即当前状态以及采取的动作会决定在当前可能得到的奖励多少。

2.Policy in MDP

Policy 定义了在某一个状态应该采取什么样的动作。把当前状态带入 policy function,就会得到一个概率,即 π ( a ∣ s ) = P ( a t = a ∣ s t = s ) \pi(a \mid s)=P\left(a_{t}=a \mid s_{t}=s\right) π(as)=P(at=ast=s)

这代表所有可能的动作的概率,比如可能 0.7 的概率往左走, 0.3 的概率往右走。

另外这个策略也可能是确定的,Policy function 可能直接输出一个值,即直接输出当前应该采取什么样的动作,而不是动作的概率。

假设这个概率函数是稳定的(stationary),不同时间点,采取的动作其实是对这个 policy function 进行采样。

MDP 和 MRP 之间可以互相转换,已知 MDP 和其 Policy function 时,可以把 MDP 转换成 MRP。在 MDP 中,状态转移函数和奖励函数都与当前采取 action 有关。而已知 Policy function 实际上就知道了采取 action 的概率分布,利用概率分布将各个 action 下的状态转移函数或奖励函数叠加,即可得到 MRP 形式下的状态转移函数和奖励函数。

3.Comparison of MP/MRP and MDP

在这里插入图片描述
MP 和 MRP 的状态转移过程可以由上图左侧表示,即当前状态向下一状态的转移只是由当前状态决定的一个概率分布

MDP 的状态转移过程则由上图右侧表示,即先由当前状态通过 action 转移到中间层的黑色结点,再根据不同黑色结点的不同概率分布,得到最终的转移状态。故相较于 MP 和 MRP ,MDP 引入了多一层的决策,将 action 纳入了状态转移过程的影响因素。

4.Value function for MDP

MDP 中的 状态-价值函数(state-value function) 定义与 MRP 中的类似: v π ( s ) = E π [ G t ∣ s t = s ] v^\pi(s)=\Bbb E_\pi[G_t\mid s_t=s] vπ(s)=Eπ[Gtst=s]

因为 MDP 中的 value 实际与当前状态采取的 policy 有关,通过 policy 进行采样,得到不同 policy 下的 value 期望,即可以得到当前 value。这里引入Q 函数(Q-function),Q函数也被称为 action-value function ,定义的是在某一个状态采取某一个动作,有可能得到的 return 的期望,即: q π ( s , a ) = E π [ G t ∣ s t = s , A t = a ] q^\pi(s,a)=\Bbb E_\pi[G_t\mid s_t=s,A_t=a] qπ(s,a)=Eπ[Gtst=s,At=a]

需要对 policy function 进行加和,得到 value 。 对 Q 函数中的动作进行加和,就可以得到价值函数,即: v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v^\pi(s)=\sum_{a\in A}\pi(a\mid s)q^\pi(s,a) vπ(s)=aAπ(as)qπ(s,a)

5.Bellman Expectation Equation

可以把状态-价值函数和 Q 函数拆解成两个部分:即时奖励(immediate reward) 和后续状态的折扣价值(discounted value of successor state)。

通过对 state-value function 进行分解,就可以得到类似于之前 MRP 的 Bellman Equation,这里叫 Bellman Expectation Equation: v π ( s ) = E π [ R t + 1 + γ v π ( s t + 1 ) ∣ s t = s ] v^\pi(s)=E_\pi[R_{t+1}+\gamma v^\pi(s_{t+1})\mid s_t=s] vπ(s)=Eπ[Rt+1+γvπ(st+1)st=s]

对于 Q 函数(action-value function),也可以做类似的分解,也可以得到 Q 函数的 Bellman Expectation Equation : q π ( s , a ) = E π [ R t + 1 + γ q π ( s t + 1 , A t + 1 ) ∣ s t = s , A t = a ] q^\pi(s,a)=E_\pi[R_{t+1}+\gamma q^\pi(s_{t+1},A_{t+1})\mid s_t=s,A_t=a] qπ(s,a)=Eπ[Rt+1+γqπ(st+1,At+1)st=s,At=a]

Bellman expectation equation 定义了当前状态与未来状态之间的关联。

进一步进行分解:
因为当前状态的 value 等于各个 action 下的value的叠加,即: v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v^\pi(s)=\sum_{a\in A}\pi(a\mid s)q^\pi(s,a) vπ(s)=aAπ(as)qπ(s,a)

又因为当前状态下采取指定 action 的价值 q 应等于即时 return 和 γ 倍由 P 加权的之后各个状态的 value 之和,即: q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v π ( s ′ ) q^\pi(s,a)=R^a_s+\gamma \sum_{s'\in S}P(s'\mid s,a)v^\pi(s') qπ(s,a)=Rsa+γsSP(ss,a)vπ(s)

以上两式代表了 state-value function 和 action-value function 之间的关联。

将上两式中,后一式代入前式,得: v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v π ( s ′ ) ) v^\pi(s)=\sum_{a\in A}\pi(a\mid s)\left(R(s,a)+\gamma \sum_{s'\in S}P(s'\mid s,a)v^\pi(s') \right) vπ(s)=aAπ(as)(R(s,a)+γsSP(ss,a)vπ(s))
上式代表了当前状态的价值与未来状态价值间的关联。

将上两式中,前一式代入后式。得: q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) q^\pi(s,a)=R(s,a)+\gamma \sum_{s'\in S}P(s'\mid s,a)\sum_{a'\in A}\pi(a'\mid s')q^\pi(s',a') qπ(s,a)=R(s,a)+γsSP(ss,a)aAπ(as)qπ(s,a)
上式代表了当前时刻 Q 函数与未来时刻 Q 函数间的关联。

上两式是 Bellman expectation equation 的另一种形式。

6.Backup Diagram

backup 指的是对于某个状态,当前价值和其未来的价值是线性相关的。

将下图这样的图称为 backup diagram(备份图),因为图示关系构成了更新或备份操作的基础,而这些操作是强化学习方法的核心。这些操作将价值信息从一个状态(或状态-动作对)的后继状态(或状态-动作对)转移回它。
在这里插入图片描述
图中每个空心圆圈代表一个状态,每个实心圆圈代表一个状态-动作对。

v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v π ( s ′ ) ) v^\pi(s)=\sum_{a\in A}\pi(a\mid s)\left(R(s,a)+\gamma \sum_{s'\in S}P(s'\mid s,a)v^\pi(s') \right) vπ(s)=aAπ(as)(R(s,a)+γsSP(ss,a)vπ(s))

如上式所示,有两层和:

  • 第一层和即 backup diagram 的叶子结点,往上一层就可以把未来的价值 backup 到黑色的结点。
  • 第二层和即对 action 进行求和,得到黑色结点的价值后,再往上 backup 一层,就会推到根结点价值,即当前状态的价值。

在这里插入图片描述
同理,也可以根据下式绘出 Q 函数对应的 backup diagram。

q π ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) q^\pi(s,a)=R(s,a)+\gamma \sum_{s'\in S}P(s'\mid s,a)\sum_{a'\in A}\pi(a'\mid s')q^\pi(s',a') qπ(s,a)=R(s,a)+γsSP(ss,a)aAπ(as)qπ(s,a)

在这里插入图片描述

7.Policy Evaluation(Prediction)

知道 MDP 以及要采取的策略 π \pi π ,计算价值函数的过程就是 policy evaluation。就像在评估这个策略会得到多大的奖励。Policy evaluation 在有些地方也被叫做 prediction,也就是预测当前采取的这个策略最终会产生多少的价值

此时随机初始化 v ( s ′ ) v(s') v(s),迭代 Bellman expectation equation 即可得到 state-value。

8.Prediction and Control

MDP 的 prediction 和 control 是 MDP 里面的核心问题

  • 预测问题:

    • 输入:MDP < S , A , P , R , γ > <S,A,P,R,\gamma> <S,A,P,R,γ>和 policy π \pi π 或者MRP < S , P π , R π , γ > <S,P^\pi,R^\pi,\gamma> <S,Pπ,Rπ,γ>
    • 输出:value function v π v^\pi vπ
    • Prediction 是给定一个 MDP 和其 policy π \pi π ,去计算它的 value function,即对于每个状态价值函数值是多少。
  • 控制问题:

    • 输入:MDP < S , A , P , R , γ > <S,A,P,R,\gamma> <S,A,P,R,γ>
    • 输出:最佳价值函数(optimal value function) v ∗ v^* v 和最佳策略(optimal policy) π ∗ \pi^* π
    • Control 即寻找最佳策略,同时输出最佳价值函数和最佳策略。

在 MDP 里面,prediction 和 control 都可以通过动态规划解决。

  • 预测问题是给定一个 policy,要确定它的 value function 是多少。
  • 控制问题是在没有 policy 的前提下,要确定最优的 value function 以及对应的决策方案。

实际上,这两者是递进的关系,在强化学习中,通过解决预测问题,进而解决控制问题。

For example:
在这里插入图片描述
预测问题:

  • 在上图 a 的方格中,规定从 A → A ′ A \to A' AA 可以得到 +10 的奖励,从 B → B ′ B \to B' BB 可以得到 +5 的奖励,其它步骤的奖励为 -1。
  • 给定一个 policy:在任何状态中,它的行为模式都是随机的,也就是上下左右的概率各 25%。
  • 预测问题要做的就是,在给定的决策模式下,value function 是什么。上图 b 是对应的 value function。

在这里插入图片描述
控制问题:

  • 控制问题中问题背景与预测问题相同,唯一的区别是不再限制 policy。即行为模式未知待确定。
  • 所以通过解决控制问题,求得每一个状态的最优的 value function(如上图 b 所示),也得到了最优的 policy(如上图 c 所示)。
  • 控制问题要做的就是,给定同样的条件,所有可能的策略中最优的价值函数是什么和最优策略是什么。

9.Dynamic Programming(动态规划)

动态规划(Dynamic Programming,DP)适合解决满足如下两个性质的问题:

  • 最优子结构(optimal substructure)。最优子结构意味着,问题可以拆分成一个个的子问题,解决这些子问题,最后通过组合子问题的答案得到大问题的答案,即最优的解。
  • 重叠子问题(Overlapping subproblems)。重叠子问题意味着,子问题出现多次,并且子问题的解决方案能被重复使用。

MDP 是满足动态规划的要求的

  • Bellman equation 中,可以把它分解成一个递归的结构。此时,如果子问题子状态能得到一个值,那么它的未来状态因为和子状态是直接相连的,那我们也可以继续推算出来。
  • 价值函数就可以储存并重用它的最佳的解。
    动态规划应用于 MDP 的规划问题(planning)而不是学习问题(learning),我们必须对环境是完全已知的(Model-Based),才能做动态规划,直观的说,就是要知道状态转移概率和对应的 reward 才行

动态规划是解 MDP prediction 和 control 一个非常有效的方式。

10.Policy Evaluation on MDP

Policy evaluation 解决针对当前策略可以得到多大的 value function 的问题。

有一个方法是直接用 Bellman Expectation Backup,使变成一个迭代的过程,反复迭代直到收敛。这个迭代过程可以看作是 synchronous backup(同步备份)的过程。

同步备份(synchronous backup)是指每次的迭代都会完全更新所有的状态,这样对于程序资源需求特别大。
异步备份(asynchronous backup)的思想就是通过某种方式,使得每一次得带不需要更新所有的状态,因为事实上,很多的状态也不需要被更新。

通过 Bellman Expectation Backup 公式转换成一个动态规划的迭代,可以得到下式: v t + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v t ( s ′ ) ) v_{t+1}(s)=\sum_{a\in A}\pi (a\mid s)\left(R(s,a)+\gamma \sum_{s'\in S}P(s'\mid s,a)v_t(s')\right) vt+1(s)=aAπ(as)(R(s,a)+γsSP(ss,a)vt(s))

  • 当得到上一时刻的 v t v_t vt 时,可以通过这个递推的关系来推出下一时刻的值。
  • 反复去迭代它,最后它的值收敛,这个收敛值就是当前给定的 policy 对应的价值函数。

已知 policy 时,可将上式化简成 MRP 的形式,这样形式更加简洁: v t + 1 ( s ) = R π ( s ) + γ P π ( s ′ ∣ s ) v t ( s ′ ) v_{t+1}(s)=R^\pi(s)+\gamma P^\pi(s'\mid s)v_t(s') vt+1(s)=Rπ(s)+γPπ(ss)vt(s)


上一篇:强化学习RL学习笔记4-马尔可夫决策过程(MDP)(1)
下一篇:强化学习RL学习笔记6-马尔可夫决策过程(MDP)(3)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值