本文转载自多个地方,仅用作个人学习,如需删除请见谅并联系本人。


为什么凸优化这么重要?见知乎,写的很




1 梯度下降法

凸优化是深度学习 凸优化算法有哪些_定义域

2 坐标下降法

1.首先给定一个初始点,如 X_0=(x1,x2,…,xn); 
2.for x_i=1:n 
固定除x_i以外的其他维度 
以x_i为自变量,求取使得f取得最小值的x_i; 
end 
3. 循环执行步骤2,直到f的值不再变化或变化很小.

3 牛顿迭代法

牛顿迭代法(Newton’s method)又称为牛顿-拉夫逊方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。 
把f(x)在x0点附近展开成泰勒级数 f(x) = f(x0)+(x-x0)f’(x0)+(x-x0)^2*f”(x0)/2! +… 取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f’(x0)(x-x0)=0 设f’(x0)≠0则其解为x1=x0-f(x0)/f’(x0) 这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f’(x(n))。

4 最小二乘法与梯度下降法区别

最小二乘是构建目标函数中的一种方法; 
梯度下降是求解最优目标函数中的一种方法。

对于变量个数为2-3个的目标函数,可以直接用方程组的方式求解出来,这也就是我们常见的狭义上的最小二乘法。 
对于变量个数多个的目标函数,这时,狭义的最小二乘法就难以胜任,而用梯度下降法求解就容易多了。

1.1 什么是凸集?

简单来说, 凸集是一个点集, 这个点集有一个性质, 就是在这个集合中任取不同的两个点x和y, 他们之间的线段(包括端点)上的点都属于这个点集,那么就说这个点集是一个凸集。

比如下图中左边的图形是凸集,而右边不是,因为我们可以找到两个点,使它们之间的线段上的点不在集合中


凸优化是深度学习 凸优化算法有哪些_凸优化_02

数学上,凸集的定义如下:

凸优化是深度学习 凸优化算法有哪些_点集_03


C,

凸优化是深度学习 凸优化算法有哪些_定义域_04

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_定义域_06

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_08

凸优化是深度学习 凸优化算法有哪些_点集_03


∀x,y∈C,

凸优化是深度学习 凸优化算法有哪些_凸优化_10

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_点集_14


0≤θ≤1,如果有



凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_08

凸优化是深度学习 凸优化算法有哪些_点集_03

θx+(1−θy)∈C

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_23

θx+(1−θy)称为x和y的凸组合。

1.2 什么是凸函数?

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_36

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_37

凸优化是深度学习 凸优化算法有哪些_凸优化_38

凸优化是深度学习 凸优化算法有哪些_凸优化_39

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_37

f:Rn→R,记其定义域为

凸优化是深度学习 凸优化算法有哪些_定义域_41

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_23

D(f),如果

凸优化是深度学习 凸优化算法有哪些_定义域_41

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_23

D(f)是凸集,且在其中任取两个点

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_定义域_06

凸优化是深度学习 凸优化算法有哪些_定义域_07

x,y,满足以下性质:



凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(θx+(1−θy))≤θf(x)+(1−θ)f(y)

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

f为凸函数。

注意:定义域是凸集这个要求不是必须的,其出发点只是为了使x,y的凸组合有定义

关于凸函数,直观上可以用下图来加深理解:


凸优化是深度学习 凸优化算法有哪些_凸优化_81

简单来说,我们在定义域任取两个点x,y, 连接他们得到一条线段,如果这个线段上的点都位于对应函数值上方,我们就说该函数是一个凸函数。

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_点集_83

凸优化是深度学习 凸优化算法有哪些_定义域_07

x≠y且

凸优化是深度学习 凸优化算法有哪些_凸优化_10

凸优化是深度学习 凸优化算法有哪些_凸优化_86

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_86

凸优化是深度学习 凸优化算法有哪些_点集_14

0<θ<1我们称

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

f是严格凸的。如果

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

−f是凸函数,那么

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

