形式陈述
给定 、、,沿用Lasso 的定标和证书理路Lasso 的最优性与对偶间隙Lasso optimality conditions · Lasso duality gap · Lasso primal-dual certificate从残差相关性核验 Lasso 的零与非零坐标,并用可行对偶值认证剩余优化误差。:,损失不除以样本数,暂不含截距。坐标下降每次固定其他系数,只把一个系数调到这一条直线上的最佳位置。
初始化任意 和残差缓存 ;预计算 。按 的固定顺序反复扫掠。访问第 列时,令旧值为 ,部分残差为 。若 ,更新
随后同步执行 、。这保持执行不变量 ;下一坐标必须看见刚更新的残差。若 ,该列为零,子问题只有 ,直接置 ,不能除以零。
输入还应包含目标误差容差 、最大扫掠数和证书检查频率。每次检查重新核验残差,计算 、 和 。返回系数、可行对偶点、gap、坐标访问次数及“证书达标/预算用尽/数值失败”状态。只有第一种状态证明所要求的目标精度;一轮下降或坐标变零不是停止证书。
直觉
部分残差是先把这一列已有的贡献放回去,再问“这一列独自应解释多少”。原问题的列可以彼此相关,其他列的当前系数通过 进入答案;所以式(1)并没有假设设计正交。
固定其余系数,相关的一维目标为
常数利用绝对值的近端软阈值理路近端算子Proximal operator · Proximity operator在降低凸函数值与保持靠近输入点之间取得精确平衡的单值算子。,最小点是 。列范数既缩放中心,也缩放阈值;只除中心而保持阈值为 会解错问题。
近端梯度法理路近端梯度法Proximal gradient method对复合目标的光滑项取显式梯度步、对非光滑凸项取隐式近端步的算法。一次线性化全部平方损失,再对全部坐标软阈值。这里每次对单个坐标的真实平方损失精确求解。两种方法共享软阈值运算,但一个全向量梯度步与一轮顺序扫掠有不同中间状态和成本。
例子与边界
同一耦合设计,两种访问顺序
取
两列范数平方均为 ,内积为 。先访问第一列:,所以 ;缓存变为 。接着 ,所以 。一轮结果是 。其相关性 满足两坐标 KKT,,gap 为零。
把顺序改为第二列再第一列。第一步 ,残差为 ;第一列的部分相关性变为 ,故 。这一轮结果为 ,残差 ,,原始目标 、对偶值 ,gap 为 。第二轮先把第二坐标置零,再把第一坐标改为 ,这才得到零 gap。顺序改变有限预算答案,并未改变优化问题。
列缩放、零列与截距
仅有一列 ,、 时,、相关性为 ,正确解为 。误用单位列公式会给出 。若把特征缩放但希望保持同一个拟合惩罚问题,还需同步变换系数和惩罚权重;只为了数值好看而标准化列,会改变原参数下的正则化偏好。
加入不受惩罚的截距 时,目标变为 。固定 ,精确更新 ,并相应更新残差;等价地,先中心化各列与 ,解系数后恢复 。截距不能套软阈值。带截距的合法对偶还要求 :若刚更新斜率后残差均值已非零,单纯缩放并不能满足这一条件,应先更新截距或使用中心化问题的证书。零列的系数仍取零,但若把截距当作“零惩罚列”,它与这里 的零列处理是不同情况。
某轮 只说明当前一维子问题的阈值通过。其他坐标改变后它可以再次非零。若要永久删列,应使用可行 gap 导出的安全筛除理路Lasso 的间隙安全筛除Gap Safe screening for Lasso · Lasso safe sphere screening把可行原对偶间隙转成最优对偶点的安全球,再以严格列判据证明某坐标在所有 Lasso 最优解中为零。;它认证给定数据和 的优化解,仍不认证未知真实支持。
推论与应用
精确循环更新为什么到达最优值
先剔除零列。每个单坐标目标是 -强凸的,故一次精确更新产生的下降至少为 。因为 ,把所有访问的下降相加,得到各步位移平方可求和,因而每步位移趋于零。又有 ,所有中间点有界。
取扫掠起点的一条收敛子列,极限为 。一轮只有有限的 次更新,每个位移趋零,所以这条子列对应的所有轮内点也趋于同一个 。式(1)是当前其他坐标的连续函数,因此取极限后, 对每个坐标都已经满足式(1)的固定点条件。由绝对值次微分的三个分支理路次梯度与次微分Subgradient · Subdifferential以全局仿射下界刻画凸函数在不可微点的支撑斜率集合。,这些条件恰是 。把坐标合起来就是完整凸最优性,故 最优。
目标值单调且连续,所以沿这条子列趋于 ,整列目标值也趋于 ;每个聚点同样最优。若 满列秩,解唯一,有界序列的所有聚点相同,整个系数序列收敛。没有唯一性时,这份证明只宣布目标收敛与聚点最优,不把它夸大为已经证明所有非唯一问题的点收敛。
这个推导用了可分的绝对值惩罚。对一般耦合非光滑函数,各坐标最优不必整体最优。例如 在原点沿任何单独负坐标方向都不下降,但沿 下降。它不能继承上面的“拼合各坐标次梯度”步骤。
计算账本
初始残差和列范数需一次扫描。缓存残差后,每次稠密列访问为 ,一轮 ;稀疏列为 ,一轮 。除矩阵外保存残差、系数与列范数需 。每次完整 gap 检查还要对所有列求相关性;不能把证书成本隐藏在“一个坐标很便宜”中。浮点累计残差应定期用 重建,避免缓存漂移冒充 KKT 改善。
本例一轮即解是数据与顺序的巧合;一般不能由此宣称坐标下降总快于 FISTA。对照实验应同时列扫掠数、列访问数、矩阵读写和证书次数,并对所有候选使用相同的可行下界构造。
两道短自测
- 单列 、、,从零更新结果是多少?答案:列范数平方9、相关性6,故 ;不能用单位列阈值返回3。
- 带截距时残差相关性已全部小于 ,但残差均值为1,可以直接宣布对偶可行吗?答案:不可以;还需 ,缩放非零均值并不能变成零。
参考资料