一、凸优化问题
1.1 概念
凸优化问题minf(x):需要同时满足两个条件:变量可行域时凸的(convex);目标函数也是凸函数(convex)。
(1)变量x的可行域Ω为凸集,即对于集合Ω中任意两点x1、x2∈Ω,他们的连线全部都位于在集合Ω内部,即
一个最直观的图形如下:
(2)目标函数f是可行域上的凸函数,即对于即对于集合Ω中任意两点x1、x2∈Ω,有:
一个最直观的图形如下:
1.2 凸优化更简单
之所以要区分凸优化问题和非凸的问题原因在于凸优化问题中局部最优解同时也是全局最优解,这个特性使凸优化问题在一定意义上更易于解决,而一般的非凸最优化问题相比之下更难解决。
凸优化有个非常重要的定理,即任何局部最优解即为全局最优解。由于这个性质,只要设计一个较为简单的局部算法,例如贪婪算法 (Greedy Algorithm) 或梯度下降法 (Gradient Decent),收敛求得的局部最优解即为全局最优。因此求解凸优化问题相对来说是比较高效的。这也是为什么机器学习中凸优化的模型非常多,毕竟机器学习处理大数据,需要高效的算法.
二、非凸优化问题
2.1这两个条件任意一个不满足则该问题即为非凸的最优化问题
2.2 非凸最优化问题更难
非凸优化问题被认为是非常难求解的,因为可行域集合可能存在无数个局部最优点,通常求解全局最优的算法复杂度只是指数级的 (NP难)。如下图:
很容易就陷入局部最优