常见的各种熵

机器学习里面,经常会看到各种熵,特意在此简单总结下。

前言

信息熵是由香农1948年提出的用来定量描述信息量大小的概念。在机器学习中用来表示随机变量分布的混乱程度,分布越混乱,熵越大。

1.自信息

自信息表示某单一事件发生时所包含的信息量多少,大小和事件发生的概率有关,概率越大,自信息越小,计算公式如下:
I ( p i ) = − l o g ( p i ) I(p_i) =-log(p_i) I(pi)=log(pi)
p i p_i pi表示事件发生的概率。

2.信息熵

自信息表示的是单一事件发生时包含的信息量,而信息熵表示的是整个随机分布平均信息量。由香农提出,所以也叫香农熵,计算公式如下:
KaTeX parse error: No such environment: split at position 7: \begin{̲s̲p̲l̲i̲t̲}̲H(x)&=E_{x\sim …
这个公式实际计算的就是随机分布中每个自信息的加权和,表示的是随机分布的混乱程度,信息熵越大,分布越混乱。机器学习里面很多Loss的基于熵提出的。

3.条件熵

条件熵的定义是:在X给定条件下,Y的条件概率分布的熵对X的数学期望。计算公式如下:
KaTeX parse error: No such environment: split at position 7: \begin{̲s̲p̲l̲i̲t̲}̲H(Y|X)&=E_{x\si…
条件熵可以这样理解:Y在条件 X = x X=x X=x下概率分布的熵 H ( Y ∣ X = x ) = ∑ j = 1 m p ( y ∣ x ) l o g   p ( y ∣ x ) H(Y|X=x)=\sum_{j=1}^mp(y|x)log~p(y|x) H(YX=x)=j=1mp(yx)log p(yx)
然后对X求数学期望 E x ∼ p [ H ∣ X = x ] = ∑ i = 1 n p ( x ) H ( Y ∣ X = x ) E_{x\sim p}[H|X=x]=\sum_{i=1}^np(x)H(Y|X=x) Exp[HX=x]=i=1np(x)H(YX=x)
如果对上面的条件熵公式进一步推导,可以得到: H ( X ∣ Y ) = H ( X , Y ) − H ( X ) H(X|Y)=H(X,Y)-H(X) H(XY)=H(X,Y)H(X)
即Y对X的条件熵等于X,Y的联合信息熵减去X的熵。

4.交叉熵

交叉熵的定义是:假如有随机分布p,q,p对q的交叉熵表示q分布的自信息对p分布的期望,计算公式如下:
H ( p , q ) = E x ∼ p [ − l o g   q ( x ) ] = − ∑ i = 1 n p ( x ) l o g   q ( x ) H(p,q)=E_{x\sim p}[-log~q(x)]=-\sum_{i=1}^np(x)log~q(x) H(p,q)=Exp[log q(x)]=i=1np(x)log q(x)
其中,p表示真实分布,q表示预测分布,交叉熵在逻辑回归中有广泛的应用,下面给出二分类Sigmoid的损失函数:
J ( θ ) = − 1 m ∑ i = 1 m ( y i l o g   h θ ( x i ) + ( 1 − y i ) l o g   ( 1 − h θ ( x i ) ) ) J(\theta)=-\frac1m\sum_{i=1}^m(y_ilog~h_\theta(x_i)+(1-y_i)log~(1-h_\theta(x_i))) J(θ)=m1i=1m(yilog hθ(xi)+(1yi)log (1hθ(xi)))
另外,如果观察多分类Softmax逻辑回归的损失函数,会发现,Softmax就是Sigmoid在多分类上的推广

5.相对熵

相对熵又称KL散度,用来表示两个概率分布的差异性,差异性越大,相对熵越大,当两者相等时熵为0,计算公式如下:KaTeX parse error: No such environment: split at position 7: \begin{̲s̲p̲l̲i̲t̲}̲D_{KL}(p||q)&=E…
需要注意的是KL散度是非对称的,即 D K L ( p ∣ ∣ q ) ≠ D K L ( q ∣ ∣ p ) D_{KL}(p||q)\ne D_{KL}(q||p) DKL(pq)̸=DKL(qp)。对比相对熵和交叉熵会发现两者仅差一个 H ( p ) H(p) H(p),所以当p是固定分布, H ( P ) H(P) H(P)为确定值的时候,KL散度和交叉熵并没有什么区别。

6.JS散度

JS散度用来度量两个概率分布的相似度,是KL散度的一个变体,与KL散度的主要区别在于JS散度是对称的,取值为0到1。计算公式如下:
J S ( P 1 ∣ ∣ P 2 ) = 1 2 K L ( P 1 ∣ ∣ P 1 + P 2 2 + 1 2 K L ( P 2 ∣ ∣ P 1 + P 2 2 ) JS(P_1||P_2)=\frac{1}{2}KL(P_1||\frac{P_1+P_2}2+\frac{1}{2}KL(P_2||\frac{P_1+P_2}2) JS(P1P2)=21KL(P12P1+P2+21KL(P22P1+P2)
KL散度和JS散度有一个共同的问题:当两个分布p,q相距很远时,KL散度是没有意义的,而JS散度是一个常数,这时梯度为0,这在机器学习算法中是一个很致命的缺点。

7.互信息

互信息用来度量两个分布之间的距离,定义是:一个随机变量由于已知另一随机变量而减少的不确定性。计算公式如下:
KaTeX parse error: No such environment: split at position 7: \begin{̲s̲p̲l̲i̲t̲}̲I(X,Y)&=\sum_{i…

这里只是列出一些常见的熵,在机器学习中还会经常看到为了满足特殊的要求,经常会提出一些奇奇怪怪的熵。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值