凸优化(Convex Optimization) 理论(2)

相关内容:凸优化(Convex Optimization)理论(1)

四、标准凸优化问题形式

这一节的核心目标总结如下:

什么样的优化问题,能够被"可靠、稳定、全局最优"地求解


4.1 一般形式(General Convex Optimization)

原始问题形式

min ⁡ x f ( x ) s.t. g i ( x ) ≤ 0 , i = 1 , ... , m h j ( x ) = 0 , j = 1 , ... , p \begin{aligned} \min_{x} \quad & f(x) \\ \text{s.t.} \quad & g_i(x) \le 0,\quad i=1,\dots,m \\ & h_j(x) = 0,\quad j=1,\dots,p \end{aligned} xmins.t.f(x)gi(x)≤0,i=1,...,mhj(x)=0,j=1,...,p

这是所有凸优化问题的母形式,LP、QP、SOCP、SDP 都是它的特例。


每一项的数学含义(非常关键)

(1)优化变量 x x x
  • x ∈ R n x \in \mathbb{R}^n x∈Rn

  • 可以是:

    • 状态向量(位姿、速度、偏置)
    • 控制量
    • 参数向量

(2)目标函数 f ( x ) f(x) f(x):凸函数

f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x + (1-\theta)y) \le \theta f(x) + (1-\theta)f(y) f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)

数学意义:

  • 函数"向上开"
  • 没有局部极小陷阱
  • 梯度为 0 ⇒ 全局最优

工程意义(SLAM):

  • 线性最小二乘
  • 线性化后的重投影误差
  • 信息矩阵加权误差

(3)不等式约束 g i ( x ) ≤ 0 g_i(x) \le 0 gi(x)≤0

要求:

g i ( x ) 是凸函数 g_i(x)\ \text{是凸函数} gi(x) 是凸函数

几何含义:

  • 每个 g i ( x ) ≤ 0 g_i(x) \le 0 gi(x)≤0 定义一个凸可行域
  • 多个约束交集仍是凸集

典型例子:

  • 范围约束: ∣ x ∣ 2 − r ≤ 0 |x|_2 - r \le 0 ∣x∣2−r≤0
  • 物理边界
  • 正定性约束(间接)

(4)等式约束 h j ( x ) = 0 h_j(x) = 0 hj(x)=0

要求:

h j ( x ) = a j T x + b j h_j(x) = a_j^T x + b_j hj(x)=ajTx+bj

必须是仿射函数

为什么不能是一般函数?

  • 非线性等式会破坏凸性
  • 等式约束会"切"集合,一旦是曲面就可能非凸

SLAM 中的例子:

  • 固定某个位姿
  • 施加 gauge constraint
  • 坐标系锚定

一个极重要的结论

只要满足上述三点,这个问题一定是凸优化问题

并且:

KKT 条件 ⇔ 全局最优解


4.2 线性规划(LP)

数学形式

min ⁡ x c T x s.t. A x ≤ b \begin{aligned} \min_x \quad & c^T x \ \text{s.t.} \quad & Ax \le b \end{aligned} xmincTx s.t.Ax≤b


为什么 LP 是凸优化?

(1)目标函数是线性的

f ( x ) = c T x f(x) = c^T x f(x)=cTx

  • Hessian:
    ∇ 2 f ( x ) = 0 ⪰ 0 \nabla^2 f(x) = 0 \succeq 0 ∇2f(x)=0⪰0

凸函数(也是凹函数)


(2)约束是线性的

A x ≤ b Ax \le b Ax≤b

每一行都是:

a i T x − b i ≤ 0 a_i^T x - b_i \le 0 aiTx−bi≤0

  • 线性函数 ⇒ 凸函数
  • 半空间 ⇒ 凸集

几何解释

  • 可行域是一个凸多面体
  • 最优解一定在**顶点(极点)**上

这就是单纯形法有效的根本原因。


工程视角

LP 常见于:

  • 资源分配
  • 约束调度
  • 松弛后的 L1 最小化

例如:

min ⁡ x ∣ A x − b ∣ 1 \min_x |Ax-b|_1 xmin∣Ax−b∣1