f就是凹函数。如果

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

−f是严格凸函数,那么

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

f就是严格凹函数。

1.3 凸函数的等价判别方法

上面我们讲了什么是凸函数,然而这个定义在现实中很难用于判断一个函数是不是凸的,因此介绍几个等价的定义。

1.3.1 一阶近似

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_36

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_37

凸优化是深度学习 凸优化算法有哪些_凸优化_38

凸优化是深度学习 凸优化算法有哪些_凸优化_39

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_37

f:Rn→R是可导函数(也就是说

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(x)的梯度

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_107

凸优化是深度学习 凸优化算法有哪些_凸优化_108

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

∇xf(x)在整个定义域上都存在),则

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

f是凸函数当且仅当 其定义域是凸集,且对于所有的

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_定义域_06

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_08

凸优化是深度学习 凸优化算法有哪些_定义域_41

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_23

x,y∈D(f)有下式成立:



凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_定义域_126

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_107

凸优化是深度学习 凸优化算法有哪些_凸优化_108

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_138

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(y)≥f(x)+∇xf(x)T(y−x)

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_107

凸优化是深度学习 凸优化算法有哪些_凸优化_108

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_138

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(x)+∇xf(x)T(y−x)叫做对f的一阶近似,其物理意义实际上是经过点x的切平面,我们用这个切平面上的点来近似

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(y)。这个公式的含义是:如果f是凸函数,那么它的一阶近似值始终位于函数值的下方。

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_165

1.3.2 二阶近似

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_36

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_37

凸优化是深度学习 凸优化算法有哪些_凸优化_38

凸优化是深度学习 凸优化算法有哪些_凸优化_39

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_37

f:Rn→R二阶可导(即海塞矩阵在定义域上都有定义),则f是凸函数当且仅当 其定义域是凸集且其海塞矩阵半正定,即:



凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_107

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_173

凸优化是深度学习 凸优化算法有哪些_凸优化_108

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_定义域_179

凸优化是深度学习 凸优化算法有哪些_凸优化_10

∇x2f(x)⪰0

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_08

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_37

凸优化是深度学习 凸优化算法有哪些_凸优化_38

x∈Rn,我们记

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_点集_186

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_定义域_189

凸优化是深度学习 凸优化算法有哪些_定义域_06

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_173

凸优化是深度学习 凸优化算法有哪些_定义域_06

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_194

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_194

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_194

凸优化是深度学习 凸优化算法有哪些_定义域_06

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_38

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_186

凸优化是深度学习 凸优化算法有哪些_定义域_202

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_204

凸优化是深度学习 凸优化算法有哪些_点集_205

凸优化是深度学习 凸优化算法有哪些_凸优化_38

凸优化是深度学习 凸优化算法有哪些_凸优化_204

凸优化是深度学习 凸优化算法有哪些_定义域_208

凸优化是深度学习 凸优化算法有哪些_定义域_189

x=(x1,x2,...,xn)={xi}i=1n,即由n个变量组成的向量。那么海塞矩阵(记为H吧)是一个

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_210

凸优化是深度学习 凸优化算法有哪些_点集_211

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_210

n×n的方块矩阵,且



凸优化是深度学习 凸优化算法有哪些_点集_213

凸优化是深度学习 凸优化算法有哪些_凸优化_204

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_215

凸优化是深度学习 凸优化算法有哪些_点集_186

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_217

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_173

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_217

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_204

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_217

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_215

Hij=∂2f(x)∂xi∂xj

凸优化是深度学习 凸优化算法有哪些_点集_213

凸优化是深度学习 凸优化算法有哪些_凸优化_204

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_215

Hij是f(x)分别对

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_204

xi和

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_215

xj进行求导两次得到的。

1.4 凸优化问题

上面已经介绍了凸集和凸函数,是时候到凸优化了吧? 别急,在介绍凸优化概念之前再啰嗦两句。

1.4.1 水平子集(sublevel sets)

