凸函数(Convex)

ML

定义

[https://en.wikipedia.org/wiki/Convex_function#/media/File:ConvexFunction.svg]

对于所有在 定义域内的 且 ,有:

则函数 是凸函数。

而如果在此基础上,当 时,有: 则函数 是严格的凸(strictly convex)函数。

其很好理解,左侧表示函数(图中黑线)在 区域的值,右侧表示线段的线性插值(图中玫红色值)。凸函数的定义即为:在 区域,函数上的值不会超过线性插值。

[Prof. Leandro L. Minku's slides]

凸函数有一个很有用的性质:凸函数的局部最小值也是全局最小值。
并且如果函数是严格凸的,那么局部最小值是唯一的。

而对于凹函数,只需要将不等号反过来即可。即:

1 阶导

函数 是凸函数,当且仅当对于其定义域 为凸集且所有 满足:

2 阶导

函数 是凸函数,当且仅当 是凸集并且其 (海森矩阵)对于任何 是半正定的(Positive Semidefinite, PSD)

如果(不是iff) 是凸集并且其 对于任何 是正定(Positive Definite, PD)的,则 为严格凸函数。

单变量场景

凸函数凹函数
函数是凸的 函数是凹的
是凸的 是凹的 是凹的 是凸的
是严格凸的 是严格凹的
的局部最小值 是 的局部最大值

多变量场景

函数是凸的 iff 不再适用。

函数是凸的 iff (半正定,PSD)

半正定被定义为:

对称(symmetric)方阵( ) 是半正定的,当且仅当:

需要注意的是,如果一个 全为正数,也可能不是PSD。存在负数也不代表不能为 PSD。