- 邮箱:
- 广东省广州市天河区88号
- 电话:
- /public/upload/system/2018/07/26/f743a52e720d8579f61650d7ca7a63a0.jpg
- 传真:
- /public/upload/system/2018/07/26/fe272790a21a4d3e1e670f37534a3a7d.png
- 手机:
- 13800000000
- 地址:
- 1234567890
本篇为课程CS229的补充材料Convex Optimization Overview[1]的笔记。许多机器学习方法如最小二乘法、logistic回归、支持向量机都可以归纳到凸优化问题的框架之下,并得到有效的解决。这篇文章主要对原凸优化讲义内容进行总结,并对部分定义证明进行适当的补充。下半部分为凸优化综述(下)
- 先验知识
- 凸集(Convex Sets)
- 凸函数
- 凸性的一阶条件(First Order Condition for Convexity)
- 凸性的二阶条件(Second Order Condition for Convexity)
- Sublevel Sets
- 凸函数的例子
- 凸优化问题中的全局最优值
范数
非正式地说,向量 的范数
是这个向量的长度的度量,以第二范数欧几里得范数为例,
,写成向量形式为
。更正式地说,范数是满足以下四个条件的任何函数
:
- 非负性:对于所有
,有
- 正定性:当且仅当
的时候
- 齐次性:对于所有
,
- 三角不等式:对于所有
,
仿射子空间、多面体、仿射变换以及仿射函数
定义表述如下:
- 仿射子空间(affine subspaces):给定矩阵
以及向量
,仿射子空间为集合
- 多面体(polyhedra):类似的,多面体为集合
;注意,此处的符号
表示逐元素不等,即
的结果所有位置上的值都小于向量
对应位置上的值
- 仿射变换(affine transformation):从
到
的变换
被称为仿射变换,其中
,
,
为常向量
- 仿射函数(affine function):仿射函数为仿射变换的一种特殊情况,当仿射变换中的
时,
,
都为常数;此外,如果将此处
中的截距
去掉,剩下的部分
被称为线性函数
二次函数的 矩阵
设二次函数 ,其中矩阵
为对称矩阵
。
可以进行如下展开:
先对
求导,以
项为例:
由此可以推出,对于整体而言
再求
的
矩阵:
由此可以推出,对于整体而言
为了方便记忆这些结论,可以将上述结论与单变量求导的情况进行类比,例如将
类比为
,将
类比为
矩阵求导总结:
定义:对于任何 ,
且
,若
成立,则称集合
为凸的。
可以通过下面的图来直观地理解什么是凸集:对于凸集 中的任意两个元素
,用一条线段将这两个元素连起来,那么这条线段上的每个元素都属于
。
![](https://pic4.zhimg.com/v2-4c2de631dc8fe7754d63ac655964f99f_r.jpg)
典型的凸集有:
- 实数向量
- 非负象限
- 范数球
:设存在
,
,
,且
,利用范数的齐次性以及三角不等式有
- 仿射子空间
- 多面体
- 凸集的交集:设集合
为凸集,那么它们的交集
也是凸集。需要注意,凸集的并集往往不是凸集
- 半正定矩阵:设存在两个半正定矩阵
,
,对于所有的
有
而其中
,
,所以
所以半正定矩阵也是凸集
证明集合属于凸集的关键在于明确原集合的定义,之后利用凸集的定义进行证明即可。
定义:对于函数 ,如果它的域
是一个凸集,并且对于所有
,
,有
那么函数
被称为凸函数。
可以通过下面的图来直观地理解什么是凸函数:如果取凸函数上的两点并在它们之间连一条线段,那么两点之间的函数部分都会在这条线段之下。
![](https://pic1.zhimg.com/v2-24fc26e942485e51263b15dcedcc20f8_r.jpg)
进一步定义,如果上述定义对 且
的条件成立,则称函数
为严格凸函数。如果函数
为凸的,则定义
为凹的,严格凹函数的定义以此类推。
定义:假设函数 可微(即对于所有
,导数
恒存在),当且仅当
为凸集且对于所有
都成立的时候,可以称函数
是凸函数。
可以通过下面的图来直观地理解什么是凸性的一阶条件:对于凸函数上的任一点 ,它所在处的切平面永远在函数
下方。
![](https://pic1.zhimg.com/v2-29a9b04d952170efa8ab89164c001b08_r.jpg)
凸性的一阶条件可以由凸函数的定义推导得到。凸函数的定义为(此处为了方便证明对变量 的顺序做了些许改动):
对这个式子的左边进行变换:
,再根据凸函数的定义有:
继续变换有:
令
,易知
,所以原式继续化简为:
当
的时候,
就等价于求
在
处的导数。而函数
等同于函数
与函数
的复合函数,因此
而
,
,因此
所以
即
定义:假设函数 是二阶可微的(对于所有
,
矩阵都存在定义),当且仅当
为凸集且对于所有
,都有
时,可以称函数
是凸函数。
需要注意的是,此处的符号 与上文多面体定义中用到的符号含义不同,此处的
表示半正定,而非逐元素不等。
实际上,凸性的一阶条件和二阶条件是等价的,由凸性的一阶条件可以推出凸性的二阶条件。先写出函数 在
处的二阶泰勒展开:
令
, 则有
此处式中的余项
在
时相对于
是更高阶的无穷小,所以当凸性的一阶条件
成立时,此处的二阶项
。其中,
为函数
在点
处的
矩阵,
表示
矩阵为半正定。由
矩阵的定义
可知,此时凸性的二阶条件
成立。
为了便于理解,可以将输入变量 设为一维的。此时凸性的二阶条件就等同于函数
的二阶导数
。
更多关于凸函数的二阶条件以及 矩阵的讨论可以参考这个问题:怎么理解二阶偏导与凸函数的Hessian矩阵是半正定的?
给定凸函数 以及一个实数
,集合
定义为:
换句话说,对于函数
来说,
是所有符合条件
的点的集合。
是个凸集,这一点可以利用定义进行证明。
- 指数函数
- 负对数函数
- 仿射函数:由于仿射函数项的最高次数为1,因此可知仿射函数的
矩阵
(可以将
矩阵类比于函数的二阶导数),而由于零矩阵即是半正定的又是半负定的,所以仿射函数既是凸函数又是凹函数。实际上,仿射函数是唯一一种既凹又凸的函数
- 二次函数:设函数
为
,其中
,
,
。根据上文提及的二次函数的
矩阵知
,因此由凸性的二阶条件可知,函数
的凸性取决于矩阵
是否为半正定的
- 范数:设函数
是
上的范数,根据三角不等式以及范数的齐次性,对于任何
,
,有
注意,此处函数的凸性无法利用凸性的一阶条件以及二阶条件进行证明,因为范数本身可能并不是处处可微的
- 凸函数的非负加权和:设函数
为凸函数,
为非负实数,设函数
为
则函数
是凸函数,因为
在对凸函数以及凸集有了充分的认知以后,是时候来对凸优化问题进行定义了。凸优化问题有着如下形式: 即函数的输入
服从约束集合
,而问题的目标为最小化
。此处函数
为凸函数,集合
为凸集,
为优化变量。这种写法稍显不够清晰,因此将上述形式进行重写:
此处函数
为凸函数,函数
为凸函数,函数
为仿射函数,
为优化变量。值得注意的是此处的不等式中不等号的方向。函数
必须小于等于零,这是因为凸函数
的
是一个凸集,这样才能保证当所有不等式约束同时成立时,约束下的可行区域依然是凸集(凸集的交集依然是凸集)。此外,此处的等式一定且只能是仿射函数,直觉上来说,等式
等价于两个不等式
与
,进一步推导知其等价于不等式
与
。此时,拆解后的等式约束就可以全部归纳到前面的不等式约束
中,按照不等式约束的条件,所有函数
都是凸函数,所以函数
都是凸函数,即函数
既凸又凹,而唯一一类又凸又凹的函数就是仿射函数,所以
一定且只能是仿射函数。
有了凸优化问题的定义之后,就能对局部最优点以及全局最优点进行定义了。
局部最优点的定义:如果一个点 服从优化问题的约束,且对于所有服从优化问题约束的点
,都存在某个
使所有服从约束
的点
满足
,那么点
可以被称为局部最优点。
全局最优点的定义:如果一个点 服从优化问题的约束,且对于所有服从优化问题约束的点
都存在
,那么
可以被称为全局最优点。
凸优化问题的关键在于,凸优化问题中的所有局部最优点都是全局最优的。可以利用反证法对其这一点进行证明。假设点 是凸优化问题中的一个局部最优点而非全局最优点,那么一定存在另一个服从优化问题约束的点
使
。根据局部最优点的定义,不存在能使约束
与
同时成立且服从优化问题约束的点
。但假设通过选择
并选择
,那么有:
并且
即
,而这与局部最优的定义相悖。所以点
一定是全局最优点。