Frank-Wolfe算法(也称为条件梯度法)
字数 6284 2025-12-24 18:51:28

好的,根据你提供的列表,我注意到Frank-Wolfe算法(也称为条件梯度法) 的基础题和进阶题都出现过,但其核心思想、推导和应用场景并未被系统性地详细阐述。我将为你讲解一个围绕该算法的、在列表中尚未出现过的具体问题。

Frank-Wolfe条件梯度法在稀疏低秩优化问题中的应用基础题

1. 题目描述

考虑以下非线性规划问题:

\[\begin{aligned} \min_{\mathbf{X}} \quad & f(\mathbf{X}) \\ \text{s.t.} \quad & \|\mathbf{X}\|_* \le \tau, \\ & \mathbf{X} \in \mathbb{R}^{n \times n}, \ \mathbf{X} \succeq 0 \end{aligned} \]

其中:

  • 目标函数 \(f(\mathbf{X})\) 是一个关于对称半正定矩阵 \(\mathbf{X}\)光滑凸函数(例如,\(f(\mathbf{X}) = \frac{1}{2} \|\mathcal{A}(\mathbf{X}) - \mathbf{b}\|_2^2\),这里 \(\mathcal{A}\) 是线性映射)。
  • \(\|\mathbf{X}\|_*\) 表示矩阵 \(\mathbf{X}\)核范数,即所有奇异值之和。
  • \(\mathbf{X} \succeq 0\) 表示矩阵 \(\mathbf{X}\)半正定的。
  • \(\tau > 0\) 是一个给定的常数,用于控制解的“复杂度”(核范数约束通常用于诱导矩阵的低秩性和稀疏性,常见于矩阵补全、鲁棒PCA等问题)。

任务:利用 Frank-Wolfe条件梯度法 来高效求解这个优化问题,解释其为何适用于此类带有“原子范数”(此处是核范数)约束的问题,并详细推导其迭代步骤。


2. 解题过程循序渐进讲解

步骤一:理解问题的结构与核心难点

  1. 目标:我们要最小化一个光滑凸函数 \(f(\mathbf{X})\)
  2. 约束:约束有两个。
    • 核范数约束\(\|\mathbf{X}\|_* \le \tau\)。这个约束集合是一个凸集,因为它是一个范数球。这个球在矩阵空间中是一个“尖锐”的集合(它的边界包含许多低秩矩阵)。
    • 半正定约束\(\mathbf{X} \succeq 0\)。这个约束集合也是一个凸锥(凸集)。
    • 这两个约束的交集仍然是凸集,我们记为可行域 \(\mathcal{D}\)
  3. 难点:对于大多数梯度下降或投影梯度法,将迭代点投影回这个复杂的可行域 \(\mathcal{D}\)(即求解 \(\min_{\mathbf{Y} \in \mathcal{D}} \|\mathbf{Y} - \mathbf{X}_k\|_F^2\))本身就是一个困难的子优化问题。

步骤二:回顾 Frank-Wolfe 算法的核心思想

Frank-Wolfe 算法(1956年提出)特别适用于约束集是紧凸集(有界闭凸集)的情况。它的核心思想是:用线性近似替代原目标,在凸集上优化这个线性函数

为什么这样做有优势?

  • 线性函数在凸集上的最小值点必定在某个极点上
  • 对于某些特殊的凸集(如范数球、多面体),寻找线性函数在其上的最小点(或称为线性优化子问题)比进行欧几里得投影要容易得多。

步骤三:Frank-Wolfe 算法的通用框架

给定问题:\(\min_{\mathbf{x} \in \mathcal{D}} f(\mathbf{x})\),其中 \(f\) 是凸函数,\(\mathcal{D}\) 是紧凸集。

  1. 初始化:选择初始点 \(\mathbf{X}_0 \in \mathcal{D}\)
  2. For k = 0, 1, 2, ...
    a. 线性化:在当前点 \(\mathbf{X}_k\) 处,计算目标函数的梯度 \(\nabla f(\mathbf{X}_k)\)
    b. 线性最小化子问题 (Linear Minimization Oracle, LMO)
    找到一个点 \(\mathbf{S}_k\),使得它是梯度负方向(下降方向)在可行域上的最佳可行点。

