详解受约束的强化学习(一、入门学习)
受约束的强化学习
- 0.引言
- Constrained RL受约束的强化学习(或者叫做Safe RL)
- 方法
- 背景了解
- 1. CPO 的背景和目标
- 2. 目标函数和约束的定义
- 3. CPO 的核心方法:TRPO 的类比
- 3.1 TRPO 的优化问题
- 3.2 CPO 的扩展
- 4. CPO 的近似求解
- 4.1 目标函数的线性近似
- 4.2 约束的线性近似
- 4.3 KL 散度的二次近似
- 5. CPO 的优化问题
- 6. 总结
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 的稳定性,通过信任区域限制策略更新的步长。
适用于多种实际场景,例如安全强化学习。