什么是凸函数及如何判断一个函数是否是凸函数
t元j
一、什么是凸函数
对于一元函数\(f(x\)),如果对于任意\(t\epsilon[0,1]\)均满足:\(f(tx_1 + (1-t)x_2) \leq tf(x_1) + (1-t)f(x_2)\),则称\(f(x)\)为凸函数(convex function)
如果对于任意\(t\epsilon(0,1)\)均满足:\(f(tx_1 + (1-t)x_2) < tf(x_1) + (1-t)f(x_2)\),则称\(f(x)\)为严格凸函数(convex function)
我们可以从几何上直观地理解凸函数的特点,凸函数的割线在函数曲线的上方,如图1所示:从$f(x_1)$连一条线到右侧的虚线,利用三角形边的比例性质可以推出中间虚线与上面直线交点的值
上面的公式,完全可以推广到多元函数。在数据科学的模型求解中,如果优化的目标函数是凸函数,则局部极小值就是全局最小值。这也意味着我们求得的模型是全局最优的,不会陷入到局部最优值。例如支持向量机的目标函数\(||w||^2/2\)就是一个凸函数。(过\(f(x_1)\)做平行线,根据相似三角形性质可以证明)
二、如何来判断一个函数是否是凸函数呢?
对于一元函数\(f(x)\),我们可以通过其二阶导数\(f''(x)\) 的符号来判断。如果函数的二阶导数总是非负,即\(f''(x) \geq 0\) ,则\(f(x)\)是凸函数
对于多元函数\(f(X)\),我们可以通过其Hessian矩阵(Hessian矩阵是由多元函数的二阶导数组成的方阵)的正定性来判断。如果Hessian矩阵是半正定矩阵,则是\(f(X)\)凸函数
三、Jensen不等式
对于凸函数,我们可以推广出一个重要的不等式,即Jensen不等式。如果 f 是凸函数,X是随机变量,那么\(f(E(X)) \leq E(f(X))\),上式就是Jensen不等式的一般形式
我们还可以看它的另一种描述。假设有 n 个样本\(\{x_1,x_2,...,x_n\}\)和对应的权重\(\{\alpha_1,\alpha_2,...,\alpha_n\}\),权重满足\(a_i \geqslant 0,\sum\alpha_i = 1\),对于凸函数 f,以下不等式成立:
\(f(\sum_{i=1}^{n}\alpha_ix_i) \leq \sum_{i=1}^{n}\alpha_if(x_i)\)