信息熵、条件熵、联合熵、互信息、相对熵、交叉熵

信息熵、联合熵、条件熵、互信息的关系

1、信息量

信息量是通过概率来定义的:如果一件事情的概率很低,那么它的信息量就很大;反之,如果一件事情的概率很高,它的信息量就很低。简而言之,概率小的事件信息量大,因此信息量可以定义如下:

信息量 = \log \frac{1}{p(x)} .

下面解释为什么要取倒数再去对数。

(1)先取倒数: \frac{1}{p(x)} 这件事表示:“信息量”和“概率”呈反比;

(2)在取对数:\log 取对数是为了将区间 [1,\infty] 映射到 [0, \infty]

再总结一下:\because p(x) \in [0,1], \therefore \frac{1}{p(x)} \in [1, \infty], \therefore \log \frac{1}{p(x)} \in [0, \infty]

2、信息熵

信息熵是信息量的数学期望。理解了信息量,信息熵的定义式便不难理解。定义如下:

H(X) = -\sum_{x \in X} p(x)\log p(x)

  • 熵越小表示越“纯”,决策树算法在进行特征选择时的其中标准之一就是选择使得通过该特征分类以后的类的熵最小;
  • 上面是熵越小越好,而有的时候,我们需要熵越大越好,简单来说就是“鸡蛋不要放在一个篮子里”(见吴军《数学之美》),最大熵原理就是这样,这部分内容可以参考李航《统计机器学习》逻辑回归模型相关部分。

3、条件熵

条件熵的定义为:在 X 给定的条件下,Y 的条件概率分布的熵对 X 的数学期望。

条件熵一定要记住下面的这个定义式,其它的式子都可以由信息熵和条件熵的定义式得出。

H(Y|X)=\sum_{x\in X} p(x)H(Y|X=x)

理解条件熵可以使用决策树进行特征选择的例子:我们期望选择的特征要能将数据的标签尽可能分得比较“纯”一些,特征将数据的标签分得“纯”,则熵就小,信息增益就大。

因为 H(Y|X=x) = -\sum_{y \in Y} P(y|x) \log P(y|x),条件熵可以变形成如下:

\begin{eqnarray} H(Y|X)&=&\sum_{x\in X} p(x)H(Y|X=x)\\ &=&-\sum_{x\in X} p(x)\sum_{y\in Y}p(y|x)\log p(y|x)\\ &=&-\sum_{x\in X} \sum_{y\in Y}p(y,x)\log p(y|x). \end{eqnarray}

说明:有些教材直接把最后一步
H(Y|X)=-\sum_{x\in X} \sum_{y\in Y}p(x,y)\log p(y|x)

定义成条件熵,其实是一个意思,我个人觉得

H(Y|X)=\sum_{x\in X} p(x)H(Y|X=x)

这种定义式更好理解,而这个定义式可以参考李航《统计学习方法》P61 ,并不难记忆,其实条件熵就是“被特征分割以后的信息熵的加权平均”。

4、联合熵

两个变量 XY 的联合熵的表达式:

H(X,Y) = -\sum_{i=1}^{n}p(x_i,y_i) \log p(x_i,y_i)

5、互信息

根据信息熵、条件熵的定义式,可以计算信息熵与条件熵之差:

\begin{eqnarray} H(Y) - H(Y|X)&=&-\sum_{y \in Y}p(y)\log p(y) - \sum_{x\in X} p(x)H(Y|X=x)\\ &=&-\sum_{y \in Y}\left( \sum_{x \in X} p(x,y) \right)\log p(y) + \sum_{x\in X} p(x)\sum_{y\in Y}p(y|x)\log p(y|x)\\ &=&-\sum_{y \in Y}\sum_{x \in X} p(x,y) \log p(y) + \sum_{x\in X} \sum_{y\in Y}p(y,x)\log p(y|x)\\ &=&\sum_{x\in X} \sum_{y\in Y}p(x,y)\log \frac{p(y|x)}{p(y)}\\ &=&\sum_{x\in X} \sum_{y\in Y}p(x,y)\log \frac{p(x,y)}{p(x)p(y)}. \end{eqnarray}

同理

