David Silver《Reinforcement Learning》课程解读—— Lecture 2: Markov Decision Process
MDPs正式描述了强化学习的环境,几乎所有的强化学习问题都可以描述为MDPs。
1. Markov Process
意义
用于描述RL的环境,该环境完全可观(如当前状态完整描述了整个过程)。特性
- 无后效/ 记忆性
- 状态转移矩阵
Pss′
定义了从状态
s
到下一状态
s′ 的所有的可能性。 - Markov过程是无记忆的随机过程。
2. Markov Reward Process
- 概念
- MRP 是带有values的Markov Chain,是一个数组 {S, P, R, γ }。
- R是回报函数
γ 是折扣因子
- Return
- Gt 是从时间序列t开始所有的折扣回报, Gt=Rt+γRt+2+⋅⋅⋅=∑∞k=0 γkRt+k+1
- 引入折扣因子的原因:便于计算;避免循环Markov过程中出现无限回报;未来的不确定性难以表达。
- Value Function
- 状体值函数 v(s) 是从状态s开始的期望回报: v(s)=E[Gt|St=s]
Bellman Equation
v(s)=E[Gt|St=s]=E[Rt+1+γGt+1|St=s]=E[Rt+1+γv(St+1)|St=s]=Rs+γ∑s′∈SPss′v(s′)- 即值函数可以被分解为两部分
- 立即回报 Rt+1
- 后续状态的折扣函数 γv(St+1)
- 对于大范围MRPs,有许多迭代理论来计算value function,如动态规划、蒙特卡罗估计、时间差分学习。
3. Markov Decision Process
- 概念
- MDP=MRP+decisions,用数组表示为{
S,a,P,R,γ
},其中:
- A为有限组动作
- S为有限组状态
- P是状态转移概率矩阵
- R是回报函数/奖赏函数
- γ 是折扣因子
- 在一个MDP中,给定{
S,a,P,R,γ }和策略 π ,则:
- 状态序列
S1,S2,⋅⋅⋅ 是一个马尔科夫过程。 - 状态和回报组成的序列 S1,R2,S2,⋅⋅⋅ 是一个MRP过程。
- 状态序列
- MDP=MRP+decisions,用数组表示为{
S,a,P,R,γ
},其中:
- Policies 策略
- π(a|s)=P[At=a|St=s] ,规定了在每个可能的状态,Agent应该采取的动作集合。它与历史状态无关,只取决于当前状态。
- π:S→A , 即策略是一个从状态到动作的映射。
Value Function 值函数/评价函数
奖赏函数是对一个状态(动作)的即时评价,值函数则是从长远的角度来考虑一个状态(或状态-动作对)的好坏,因此值函数又称为评价函数。
如果一个策略只考虑立即回报,则很可能会掉入眼前陷阱。比如说有一个岔路口,往左回报是100,往右回报是10,如果策略只考虑立即回报,那肯定是往左,但往左走的下一次回报只有10,而往右走的下一次回报有200,可以看到这个策略并不是最优的策略,此外增强学习又往往有具有延迟回报的特点,在很多情况下的动作并不会产生立即回报,但这一系列动作的累积效果又的确会导致后续回报的产生,因此立即回报并不能说明策略的好坏。在几乎所有的强化学习理论中都会定义值函数来表示给定策略下期望的未来回报,并将值函数作为评估学习效果的指标。- 状态值函数
vπ(s)
,表示在某个策略下,在环境处于状态
s
时,未来累积回报的期望,即
vπ(s)=Eπ[Gt|St=s] . - 动作值函数
qπ(s,a)
,表示在某个策略下,在环境处于状态
s
时,Agent采取动作
a 得到的未来累积回报的期望,即 qπ(s,a)=Eπ[Gt|St=s,At=a] . - 可以看到状态值函数 vπ(s) 与动作值函数 qπ(s,a) 唯一的不同在于 qπ(s,a) 不仅指定了一个初始状态,而且也指定了初始动作,而 vπ(s) 的初始动作是根据策略产生的。
贝尔曼期望公式
- 由于在MDP中,给定状态
s
,AgentAgent根据策略选择动作
a ,下个时刻将以概率 P(s′|s,a) 转移到状态 s ,因此动作值函数又可以改写成如下形式(省略中间推导过程):
也就是说在策略 π 下,当前的状态值函数可以通过下一个状态的值函数来迭代求解。vπ(s)=E[Gt|St=s]=∑aπ(a|s)∑s′P(s′|s,a)[r(s,a,s′)+γvπ(s′)] - 同样,动作值函数也可以写成相似形式:
qπ(s,a)=E[Gt|St=s,At=a]=∑s′P(s′|s,a)[r(s,a,s′)+γvπ(s′)]
- 状态值函数
vπ(s)
,表示在某个策略下,在环境处于状态
s
时,未来累积回报的期望,即
- 最优值函数&最优策略
- 上述的值函数都是未来回报的期望值,而我们需要得到的最优策略必然是使得任一时刻未来回报的期望值都是最大的,因此优化目标可以表示为:
π∗=argmaxπvπ(s)
- 当然,最优策略可能不止一个,但是这些最优策略都有一个共同的特点,就是它们共享同样的状态值函数,这个值函数叫作最优值状态函数(optimal state-value function),用
v∗
来表示,对于所有的
s∈S
有:
v∗(s)=maxπvπ(s)最优策略同样也共享相同的动作值函数(opitmal action-value function),用 q∗ 来表示,对于所有的 s∈S,a∈A(s) 有:q∗(s,a)=maxπqπ(s,a)
- 与状态值函数的贝尔曼公式一样,最优状态值函数和最优动作值函数也可以表示成递归的形式,叫做状态值函数和动作值函数的贝尔曼最优公式(Bellman optimality equation)。因为没有
π(a∣s)
,不需要根据策略生成动作,因此贝尔曼最优公式完全独立于策略,但如果我们已知
v∗
或
q∗
,便可以很容易地得到最优策略。
定理
- 在所有MDP中,存在一个最优策略,优于或等于其他策略。
- 在所有MDP中,所有的最优策略都会达到最优(动作)值函数.
- 动态规划(dynamic programming)——寻找最优策略
动态规划(dynamic programming)指的是能够用来解决给定环境模型,计算最优策略的算法总称。典型的动态规划算法存在两个问题,一是需要依赖一个非常好的环境状态转移模型,二是计算的开销非常大,因此在增强学习中几乎不会直接用动态规划求解MDP,但动态规划理论还是非常重要的,因为后面的一些算法都是在动态规划的基础上,摆脱模型依赖并尽可能地减少计算量。
- 策略估计:首先,我们考虑一下如果已知策略
π
,如何计算
vπ 。这个问题被称作DP迭代中的策略估计(policy evaluation)。 - 策略改进:策略估计是为了计算当前策略下各状态的值函数,那得到值函数又有什么用呢?首先我们可以用来比较两个策略的好坏,如果状态值函数是已知的,那么就可以计算动作值函数,如果一个策略
π
的所有动作值函数都大于另一个策略
π′ ,那么可以认为策略 π 比策略π′ 更好。其次最主要的作用是可以进行策略改进(policy improvement)。 - 策略迭代:一旦策略
π
通过策略改进得到一个更好的策略
π′ ,我们就可以通过策略估计算法,计算策略 π′ 的状态值函数,再对其进行策略改进得到一个比策略 π′ 更好的策略 π′′ 。经过无数次的策略估计和策略改进之后,终将会收敛于最优策略 π∗ 。这种不断迭代去改进策略的方法叫做策略迭代(policy iteration)。 - 值迭代:策略迭代算法需要不断地进行策略估计和策略改进,每次策略估计和改进都需要遍历一次所有的状态和动作,因此算法的计算量非常大,效率非常低。同时可以看到策略迭代的依据是贝尔曼公式,而如果直接利用贝尔曼最优公式会不会加速求解过程呢?事实上是可以的,值迭代(value iteration)算法就是利用贝尔曼最优公式来提高求解效率的一种算法。
- 策略估计:首先,我们考虑一下如果已知策略
π
,如何计算
- 此外除了动态规划方法,还有以下几种方法用来求取最优策略:
- 蒙特卡罗方法:与动态规划不同,蒙特卡罗方法不需要知道环境的完整模型,仅仅需要经验就可以获得最优策略,这些经验可以通过与环境在线或模拟交互的方式获得。在线交互显然是不需要任何环境的先验知识,模拟交互虽然需要知道环境状态的转移,但与动态规划不同的是这里不需要知道具体的转移概率。
- 时间差分学习:时间差分学习(temporal-dierence (TD) learning)结合了动态规划和蒙特卡罗方法的优点,与蒙特卡罗方法一样不需要环境模型,与动态规划一样更新估计值时只依赖于下一个状态可用的估计值,而不需要等到策略自举出完整的episode。
- Q-Learning:Q学习是一种off-policy方法,并被认为是强化学习算法最重要的突破之一。在Q-learning中,动作值函数的更新完全独立于生成episode的策略,使得学习到的
Q(St,At)
直接是最优动作值函数
q∗
的估计值。Q学习类似于动态规划方法中的值迭代算法,也是直接使用最优的
Q(St,At)
进行更新,也就相当于策略只采用了最大
Q
值对应的动作。但与蒙特卡洛控制一样,由于每次只选择最大
Q 值对应的动作,因此这个算法也会导致部分state-action对不会被策略生成,相应的动作值函数也无法得到更新。为了确保能收敛到最优策略,算法在生成episode时同样使用了 ϵ−greedy 策略,但更新时仍然采用确定性策略(即策略只选择Q值最大的动作)。
- 上述的值函数都是未来回报的期望值,而我们需要得到的最优策略必然是使得任一时刻未来回报的期望值都是最大的,因此优化目标可以表示为:
4. MDP的一些扩展
- 无限连续MDPs
- 无穷状态及动作空间
- 连续状态及动作空间
- 连续时间
- 部分可观 (partially obserable) MDPs-POMDPs
- 带有隐藏状态的MDP,即一个数组 ⟨S,A,O,P,R,Z,γ⟩ 。
- 其中
O
为有限集的观察量,
R 为回报函数, Z <script id="MathJax-Element-1261" type="math/tex">Z</script>为观察函数。