在这个一阶方法盛行的时代中,二阶方法看起来不那么受欢迎,能想到的优点好像只有“精度高”,但是原始的二阶方法(Newton,trust region,cubic regularizarion Newton)代价实在是太大了。 为了权衡优缺点,出现了很多“似二非二”的算法,比如拟牛顿(quasi Newton),随机牛顿(stochastic Newton),次采样牛顿(subsample Newton)。这篇文章想讲下二阶方法一个很有意思的应用:利用半光滑牛顿(semismooth Newton)快速求解稀疏问题。目前已经出了许多相关文章,主要来自孙德锋老师的团队。有兴趣的可以参考他的主页。关于理论性的东西我就不说了(好像你会似的),这里我想简单阐述下这些文章的主要思想。·另一篇关于半光滑牛顿的文章看
邓康康:求解稀疏优化问题2——临近点方法+半光滑牛顿法zhuanlan.zhihu.com考虑一般问题:
其中
,并且
特别大;
-
表示一个凸可微函数,例如
-
表示一个闭真凸函数,一般为稀疏正则函数,比如 LASSO:,Fused LASSO,Clustered LASSO等
这个问题太general了,并且特别多的一阶方法可以去求解它,比如临近梯度方法(proximal gradient)以及它的加速版FISTA;交替方向乘子法(ADMM),原始对偶(primal dual)等等。这些方法说快也挺快的,毕竟只用到了一阶信息。但是他们没有考虑到两点:
-
的存在,通常直接考虑
- 稀疏性的利用.
所以当
特别大的时候,这些方法也没那么快了。接下来我要讲的这个框架就完美的利用了这两点。大概思想是
- 利用ALM求解对偶问题,
- 利用二阶方法求解ALM的子问题,这里利用了问题本身的稀疏结构,使得该二阶方法既拥有了二阶方法的精度,又拥有一阶方法的复杂度,美哉