《凸优化》学习笔记

Posted 佟学强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《凸优化》学习笔记相关的知识,希望对你有一定的参考价值。

?凸优化在数学优化中有着重要且特殊的身份。数学优化是一个广泛的话题,理解凸优化之前,请先理解线性优化。在机器学习算法中,已知的比如LogisticRegression,SVM,都与数学优化有关,在数学中,不存在无约束优化问题。比较常见的构建损失函数方法,从最简单的两个向量的二阶范数的平方(KNN,Kmeans)到linearRegression、LogisticRegression的最小二乘模型,再到SVM的二次凸优化,都和数学优化理论紧密相关。本篇笔记主要学习数学优化的前奏部分:凸优化的概念部分。

1.1.1数学优化

--------------------①

这是数学优化的最基本形式。其中,x = (x1,x2,……xn)称为优化变量,函数称为目标函数,函数称为约束函数。常数称为约束上限或者约束边界。如果在所有满足约束的向量中向量对应的目标函数值最小,那么他就是问题的最优解。

在机器学习理论的推导中,一般只考虑特殊的优化问题,线性优化问题。对于上式,如果目标函数和约束函数都是线性函数,即对于任意的,都有:

------------------------------------②

则此问题成为线性规划。在机器学习算法中,还需要进一步特化,就是凸优化。凸优化中目标函数和约束函数都属于凸函数,即对于任意的,任意,都有:

--------------------------------③成立。比较③和②式可以发现,③式是②式的特殊形式。只用在或者其中一个为0的情况下才成立。不同的是两者的严格程度,后者凸优化是不太严格的线性优化问题。所以可以用线性优化的手段来解决凸优化问题,甚至包括特殊情况下的非线性规划问题,也可以采取特殊手段往这个方向靠拢(目前在业内,对于非线性优化问题的求解还不算成熟)。上一篇博客中推导过LogisticRegression的似然函数(与损失函数取反),其实属于非严格意义上的凸优化问题,包括线性回归,这类问题的损失函数构建可以用最小二乘模型来解决,它本身属于线性优化问题的范畴。(对于凸函数的定义,有不同的说法。比如,一般认为二阶导数<0的函数属于凸函数,>0属于凹函数。因为二阶导数<0意味着一阶导数属于减函数,也就是原函数的切线的斜率是不断减小的,这种情况原函数就只能是先增后减了。)在凸优化中,如果函数的自变量是R,我们认为二阶导数>=0的函数为凸函数,反之为凹函数。

对于凸优化问题,我们认为目标函数是成本函数,在优化变量满足约束的情况下,让成本或者损失最小。

1.1.2 线性优化问题的求解

在工程实际应用中,我们需要的是得到稀疏性的解,不仅可以减少迭代次数,还可以解决过拟合问题,增强模型的解释能力。关于sparse问题,有专门的研究课题(比如lasso学术研究,CD算法,LAR算法),这里不讨论。对于优化问题的求解,有两类非常重要且广泛的求解方法:最小二乘法和线性规划问题。还有一类特殊的优化方法:凸优化。

1.2 最小二乘问题

在线性回归的损失函数的推导中,假定认为偏差( = real - predict)遵循Gaussian Destribution(N(0,1)),根据判别学习模型估计最大似然函数,最后得出来的结论其实是最小二乘模型。最小二乘问题是回归问题,最优控制以及很多参数估计和数据拟合方法的基础。在统计学中有着很重要的意义,比如给定包含高斯噪声的线性测量值时,似然函数的估计的最优解是最小二乘法。如果目标函数是二次函数并且半正定(开口朝上,并且函数值不全>0) ,他就是最小二乘问题。

用数学公式来解释,最小二乘问题属于特殊的数学优化问题,没有约束(m=0)。目标函数其实是由偏差组成的列向量的二阶范数的平方(个人理解),如下形式的优化:

--------------------------------------④

其中,A可以理解为机器学习中特征矩阵,x为估计参数,b为真实值组成的列向量,最后面的部分是拆解后的结果。在求解时,一般采用传统的在线学习方法SGD。

正则化是此类问题的热点。上个世纪90年代,有学者提出lasso,此后论文被引用了14000多次,由此可见lasso的重要性。在机器学习中,提高模型的泛化能力很重要。LogisticRegression的处理主要有岭回归和L1范数,关于这方面,专门写一篇博客。

1.2.2 线性规划

另一类比较重要的问题是线性规划。如下形式:

-------------------⑤

。对线性规划的求解 ,一般采用内点法,对于原始问题不是线性规划的问题,可以通过一定的技巧转化为线性规划问题。作为一个简单的例子,考虑Chybeshev逼近问题:

 

这个公式和前面的最小二乘很相似,不同的是这个公式取偏差的绝对值的最大值作为优化目标。求解这个问题,可以转换成如下形式的线性规划问题:

 

 1.3 凸优化

SVM就属于典型的凸优化范畴。求解凸优化问题并不是一件特别难的事儿,难的在于如何判断问题属于凸优化问题,如何转化成凸优化问题。在机器学习的范畴中,更多的是凸优化和非凸优化的判断。求解凸优化的方法有内点法,但是凸优化的求解并不像最小二乘和线性规划那样成熟。凸优化的形式和公式①一样,目标函数和约束函数都是凸函数。

以上是关于《凸优化》学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

CMU Convex Optimization(凸优化)笔记1--凸集和凸函数

机器学习笔记:正则化

MLDS笔记:Optimization

凸优化从入门到放弃(目录)

学习笔记之——非线性优化的解读

class-支持向量机SVM全析笔记