凸优化理论(1)

最近被迫学习了凸优化理论,感觉还是有点东西的,个人感觉机器学习的内核就是优化,如果该优化问题还能转成或者近似成凸优化那将是一个巨大的突破,因为凸函数的性质非常优秀,(拟)凸优化的理论研究也已经比较成熟。不过遗憾的是,我们的非凸优化问题理论尚不完,而在现在这个深度学习开始野蛮生成的时间点,显然非凸问题更加常见。不过非凸近似或者转换为凸问题也不失为一个不错的策略,所以凸优化理论的重要性不言而喻,特此对最近的学习作一记录,由于刚刚入门,如有错误,还请批评指正。

凸函数定义

关于凸函数的定义,个人总结了2种定义:
1、如果函数 f f f的上镜图 e p i f epif epif为凸集则,函数 f f f为凸函数。(来自于convex analysis)
这里又引申出2个问题,什么是函数上镜图;凸集是什么?
首先,凸集的定义,对于集合S,如果满足:
∀ x , y ∈ S , λ ∈ [ 0 , 1 ] , λ x + ( 1 − λ ) y ∈ S \forall x,y\in S, \lambda \in [0,1],\lambda x+(1-\lambda)y\in S x,yS,λ[0,1],λx+(1λ)yS
则S为凸集。直观的理解就是凸集内的点通过加法和乘法无法逃出这个集合;或者说 x , y x,y x,y 2个点构成的线段上任意一点还在该集合内。

然后关于什么是上镜图这个问题我也还没有搞清楚,留作标记。百度上说是值大于函数值的点构成的区域为该函数的上镜图,但关于convex analysis这本书上的定义还是有点搞不懂。

2、第二种定义直接数学表达式比较粗暴。首先函数 f : S → R f: S\rightarrow R f:SR, S S S 为凸集, 如果有:
∀ x 1 , x 2 ∈ S , ∀ λ ∈ [ 0 , 1 ] , f ( λ x 1 + ( 1 − λ ) x 2 ) ⩽ λ f ( x 1 ) + ( 1 − λ ) f ( x 2 ) \forall x_1,x_2\in S,\forall \lambda \in [0,1], f(\lambda x_1 + (1-\lambda)x_2)\leqslant \lambda f(x_1)+(1-\lambda)f(x_2) x1,x2S,λ[0,1],f(λx1+(1λ)x2)λf(x1)+(1λ)f(x2)
则函数 f f f 为凸函数。虽然直接给表达式比较简单粗暴,但要想理解它还是比较困难的,简单理解就是取 λ = 1 2 \lambda = \frac{1}{2} λ=21, 则函数上 x 1 , x 2 x_1,x_2 x1,x2的中点函数值不大于 x 1 , x 2 x_1,x_2 x1,x2之间连线中点的值。也就是说对于凸函数而言函数曲线会位于其任意2点之间连的直线。

严格凸和强凸

1、严格凸,凸函数不等式去个等于号就是严格凸了,也就是去掉了函数曲线在2点之间是直线的情况。
∀ x 1 , x 2 ∈ S , ∀ λ ∈ [ 0 , 1 ] , f ( λ x 1 + ( 1 − λ ) x 2 ) < λ f ( x 1 ) + ( 1 − λ ) f ( x 2 ) \forall x_1,x_2\in S,\forall \lambda \in [0,1], f(\lambda x_1 + (1-\lambda)x_2)< \lambda f(x_1)+(1-\lambda)f(x_2) x1,x2S,λ[0,1],f(λx1+(1λ)x2)<λf(x1)+(1λ)f(x2)
2、强凸,强凸函数的定义将涉及函数的二阶偏导数,即Hessian矩阵,这也与凸函数的性质息息相关,放在下篇博客给出。下篇博客将给出强凸函数的定义和凸函数的各种良好性质。

你可能感兴趣的:(凸优化)