文章目录
马尔可夫过程和马尔可夫奖励过程是马尔可夫决策过程的简化版本。
全部可观测环境和部分可观测环境如何使用马尔科夫决策过程。
1 马尔可夫过程
1.1 马尔可夫性质
马尔可夫性质(Markov property) 是指一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态。
以离散随机过程为例,假设随机变量 𝑋0,𝑋1,⋯,𝑋𝑇构成一个随机过程。这些随机变量的所有可能取值的集合被称为状态空间(state space)。如果 𝑋𝑡+1 对于过去状态的条件概率分布仅是 𝑋𝑡 的一个函数,则
p
(
X
t
+
1
=
x
t
+
1
∣
X
0
:
t
=
x
0
:
t
)
=
p
(
X
t
+
1
=
x
t
+
1
∣
X
t
=
x
t
)
p\left(X_{t+1}=x_{t+1} \mid X_{0:t}=x_{0: t}\right)=p\left(X_{t+1}=x_{t+1} \mid X_{t}=x_{t}\right)
p(Xt+1=xt+1∣X0:t=x0:t)=p(Xt+1=xt+1∣Xt=xt) 其中,
X
0
:
t
X_{0:t}
X0:t 表示变量集合
X
0
,
X
1
,
⋯
,
X
t
X_{0},X_{1},⋯,X_{t}
X0,X1,⋯,Xt,
X
0
:
t
X_{0:t}
X0:t 为在状态空间中的状态序列
x
0
,
x
1
,
⋯
,
x
t
。
x_{0},x_{1},⋯,x_{t。}
x0,x1,⋯,xt。马尔可夫性质也可以描述为给定当前状态时,将来的状态与过去状态是条件独立的。
1.2 马尔可夫链
状态转移矩阵
1.3 马尔可夫过程的例子
2 马尔可夫奖励过程
马尔可夫奖励过程(Markov reward process, MRP) 是马尔可夫链加上奖励函数。
2.1 回报与价值函数
范围(horizon) 是指一个回合的长度(每个回合最大的时间步数),它是由有限个步数决定的。
回报(return) 可以定义为奖励的逐步叠加,假设时刻
t
t
t后的奖励序列为
r
t
+
1
,
r
t
+
2
,
r
t
+
3
,
⋯
r_{t+1},r_{t+2},r_{t+3},\cdots
rt+1,rt+2,rt+3,⋯,则折扣回报为
G
t
=
r
t
+
1
+
γ
r
t
+
2
+
γ
2
r
t
+
3
+
γ
3
r
t
+
4
+
…
+
γ
T
−
t
−
1
r
T
G_{t}=r_{t+1}+\gamma r_{t+2}+\gamma^{2} r_{t+3}+\gamma^{3} r_{t+4}+\ldots+\gamma^{T-t-1} r_{T}
Gt=rt+1+γrt+2+γ2rt+3+γ3rt+4+…+γT−t−1rT 其中,
T
T
T是最终时刻,
γ
\gamma
γ 是折扣因子,越往后得到的奖励,折扣越多。这说明我们更希望得到现有的奖励,对未来的奖励要打折扣。
类似于经济学中PV和FV的计算,需要计算一个折现的系数。
状态的价值了,就是状态价值函数(state-value function)。
状态价值函数被定义成回报的期望,即
V
t
(
s
)
=
E
[
G
t
∣
s
t
=
s
]
=
E
[
r
t
+
1
+
γ
r
t
+
2
+
γ
2
r
t
+
3
+
…
+
γ
T
−
t
−
1
r
T
∣
s
t
=
s
]
\begin{aligned} V^{t}(s) &=\mathbb{E}\left[G_{t} \mid s_{t}=s\right] \\ &=\mathbb{E}\left[r_{t+1}+\gamma r_{t+2}+\gamma^{2} r_{t+3}+\ldots+\gamma^{T-t-1} r_{T} \mid s_{t}=s\right] \end{aligned}
Vt(s)=E[Gt∣st=s]=E[rt+1+γrt+2+γ2rt+3+…+γT−t−1rT∣st=s] 其中,
G
t
G_t
Gt 是之前定义的折扣回报(discounted return)。
就是进入某一个状态后,有多大的价值。
统计某一状态一系列轨迹的价值,取平均值。通过蒙特卡洛采样的方法计算某一状态的价值。
2.2 贝尔曼方程
贝尔曼方程(Bellman equation): V ( s ) = R ( s ) ⏟ 即时奖励 + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) ⏟ 未来奖励的折扣总和 V(s)=\underbrace{R(s)}_{\text {即时奖励}}+\underbrace{\gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s\right) V\left(s^{\prime}\right)}_{\text {未来奖励的折扣总和}} V(s)=即时奖励 R(s)+未来奖励的折扣总和 γs′∈S∑p(s′∣s)V(s′) 其中,
- s ′ s^{\prime} s′ 可以看成未来的所有状态,
- p ( s ′ ∣ s ) p\left(s^{\prime} \mid s\right) p(s′∣s) 是指从当前状态转移到未来状态的概率。
- V ( s ′ ) V\left(s^{\prime}\right) V(s′) 代表的是未来某一个状态的价值。我们从当前状态开始,有一定的概率去到未来的所有状态,所以我们要把 p ( s ′ ∣ s ) p\left(s^{\prime} \mid s\right) p(s′∣s) 写上去。我们得到了未来状态后,乘一个 γ \gamma γ,这样就可以把未来的奖励打折扣。
- γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) \gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s\right) V\left(s^{\prime}\right) γ∑s′∈Sp(s′∣s)V(s′) 可以看成未来奖励的折扣总和(discounted sum of future reward)。
贝尔曼方程定义了当前状态与未来状态之间的关系。未来奖励的折扣总和加上即时奖励,就组成了贝尔曼方程。
2.2.1 贝尔曼方程的递归性质
贝尔曼方程的递归性质意味着状态 s s s 的值函数 V ( s ) V(s) V(s) 可以通过其直接后续状态的值函数 V ( s ′ ) V(s^{\prime}) V(s′) 来定义。这种递归定义允许我们通过迭代方法来求解最优值函数,即通过反复更新值函数直到收敛。
2.2.2 使用贝尔曼方程的步骤
- 初始化值函数:选择初始值函数 V ( s ) V(s) V(s),通常可以初始化为任意值(例如全零)。
- 迭代更新:使用贝尔曼方程反复更新值函数,直到值函数的变化足够小(即达到收敛)。
V ( s ) ← R ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) V(s) \leftarrow R(s) + \gamma \sum_{s^{\prime} \in S} p\left(s^{\prime} \mid s\right) V\left(s^{\prime}\right) V(s)←R(s)+γs′∈S∑p(s′∣s)V(s′) - 策略改进:一旦值函数收敛,可以基于值函数推导出最优策略。
2.2.3 贝尔曼方程的应用
贝尔曼方程在强化学习和动态规划中有广泛应用:
- 值迭代(Value Iteration):一种基于贝尔曼方程的迭代方法,用于求解最优值函数和最优策略。
- 策略迭代(Policy Iteration):结合策略评估和策略改进,通过贝尔曼方程进行策略评估。
- Q学习(Q-Learning):强化学习算法,通过学习状态-动作值函数(Q值)来找到最优策略,同样基于贝尔曼方程的思想。
总结来说,贝尔曼方程提供了一种将即时奖励和未来奖励结合起来的方法,通过递归的方式定义状态的价值,从而在动态规划和强化学习中用于求解最优策略。
贝尔曼方程在矩阵形式下,可以更紧凑地表示和计算。矩阵形式通常用于线性代数工具处理和简化计算,尤其是在状态空间较大时显得更为有效。
2.2.4 贝尔曼方程的矩阵形式
假设我们有一个马尔可夫决策过程(MDP),其状态集合为 S S S,状态数量为 n n n。定义以下向量和矩阵:
-
值函数向量 V \mathbf{V} V:
V = [ V ( s 1 ) V ( s 2 ) ⋮ V ( s n ) ] \mathbf{V} = \begin{bmatrix} V(s_1) \\ V(s_2) \\ \vdots \\ V(s_n) \end{bmatrix} V= V(s1)V(s2)⋮V(sn)
其中 $ V(s_i) $ 表示状态 $ s_i $ 的值函数。 -
即时奖励向量 R \mathbf{R} R:
R = [ R ( s 1 ) R ( s 2 ) ⋮ R ( s n ) ] \mathbf{R} = \begin{bmatrix} R(s_1) \\ R(s_2) \\ \vdots \\ R(s_n) \end{bmatrix} R= R(s1)R(s2)⋮R(sn)
其中 R ( s i ) R(s_i) R(si) 表示在状态 s i s_i si 时的即时奖励。 -
状态转移概率矩阵 P \mathbf{P} P:
P = [ p ( s 1 ∣ s 1 ) p ( s 2 ∣ s 1 ) ⋯ p ( s n ∣ s 1 ) p ( s 1 ∣ s 2 ) p ( s 2 ∣ s 2 ) ⋯ p ( s n ∣ s 2 ) ⋮ ⋮ ⋱ ⋮ p ( s 1 ∣ s n ) p ( s 2 ∣ s n ) ⋯ p ( s n ∣ s n ) ] \mathbf{P} = \begin{bmatrix} p(s_1 \mid s_1) & p(s_2 \mid s_1) & \cdots & p(s_n \mid s_1) \\ p(s_1 \mid s_2) & p(s_2 \mid s_2) & \cdots & p(s_n \mid s_2) \\ \vdots & \vdots & \ddots & \vdots \\ p(s_1 \mid s_n) & p(s_2 \mid s_n) & \cdots & p(s_n \mid s_n) \end{bmatrix} P= p(s1∣s1)p(s1∣s2)⋮p(s1∣sn)p(s2∣s1)p(s2∣s2)⋮p(s2∣sn)⋯⋯⋱⋯p(sn∣s1)p(sn∣s2)⋮p(sn∣sn)
其中 p ( s j ∣ s i ) p(s_j \mid s_i) p(sj∣si) 表示从状态 s i s_i si 转移到状态 s j s_j sj 的概率。 -
折扣因子 γ \gamma γ:一个标量。
2.2.5 矩阵形式的贝尔曼方程
贝尔曼方程的矩阵形式可以写成:
V = R + γ P V \mathbf{V} = \mathbf{R} + \gamma \mathbf{P} \mathbf{V} V=R+γPV
这个方程表示的是,对于每个状态 s s s,其值函数是即时奖励和未来折扣奖励的总和。
2.2.6 解矩阵形式的贝尔曼方程
为了解这个矩阵方程,我们可以重新排列并求解 V \mathbf{V} V:
V
−
γ
P
V
=
R
\mathbf{V} - \gamma \mathbf{P} \mathbf{V} = \mathbf{R}
V−γPV=R
(
I
−
γ
P
)
V
=
R
(\mathbf{I} - \gamma \mathbf{P}) \mathbf{V} = \mathbf{R}
(I−γP)V=R
其中, I \mathbf{I} I 是一个 n × n n \times n n×n 的单位矩阵。
于是,可以得到值函数向量 V \mathbf{V} V 为:
V = ( I − γ P ) − 1 R \mathbf{V} = (\mathbf{I} - \gamma \mathbf{P})^{-1} \mathbf{R} V=(I−γP)−1R
2.2.7 计算步骤
- 构建状态转移概率矩阵 P \mathbf{P} P:根据系统的转移概率定义。
- 构建即时奖励向量 R \mathbf{R} R:根据各状态的即时奖励定义。
- 选择折扣因子 γ \gamma γ:通常在 0 0 0 到 1 1 1 之间。
- 计算矩阵 I − γ P \mathbf{I} - \gamma \mathbf{P} I−γP:其中 I \mathbf{I} I 是单位矩阵。
- 求逆矩阵 ( I − γ P ) − 1 (\mathbf{I} - \gamma \mathbf{P})^{-1} (I−γP)−1。
- 计算值函数向量 V \mathbf{V} V:通过矩阵乘法 V = ( I − γ P ) − 1 R \mathbf{V} = (\mathbf{I} - \gamma \mathbf{P})^{-1} \mathbf{R} V=(I−γP)−1R。
2.2.8 示例
假设有一个简单的MDP,状态集合为 { s 1 , s 2 } \{s_1, s_2\} {s1,s2},转移概率矩阵和奖励向量如下:
P
=
[
0.7
0.3
0.4
0.6
]
\mathbf{P} = \begin{bmatrix} 0.7 & 0.3 \\ 0.4 & 0.6 \end{bmatrix}
P=[0.70.40.30.6]
R
=
[
5
10
]
\mathbf{R} = \begin{bmatrix} 5 \\ 10 \end{bmatrix}
R=[510]
折扣因子
γ
=
0.9
\gamma = 0.9
γ=0.9。
- 计算 I − γ P \mathbf{I} - \gamma \mathbf{P} I−γP:
I − γ P = [ 1 0 0 1 ] − 0.9 [ 0.7 0.3 0.4 0.6 ] = [ 1 − 0.63 − 0.27 − 0.36 1 − 0.54 ] = [ 0.37 − 0.27 − 0.36 0.46 ] \mathbf{I} - \gamma \mathbf{P} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} - 0.9 \begin{bmatrix} 0.7 & 0.3 \\ 0.4 & 0.6 \end{bmatrix} = \begin{bmatrix} 1 - 0.63 & -0.27 \\ -0.36 & 1 - 0.54 \end{bmatrix} = \begin{bmatrix} 0.37 & -0.27 \\ -0.36 & 0.46 \end{bmatrix} I−γP=[1001]−0.9[0.70.40.30.6]=[1−0.63−0.36−0.271−0.54]=[0.37−0.36−0.270.46]
- 计算逆矩阵 ( I − γ P ) − 1 (\mathbf{I} - \gamma \mathbf{P})^{-1} (I−γP)−1:
( I − γ P ) − 1 = 1 0.37 × 0.46 − ( − 0.27 ) × ( − 0.36 ) [ 0.46 0.27 0.36 0.37 ] = 1 0.1702 − 0.0972 [ 0.46 0.27 0.36 0.37 ] = 1 0.073 [ 0.46 0.27 0.36 0.37 ] (\mathbf{I} - \gamma \mathbf{P})^{-1} = \frac{1}{0.37 \times 0.46 - (-0.27) \times (-0.36)} \begin{bmatrix} 0.46 & 0.27 \\ 0.36 & 0.37 \end{bmatrix} = \frac{1}{0.1702 - 0.0972} \begin{bmatrix} 0.46 & 0.27 \\ 0.36 & 0.37 \end{bmatrix} = \frac{1}{0.073} \begin{bmatrix} 0.46 & 0.27 \\ 0.36 & 0.37 \end{bmatrix} (I−γP)−1=0.37×0.46−(−0.27)×(−0.36)1[0.460.360.270.37]=0.1702−0.09721[0.460.360.270.37]=0.0731[0.460.360.270.37]
- 计算值函数向量 V \mathbf{V} V:
V = ( I − γ P ) − 1 R = 1 0.073 [ 0.46 0.27 0.36 0.37 ] [ 5 10 ] = 1 0.073 [ 0.46 × 5 + 0.27 × 10 0.36 × 5 + 0.37 × 10 ] = 1 0.073 [ 6.05 6.20 ] \mathbf{V} = (\mathbf{I} - \gamma \mathbf{P})^{-1} \mathbf{R} = \frac{1}{0.073} \begin{bmatrix} 0.46 & 0.27 \\ 0.36 & 0.37 \end{bmatrix} \begin{bmatrix} 5 \\ 10 \end{bmatrix} = \frac{1}{0.073} \begin{bmatrix} 0.46 \times 5 + 0.27 \times 10 \\ 0.36 \times 5 + 0.37 \times 10 \end{bmatrix} = \frac{1}{0.073} \begin{bmatrix} 6.05 \\ 6.20 \end{bmatrix} V=(I−γP)−1R=0.0731[0.460.360.270.37][510]=0.0731[0.46×5+0.27×100.36×5+0.37×10]=0.0731[6.056.20]
V ≈ [ 82.88 84.93 ] \mathbf{V} \approx \begin{bmatrix} 82.88 \\ 84.93 \end{bmatrix} V≈[82.8884.93]
这个计算说明了如何使用矩阵形式的贝尔曼方程来求解MDP的值函数。
通过这种矩阵形式的表示,可以有效地利用线性代数工具来求解复杂的动态规划问题和马尔可夫决策过程中的值函数。
但是这个矩阵求逆的过程的复杂度是
o
(
N
3
)
o(N^3)
o(N3)。所以当状态非常多的时候,比如从10个状态到1000个状态,或者到100万个状态,当我们有100万个状态的时候,状态转移矩阵就会是一个100万乘100万的矩阵,对这样一个大矩阵求逆是非常困难的。所以这种通过解析解去求解的方法只适用于很小量的马尔可夫奖励过程。
2.3 迭代算法计算奖励过程价值
迭代算法包括:
动态规划的方法
蒙特卡洛的方法(通过采样的办法计算它)
时序差分学习(TD learning)
蒙特卡洛方法就是当得到一个马尔可夫奖励过程后,我们可以从某个状态开始,把小船放到状态转移矩阵里面,让它“随波逐流”,这样就会产生一个轨迹。产生一个轨迹之后,就会得到一个奖励,那么直接把折扣的奖励即回报 g g g 算出来。算出来之后将它积累起来,得到回报 G t G_t Gt。 当积累了一定数量的轨迹之后,我们直接用 G t G_t Gt除以轨迹数量,就会得到某个状态的价值。
- i ← 0 , G t ← 0 i \leftarrow 0, G_t \leftarrow 0 i←0,Gt←0
- 当
i
≠
N
i \ne N
i=N时,执行:
3. 生成一个回合的轨迹,从状态 s s s和时刻 t t t开始
4. 使用生成的轨迹计算回报 g = ∑ i = t H − 1 γ i − t r i g = \sum_{i=t}^{H-1} \gamma^{i-t} r_i g=∑i=tH−1γi−tri
5. G t ← G t + g , i ← i + 1 G_t \leftarrow G_t + g, i \leftarrow i + 1 Gt←Gt+g,i←i+1 - 结束循环
-
V
t
(
s
)
←
G
t
/
N
V_t(s) \leftarrow G_t / N
Vt(s)←Gt/N
图 计算马尔可夫奖励过程价值的蒙特卡洛方法
也可以用动态规划的方法,一直迭代贝尔曼方程,直到价值函数收敛,我们就可以得到某个状态的价值。我们通过自举(bootstrapping) 的方法不停地迭代贝尔曼方程,当最后更新的状态与我们上一个状态的区别并不大的时候,更新就可以停止,我们就可以输出最新的 V ′ ( s ) V^′(s) V′(s) 作为它当前的状态的价值。这里就是把贝尔曼方程变成一个贝尔曼更新(Bellman update),这样就可以得到状态的价值。
动态规划的方法基于后继状态价值的估计来更新现在状态价值的估计(如图所示算法中的第 3 行用 V ′ V^′ V′来更新 V V V )。根据其他估算值来更新估算值的思想,我们称其为自举。
- 对于所有状态 s ∈ S s \in S s∈S, V ′ ( s ) ← 0 V'(s) \leftarrow 0 V′(s)←0, V ( s ) ← ∞ V(s) \leftarrow \infty V(s)←∞
- 当
∥
V
−
V
′
∥
>
ϵ
\|V - V'\| > \epsilon
∥V−V′∥>ϵ 时执行:
3. V ← V ′ V \leftarrow V' V←V′
4. 对于所有状态 s ∈ S s \in S s∈S, V ′ ( s ) = R ( s ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s ) V ( s ′ ) V'(s) = R(s) + \gamma \sum_{s' \in S} P(s' | s) V(s') V′(s)=R(s)+γ∑s′∈SP(s′∣s)V(s′) - 结束循环
- 返回
V
′
(
s
)
V'(s)
V′(s) 对于所有状态
s
∈
S
s \in S
s∈S
图 计算马尔可夫奖励过程价值的动态规划算法
2.4 马尔可夫奖励过程的例子
3 马尔可夫决策过程
相对于马尔可夫奖励过程,马尔可夫决策过程多了决策(决策是指动作),其他的定义与马尔可夫奖励过程的是类似的。此外,状态转移也多了一个条件,变成了
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=s′∣st=s,at=a)。未来的状态不仅依赖于当前的状态,也依赖于在当前状态智能体采取的动作。马尔可夫决策过程满足条件:
p
(
s
t
+
1
∣
s
t
,
a
t
)
=
p
(
s
t
+
1
∣
h
t
,
a
t
)
p\left(s_{t+1} \mid s_{t}, a_{t}\right) =p\left(s_{t+1} \mid h_{t}, a_{t}\right)
p(st+1∣st,at)=p(st+1∣ht,at)
对于奖励函数,它也多了一个当前的动作,变成了
R
(
s
t
=
s
,
a
t
=
a
)
=
E
[
r
t
∣
s
t
=
s
,
a
t
=
a
]
R(s_{t}=s,a_{t}=a)=\mathbb{E}\left[r_{t} \mid s_{t}=s, a_{t}=a\right]
R(st=s,at=a)=E[rt∣st=s,at=a]。当前的状态以及采取的动作会决定智能体在当前可能得到的奖励多少。
3.1 马尔可夫决策过程中的策略
策略定义了在某一个状态应该采取什么样的动作。知道当前状态后,我们可以把当前状态代入策略函数来得到一个概率,即
π
(
a
∣
s
)
=
p
(
a
t
=
a
∣
s
t
=
s
)
\pi(a \mid s)=p\left(a_{t}=a \mid s_{t}=s\right)
π(a∣s)=p(at=a∣st=s)
已知马尔可夫决策过程和策略
π
\pi
π,我们可以把马尔可夫决策过程转换成马尔可夫奖励过程。在马尔可夫决策过程里面,状态转移函数
p
(
s
′
∣
s
,
a
)
p(s^′\mid s,a)
p(s′∣s,a) 基于它当前的状态以及它当前的动作。因为我们现在已知策略函数,也就是已知在每一个状态下,可能采取的动作的概率,所以我们就可以直接把动作进行加和,去掉 𝑎,这样我们就可以得到对于马尔可夫奖励过程的转移,这里就没有动作,即
P
π
(
s
′
∣
s
)
=
∑
a
∈
A
π
(
a
∣
s
)
p
(
s
′
∣
s
,
a
)
P_{\pi}\left(s^{\prime} \mid s\right)=\sum_{a \in A} \pi(a \mid s) p\left(s^{\prime} \mid s, a\right)
Pπ(s′∣s)=a∈A∑π(a∣s)p(s′∣s,a)
对于奖励函数,我们也可以把动作去掉,这样就会得到类似于马尔可夫奖励过程的奖励函数,即 r π ( s ) = ∑ a ∈ A π ( a ∣ s ) R ( s , a ) r_{\pi}(s)=\sum_{a \in A} \pi(a \mid s) R(s, a) rπ(s)=a∈A∑π(a∣s)R(s,a)
3.2 决策过程、过程、奖励过程的区别
3.3 马尔可夫决策过程中的价值函数
3.4 贝尔曼期望方程
3.5 备份图
备份(backup) 的概念。备份类似于自举之间的迭代关系,对于某一个状态,它的当前价值是与它的未来价值线性相关的。
3.6 策略评估
迭代
收敛
3.7 预测与控制
预测(prediction)和控制(control)是马尔可夫决策过程里面的核心问题。
预测(评估一个给定的策略)的输入是马尔可夫决策过程
<
S
,
A
,
P
,
R
,
γ
>
\lt S,A,P,R,\gamma \gt
<S,A,P,R,γ> 和策略
π
\pi
π ,输出是价值函数
V
π
V_{\pi}
Vπ 。预测是指给定一个马尔可夫决策过程以及一个策略
π
\pi
π,计算它的价值函数,也就是计算每个状态的价值。
控制(搜索最佳策略)的输入是马尔可夫决策过程
<
S
,
A
,
P
,
R
,
γ
>
\lt S,A,P,R,\gamma \gt
<S,A,P,R,γ> 输出是最佳价值函数(optimal value function)
V
∗
V^*
V∗ 和最佳策略(optimal policy)
π
∗
\pi^*
π∗ 。控制就是我们去寻找一个最佳的策略,然后同时输出它的最佳价值函数以及最佳策略。
在马尔可夫决策过程里面,预测和控制都可以通过动态规划解决。要强调的是,这两者的区别就在于,预测问题是给定一个策略,我们要确定它的价值函数是多少。而控制问题是在没有策略的前提下,我们要确定最佳的价值函数以及对应的决策方案。实际上,这两者是递进的关系,在强化学习中,我们通过解决预测问题,进而解决控制问题。
3.8 动态规划
动态规划(dynamic programming,DP) 适合解决满足 最优子结构(optimal substructure) 和 重叠子问题(overlapping subproblem) 两个性质的问题。最优子结构意味着,问题可以拆分成一个个的小问题,通过解决这些小问题,我们能够组合小问题的答案,得到原问题的答案,即最优的解。重叠子问题意味着,子问题出现多次,并且子问题的解决方案能够被重复使用,我们可以保存子问题的首次计算结果,在再次需要时直接使用。
3.9 马尔可夫决策过程中的策略评估
策略评估就是给定马尔可夫决策过程和策略,评估我们可以获得多少价值,即对于当前策略,我们可以得到多大的价值。我们可以直接把贝尔曼期望备份(Bellman expectation backup) ,变成迭代的过程,反复迭代直到收敛。这个迭代过程可以看作同步备份(synchronous backup) 的过程。
为什么马尔可夫过程是收敛的?
3.10 马尔可夫决策过程控制
最佳价值函数:
V
∗
(
s
)
=
m
a
x
π
V
π
(
s
)
V^{*}(s) = \underset{\pi}{max}~V_{\pi}(s)
V∗(s)=πmax Vπ(s)
我们搜索一种策略
π
\pi
π让每个状态的价值最大。
V
∗
V^{*}
V∗就是到达每一个状态,它的值最大化情况。在这种最大化的情况中,我们得到的策略就是最佳策略,即
π
∗
(
s
)
=
arg
max
π
V
π
(
s
)
\pi^{*}(s) = \underset{\pi}{\arg \max}~V_{\pi}{(s)}
π∗(s)=πargmax Vπ(s)
最简单的策略搜索方法就是穷举。假设状态和动作都是有限的,那么每个状态我们可以采取
A
A
A 种动作的策略,总共就是
∣
A
∣
∣
S
∣
|A|^{|S|}
∣A∣∣S∣ 个可能的策略。我们可以把策略穷举一遍,算出每种策略的价值函数,对比一下就可以得到最佳策略。
但是穷举非常没有效率,所以我们要采取其他方法。搜索最佳策略有两种常用的方法:策略迭代和价值迭代。
3.11 策略迭代
策略迭代由两个步骤组成:策略评估和策略改进(policy improvement)。
第一步策略评估,优化策略
π
\pi
π,得到一个策略,给定当前的策略函数来估计状态价值函数
第二步策略改进,得到状态价值函数后,进一步推算出它的Q函数。得到Q函数后,对Q函数进行最大化,通过在Q函数做一个贪心的搜索来进一步改进策略。
这两个步骤一直迭代进行。
如何进行策略改进。
Q表格。
贝尔曼最优方程
贝尔曼最优方程表明:最佳策略下的一个状态的价值必须等于在这个状态下采取最好动作得到的回报的期望。 当马尔可夫决策过程满足贝尔曼最优方程的时候,整个马尔可夫决策过程已经达到最佳的状态。
3.12 价值迭代
4 附
4.1 为什么马尔可夫过程是收敛的
马尔可夫过程(Markov Process)的收敛性是一个重要的性质,尤其在马尔可夫决策过程(MDP)和强化学习中。我们通常讨论的是值迭代和策略迭代等方法的收敛性,它们依赖于一些基本的数学性质。以下是一些关键原因和条件:
4.1.1 迭代方法的收敛性
4.1.1.1 值迭代法的收敛性
值迭代法基于贝尔曼方程,通过不断更新值函数来找到最优值函数。值迭代法的收敛性主要依赖于以下几点:
-
压缩映射定理(Banach Fixed Point Theorem):
贝尔曼最优算子 T T T 是一个压缩映射。压缩映射是指,对于任何两个值函数 V V V 和 V ′ V' V′,存在一个常数 0 ≤ γ < 1 0 \leq \gamma < 1 0≤γ<1,使得:
∥ T ( V ) − T ( V ′ ) ∥ ≤ γ ∥ V − V ′ ∥ \|T(V) - T(V')\| \leq \gamma \|V - V'\| ∥T(V)−T(V′)∥≤γ∥V−V′∥
这里的 ∥ ⋅ ∥ \|\cdot\| ∥⋅∥ 通常指的是某种范数(例如最大范数)。由于压缩映射定理,贝尔曼最优算子 T T T 有一个唯一的不动点,并且值迭代法通过反复应用 T T T 将值函数 V V V 收敛到这个不动点,即最优值函数 V ∗ V^* V∗。
-
折扣因子 γ \gamma γ:
折扣因子 γ \gamma γ 确保未来的回报不会无限累积,使得每一步更新时的值函数变化逐渐减小,最终收敛到一个稳定值。
4.1.1.2 策略迭代法的收敛性
策略迭代法通过交替进行策略评估和策略改进来找到最优策略。策略迭代法的收敛性基于以下几点:
-
策略评估的收敛性:
对于给定的策略 π \pi π,策略评估通过求解贝尔曼方程来计算该策略的值函数。这个过程是线性方程组的求解问题,通常在有限步内收敛。 -
策略改进的收敛性:
策略改进通过选择在当前策略值函数下能带来最大收益的动作来更新策略。由于每次策略改进都能严格提升(或至少不降低)策略的值函数,策略的值函数是单调递增的,且由于策略空间是有限的,这一过程最终收敛到最优策略。
4.1.2 马尔可夫链的收敛性
在马尔可夫链的情况下,收敛性通常讨论的是状态分布的收敛性。
-
遍历性(Ergodicity):
一个马尔可夫链是遍历的,如果从任何初始状态开始,随着时间的推移,状态分布会收敛到一个唯一的稳态分布。遍历性确保了马尔可夫链不会陷入某些状态无法离开,而是能够遍历整个状态空间。 -
不可约性和周期性:
一个不可约且非周期性的马尔可夫链保证了每个状态都可以在有限步内被访问到,并且不会陷入周期性循环。这些性质也有助于状态分布的收敛性。
4.1.3 贝尔曼方程的收敛性
贝尔曼方程的收敛性也依赖于以下几个关键因素:
-
契约映射(Contraction Mapping):
贝尔曼算子 T T T 是一个契约映射,保证了值函数的序列 { V k } \{V_k\} {Vk} 的极限存在且唯一,即 lim k → ∞ V k = V ∗ \lim_{k \to \infty} V_k = V^* limk→∞Vk=V∗。 -
初始值和更新规则:
选择适当的初始值函数 V 0 V_0 V0 和合理的更新规则,可以确保值函数序列 { V k } \{V_k\} {Vk} 按预期方式收敛。
4.1.4 实际应用中的收敛
在实际应用中,以下因素也影响马尔可夫过程的收敛性:
-
有限状态和动作空间:
大多数情况下,状态空间和动作空间是有限的,这样的系统更容易分析和验证其收敛性。 -
计算资源和精度:
值迭代和策略迭代等方法的实现中,计算资源和精度也影响算法的实际收敛速度和效果。
4.1.5 总结
马尔可夫过程的收敛性依赖于数学上的一些基本性质,如压缩映射、折扣因子、策略空间的有限性以及马尔可夫链的遍历性和不可约性。这些性质确保了值迭代和策略迭代等方法能够在有限步内收敛到最优解,保证了马尔可夫决策过程在实际应用中的有效性。