信息熵,交叉熵与相对熵

邮差的信 提交于 2019-12-27 02:24:28

前言

最近在多处看到熵的概念,之前零散的了解了一下,最近总结下,加深一下理解。

熵是信息论中的一个概念,用于衡量一个随机变量的不确定性,公式很简单:log(1/p(x))log(1/p(x)),其中p(x)p(x)为x的概率分布(离散)或者概率密度(连续)函数,公式很直观,概率越小熵越大,即信息量越大。

信息熵

信息熵为熵的期望,用于衡量一个分布的不确定性,以下为离散变量概率分布下的计算公式:
H(p)=ip(i)log(1/p(i))=ip(i)logp(i) H(p)=\sum_i p(i)log(1/p(i))=-\sum_i p(i)logp(i)
基本可以看出,当一个随机变量分布越散,信息熵越大,而分布越集中,信息熵越小,二元分布和连续分布类似,这里不多做讨论。

交叉熵

假设我们知道某个分布的真实概率分布p(x)p(x)(机器学习中的标签)和一个预测概率分布q(x)q(x)(模型预测概率),交叉熵公式为:
H(p,q)=ip(i)log(1/q(i))=ip(i)logq(i) H(p,q)=\sum_i p(i)log(1/q(i))=-\sum_i p(i)logq(i)
前面讲到信息熵用于衡量一个分布的不确定性,个人理解交叉熵是以预测概率分布来衡量该分布的不确定性,因此交叉熵与信息熵是存在误差的,切预测概率分布与真实分布差距越大,这种误差就越大,因此引入相对熵来衡量这种误差。

相对熵(KL散度)

先上公式:
D(pq)=H(p,q)H(p)=ip(i)logp(i)q(i) D(p||q)=H(p,q)-H(p)=\sum_i p(i)log\frac {p(i)}{q(i)}
顺带提一句,深度学习中经常使用交叉熵作为损失函数,实际上使用的是相对熵,因此只有相对熵才能衡量两个分布的差异,而在深度学习中,使用的训练集标签往往是完全确定的,例如识别车,车的标签是车,概率为1,因此其信息熵为1log1=01*log1=0,此时相对熵等于交叉熵。

参考信息熵,交叉熵和相对熵

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!