凸优化实战1
近期工作主要在关注于优化问题求解,积累了一些常用套路
线性回归
设样本数 $n$, 样本特征矩阵 $X \in \mathbb{R}^{n \times m}$, 样本标签矩阵 $Y \in \mathbb{R}^{n \times q}$, 线性回归参数矩阵 $W \in \mathbb{R}^{m \times q}$.
则最基础的线性回归问题有如下形式
$$
\min_W \frac{1}{2}\|Y-XW\|_F^2
$$
由于函数是一个凸函数 (证明略),肯定有全局最优解。
令
$$
\nabla \ell(W) = X^T (XW-Y) = 0
$$
不难得到
$$
W^* = (X^T X)^{-1} X^T Y
$$
事实上,由于要考虑 $X$ 矩阵病态不可求逆的情况,
数值计算时大多数时候都会用 $\alpha$ 特别小($1\times 10^{-8}$ )的 Rigid Regression
来代替朴素的 Linear Regression。
F范数正则化 (Rigid Regression)
对$W$ 添加一个F范数正则项(正则项系数 $\alpha \in \mathbb{R}$),则有如下形式(也称岭回归问题)
$$
\min_W \frac{1}{2}\|Y-XW\|_F^2 + \frac{\alpha}{2} \|W\|_F^2
$$
函数是凸函数加凸函数,还是凸函数,依然有全局最优解。继续用上面的思路去找到闭式解。
令
$$
\nabla \ell(W) = X^T(XW-Y) + \alpha W = 0
$$
不难得到
$$
W^* = (X^T X + \alpha I)^{-1} X^T Y
$$
L1范数正则化 (Lasso Regression)
$$
\min_W \frac{1}{2} \|Y-XW\|_F^2 + \alpha \|W\|_1
$$
L1范数也是凸函数,所以这个问题依然有全局最优解。
然而,L1范数不好求导,你得不到闭式解。
已知,这个世界上有个技术叫Shrinkage Operator,它专克 L1范数。
记软阈值算子 $\mathcal{S}_\tau(\cdot)$ (soft-thresholding operator)
$$
\begin{aligned}
\mathcal{S}_\tau(x) & = \left\{
\begin{aligned}
& x - \tau, \quad & x > & \ \tau \\
& 0, \quad & |x| < & \ \tau \\
& x + \tau, \quad & x < & -\tau \\
\end{aligned} \right. \\
& = \min(x + \tau, 0) + \max(x - \tau, 0)
\end{aligned}
$$对于
$$
\min_X \frac{1}{2} \|X-Y\|_F^2 + \alpha \|X\|_1
$$其最优解为
$$
X^* = \mathcal{S}_\alpha(Y)
$$
那么,为了把这条引理利用起来,我们将原问题进行松弛
$$
\begin{aligned}
\min_{W,P} \quad & \frac{1}{2} \|Y-XW\|_F^2 + \alpha \|P\|_1 \\
s.t. \quad & P = W
\end{aligned}
$$
用增广拉格朗日函数(ADM)改写损失函数, 引入惩罚项消除等式约束
(其中 $\rho$ 是超参数, 一般在 $(0, 1)$ 之间取值)
$$
\min_{W,P,U} \quad \frac{1}{2} \|Y-XW\|_F^2 + \alpha \|P\|_1 +
\frac{\rho}{2} \|P-W+U\|_F^2
$$
然后使用ADMM算法以如下步骤迭代优化
- $W \leftarrow \arg \min \ell(W) = \frac{1}{2} \|Y-XW\|_F^2$
- $P \leftarrow \arg \min \ell(P) = \frac{\rho}{2} \|P-W+U\|_F^2 + \alpha \|P\|_1$
- $U \leftarrow U + (P-W)$
$W$ 的更新就不赘述了,可以看到这里 $P$ 的更新恰好可以用上Shrinkage Operator的引理
$$
\begin{aligned}
\arg\min_P & \quad \frac{1}{2} \|P-(W-U)\|_F^2 + \frac{\alpha}{\rho} \|P\|_1 \\
= & \quad \mathcal{S}_{\alpha/\rho}(W-U)
\end{aligned}
$$
综上,这个算法以如下步骤反复迭代更新
- $W \leftarrow X^T(XW-Y)$
- $P \leftarrow \min(W-U+\alpha/\rho, 0) + \max(W-U-\alpha/\rho, 0)$
- $U \leftarrow U + (P-W)$
直到 $W$ 和 $P$ 的更新幅度足够小,例如
$$
\frac{\|\Delta W\|_F^2}{\|W\|_F^2} < 1 \times 10^{-4}
$$
核范数正则化
$$
\min_W \frac{1}{2} \|Y-XW\|_F^2 + \alpha \|W\|_*
$$
核范数的定义为 矩阵奇异值的和
$$
\begin{aligned}
\|X\|_* & = \mathrm{sum}(\Sigma) \\
s.t. \quad & X = U \Sigma V^T
\end{aligned}
$$
其中 $\Sigma$ 为 $X$ 的奇异值。
或者, 矩阵 $X$ 的核范数也可以定义为
$$
\|X\|_* = \mathrm{tr}\bigl((X^T X)^{1/2}\bigr) \qquad
$$其中 $(\cdot)^{1/2}$ 为矩阵的平方根分解, 即, 对于有特征值分解的矩阵 $A = P \Lambda P^{-1}$, 其平方根分解为 $A^{1/2} = P \Lambda^{1/2} P^{-1}$.
(感谢吕文龙同学的勘误!)
类似的,也有一个叫奇异值收缩(Singular Value Thresholding)的引理可以帮助我们解决这个问题。
记奇异值收缩算子 $\mathcal{D}_\tau(\cdot)$ (Singular Value Shrinkage Operator)
$$
\begin{aligned}
\mathcal{D}_\tau(X) & = U \tilde{\Sigma} V^T \\
s.t.\quad X & = U \Sigma V^T \\
\quad \tilde{\Sigma} & = \max(\Sigma - \tau, 0)
\end{aligned}
$$对于
$$
\min_X \frac{1}{2} \|X-Y\|_F^2 + \alpha \|X\|_*
$$其最优解为
$$
X^* = \mathcal{D}_{\alpha}(Y)
$$
类似地,我们引入松弛变量 $P$, 用增广拉格朗日函数(ADM)消除等式约束
$$
\min_{W,P,U} \quad \frac{1}{2} \|Y-XW\|_F^2 + \alpha \|P\|_* +
\frac{\rho}{2} \|P-W+U\|_F^2
$$
然后使用ADMM算法以如下步骤迭代优化
- $W \leftarrow \arg \min \ell(W) = \frac{1}{2} \|Y-XW\|_F^2$
- $P \leftarrow \arg \min \ell(P) = \frac{\rho}{2} \|P-W+U\|_F^2 + \alpha \|P\|_*$
- $U \leftarrow U + (P-W)$
代入奇异值收缩方法,得到如下更新公式
- $W \leftarrow X^T(XW-Y)$
- $P \leftarrow \mathcal{D}_{\alpha/\rho}(W-U)$
- $U \leftarrow U + (P-W)$
直到 $W$ 和 $P$ 的更新幅度足够小
低秩表示(Low-Rank Representaiton, LRR)
给定数据矩阵 $X \in \mathbb{R}^{n \times n}$ 和字典矩阵 $A \in \mathbb{R}^{n \times d}$,
低秩表示旨在求解如下优化问题
$$
\begin{aligned}
\min_{Z,E} \quad &
\|Z\|_* + \lambda \|E\|_1 \\
s.t. \quad &
X = A Z + E
\end{aligned}
$$
得到低秩表示系数 $Z \in \mathbb{R}^{d \times m}$ 和噪声 $E \in \mathbb{R}^{n \times m}$。
引入松弛变量 $J$, 使得(下一步增广之后)单独优化 $Z$ 时关于 $Z$ 损失函数足够简单.
$$
\begin{aligned}
\min_{Z, E, J} \quad & \|J\|_* + \lambda \|E\|_1 \\
s.t. \quad & X = A Z + E \\
\quad & Z = J
\end{aligned}
$$
使用ADM对目标函数进行增广,消除等式约束.
$$
\begin{aligned}
\min_{Z, E, J, L_1, L_2}
\quad & \|J\|_* + \lambda \|E\|_1 + \\
\quad & \mathrm{tr}\bigl( L_1^T (AZ+E-X) \bigr) + \\
\quad & \mathrm{tr}\bigl( L_2^T (AZ+E-X) \bigr) + \\
\quad & \frac{\rho}{2} \|AZ+E-X\|_F^2 + \frac{\rho}{2} \|J-Z\|_F^2 \\
\end{aligned}
$$
设
$$
U_1 = \frac{1}{\rho} L1 \\
U_2 = \frac{1}{\rho} L2
$$
代入后,ADMM可以得到更简洁的形式(Scaled Form)
$$
\begin{aligned}
\min_{Z, E, J, U_1, U_2}
\quad & \|J\|_* + \lambda \|E\|_1 + \frac{\rho}{2} \|AZ+E-X+U_1\|_F^2 + \\
\quad & \frac{\rho}{2} \|J-Z+U_2\|_F^2 \\
\end{aligned}
$$
然后以如下步骤迭代优化
- $Z \leftarrow \arg \min \ell(Z)$
- $E \leftarrow \arg \min \ell(E)$
- $J \leftarrow \arg \min \ell(J)$
- $U_1 \leftarrow U_1 + (AZ+E-X)$
- $U_2 \leftarrow U_2 + (J-Z)$
每个公式都能得到闭式解,稍微推一下就能得到如下内容
- $Z \leftarrow \bigl( A^TA+I \bigr)^{-1} \bigl( A^T(X-E-U_1)+J+U_2 \bigr)$
- $E \leftarrow \mathcal{S}_{\lambda/\rho}(X-AZ-U_1)$
- $J \leftarrow \mathcal{D}_{\lambda/\rho}(Z-U_2)$
- $U_1 \leftarrow U_1 + (AZ+E-X)$
- $U_2 \leftarrow U_2 + (J-Z)$
就这么迭代吧!
附:参考代码(matlab)
1 |
|
(还是讨厌matlab,讨厌讨厌讨厌!)
感谢一言不发的大野和笨蛋春雄!
封面来自押切莲介老师的《高分少女》。