动态规划
在动态规划设置中,智能体完全了解 MDP,因此智能体不需要互动就能学习到最优策略;
为了获得策略
π
π
对应的状态值函数v π v π ,我们只需求解
v π
v
π
的贝尔曼预期方程对应的方程组即可;虽然可以通过分析方式求解方程组,但是我们将重点讲解以下三种迭代方法。
有这之前,先来看一下贝尔曼方程; 贝尔曼预期方程: 动作值函数
q π ( s , a ) = ∑ s ′ ∈ S , r ∈ R p ( s ′ , r | s , a ) ∗ ( r + g ∗ v π ( s ′ ) )
q
π
(
s
,
a
)
=
∑
s
′
∈
S
,
r
∈
R
p
(
s
′
,
r
|
s
,
a
)
∗
(
r
+
g
∗
v
π
(
s
′
)
)
状态值函数
v π ( s ) = ∑ a ∈ A ( s ) π ( s ) ∗ q π ( s , a )
v
π
(
s
)
=
∑
a
∈
A
(
s
)
π
(
s
)
∗
q
π
(
s
,
a
)
贝尔曼最优性方程: 动作值函数
q π ( s , a ) = ∑ s ′ ∈ S , r ∈ R p ( s ′ , r | s , a ) ∗ ( r + g ∗ v π ( s ′ ) )
q
π
(
s
,
a
)
=
∑
s
′
∈
S
,
r
∈
R
p
(
s
′
,
r
|
s
,
a
)
∗
(
r
+
g
∗
v
π
(
s
′
)
)
状态值函数
v π ( s ) = m a x a ∈ A ( s ) Q ( s , a )
v
π
(
s
)
=
m
a
x
a
∈
A
(
s
)
Q
(
s
,
a
)
最优策略:
π ′ = a r g m a x a ∈ A ( s ) Q ( s , a )
π
′
=
a
r
g
m
a
x
a
∈
A
(
s
)
Q
(
s
,
a
)
1、策略迭代
策略迭代是一种可以在动态规划设置中解决 MDP 的算法。它包含一系列的策略评估和改进步骤,肯定会收敛于最优策略(对应任意有限 MDP)。
迭代策略评估 是在动态规划设置中用到的算法,用于估算策略
π
π
对应的状态值函数 v π v π 。在此方法中,我们将向值函数估值中应用贝尔曼更新,直到估值的变化非常小。
状态值的计算公式(r:奖赏,g:折扣率):
v π ( s ) = ∑ a ∈ A ( s ) π ( s ) ∗ ∑ s ′ ∈ S , r ∈ R p ( s ′ , r | s , a ) ∗ ( r + g ∗ v π ( s ′ ) )
v
π
(
s
)
=
∑
a
∈
A
(
s
)
π
(
s
)
∗
∑
s
′
∈
S
,
r
∈
R
p
(
s
′
,
r
|
s
,
a
)
∗
(
r
+
g
∗
v
π
(
s
′
)
)
动作值的估值 在动态规划设置中,可以使用以下方程从状态值函数
v π
v
π
快速获得动作值函数
q π
q
π
:
q π ( s , a ) = ∑ s ′ ∈ S , r ∈ R p ( s ′ , r | s , a ) ∗ ( r + g ∗ v π ( s ′ ) )
q
π
(
s
,
a
)
=
∑
s
′
∈
S
,
r
∈
R
p
(
s
′
,
r
|
s
,
a
)
∗
(
r
+
g
∗
v
π
(
s
′
)
)
策略改进: 对应每个状态
s ∈ S
s
∈
S
,只需选择最大化
Q ( s , a )
Q
(
s
,
a
)
的动作
a
a
。即:
π ′ = a r g m a x a ∈ A ( s ) Q ( s , a ) π ′ = a r g m a x a ∈ A ( s ) Q ( s , a )
2、截断策略迭代
截断策略迭代是在动态规划设置中用来估算策略
π
π
对应的状态值函数v π v π 的算法。对于此方法,在对状态空间执行固定次数的遍历后,停止评估步骤。我们将评估步骤中的此方法称为截断策略评估。
动作值评估:
q π ( s , a ) = ∑ s ′ ∈ S , r ∈ R p ( s ′ , r | s , a ) ∗ ( r + g ∗ v π ( s ′ ) )
q
π
(
s
,
a
)
=
∑
s
′
∈
S
,
r
∈
R
p
(
s
′
,
r
|
s
,
a
)
∗
(
r
+
g
∗
v
π
(
s
′
)
)
策略改进:
π ′ = a r g m a x a ∈ A ( s ) Q ( s , a )
π
′
=
a
r
g
m
a
x
a
∈
A
(
s
)
Q
(
s
,
a
)
策略评估:
v π ( s ) = ∑ a ∈ A ( s ) π ( s ) ∗ q π ( s , a )
v
π
(
s
)
=
∑
a
∈
A
(
s
)
π
(
s
)
∗
q
π
(
s
,
a
)
3、值迭代
值迭代是在动态规划设置中用来估算策略
π
π
对应的状态值函数v π v π 的算法。对于此方法,每次对状态空间进行遍历时,都同时进行策略评估和策略改进。
动作值评估:
q π ( s , a ) = ∑ s ′ ∈ S , r ∈ R p ( s ′ , r | s , a ) ∗ ( r + g ∗ v π ( s ′ ) )
q
π
(
s
,
a
)
=
∑
s
′
∈
S
,
r
∈
R
p
(
s
′
,
r
|
s
,
a
)
∗
(
r
+
g
∗
v
π
(
s
′
)
)
策略评估:
v π ( s ) = m a x a ∈ A ( s ) Q ( s , a )
v
π
(
s
)
=
m
a
x
a
∈
A
(
s
)
Q
(
s
,
a
)
策略改进:
π ′ = a r g m a x a ∈ A ( s ) Q ( s , a )
π
′
=
a
r
g
m
a
x
a
∈
A
(
s
)
Q
(
s
,
a
)