机器学习中的不同熵

1.信息熵 (Information Entropy)

混乱度为一个宏观的概率分布所对应的概率空间上微观态的数目。

假设$x$服从均匀分布,且已知$p$,则显然这个概率空间所对应的微观态数量是$\frac{1}{p}$(显然,掷筛子的结果符合均匀分布。你掷一次得到任意一个数字的概率是 1/6,则筛子的概率空间对应的微观态数目是6,,即筛子有六个面)。

服从均匀分布的样本$x$可以通过一系列二项分布获得,如:有4个微观态,第一个二项分布选择状态1、2还是状态3、4。第二个二项分布确定具体的状态。则均匀分布$x$的混乱度可以通过描述$x$所需的二项分布的数目衡量,即:

熵是衡量一个系统混乱度的物理量,熵值越大表示系统越混乱,系统宏观态对应的微观态越多,系统所含的信息量越大。如果一个系统的宏观态和微观态一一对应,则表示该系统是完全确定的,不包含信息,混乱度为0。

根据熵的定义,均匀分布的熵即为$-\log p$。

由于宏观分布的熵等于每个微观态熵总和,因此每一个微观态的熵相等,且平均分配宏观分布的熵:

显然,宏观概率分布不一定是均匀分布。不过没关系,我们假设每一个微观态$x$映射到一个均匀分布,则这个微观态的熵为$-p(x)\log p(x)$。为了求这个宏观概率分布的熵,只需要对其所有微观态的熵加权求和即可:

其中$p(x)$(Evidence)表示了数据的属性,$\log p(x)$表示了分布的属性。

对于连续型分布,信息熵为:

2.条件熵 (Conditional entropy)

条件熵$H(Y|X)$ 表示在已知随机变量X的条件下随机变量Y的不确定性。条件熵$H(Y|X)$ 定义为X给定条件下Y的条件概率分布的熵对X的数学期望:

对于连续型分布,条件熵为:

这个条件熵,是指在给定某个数(某个变量为某个值)的情况下,另一个变量的熵是多少,变量的不确定性是多少?

因为条件熵中X也是一个变量,意思是在一个变量X的条件下(变量X的每个值都会取),另一个变量Y熵对X的期望。

3.联合熵(Joint Entropy)

表示某个分布对其所有变量的熵的总和。

所以,联合熵=条件熵+信息熵。因此,联合熵可以理解为,假设描述一个包含两个随机变量$(X,Y)$的系统的信息总量,等于描述$X$所需要的信息量加上在给定具体$X$条件下描述$Y$所需要的额外信息量。

对于连续型分布,联合熵为:

4.交叉熵(Cross Entropy)

现在考虑一个问题:给定两个分布$p(x)$和$q(x)$$,假设用分布$q(x)去描述分布$p(x)$,符合程度有多少?

根据1中的描述,分布$p(x)$和$q(x)$的微观态所映射的均匀分布的熵分别为$-\log p(x)$和$-\log q(x)$。同时,虽然我们用分布$q(x)$去描述分布$p(x)$的数据,但是对于已经存在的数据其Evidence是固定不变的,不受分布的影响,所影响到的只是$p(x)$这个分布的概率空间。因此,这个符合程度定义为:

我们将用分布$q(x)去描述分布$p(x)的符合程度称为这两个分布的交叉熵。

对于连续型分布,交叉熵为:

5.相对熵(Relative entropy)

现在再考虑一个问题:给定两个分布$p(x)$和$q(x)$,假设用分布$q(x)$去描述分布$p(x)$,会产生多少偏差?

显然,这个偏差等于信息熵-交叉熵:

这个偏差称为相对熵,也称为KL散度 (Kullback–Leibler divergence)。

其中符号$D_{KL}(p||q)$即为KL散度,表示用分布$q(x)$去描述分布$p(x)$的数据所产生的偏差。

对于连续型分布,相对熵为:

相对熵具有以下特性:

1、如果$q(x)$和$p(x)$分布完全相同,那么相对熵等于0

2、相对熵具有不对称性:$D_{KL}(p||q) \neq D_{KL}(q||p)$

3、$D_{KL}(p||q) \geq 0$ 证明如下:

Figure 1

6.推广

在机器学习中,我们希望在训练数据上模型学到的分布$P(model)$和真实数据的分布$P(real)$越接近越好,所以我们可以使其相对熵最小。但是我们没有真实数据的分布,所以只能希望模型学到的分布$P(model)$和训练数据的分布$P(train)$尽量相同。假设训练数据是从总体中独立同分布采样的,那么我们可以通过最小化训练数据的经验误差来降低模型的泛化误差。即:

  1. 希望学到的模型的分布和真实分布一致,$P(model)≃P(real)$
  2. 但是真实分布不可知,假设训练数据是从真实数据中独立同分布采样的,$P(train)≃P(real)$
  3. 因此,我们希望学到的模型分布至少和训练数据的分布一致,$P(train)≃P(model)$

根据之前的描述,最小化训练数据上的分布$P(train)$与最小化模型分布$P(model)$的差异等价于最小化相对熵,即 $D_{KL}(P(train)||P(model))$。又因为训练数据的分布 $P(train)$是给定的,所以求$D_{KL}(P(train)||P(model))$等价于求 交叉熵$H(p,q)$。得证,交叉熵可以用来计算学习模型分布与训练分布之间的差异。交叉熵广泛用于逻辑回归的Sigmoid和Softmax函数中作为损失函数使用。

参考文献

1、李航《统计学习方法》

2、吴军《数学之美》

3、通俗理解条件熵

4、为什么交叉熵(cross-entropy)可以用于计算代价?

5、交叉熵

6、详解机器学习中的熵、条件熵、相对熵和交叉熵

文章作者: 地瓜
文章链接: https://www.l-zhe.com/2019/08/11/机器学习中的不同熵/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 人参地里的地瓜
打赏
  • 微信
  • 支付宝

评论