最大似然估计、交叉熵、KL散度的联系与区别

深度学习中交叉熵和KL散度和最大似然估计之间的关系

机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的。

熵和交叉熵

提到交叉熵就需要了解下信息论中熵的定义。信息论认为:

确定的事件没有信息,随机事件包含最多的信息。

事件信息的定义为: I ( x ) = − l o g ( P ( x ) ) I(x)=−log(P(x)) I(x)=log(P(x));而熵就是描述信息量: H ( x ) = E x ∼ P [ I ( x ) ] H(x)=E_{x∼P}[I(x)] H(x)=ExP[I(x)],也就是 H ( x ) = E x ∼ P [ − l o g ( P ( x ) ) ] = − Σ x P ( x ) l o g ( P ( x ) ) H(x)=E_{x∼P}[−log(P(x))]=−Σ_xP(x)log(P(x)) H(x)=ExP[log(P(x))]=ΣxP(x)log(P(x))。如果log的base是2,熵可以认为是衡量编码对应的信息需要的最少bits数;那么交叉熵就是来衡量用特定的编码方案Q来对分布为P的信息x进行编码时需要的最少的bits数。定义如下:
H ( P , Q ) = − Σ x P ( x ) l o g ( Q ( x ) ) H(P,Q)=−Σ_xP(x)log(Q(x)) H(P,Q)=ΣxP(x)log(Q(x))
在深度学习中,P是label的真实分布;Q就是网络学习后输出的分布。

最大似然估计

机器学习中,通过最大似然估计方法使参数为 Θ ^ \hatΘ Θ^的模型使预测值贴近真实数据的概率最大化,即 Θ ^ = a r g m a x θ ∏ i = 1 N p ( x i ∣ Θ ) \hatΘ=argmax_θ\prod_{i=1}^Np(x_i|Θ) Θ^=argmaxθi=1Np(xiΘ)。实际操作中,连乘很容易出现最大值或最小值溢出,造成计算不稳定,由于log函数的单调性,所以将上式进行取对数取负,最小化负对数似然(NLL)的结果与原始式子是一样的,即 Θ ^ = a r g m i n θ − ∑ i = 1 N p ( x i ∣ Θ ) \hatΘ=argmin_θ-\sum_{i=1}^Np(x_i|Θ) Θ^=argminθi=1Np(xiΘ)

对模型的预测值进行最大似然估计,
Θ ^ = a r g m i n θ − ∑ i = 1 N p ( x i ∣ Θ ) = a r g m i n Θ − Σ x ∈ X p ( x ) l o g ( q ( x ∣ Θ ) ) = a r g m i n Θ H ( p , q ) \hatΘ=argmin_θ-\sum_{i=1}^Np(x_i|Θ)\\ =argmin_Θ−Σ_{x∈X}p(x)log(q(x|Θ))\\ =arg min_ΘH(p,q) Θ^=argminθi=1Np(xiΘ)=argminΘΣxXp(x)log(q(xΘ))=argminΘH(p,q)

所以最小化NLL和最小化交叉熵最后达到的效果是一样的。

KL散度

在深度学习中,KL散度用来评估模型输出的预测值分布与真值分布之间的差异,定义如下:
在这里插入图片描述

也就是交叉熵就是真值分布的熵与KL散度的和,而真值的熵是确定的,与模型的参数Θ无关,所以梯度下降求导时 ∇ H ( P , Q ) = ∇ D K L ( P ∣ ∣ Q ) ∇H(P,Q)=∇D_{KL}(P||Q) H(P,Q)=DKL(PQ),也就是说最小化交叉熵与最小化KL散度是一样的。

总结

从优化模型参数角度来说,最小化交叉熵,NLL,KL散度这3种方式对模型参数的更新来说是一样的。从这点来看也解释了为什么在深度学习中交叉熵是非常常用的损失函数的原因了。

参考

https://www.cnblogs.com/arkenstone/p/10524720.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值