\[ \mathbf{S}_k = \arg\min_{\mathbf{S} \in \mathcal{D}} \langle \nabla f(\mathbf{X}_k),\ \mathbf{S} \rangle \]

   这里 $\langle A, B \rangle = \text{tr}(A^T B)$ 是矩阵的内积。这个步骤是在寻找一个**可行下降方向**。
c. **确定步长**:选择一个步长 $\gamma_k \in [0, 1]$。常用的选择有:
    - 预定义序列,如 $\gamma_k = \frac{2}{k+2}$。
    - 通过线搜索确定:$\gamma_k = \arg\min_{\gamma \in [0,1]} f(\mathbf{X}_k + \gamma (\mathbf{S}_k - \mathbf{X}_k))$。
d. **更新**:沿着 $\mathbf{S}_k$ 和 $\mathbf{X}_k$ 之间的连线(都在凸集 $\mathcal{D}$ 内)进行更新:

\[ \mathbf{X}_{k+1} = (1 - \gamma_k)\mathbf{X}_k + \gamma_k \mathbf{S}_k \]

   注意:由于更新是凸组合,$\mathbf{X}_{k+1}$ 也一定在 $\mathcal{D}$ 内。**不需要做复杂的投影!**

步骤四:将 Frank-Wolfe 应用于我们的具体问题

现在,我们将这个通用框架套用到我们的核范数约束问题上。

  1. 可行域 \(\mathcal{D}\)

\[ \mathcal{D} = \{ \mathbf{X} \in \mathbb{R}^{n \times n} \mid \mathbf{X} \succeq 0, \ \|\mathbf{X}\|_* \le \tau \} \]

这是一个凸集。
  1. 线性最小化子问题 (LMO)
    在第 \(k\) 次迭代,我们需要求解:

\[ \mathbf{S}_k = \arg\min_{\mathbf{S} \succeq 0, \|\mathbf{S}\|_* \le \tau} \langle \nabla f(\mathbf{X}_k),\ \mathbf{S} \rangle \]

这是一个在核范数球和半正定锥交集上最小化线性函数的问题。

**关键洞察**:线性函数在核范数球上的最小值点具有特殊的结构。
- 根据对偶范数的性质,线性函数 $\langle \mathbf{G}, \mathbf{S} \rangle$ 在单位核范数球($\|\mathbf{S}\|_* \le 1$)上的最小值等于 $-\|\mathbf{G}\|_{op}$,其中 $\|\mathbf{G}\|_{op}$ 是 $\mathbf{G}$ 的**算子范数**(即最大奇异值)。
- 达到这个最小值的 $\mathbf{S}$ 是 $\mathbf{G}$ 的**对应于最大奇异值的(归一化)左、右奇异向量外积**。
**具体求解**:
a. 令 $\mathbf{G}_k = \nabla f(\mathbf{X}_k)$。
b. 计算 $\mathbf{G}_k$ 的**最大奇异值 $\sigma_1$** 以及对应的左奇异向量 $\mathbf{u}_1$ 和右奇异向量 $\mathbf{v}_1$。
c. 那么,线性函数在 $\|\mathbf{S}\|_* \le \tau$ 上的最小点(即我们的LMO解)为:

\[ \mathbf{S}_k = -\tau \cdot \mathbf{u}_1 \mathbf{v}_1^T \]

    **验证**:
    - 核范数:$\|\mathbf{S}_k\|_* = \tau \cdot \|\mathbf{u}_1\mathbf{v}_1^T\|_* = \tau$(因为这是一个秩一矩阵,其唯一奇异值为 $\tau$)。
    - 半正定:$\mathbf{S}_k$ 显然是半正定的吗?不,$\mathbf{u}_1 \mathbf{v}_1^T$ 通常不是对称半正定的。我们需要保证 $\mathbf{S}_k$ 是对称半正定的。
    - 修正:由于 $\mathbf{X}$ 必须是**对称**半正定矩阵,我们的可行域也要求对称性。实际上,在矩阵补全等问题中,$\mathbf{G}_k$ 通常也是对称的(因为 $f$ 是关于对称矩阵的)。对于实对称矩阵 $\mathbf{G}_k$,其奇异值分解退化为特征值分解。最大奇异值 $\sigma_1$ 对应的是**绝对值最大的特征值 $\lambda_{\max}$**(可能为负)。对应的特征向量是 $\mathbf{v}_1$。
    - 因此,当 $\mathbf{G}_k$ 对称时,LMO的解为:

