一、凸集的定义为:
其几何意义表示为:如果集合C中任意2个元素连线上的点也在集合C中,则C为凸集。其示意图如下所示:
常见的凸集有:
n维实数空间;一些范数约束形式的集合;仿射子空间;凸集的交集;n维半正定矩阵集;这些都可以通过凸集的定义去证明。
二、凸函数的定义为:
其几何意义表示为函数任意两点连线上的值大于对应自变量处的函数值,示意图如下:
凸函数的一阶充要条件为:
其中要求f一阶可微。
二阶充要条件为:
其中要求f二阶可微,表示二阶导数需大于0才是凸函数。
按照上面的两个定义,如果f(x)=x^2肯定是凸函数,而g(x) = -x^2是非凸函数。也就是说开口向下的函数是非凸函数,但是对于这种情况可以通过添加负号变成凸函数,从而求解。
常见的凸函数有:指数函数族;非负对数函数;仿射函数;二次函数;常见的范数函数;凸函数非负加权的和等。这些可以采用上面2个充要条件或者定义去证明。
凸优化问题(OPT)的定义为:
即要求目标函数是凸函数,变量所属集合是凸集合的优化问题。或者目标函数是凸函数,变量的约束函数是凸函数(不等式约束时),或者是仿射函数(等式约束时)。
对于凸优化问题来说,局部最优解就是全局最优解。
三、常见的凸优化问题包括:
线性规划(LP):该问题是优化下面的式子:
其中那个不常见的奇怪符号表示按元素小于等于,后面出现类似符号可以类似理解。
二次规划(QP):该问题是优化下面的式子:
二次约束的二次规划(QCQP):该问题是优化下面的式子:
半正定规划(SDP):该问题是优化下面的式子:
按照文章说SDP在机器学习领域应用很广,最近很流行,不过我好像没太接触到过。
参考资料:
http://cs229.stanford.edu/section/cs229-cvxopt.pdf
四、有约束凸问题分析
首先,介绍一下log barrier方法:
这是一个惩罚的思想,见过很多次了。具体来说就是,根本无法得到最优解,就好像有一个“栅栏”一样,阻止趋近于0,让它只能小于0。
这里要分类讨论,即KKT条件是线性方程组或者是非线性方程组两种。
当KKT条件是线性方程组时,按照解线性方程组的方法解就行了,属于比较简单的类别,这里就不赘述了,我们主要研究怎么在KKT条件非线性方程组时算出最优解。
牛顿法(Newton’s Method)
直接解一个非线性方程组往往是比较棘手的问题,牛顿法的思路就是将解一个非线性的KKT条件转换为解许多线性的方程组,具体就是将求解分为很多步,每一步都有一个当前的KKT条件,用一个泰勒展开去构造一个近似问题,而这个近似问题的KKT条件是线性的。这样,通过不断迭代,我们最终能得到最优解。
原文链接:https://blog.csdn.net/qq_40917612/article/details/105329952
五、带约束凸优化最优解的存在条件——KKT条件
在优化目标函数的时候,有时候我们会考虑其对偶问题。这里有两种考虑:1)对偶问题比原问题容易求解;2)对偶问题能提供一种新的解释。比如对支持向量机的对偶问题分析,我们最后得出分界面只由少量“支持向量”决定。这篇文章将给出对于带约束凸优化问题的最优解的存在条件。
来源:oschina
链接:https://my.oschina.net/u/4302946/blog/3273897