Regularized Stochastic Learning and Online Optimization
[1] Duchi J. and Singer Y. Efficient Learning using Forward-Backward Splitting. NeurIPS, 2009.
[5] McMahan H. B., et al. Ad click prediction: a view from the trenches. KDD, 2013.
概
这里介绍一些结合正则化项的随机优化方法. 需要注意的是, 上面的部分链接导向的是仅正文部分, 对应的完整证明需要在 JMLR 上所发表的完整版上找到. 不过我还只是给了简短的链接, 因为阅读起来更加容易.
符号说明
- \(\bm{w}\), 参数向量;
- \(f_t(\bm{w})\) 损失函数;
- \(r(\bm{w})\) 正则化项 (e.g., \(\ell_1, \ell_2\));
- \(\bm{g}_t = \nabla_{\bm{w}} f_t(\bm{w})\), 梯度;
- \(\partial r(\bm{w})\), 若 \(r\) 在 \(\bm{w}\) 可导, 则表示梯度, 否则表示次梯度
- \(\odot\), 哈达玛积;
- \([x]_+ = \max(x, 0)\).
Motivation
-
一般来说, 模型的训练目标是
\[\min_{\bm{w}} \quad f(\bm{w}), \]或者随机优化/在线学习的情况:
\[\min_{\bm{w}_1, \ldots, \bm{w}_t} \quad \sum_{t=1}^T f_t(\bm{w}_t). \] -
不过, 我们通常会对参数 \(\bm{w}\) 加以限制, 从而优化如下的损失
\[f(\bm{w}) + \lambda \: r(\bm{w}), \]这里 \(r(\bm{w})\) 是正则化项, 可以是比如 \(\|\bm{w}\|_p = (|w_1|^p + \cdots + |w_d|^p)^{1/p}\).
-
这里, 我们介绍的引入这些正则化项的方式, 并不是仅仅把它作为损失然后计算梯度, 而是通过修改优化器的优化规则来进行. 正则化项实际上一种人为的先验, 优化的目标自然是每一次更新尽可能地满足这些先验, 我们可以以两阶段的方式来理解这里介绍的方法 (虽然, 有些方式的形式是一步的):
- 通过传统的梯度方法得到 \(t+1\) 步的参数估计 \(\hat{\bm{w}}_{t+1}\);
- 将 \(\hat{\bm{w}}_{t+1}\) 投影到由 \(r\) 所刻画的区域中去, 得到真正的参数 \(\bm{w}_{t+1}\).
-
说实话, 我不清楚这种方式和简单把 \(r\) 作为损失的一部分孰优孰劣, 但是比较容易理解的是, 比如 \(r\) 为 \(\ell_1\) 时, 我们其实时希望这个正则化项带来参数的稀疏化. 但是由于每次更新的数值误差, 其实很难指望简单的随机梯度下降是能够满足这个性质的. 但是从下面我们可以看到, 通过投影的方式引入, 实际上会导致显式的截断操作, 从而保证稀疏化.
FOBOS (Forward-Backward Splitting)
-
这个是由 [1] 所提出的, 同时请不要在意缩写.
-
FOBOS 的更新规则如下:
\[\hat{\bm{w}}_{t+1} = \bm{w}_t - \eta_t \bm{g}_t, \\ \bm{w}_{t+1} = \text{argmin}_{\bm{w}} \bigg \{ \frac{1}{2} \| \bm{w} - \hat{\bm{w}}_{t + 1} \|^2 + \lambda_t r(\bm{w}) \bigg\}. \] -
容易证明上述问题等价于找到一个 \(\bm{w}_{t+1}\) 满足:
\[\bm{w}_{t+1} + \lambda_t \partial r(\bm{w}_{t+1}) = \hat{\bm{w}}_{t+1}. \] -
\(\ell_1\) regularization:
- 首先注意到:
\[\partial r_{\ell_1} (w) = \left \{ \begin{array}{ll} 1 & w > 0, \\ -1 & w < 1, \\ [-1, 1] & w = 0 \end{array} \right. \]- 所以,
\[w_{t+1} = \hat{w}_{t+1} - \lambda_t \Leftrightarrow \partial r(w_{t+1}) = 1 \Leftrightarrow w_{t+1} > 0 \Leftrightarrow \hat{w}_{t+1} > \lambda_t, \\ w_{t+1} = \hat{w}_{t+1} + \lambda_t \Leftrightarrow \partial r(w_{t+1}) = -1 \Leftrightarrow w_{t+1} < 0 \Leftrightarrow \hat{w}_{t+1} < -\lambda_t, \\ w_{t+1} = 0 \Leftrightarrow \partial r(w_{t+1}) = \frac{\hat{w}_{t+1}}{\lambda_t} \Leftrightarrow |\hat{w}_{t+1}| < \lambda_t. \]- 总结可得:
\[\bm{w}_{t+1} = \text{sgn}(\hat{\bm{w}}_{t+1}) \odot \Big[|\bm{w}_{t+1}| - \lambda_t \Big]_+ \] -
\(\ell_2^2\) regularization: \(r(\bm{w}) = \frac{1}{2} \|\bm{w}\|_2^2\)
- 此时:\[\partial r(\bm{w}) = \bm{w}. \]
- 故而\[\bm{w}_{t+1} = \frac{1}{1 + \lambda_t} \hat{\bm{w}}_{t+1}. \]起到的是一个 scale 的作用.
- 此时:
-
\(\ell_2\) regularization: \(r(\bm{w}) = \|\bm{w}\|_2\)
- 此时:\[\partial r(\bm{w}) = \frac{1}{2 \|\bm{w}\|} \bm{w}. \]
- 故而 \(\bm{w}_{t+1}\) 必与 \(\hat{\bm{w}}_{t+1}\) 的方向一致:\[\bm{w}_{t+1} = \bigg[ 1 - \frac{\lambda_t}{ \|\hat{\bm{w}}_{t+1}\| } \bigg]_+ \hat{\bm{w}}_{t+1} . \]起到的是一个 scale 的作用.
- 此时:
-
\(\ell_{\infty}\) regularization: \(r(\bm{w}) = \| \bm{w} \|_{\infty}\).
- 这个问题不好通过次梯度分析, 一般的做法是利用 \(\ell_{\infty}\) 的对偶范数为 \(\ell_1\) 范数来求解 (see here).
-
当然了, 类似的方法可以拓展到混合范数.
RDA (Regularized Dual Averaging)
-
这篇文中 [2] 指出, FOBOS 通常会采取一种衰减的 \(\lambda_t\), 所以理论上越到后面, 稀疏性会越差 (采取 \(\ell_1\) 正则), 这篇文章就是探讨如何不采用衰减的 \(\lambda_t\) 从而尽可能地保持稀疏性.
-
RDA 的更新方式如下:
\[\bm{w}_{t+1} = \text{argmin}_{\bm{w}} \bigg \{ \langle \bm{\bar{g}}_t, \bm{w} \rangle + r(\bm{w}) + \frac{\beta_t}{t} h(\bm{w}) \bigg\}, \]其中 \(h(w)\) 是特别引入保证收敛的强凸函数 (在 \(r(w)\) 不是强凸的时候有用), \(\{\beta_t\}\) 是一串非降的序列.
需要注意的是, 不同于 FOBOS, \(r(t)\) 内部包含了系数, 如 \(\lambda \|\bm{w}\|_1\), 不过系数是固定的, 因此我们可以希望所得的参数是满足某些性质的. -
另外,
\[\bm{\bar{g}}_t = \frac{t-1}{t} \bm{\bar{g}}_{t-1} + \frac{1}{t} \bm{g}_t, \quad \bm{g}_t \in \partial f_t(\bm{w}_t), \]是梯度的滑动平均, 我们在最后面会用到它的另一种表示:
\[\bm{\bar{g}}_t = t\bm{g}_{1:t} := \sum_{s=1}^t \bm{g}_s. \] -
关于范数 \(\|\cdot \|\) 强凸: \(h\) 关于范数 \(\|\cdot\|\) 是强凸的, 若存在 \(\sigma > 0\) 使得
\[h(\alpha w + (1 - \alpha) u) \le \alpha h(w) + (1 - \alpha) (u) - \frac{\sigma}{2} \alpha(1 - \alpha) \|w - u\|^2. \] -
当 \(r(w)\) 不满足强凸的时候, 此时需要强凸的 \(h\) 进行调和, 同时需要令
\[\beta_t = \gamma \sqrt{t}, \]以获得 \(\mathcal{O}(1 / \sqrt{T})\) 的收敛率.
一个例子是 \(\ell_1\)-regularizaton: \(r(\bm{w}) = \lambda \|\bm{w}\|_1\), 此时我们可以令\[h(\bm{w}) = \frac{1}{2} \|\bm{w}\|_2^2 + \rho \|\bm{w}\|_1, \]此时更新方程的解为
\[\bm{w}_{t+1} = -\frac{\sqrt{t}}{\gamma} \Big( \bm{\bar{g}}_t - \lambda_t^{\text{RDA}} \text{sgn}(\bm{\bar{g}}_t) \Big) \odot \Big[ |\bm{\bar{g}}_t| - \lambda_t^{\text{RDA}} \Big]_+, \]其中
\[\lambda_t^{\text{RDA}} = \lambda + \rho / \sqrt{t}. \]我们可以注意到, \(\lambda_t^{\text{RDA}} \ge \lambda\), 所以这保证了非常一致的稀疏性.
-
而当 \(r(\bm{w})\) 本身是强凸的时候, 比如 \(r(\bm{w}) = \lambda \|\bm{w}\|_1 + (\sigma / 2) \|\bm{w}\|_2^2\), 此时我们不必添加额外的 \(h\), 此时可以得到:
\[\bm{w}_{t+1} = -\frac{1}{\sigma} \Big( \bm{\bar{g}}_t - \lambda \text{sgn}(\bm{\bar{g}}) \Big) \odot \Big[ |\bm{\bar{g}}_t| - \lambda \Big]_+. \]
FTRL-Proximal (Follow The Regularized Leader)
-
[3, 4] 都对这部分进行的阐述, 不过这里主要根据 [4] 进行总结. 我认为最重要的部分就是将 FOBOS 和 RDA 统一起来了. 至于如何统一起来, 让我们一点点看.
-
让我们首先写出, RDA 的一个等价形式:
\[\begin{array}{ll} \bm{w}_{t+1} & =\text{argmin}_{\bm{w}} \bigg \{ \langle \bm{\bar{g}}_t, \bm{w} \rangle + r(\bm{w}) + \frac{\beta_t}{t} h(\bm{w}) \bigg\} \\ &= \text{argmin}_{\bm{w}} \bigg \{ \langle t \bm{\bar{g}}_t, \bm{w} \rangle + t \cdot r(\bm{w}) + h(\bm{w}) \bigg\} \\ &= \text{argmin}_{\bm{w}} \bigg \{ \underbrace{\langle \bm{g}_{1:t}, \bm{w} \rangle}_{(1)} + \underbrace{t \cdot r(\bm{w})}_{(2)} + \underbrace{h(\bm{w})}_{(3)} \bigg\} \end{array}, \]其中 \(\bm{g}_{1:t} := \sum_{s=1}^t \bm{g}_s\).
-
(1) 保证 \(\bm{w}_{t+1}\) 和整体的(负)梯度是一致的, (2) 保证正则化项, 当其为 \(\ell_1\) 是就是保证足够的稀疏性, 而且可以发现, 对于 RDA 而言, 它的强度随着迭代次数的增加而增加. 实际上容易理解, 当我们去掉 \(t\), 那么 \(r(\bm{w})\) 在整个损失中的地位是为逐步降低的 (因为 \(\bm{g}_{1:t}\) 正常来说是逐步增加的).
-
更有趣的是, 我们可以将 FOBOS 也写成这种形式, 从而更好的理解为什么 RDA 在引入稀疏化的能力上比 FOBOS 强.
-
我们有:
\[\hat{\bm{w}}_{t+1} = \bm{w}_t - \eta_t \bm{g}_t, \\ \begin{array}{ll} \bm{w}_{t+1} &= \text{argmin}_{\bm{w}} \bigg \{ \frac{1}{2} \| \bm{w} - \hat{\bm{w}}_{t + 1} \|^2 + \lambda_t r(\bm{w}) \bigg\} \\ &= \text{argmin}_{\bm{w}} \bigg \{ \frac{1}{2} \| \bm{w} - \bm{w}_{t} + \eta_t \bm{g}_t \|^2 + \lambda_t r(\bm{w}) \bigg\} \\ &= \text{argmin}_{\bm{w}} \bigg \{ \frac{1}{2} \| \bm{w} - \bm{w}_{t}\|_2^2 + \eta_t \langle \bm{g}_t, \bm{w} \rangle + \lambda_t r(\bm{w}) \bigg\} \\ &= \text{argmin}_{\bm{w}} \bigg \{ \langle \bm{g}_t, \bm{w} \rangle + \frac{\lambda_t}{\eta_t} r(\bm{w}) + \frac{1}{2 \eta_t} \| \bm{w} - \bm{w}_{t}\|_2^2 \bigg\}. \end{array} \] -
当我们把 \(\lambda_t / \eta_t\) 融入 \(r(\bm{w})\) 的时候, FOBOS 的更新公式实际上就和 RDA 差在了
\[\langle \bm{g}_*, \bm{w} \rangle. \] -
接下来我们先统一格式, 再证明一个更加酷的结论. 定义如下的更新方式:
\[\tag{A.1} \bm{\hat{w}}_{t+1} = \text{argmin}_{\bm{w}} \langle \bm{g}_t, \bm{w} \rangle + r(\bm{w}) + \zeta_{1:t}(\bm{w}, \bm{\hat{w}_t}), \]其中
\[\zeta_{1:t} (\bm{x}, \bm{y}) = \sum_{s=1}^t \zeta_s (\bm{x}, \bm{y}) = \sum_{s=1}^t \bigg[ \Psi_s (\bm{x}) - \Psi_s (\bm{y}) + \langle \nabla \Psi_s (\bm{y}), \bm{x} - \bm{y} \rangle \bigg], \]其中 \(\Psi_s(\bm{x}) := \psi_s (\bm{x} - \bm{\hat{w}}_s)\), \(\psi_s\) 是强凸的且最小值在 \(\bm{0}\) 处取到.
这个项为 Bergman divergence. -
我们证明 (A.1) 和下列的 (A.2) 所得到的参数更新是一致的 (如果起点都是 0): 存在 \(\bm{\phi}_k \in \partial r(\bm{w}_{k+1}), k=1,2\ldots, t\) 使得
\[\bm{g}_{1:k} + \bm{\phi}_{1:k-1} + \nabla \Psi_{1:k}(\bm{w}_{k+1}) + \bm{\phi}_{k} = \bm{0}, \]从而
\[\tag{A.2} \bm{w}_{t+1} = \text{argmin}_{\bm{w}} \langle \bm{g}_{1:t} + \bm{\phi}_{1:t}, \bm{w} \rangle + r(\bm{w}) + \Psi_{1:t}(\bm{w}). \]
proof:
-
首先 \(\bm{w}_1 = \bm{\hat{w}}_1\) 是必然的. 我们用归纳法证明. 假设 \(\bm{w}_t = \bm{\hat{w}}_t\).
-
在此之前我们先证明一个引理:
-
引理: 当 \(h\) 为强凸函数 (且存在一阶导数), \(g\) 为凸函数的时候, 存在唯一的配对 (\(\bm{x}^*, \bm{\phi}\)) 满足 \(\bm{\phi} \in \partial g(\bm{x}^*)\) 且使得:
\[\bm{x}^* = \text{argmin}_{\bm{x}} \quad h(\bm{x}) + \langle \bm{\phi}, \bm{x}\rangle \]成立. 同时 \(\bm{x}^*\) 是 \(h(\bm{x}) + \bm{g}(\bm{x})\) 的唯一最小值点.
-
实际上, 由于 \(h\) 为强凸, \(g\) 为凸函数, 所以 \(h + g\) 为强凸, 故最小值点 \(\bm{x}^*\) 是唯一的. 同时满足存在 \(\phi \in \partial g(\bm{x}^*)\) 使得
\[\nabla h(\bm{x}^*) + \bm{\phi} = \bm{0}. \]因此容易发现 \(\bm{x}^*\) 是 \(\bm{h}(\bm{x}) + \langle \bm{\phi}, \bm{x} \rangle\) 的最小值点.
-
在 \(\bm{w}_t = \bm{\hat{w}}_t\) 的基础上, 我们可以一步一步推得
\[\begin{array}{ll} \bm{\hat{w}}_{t+1} &= \text{argmin}_{\bm{w}} \langle \bm{g}_t, \bm{w} \rangle + r(\bm{w}) + \zeta_{1:t}(\bm{w}, \bm{\hat{w}_t}) \\ &= \text{argmin}_{\bm{w}} \langle \bm{g}_t, \bm{w} \rangle + r(\bm{w})+ \Psi_{1:t}(\bm{w}) - \Psi_{1:t}(\bm{\hat{w}}_t) - \langle \nabla \Psi_{1:t}(\bm{\hat{w}}_t), \bm{w} - \bm{\hat{w}}_t \rangle \\ &= \text{argmin}_{\bm{w}} \langle \bm{g}_t, \bm{w} \rangle + r(\bm{w}) + \Psi_{1:t}(\bm{w}) - \langle \nabla \Psi_{1:t}(\bm{\hat{w}}_t), \bm{w} - \bm{\hat{w}}_t \rangle \\ &= \text{argmin}_{\bm{w}} \langle \bm{g}_t, \bm{w} \rangle + r(\bm{w}) + \Psi_{1:t}(\bm{w}) - \langle \nabla \Psi_{1:t-1}(\bm{\hat{w}}_t), \bm{w} - \bm{\hat{w}}_t \rangle \\ &= \text{argmin}_{\bm{w}} \langle \bm{g}_t, \bm{w} \rangle + r(\bm{w}) + \Psi_{1:t}(\bm{w}) - \langle \nabla \Psi_{1:t-1}(\bm{w}_t), \bm{w} - \bm{w}_t \rangle \\ &= \text{argmin}_{\bm{w}} \langle \bm{g}_t, \bm{w} \rangle + r(\bm{w}) + \Psi_{1:t}(\bm{w}) + \langle \bm{g}_{1:t-1} + \bm{\phi}_{1:t-1}, \bm{w} - \bm{w}_t \rangle. \end{array} \] -
再次运用上面的结论, 我们可以找到 \(\bm{\phi}_t' \in \partial \Psi (\bm{\hat{w}}_{t+1})\), 满足:
\[\begin{array}{ll} \bm{\hat{w}}_{t+1} &= \text{argmin}_{\bm{w}} \langle \bm{g}_t, \bm{w} \rangle + \langle \bm{\phi}_t', \bm{w} \rangle + \Psi_{1:t}(\bm{w}) + \langle \bm{g}_{1:t-1} + \bm{\phi}_{1:t-1}, \bm{w} \rangle. \end{array} \] -
由于 \((\bm{\hat{w}}_{t+1}, \bm{\phi}_t')\) 的唯一性, 便有:
\[(\bm{w}_{t+1}, \bm{\phi}_t) = (\bm{\hat{w}}_{t+1}, \bm{\phi}_t'). \]
-
于是, 我们证明了两个过程的等价性. 但是这里需要声明的是, (A.2) 由于 \(\phi\) 的存在, 并不是一个很有用的更新方式, 但是它可以给我们带来一些启发.
-
比如, 当取 \(\psi_s(\bm{w}) = \frac{\sigma_s^2}{2}\|\bm{w}\|_2^2\)
\[\zeta_{1:t}(\bm{w}, \bm{\hat{w}_t}) \Leftrightarrow \frac{1}{2} \|\sigma_{1:t} ( \bm{w} - \bm{\hat{w}}_t ) \|_2^2 \]可以看出是 FOBOS 的更新方式 (设置合适的 \(\sigma\)), 此时等价于:
\[\bm{w}_{t+1} = \text{argmin}_{\bm{w}} \langle \bm{g}_{1:t} + \bm{\phi}_{1:t}, \bm{w} \rangle + r(\bm{w}) + \frac{1}{2}\sum_{s=1}^t \|\sigma_s(\bm{w} - \bm{w}_s)\|_2^2. \] -
所以, FOBOS 对比 RDA 实际上就是
- 多了
\[\langle \bm{\phi}_{1:t}, \bm{w} \rangle \]这一项. 这一项是对正则化的一个估计. RDA 稀疏化的效果好的原因, 实际上是因为它采取的不是估计, 而是通过增强 \(r(\bm{w})\).
- RDA 的 \(h(\bm{w})\) 通常是 \(\frac{1}{2} \|\bm{w}\|_2^2\), 是 origin-centered 的
FOBOS, RDA, FTRL-Proximal 的统一表示
-
FOBOS:
\[\bm{w}_{t+1} = \text{argmin}_{\bm{w}} \langle \bm{g}_{1:t} + \bm{\phi}_{1:t}, \bm{w} \rangle + r(\bm{w}) + \frac{1}{2}\sum_{s=1}^t \|\sigma_s(\bm{w} - \bm{w}_s)\|_2^2. \] -
RDA:
\[\bm{w}_{t+1} = \text{argmin}_{\bm{w}} \langle \bm{g}_{1:t} + \bm{0}, \bm{w} \rangle + t\cdot r(\bm{w}) + \frac{1}{2}\sum_{s=1}^t \|\sigma_s(\bm{w} - \bm{0})\|_2^2. \] -
FTRL-Proximal:
\[\bm{w}_{t+1} = \text{argmin}_{\bm{w}} \langle \bm{g}_{1:t} + \bm{0}, \bm{w} \rangle + t\cdot r(\bm{w}) + \frac{1}{2}\sum_{s=1}^t \|\sigma_s(\bm{w} - \bm{w}_s)\|_2^2. \] -
注意到, FTRL-Proximal 实际上是 FOBOS 和 RDA 的结合, 既有 FOBOS 的 \(\bm{x}_s\) 中心化, 又有 RDA 的稀疏性.
-
我们是不需要记忆所以的 \(\bm{w}_s\) 的, 注意到: FTRL-Proximal 等价于
\[\bm{w}_{t+1} = \text{argmin}_{\bm{w}} \langle \bm{g}_{1:t} - \sum_{s=1}^t \sigma_s^2 \bm{w}_s, \bm{w} \rangle + t \cdot r (\bm{w}) + \frac{1}{2} \sum_{s=1}^t \sigma_s^2 \|\bm{w} \|_2^2. \] -
令 \(\eta_t = 1 / (\sum_{s=1}^t \sigma_s^2)\), 以及
\[\bm{z}_t := \bm{g}_{1:t} - \sum_{s=1}^t \sigma_s^2 \bm{w}_s. \] -
我们有
\[\bm{w}_{t+1} = \text{argmin}_{\bm{w}} \langle \bm{z}_t, \bm{w} \rangle + t \cdot r (\bm{w}) + \frac{1}{2 \eta_t} \|\bm{w} \|_2^2. \]且
\[\bm{z}_{t+1} = \bm{z}_t + \bm{g}_{t+1} - (\frac{1}{\eta_{t+1}} - \frac{1}{\eta_{t}}) \bm{w}_{t+1}. \]所以, 实际上我们所需要保存的量很少.