写文章

【凸优化笔记5】-次梯度方法(Subgradient method)

29 人 赞同了该文章

目录

1.问题引入

2.次梯度的定义

3.次梯度优化条件(Subgradient optimality condition)

4.次梯度迭代算法

5.次梯度方法求解lasso问题


1. 问题引入

对于可导的凸函数,我们通常使用常规的梯度下降法处理,但当目标函数不可导(在某些点上导数不存在)时,我们就没法使用常规的梯度下降法处理。于是引入次梯度(Subgradient)用于解决此类目标函数并不总是处处可导的问题。

次梯度方法的优势是比传统方法能够处理的问题范围更大,不足之处就是算法收敛速度慢。

2. 次梯度的定义

2.1 回顾

对于凸函数 次梯度 ,如果它可导,那么对 次梯度 ,都有:

次梯度

此即凸函数的一阶条件,简单讲就是对于凸函数,其切线总是在函数的下方。具体可参考 【凸优化笔记2】-第1.2节

2.2 次梯度定义

类比凸函数的一阶条件,给定函数 次梯度 ,对 次梯度 ,如果满足:

次梯度

则称 次梯度 是函数 次梯度 在点 次梯度 处的次梯度(Subgradient)

无论是凸函数还是非凸函数(非凸函数包括凹函数和非凸也非凹的函数),对所有满足上述条件的 次梯度 都称为 次梯度次梯度 处的次梯度,因此次梯度不一定唯一,也可能不存在。
从不等式条件中也可以看出次梯度是在函数凸的区域上加以定义的。

次梯度次梯度 处所有次梯度构成的集合称为 次梯度次梯度 处的次微分(Subdifferential),记作 次梯度

凸函数总有次梯度,非凸函数即使可微也不一定有次梯度。凸函数的次微分总是非空,凹函数的次微分是空集。

对于凸函数,我们总能找到一个 次梯度 ,使得上述对次梯度定义的条件成立。例如,如果凸函数在 次梯度 处可导,取 次梯度 即可;如果凸函数在 次梯度 处不可导,取 次梯度 为在该点处的左导数或者右导数都可以,过该点以 次梯度 为斜率的“切线”总在函数的下方。因而凸函数总有次梯度,次微分总是非空。
对于非凸函数,在凸的区域 有可能找到这样的“切线”,而在凹的区域总是找不到这样的“切线”,使其位于函数的下方,因而非凸函数的次梯度不一定存在。在凹的区域更不可能存在次梯度也就不存在次微分。
对于优化问题,我们通常只考虑目标函数是凸函数的情况。

2.3 次梯度计算

设函数 次梯度 在点 次梯度 处不一定可导,以一维情况为例,按高等数学中我们对导数的定义可以求出:

次梯度次梯度 处的左导数:

次梯度

次梯度次梯度 处的右导数:

次梯度

凸函数 次梯度 的次微分等于闭区间 次梯度次梯度 中任何一个取值都是次梯度。

如果凸函数 次梯度 在点 次梯度 处是可导的,即 次梯度 ,次微分中只有一个元素,此时次梯度就是梯度,即 次梯度 就等于 次梯度
如果凸函数 次梯度 在点 次梯度 处是不可导的,即 次梯度 ,此时次梯度是次微分中的任意一个取值,它是不唯一的。
例如 次梯度 ,则 次梯度 ,其中 次梯度 为符号函数, 次梯度 表示任意一个元素。

3. 次梯度优化条件(Subgradient optimality condition)

次梯度 是函数 次梯度 (无论是否是凸的)的最优解,当且仅当次微分中包含 次梯度 。即:

次梯度

证明:我们可以把 次梯度 代入到 2.2 节对次梯度定义的式子中,即,对于 次梯度 ,都有 次梯度

4. 次梯度迭代算法

类似于梯度下降算法,只是将梯度更换成了次梯度,初始化 次梯度 ,重复:

次梯度

其中 次梯度 为步长,次梯度 ,即从次微分中随机选择一个次梯度作为梯度。

从这个算法中可以看出次梯度算法并不总是下降的,这也就解释了为什么将其称作次梯度算法而非次梯度下降算法。

为了使更新的参数呈递减的趋势,对第 次梯度 次的参数更新同步使用如下策略:

次梯度

即在第 次梯度 次更新参数时,如果使用次梯度算法计算得到的 次梯度 能够使 次梯度 更小,则 次梯度 ,否则 次梯度

次梯度算法使用如下步长选择准则:

i. 固定的步长。 次梯度 ;

ii. 衰减的步长。次梯度 满足如下条件:

次梯度

例如,取 次梯度 ,则 次梯度 (为 p 级数且 p>1)收敛且 次梯度 (为调和级数,即 p=1)发散,因而是满足条件的。 【关于 p 级数的敛散性可自行参考高等数学中级数敛散性相关内容】。

衰减的步长能够保证步长在逐步减小趋近于 次梯度 的同时变化的幅度不会太大,次梯度算法不像梯度下降算法那样可以自适应地计算当前次的步长,其步长是预先指定的。

只要选择的步长合适,算法总会收敛,只是算法收敛速度比较慢。

5. 次梯度算法求解lasso问题

lasso问题:

次梯度

由次梯度优化条件, 次梯度 是这个目标函数在最优解上次微分的一个元素,即: 次梯度

根据次梯度的计算方式,得到 次梯度 的第 次梯度 个分量满足:

次梯度

为简单起见,我们假设 次梯度次梯度 为单位矩阵,则由 (1) 式有:

次梯度

综合 (2) 和 (3),有以下推论:

i. 当 次梯度 时, 次梯度次梯度次梯度 ;

ii. 当 次梯度 时, 次梯度次梯度次梯度 ;

iii. 当 次梯度 时, 次梯度次梯度 ;

即当 次梯度 时最优解 次梯度 ,其每一个分量满足:

次梯度

次梯度 称为软阈值(Soft-thresholding )公式, 次梯度 被称为阈值,可以参考 【凸优化笔记4】-4.3软阈值算子


参考文献:

CMU凸优化课件-次梯度

【机器学习】次梯度(subgradient)方法

编辑于 01-19
凸优化
最优化
机器学习
赞同 29​ 添加评论
分享
喜欢 ​ 收藏
赞同 29
分享

文章被以下专栏收录

  • 次梯度

    凸优化学习笔记

    机器学习|凸优化理论

推荐阅读

  • 次梯度

    论文《Adam:A Method for Stochastic Optimization》心得

    次梯度

    凸优化笔记23:算子分裂法与ADMM

    次梯度

    凸优化笔记19:近似点梯度下降

    次梯度

    非线性优化方法的总结——approximation

还没有评论