熵相关的一些概念

举报
江桃人 发表于 2022/11/30 19:13:04 2022/11/30
【摘要】 深度学习中,常用的一些有关熵概念的理解。

1. 信息量.

某事件 p ( x ) p(x) 包含的信息量:

I ( p ) = log 1 p ( x ) = log p ( x ) (1) I(p) = \log \frac{1}{p(x)} = -\log p(x) \tag{1}

2. 熵 Entropy.

假设事件 X X 共有 n n 种可能,发生 x i x_i 的概率为 p ( x i ) p(x_i) ,那么事件 X X 的熵定义为:

H ( X ) = E x p ( x ) [ I ( p ( x ) ) ] = i = 1 n p ( x i ) I ( p ( x i ) ) = i = 1 n p ( x i ) log p ( x i ) (2) H(X) = E_{x\sim p(x)} [I(p(x))] = \sum_{i=1}^n p(x_i)I(p(x_i)) = -\sum_{i=1}^n p(x_i) \log p(x_i) \tag{2}

3. 条件熵 Conditional Entropy.

H ( Y X ) = i = 1 n p ( x i ) H ( Y X = x i ) = i = 1 n p ( x i ) j = 1 m p ( y j x i ) log p ( y j x i ) = i , j p ( x i , y j ) log p ( x i , y j ) p ( x i ) (3) H(Y|X) = \sum_{i=1}^{n} p(x_i) H(Y|X=x_i) = -\sum_{i=1}^{n} p(x_i) \sum_{j=1}^{m} p(y_j|x_i) \log p(y_j|x_i) = -\sum_{i, j} p(x_i, y_j) \log \frac{p(x_i, y_j)}{p(x_i)} \tag{3}

4. 联合熵 Joint Entropy.

H ( X , Y ) = i , j p ( x i , y j ) log p ( x i , y j ) (4) H(X, Y) = -\sum_{i, j} p(x_i, y_j) \log p(x_i, y_j) \tag{4}

当两个事件独立的时候:

H ( X , Y ) = i , j p ( x i , y j ) log p ( x i , y j ) = i , j p ( x i , y j ) [ log p ( x i ) + log p ( x i ) ] = H ( X ) + H ( Y ) (5) H(X, Y) = -\sum_{i, j} p(x_i, y_j) \log p(x_i, y_j) = -\sum_{i, j} p(x_i, y_j) [\log p(x_i) + \log p(x_i)] = H(X) + H(Y) \tag{5}

5. 互信息 Mutual Information.

I ( X , Y ) = i , j p ( x i , y j ) log p ( x i ) p ( y j ) p ( x i , y j ) = I ( Y , X ) (6) I(X, Y) = \sum_{i, j} p(x_i,y_j) \log \frac{p(x_i)p(y_j)}{p(x_i, y_j)} = I(Y, X) \tag{6}

6. 相互关系

A. 条件熵+互信息=熵

H ( X ) = H ( Y X ) + I ( X , Y ) (7) H(X) = H(Y|X) + I(X, Y) \tag{7}

B. 熵 + 条件熵 = 联合熵

H ( X Y ) + H ( Y X ) + I ( X , Y ) = H ( Y X ) + H ( X ) = H ( X , Y ) (8) H(X|Y) + H(Y|X) + I(X, Y) = H(Y|X) + H(X) = H(X, Y) \tag{8}

7. 差异度量

信息熵可以衡量已知一个事件后另一个事件中未知的信息量,未知的信息量越少则两个事件重合度越高,从而,信息熵可以拓展到度量两个分布的距离/差异。

A. 交叉熵 Cross Entropy

C E ( X , Y ) = E x P ( x ) [ I ( q ) ] = i = 1 n p ( x ) I ( q ( x ) ) = i = 1 n p ( x ) log q ( x ) (9) CE(X, Y) = \mathbb E_{x\sim P(x)} [I(q)] = \sum_{i=1}^{n} p(x) I(q(x)) = -\sum_{i=1}^{n} p(x) \log q(x) \tag{9}

交叉熵的**“交叉”体现在用真实分布概率 p ( x ) p(x) 加权预测分布的信息量 I ( q ) I(q) **:

