- 本文首发于个人博客,欢迎逛逛呀!
马尔可夫决策过程描述了强化学习的环境【环境是完全可观察的】,几乎所有的强化学习问题都可以转化为马尔可夫决策过程
一、马尔可夫过程(Markov Process)
1)马尔可夫性质:
-
当前状态已经包含了历史信息中对决定下一步有用的所有信息,或者说给定当前的状态,过去的状态与未来的状态是独立的;
-
数学表达式:
2) 马尔可夫过程(马尔可夫链)
-
马尔可夫过程是无记忆的随机过程,是一系列的具有马尔可夫性质的随机状态,可以用二元组
<S, P>
来表示-
S: 表示状态的集合;即环境中所有的状态的集合;
-
P:表示状态转移概率矩阵,其中 p i j p_{ij} pij 表示从状态
i
转移到j
的概率,因此,每一行的概率之和为 1
-
-
一个例子:学生马尔可夫过程
- 图中,每一个圆圈都代表一个状态,箭头代表状态之间的转移,箭头上的数字代表状态转移的概率
二、 马尔可夫奖励过程(Markov Reward Process)
-
马尔可夫奖励过程是在马尔可夫过程的基础上加入了奖励函数 R 和折扣因子 γ \gamma γ ( a Markov chain with values),所以马尔可夫奖励过程可以用四元组来表示:<S, P, R, γ \gamma γ>
- S: 和马尔可夫过程中一样,是有限的状态集合
- P: 和马尔可夫过程中一样,是状态转移的概率
- R:是 reward 函数
- γ \gamma γ :折扣因子,范围在 0~1 之间
-
一个例子,学生马尔可夫奖励过程
1) Return
-
定义:我们定义 Return G t G_t Gt 为从时间 t 开始的折扣 reward 之和【The return G t G_t Gt is the total discounted reward from time-step t.】
-
当 γ \gamma γ 接近 0 的时候,将会更加“近视”,注重即时回报;当 γ \gamma γ 接近 1 的时候会更加“有远见”,会考虑长远的回报
-
为什么都要考虑折扣因子 γ \gamma γ:
- 削减 reward 从数学上来讲是非常方便的;
- 避免循环马尔可夫过程中出现无限奖励
- 未来的不确定性,模型并不能完全展现未来的不确定性
- 人类或者动物更倾向于即时奖励,而不是延迟奖励
- 有时候,当所有的序列都有终止的时候,可以使用 γ = 1 \gamma = 1 γ=1 的马尔可夫奖励过程
2) Value Function
-
定义:value function v(s) 给出了 状态 s 的长期 value【实际上就是,任意一个状态的 value 就是,从这个状态出发,直到重点所能获得的 return 的期望, 体现的是当前这个状态的好坏程度】
-
例子,根据上面例子中的马尔可夫奖励过程,假如我们要计算状态 C1(class 1)的 value,设定 γ = 1 2 \gamma = \frac{1}{2} γ=21 ,则有:
- 下面的例子中,我们仅仅选择了其中的四个不同的路径;实际上,这样的序列是无穷的,我们要做的就是进行采样,来近似地进行估算
- 上面的式子中注意区分 return G 和 状态值函数 v ,上图中多次出现 v 1 v_1 v1,但是实际上这里用 G 1 G_1 G1 可能会更容易理解一些;某一个状态的值 v,实际上是这个状态上所有 G 的数学期望;
-
从某一个状态出发到终止状态,因为有很多不同的序列,因此,就某一次 Return 而言是随机的,但是,这个状态的 value 并不是随机的,而是这些随机的 return 的数学期望;
-
下面举一个例子,对比不同折扣因子下,每个状态 value 的不同:【具体状态值的计算,看下一节 Bellman 等式】
3)Bellman Equation for MRPs 【贝尔曼等式】
-
Bellman 等式是强化学习中的基础 【非常重要】
-
Bellman 等式的基本思想是:使用迭代的思想,状态值函数(value function)可以分解为两部分:
- 即时奖励: R t + 1 R_{t+1} Rt+1
- 后面一个状态值与折扣因子之积: γ v ( S t + 1 ) \gamma v(S_{t+1}) γv(St+1)
-
Bellman 等式的推导过程:【其中 E 是数学期望,可以暂时不用考虑】
-
上面推导过程中倒数第二行到倒数第一行之间的过程,可以细化一下:
-
从上面的倒数第三行到倒数第二行,是因为 γ v ( S t + 1 ) \gamma v(S_{t+1}) γv(St+1) 本身就是一个标量(一个数字),所以可以直接加上期望符号
-
我们可以继续进行推导:
- 假设当前时间为 t,状态为 s,下一个时间 t+1 的状态为 s ′ s^{'} s′, P s s ′ P_{ss^{'}} Pss′ 表示从状态 s 转移到状态 s ′ s^{'} s′ 的概率 ,则有
-
举一个栗子:【当前的 γ = 1 \gamma = 1 γ=1】
- 这里的 R 可能让你疑惑,它代表的含义是:你处于这个状态 s,当你离开这个状态 s 的时候,无论你到达的下一个状态是是什么,都会获得这个即时奖励 R 【而在后面的马尔科夫决策过程中,你可以根据采取的不同的动作来赋予不同的即时奖励的值】
-
-
Bellman 等式的矩阵形式
-
我们可以使用矩阵来简化 Bellman 等式(Bellman equation): v = R + γ P v v = R + \gamma P v v=R+γPv
-
-
解 Bellman 方程,因为 Bellman 方程是线性的,所以我们可以进行下面的操作:
- 但是这种解法的时间复杂度是 O ( n 3 ) O(n^{3}) O(n3) ,所以当 n 比较大的时候,这个方法是不行的,仅仅适用于小的 MRP ;
- 对于大型的 MRP,可以使用的方法
- Dynamic programming
- Monte-Carlo evaluation
- Temporal-Difference learning
三、马尔科夫决策过程(Markov Decision Process)
马尔科夫决策过程(MDP)实际上是在马尔科夫奖励过程(MRP)的基础上加上决策(Decision);它是一个所有状态都满足马尔科夫性质的环境
1) 定义
-
一个 MDP 过程可以用一个五元组来表示:<S, A, P, R, γ \gamma γ >
- S: 有限状态集合
- A:有限动作(actions)集合
- P:状态转移概率矩阵 P s s ′ a = P [ S t + 1 = s ′ ∣ S t = t , A t = a ] P_{ss^{'}}^a = P[S_{t+1} = s^{'}|S_t = t, A_t = a] Pss′a=P[St+1=s′∣St=t,At=a]
- R:奖励函数, R s a = E [ R t + 1 ∣ S t = s , A t = a ] R_{s}^{a} = E[R_{t+1}|S_t = s, A_t = a] Rsa=E[Rt+1∣St=s,At=a]
- γ \gamma γ:折扣函数,范围在 0~1 之间
-
举个栗子:行动(action)就是下图中红色的部分
2)Policy
-
定义:Policy π \pi π 是在给定状态的情况下,各种行动(action)的分布
- 一个 Policy π \pi π 完全定义了一个智能体(agent)的表现
- MDP 的 policies 取决于当前的状态,而不是历史状态【我们并不关系当前我们已经获得了多少奖励,我们要的是,从当前状态开始,尽量获取最多的奖励】
-
给定一个 MDP <S, A, P, R, γ \gamma γ > 和一个 Policy π \pi π
-
状态序列 S 1 , S 2 , . . . S_1, S_2,... S1,S2,... 是一个马尔可夫过程 < S, P π P^{\pi} Pπ>
-
状态和奖励序列 S 1 , R 2 , S 2 , . . . S_1, R_2, S_2, ... S1,R2,S2,... 是一个马尔可夫奖励过程(MRP)<S, P π , R π , γ P^{\pi}, R^{\pi}, \gamma Pπ,Rπ,γ >,其中:
-
3) Value Function
-
定义:
state-value
:告诉我们,当我们遵从 Policy π \pi π ,我们所处的特定状态 s 的好坏程度action-value
:告诉我们,当我们遵从 Policy π \pi π ,我们在指定状态 s 采取行动 a 的好坏程度
-
举个栗子:
-
学生 MDP 的 state-value function
-
4)Bellman Expectation Equation
-
跟上面马尔可夫奖励过程的 Bellman 等式类似,我们可以进行类似的推导,使得 state-value 函数和 action-value 函数可以分解为即时奖励与折扣的下一个状态的值之和:
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})|S_t = s] vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s]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})|S_t = s, A_t = a] qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a]
- 这里 action-value 可能让人误解,这里指的是,当前状态 S t = s , A t = a S_t = s, A_t = a St=s,At=a ,通过采取行动 a,获得即时奖励 R t + 1 R_{t+1} Rt+1 ,这个即时奖励再加上在下一个状态 S t + 1 S_{t+1} St+1 采取行动 A t + 1 A_{t+1} At+1 的值【因为这里取的是期望,所以即时奖励加上的是:下个状态在采取不同行动的情况下的值的期望】
-
state-value
和action-value
之间的关系state-value 告诉我们处于一个状态的好坏程度;action-value 告诉我们处于一个状态并采取特定行动的好坏程度
-
state-value
: 实际上是在状态 s 下,采取不同行动的action-value
之和 -
action-value
: 是在状态 s 下,采取行动 a 获取的即时奖励与采取行动 a 到达不同的下个状态的概率和折扣的下个状态的值乘积的总和
-
-
将上面两个式子结合在一起,得到:
- 这里需要注意的是,下图表明的是,一个状态可以采取多种不同的行动;同时在一个状态采取同一个行动可以到达不同的下一个状态
-
举个栗子:【单独考虑红色的圆圈代表的状态】【实际上可以想象,每一个箭头,从一个状态到另一个状态中间都有一个隐形的 action 点】
5)Bellman Expectation Equation 的矩阵形式
-
结合上文讲到的在马尔可夫奖励过程中的 Bellman Equation 的简化以及求解,我们可以看到,类似的有:
v π = R π + γ P π v π v_{\pi} = R^{\pi} + \gamma P^{\pi}v_{\pi} vπ=Rπ+γPπvπ- 求解方法:
v π = ( 1 − γ P π ) − 1 R π v_{\pi} = (1-\gamma P^{\pi})^{-1}R^{\pi} vπ=(1−γPπ)−1Rπ
6)Optimal Value Function
-
定义:
- 一个状态的最佳状态值,是从这个状态出发,在所有策略中所能获取的最多的状态值函数
- 一个状态采取指定动作的最佳动作值函数,是从这个状态出发,采取指定行动,在所有策略中所能获得的最多的动作值函数【同一个状态下,不同行动的最佳动作值函数的对比可以帮助我们选择动作】
- 总的来说,optimal value function 确定了在一个 MDP 中可能的最好表现
- 当我们知道一个 MDP 的 optimal value function 的时候,我们说这个 MDP 是被 “solved”
-
举个例子:
- 下图分别是 optimal state-value function 和 optimal action-value function 的例子
-
Optimal Policy
-
定义:
如 果 对 于 任 意 的 s , 都 有 v π ( s ) > = v π ′ ( s ) , 则 有 π > = π ′ 如果对于任意的 s,都有 v_{\pi}(s) >= v_{\pi^{'}}(s),则有 \pi >= \pi^{'} 如果对于任意的s,都有vπ(s)>=vπ′(s),则有π>=π′ -
对于一个 MDP 来说:
- 总是存在一个最佳的 Policy π ∗ \pi_{*} π∗ 比其他的 Policy 更好或者至少一样好,即对于任意的 π \pi π,都有: π ∗ > = π \pi_* >= \pi π∗>=π 【最佳 Policy 可能是有多个的】
- 所有的最佳 policy 都能够达到最佳状态值函数: v π ∗ ( s ) = v ∗ ( s ) v_{\pi_{*}}(s) = v_{*}(s) vπ∗(s)=v∗(s)
- 所有的最佳 Policy 都能达到最佳动作值函数: q π ∗ ( s , a ) = q ∗ ( s , a ) q_{\pi_{*}}(s, a) = q_{*}(s,a) qπ∗(s,a)=q∗(s,a)
-
怎样找到一个最佳的 policy?通过最大化 q ∗ ( s , a ) q_{*} (s, a) q∗(s,a) ,我们可以找到最佳的 Policy:
- 对于任何一个 MDP 来说,都有一个确定的最佳 Policy
- 当我们知道 q ∗ ( s , a ) q_{*}(s, a) q∗(s,a) 的时候,我们就可以知道最佳 Policy
-
举个例子:【红色部分是我们的最佳 Policy】
-
7)Bellman Optimality Equation
-
Bellman Optimality Equation for v ∗ v_* v∗
-
观察我们可以采取的行动的 value,选择值最大的 action
-
-
Bellman Optimality Equation for Q ∗ Q^* Q∗
- 采取行动之后,我们可能处于的状态可能会有多个,这个是我们不能控制的,所以不能取最大的,这个是环境决定的
-
结合上面的两个式子,得到:
-
举个栗子:
8)解 Bellman Optimality Equation
- Bellman Optimality Equation 是非线性的,所以不能像之前线性的方程一样直接进行求解
- 一些迭代的方法:
- Value Iteration
- Policy Iteration
- Q-learning
- Sarsa
四、其他的一些拓展【可以自己找 资料看一下,不是重点】
- Infinite and continuous MDPs
- Partially observable MDPs
- Undiscounted, average reward MDPs