Administrator
发布于 2026-09-09 / 0 阅读
0
0

优化理论 TP:拉格朗日对偶与前向-后向算法

Q1. 最小值的存在性和唯一性

存在性分析

根据第一章关于极小值点存在性的理论,我需要验证以下条件:

目标函数:

f(x) = \frac{1}{2}x^{\top}Hx + v^{\top}x

这是一个连续函数,且函数 f 是严格凸的(因为 H 正定)

约束集:

C = \{x \in \mathbb{R}^n : x^{\top}L^{\top}Lx \leq 1\}

由于 L 是满秩矩阵,L^{\top}L 是正定矩阵,因此 C 是一个椭球体,椭球体是有界闭集,即紧集

根据Weierstrass定理,连续函数在紧集上必定达到其最小值。因此,问题 (\mathcal{P}_0) 的最小值存在。

唯一性分析

由于目标函数 f(x) 是严格凸函数,且约束集 C 是凸集,严格凸函数在凸集上的极小值点(如果存在)是唯一的,因此问题 (\mathcal{P}_0) 存在唯一的最小值点

Q2. 问题的重新表述

为了将 (\mathcal{P}_0) 转化为 (\mathcal{P}_1),需要进行变量替换。

步骤1:分析矩阵 L^{\top}L

由于 L 是满秩矩阵,L^{\top}L 是对称正定矩阵。设其特征值分解为:

