凸优化问题

凸优化简介

SIGAI之前的公众号文章“理解梯度下降法”中我们介绍了最优化的基本概念以及梯度下降法。如果读者对目标函数,优化变量,可行域,等式约束,不等式约束,局部极小值,全局极小值的概念还不清楚,请先阅读那篇文章。

求解一个一般性的最优化问题的全局极小值是非常困难的,至少要面临的问题是:函数可能有多个局部极值点,另外还有鞍点问题。对于第一个问题,我们找到了一个梯度为0的点,它是极值点,但不是全局极值,如果一个问题有多个局部极值,则我们要把所有局部极值找出来,然后比较,得到全局极值,这非常困难,而且计算成本相当高。第二个问题更严重,我们找到了梯度为0的点,但它连局部极值都不是,典型的是  这个函数,在0点处,它的导数等于0,但这根本不是极值点:

 

梯度下降法和牛顿法等基于导数作为判据的优化算法,找到的都导数/梯度为0的点,而梯度等于0只是取得极值的必要条件而不是充分条件。如果我们将这个必要条件变成充分条件,即:

 

问题将会得到简化。如果对问题加以限定,是可以保证上面这个条件成立的。其中的一种限制方案是:

对于目标函数,我们限定是凸函数;对于优化变量的可行域(注意,还要包括目标函数定义域的约束),我们限定它是凸集。

 

同时满足这两个限制条件的最优化问题称为凸优化问题,这类问题有一个非常好性质,那就是局部最优解一定是全局最优解。接下来我们先介绍凸集和凸函数的概念。

凸集

 

下面是实际问题中一些常见的凸集例子,记住它们对理解后面的算法非常有帮助:

这个结论的实际价值是如果每个等式或者不等式约束条件定义的集合都是凸集,那么这些条件联合起来定义的集合还是凸集,而我们遇到的优化问题中,可能有多个等式和不等式约束,只要每个约束条件定义的可行域是凸集,则同时满足这下约束条件的可行域还是凸集。需要注意的是,凸集的并集并不是凸集。

 

凸函数

根据多元函数极值判别法,假设多元函数在点M的梯度为0,即M是函数的驻点,则有:

 

1.如果Hessian矩阵正定,函数在该点有极小值

2.如果Hessian矩阵负定,函数在该点有极大值

3.如果Hessian矩阵不定,则不是极值点(鞍点)

 

下水平集

 

局部最优解与全局最优解

即该点在x的  邻域内。另外:

 

这与x是局部最优解矛盾。如果一个局部最优解不是全局最优解,在它的任何邻域内还可以找到函数值比该点更小的点,这与该点是局部最优解矛盾。

之所以凸优化问题的定义要求目标函数是凸函数而且优化变量的可行域是凸集,是因为缺其中任何一个条件都不能保证局部最优解是全局最优解。下面来看两个反例。

情况1:可行域是凸集,函数不是凸函数。这样的例子如下图所示:

上图中优化变量的可行域是整个实数集,显然是凸集,目标函数不是凸函数,有两个局部最小值,这不能保证局部最小值就是全局最小值。

情况2:可行域不是凸集,函数是凸函数。这样的例子如下图所示:

在上图中可行域不是凸集,中间有断裂,目标函数还是凸函数。在曲线的左边和右边各有一个最小值,不能保证局部最小值就是全局最小值。可以很容易把这个例子推广到3维空间里的2元函数(曲面)。由于凸优化的的目标函数是凸函数,Hessian矩阵半正定,因此不会出现鞍点,所以找到的梯度为0的点一定是极值点。

求解算法

对于凸优化问题,可以使用的求解算法很多,包括最常用的梯度下降法,牛顿法,拟牛顿法等,它们都能保证收敛到全局极小值点。梯度下降法在之前的文章中已经介绍,牛顿法和拟牛顿法在接下来将会介绍,请关注SIGAI的公众号。

机器学习中的凸优化问题

下来我们来列举一些机器学习中典型的凸优化问题。

线性回归

因此它的Hessian矩阵为:

 

写成矩阵形式为:

其中X是所有样本的特征向量按照列构成的矩阵。对于任意不为0的向量x,有:

因此Hessian矩阵是半正定矩阵,上面的优化问题是一个不带约束条件的凸优化问题。可以用梯度下降法或牛顿法求解。

岭回归

岭回归是加上正则化项之后的线性回归。加上L2正则化之后,训练时优化的问题变为:

同样的,我们可以证明这个函数的Hessian矩阵半正定,事实上,如果正则化项的系数大于0,它是严格正定的。限于篇幅,我们在这里不给出详细证明。

支持向量机

SIGAI之前的公众号文章“通过一张图理解SVM的脉络”中我们介绍了支持向量机的推导过程,如果读者对支持向量机没有基本的概念,请先阅读那篇文章。支持向量机训练时求解的原问题为:

显然,这些不等式约束都是线性的,因此定义的可行域是凸集,另外我们可以证明目标函数是凸函数,因此这是一个凸优化问题。

通过拉格朗日对偶,我们转换为对偶问题,加上核函数后的对偶问题为:

这里的等式约束和不等式约束都是线性的,因此可行域是凸集。根据核函数的性质,我们可以证明目标函数是凸函数。如果读者感兴趣,我们后面的公众号文章中会给出证明过程。

logistic回归

logistic回归也是一种常用的有监督学习算法。加上L2正则化项之后,训练时求解的问题为:

这是一个不带约束的优化问题,我们可以证明这个函数的Hessian矩阵半正定。如果读者对证明过程感兴趣,我们以后的公众号文章中会给出。

softamx回归

softamx回归是logistic回归对多分类问题的推广。它在训练时求解的问题为:

这是一个不带约束的优化问题,同样的可以证明这个目标函数是凸函数。除此之外,机器学习中还有很多问题是凸优化问题,限于篇幅,我们不能一一列出。由于是凸优化问题,这些算法是能保证找到全局最优解的。而神经网络训练时优化的目标函数不是凸函数,因此有陷入局部极小值和鞍点的风险,这是之前长期被人诟病的。

  • 13
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值