对logistic回归的SSR设计

本文介绍了一种在 l1 惩罚最小二乘法回归(或 LASSO)问题中消除特征(变量)的快速方法。消除特征可大幅缩短运行时间,尤其是在惩罚参数值较大的情况下。这个方法不是启发式的:它只消除在求解 LASSO 问题后保证不存在的特征。特征消除步骤易于并行化,可以独立测试每个特征的消除情况。此外,与求解 LASSO 问题相比,这一方法的计算量可以忽略不计--大致相当于单梯度步骤。这个方法扩展了现有 LASSO 算法的范围,使其可以处理以前无法处理的更大数据集。本文展示了如何将此方法扩展到一般的 l1 惩罚凸问题,并介绍了稀疏支持向量机和逻辑回归问题的初步结果。

insight

作者几乎是单纯的从数学角度提出了这一巧妙的方法,着实令人佩服,后面无论多少文章在本质上都是对此方法的改进。

核心理论

先定义一下本文用到的符号:

训练的 data:\(X=(a_{1},\ldots,a_{m})^{T}\in\mathbb{R}^{m\times n}\),每一行为一个样本,因此每一列即为一个特征。

lasso 原问题:

\[\mathcal{P}(\lambda) : \phi(\lambda):=\min_w {\frac{1}{2}} \|Xw-y\|_2^2+\lambda\|w\|_1 \]

lasso 对偶问题:

\[\mathcal{D}(\lambda):\phi(\lambda):=\max_{\theta}G(\theta):|\theta^Tx_k|\leq\lambda,k=1,\ldots,n \]

其中

\[G(\theta)={\frac{1}{2}} \|y \|_{2}^{2}-{\frac{1}{2}}\|\theta\|+\|y \|_{2}^{2} \]

\(\theta\) 是求解对偶问题中引入的量,表示残差:\(Xw-y\)

这全部的奥妙就在这约束条件 \(|\theta^Tx_k|\leq\lambda\) 上了,不难的凸优化分析即可告诉我们:

\[|\theta^{\star T}x_k|<\lambda\Rightarrow(w^\star)_k=0 \]

也就是说对于满足这样的判断的 \(w\) 分量,我们可以断言其为 0,从而断言此分量对应的那一列特征是无用的,可以剔除掉。

然而我们只有求解完 lasso 才能做出上面的断言呀,如何在求解开始之前预先识别并剔除无用特征呢?作者为此提出了一种通用策略:

开始将策略之前先做一些必要的铺垫,我们不难发现 \(\lambda\) 越大,得到的解的稀疏程度越大,取恰好使得 \(w=0\)\(\lambda_0\),根据我们的筛选规则,不难看出:

\[\lambda_0=\max_{1\leq j\leq n} |y^Tx_j|=\|X^Ty\|_\infty \]

对应的

\[\theta_0^\star=-y \]

第一步

尽管在开始训练前,我们无法精确找到最优解 \(\theta^*\),但是可以尝试构建一个必定包含 \(\theta^*\) 的集合 \(\Theta\),如果我们可以验证 \(\forall\theta\in\Theta\),均有 \(|\theta^Tx_k|<\lambda\),那么也可以断言第 \(k\) 个特征无效。

因此构建一个尽量小的 \(\Theta\) 即可。作者采用的策略是构建两个必定包含 \(\theta^*\) 的集合 \(\Theta_1,\Theta_2\),取二者交集作为 \(\Theta\),定义:

注意到对偶问题 \(G(\theta)\),任取一个可行点(比如上面提到的 \(\lambda_0\) 系列)得到 \(\gamma:={G}(\theta_s)\),可以构建出一个球形约束区域:

\[\Theta_1:=\{\theta \mid G(\theta)\geq\gamma\} \]

(对于 \(\gamma\) 的得到作者采用了对偶缩放的技巧,这不是重点,暂且按下不谈)

作者用一阶条件构建了第二个区域:

\[\Theta_{2}:= \{\theta \mid g^{T}(\theta-\theta_{0}^{\star})\leq0\} \]

第二步

可以舍弃的特征的指标集合可以表示为:

\[\mathcal{E}=\{k\mid\lambda>\max(P(\gamma,x_k),P(\gamma,-x_k))\} \]

其中

\[P(\gamma,x_k):=\max_{\theta} x_k^T\theta \quad \text{subject to} \quad G(\theta)\geq\gamma, \quad g^T(\theta-\theta_0^\star)\geq0 \]

可以用凸优化方法求出这个问题的封闭解。

如果我们有某个 \(\lambda\) 下对应的最优解 \(w\),两个区域是不难构建的;即使我们没有某个 \(\lambda\) 下对应的最优解 \(w\),我们也可以选择恰好使得 \(w=0\)\(\lambda_0\),在这种情况下,解集还可以有一个优雅地表达:

\[\lambda>\rho_k\lambda_{\mathrm{max}} \]

其中

\[\rho_k = {\frac{ \| y \|_2 \| x_k \|_2 + | y^T x_k | }{ \| y \|_2 \| x_k \|_2 + \lambda_{\max} }} \]