可以转成 LP。


4.3 二次规划(QP)

数学形式

min ⁡ x 1 2 x T Q x + c T x s.t. A x ≤ b \begin{aligned} \min_x \quad & \frac{1}{2} x^T Q x + c^T x \ \text{s.t.} \quad & Ax \le b \end{aligned} xmin21xTQx+cTx s.t.Ax≤b


关键条件: Q ⪰ 0 Q \succeq 0 Q⪰0

Q ⪰ 0 Q \succeq 0 Q⪰0

表示:

∀ x , x T Q x ≥ 0 \forall x,\quad x^T Q x \ge 0 ∀x,xTQx≥0

这是 QP 是否凸的唯一关键


为什么目标函数是凸的?

目标函数:

f ( x ) = 1 2 x T Q x + c T x f(x) = \frac{1}{2} x^T Q x + c^T x f(x)=21xTQx+cTx

梯度:

∇ f ( x ) = Q x + c \nabla f(x) = Qx + c ∇f(x)=Qx+c

Hessian:

∇ 2 f ( x ) = Q \nabla^2 f(x) = Q ∇2f(x)=Q

因此:

∇ 2 f ( x ) ⪰ 0    ⟺    f ( x ) 凸 \nabla^2 f(x) \succeq 0 \iff f(x)\ \text{凸} ∇2f(x)⪰0⟺f(x) 凸


无约束 QP(最重要特例)

min ⁡ x 1 2 x T Q x + c T x \min_x \frac{1}{2} x^T Q x + c^T x xmin21xTQx+cTx

一阶最优条件:

Q x ⋆ + c = 0 Qx^\star + c = 0 Qx⋆+c=0

解为:

x ⋆ = − Q − 1 c x^\star = -Q^{-1} c x⋆=−Q−1c

这就是 正规方程


高斯--牛顿 = 无约束 QP(关键连接)

在 SLAM / BA 中:

min ⁡ x ∑ i ∣ r i ( x ) ∣ 2 \min_x \sum_i |r_i(x)|^2 xmini∑∣ri(x)∣2

线性化:

r ( x + δ x ) ≈ r ( x ) + J δ x r(x + \delta x) \approx r(x) + J \delta x r(x+δx)≈r(x)+Jδx

得到:

min ⁡ δ x ∣ J δ x + r ∣ 2 \min_{\delta x} |J \delta x + r|^2 δxmin∣Jδx+r∣2

展开为标准 QP:

min ⁡ δ x 1 2 δ x T ( 2 J T J ) ⏟ ∗ Q ⪰ 0 δ x + ( 2 J T r ) ⏟ ∗ c T δ x \min_{\delta x} \frac{1}{2} \delta x^T \underbrace{(2J^T J)}*{Q \succeq 0} \delta x + \underbrace{(2J^T r)}*{c}^T \delta x δxmin21δxT (2JTJ)∗Q⪰0δx+ (2JTr)∗cTδx

其中:

Q = 2 J T J ⪰ 0 Q = 2J^T J \succeq 0 Q=2JTJ⪰0

这就是标注的那句话的严格数学原因

SLAM / BA 中的高斯牛顿本质就是无约束 QP


小结

  1. 凸优化 = 凸目标 + 凸不等式 + 仿射等式
  2. LP 是目标和约束都线性的特例
  3. QP 是目标二次、约束线性的特例
  4. Q ⪰ 0 Q \succeq 0 Q⪰0 是 QP 凸性的根本
  5. 高斯牛顿 ≡ 无约束凸 QP

五、无约束凸优化的最优性条件

我们考虑如下问题:

min ⁡ x ∈ R n f ( x ) \min_{x \in \mathbb{R}^n} f(x) x∈Rnminf(x)

其中

  • f : R n → R f : \mathbb{R}^n \to \mathbb{R} f:Rn→R
  • f f f 凸(convex)
  • 在二阶条件中进一步假设 f ∈ C 2 f \in C^2 f∈C2

5.1 一阶最优性条件(First-Order Condition, FOC)

