凸优化-次梯度算法

02 October 2015

1. 次梯度

在优化问题中,我们可以对目标函数为凸函数的优化问题采用梯度下降法求解,但是在实际情况中,目标函数并不一定光滑、或者处处可微,这时就需要用到次梯度下降算法。

次梯度(*Subgradient*)与梯度的概念类似,凸函数的First-order characterization是指如果函数f可微,那么当且仅当 为凸集,且对于 ,使得 ,则函数 为凸函数。这里所说的次梯度是指在函数 上的点 满足以下条件的

其中,函数 不一定要是凸函数,非凸函数也可以,即对于凸函数或者非凸函数而言,满足上述条件的 均为函数在该点的次梯度。但是,凸函数总是存在次梯度(可以利用epigraph和支撑平面理论证明),而非凸函数则不一定存在次梯度,即使 可微。该定义说明,用次梯度对原函数做出的一阶展开估计总是比真实值要小。

很明显,凸函数的次梯度一定存在,如果函数 在点 处可微,那么 ,为函数在该点的梯度,且唯一;如果不可微,则次梯度不一定唯一。但是对于非凸函数,次梯度则不一定存在,也不一定唯一。例如,凸函数 范数为凸函数,但不满足处处可微的条件,因此,函数的次梯度不一定唯一,如下图:

左一图为 ,函数在 时,次梯度唯一,且 ;当 时,次梯度为 中的任意一个元素;

左二图为 ,函数在 时,次梯度唯一,且 ;当 时,次梯度为 中的任意一个元素;

同样,绝对值函数 和最大值函数 在不可微点处次梯度也不一定唯一,如下图:

对于左二函数而言,其在满足 的点处,次梯度为任意一条直线在向量 之间。

同理,我们还可以给出次微分(subdifferential)的定义,即:

  • 次微分是闭合且为凸集;
  • 如果函数 在点 处可微,那么次微分等于梯度;
  • 凸函数的次微分不为空,但非凸函数则不一定。

如果我们还记得Normal cone是指给定任意集合 和点 ,那么我们可以看出,对于集合 的边界上点的Normal cone就是函数 在该点的次微分。其中,

证明:

因为,对于函数的次梯度会满足 ,因此,

  • 对于 ,不满足Normal cone的定义;
  • 对于 ,满足Normal cone的定义;

既证。

2. 次梯度的性质

  • Scalingf:
  • Addition:
  • Affine composition:如果 ,那么
  • Finite pointwise maximum:如果 ,那么 ,意味着函数 的次微分等于所有能取得最大值的函数 在点 处的微分,具体实例可参考之前提到的最大值函数部分。

3. 为什么要计算次梯度?

对于光滑的凸函数而言,我们可以直接采用梯度下降算法求解函数的极值,但是当函数不处处光滑,处处可微的时候,梯度下降就不适合应用了。因此,我们需要计算函数的次梯度。对于次梯度而言,其没有要求函数是否光滑,是否是凸函数,限定条件很少,所以适用范围更广。

次梯度具有以下优化条件(subgradient optimality condition):对于任意函数 (无论是凸还是非凸),函数在点 处取得最值等价于:

即,当且仅当0属于函数 在点 处次梯度集合的元素时, 为最优解。

证明:

证明很简单,当次梯度 时,对于所有 ,存在 ,所以, 为最优解,即证。

4. 次梯度算法

次梯度算法(Subgradient method)与梯度下降算法类似,仅仅用次梯度代替梯度,即:

其中, ,为 在点 处的次梯度。

与梯度下降算法不同的地方在于,次梯度算法并不是下降算法,每次对于参数的更新并不能保证代价函数是呈单调递减的趋势,因此,一般请款下我们选择:

另一点与梯度下降算法不同的是:次梯度算法没有明确的步长选择方法,类似Exact line searchBacktracking line search的方法,只有步长选择准则,具体如下:

  • Fixed step sizes: 
  • Diminishing step sizes: 选择满足以下条件的 :


Diminishing step sizes方法主要是保证步长逐渐变小,同时,变化幅度还不会特别快。这里需要注意的是,次梯度算法并不像梯度下降一样,可以在每一次迭代过程中自适应的计算此次步长(adaptively computed),而是事先设定好的(pre-specified)。