算法

以上分析可以产生两种算法,解决两类问题。

拓展

作者对更一般的带 l1 正则化的凸优化问题给出了解析,包括 logistics 回归,稀疏支持向量机等等。

实验

对于有内存限制下的求解问题,SAFE 表现出色,圆满完成了限制内存的任务。

在不同 lasso solver 的实验中,safe 方法均表现出了较好的提前筛选效果。

改进:strong rules

strong rules 提出的强规则并非万无一失,但在实践中很少失效。这些规则非常简单,并可辅以对 Karush-Kuhn-Tucker (KKT) 条件的简单检查,以确保提供凸问题的精确解。这些规则为各种统计优化问题节省了大量计算时间和内存。

本文符号定义:

\[\hat{\boldsymbol{\beta}}=\underset{\boldsymbol{\beta}}{\operatorname*{argmin}} {\frac{1}{2}} \|\mathbf{y}-\mathbf{X}\boldsymbol{\beta}\|_2^2+\lambda\|\boldsymbol{\beta}\|_1 \]

上一篇文章的筛选规则可以写为:

\[|\mathbf{x}_j^T\mathbf{y}| < \lambda - \|\mathbf{x}_j\|_2 \|\mathbf{y}\|_2 {\frac{ \lambda_{\max} - \lambda }{ \lambda_{\max} }} \]

如果我们对 \(X\) 进行了归一化,上面的式子可以进一步写为:

\[\lambda-\|\mathbf{y}\|_{2} {\frac{\lambda_{\max}-\lambda}{\lambda_{\max}}} \]

作者采取了大胆的缩放,定义:

\[\mathbf{r}=\mathbf{y}-\mathbf{X}\hat{\boldsymbol{\beta}}(\lambda_0) \]

则有:

\[|\mathbf{x}_j^T\mathbf{r}|<2\lambda-\lambda_0 \]

作者进行了一系列分析来阐述他的动机和上述式子几乎不会失误,尽管效果惊人的显著,不过他毕竟还是不安全的。后续工作也几乎不再与此工作进行比较,因此不再赘述。

SLORES:适用于 logistic 回归的强且安全的筛选法则

要注意 SLORES 是针对于逻辑回归提出的,也正因如此才能利用上强凸性。

原问题:

\[\min_{\beta,c} {\frac{1}{m}}\sum_{i=1}^m\log(1+\exp(-\langle\beta,\bar{\mathbf{x}}_i\rangle-b_ic))+\lambda\|\beta\|_1 \]

对偶问题,定义 \(f(y)=y\log(y)+(1-y)\log(1-y)\) for \(y\in(0,1)\)

\[\min_\theta {g(\theta)={\frac{1}{m}}\sum_{i=1}^m f(\theta_i): \|\bar{\mathbf{X}}^T\theta\|_\infty\leq m\lambda, \langle\theta,\mathbf{b}\rangle=0, \theta\in\mathcal{C}} \]

针对于逻辑回归的筛选规则可以表达为:

\[T(\theta_\lambda^*,\bar{\mathbf{x}}^j):=\max_{\theta\in\mathcal{A}_\lambda}|\langle\theta,\bar{\mathbf{x}}^j\rangle|<m\lambda\Rightarrow[\beta_\lambda^*]_j=0 \]

下面就是构建区域了,作者利用强凸性构建了一个理论上和实践上都很紧的球形区域:

\[\|\theta_\lambda^*-\theta_{\lambda_0}^*\|_2^2\leq{\frac{m}{2}}\left[g\left({\frac{\lambda}{\lambda_0}}\theta_{\lambda_0}^*\right)-g(\theta_{\lambda_0}^*)+\left(1-{\frac{\lambda}{\lambda_0}}\right)\langle\nabla g(\theta_{\lambda_0}^*),\theta_{\lambda_0}^*\rangle\right] \]

并结合其他的一些必要条件做出了部分约束,求出了筛选规则的闭式解,效果显著。

\[a{\frac{a}{b}}b \]

动态筛选的提出

以往的安全筛选法则,都是脱离训练过程所存在的筛选。我们称之为静态筛选规则(We will refer to such safe rules as static safe rules)他大致分为全局的(利用\(\lambda_0\))和递归的(加速筛选一系列\(\lambda\)),动态筛选规则为我们提供了新的思路。作者用简单的伪代码为我们展示了何为动态筛选:(字典D就是上篇里的X,x是上篇的w)

它通过在优化过程中迭代减少字典的大小,丢弃已知不属于 Lasso 解的元素,从而加速了一大类优化算法。

动态筛选的符号选择跟前面处处有不同,看得我挺难受,同时一些处理做了细微改动。主要区别在于以下:

字典D就是上篇里的X,x是上篇的w,原问题写为

\[\mathcal{P}(\lambda,\mathbf{D},\mathbf{y}):\tilde { \mathbf {x} }\triangleq\arg\min_\mathbf{x}\frac12\|\mathbf{D}\mathbf{x}-\mathbf{y}\|_2^2+\lambda\|\mathbf{x}\|_1 \]

