凸优化理论(1)

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

凸函数定义

关于凸函数的定义,个人总结了2种定义:
1、如果函数 f f 的上镜图 e p i f epif 为凸集则,函数 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
则S为凸集。直观的理解就是凸集内的点通过加法和乘法无法逃出这个集合;或者说 x , y x,y 2个点构成的线段上任意一点还在该集合内。

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

2、第二种定义直接数学表达式比较粗暴。首先函数 f : S R f: S\rightarrow R , 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)
则函数 f f 为凸函数。虽然直接给表达式比较简单粗暴,但要想理解它还是比较困难的,简单理解就是取 λ = 1 2 \lambda = \frac{1}{2} , 则函数上 x 1 , x 2 x_1,x_2 的中点函数值不大于 x 1 , x 2 x_1,x_2 之间连线中点的值。也就是说对于凸函数而言函数曲线会位于其任意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)
2、强凸,强凸函数的定义将涉及函数的二阶偏导数,即Hessian矩阵,这也与凸函数的性质息息相关,放在下篇博客给出。下篇博客将给出强凸函数的定义和凸函数的各种良好性质。

发布了9 篇原创文章 · 获赞 4 · 访问量 2808

猜你喜欢

转载自blog.csdn.net/weixin_43198281/article/details/89739889