5.1.1 凸函数的一阶刻画(核心定理)

若 f f f 是可导凸函数,则以下命题等价:

x ⋆ 是全局最优解 ⟺ ∇ f ( x ⋆ ) = 0 x^\star \text{ 是全局最优解} \quad \Longleftrightarrow \quad \nabla f(x^\star) = 0 x⋆ 是全局最优解⟺∇f(x⋆)=0

这是充要条件,不是"必要但不充分"。


5.1.2 为什么成立?(从凸性推导)

凸函数定义(可导版本):

f ( y ) ≥ f ( x ) + ∇ f ( x ) T ( y − x ) , ∀ x , y f(y) \ge f(x) + \nabla f(x)^T (y - x), \quad \forall x,y f(y)≥f(x)+∇f(x)T(y−x),∀x,y

令 x = x ⋆ x = x^\star x=x⋆,若

∇ f ( x ⋆ ) = 0 \nabla f(x^\star) = 0 ∇f(x⋆)=0

f ( y ) ≥ f ( x ⋆ ) , ∀ y f(y) \ge f(x^\star), \quad \forall y f(y)≥f(x⋆),∀y

这意味着 x ⋆ x^\star x⋆ 是全局最小点


5.1.3 反向也成立(必要性)

若 x ⋆ x^\star x⋆ 是全局最小点,则对任意方向 d d d:

d d t f ( x ⋆ + t d ) ∣ t = 0 ∇ f ( x ⋆ ) T d 0 \frac{d}{dt} f(x^\star + t d)\Big|_{t=0} \nabla f(x^\star)^T d 0 dtdf(x⋆+td) t=0∇f(x⋆)Td0

对所有 d d d 成立

∇ f ( x ⋆ ) = 0 \nabla f(x^\star) = 0 ∇f(x⋆)=0


5.1.4 几何直觉

  • 凸函数图像像一个"碗"
  • 梯度给出最陡下降方向
  • 在最小点,任何方向都不再下降
  • 因此梯度必须为零

5.1.5 与非凸情形的根本区别

情形 ∇ f = 0 \nabla f = 0 ∇f=0 含义
凸函数 全局最优
非凸函数 可能是极小 / 极大 / 鞍点

这也是为什么 SLAM / BA / ICP 极度依赖"局部凸性近似"


5.2 二阶最优性条件(Second-Order Condition)

现在假设:

f ∈ C 2 f \in C^2 f∈C2


5.2.1 Hessian 的意义

∇ 2 f ( x ) = [ ∂ 2 f ∂ x 1 2 ⋯ ⋮ ⋱ ] \nabla^2 f(x) = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \cdots \\ \vdots & \ddots \end{bmatrix} ∇2f(x)= ∂x12∂2f⋮⋯⋱

它刻画了:

  • 曲率
  • 局部"碗"的形状
  • 是否存在下降方向

5.2.2 二阶必要条件(一般函数)

若 x ⋆ x^\star x⋆ 是局部最小点(不要求凸):

∇ f ( x ⋆ ) = 0 , ∇ 2 f ( x ⋆ ) ⪰ 0 \nabla f(x^\star) = 0, \quad \nabla^2 f(x^\star) \succeq 0 ∇f(x⋆)=0,∇2f(x⋆)⪰0

即对任意方向 d d d:

d T ∇ 2 f ( x ⋆ ) d ≥ 0 d^T \nabla^2 f(x^\star) d \ge 0 dT∇2f(x⋆)d≥0

否则沿某个方向可以二阶下降。


5.2.3 二阶充分条件(严格最小)

∇ f ( x ⋆ ) = 0 , ∇ 2 f ( x ⋆ ) ≻ 0 \nabla f(x^\star) = 0, \quad \nabla^2 f(x^\star) \succ 0 ∇f(x⋆)=0,∇2f(x⋆)≻0

则 x ⋆ x^\star x⋆ 是 严格局部最小点


5.2.4 在凸函数中的特殊性(关键)

对凸函数,Hessian 自动半正定

如果 f f f 是凸且二阶可导:

∇ 2 f ( x ) ⪰ 0 , ∀ x \nabla^2 f(x) \succeq 0, \quad \forall x ∇2f(x)⪰0,∀x

因此在凸优化中:

∇ f ( x ⋆ ) = 0 ⇒ x ⋆ 是全局最优 \nabla f(x^\star) = 0 \quad \Rightarrow \quad x^\star \text{ 是全局最优} ∇f(x⋆)=0⇒x⋆ 是全局最优

二阶条件在"判别最优性"上是冗余的 ,但在算法设计上至关重要


5.2.5 用泰勒展开看二阶条件(非常重要)

在 x ⋆ x^\star x⋆ 附近:

f ( x ⋆ + δ ) = f ( x ⋆ ) + ∇ f ( x ⋆ ) T δ ⏟ = 0 + 1 2 δ T ∇ 2 f ( x ⋆ ) δ + o ( ∣ δ ∣ 2 ) \begin{aligned} f(x^\star + \delta) &= f(x^\star)+ \underbrace{\nabla f(x^\star)^T \delta}_{=0}+ \frac{1}{2} \delta^T \nabla^2 f(x^\star) \delta+ o(|\delta|^2) \end{aligned} f(x⋆+δ)=f(x⋆)+=0 ∇f(x⋆)Tδ+21δT∇2f(x⋆)δ+o(∣δ∣2)

因此:

  • 若 Hessian 半正定 ⇒ 不会下降
  • 若存在负特征值 ⇒ 鞍点或极大点

5.3 与数值优化方法的直接联系

5.3.1 牛顿法

目标:解

∇ f ( x ) = 0 \nabla f(x) = 0 ∇f(x)=0

牛顿更新:

x k + 1 = x k − ∇ 2 f ( x k ) − 1 ∇ f ( x k ) x_{k+1}= x_k - \nabla^2 f(x_k)^{-1} \nabla f(x_k) xk+1=xk−∇2f(xk)−1∇f(xk)

要求:

  • Hessian 可逆
  • 近似正定

5.3.2 高斯--牛顿(GN)

对最小二乘:

f ( x ) = 1 2 ∣ r ( x ) ∣ 2 f(x) = \frac{1}{2}|r(x)|^2 f(x)=21∣r(x)∣2

∇ f = J T r , ∇ 2 f ≈ J T J \nabla f = J^T r, \quad \nabla^2 f \approx J^T J ∇f=JTr,∇2f≈JTJ

这里:

J T J ⪰ 0 J^T J \succeq 0 JTJ⪰0

天然满足凸二阶结构(局部)


5.3.3 Levenberg--Marquardt(LM)

为确保:

H + λ I ≻ 0 H + \lambda I \succ 0 H+λI≻0

强制二阶充分条件成立


5.4 总结

无约束凸优化最优性条件

若 f f f 是凸且可导,则:

∇ f ( x ⋆ ) = 0 \boxed{ \nabla f(x^\star) = 0 } ∇f(x⋆)=0

充要条件


二阶视角(理解算法)

  • Hessian ⪰ 0 \succeq 0 ⪰0:保证局部不下降
  • Hessian ≻ 0 \succ 0 ≻0:保证唯一极小
  • 数值优化本质:逼近满足这些条件的点

六、带约束凸优化:KKT 条件

考虑带等式/不等式约束的凸优化问题:

min ⁡ x ∈ R n f ( x ) s.t. g i ( x ) ≤ 0 , i = 1 , ... , m , h j ( x ) = 0 , j = 1 , ... , p \begin{aligned} \min_{x \in \mathbb{R}^n} \quad & f(x) \\ \text{s.t.} \quad & g_i(x) \le 0, \quad i=1,\dots,m, \\ & h_j(x) = 0, \quad j=1,\dots,p \end{aligned} x∈Rnmins.t.f(x)gi(x)≤0,i=1,...,m,hj(x)=0,j=1,...,p

其中:

  • f f f 是凸函数
  • g i g_i gi 是凸函数(不等式约束)
  • h j h_j hj 是仿射或凸函数(等式约束)

6.1 拉格朗日函数(Lagrangian)