对偶问题除以了\(\lambda\),变成了这样:

\[\tilde{\boldsymbol{\theta}} \triangleq \arg\max_{ {\boldsymbol{\theta}} } \frac{1}{2}\left\|\mathbf{y}\right\|_{2}^{2}-\frac{\lambda^{2}}{2}\left\|\boldsymbol{\theta}-\frac{\mathbf{y}}{\lambda}\right\|_{2}^{2} \quad \mathrm{s.t.~}\forall i\in\Omega,|\boldsymbol{\theta}^{T}\mathbf{d}_{i}|\leq1. \]

抛弃了之前求出的闭式解,在有球形约束的情况下采用了计算量较小的筛选规则:

Lemma 1 (Sphere Test Principle [7])
If the solution \(\tilde{\boldsymbol{\theta}}\)of (2) satisfies \(\exists \{ r, \mathbf{c} \} \in \mathbb{R} \times \mathbb{R}^{N}, \| \widetilde{\boldsymbol{\theta}} - \mathbf{c} \| _{2}\leq r\), then:

\[|\mathbf{c}^T\mathbf{d}_i|<1-r\Rightarrow\tilde{\mathbf{x}}(i)=0. \]

这种思路是很好的,他使得safe screen技术由一种预处理技术变为了对solver的加速技术,作者给出算法如主要利用了对偶缩放技巧,意在使得\(r_k\)尽可能的收敛,从而使得加速效率越来越快。但是作者并没有很好的处理好“如何让\(r_k\)必然收敛”这件事,于是新的方法诞生了。

GAP SAFE Rule

针对于上一篇文章提出的方法,本文的作者进行了一种关键的改进。insight在于,由于强对偶性的存在,对偶间隙必然是不断缩小直到趋于0的,那么我们如果构建一个与对偶间隙成比例的安全区域,那么这个安全区域也是严格收敛的,这样的加速方法大概率更优。定义本文的gapsafe区:

\[\widehat{R}_{\lambda}(\beta):=\frac{1}{\lambda}\big(\left\|y\right\|^{2}-\left\|X\beta-y\right\|^{2}-2\lambda\left\|\beta\right\|_{1}\big)_{+}^{1/2}, \]

\[\check{R}_{\lambda}(\theta):= \left\|\theta-\frac{y}{\lambda}\right\|, \]

\(\hat{\theta}^{(\lambda)}\)为 dual optimal Lasso solution,并且定义:

\[\tilde{r}_\lambda(\beta,\theta):=\sqrt{\breve{R}_\lambda(\theta)^2-\widehat{R}_\lambda(\beta)^2}, \]

那么:

\[\text{(15)} \]

证明是很简洁的,根据对偶关系可以得到

\[\frac{1}{2}\left\|y\right\|^{2}-\frac{\lambda^{2}}{2}\left\|\theta-\frac{y}{\lambda}\right\|^{2} \leqslant \frac{1}{2}\left\|X\beta-y\right\|^{2}+\lambda\left\|\beta\right\|_{1} \]

因此:

\[\left\|\theta-\frac{y}{\lambda}\right\| \geqslant \frac{\sqrt{\left(\left\|y\right\|^2-\left\|X\beta-y\right\|^2-2\lambda\left\|\beta\right\|_1\right)}}{\lambda}. \]

同时利用原先的SAFE技巧,任取一个对偶可行点,可以约束得到\(\check{R}_{\lambda}(\theta)\),因此安全区域夹在了两个圆之间的环上,根据几何关系可以直观地推导出最终的安全区域:

GAP SAFE sphere:

\[\mathcal{C}_{k}=B(\theta_{k},r_{\lambda}(\beta,\theta)) \]

GAP SAFE dome:

\[\mathcal{C}_k=D\Bigg(\frac{\frac{y}{\lambda}+\theta_k}{2},\frac{\breve{R}_\lambda(\theta_k)}{2},2\left(\frac{\widehat{R}_\lambda(\beta_k)}{\check{R}_\lambda(\theta_k)}\right)^2-1,\frac{\theta_k-\frac{y}{\lambda}}{\|\theta_k-\frac{y}{\lambda}\|}\Bigg) \]

回到本来的思路,我们探究gap safe sphere和对偶间隔\(G_{\lambda}(\beta,\theta)=P_{\lambda}(\beta)-D_{\lambda}(\theta)\)的关系,容易证明得到:

\[\tilde{r}_\lambda(\beta,\theta)^2\leqslant r_\lambda(\beta,\theta)^2:=\frac{2}{\lambda^2}G_\lambda(\beta,\theta). \]

为此作者一开始的insight得到了利用,区域的收敛性有了保障。

K表示优化步骤最多进行的次数,f表示每隔几次单独的优化步骤便进行一次筛选。
作者进行了时间比较,在加速以及特征筛选方面效果显著。

posted @ 2025-08-05 20:43  bradinz  阅读(21)  评论(0)    收藏  举报