优化问题的背景
给出的优化目标是一个多变量的函数,形式如下:
min W , b , Y ∈ I n d , Z ∥ X T W + 1 b T − Y ∥ F 2 + γ ∥ W ∥ F 2 + λ t r ( Z T 1 1 T Z ) + μ 2 ∥ Y − Z + 1 μ Λ ∥ F 2 \min_{W,b,Y\in Ind,Z}\left\|X^TW+\mathbf{1}b^T-Y\right\|_F^2+\gamma\|W\|_F^2 \\ +\lambda\mathrm{tr}\left(Z^T\mathbf{1}\mathbf{1}^TZ\right)+\frac{\mu}{2}\left\|Y-Z+\frac{1}{\mu}\Lambda\right\|_F^2 W,b,Y∈Ind,Zmin XTW+1bT−Y F2+γ∥W∥F2+λtr(ZT11TZ)+2μ Y−Z+μ1Λ F2
这里的目标函数包括多项:
-
第一项 ∥ X T W + 1 b T − Y ∥ F 2 \|X^TW + \mathbf{1}b^T - Y\|_F^2 ∥XTW+1bT−Y∥F2
- 描述的是 Y Y Y 和 X T W + 1 b T X^TW + \mathbf{1}b^T XTW+1bT 的差异(平方 Frobenius 范数)。
- W W W 和 b b b 是待优化的线性模型参数, Y Y Y 是一个表示分类结果的离散矩阵。
-
第二项 γ ∥ W ∥ F 2 \gamma\|W\|_F^2 γ∥W∥F2
- 是 W W W 的正则化项,用于控制模型复杂度,防止过拟合。
-
第三项 λ t r ( Z T 1 1 T Z ) \lambda\mathrm{tr}\left(Z^T\mathbf{1}\mathbf{1}^TZ\right) λtr(ZT11TZ)
- 控制 Z Z Z 的某种稀疏性(或行一致性),其中 1 \mathbf{1} 1 是全 1 的列向量, t r \mathrm{tr} tr 表示迹运算。
-
第四项 μ 2 ∥ Y − Z + 1 μ Λ ∥ F 2 \frac{\mu}{2}\left\|Y-Z+\frac{1}{\mu}\Lambda\right\|_F^2 2μ Y−Z+μ1Λ F2
- 表示 Y Y Y 和 Z Z Z 的一致性约束, Λ \Lambda Λ 是拉格朗日乘子, μ \mu μ 是一个惩罚参数。
- 这种形式通常出现在交替方向乘子法(ADMM)中,用于逼近等式约束 Y ≈ Z Y \approx Z Y≈Z。
固定 W W W, b b b, Z Z Z 的优化问题
重写优化问题
在固定 W W W, b b b, Z Z Z 的情况下,优化问题只需针对 Y Y Y 来求解。将目标函数中与 Y Y Y 相关的部分提取出来:
min Y ∈ I n d ∥ X T W + 1 b T − Y ∥ F 2 + μ 2 ∥ Y − Z + 1 μ Λ ∥ F 2 \min_{Y\in Ind} \|X^TW+\mathbf{1}b^T - Y\|_F^2 + \frac{\mu}{2}\|Y - Z + \frac{1}{\mu}\Lambda\|_F^2 Y∈Indmin∥XTW+1bT−Y∥F2+2μ∥Y−Z+μ1Λ∥F2
展开平方项:
∥ X T W + 1 b T − Y ∥ F 2 = ∥ X T W + 1 b T ∥ F 2 − 2 ⟨ X T W + 1 b T , Y ⟩ + ∥ Y ∥ F 2 \|X^TW+\mathbf{1}b^T - Y\|_F^2 = \|X^TW+\mathbf{1}b^T\|_F^2 - 2\langle X^TW+\mathbf{1}b^T, Y \rangle + \|Y\|_F^2 ∥XTW+1bT−Y∥F2=∥XTW+1bT∥F2−2⟨XTW+1bT,Y⟩+∥Y∥F2
∥ Y − Z + 1 μ Λ ∥ F 2 = ∥ Y ∥ F 2 − 2 ⟨ Y , Z − 1 μ Λ ⟩ + ∥ Z − 1 μ Λ ∥ F 2 \|Y - Z + \frac{1}{\mu}\Lambda\|_F^2 = \|Y\|_F^2 - 2\langle Y, Z - \frac{1}{\mu}\Lambda \rangle + \|Z - \frac{1}{\mu}\Lambda\|_F^2 ∥Y−Z+μ1Λ∥F2=∥Y∥F2−2⟨Y,Z−μ1Λ⟩+∥Z−μ1Λ∥F2
将它们代入优化目标并合并常数项,最终可以化简为:
min Y ∈ I n d ∥ Y − V ∥ F 2 + const. \min_{Y\in Ind} \|Y - V\|_F^2 + \text{const.} Y∈Indmin∥Y−V∥F2+const.
其中,常数部分与 Y Y Y 无关, V V V 是定义为:
V = 2 2 + μ ( X T W + 1 b T ) + 1 2 + μ ( μ Z − Λ ) V = \frac{2}{2+\mu}\left(X^TW+\mathbf{1}b^T\right) + \frac{1}{2+\mu}(\mu Z - \Lambda) V=2+μ2(XTW+1bT)+2+μ1(μZ−Λ)
进一步的离散约束
矩阵 Y ∈ I n d Y \in Ind Y∈Ind 表示一个类别分配矩阵:
- 每个元素 y i k ∈ { 0 , 1 } y_{ik} \in \{0,1\} yik∈{0,1} 表示是否将样本 i i i 分配给类别 k k k。
- 每一行的和为 1,即 ∑ k = 1 c y i k = 1 \sum_{k=1}^c y_{ik} = 1 ∑k=1cyik=1,表示每个样本必须且只能属于一个类别。
在这种情况下,优化目标可以写成:
min Y ∑ i = 1 n ∑ k = 1 c ( y i k − v i k ) 2 , s . t . y i k ∈ { 0 , 1 } , ∑ k = 1 c y i k = 1 \min_{Y} \sum_{i=1}^n \sum_{k=1}^c (y_{ik} - v_{ik})^2, \quad s.t. \quad y_{ik} \in \{0,1\}, \sum_{k=1}^c y_{ik} = 1 Ymini=1∑nk=1∑c(yik−vik)2,s.t.yik∈{0,1},k=1∑cyik=1
如何求解?
由于每行的 y i : y_{i:} yi: 中只有一个值为 1,其他为 0,问题可以通过遍历(traversal strategy)逐行解决:
每一行的优化
对固定的第 i i i 行,目标是:
min y i : ∑ k = 1 c ( y i k − v i k ) 2 , s . t . y i k ∈ { 0 , 1 } , ∑ k = 1 c y i k = 1 \min_{y_{i:}} \sum_{k=1}^c (y_{ik} - v_{ik})^2, \quad s.t. \quad y_{ik} \in \{0,1\}, \sum_{k=1}^c y_{ik} = 1 yi:mink=1∑c(yik−vik)2,s.t.yik∈{0,1},k=1∑cyik=1
通过观察,这实际上是选择一个使 v i k v_{ik} vik 最大的 k k k。因此,最优解为:
y i k = { 1 , if k = arg max k { v i k } k = 1 c 0 , otherwise. y_{ik} = \begin{cases} 1, & \text{if } k = \arg\max_k \{v_{ik}\}_{k=1}^c \\ 0, & \text{otherwise.} \end{cases} yik={1,0,if k=argmaxk{vik}k=1cotherwise.
换句话说,对于每个样本 i i i, Y Y Y 的每一行都会被设置为一个独热编码(one-hot encoding),对应于 v i k v_{ik} vik 最大的类别索引。
迭代终止条件
通过交替优化(如 ADMM),我们不断更新 W , b , Y , Z W, b, Y, Z W,b,Y,Z 和 Λ \Lambda Λ。对 Y Y Y 的更新迭代直到满足以下条件之一:
- Y − Z → 0 Y - Z \to 0 Y−Z→0:表示 Y Y Y 和 Z Z Z 的一致性达到要求。
- Λ \Lambda Λ 不再更新:拉格朗日乘子停止变化,说明约束收敛。
这是因为优化问题的目标函数和约束条件直接导致了这种选择。让我们详细分析其中的数学逻辑。
目标函数的形式
我们需要解决的问题是:
min y i k ∑ i = 1 n ∑ k = 1 c ( y i k − v i k ) 2 \min_{y_{ik}} \sum_{i=1}^n \sum_{k=1}^c (y_{ik} - v_{ik})^2 yikmini=1∑nk=1∑c(yik−vik)2
约束条件
- 每个元素 y i k ∈ { 0 , 1 } y_{ik} \in \{0, 1\} yik∈{0,1},表示 y i k y_{ik} yik 要么是 0,要么是 1。
- 每行
y
i
:
=
(
y
i
1
,
y
i
2
,
…
,
y
i
c
)
y_{i:} = (y_{i1}, y_{i2}, \dots, y_{ic})
yi:=(yi1,yi2,…,yic) 中,只有一个值是 1,即:
∑ k = 1 c y i k = 1 \sum_{k=1}^c y_{ik} = 1 k=1∑cyik=1
换句话说,矩阵 Y Y Y 的每一行是一个独热编码(one-hot encoding),表示样本 i i i 属于某个类别 k k k。
分解为逐行优化
在给定约束下,优化目标可以逐行独立解决,因为每一行 y i : y_{i:} yi: 的变量互不影响。这意味着我们可以逐行求解:
min y i : ∑ k = 1 c ( y i k − v i k ) 2 , subject to y i k ∈ { 0 , 1 } , ∑ k = 1 c y i k = 1. \min_{y_{i:}} \sum_{k=1}^c (y_{ik} - v_{ik})^2, \quad \text{subject to } y_{ik} \in \{0, 1\}, \sum_{k=1}^c y_{ik} = 1. yi:mink=1∑c(yik−vik)2,subject to yik∈{0,1},k=1∑cyik=1.
逐行优化的含义
对第 i i i 行来说,目标是:
min y i : ∑ k = 1 c ( y i k − v i k ) 2 \min_{y_{i:}} \sum_{k=1}^c (y_{ik} - v_{ik})^2 yi:mink=1∑c(yik−vik)2
由于 y i : y_{i:} yi: 的每个元素 y i k y_{ik} yik 只能取值 0 或 1,并且约束 ∑ k = 1 c y i k = 1 \sum_{k=1}^c y_{ik} = 1 ∑k=1cyik=1 确保其中只有一个值为 1,这就意味着我们只需要选择一个类别 k k k,使得目标函数对这一行的贡献最小。
目标函数最小化的选择
观察目标函数中的每一行优化问题:
∑ k = 1 c ( y i k − v i k ) 2 \sum_{k=1}^c (y_{ik} - v_{ik})^2 k=1∑c(yik−vik)2
- y i k = 1 y_{ik} = 1 yik=1 时, ( y i k − v i k ) 2 = ( 1 − v i k ) 2 (y_{ik} - v_{ik})^2 = (1 - v_{ik})^2 (yik−vik)2=(1−vik)2。
- y i k = 0 y_{ik} = 0 yik=0 时, ( y i k − v i k ) 2 = v i k 2 (y_{ik} - v_{ik})^2 = v_{ik}^2 (yik−vik)2=vik2。
为了满足约束,每行只能有一个 y i k = 1 y_{ik} = 1 yik=1,其他 y i k = 0 y_{ik} = 0 yik=0。因此,优化目标可以等价于:
min k ( 1 − v i k ) 2 + ∑ j ≠ k v i j 2 \min_k (1 - v_{ik})^2 + \sum_{j \neq k} v_{ij}^2 kmin(1−vik)2+j=k∑vij2
因为 ∑ j ≠ k v i j 2 \sum_{j \neq k} v_{ij}^2 ∑j=kvij2 对所有 k k k 都是相同的(只影响固定的其他列),所以只需要最小化 ( 1 − v i k ) 2 (1 - v_{ik})^2 (1−vik)2,也就是最大化 v i k v_{ik} vik。
总结
最终的逐行解可以表述为:
y i k = { 1 , if k = arg max k { v i k } k = 1 c , 0 , otherwise. y_{ik} = \begin{cases} 1, & \text{if } k = \arg\max_k \{v_{ik}\}_{k=1}^c, \\ 0, & \text{otherwise.} \end{cases} yik={1,0,if k=argmaxk{vik}k=1c,otherwise.
这实际上是找到第 i i i 行中 v i k v_{ik} vik 最大的那个 k k k,将 y i k y_{ik} yik 设置为 1,其他设置为 0。
直观解释
- v i k v_{ik} vik 表示优化中一个候选类别 k k k 对样本 i i i 的分数。
- 为了让 y i : y_{i:} yi: 逼近 v i : v_{i:} vi:,自然选择分数最大的类别 k k k 为 1,其他为 0。
因此,这就是为什么选择 arg max k v i k \arg\max_k v_{ik} argmaxkvik 的原因!
总结
- 给出的优化问题包含连续和离散变量,目标是找到一个满足多项约束的最优解。
- 在固定部分变量后,针对离散变量 Y Y Y 的优化被转化为一个简单的行级别问题。
- 对每行的优化,通过找到 v i k v_{ik} vik 的最大值索引实现,得到一个独热编码解。
- 迭代更新 Y Y Y 直到收敛或满足终止条件。