马尔可夫决策过程(MDP)
马尔可夫链(具有马尔可夫性质的随机过程)+ A(动作:会导致状态转移) + R(奖励:衡量动作的好坏)
动态特性
定义如下概率:
p ( s ′ , r ∣ s , a ) ≜ P ( S t + 1 = s ′ , R t + 1 = r ∣ S t = s , A t = a ) p(s^{\prime}, r | s, a) \triangleq {P}({S_{t+1}=s^{\prime}, R_{t+1}=r | S_t=s, A_t=a}) p(s′,r∣s,a)≜P(St+1=s′,Rt+1=r∣St=s,At=a)
那么状态转移概率(系统自身):
p ( s ′ ∣ s , a ) = ∑ r ∈ R p ( s , r ∣ s , a ) p(s^{\prime} |s, a)=\sum_{r \in R} p(s, r | s, a) p(s′∣s,a)=∑r∈Rp(s,r∣s,a)
策略表示(Policy)
策略: π \pi π
确定性策略: a ≜ π ( s ) a\triangleq \pi(s) a≜π(s)
随机性策略: π ( a ∣ s ) ≜ P ( A t = a ∣ S t = s ) \pi(a|s)\triangleq P(A_t = a | S_t = s) π(a∣s)≜P(At=a∣St=s)
回报
用来评估在 s t s_t st 时刻的策略的好坏,我们定义在 s t s_t st 时刻的回报为:
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . , γ ∈ [ 0 , 1 ] G_t = R_{t+1} + \gamma R_{t+2} + \gamma^{2} R_{t+3} + ... , \gamma \in [0,1] Gt=Rt+1+γRt+2+γ2Rt+3+...,γ∈[0,1]
价值函数
回报的期望就是价值函数,通俗的说就是回报的平均数(因为从 s 出发的路径会像树枝一样散开)
state-value:
v
π
(
s
)
=
E
[
G
t
∣
S
t
=
s
]
v_\pi(s) = E[G_t∣S_t=s]
vπ(s)=E[Gt∣St=s]
action-value:
q
π
(
s
,
a
)
=
E
[
G
t
∣
S
t
=
s
,
A
t
=
a
]
q_\pi(s,a) = E[G_t | S_t=s, A_t = a]
qπ(s,a)=E[Gt∣St=s,At=a]
state-value 和 action-value 的关系:
v
π
(
s
)
=
∑
a
π
(
a
∣
s
)
q
π
(
s
,
a
)
v_\pi(s) = \sum_a \pi(a \mid s) q_\pi(s, a)
vπ(s)=∑aπ(a∣s)qπ(s,a) (如果
π
\pi
π 是确定性策略,两个值相等) (1)
q
π
(
s
,
a
)
=
∑
r
,
s
′
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
π
(
s
′
)
]
q_\pi(s, a) = \sum_{r, s'}p(s', r | s, a)[r + \gamma v_\pi(s')]
qπ(s,a)=∑r,s′p(s′,r∣s,a)[r+γvπ(s′)]
(2)
贝尔曼期望方程
即把(2)带入(1),把 (1)带入(2)产生的两个等式
得到 v(s) 和 v(s‘)以及 q(s,a) 和 q(s’, a’) 的关系,这就是贝尔曼方程的核心思想。
贝尔曼最优方程
最优价值函数:
v ∗ ≜ m a x π v π ( s ) v_{*} \triangleq max_\pi v_\pi(s) v∗≜maxπvπ(s)
q ∗ ( s , a ) ≜ m a x π q π ( s , a ) q_{*}(s,a) \triangleq max_\pi q_\pi(s,a) q∗(s,a)≜maxπqπ(s,a)
最优策略:
π
∗
≜
a
r
g
m
a
x
π
v
π
(
s
)
\pi_* \triangleq argmax_\pi v_\pi(s)
π∗≜argmaxπvπ(s) =
a
r
g
m
a
x
π
q
π
(
s
,
a
)
argmax_{\pi}q_\pi(s,a)
argmaxπqπ(s,a)
由(1)(2)知:
v
∗
=
m
a
x
π
q
π
(
s
,
a
)
v_* = max_\pi q_\pi(s,a)
v∗=maxπqπ(s,a)
(3)
q
∗
=
∑
r
,
s
′
p
(
s
′
,
r
∣
s
,
a
)
[
r
+
γ
v
∗
(
s
′
)
]
q_* = \sum_{r, s'}p(s', r | s, a)[r + \gamma v_*(s')]
q∗=∑r,s′p(s′,r∣s,a)[r+γv∗(s′)]
(这里不能把求和替换成 max 的原因是,我们只能让 v* 最优,因为 p 由系统决定,我们无法决定)(4)即把(3)带入(4),把 (4)带入(3)产生的两个等式
和贝尔曼方程一样,得到 v*(s) 和 v*(s‘)以及 q*(s,a) 和 q*(s’, a’) 的关系,这就是贝尔曼最优方程的核心思想。
策略迭代
在 MDP 已知的情况下
策略评估(PE)
知道 pi,我们需要评估出对应的 v 和 q 值。
- 解析解
使用线性代数的方式解线性方程组:V = R + γ \gamma γP V - 迭代解
因为贝尔曼期望方程是不动点方程,所以可以迭代求解。
vk -> vk+1,k-> ∞ \infty ∞,一直迭代下去,可以收敛。
策略改进(PI)
根据 v 和 q ,我们构造出 pi’ 优于 pi。
- 策略改进定理
给定 pi,pi’,如果 ∀ s ∈ S \forall s \in S ∀s∈S ,有 q ( s , π ′ ( s ) ) ≥ v π ( s ) q(s, \pi'(s)) \geq v_\pi(s) q(s,π′(s))≥vπ(s) ,那么则有 $ ∀s∈S$ , v π ′ ( s ) ≥ v π ( s ) v_{\pi'}(s) \geq v_{\pi}(s) vπ′(s)≥vπ(s) 。 - 贪心策略
π ′ ( s ) = a r g m a x a q π ( s , a ) \pi'(s) = argmax_a q_\pi(s,a) π′(s)=argmaxaqπ(s,a)(满足策略改进定理)
所以 pi -> PE -> q(或者 v) -> PI -> pi’ 一直循环下去,就可以得到 v*。
价值迭代
PE 只进行一步的策略迭代。
异步价值迭代
PE 和 PI 不是先后顺序,比如 V 里面的一个值更新了一步,没有等到其他 v 更新,就直接进行 PI 了。