\[ \mathbf{S}_k = \arg\min_{\mathbf{S} \succeq 0, \|\mathbf{S}\|_* \le \tau} \langle \mathbf{G}_k, \mathbf{S} \rangle = -\tau \cdot \mathbf{v}_1 \mathbf{v}_1^T \]

      其中 $\mathbf{v}_1$ 是 $\mathbf{G}_k$ 对应于**最小特征值**(即绝对值最大的负特征值)的单位特征向量。如果 $\mathbf{G}_k$ 的所有特征值都非负,那么最小值点就是 $\mathbf{S}_k = \mathbf{0}$。

    **所以,LMO的求解本质上是一个主特征向量/特征值计算问题**,可以用幂方法(Power Iteration)或Lanczos算法高效求解。
  1. 迭代更新

\[ \mathbf{X}_{k+1} = (1 - \gamma_k)\mathbf{X}_k + \gamma_k \mathbf{S}_k \]

**美妙之处**:如果 $\mathbf{X}_k$ 是低秩矩阵(核范数约束倾向于产生低秩解),而 $\mathbf{S}_k$ 是一个秩一矩阵,那么 $\mathbf{X}_{k+1}$ 的秩至多是 $\text{rank}(\mathbf{X}_k) + 1$。因此,我们可以用**低秩矩阵因式分解**的形式来存储和更新 $\mathbf{X}_k$,极大地节省了存储空间(从 $O(n^2)$ 到 $O(nr)$,其中 $r$ 是当前秩)。

步骤五:算法总结与优势

  1. 算法流程

    • 输入:目标函数 \(f\),参数 \(\tau\),初始点 \(\mathbf{X}_0\)(如 \(\mathbf{0}\)),最大迭代次数 \(K\)
    • 输出:近似最优解 \(\mathbf{X}_K\)
    • 过程:
      1. for \(k = 0\) to \(K-1\):
      2. 计算梯度 \(\mathbf{G}_k = \nabla f(\mathbf{X}_k)\)
      3. LMO:找到 \(\mathbf{G}_k\) 的最小特征值对应的单位特征向量 \(\mathbf{v}_{\min}\)。令 \(\mathbf{S}_k = -\tau \cdot \mathbf{v}_{\min} \mathbf{v}_{\min}^T\)
      4. 确定步长 \(\gamma_k\)(例如,\(\gamma_k = 2/(k+2)\) 或通过线搜索)。
      5. 更新:\(\mathbf{X}_{k+1} = (1-\gamma_k)\mathbf{X}_k + \gamma_k \mathbf{S}_k\)
      6. end for
  2. 优势

    • 避免投影:最大的优势是无需将稠密矩阵投影到核范数球上(这是一个涉及完整SVD的昂贵操作)。
    • 保持低秩结构:迭代解天生就是低秩矩阵的和,存储和计算高效。
    • 线性收敛:对于光滑凸函数,Frank-Wolfe算法具有 \(O(1/k)\) 的次线性收敛率。对于目标函数具有更强凸性(如强凸)的情况,可以有线性收敛率。
    • 稀疏的迭代方向:方向 \(\mathbf{S}_k\) 是秩一矩阵,结构非常简单。

步骤六:简单数值示例(思想实验)

