交叉熵损失函数

交叉熵损失函数是我们在机器学习分类任务中用的最多的损失函数,但是真正了解交叉熵损失需要理解它背后的信息论知识。

信息量

一条信息的信息量和它的不确定性有着直接的关系。如果我们要搞清楚一件非常不确定的事,就需要大量信息。相反,如果我们对这件事情已经有很多了解,那么就不需要很多信息。信息奠基人香农认为“信息是用来消除随机不确定的东西”,信息量就等于不确定性的多少。
举个例子,假如在一场狼人杀游戏中,1号玩家有50%的概率是平民,有50%是狼人,我想知道1号玩家的身份,就需要询问预言家。如果预言家告诉我1号是狼人,那么他把1号身份的不确定性降低了2倍。
如果我们玩的是高端局,那么1号玩家有四种可能的身份,25%平民,25%狼人,25%女巫,25%猎人。这时候预言家告诉我1号玩家是狼人,此时他把1号的身份不确定性降低了4倍。
香农用“比特”(bit)这个概念来度量信息量,第一个例子包含的信息量为1bit,第二个例子为2bit(需要多少bit去传递信息)。我们可以发现:信息量的大小和事件发生的概率成反比。
信息量表示为: h ( x ) = − l o g 2 p ( x ) h(x) = -log_2p(x) h(x)=log2p(x)

信息熵

如果可能性不一样呢?比如通过1号玩家前几轮发言,我可以判断他有75%是狼,25%是平民,这时候预言家会提供给我多少信息量呢?
如果1号是狼,那么提供了 l o g 1 0.75 = 0.41 log \frac{1}{0.75} = 0.41 log0.751=0.41 bit的信息,如果是平民,提供了 l o g 1 0.25 = 2 b i t log \frac{1}{0.25} = 2 bit log0.251=2bit信息。
我们平均从预言家得到 0.75 × 0.41 + 0.25 × 2 = 0.81 b i t 0.75\times0.41 + 0.25 \times2 = 0.81 bit 0.75×0.41+0.25×2=0.81bit的信息,这就是熵(Entropy):
H ( X ) = ∑ p ( x ) log ⁡ 2 p ( x ) H(X) = \sum p(x)\log_2p(x) H(X)=p(x)log2p(x)
熵描述一个随机变量的不确定性的数量,也就是我们从这个概率分布样本中得到的平均信息量。一个随机变量的熵越大,它的不确定性越大,需要更大的信息量用以确定其值。

交叉熵

上面的例子中,我通过1号选手的发言,主观上感觉他75%概率为狼,25%为平民。2号玩家觉得1号40%为狼,60%为平民。但事实上,1号选手要不为狼,要不为平民。所以怎么判断我和2号玩家谁的判断比较准?这里就引入了交叉熵(Cross entropy)。
交叉熵就是来衡量估计模型q与真实概率分布p之间差异情况。
H ( p , q ) = ∑ p ( x ) log ⁡ q ( x ) H(p,q) = \sum p(x)\log q(x) H(p,q)=p(x)logq(x)
我们这里通过上帝视角看到1号为狼。
我: 1 × log ⁡ 1 / 0.75 = 0.41 b i t 1\times\log 1/0.75 = 0.41 bit 1×log1/0.75=0.41bit
2号: 1 × log ⁡ 1 / 0.4 = 1.32 b i t 1\times \log 1/0.4 = 1.32 bit 1×log1/0.4=1.32bit
交叉熵越大,p与q之间差异越大,所以可以看到,我的预测比较准。

相对熵

如果预测非常完美,即预测分布等于真实分布,那么交叉熵就是简单的熵。如果分布不同,那么交叉熵是大于等于熵的。交叉熵大于熵的这部分就是相对熵,又称KL散度(Kullback-Leibler divergence),是衡量相同时间空间里两个概率分布相对差距的测度。
D ( p ∥ q ) = H ( p , q ) − H ( p ) = ∑ p ( x ) × log ⁡ ( 1 / q ( x ) ) − ∑ p ( x ) × log ⁡ ( 1 / p ( x ) ) = ∑ p ( x ) log ⁡ p ( x ) q ( x ) \begin{aligned} D( p\|q) &= H(p,q) - H(p) \\&=\sum p(x) \times \log (1/q(x) ) - \sum p(x) \times \log (1/p(x) ) \\&=\sum p(x)\log \frac{p(x)}{q(x)} \end{aligned} D(pq)=H(p,q)H(p)=p(x)×log(1/q(x))p(x)×log(1/p(x))=p(x)logq(x)p(x)
当两个随机分布完全相同时,即 p=q ,其相对熵为0。当两个随机分布的差别增加时,其相对熵期望值也增大。
上面的例子中, H ( p ) = 0 H(p)=0 H(p)=0 ,所以交叉熵等于相对熵。

参考:
统计自然语言处理 宗成庆
deephub:熵、交叉熵和KL散度的基本概念和交叉熵损失函数的通俗介绍

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值