\begin{eqnarray} H(X) - H(X|Y)&=&-\sum_{x \in X}p(x)\log p(x) - \sum_{y\in Y} p(y)H(X|Y=y)\\ &=&-\sum_{x \in X}\left( \sum_{y \in Y} p(x,y) \right)\log p(x) + \sum_{y\in Y} p(y)\sum_{x\in X}p(x|y)\log p(x|y)\\ &=&-\sum_{x \in X}\sum_{y \in Y} p(x,y) \log p(x) + \sum_{y\in Y} \sum_{x\in X}p(x,y)\log p(x|y)\\ &=&\sum_{y\in Y} \sum_{x\in X}p(x,y)\log \frac{p(x|y)}{p(x)}\\ &=&\sum_{y\in Y} \sum_{x\in X}p(x,y)\log \frac{p(x,y)}{p(x)p(y)}. \end{eqnarray}

因此:
H(Y) - H(Y|X) = H(X) - H(X|Y).
定义互信息:
I(X,Y) = H(Y) - H(Y|X) = H(X) - H(X|Y).

即:

H(X|Y) = H(X)-I(X,Y)

H(Y|X)= H(Y)-I(X,Y)

互信息也被称为信息增益。用下面这张图很容易明白他们的关系。

信息熵、联合熵、条件熵、互信息的关系

信息熵:左边的椭圆代表 H(X),右边的椭圆代表 H(Y)
互信息(信息增益):是信息熵的交集,即中间重合的部分就是 I(X,Y)
联合熵:是信息熵的并集,两个椭圆的并就是 H(X,Y)
条件熵:是差集。左边的椭圆去掉重合部分就是 H(X|Y),右边的椭圆去掉重合部分就是 H(Y|X)

还可以看出:
I(X,Y) = H(X|Y) + H(Y|X) - H(X,Y)
H(Y|X) = H(X,Y)-H(X)
H(X|Y) = H(X,Y)-H(Y)
H(X|Y) \le H(X)
H(Y|X) \le H(Y)

5、相对熵

相对熵又称 KL 散度,如果我们对于同一个随机变量 X 有两个单独的概率分布 P(X)Q(X),使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异。差异越大则相对熵越大,差异越小则相对熵越小。

计算公式如下:

D_{KL}(p||q)=\sum_{i=1}^np(x_i)\log(\frac{p(x_i)}{q(x_i)}) \tag{3.1}

如何记忆:如果用 P 来描述样本,那么就非常完美(因为 P 认为是真实的情况)。而用 Q 来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和 P 一样完美的描述。如果我们的 Q 通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,Q 等价于 P。 即 PQ 的分布完全一致的时候,KL 散度的值等于 0

6、交叉熵

H(p,q) = \sum_{i=1}^np(x_i)\log \cfrac{1}{q(x_i)}

我是这样记忆交叉熵的定义的,通过逻辑回归的损失函数记忆交叉熵。p(x_i) 认为是类标,是独热编码(也可以认为是概率分布),而 q(x_i) 认为是逻辑回归预测的概率分布。

  • 交叉熵是对数似然函数的相反数。对数似然的值我们希望它越大越好,交叉熵的值我们希望它越小越好。

相对熵与交叉熵的关系

结论:KL 散度 = 交叉熵 - 熵 。这一点从相对熵的定义式就可以导出。

\begin{eqnarray} D_{KL}(p||q) &=& \sum_{i=1}^np(x_i)\log(p(x_i))-\sum_{i=1}^np(x_i)\log(q(x_i))\\ &=& -H(p(x))+[-\sum_{i=1}^np(x_i)\log(q(x_i))] \end{eqnarray}

这里

-\sum_{i=1}^np(x_i)\log(q(x_i)) = \sum_{i=1}^np(x_i)\log \cfrac{1}{q(x_i)}

就是交叉熵的定义式。

相对熵与交叉熵的关系

参考资料

1、一文搞懂交叉熵在机器学习中的使用,透彻理解交叉熵背后的直觉

地址:https://blog.csdn.net/tsyccnh/article/details/79163834

2、机器学习各种熵:从入门到全面掌握

地址:https://zhuanlan.zhihu.com/p/35423404

3、信息增益(互信息)非负性证明

地址:https://blog.csdn.net/MathThinker/article/details/48375523

4、如何通俗的解释交叉熵与相对熵?

地址: https://www.zhihu.com/question/41252833

5、相对熵(KL散度)

地址: https://blog.csdn.net/ACdreamers/article/details/44657745

6、KL(kullback-Leibler-devergence)散度(相对熵)非负性

地址:https://blog.csdn.net/KID_yuan/article/details/84800434

7、简单的交叉熵,你真的懂了吗?
https://zhuanlan.zhihu.com/p/61944055

(本节完)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容