凸优化是深度学习 凸优化算法有哪些_凸优化_236

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_08

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_37

α∈R,我们把集合



凸优化是深度学习 凸优化算法有哪些_定义域_202

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_08

凸优化是深度学习 凸优化算法有哪些_定义域_41

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_定义域_246

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_凸优化_236

凸优化是深度学习 凸优化算法有哪些_点集_205

{x∈D(f)|f(x)≤α}

凸优化是深度学习 凸优化算法有哪些_凸优化_236

凸优化是深度学习 凸优化算法有哪些_凸优化_20

α−水平子集。 也就是说

凸优化是深度学习 凸优化算法有哪些_凸优化_236

α水平子集是所有满足

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_凸优化_236

f(x)≤α的点构成的集合。利用凸函数性质,我们可以证明水平子集也是凸集:



凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_07

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_236

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_236

凸优化是深度学习 凸优化算法有哪些_点集_186

凸优化是深度学习 凸优化算法有哪些_凸优化_236

f(θx+(1−θy))≤θf(x)+(1−θ)f(y)≤θα+(1−θ)α=α

水平子集告诉我们,给凸函数添加一个上限,定义域内剩下的点构成的点集还是一个凸集。

1.4.2 仿射函数(affine functions)

数学上,我们把形如



凸优化是深度学习 凸优化算法有哪些_点集_303

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_186

凸优化是深度学习 凸优化算法有哪些_定义域_308

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_311

h(x)=Ax+b

凸优化是深度学习 凸优化算法有哪些_定义域_308

凸优化是深度学习 凸优化算法有哪些_凸优化_38

凸优化是深度学习 凸优化算法有哪些_定义域_314

凸优化是深度学习 凸优化算法有哪些_点集_315

An×m,一个向量

凸优化是深度学习 凸优化算法有哪些_凸优化_311

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_08

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_37

凸优化是深度学习 凸优化算法有哪些_点集_315

b∈Rm。直观上理解,仿射函数将一个n维空间的向量通过线性变换A映射到m维空间,并在其基础上加上向量b,进行了平移。

同理,我们可以证明,点集



凸优化是深度学习 凸优化算法有哪些_定义域_202

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_08

凸优化是深度学习 凸优化算法有哪些_定义域_41

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_303

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_定义域_246

凸优化是深度学习 凸优化算法有哪些_点集_303

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_186

凸优化是深度学习 凸优化算法有哪些_凸优化_10

凸优化是深度学习 凸优化算法有哪些_点集_205

{x∈D(h)|h(x)=0}

是一个凸集,证明略。

1.4.3 凸优化(convex optimization)

那么回到凸优化问题上来, 什么是一个凸优化问题?

一个凸优化问题可以定义为:


凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_335

其中f是一个凸函数,C是一个凸集。根据先前介绍过的水平子集等概念,上面问题又可以等价写为:


凸优化是深度学习 凸优化算法有哪些_凸优化_336

其中,g(x)是凸函数,h(x)是仿射函数。 也就是说,原约束集C被我们表示为一系列凸集的交集(数学上可以证明,凸集的交集还是凸集)。

1.4.4 局部最优(local optima)和全局最优(global optima)

局部最优:周围小范围 内没有比我小的点。

数学定义:

凸优化是深度学习 凸优化算法有哪些_点集_337

凸优化是深度学习 凸优化算法有哪些_点集_338

凸优化是深度学习 凸优化算法有哪些_凸优化_10

R>0,对于所有的z:

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_340

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_340

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_173

凸优化是深度学习 凸优化算法有哪些_凸优化_86

凸优化是深度学习 凸优化算法有哪些_点集_337

∥x−z∥2<R,有

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(x)≤f(z),那么就称x是一个局部最优点。

全局最优:我就是整个定义域中的最小的点。

数学定义:

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(x)≤f(z),则称x是全局最优。

现在回到凸优化问题上, 对于凸优化问题,有一个很重要的结论:

