最近的看的一些内容好多涉及到凸优化,没时间系统看了,简单的了解一下,凸优化的两个基本元素分别是凸函数与凸包函数
凸集优化
凸集定义以下:spa
也就是说在凸集内任取两点,其连线上的全部点仍在凸集以内。3d
凸函数blog
凸函数的定义以下:get
$\theta x+(1-\theta)y$的意思就是说在区间 $(x,y)$ 之间任取一点 $y – \theta(y-x)$ 即为 $\theta x+(1-\theta)y$ , 凸函数的几何意义表示为函数任意两点的连线上的取值大于该点在函数上的取值,几何示意图形以下:it
凸函数的一阶充要条件:float
一阶充要条件的意思是说 $f$ 可微 ,$f$ 是凸函数当且仅当其切线在某点的取值小于函数自己在该点的取值,一阶充要条件的图形以下:im
凸函数的二阶充要条件:d3
其中要求 $f$ 二阶可微,表示二阶导数在其定义域上需大于 $0$ 才是凸函数。
凸优化
有了以上两个概念,接下来就是凸优化了,凸优化问题一般有以下的形式:
这里 $f$ 为凸函数,$C$ 为凸包,一般还能够写做以下的形式:
这不就是约束规划问题么,这里 $f$ 为凸函数,$g_i(x)$ 为凸函数, $h_i(x)$ 为仿射函数,这么多的约束会把空间约束成以下的形式:
因此只须要在 $x^*$ 的范围里求解便可。对于凸优化问题来讲,只有一个全局极值点,性质很是好,直接对偶啊,拉格朗日啊什么的往上招呼就能够了。
凸优化问题有一些特殊的形式,好比说线性规划,二次规划,二次约束的二次规划,与半正定规划,这些特殊形式使得咱们能够使用更加优化的方式来求解。
线性规划:
接下来是二次规划:
二次约束二次规划:
参考: cs229 note