但是,很多人会提出这样一个问题,如果你不能保证次梯度是单调的,如何保证最后可以收敛?

定理:如果 为凸函数,且满足Lipschitz continuous with G,如果固定步长为 ,那么次梯度算法满足:

证明:

对于 ,其中 。因此,我们可以展开下式为:

因为, ,且由凸函数一阶性质可得 ,上式不等式可以写为:

对于任意 ,求和上式可以获得:

因为, ,所以:

如果令 为迭代 次内的最优解,那么 ,其中, ,因此:

所以,我们可以得到

同时,因为函数满足Lipschitz continuous with G,所以, ,即函数的次梯度

综上所述,我们可以证明下式成立:

,既证上述定理成立。

此时,如果我们想要获得 -最优解,则令 ,令等式的每一部分等于 ,则

因此,次梯度的收敛速度为 ,跟梯度下降算法收敛速度 相比,要慢许多。

5. 次梯度算法实例

A. Regularized Logistic Regression

对于逻辑回归的代价函数可记为:

明显,上式是光滑且凸的,而regularized problem则是指优化目标函数为:

如果 ,则成为岭回归(ridge problem),如果 则称为Lasso。对于岭回归,我们仍然可以采用梯度下降算法求解目标函数,因为函数处处可导光滑,而Lasso问题则无法用梯度下降算法求解,因为函数不是处处光滑,具体可参考上面给出的Norm-1的定义,所以,对于Lasso问题需要选用次梯度算法求解。

下图是对于同样数据集下分别对逻辑回归选用岭惩罚和Lasso惩罚求解最优解的实验结果图( ):

B. 随机次梯度算法

第4部分降到的次梯度算法梯度更新定义为:

随机次梯度算法(Stochastic Subgradient Method)与次梯度算法(Subgradient Method)相比,每次更新次梯度是根据某一个样本计算获得,而不是通过所有样本更新次梯度,其定义为:

其中, 是第 次迭代随机选取的样本 。从该方法的定义,我们也可引出随机梯度下降算法Stochastic Gradient Descent)的定义,即当函数 可微连续时,

所以,根据梯度更新的方式不同,次梯度算法和梯度下降算法一般被称为“batch method”。从计算量来讲, 次随机更新近似等于一次batch更新,二者差别在于 ,当 变化不大时,差别可以近似等于0。

对于随机更新次梯度,一般随机的方式有两种:

  • Cyclic rule:选择
  • Randomized rule:均匀随 机从选取一点作为

与所有优化算法一样,随机次梯度算法能否收敛?

答案是肯定的,这里就不在做证明,有兴趣的同学可以参考boyd教授的论文,这里仅给出收敛结果,如下:

对于Cyclic rule,随机次梯度算法的收敛速度为 ;对于Randomized rule,随机次梯度算法的收敛速度为

下图给出梯度下降和随机梯度下降算法在同一数据下迭代结果:

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
逐次逼近(Successive Convex Approximation, SCA)是一种用于求解多个块变量连续函数最小值的优化方法。在SCA的每次迭代中,通过连续地最小化一系列逼近函数来更新变量块,这些逼近函数可以是目标函数的局部紧上界或严格局部逼近。SCA算法的收敛性和迭代复杂度取决于目标函数的性质,例如是否可微或性。此外,SCA方法还可以应用于存在线性约束的问题,并且可以处理随机变量参数化的目标函数的期望值最小化问题。 然而,关于SCA算法的时间复杂度方面,我没有找到具体的引用。SCA算法的时间复杂度可能受到问题的具体设置和算法的实现方式的影响,因此无法给出确切的时间复杂度。如果您对SCA算法的时间复杂度感兴趣,我建议参考相关的研究论文或进一步的文献调查来获取更详细的信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [SCA(successive convex approximation)学习](https://blog.csdn.net/qq_45542321/article/details/128699170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [OFDM系统载波频偏的低复杂度多步估计 (2007年)](https://download.csdn.net/download/weixin_38683848/18837935)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值