凸函数和凹函数判定,Jensen 不等式的理解和记忆

最近看到 EM 算法,其中的证明有用到琴生不等式,在这里做一个笔记。

在刚开始学习凸函数和凹函数的时候,我们会被凸函数和凹函数的命名所困扰,命名看起来是凹的,一些教材上却偏偏说它是凸函数。其实这个只是一个定义,它叫什么,并不影响函数本身的性质。就像我在 B 站上看到有些人戏称三国时期的武将赵云为“云妹”,你叫他“云姐”、“云妈”都不会改变赵云纯爷们的形象,你管于正叫“于妈”,他本质上还是个男的,你管范冰冰叫“范爷”,她也是个女的,也得嫁人是一个道理。因此大可不必为凸函数、凹函数的命名所纠结,应该结合凸函数、凹函数的性质来记忆。

例1:函数
y=logx y = \log x

的图像如下:

凸函数和凹函数判定,Jensen 不等式的理解和记忆

我们暂时先别纠结它叫什么。我们看这个函数有什么性质,和 Jensen 不等式又有什么关系。

从函数图像上,我们可以看出,这个函数是逐渐上升的,这个函数的一阶导数 y=1x>0y\prime = \frac{1}{x} > 0也说明了 y=logxy = \log x 是增函数。

我们知道,导函数的增减性说明了函数的凹凸性,如果我们知道函数的凹凸性,就能够确定局部极值就是全局最优值。

而导函数的增减性,就是二阶导数。我们可以画出各个点的切线,看看切线的斜率变化,就知道二阶导数的增减性了。很容易知道,切线的斜率是越来越小的,因此,导函数的导函数是减函数,从函数的表达式上也很容易验证。

y=1x2>0y\prime\prime = -\cfrac{1}{x^2} > 0

那么 Jensen 不等式又说了什么呢?对于 Jensen 不等式的两点形式来说,就是图中任意两点的之间的部分都在这两点的割线的上方,即:
f(ta+(1t)b)tf(a)+(1t)f(b) f(ta+(1-t)b) \ge tf(a) + (1-t)f(b)

因为概率分布的一个重要性质就是各个取值都介于 0 和 1 之间,并且它们的和为 1,因此琴生不等式用概率论期望的语言解释就是:
f(E(X))E(f(x)) f(E(X)) \ge E(f(x))

应用于多个点,就是:

f(inλixi)inλif(xi) f(\sum_i^n \lambda_i x_i) \ge \sum_i^n \lambda_if(x_i)
其中 λi0\lambda_i \ge0inλi=1\sum_i^n \lambda_i = 1

f(x)=logxf(x) = \log x 应用到上面的式子,就是

log(inλixi)inλilog(xi) \log(\sum_i^n \lambda_i x_i) \ge \sum_i^n \lambda_i\log(x_i)
其中 λi0\lambda_i \ge0inλi=1\sum_i^n \lambda_i = 1
这就是《统计学习方法》P159 脚注 1 的内容。我们看到这本书为了简化说明,没有给出凸函数和凹函数的描述,直接给出所需要的琴生不等式的部分。

如何记忆琴生不等式

针对于两点形式(多点形式可以依次推广),琴生不等式有两个方面,

1、凸函数任意两点的割线位于函数图形的上方 ;
2、凹函数任意两点的割线位于函数图像的下方。

我的记忆方法就是在稿纸上画图像。

凸函数和凹函数判定,Jensen 不等式的理解和记忆

注意:不要纠结那两条黑的曲线叫什么。

任意两点的割线位于函数图像的上方

这样的曲线满足的性质是:
1、切线的斜率逐渐增大;
2、函数的导函数是增函数;
3、函数的导函数的导函数大于0 ;
4、函数的二阶导数大于 0。

因此,如果函数 f(x)f(x) 满足 f(x)>0f''(x) > 0,就有

inλif(xi)f(inλixi) \sum_i^n \lambda_i f(x_i) \ge f(\sum_i^n \lambda_ix_i)
其中 λi0\lambda_i \ge0inλi=1\sum_i^n \lambda_i = 1

任意两点的割线位于函数图像的下方

这样的曲线满足的性质是:
1、切线的斜率逐渐减小;
2、函数的导函数是减函数;
3、函数的导函数的导函数小于0 ;
4、函数的二阶导数小于 0。

因此,如果函数 f(x)f(x) 满足 f(x)<0f''(x) < 0,就有

f(inλixi)inλif(xi) f(\sum_i^n \lambda_ix_i) \ge \sum_i^n \lambda_i f(x_i)
其中 λi0\lambda_i \ge0inλi=1\sum_i^n \lambda_i = 1