受约束的强化学习
0.引言
Constrained RL受约束的强化学习(或者叫做Safe RL)
目标:最大化折扣累计奖励(即最大化期望奖励)
Constrained RL核心思想:通过优化策略来最大化期望奖励,同时满足某些约束条件。
软约束:最大化折扣累计奖励,累计风险值小于某一个阈值
概率约束:整条轨迹每个点都不违反约束的概率大于某个阈值
硬约束:在轨迹的任何一点都不违反约束
方法
原问题方法:CPO,CRPO,PCPO,SPACE
原问题,对偶问题
拉格朗日方法
神经网络最后一层再套一层
李雅普诺夫函数保证等等。
背景了解
策略梯度,信赖域方法
Constrained Policy Optimization (CPO) 数学原理
1. CPO 的背景和目标
在强化学习中,智能体通过策略
π
(
a
∣
s
)
\pi(a|s)
π(a∣s) 与环境交互,目标是最大化累积期望奖励
J
(
π
)
J(\pi)
J(π)。然而,在许多实际场景中,我们需要在优化奖励的同时满足一些安全或资源约束。例如,机器人可能需要在完成任务的同时限制能耗,或者在自动驾驶中需要遵守安全规则。
CPO 是一种基于约束优化的策略优化方法,旨在解决以下优化问题:
π
∗
=
arg
max
π
∈
Π
C
J
(
π
)
,
\pi^* = \arg \max_{\pi \in \Pi_C} J(\pi),
π∗=argπ∈ΠCmaxJ(π),
其中:
J
(
π
)
J(\pi)
J(π) 是策略
π
\pi
π 的期望奖励(目标函数)。
Π
C
\Pi_C
ΠC 是满足约束条件的策略集合,定义为:
Π
C
=
π
∈
Π
∣
∀
i
,
J
C
i
(
π
)
≤
d
i
,
\Pi_C = { \pi \in \Pi \mid \forall i, J_{C_i}(\pi) \leq d_i },
ΠC=π∈Π∣∀i,JCi(π)≤di,
J
C
i
(
π
)
J_{C_i}(\pi)
JCi(π) 是第
i
i
i 个约束的期望成本。
d
i
d_i
di 是第
i
i
i 个约束的上界。
简单来说,CPO 的目标是找到一个策略
π
∗
\pi^*
π∗,使得奖励最大化,同时每个约束
J
C
i
(
π
)
≤
d
i
J_{C_i}(\pi) \leq d_i
JCi(π)≤di 都得到满足。
2. 目标函数和约束的定义
2.1 目标函数 J ( π ) J(\pi) J(π)
目标函数
J
(
π
)
J(\pi)
J(π) 表示策略
π
\pi
π 在环境中交互时获得的期望累积奖励。在折扣奖励设置中,它通常定义为:
J
(
π
)
=
E
τ
∼
π
[
∑
t
=
0
∞
γ
t
R
(
s
t
,
a
t
)
]
,
J(\pi) = \mathbb{E}{\tau \sim \pi} \left[ \sum{t=0}^\infty \gamma^t R(s_t, a_t) \right],
J(π)=Eτ∼π[∑t=0∞γtR(st,at)],
其中:
τ
=
(
s
0
,
a
0
,
s
1
,
a
1
,
…
)
\tau = (s_0, a_0, s_1, a_1, \dots)
τ=(s0,a0,s1,a1,…) 是策略
π
\pi
π 产生的轨迹。
R
(
s
t
,
a
t
)
R(s_t, a_t)
R(st,at) 是时刻
t
t
t 的即时奖励。
γ
∈
(
0
,
1
)
\gamma \in (0, 1)
γ∈(0,1) 是折扣因子。
2.2 约束函数 J C i ( π ) J_{C_i}(\pi) JCi(π)
约束函数
J
C
i
(
π
)
J_{C_i}(\pi)
JCi(π) 表示第
i
i
i 个约束的期望累积成本,定义为:
J
C
i
(
π
)
=
E
τ
∼
π
[
∑
t
=
0
∞
γ
t
C
i
(
s
t
,
a
t
)
]
,
J_{C_i}(\pi) = \mathbb{E}{\tau \sim \pi} \left[ \sum{t=0}^\infty \gamma^t C_i(s_t, a_t) \right],
JCi(π)=Eτ∼π[∑t=0∞γtCi(st,at)],
其中:
C
i
(
s
t
,
a
t
)
C_i(s_t, a_t)
Ci(st,at) 是时刻
t
t
t 的第
i
i
i 个成本函数。
约束要求
J
C
i
(
π
)
≤
d
i
J_{C_i}(\pi) \leq d_i
JCi(π)≤di。
3. CPO 的核心方法:TRPO 的类比
CPO 借鉴了 Trust Region Policy Optimization (TRPO) 的思想。TRPO 是一种无约束策略优化方法,通过限制策略更新的步长来保证优化过程的稳定性。CPO 将这种思想扩展到有约束的场景。
3.1 TRPO 的优化问题
TRPO 的目标是:
π
k
+
1
=
arg
max
π
∈
Π
θ
J
(
π
)
,
\pi_{k+1} = \arg \max_{\pi \in \Pi_\theta} J(\pi),
πk+1=argπ∈ΠθmaxJ(π),
subject to:
D
(
π
,
π
k
)
≤
δ
,
D(\pi, \pi_k) \leq \delta,
D(π,πk)≤δ,
其中:
D
(
π
,
π
k
)
D(\pi, \pi_k)
D(π,πk) 是策略
π
\pi
π 和当前策略
π
k
\pi_k
πk 之间的散度,通常使用 KL 散度:
D
(
π
,
π
k
)
=
E
s
∼
ρ
π
k
[
KL
(
π
(
⋅
∣
s
)
∣
π
k
(
⋅
∣
s
)
)
]
,
D(\pi, \pi_k) = \mathbb{E}{s \sim \rho{\pi_k}} \left[ \text{KL}(\pi(\cdot|s) | \pi_k(\cdot|s)) \right],
D(π,πk)=Es∼ρπk[KL(π(⋅∣s)∣πk(⋅∣s))],
δ
\delta
δ 是信任区域的边界。
TRPO 通过线性化目标函数和约束来近似求解这个问题。
3.2 CPO 的扩展
CPO 将 TRPO 的信任区域方法扩展到有约束的情景,优化问题变为:
π
k
+
1
=
arg
max
π
∈
Π
θ
J
(
π
)
,
\pi_{k+1} = \arg \max_{\pi \in \Pi_\theta} J(\pi),
πk+1=argπ∈ΠθmaxJ(π),
subject to:
J
C
i
(
π
)
≤
d
i
,
i
=
1
,
…
,
m
,
J_{C_i}(\pi) \leq d_i, \quad i = 1, \dots, m,
JCi(π)≤di,i=1,…,m,
D
(
π
,
π
k
)
≤
δ
.
D(\pi, \pi_k) \leq \delta.
D(π,πk)≤δ.
这里,CPO 不仅限制了策略更新的步长(通过
D
(
π
,
π
k
)
≤
δ
D(\pi, \pi_k) \leq \delta
D(π,πk)≤δ),还增加了额外的约束
J
C
i
(
π
)
≤
d
i
J_{C_i}(\pi) \leq d_i
JCi(π)≤di。
4. CPO 的近似求解
直接求解上述约束优化问题是困难的,因此 CPO 使用了线性化和二次近似来简化问题。
4.1 目标函数的线性近似
对于目标函数
J
(
π
)
J(\pi)
J(π),CPO 使用了 TRPO 中的线性近似:
J
(
π
)
≈
J
(
π
k
)
+
∇
θ
J
(
π
k
)
⊤
(
θ
−
θ
k
)
,
J(\pi) \approx J(\pi_k) + \nabla_{\theta} J(\pi_k)^\top (\theta - \theta_k),
J(π)≈J(πk)+∇θJ(πk)⊤(θ−θk),
其中:
θ
\theta
θ 是策略
π
\pi
π 的参数。
θ
k
\theta_k
θk 是当前策略
π
k
\pi_k
πk 的参数。
∇
θ
J
(
π
k
)
\nabla_{\theta} J(\pi_k)
∇θJ(πk) 是目标函数在
θ
k
\theta_k
θk 处的梯度。
在强化学习中,梯度
∇
θ
J
(
π
k
)
\nabla_{\theta} J(\pi_k)
∇θJ(πk) 通常通过策略梯度方法计算:
∇
θ
J
(
π
k
)
=
E
τ
∼
π
k
[
∑
t
=
0
∞
γ
t
∇
θ
log
π
k
(
a
t
∣
s
t
)
A
π
k
(
s
t
,
a
t
)
]
,
\nabla_{\theta} J(\pi_k) = \mathbb{E}{\tau \sim \pi_k} \left[ \sum{t=0}^\infty \gamma^t \nabla_{\theta} \log \pi_k(a_t|s_t) A^{\pi_k}(s_t, a_t) \right],
∇θJ(πk)=Eτ∼πk[∑t=0∞γt∇θlogπk(at∣st)Aπk(st,at)],
其中
A
π
k
(
s
t
,
a
t
)
A^{\pi_k}(s_t, a_t)
Aπk(st,at) 是优势函数。
4.2 约束的线性近似
对于约束
J
C
i
(
π
)
J_{C_i}(\pi)
JCi(π),CPO 同样进行线性近似:
J
C
i
(
π
)
≈
J
C
i
(
π
k
)
+
∇
θ
J
C
i
(
π
k
)
⊤
(
θ
−
θ
k
)
,
J_{C_i}(\pi) \approx J_{C_i}(\pi_k) + \nabla_{\theta} J_{C_i}(\pi_k)^\top (\theta - \theta_k),
JCi(π)≈JCi(πk)+∇θJCi(πk)⊤(θ−θk),
约束条件
J
C
i
(
π
)
≤
d
i
J_{C_i}(\pi) \leq d_i
JCi(π)≤di 变为:
J
C
i
(
π
k
)
+
∇
θ
J
C
i
(
π
k
)
⊤
(
θ
−
θ
k
)
≤
d
i
.
J_{C_i}(\pi_k) + \nabla_{\theta} J_{C_i}(\pi_k)^\top (\theta - \theta_k) \leq d_i.
JCi(πk)+∇θJCi(πk)⊤(θ−θk)≤di.
4.3 KL 散度的二次近似
KL 散度约束
D
(
π
,
π
k
)
≤
δ
D(\pi, \pi_k) \leq \delta
D(π,πk)≤δ 被近似为二次形式:
D
(
π
,
π
k
)
≈
1
2
(
θ
−
θ
k
)
⊤
F
(
θ
−
θ
k
)
,
D(\pi, \pi_k) \approx \frac{1}{2} (\theta - \theta_k)^\top F (\theta - \theta_k),
D(π,πk)≈21(θ−θk)⊤F(θ−θk),
其中
F
F
F 是 Fisher 信息矩阵,定义为:
F
=
E
s
∼
ρ
π
k
[
E
a
∼
π
k
(
⋅
∣
s
)
[
∇
θ
log
π
k
(
a
∣
s
)
∇
θ
log
π
k
(
a
∣
s
)
⊤
]
]
.
F = \mathbb{E}{s \sim \rho{\pi_k}} \left[ \mathbb{E}{a \sim \pi_k(\cdot|s)} \left[ \nabla{\theta} \log \pi_k(a|s) \nabla_{\theta} \log \pi_k(a|s)^\top \right] \right].
F=Es∼ρπk[Ea∼πk(⋅∣s)[∇θlogπk(a∣s)∇θlogπk(a∣s)⊤]].
5. CPO 的优化问题
综合上述近似,CPO 的优化问题变为一个近似的凸优化问题:
max
Δ
θ
∇
θ
J
(
π
k
)
⊤
Δ
θ
,
\max_{\Delta \theta} \ \nabla_{\theta} J(\pi_k)^\top \Delta \theta,
Δθmax ∇θJ(πk)⊤Δθ,
subject to:
J
C
i
(
π
k
)
+
∇
θ
J
C
i
(
π
k
)
⊤
Δ
θ
≤
d
i
,
i
=
1
,
…
,
m
,
J_{C_i}(\pi_k) + \nabla_{\theta} J_{C_i}(\pi_k)^\top \Delta \theta \leq d_i, \quad i = 1, \dots, m,
JCi(πk)+∇θJCi(πk)⊤Δθ≤di,i=1,…,m,
1
2
Δ
θ
⊤
F
Δ
θ
≤
δ
,
\frac{1}{2} \Delta \theta^\top F \Delta \theta \leq \delta,
21Δθ⊤FΔθ≤δ,
其中
Δ
θ
=
θ
−
θ
k
\Delta \theta = \theta - \theta_k
Δθ=θ−θk。
这个优化问题可以通过拉格朗日对偶方法求解。CPO 提供了两种求解方式:
不可行解的情况:如果当前策略
π
k
\pi_k
πk 已经违反了约束(即
J
C
i
(
π
k
)
>
d
i
J_{C_i}(\pi_k) > d_i
JCi(πk)>di),CPO 会优先恢复约束的可行性。
可行解的情况:如果约束已经满足,CPO 会沿着梯度方向优化目标,同时确保不违反约束。
6. 总结
CPO 的核心是通过线性化和二次近似,将复杂的约束优化问题转化为一个可求解的凸优化问题。它的优势在于:
能够在优化奖励的同时严格满足约束条件。
继承了 TRPO 的稳定性,通过信任区域限制策略更新的步长。
适用于多种实际场景,例如安全强化学习。