本文从信息熵和最大似然估计来推导交叉熵作为分类损失的依据。
从熵来看交叉熵损失
信息量
信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小。
设XXX是一个离散型随机变量,其取值为集合X=x0,x1,…,xnX = {x_0,x_1,\dots,x_n}X=x0,x1,…,xn ,则其概率分布函数为p(x)=Pr(X=x),x∈Xp(x) = Pr(X = x),x \in Xp(x)=Pr(X=x),x∈X,则定义事件X=x0X = x_0X=x0 的信息量为:
I(x0)=−log(p(x0)) I(x_0) = -\log(p(x_0)) I(x0)=−log(p(x0))
当p(x0)=1p(x_0) = 1p(x0)=1时,该事件必定发生,其信息量为0.
熵
熵用来衡量一个系统的混乱程度,代表系统中信息量的总和;熵值越大,表明这个系统的不确定性就越大。
信息量是衡量某个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性。
熵的计算公式
H(x)=−∑i=1np(xi)log(p(xi)) H(x) = -\sum_{i=1}^np(x_i)\log(p(x_i)) H(x)=−i=1∑np(xi)log(p(xi))
其中,p(xi)p(x_i)p(xi)为事件X=xiX=x_iX=xi的概率,−log(p(xi))-log(p(x_i))−log(p(xi))为事件X=xiX=x_iX=xi的信息量。
可以看出,熵是信息量的期望值,是一个随机变量(一个系统,事件所有可能性)不确定性的度量。熵值越大,随机变量的取值就越难确定,系统也就越不稳定;熵值越小,随机变量的取值也就越容易确定,系统越稳定。
相对熵 Relative entropy
相对熵也称为KL散度(Kullback-Leibler divergence),表示同一个随机变量的两个不同分布间的距离。
设 p(x),q(x)p(x),q(x)p(x),q(x) 分别是 离散随机变量XXX的两个概率分布,则ppp对qqq的相对熵是:
DKL(p∥q)=∑ip(xi)log(p(xi)q(xi)) D_{KL}(p \parallel q) = \sum_i p(x_i) log(\frac{p(x_i)}{q(x_i)}) DKL(p∥q)=i∑p(xi)log(q(xi)p(xi))
相对熵具有以下性质:
- 如果p(x)p(x)p(x)和q(x)q(x)q(x)的分布相同,则其相对熵等于0
- DKL(p∥q)≠DKL(q∥p)D_{KL}(p \parallel q) \neq D_{KL}(q \parallel p)DKL(p∥q)=DKL(q∥p),也就是相对熵不具有对称性。
- DKL(p∥q)≥0D_{KL}(p \parallel q) \geq 0DKL(p∥q)≥0
总的来说,相对熵是用来衡量同一个随机变量的两个不同分布之间的距离。在实际应用中,假如p(x)p(x)p(x)是目标真实的分布,而q(x)q(x)q(x)是预测得来的分布,为了让这两个分布尽可能的相同的,就需要最小化KL散度。
交叉熵 Cross Entropy
设 p(x),q(x)p(x),q(x)p(x),q(x) 分别是 离散随机变量XXX的两个概率分布,其中p(x)p(x)p(x)是目标分布,ppp和qqq的交叉熵可以看做是,使用分布q(x)q(x)q(x) 表示目标分布p(x)p(x)p(x)的困难程度:
H(p,q)=∑ip(xi)log1logq(xi)=−∑ip(xi)logq(xi) H(p,q) = \sum_ip(x_i)log\frac{1}{\log q(x_i)} = -\sum_ip(x_i)\log q(x_i) H(p,q)=i∑p(xi)loglogq(xi)1=−i∑p(xi)logq(xi)
将熵、相对熵以及交叉熵的公式放到一起,
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ H(p) &= -\sum_…
通过上面三个公式就可以得到
DKL(p,q)=H(p,q)−H(p) D_{KL}(p,q) = H(p,q)- H(p) DKL(p,q)=H(p,q)−H(p)
在机器学习中,目标的分布p(x)p(x)p(x) 通常是训练数据的分布是固定,即是H(p)H(p)

本文深入探讨了交叉熵损失的原理,从熵和信息量的概念出发,解释了相对熵(KL散度)和交叉熵的关系。讨论了多分类和二分类任务中的交叉熵损失,并介绍了PyTorch中的实现。通过最大似然估计的角度,阐述了最小化交叉熵损失等价于使预测分布接近真实分布。
最低0.47元/天 解锁文章
1736

被折叠的 条评论
为什么被折叠?