对于凸函数来讲, 局部最优就是全局最优。证明如下:

凸优化是深度学习 凸优化算法有哪些_点集_05

x是一个局部最优,但不是全局最优,于是我们假设全局最优是

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_点集_368

z∗,那么我们有

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_338

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_点集_368

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(x)>f(z∗)

由x的局部最优性质,我们有 :

凸优化是深度学习 凸优化算法有哪些_点集_337

凸优化是深度学习 凸优化算法有哪些_点集_338

凸优化是深度学习 凸优化算法有哪些_凸优化_10

R>0,对于所有的z:

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_340

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_340

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_173

凸优化是深度学习 凸优化算法有哪些_凸优化_86

凸优化是深度学习 凸优化算法有哪些_点集_337

∥x−z∥2<R,有

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(x)≤f(z)

凸优化是深度学习 凸优化算法有哪些_点集_05

x和

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_点集_368

z∗的凸组合:

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_点集_186

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_点集_368

z=θx+(1−θ)z∗,无论

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_点集_368

z∗在哪里,我们总可以找到一个

凸优化是深度学习 凸优化算法有哪些_点集_12

θ,使得

凸优化是深度学习 凸优化算法有哪些_定义域_343

z位于

凸优化是深度学习 凸优化算法有哪些_点集_05

x的邻域内,使得

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(x)≤f(z)

另一方面,由凸函数性质,我们有:



凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_186

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_点集_368

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_点集_368

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_86

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_17

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_14

凸优化是深度学习 凸优化算法有哪些_凸优化_20

凸优化是深度学习 凸优化算法有哪些_点集_12

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_点集_186

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(z)=f(θx+(1−θ)z∗)≤θf(x)+(1−θ)f(z∗)<θf(x)+(1−θ)f(x)=f(x)

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_86

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(z)<f(x),这与

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_点集_05

凸优化是深度学习 凸优化算法有哪些_凸优化_23

凸优化是深度学习 凸优化算法有哪些_凸优化_11

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

凸优化是深度学习 凸优化算法有哪些_凸优化_18

凸优化是深度学习 凸优化算法有哪些_定义域_343

凸优化是深度学习 凸优化算法有哪些_凸优化_23

f(x)≤f(z)矛盾, 于是我们证明了如果

凸优化是深度学习 凸优化算法有哪些_点集_05

x是局部最优,那么同时它也是全局最优。

1.5 常见凸优化问题

  •  线性规划

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

f和

凸优化是深度学习 凸优化算法有哪些_点集_504

凸优化是深度学习 凸优化算法有哪些_凸优化_204

gi都是仿射函数,则凸优化问题变为了线性规划问题:

 


凸优化是深度学习 凸优化算法有哪些_定义域_506

 

  • 二次规划

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

f变为一个凸二次函数,则凸优化问题变为二次规划:

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_508

  • 二次约束二次规划

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_35

f和

凸优化是深度学习 凸优化算法有哪些_点集_504

凸优化是深度学习 凸优化算法有哪些_凸优化_204

gi都是凸二次函数

凸优化是深度学习 凸优化算法有哪些_定义域_512

  • 半定规划


凸优化是深度学习 凸优化算法有哪些_凸优化_513

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_514

凸优化是深度学习 凸优化算法有哪些_凸优化是深度学习_08

凸优化是深度学习 凸优化算法有哪些_点集_516

凸优化是深度学习 凸优化算法有哪些_凸优化_38

X∈Sn是一个n维对称方阵,并且我们将它约束为半正定矩阵。

凸优化是深度学习 凸优化算法有哪些_点集_03

凸优化是深度学习 凸优化算法有哪些_定义域_06

凸优化是深度学习 凸优化算法有哪些_定义域_308

凸优化是深度学习 凸优化算法有哪些_凸优化_204

C,Ai都是对称矩阵。这和前面的问题有点不太相同,前面是优化一个向量,而这里是优化一个矩阵。