凸优化小结
定义
凸优化问题(OPT,convex optimization problem)指定义在凸集中的凸函数最优化的问题。尽管凸优化的条件比较苛刻,但仍然在机器学习领域有十分广泛的应用。
凸优化问题的优势
- 凸优化问题的局部最优解就是全局最优解
- 很多非凸问题都可以被等价转化为凸优化问题或者被近似为凸优化问题(例如拉格朗日对偶问题)
- 凸优化问题的研究较为成熟,当一个具体被归为一个凸优化问题,基本可以确定该问题是可被求解的
相关数学概念
1. 凸集
1.1 定义:
是凸集,如果对于任意的和任意的满足时, 恒成立
1.2 几何意义:
直观来说,任取一个集合中的两点练成一条线段,如果这条线段完全落在该集合中,那么这个集合就是凸集。
2. 凸函数
2.1定义:
定义在上的函数是凸函数,如果它的定义域是一个凸集且对任意的和,恒成立
2.2几何意义:
2.3凸函数的一阶充要条件:
假设定义在上的函数可微(即对于所有,梯度均存在)。则函数是凸函数当且仅当函数定义域是一个凸集,且对于所有均满足:
一阶充要条件从几何意义上讲,即定义域内所有函数值都大于等于该点的一阶近似。
2.4 凸函数的二阶充要条件:
记函数的一阶导数和二阶导数分别为和:
假设定义在上的函数二阶可微(即对于所有,海森矩阵均存在)。则函数是凸函数当且仅当函数定义域是一个凸集,且对于所有均满足:
注意:这里的表示的是半正定。
3. 正定矩阵
3.1 从二次型出发理解正定矩阵
正定矩阵的概念是从正定二次型引入的,对称矩阵为正定的充要条件即该矩阵的特征值全为正数。
为方便理解正定/半正定矩阵,我们引入二次型,对于含有个变量的二次齐次函数,我们可以一般化地写为:
同时,对于所有的二次齐次式我们都可以写成矩阵形式:
如果对任意的均有,则称为正定二次型,同时称为正定矩阵。
因为对于任意的二次型,我们都能将其写为矩阵形式,且矩阵的形式为:
因此二次型矩阵和对称矩阵是一一对应的关系。
3.2 从几何意义理解正定二次型
对于最简单的一元二次函数,当时恒成立。即一元正定二次型对应的图像是开口向上,顶点在原点的抛物线,同理二元正定二次型对应的图像是开口向上,顶点在原点的抛物面。
扩展到元正定二次型的图像也对应着一个抛物线,保证当自变量取值非零向量时,对应的函数值大于0恒成立。
3.3 半正定矩阵的图像
同样我们可以给出二元半正定二次型的图像,即某个自变量的特征值为0从而保证当自变量取值为非零向量时,对应的函数值大于等于0恒成立。
凸优化问题
1. 定义:
当和均为凸函数,而均为仿射函数时, 上述的优化问题即凸优化问题。
2. 常见的凸优化问题
2.1 线性规划(LP, Linear Program)
其中目标函数和不等式约束都是仿射函数,且表示按元素小于等于。
2.2 二次规划(QP, Quadratic Program)
其中目标函数为凸二次型,不等式约束为仿射函数。
2.3 二次约束的二次规划(QCCP, Quadratically Contrained Quaratic Program)
其中目标函数和不等式约束都是凸二次型。
2.4 半正定规划(SDP, Semidefinite Program)
其中需要最优化的变量是一个对称的半正定矩阵,且为对阵矩阵。
3. 凸优化问题的一般求解过程
由于凸优化问题具有局部最优解即全局最优解的优良特性,因此求解过程可以简化为:找到一个点列使得目标函数值持续减少,直到触发停止条件或达到一个最小值。
设为第次迭代的值,为第次搜索方向,为第次迭代的步长,则第次迭代公式为:
其中第次的搜索方向满足:
4.优化理论在机器学习,深度学习中扮演的角色
凸优化,或者更广泛的说,是最优化理论,在机器学习,数据挖掘,或者是深度学习的神经网络中,都可以用到。
最优化,就是告诉模型应该学什么,怎么学的工具。
模型学习的往往都是一个映射函数,也就是模型中的参数W,这个参数的好坏,得看答案才能知道,但知道自己错了之后,该往哪里学,怎么学,怎么调整,这就是优化理论在其中扮演的角色。如果没有优化理论,那么模型是不知道该怎么学习的,也就是没有了最优化,模型的学习永远都是停滞不前的。
[1] https://www.jiqizhixin.com/articles/2019-03-05-8
[2] https://www.zhihu.com/question/38902714/answer/195435181
[3] https://www.jianshu.com/p/62539b0316e2
[4] plot: matplotlib.pyplot
[5] http://cs229.stanford.edu/section/cs229-cvxopt.pdf