假设 \(f(\mathbf{X}) = \frac{1}{2}\|\mathbf{X} - \mathbf{M}\|_F^2\),其中 \(\mathbf{M}\) 是一个给定的观测矩阵(可能带有噪声和缺失值)。这个问题的解就是用 \(\mathbf{M}\) 进行软阈值奇异值分解(SVT),但我们可以用Frank-Wolfe来近似。

  1. 初始化 \(\mathbf{X}_0 = \mathbf{0}\)
  2. 第一次迭代:
    • \(\nabla f(\mathbf{X}_0) = \mathbf{X}_0 - \mathbf{M} = -\mathbf{M}\)
    • \(-\mathbf{M}\) (即对 \(\mathbf{M}\)) 做特征值分解,找到最大特征值 \(\sigma_1\) 和对应特征向量 \(\mathbf{v}_1\)。LMO解为 \(\mathbf{S}_0 = \tau \mathbf{v}_1 \mathbf{v}_1^T\)
    • 更新 \(\mathbf{X}_1 = \gamma_0 \tau \mathbf{v}_1 \mathbf{v}_1^T\)
  3. 第二次迭代:
    • 计算 \(\mathbf{X}_1 - \mathbf{M}\) 的梯度。
    • 再次求解主特征向量问题,得到新的秩一方向 \(\mathbf{S}_1\)
    • 更新 \(\mathbf{X}_2 = (1-\gamma_1)\mathbf{X}_1 + \gamma_1 \mathbf{S}_1\),这是一个两个秩一矩阵的加权和

可以看到,每次迭代只增加一个秩一分量,最终的解是少数几个外积的加权和,完美地满足了我们对低秩解的需求。

3. 总结

这道题展示了 Frank-Wolfe条件梯度法 如何巧妙地应用于带有核范数约束的矩阵优化问题。其核心在于将复杂的欧几里得投影(需要完整SVD)替换为求解一个相对简单的线性最小化子问题(只需要计算主特征向量),同时迭代过程自然地产生并保持了矩阵的低秩结构。这使得它在处理大规模、低秩诱导的优化问题(如矩阵补全、压缩感知)时非常高效。这个算法是凸优化与数值线性代数知识相结合的一个优美范例。