引入拉格朗日乘子 λ i \lambda_i λi 和 ν j \nu_j νj,构造拉格朗日函数:

L ( x , λ , ν ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ j = 1 p ν j h j ( x ) \mathcal{L}(x, \lambda, \nu)= f(x) + \sum_{i=1}^m \lambda_i g_i(x)+ \sum_{j=1}^p \nu_j h_j(x) L(x,λ,ν)=f(x)+i=1∑mλigi(x)+j=1∑pνjhj(x)

  • λ i ≥ 0 \lambda_i \ge 0 λi≥0 对应不等式约束
  • ν j ∈ R \nu_j \in \mathbb{R} νj∈R 对应等式约束

拉格朗日函数核心作用:

  • 把约束问题转化为无约束问题
  • 通过一阶条件寻找最优点

6.2 KKT 条件(Karush-Kuhn-Tucker Conditions)

若 ( x ⋆ , λ ⋆ , ν ⋆ ) (x^\star, \lambda^\star, \nu^\star) (x⋆,λ⋆,ν⋆) 为最优解及对应拉格朗日乘子,则必须满足:

{ ∇ x L ( x ⋆ , λ ⋆ , ν ⋆ ) = 0 (一阶可行性 / 梯度平衡) g i ( x ⋆ ) ≤ 0 (不等式约束可行性) h j ( x ⋆ ) = 0 (等式约束可行性) λ i ⋆ ≥ 0 (拉格朗日乘子非负) λ i ⋆ g i ( x ⋆ ) = 0 (互补松弛条件, Complementary Slackness) \begin{cases} \nabla_x \mathcal{L}(x^\star, \lambda^\star, \nu^\star) = 0 & \text{(一阶可行性 / 梯度平衡)} \\ g_i(x^\star) \le 0 & \text{(不等式约束可行性)} \\ h_j(x^\star) = 0 & \text{(等式约束可行性)} \\ \lambda_i^\star \ge 0 & \text{(拉格朗日乘子非负)} \\ \lambda_i^\star g_i(x^\star) = 0 & \text{(互补松弛条件, Complementary Slackness)} \end{cases} ⎩ ⎨ ⎧∇xL(x⋆,λ⋆,ν⋆)=0gi(x⋆)≤0hj(x⋆)=0λi⋆≥0λi⋆gi(x⋆)=0(一阶可行性 / 梯度平衡)(不等式约束可行性)(等式约束可行性)(拉格朗日乘子非负)(互补松弛条件, Complementary Slackness)

逐条解释:

  1. 一阶可行性(梯度平衡)

∇ x f ( x ⋆ ) + ∑ i = 1 m λ i ⋆ ∇ g i ( x ⋆ ) + ∑ j = 1 p ν j ⋆ ∇ h j ( x ⋆ ) = 0 \nabla_x f(x^\star) + \sum_{i=1}^m \lambda_i^\star \nabla g_i(x^\star)+ \sum_{j=1}^p \nu_j^\star \nabla h_j(x^\star) = 0 ∇xf(x⋆)+i=1∑mλi⋆∇gi(x⋆)+j=1∑pνj⋆∇hj(x⋆)=0

表示在最优点,梯度方向被约束"拉回",无法沿任何可行方向下降。

  1. 约束可行性
  • 不等式约束: g i ( x ⋆ ) ≤ 0 g_i(x^\star) \le 0 gi(x⋆)≤0
  • 等式约束: h j ( x ⋆ ) = 0 h_j(x^\star) = 0 hj(x⋆)=0

确保最优点位于可行域内。

  1. 拉格朗日乘子非负
  • 对应不等式约束的拉格朗日乘子必须非负
  • 否则可能沿负梯度方向继续下降,违背最优性
  1. 互补松弛条件(Complementary Slackness)

λ i ⋆ g i ( x ⋆ ) = 0 \lambda_i^\star g_i(x^\star) = 0 λi⋆gi(x⋆)=0

解释:

  • 如果约束 g i ( x ⋆ ) < 0 g_i(x^\star) < 0 gi(x⋆)<0 不活跃,则 λ i ⋆ = 0 \lambda_i^\star = 0 λi⋆=0
  • 如果约束 g i ( x ⋆ ) = 0 g_i(x^\star) = 0 gi(x⋆)=0 活跃,则 λ i ⋆ ≥ 0 \lambda_i^\star \ge 0 λi⋆≥0
  • 保证只有"紧约束"施加梯度修正

6.3 KKT 条件的充分性与凸性

凸问题 + Slater 条件 (存在严格可行点 x x x,使得 g i ( x ) < 0 g_i(x) < 0 gi(x)<0, h j ( x ) = 0 h_j(x) = 0 hj(x)=0)下:

KKT 条件 ⟺ 全局最优解 \text{KKT 条件} \quad \Longleftrightarrow \quad \text{全局最优解} KKT 条件⟺全局最优解

解释:

  • 对凸问题,KKT 一阶条件 不仅必要,而且充分
  • 不需要检查二阶条件(Hessian 已半正定)
  • 这在数值优化中至关重要:GN / LM / SQP 都基于 KKT 结构构造线性化方程

6.4 KKT 条件与数值优化方法

  1. 拉格朗日-牛顿法(Newton for constrained problems)

线性化 KKT 系统:

∇ x x 2 L ∇ g T ∇ h T diag ( λ ) ∇ g diag ( g ) 0 ∇ h 0 0 \] \[ Δ x Δ λ Δ ν \] = − \[ ∇ x L diag ( λ ) g h \] \\begin{bmatrix} \\nabla\^2_{xx} \\mathcal{L} \& \\nabla g\^T \& \\nabla h\^T \\\\ \\text{diag}(\\lambda) \\nabla g \& \\text{diag}(g) \& 0 \\\\ \\nabla h \& 0 \& 0 \\end{bmatrix} \\begin{bmatrix} \\Delta x \\\\ \\Delta \\lambda \\\\ \\Delta \\nu \\end{bmatrix}=- \\begin{bmatrix} \\nabla_x \\mathcal{L} \\\\ \\text{diag}(\\lambda) g \\\\ h \\end{bmatrix} ∇xx2Ldiag(λ)∇g∇h∇gTdiag(g)0∇hT00 ΔxΔλΔν =− ∇xLdiag(λ)gh 迭代更新 ( x , λ , ν ) (x, \\lambda, \\nu) (x,λ,ν),直至收敛。 2. **SLAM / BA / Constrained ICP**: * 不等式约束可用于防止"负深度"或"点云穿透" * KKT 系统对应增量优化方程(线性化 GN / LM) *** ** * ** *** ### 6.5 总结 * 拉格朗日函数:将约束合并到目标 * KKT 条件:一阶必要(凸问题下充分) * 互补松弛:区分活跃约束与非活跃约束 * 数值算法:通过线性化 KKT 构造增量更新 > 对凸优化问题而言,只需求解 KKT 系统即可得到 **全局最优解**。 *** ** * ** ***

相关推荐
ee_trade9 小时前
EE TRADE易投合约网格机器人创建全指南
人工智能·机器人·区块链
视***间10 小时前
视程空间 发布高性能机器人边缘 AI 平台 ARC6N0 T5X,搭载 NVIDIA Jetson Thor
人工智能·机器人·边缘计算·视程空间·ai算力开发板
深蓝学院11 小时前
完全端到端闭环导航!仅需相机,LoGoPlanner实现感知定位规划一体化
机器人·导航·端到端·具身智能
才兄说11 小时前
机器人租赁服务:流程不确定下的客户支持实践观察
机器人
欧阳天羲11 小时前
Scikit-Learn 入门:机器人 “故障检测” 分类任务实战
分类·机器人·scikit-learn
xwz小王子11 小时前
Nature Communications 感知通信能力,具身智能微型软体机器人
机器人·软体机器人
蜕变的土豆13 小时前
六轴机械臂标定
机器人
星月前端13 小时前
基于DeepSeek API的Telegram机器人
python·机器人
Suki~~13 小时前
多机的话题名如何定义
机器人
猿饵块14 小时前
机器人--tcp标定
机器人