B. KL散度 Kullback-Leibler Divergence(相对熵Relative Entropy)

相对熵的关键在于相对,相对体现在真实分布与预测分布的概率之比 p ( x i ) q ( x j ) \frac{p(x_i)}{q(x_j)} ,以真实分布概率加权

D K L ( p q ) = i = 1 n p ( x i ) log p ( x i ) q ( x i ) D_{KL}(p||q) = \sum_{i=1}^{n} p(x_i) \log \frac{p(x_i)}{q(x_i)}

D K L ( p q ) = i = 1 n p ( x i ) log p ( x i ) q ( x i ) = i = 1 n p ( x i ) log q ( x i ) p ( x i ) = i = 1 n p ( x i ) log q ( x i ) ( i = 1 n p ( x i ) log p ( x i ) ) = C E ( P , Q ) H ( P ) (10) D_{KL}(p||q) = \sum_{i=1}^{n} p(x_i) \log \frac{p(x_i)}{q(x_i)} = -\sum_{i=1}^{n} p(x_i) \log \frac{q(x_i)}{p(x_i)} = -\sum_{i=1}^{n} p(x_i) \log q(x_i) - (-\sum_{i=1}^{n} p(x_i) \log p(x_i)) = CE(P, Q) - H(P) \tag{10}

也即:KL散度 = 交叉熵 - 熵

在实际应用场景中,真实分布是确定的,故 H§ 是常数,所以 KL 散度与交叉熵仅相差一个常数,从而,在分类任务中,评估预测分布与真实分布的差异可以用交叉熵损失度量。这就是有监督多分类任务一般用交叉熵损失而不用 KL 散度作为目标函数优化的原因。

log p ( x i ) q ( x i ) \log \frac{p(x_i)}{q(x_i)} 可知,当预测分布q与真实分布p完全一致时, KL散度为0,预测越逼近真实分布则 KL 散度越小。

又由加权系数 p ( x i ) p(x_i) 可知,KL散度着重在真实分布中概率大的地方让预测逼近,极端情况下 p ( x i ) = 0 p(x_i)=0 处预测分布与真实分布的差异大小不予考虑。如上图例,着重让预测q在两峰逼近p,而忽略谷点。

a. 两个高斯分布的KL散度

D K L ( N ( x ; μ x , Σ x ) N ( y ; μ y , Σ y ) ) = 1 2 [ log Σ y Σ x d + t r ( Σ y 1 Σ x ) + ( μ y μ x ) T Σ y 1 ( μ y μ x ) ] (11) D_{KL}(N(x;\mu_x, \Sigma_x) || N(y;\mu_y, \Sigma_y)) = \frac{1}{2}\left[\log \frac{|\Sigma_y|}{|\Sigma_x|} - d + tr(\Sigma_y^{-1} \Sigma_x) + (\mu_y - \mu_x)^T \Sigma_y^{-1} (\mu_y - \mu_x) \right] \tag{11}

C. KL散度和互信息的关系

D K L ( p q ) = i = 1 n p ( x i ) log p ( x i ) q ( x i ) (12) D_{KL}(p||q) = \sum_{i=1}^{n} p(x_i) \log \frac{p(x_i)}{q(x_i)} \tag{12}

I ( X , Y ) = i , j p ( x i , y j ) log p ( x i ) p ( y j ) p ( x i , y j ) = I ( Y , X ) (13) I(X, Y) = \sum_{i, j} p(x_i,y_j) \log \frac{p(x_i)p(y_j)}{p(x_i, y_j)} = I(Y, X) \tag{13}

p = p ( x , y ) p = p(x,y) q = p ( x ) p ( y ) q = p(x)p(y) 时,两个一样。

D. JS散度 Jensen-Shannon Divergence

D J S ( p q ) = 1 2 D K L ( p p + q 2 ) + 1 2 D K L ( q p + q 2 ) (14) D_{JS}(p||q) = \frac{1}{2} D_{KL}(p|| \frac{p+q}{2}) + \frac{1}{2} D_{KL}(q|| \frac{p+q}{2}) \tag{14}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。