好的,根据你提供的列表,我注意到 Frank-Wolfe算法(也称为条件梯度法) 的基础题和进阶题都出现过,但其核心思想、推导和应用场景并未被系统性地详细阐述。我将为你讲解一个围绕该算法的、在列表中尚未出现过的具体问题。 Frank-Wolfe条件梯度法在稀疏低秩优化问题中的应用基础题 1. 题目描述 考虑以下非线性规划问题: \[ \begin{aligned} \min_ {\mathbf{X}} \quad & f(\mathbf{X}) \\ \text{s.t.} \quad & \|\mathbf{X}\|_ * \le \tau, \\ & \mathbf{X} \in \mathbb{R}^{n \times n}, \ \mathbf{X} \succeq 0 \end{aligned} \] 其中: 目标函数 \( f(\mathbf{X}) \) 是一个关于对称半正定矩阵 \(\mathbf{X}\) 的 光滑凸函数 (例如,\( f(\mathbf{X}) = \frac{1}{2} \|\mathcal{A}(\mathbf{X}) - \mathbf{b}\|_ 2^2 \),这里 \(\mathcal{A}\) 是线性映射)。 \( \|\mathbf{X}\|_ * \) 表示矩阵 \(\mathbf{X}\) 的 核范数 ,即所有奇异值之和。 \( \mathbf{X} \succeq 0 \) 表示矩阵 \(\mathbf{X}\) 是 半正定 的。 \( \tau > 0 \) 是一个给定的常数,用于控制解的“复杂度”(核范数约束通常用于诱导矩阵的低秩性和稀疏性,常见于矩阵补全、鲁棒PCA等问题)。 任务 :利用 Frank-Wolfe条件梯度法 来高效求解这个优化问题,解释其为何适用于此类带有“原子范数”(此处是核范数)约束的问题,并详细推导其迭代步骤。 2. 解题过程循序渐进讲解 步骤一:理解问题的结构与核心难点 目标 :我们要最小化一个光滑凸函数 \( f(\mathbf{X}) \)。 约束 :约束有两个。 核范数约束 :\( \|\mathbf{X}\|_ * \le \tau \)。这个约束集合是一个 凸集 ,因为它是一个范数球。这个球在矩阵空间中是一个“尖锐”的集合(它的边界包含许多低秩矩阵)。 半正定约束 :\( \mathbf{X} \succeq 0 \)。这个约束集合也是一个凸锥(凸集)。 这两个约束的交集仍然是凸集,我们记为可行域 \( \mathcal{D} \)。 难点 :对于大多数梯度下降或投影梯度法,将迭代点投影回这个复杂的可行域 \( \mathcal{D} \)(即求解 \( \min_ {\mathbf{Y} \in \mathcal{D}} \|\mathbf{Y} - \mathbf{X}_ k\|_ F^2 \))本身就是一个困难的子优化问题。 步骤二:回顾 Frank-Wolfe 算法的核心思想 Frank-Wolfe 算法(1956年提出)特别适用于约束集是 紧凸集 (有界闭凸集)的情况。它的核心思想是: 用线性近似替代原目标,在凸集上优化这个线性函数 。 为什么这样做有优势? 线性函数在凸集上的最小值点必定在 某个极点上 。 对于某些特殊的凸集(如范数球、多面体),寻找线性函数在其上的最小点(或称为 线性优化子问题 )比进行欧几里得投影要容易得多。 步骤三:Frank-Wolfe 算法的通用框架 给定问题:\(\min_ {\mathbf{x} \in \mathcal{D}} f(\mathbf{x})\),其中 \(f\) 是凸函数,\(\mathcal{D}\) 是紧凸集。 初始化 :选择初始点 \(\mathbf{X}_ 0 \in \mathcal{D}\)。 For k = 0, 1, 2, ... a. 线性化 :在当前点 \(\mathbf{X}_ k\) 处,计算目标函数的梯度 \(\nabla f(\mathbf{X}_ k)\)。 b. 线性最小化子问题 (Linear Minimization Oracle, LMO) : 找到一个点 \(\mathbf{S}_ k\),使得它是梯度负方向(下降方向)在可行域上的最佳可行点。 \[ \mathbf{S} k = \arg\min {\mathbf{S} \in \mathcal{D}} \langle \nabla f(\mathbf{X} k),\ \mathbf{S} \rangle \] 这里 \(\langle A, B \rangle = \text{tr}(A^T B)\) 是矩阵的内积。这个步骤是在寻找一个 可行下降方向 。 c. 确定步长 :选择一个步长 \(\gamma_ k \in [ 0, 1 ]\)。常用的选择有: - 预定义序列,如 \(\gamma_ k = \frac{2}{k+2}\)。 - 通过线搜索确定:\(\gamma_ k = \arg\min {\gamma \in [ 0,1]} f(\mathbf{X}_ k + \gamma (\mathbf{S}_ k - \mathbf{X}_ k))\)。 d. 更新 :沿着 \(\mathbf{S}_ k\) 和 \(\mathbf{X} k\) 之间的连线(都在凸集 \(\mathcal{D}\) 内)进行更新: \[ \mathbf{X} {k+1} = (1 - \gamma_ k)\mathbf{X}_ k + \gamma_ k \mathbf{S} k \] 注意:由于更新是凸组合,\(\mathbf{X} {k+1}\) 也一定在 \(\mathcal{D}\) 内。 不需要做复杂的投影! 步骤四:将 Frank-Wolfe 应用于我们的具体问题 现在,我们将这个通用框架套用到我们的核范数约束问题上。 可行域 \(\mathcal{D}\) : \[ \mathcal{D} = \{ \mathbf{X} \in \mathbb{R}^{n \times n} \mid \mathbf{X} \succeq 0, \ \|\mathbf{X}\|_ * \le \tau \} \] 这是一个凸集。 线性最小化子问题 (LMO) : 在第 \(k\) 次迭代,我们需要求解: \[ \mathbf{S} k = \arg\min {\mathbf{S} \succeq 0, \|\mathbf{S}\|_ * \le \tau} \langle \nabla f(\mathbf{X}_ k),\ \mathbf{S} \rangle \] 这是一个在核范数球和半正定锥交集上最小化线性函数的问题。 关键洞察 :线性函数在核范数球上的最小值点具有特殊的结构。 根据对偶范数的性质,线性函数 \(\langle \mathbf{G}, \mathbf{S} \rangle\) 在单位核范数球(\(\|\mathbf{S}\| * \le 1\))上的最小值等于 \(-\|\mathbf{G}\| {op}\),其中 \(\|\mathbf{G}\|_ {op}\) 是 \(\mathbf{G}\) 的 算子范数 (即最大奇异值)。 达到这个最小值的 \(\mathbf{S}\) 是 \(\mathbf{G}\) 的 对应于最大奇异值的(归一化)左、右奇异向量外积 。 具体求解 : a. 令 \(\mathbf{G}_ k = \nabla f(\mathbf{X}_ k)\)。 b. 计算 \(\mathbf{G}_ k\) 的 最大奇异值 \(\sigma_ 1\) 以及对应的左奇异向量 \(\mathbf{u}_ 1\) 和右奇异向量 \(\mathbf{v} 1\)。 c. 那么,线性函数在 \(\|\mathbf{S}\| * \le \tau\) 上的最小点(即我们的LMO解)为: \[ \mathbf{S}_ k = -\tau \cdot \mathbf{u}_ 1 \mathbf{v}_ 1^T \] 验证 : 核范数:\(\|\mathbf{S} k\| * = \tau \cdot \|\mathbf{u}_ 1\mathbf{v} 1^T\| * = \tau\)(因为这是一个秩一矩阵,其唯一奇异值为 \(\tau\))。 半正定:\(\mathbf{S}_ k\) 显然是半正定的吗?不,\(\mathbf{u}_ 1 \mathbf{v}_ 1^T\) 通常不是对称半正定的。我们需要保证 \(\mathbf{S}_ k\) 是对称半正定的。 修正:由于 \(\mathbf{X}\) 必须是 对称 半正定矩阵,我们的可行域也要求对称性。实际上,在矩阵补全等问题中,\(\mathbf{G}_ k\) 通常也是对称的(因为 \(f\) 是关于对称矩阵的)。对于实对称矩阵 \(\mathbf{G} k\),其奇异值分解退化为特征值分解。最大奇异值 \(\sigma_ 1\) 对应的是** 绝对值最大的特征值 \(\lambda {\max}\)** (可能为负)。对应的特征向量是 \(\mathbf{v}_ 1\)。 因此,当 \(\mathbf{G} k\) 对称时,LMO的解为: \[ \mathbf{S} k = \arg\min {\mathbf{S} \succeq 0, \|\mathbf{S}\| * \le \tau} \langle \mathbf{G}_ k, \mathbf{S} \rangle = -\tau \cdot \mathbf{v}_ 1 \mathbf{v}_ 1^T \] 其中 \(\mathbf{v}_ 1\) 是 \(\mathbf{G}_ k\) 对应于 最小特征值 (即绝对值最大的负特征值)的单位特征向量。如果 \(\mathbf{G}_ k\) 的所有特征值都非负,那么最小值点就是 \(\mathbf{S}_ k = \mathbf{0}\)。 所以,LMO的求解本质上是一个主特征向量/特征值计算问题 ,可以用幂方法(Power Iteration)或Lanczos算法高效求解。 迭代更新 : \[ \mathbf{X}_ {k+1} = (1 - \gamma_ k)\mathbf{X}_ k + \gamma_ k \mathbf{S}_ k \] 美妙之处 :如果 \(\mathbf{X}_ k\) 是低秩矩阵(核范数约束倾向于产生低秩解),而 \(\mathbf{S} k\) 是一个秩一矩阵,那么 \(\mathbf{X} {k+1}\) 的秩至多是 \(\text{rank}(\mathbf{X}_ k) + 1\)。因此,我们可以用 低秩矩阵因式分解 的形式来存储和更新 \(\mathbf{X}_ k\),极大地节省了存储空间(从 \(O(n^2)\) 到 \(O(nr)\),其中 \(r\) 是当前秩)。 步骤五:算法总结与优势 算法流程 : 输入:目标函数 \(f\),参数 \(\tau\),初始点 \(\mathbf{X}_ 0\)(如 \(\mathbf{0}\)),最大迭代次数 \(K\)。 输出:近似最优解 \(\mathbf{X}_ K\)。 过程: for \(k = 0\) to \(K-1\): 计算梯度 \(\mathbf{G}_ k = \nabla f(\mathbf{X}_ k)\)。 LMO :找到 \(\mathbf{G} k\) 的最小特征值对应的单位特征向量 \(\mathbf{v} {\min}\)。令 \(\mathbf{S} k = -\tau \cdot \mathbf{v} {\min} \mathbf{v}_ {\min}^T\)。 确定步长 \(\gamma_ k\)(例如,\(\gamma_ k = 2/(k+2)\) 或通过线搜索)。 更新:\(\mathbf{X}_ {k+1} = (1-\gamma_ k)\mathbf{X}_ k + \gamma_ k \mathbf{S}_ k\)。 end for 优势 : 避免投影 :最大的优势是无需将稠密矩阵投影到核范数球上(这是一个涉及完整SVD的昂贵操作)。 保持低秩结构 :迭代解天生就是低秩矩阵的和,存储和计算高效。 线性收敛 :对于光滑凸函数,Frank-Wolfe算法具有 \(O(1/k)\) 的次线性收敛率。对于目标函数具有更强凸性(如强凸)的情况,可以有线性收敛率。 稀疏的迭代方向 :方向 \(\mathbf{S}_ k\) 是秩一矩阵,结构非常简单。 步骤六:简单数值示例(思想实验) 假设 \(f(\mathbf{X}) = \frac{1}{2}\|\mathbf{X} - \mathbf{M}\|_ F^2\),其中 \(\mathbf{M}\) 是一个给定的观测矩阵(可能带有噪声和缺失值)。这个问题的解就是用 \(\mathbf{M}\) 进行软阈值奇异值分解(SVT),但我们可以用Frank-Wolfe来近似。 初始化 \(\mathbf{X}_ 0 = \mathbf{0}\)。 第一次迭代: \(\nabla f(\mathbf{X}_ 0) = \mathbf{X}_ 0 - \mathbf{M} = -\mathbf{M}\)。 对 \(-\mathbf{M}\) (即对 \(\mathbf{M}\)) 做特征值分解,找到最大特征值 \(\sigma_ 1\) 和对应特征向量 \(\mathbf{v}_ 1\)。LMO解为 \(\mathbf{S}_ 0 = \tau \mathbf{v}_ 1 \mathbf{v}_ 1^T\)。 更新 \(\mathbf{X}_ 1 = \gamma_ 0 \tau \mathbf{v}_ 1 \mathbf{v}_ 1^T\)。 第二次迭代: 计算 \(\mathbf{X}_ 1 - \mathbf{M}\) 的梯度。 再次求解主特征向量问题,得到新的秩一方向 \(\mathbf{S}_ 1\)。 更新 \(\mathbf{X}_ 2 = (1-\gamma_ 1)\mathbf{X}_ 1 + \gamma_ 1 \mathbf{S}_ 1\),这是一个 两个秩一矩阵的加权和 。 可以看到,每次迭代只增加一个秩一分量,最终的解是少数几个外积的加权和,完美地满足了我们对 低秩解 的需求。 3. 总结 这道题展示了 Frank-Wolfe条件梯度法 如何巧妙地应用于带有 核范数约束 的矩阵优化问题。其核心在于将复杂的欧几里得投影(需要完整SVD)替换为求解一个相对简单的 线性最小化子问题 (只需要计算主特征向量),同时迭代过程自然地产生并保持了矩阵的低秩结构。这使得它在处理大规模、低秩诱导的优化问题(如矩阵补全、压缩感知)时非常高效。这个算法是凸优化与数值线性代数知识相结合的一个优美范例。