一文搞懂交叉熵损失

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

本文从信息熵和最大似然估计来推导交叉熵作为分类损失的依据。

从熵来看交叉熵损失

信息量

信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小。

X X X是一个离散型随机变量,其取值为集合 X = x 0 , x 1 , … , x n X = {x_0,x_1,\dots,x_n} X=x0,x1,,xn ,则其概率分布函数为 p ( x ) = P r ( X = x ) , x ∈ X p(x) = Pr(X = x),x \in X p(x)=Pr(X=x),xX,则定义事件 X = x 0 X = x_0 X=x0 的信息量为:
I ( x 0 ) = − log ⁡ ( p ( x 0 ) ) I(x_0) = -\log(p(x_0)) I(x0)=log(p(x0))
p ( x 0 ) = 1 p(x_0) = 1 p(x0)=1时,该事件必定发生,其信息量为0.

熵用来衡量一个系统的混乱程度,代表系统中信息量的总和;熵值越大,表明这个系统的不确定性就越大。

信息量是衡量某个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性。

熵的计算公式
H ( x ) = − ∑ i = 1 n p ( x i ) log ⁡ ( p ( x i ) ) H(x) = -\sum_{i=1}^np(x_i)\log(p(x_i)) H(x)=i=1np(xi)log(p(xi))
其中, p ( x i ) p(x_i) p(xi)为事件 X = x i X=x_i X=xi的概率, − l o g ( p ( x i ) ) -log(p(x_i)) log(p(xi))为事件 X = x i X=x_i X=xi的信息量。

可以看出,熵是信息量的期望值,是一个随机变量(一个系统,事件所有可能性)不确定性的度量。熵值越大,随机变量的取值就越难确定,系统也就越不稳定;熵值越小,随机变量的取值也就越容易确定,系统越稳定。

相对熵 Relative entropy

相对熵也称为KL散度(Kullback-Leibler divergence),表示同一个随机变量的两个不同分布间的距离。

p ( x ) , q ( x ) p(x),q(x) p(x),q(x) 分别是 离散随机变量 X X X的两个概率分布,则 p p p q q q的相对熵是:
D K L ( p ∥ q ) = ∑ i p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p \parallel q) = \sum_i p(x_i) log(\frac{p(x_i)}{q(x_i)}) DKL(pq)=ip(xi)log(q(xi)p(xi))

相对熵具有以下性质:

  • 如果 p ( x ) p(x) p(x) q ( x ) q(x) q(x)的分布相同,则其相对熵等于0
  • D K L ( p ∥ q ) ≠ D K L ( q ∥ p ) D_{KL}(p \parallel q) \neq D_{KL}(q \parallel p) DKL(pq)=DKL(qp),也就是相对熵不具有对称性。
  • D K L ( p ∥ q ) ≥ 0 D_{KL}(p \parallel q) \geq 0 DKL(pq)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) 分别是 离散随机变量 X X X的两个概率分布,其中 p ( x ) p(x) p(x)是目标分布, p p p q q q的交叉熵可以看做是,使用分布 q ( x ) q(x) q(x) 表示目标分布 p ( x ) p(x) p(x)的困难程度:
H ( p , q ) = ∑ i p ( x i ) l o g 1 log ⁡ q ( x i ) = − ∑ i p ( x i ) log ⁡ q ( x i ) 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)=ip(xi)loglogq(xi)1=ip(xi)logq(xi)
将熵、相对熵以及交叉熵的公式放到一起,
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ H(p) &= -\sum_…
通过上面三个公式就可以得到
D K L ( 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) H(p) 是一个常量。这样两个分布的交叉熵 H ( p , q ) H(p,q) H(p,q) 也就等价于最小化这两个分布的相对熵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值