学习笔记8:常用损失函数之交叉熵(Cross Entropy)

1.信息量

假设X是一个离散型随机变量,其取值集合为X,概率分布函数为p(x)=Pr(X=x),xX,我们定义事件X=x0的信息量为:I(x0)=log(p(x0)) 可以理解为,一个事件发生的概率越大,则它所携带的信息量就越小,而当p(x0)=1时,熵将等于0,也就是说该事件的发生不会导致任何信息量的增加。

2.熵的概念

对于一个随机变量X而言,它的所有可能取值的信息量的期望E[I(x)]就称为熵。
X的熵的定义为:

H(X)=Eplog1p(x)=xXp(x)logp(x)

如果p(x)是连续型随机变量的pdf,则熵定义为:

H(X)=xXp(x)logp(x)dx

为了保证有效性,这里约定当p(x)→0时,有p(x)0,p(x)logp(x)0

当X为0-1分布时,熵与概率p的关系如下图:
学习笔记8:常用损失函数之交叉熵(Cross Entropy)

可以看出,当两种取值的可能性相等时,不确定度最大(此时没有任何先验知识),这个结论可以推广到多种取值的情况。在图中也可以看出,当p=0或1时,熵为0,即此时X完全确定。
熵的单位随着公式中log运算的底数而变化,当底数为2时,单位为“比特”(bit),底数为e时,单位为“奈特”。

3.相对熵

相对熵(relative entropy)又称为KL散度(Kullback-Leibler divergence),KL距离,是两个随机分布间距离的度量。记为DKL(p||q)。它度量当真实分布为p时,假设分布q的无效性。

DKL(p||q)=Ep[logp(x)q(x)]=xXp(x)logp(x)q(x)

=xX[p(x)logp(x)p(x)logq(x)]

=xXp(x)logp(x)xXp(x)logq(x)

=H(p)xXp(x)logq(x)

=H(p)+Ep[logq(x)]

=Hp(q)H(p)

显然,当p=q时,两者之间的相对熵DKL(p||q)=0

4.交叉熵

交叉熵容易跟相对熵搞混,二者联系紧密,但又有所区别。假设有两个分布p,q,则它们在给定样本集上的交叉熵定义如下:

CEH(p,q)=Ep[logq]=xXp(x)logq(x)=H(p)+DKL(p||q)

举例来讲,对于一个二分类问题,我们可以将真实概率表达为 p∈{y,1−y},并且将预测概率表达为 q{y^,1y^} 。这样的话,我们可以通过交叉熵来测量 p 和 q 之间的相似度:

H(p,q)=ipilogqi=ylogy^(1y)log(1y^)

参考:https://blog.****.net/rtygbwwwerr/article/details/50778098
https://www.zhihu.com/question/41252833