关闭

凸优化

标签: 凸优化机器学习
408人阅读 评论(0) 收藏 举报
分类:

1.背景:

机器学习问题都是优化问题,而优化问题中凸优化是很大类且解法丰富,如果问题能转化为凸优化问题,则必能解,比如说:最小二乘,逻辑回归以及SVM等等。凸优化哪里好了,因为凸优化局部最优解就是全局最优解而且凸优化理论有个强大的工具就是Lagrange对偶。

2.凸集定义:


一个集C,对于任何属于C的x和y,都有ax+(1-a)y属于C,其中a为0~1。


喏,这个左边就是凸集,右边就是非凸集。

实数空间,范数约束形式的集合,仿射子空间和凸集的交集这些都是凸集。

3 凸函数
3.1凸函数定义:


什么意思,不等式左边是函数值,右边则是一条直线,意思就是函数上任意两个点连线值肯定是大于对应自变量处的值。如下图:


3.2凸函数两个等价的充要条件:

1)一阶充要条件:


这个比较好理解,想象成开口向上的抛物线,切线在它下方。

2)二阶充要条件:


要求嘛~各自一阶二阶函数都要是存在的,都要是可导的。其中{\nabla ^2}f\left( {\bf{x}_0} \right)f(\bf{x})\bf{x_0}点处的Hessian矩阵,可以理解成梯度向量的二阶形式。

下面证明凸函数的Hessian矩阵是半正定的,也就是为啥{\nabla ^2}f\left( {\bf{x}_0} \right)大于等于0.

首先,将f(x)在x_0处进行二阶泰勒展开


显然只要成立,那么条件一就成立。也就是只要X_{0}处的Hessian矩阵为正半定就行了。

3.3 Jension不等式

首先,我们不是得到典型的凸函数定义不等式了吗?


然后,上述的式子只是两个点哦,我们进行拓展,如果对于K个点是什么样的呢?


是的,就变成这样了,再夸张一下,这个式子是离散的,如果再扩展成连续的呢?


就变成了这样。等等这不就是大名鼎鼎的Jension不等式了吗

恩,指数函数,非负对数函数,仿射函数,二次函数,范数函数等等都是凸函数哟!

3.4 为什么凸函数局部最优就是全局最优(证明)

目标函数是 minf(x),而f(x)是凸函数假设 x1是一个局部最优,也就意味着在x1周围存在一个邻域,而这个邻域内的点都比f(x1)大。
对于任意一个点 y 利用凸组合构造一个点 (1-t)x1+ty,把t 取得足够小,那么一定能够让 (1-t)x1+ty出现在 x1的邻域内,那么有 f(x1)<=f((1-t)x1+ty)

利用f(x)是凸函数这个性质,有 f(x1)<=f((1-t)x1+ty)<=(1-t)f(x1)+tf(y),对f(x1)<=(1-t)f(x1)+tf(y)两边消去一项f(x1)于是得出f(x1)<=f(y) 

由于y是任意的又有f(x1)<=f(y) ,所以也就说明了x1是全局最优点

3.5 分段集(sublevel set)

其定义如下:

也就是说,给定一个凸函数f,所有的x都满足f(x)<=a。而怎么证明这也是一个凸集呢。如下所示

这个就相当于把凸函数和凸集互相串了起来


4.凸优化问题

首先,凸优化问题的英文定义如下:


以上便是凸优化问题的形式,f便是上文提出的凸函数,C便是凸集。x就是优化的变量。而也可以写成下面这个形式,g也是凸函数,h则为仿射函数。至于上下两个形式的关联,x不是属于凸集么~根据3.5。gi(x)<=0,那么这里面的x也是属于凸集,然后m个这些凸集的交集也是属于凸集。后面为啥h为仿射函数呢。因为h(x)=0,可以看成h(x)>=0且h(x)<=0这要求h即是凸的也是凹的,那么就只有仿射函数满足这样的性质,也只有仿射函数是取等于0,仿射变换是线性函数加常数的形式也就是f(x)=ax+b,多说一句,为啥要成为凸集,因为我们需要保证求得全局最优,所以一定要在凸集当中求得。



1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20299次
    • 积分:665
    • 等级:
    • 排名:千里之外
    • 原创:46篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章分类
    最新评论