自信息、熵、相对熵(KL散度)、交叉熵
信息熵(entropy)
我们先引入自信息的概念。随机变量XXX每取一个值,都会相应的带来一定的信息,例如:假设两个事件:x1=x_1=x1=“海南下雪了”,x2=x_2=x2=“哈尔滨下雪了”。显然,x1x_1x1发生时所带来的信息量远大于x2x_2x2发生时带来的信息量。因为海南基本不下雪,而在哈尔滨却很常见,一旦海南下了雪,说明海南的天气比较反常,其信息量也就比较大。通常意义上,随机变量XXX的某一事件发生的概率越小,当其发生时所带来的信息量就越大。那么,如何衡量信息量的大小呢?
我们定义自信息(self-information)为是变量X=xiX = x_iX=xi时的信息量或最短(优)编码长度:
I(X=xi)=log(1p(xi))=−log[p(xi)]I(X=x_i)=\log \left( \frac{1}{p(x_i)} \right) = -\log [p(x_i)]I(X=xi)=log(p(xi)1)=−log[p(xi)]
上式中,p(xi)p(x_i)p(xi)越小,则不确定性越大,包含的信息量就越多,所以信息量可以理解为不确定性的多少。
熵最早是物理学的概念,用于表示一个热力学系统的无序程度。熵在信息论中用来衡量一个随机事p(x)p(x)p(x)的不确定性,指的是随机变量的平均自信息量或者最短平均编码长度(即自信息的数学期望),用公式表示为:
H(p)=E[I(X)]=E[−log(p(xi))]=−∑ip(xi)logp(xi)H(p) = E \left[ I(X) \right] \\
= E \left[ -\log (p(x_i)) \right] \\
= -\sum_i p(x_i) \log p(x_i)H(p)=E[I(X)]=E[−log(p(xi))]=−i∑p(xi)logp(xi)
熵又被称为信息熵、信源熵、平均自信息量。从公式中可以看出,它表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望。随机变量的取值个数越多,状态数就越多,混乱程度就越大,不确定性就越大,信息熵就越大。
交叉熵(cross entropy)
对于某一随机事件,假设其真实概率分布为p(x)p(x)p(x),从样本集中得到的概率分布为q(x)q(x)q(x)。根据上面熵的定义可知,熵可以理解为根据真实分布p(x)p(x)p(x)来衡量识别一个样本所需要的平均编码长度(编码长度的数学期望)。
但在现实生活中,我们很难得到某一随机事件的真实分布,容易得到的是该随机事件的某一样本数据集的分布(分布为q(x)q(x)q(x)),我们根据从样本中得到的分布q(x)q(x)q(x)来衡量识别一个样本所需要的平均编码长度(即使用非真实分布q(x)q(x)q(x)来表示来自真实分布p(x)p(x)p(x)的平均编码长度):
H(p,q)=∑ip(xi)log1q(xi)=−∑ip(xi)logq(xi)H(p,q)=∫p(x)⋅log1q(x)dxH(p,q)= \sum_{i}p(x_i) log \frac{1}{q(x_i) }=-\sum_{i}p(x_i)log{q(x_i)}\\
H(p,q) =\int p(x) \cdot \log \frac{1}{q(x)} dxH(p,q)=i∑p(xi)logq(xi)1=−i∑p(xi)logq(xi)H(p,q)=∫p(x)⋅logq(x)1dx
上式中的H(p,q)H(p,q)H(p,q),我们就称之为“交叉熵”。
相对熵(KL散度)(relative entropy)
相对熵(relative entropy),也称为KL散度(Kullback-Leibler divergence)。设p(x)p(x)p(x)、q(x)q(x)q(x)是从随机变量XXX中取值的两个概率分布,则ppp对qqq的相对熵按照离散和连续的情况可以定义为:
KL(p∥q)=∑ip(xi)⋅logp(xi)q(xi)KL(p∥q)=∫p(x)⋅logp(x)q(x)dxKL( p \lVert q ) = \sum_i p(x_i) \cdot \log \frac{p(x_i)}{q(x_i)} \\
KL \left(p \lVert q \right) =\int p(x) \cdot \log \frac{p(x)}{q(x)} dxKL(p∥q)=i∑p(xi)⋅logq(xi)p(xi)KL(p∥q)=∫p(x)⋅logq(x)p(x)dx
KL散度在信息论中有明确的物理意义,它是用来度量使用基于q(x)q(x)q(x)分布的编码来编码来自p(x)p(x)p(x)分布的样本平均所需的额外的Bit个数,即在相同事件空间里,概率分布p(x)p(x)p(x)的事件空间里,若用概率分布q(x)q(x)q(x)编码时,平均每个基本事件(符号)编码长度增加了多少比特。
而在机器学习领域中,KL散度是两个概率分布p(x)p(x)p(x)和q(x)q(x)q(x)差别的非对称性的度量,即表示两个分布的不同程度,其值越大说明两个分布越不相似。
相对熵(KL散度)具有以下几个性质:
- 如果p(x),q(x)p(x),q(x)p(x),q(x)两个分布相同,那么其相对熵等于零;
- 不对称性:KL(p∥q)≠KL(q∥p)KL( p \lVert q ) \ne KL( q \lVert p )KL(p∥q)̸=KL(q∥p);
- 非负性:KL(p∥q)≥0KL( p \lVert q ) \ge 0KL(p∥q)≥0。有两种方法可证明(以离散形式为例):
(1)已知 lnx≤x−1\ln x \leq x-1lnx≤x−1(该不等式证明较容易,略),则有:
KL(p∥q)=∑ip(xi)⋅logp(xi)q(xi)=−∑ip(xi)⋅logq(xi)p(xi)≥∑ip(xi)⋅q(xi)−p(xi)p(xi)=∑iq(xi)−∑ip(xi)=0KL( p \lVert q ) = \sum_i p(x_i) \cdot \log \frac{p(x_i)}{q(x_i)} = -\sum_i p(x_i) \cdot \log \frac{q(x_i)}{p(x_i)} \\ \ge \sum_i p(x_i) \cdot \frac{q(x_i) - p(x_i)}{p(x_i)} = \sum_i q(x_i) - \sum_i p(x_i) = 0KL(p∥q)=i∑p(xi)⋅logq(xi)p(xi)=−i∑p(xi)⋅logp(xi)q(xi)≥i∑p(xi)⋅p(xi)q(xi)−p(xi)=i∑q(xi)−i∑p(xi)=0
(2)根据Jensen不等式,有:KL(p∥q)=∑i=1npi⋅logp(xi)q(xi)=−Ep(x)[logq(x)p(x)]≥−log(∑x∈Xp(x)⋅q(x)p(x))=−log∑x∈Xq(x)=0KL(p \lVert q) =\sum_{i=1}^n p_i \cdot \log \frac{p(x_i)}{q(x_i)} = -E_{p(x)} \left[ \log \frac{q(x)}{p(x)} \right] \\ \ge -\log \left( \sum_{x \in X} p(x) \cdot \frac{q(x)}{p(x)} \right) = - \log \sum_{x \in X} q(x) = 0KL(p∥q)=i=1∑npi⋅logq(xi)p(xi)=−Ep(x)[logp(x)q(x)]≥−log(x∈X∑p(x)⋅p(x)q(x))=−logx∈X∑q(x)=0
需要注意的是,在实际应用中,若用某已知分布q(x)q(x)q(x)逼近另一未知分布p(x)p(x)p(x),KL散度衡量指标应表示为:KL(q∥p)KL(q \lVert p)KL(q∥p)。
对于上述三个概念的理解
我们再次回顾上述三个概念及其公式:
- 熵:H(X)=−∑ip(xi)logp(xi)H(X) = -\sum_i p(x_i) \log p(x_i)H(X)=−∑ip(xi)logp(xi)
- 交叉熵:H(p,q)=∑ip(xi)log1q(xi)=−∑ip(xi)logq(xi)H(p,q)= \sum_{i}p(x_i) log \frac{1}{q(x_i) }=-\sum_{i}p(x_i)log{q(x_i)}H(p,q)=∑ip(xi)logq(xi)1=−∑ip(xi)logq(xi)
- 相对熵:KL(p∥q)=∑ip(xi)⋅logp(xi)q(xi)KL( p \lVert q ) = \sum_i p(x_i) \cdot \log \frac{p(x_i)}{q(x_i)}KL(p∥q)=∑ip(xi)⋅logq(xi)p(xi)
很显然,我们可以得到如下关系式:
KL(p∥q)=∑ip(xi)⋅logp(xi)q(xi)=∑ip(xi)⋅logp(xi)−∑ip(xi)⋅logq(xi)=−H(p)+H(p,q)KL( p \lVert q ) = \sum_i p(x_i) \cdot \log \frac{p(x_i)}{q(x_i)} = \sum_i p(x_i) \cdot \log p(x_i) - \sum_i p(x_i) \cdot \log q(x_i) = -H(p) + H(p,q)KL(p∥q)=i∑p(xi)⋅logq(xi)p(xi)=i∑p(xi)⋅logp(xi)−i∑p(xi)⋅logq(xi)=−H(p)+H(p,q)
即,H(p,q)=H(p)+KL(p∥q)H(p,q) = H(p) + KL( p \lVert q )H(p,q)=H(p)+KL(p∥q),交叉熵 = 信息熵 + KL散度(相对熵)
对于任意随机事件来说,其根据真实分布p(x)p(x)p(x)来衡量样本的最短编码长度(信息熵)H(p)H(p)H(p)是固定不变的,而根据非真实分布q(x)q(x)q(x)来衡量样本最短编码长度(交叉熵)H(p,q)H(p,q)H(p,q)是随着q(x)q(x)q(x)的不同而不同的,而这两者之间的冗余信息量就是KL散度(相对熵)。
Reference
1.【直观详解】信息熵、交叉熵和相对熵
2. 如何通俗的解释交叉熵与相对熵?
3. 信息熵,相对熵,交叉熵的理解
4. 信息量,熵,交叉熵,相对熵与代价函数
5. 简单的交叉熵损失函数,你真的懂了吗?
- 相对熵(互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度即KL散度)的深入理解
- KL散度 自信息 熵 相对熵 KL divergence entropy
- 特征选择--信息增益(相对熵、KL散度、KL距离)
- 交叉熵、相对熵及KL散度通俗理解
- 熵,互信息,KL距离(相对熵),交叉熵
- 机器学习基础(五十八)—— 香农熵、相对熵(KL散度)与交叉熵
- 机器学习中的优化算法、加速训练机制、损失函数、KL散度和交叉熵
- 信息论知识:互信息、交叉熵、KL散度
- 10.2 香农熵、相对熵(KL散度)与交叉熵
- 相对熵(KL散度)
- 最大似然估计,交叉熵,相对熵(KL散度)
- 相对熵(KL散度)
- 相对熵(KL散度)
- 【原】浅谈KL散度(相对熵)在用户画像中的应用
- [ML]熵、KL散度、信息增益、互信息-学习笔记
- 相对熵(KL散度)计算过程
- 信息熵(香农熵),相对熵(KL散度), 交叉熵 三者的对比以及 吉布斯不等式
- 相对熵(KL散度)
- 信息、信息熵、条件熵、信息增益、信息增益比、基尼系数、相对熵、交叉熵
- 熵、交叉熵、相对熵(KL 散度)意义及其关系