L^{\top}L = Q\Lambda Q^{\top}
  • Q 是正交矩阵(Q^{\top}Q = I
  • \Lambda = \text{diag}(\lambda_1, \ldots, \lambda_n),且 \lambda_i > 0

步骤2:变量替换

令:

y = \Lambda^{1/2}Q^{\top}x

则逆变换为:

x = Q\Lambda^{-1/2}y

步骤3:转换约束条件

原约束 x^{\top}L^{\top}Lx \leq 1 变为:

\begin{align} x^{\top}L^{\top}Lx &= y^{\top}\Lambda^{-1/2}Q^{\top} \cdot Q\Lambda Q^{\top} \cdot Q\Lambda^{-1/2}y \\ &= y^{\top}\Lambda^{-1/2}\Lambda\Lambda^{-1/2}y \\ &= y^{\top}y \leq 1 \end{align}

步骤4:转换目标函数

x = Q\Lambda^{-1/2}y 代入目标函数:

\begin{align} f(x) &= \frac{1}{2}x^{\top}Hx + v^{\top}x \\ &= \frac{1}{2}y^{\top}\Lambda^{-1/2}Q^{\top}HQ\Lambda^{-1/2}y + v^{\top}Q\Lambda^{-1/2}y \end{align}

\tilde{H} = \Lambda^{-1/2}Q^{\top}HQ\Lambda^{-1/2},这是一个对称正定矩阵。

步骤5:变量替换

\tilde{H} 进行特征值分解:

\tilde{H} = PDP^{\top}
  • P 是正交矩阵
  • D = \text{diag}(d_1, \ldots, d_n),且 d_i > 0

z = P^{\top}y,则目标函数变为:

\begin{align} f &= \frac{1}{2}z^{\top}P^{\top}\tilde{H}Pz + (P^{\top}\Lambda^{-1/2}Q^{\top}v)^{\top}z \\ &= \frac{1}{2}z^{\top}Dz + w^{\top}z \\ &= \frac{1}{2}\sum_{k=1}^{n}z_k^2 d_k + w^{\top}z \end{align}

综上所述,问题 (\mathcal{P}_1)d_k 和向量 w 的表达式为:

d_k = \left( \Lambda^{-1/2} Q^{\top} H Q \Lambda^{-1/2} \right)_{(k)}

d_k 是矩阵 \Lambda^{-1/2}Q^{\top}HQ\Lambda^{-1/2} 的第 k 个特征值

w = P^{\top}\Lambda^{-1/2}Q^{\top}v

其中 \LambdaQ 来自 L^{\top}L 的特征值分解,PD 来自 \tilde{H} 的特征值分解。

Q3. 强对偶性和拉格朗日函数

强对偶性的验证

对于问题 (\mathcal{P}_1)

\min_{z \in \mathbb{R}^n} \frac{1}{2} \sum_{k=1}^{n} z_k^2 d_k + w^{\top} z \quad \text{约束条件:} \quad z^{\top} z \leq 1

根据强对偶性条件,我们需要目标函数和约束函数都是凸函数,且满足Slater条件,

凸函数的证明

(1) 目标函数

f(z) = \frac{1}{2}z^{\top}Dz + w^{\top}z

根据凸函数判定定理,对于二次可微函数,如果其Hessian矩阵半正定,则函数是凸的

一阶导数

\nabla f(z) = \frac{\partial}{\partial z}\left(\frac{1}{2}z^{\top}Dz + w^{\top}z\right) = Dz + w

Hessian矩阵

\nabla^2 f(z) = \frac{\partial}{\partial z}(Dz + w) = D = \begin{pmatrix} d_1 & 0 & \cdots & 0 \\ 0 & d_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & d_n \end{pmatrix}

对于任意非零向量 h \in \mathbb{R}^n

h^{\top} \nabla^2 f(z) h = h^{\top} D h = \sum_{k=1}^n d_k h_k^2

由于 d_k > 0 对所有 k 成立,且至少有一个 h_k \neq 0(因为 h \neq 0),所以:

h^{\top} D h = \sum_{k=1}^n d_k h_k^2 > 0

因此 Hessian矩阵 \nabla^2 f(z) = D 是正定的,因此 f(z) 是严格凸函数。

(2) 约束函数

h(z) = z^{\top}z - 1

由于是二次型,因此Hessian矩阵是 2I_n ,对于任意非零向量 v \in \mathbb{R}^n

v^{\top} \nabla^2 h(z) v = v^{\top} (2I_n) v = 2v^{\top}v = 2\|v\|^2 > 0

因此目标函数和约束函数都是凸函数

Slater条件证明

即需要存在 \bar{z} \in \text{dom } f 使得 h(\bar{z}) < 0 ,因此我们取取 \bar{z} = 0,则

h(0) = 0^{\top}0 - 1 = -1 < 0

可见Slater条件满足。

因此强强对偶性成立,对偶间隙为零。

拉格朗日函数

对应的拉格朗日函数形式为:

\mathcal{L}(z, \lambda) = f(z) + \lambda h(z) = \frac{1}{2} \sum_{k=1}^{n} z_k^2 d_k + w^{\top} z + \lambda(z^{\top}z - 1)
  • 其中 \lambda \geq 0 是拉格朗日乘子。

重新整理:

\mathcal{L}(z, \lambda) = \frac{1}{2} z^{\top}(D + 2\lambda I)z + w^{\top}z - \lambda
对偶拉格朗日函数

根据定义,对偶函数公式为:

\underline{\mathcal{L}}(\lambda) = \inf_{z \in \mathbb{R}^n} \mathcal{L}(z, \lambda)

求最小值,令梯度为零:

\nabla_z \mathcal{L}(z, \lambda) = (D + 2\lambda I)z + w = 0

由于 d_k > 0\lambda \geq 0,矩阵 (D + 2\lambda I) 可逆,因此:

z^*(\lambda) = -(D + 2\lambda I)^{-1}w = -\begin{pmatrix} \frac{w_1}{d_1 + 2\lambda} \\ \vdots \\ \frac{w_n}{d_n + 2\lambda} \end{pmatrix}

z^*(\lambda) 代入拉格朗日函数:

\underline{\mathcal{L}}(\lambda) = -\frac{1}{2} \sum_{k=1}^{n} \frac{w_k^2}{d_k + 2\lambda} - \lambda

对偶问题为:

\max_{\lambda \geq 0} \underline{\mathcal{L}}(\lambda) = \max_{\lambda \geq 0} \left( -\frac{1}{2} \sum_{k=1}^{n} \frac{w_k^2}{d_k + 2\lambda} - \lambda \right)

Q4. 数值应用(Matlab实现)

Q5. 前向-后向算法

问题的重新表述

为了使用前向-后向算法,我们需要把约束优化问题转换为无约束问题。

原问题 (\mathcal{P}_1) 是:

\min_{z \in \mathbb{R}^n} \frac{1}{2} \sum_{k=1}^{n} z_k^2 d_k + w^{\top} z \quad \text{约束条件:} \quad z^{\top} z \leq 1

重写为无约束形式:

\min_{z \in \mathbb{R}^n} f(z) + g(z)

其中 f(z) 是光滑函数(可微),g(z) 是约束变成指数函数后的形式,其本质还是约束条件,他们对应公式为

f(z) = \frac{1}{2} \sum_{k=1}^{n} z_k^2 d_k + w^{\top} z
g(z) = \iota_C(z)

指示函数定义为:

\iota_C(z) = \begin{cases} 0 & \text{如果 } z \in C \\ +\infty & \text{如果 } z \notin C \end{cases}
  • 其中,C = \{z \in \mathbb{R}^n : z^{\top}z \leq 1\} 是单位球

综上所述,因此我们可将原公式写为

\min_{z \in \mathbb{R}^n} \left[ \underbrace{\frac{1}{2} \sum_{k=1}^{n} z_k^2 d_k + w^{\top} z}_{f(z)} + \underbrace{\iota_C(z)}_{g(z)} \right]

近端算子

但是由于指示函数在边界处不可微,因此我们无法直接求梯度,因此我们用近端算子代替梯度:

  • 对于光滑函数 f,使用梯度步 z - \gamma \nabla f(z)
  • 对于非光滑函数 g,使用近端算子 \text{prox}_{\gamma g}(v)

因此在FB算法中,前向步处理函数 f,后向步处理函数 g

根据函数 g 的近端算子定义为:

\text{prox}_{\gamma g}(v) = \arg\min_{z \in \mathbb{R}^n} \left\{ g(z) + \frac{1}{2\gamma}\|z - v\|^2 \right\}

代入 g(z) = \iota_C(z)

\begin{align} \text{prox}_{\gamma \iota_C}(v) &= \arg\min_{z \in \mathbb{R}^n} \left\{ \iota_C(z) + \frac{1}{2\gamma}\|z - v\|^2 \right\} \\ &= \arg\min_{z \in C} \frac{1}{2\gamma}\|z - v\|^2 \\ &= P_C(v) \end{align}

可以得到函数 g 的近端算子就是投影

\text{prox}_{\gamma \iota_C}(v) = P_C(v)

投影到单位球

根据投影的理论,点 v 在闭凸集 C 上的投影 P_C(v) 是满足以下条件的唯一点:

P_C(v) = \arg\min_{z \in C} \|z - v\|

对于单位球 C = \{z : \|z\| \leq 1\},投影公式为:

P_C(v) = \begin{cases} v & \text{如果 } \|v\| \leq 1 \\ \frac{v}{\|v\|} & \text{如果 } \|v\| > 1 \end{cases}

如果点 v 在单位球内或边界上,它的投影就是它自己,如果点 v 在单位球外,投影是从原点到 v 的射线与单位球面的交点

前向-后向算法推导

在FB算法中,交替进行两个步骤:

前向步:处理函数 f,沿着 f 的负梯度方向移动(梯度下降)

后向步:处理函数 g

根据最优性条件,\hat{z} 是最优解当且仅当:

0 \in \nabla f(\hat{z}) + \partial g(\hat{z})

即在最优点,光滑部分的负梯度必须在非光滑部分的次梯度集合中

即:

-\nabla f(\hat{z}) \in \partial g(\hat{z})

两边同乘 \gamma

-\gamma \nabla f(\hat{z}) \in \gamma \partial g(\hat{z})

加上 \hat{z}

\hat{z} - \gamma \nabla f(\hat{z}) \in \hat{z} + \gamma \partial g(\hat{z})

左边是从 \hat{z} 出发沿负梯度方向走一步,右边是 \hat{z} 加上次梯度的集合。

根据凸分析理论,以下三个条件等价:

v \in z + \gamma \partial g(z)
z - v \in -\gamma \partial g(z)
z = \text{prox}_{\gamma g}(v)

v = \hat{z} - \gamma \nabla f(\hat{z}),则:

\hat{z} - \gamma \nabla f(\hat{z}) \in \hat{z} + \gamma \partial g(\hat{z})

根据上面的等价关系,这等价于:

\hat{z} = \text{prox}_{\gamma g}(\hat{z} - \gamma \nabla f(\hat{z}))

FB算法根据这个不动点方程的迭代求解

前向-后向算法流程

进行迭代

步骤1:计算梯度

\nabla f(z^k) = D z^k + w
  • 其中 D = \text{diag}(d_1, \ldots, d_n)
\nabla f(z^k) = \begin{pmatrix} d_1 z_1^k + w_1 \\ d_2 z_2^k + w_2 \\ \vdots \\ d_n z_n^k + w_n \end{pmatrix}

步骤2:前向步(梯度下降)

y^{k+1} = z^k - \gamma \nabla f(z^k) = z^k - \gamma (D z^k + w)

步骤3:后向步(投影)

z^{k+1} = P_C(y^{k+1})

根据投影 P_C(v) 的公式,可得:

z^{(k+1)} = \begin{cases} y^{(k+1)}, & \text{如果 } \|y^{(k+1)}\| \le 1 \\[6pt] \dfrac{y^{(k+1)}}{\|y^{(k+1)}\|}, & \text{如果 } \|y^{(k+1)}\| > 1 \end{cases}
参数选择

步长选择

为保证收敛,步长必须满足:

0 < \gamma < \frac{2}{L_f}
  • 其中 L_f\nabla f 的Lipschitz常数。

对于我们的函数 f(z) = \frac{1}{2}z^{\top}Dz + w^{\top}z,有:

\|\nabla f(z_1) - \nabla f(z_2)\| = \|D(z_1 - z_2)\| \leq \|D\| \cdot \|z_1 - z_2\|

因此 L_f = \|D\|。对于对角矩阵:

L_f = \|D\| = \max_{k=1,\ldots,n} |d_k| = \max_{k=1,\ldots,n} d_k

因此理论上最优的步长是:

\gamma_{\text{opt}} = \frac{1}{L_f} = \frac{1}{\max_k d_k}

评论