一、什么是优化方法
最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。大部分的机器学习算法的本质就是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。
凸优化是最优化方法中最常见的一种。如果限定优化变量的可行域是凸集的话,同时限定目标函数为凸函数,同时满足这两个限制条件的最优化问题称为凸优化问题,这类问题有一个非常好性质,那就是局部最优解一定是全局最优解。可以使用如梯度下降法和牛顿法等基于导数作为判据的优化算法。
凸优化问题的优势:
- 凸优化问题的局部最优解就是全局最优解
- 很多非凸问题都可以被等价转化为凸优化问题或者被近似为凸优化问题(例如拉格朗日对偶问题)
- 凸优化问题的研究较为成熟,当一个具体被归为一个凸优化问题,基本可以确定该问题是可被求解的
二、凸集与凸函数定义
1、凸集
集合C内任意两点间的线段也均在集合C内,则称集合C为凸集,数学定义为:

上面凸集定义中便用到了线段的向量表示,含义是如果点x1和点x2在集合C内,则线段x1x2上所有点都在集合c内,凸集的交集仍是凸集,下面展示几个凸集示例:


2、凸函数
凸函数定义为:

则成 f(x) 为定义在凸集C上的凸函数
严格凸函数定义:设 f ⊆ Rn–> R1,C是凸集,对于x1, x2∈C 都有:

则成 f(x) 为定义在凸集C上的严格凸函数
凸函数的等价定义:设f ⊆ Rn–> R1,C是凸集,对于x1, x2, x3∈C且x1<x2<x3,下式成立则 f(x) 为凸函数:

3、凸函数定义几何解释
对于凸函数公式描述:

如下图所示,设A1、A2是凸函数曲线上的两个点,他们对应的横坐标x1

因此,凸函数的几何含义是:函数任意两点A1和A2之间的部分位于弦A1A2的下方或曲线任一点切线上方,不严谨一个说法:割线始终位于两点间函数曲线的上方

三、凸优化问题的局部极小值是全局极小值
凸优化问题的局部极小值是全局极小值。这个性质是凸优化问题一个良好的性质,在机器学习任务中我们只需将非凸问题转化为凸优化问题,便可直接求出问题的全局极值。
我们观察下面两幅图,形象感受一下为什么凸优化问题的局部最优解是全局最优解,(1) 从下图可以看出当函数不是凸函数时,当对非凸函数f(x)进行最优化时,便可能得到局部最优解,无法获得全局最优解

(2) 从下图可以看出当目标函数可行域是非凸时,则此时对函数进行优化时也可能错过全局最优解

