凸函数(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。