交叉熵

http://www.cnblogs.com/ljy2013/p/6432269.html

作者:Noriko Oshima
链接:https://www.zhihu.com/question/41252833/answer/108777563
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

熵的本质是香农信息量()的期望。

现有关于样本集的2个概率分布p和q,其中p为真实分布,q非真实分布。按照真实分布p来衡量识别一个样本的所需要的编码长度的期望(即平均编码长度)为:H(p)=。如果使用错误分布q来表示来自真实分布p的平均编码长度,则应该是:H(p,q)=。因为用q来编码的样本来自分布p,所以期望H(p,q)中概率是p(i)。H(p,q)我们称之为“交叉熵”。

比如含有4个字母(A,B,C,D)的数据集中,真实分布p=(1/2, 1/2, 0, 0),即A和B出现的概率均为1/2,C和D出现的概率都为0。计算H(p)为1,即只需要1位编码即可识别A和B。如果使用分布Q=(1/4, 1/4, 1/4, 1/4)来编码则得到H(p,q)=2,即需要2位编码来识别A和B(当然还有C和D,尽管C和D并不会出现,因为真实分布p中C和D出现的概率为0,这里就钦定概率为0的事件不会发生啦)。

可以看到上例中根据非真实分布q得到的平均编码长度H(p,q)大于根据真实分布p得到的平均编码长度H(p)。事实上,根据Gibbs‘ inequality可知,H(p,q)>=H(p)恒成立,当q为真实分布p时取等号。我们将由q得到的平均编码长度比由p得到的平均编码长度多出的bit数称为“相对熵”:D(p||q)=H(p,q)-H(p)=,其又被称为KL散度(Kullback–Leibler divergence,KLD) Kullback–Leibler divergence。它表示2个函数或概率分布的差异性:差异越大则相对熵越大,差异越小则相对熵越小,特别地,若2者相同则熵为0。注意,KL散度的非对称性。

比如TD-IDF算法就可以理解为相对熵的应用:词频在整个语料库的分布与词频在具体文档中分布之间的差异性。

交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量p与q的相似性。交叉熵作为损失函数还有一个好处是使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。

PS:通常“相对熵”也可称为“交叉熵”,因为真实分布p是固定的,D(p||q)由H(p,q)决定。当然也有特殊情况,彼时2者须区别对待。

时间: 2024-10-04 07:09:01

交叉熵的相关文章

Kaldi的交叉熵正则化

xent_regularize, Cross Entropy Regularize nnet3/nnet-discriminative-trainning.cc:109 void NnetDiscriminativeTrainer::ProcessOutputs() 交叉熵正则化,即帧平滑 <解读深度学习:语音识别实践>8.2.3 帧平滑 当正确地进行词图补偿后,进行几次序列鉴别性训练的迭代后,就会很快出现过拟合.即,几次鉴别性训练迭代后,模型计算出的帧准确率(帧的后验概率)显著变差(比原模型

信息量,熵,交叉熵,相对熵与代价函数

本文将介绍信息量,熵,交叉熵,相对熵的定义,以及它们与机器学习算法中代价函数的定义的联系.转载请保留原文链接:http://www.cnblogs.com/llhthinker/p/7287029.html 1. 信息量 信息的量化计算: 解释如下: 信息量的大小应该可以衡量事件发生的“惊讶程度”或不确定性: 如果有?告诉我们?个相当不可能的事件发?了,我们收到的信息要多于我们被告知某个很可能发?的事件发?时收到的信息.如果我们知道某件事情?定会发?,那么我们就不会接收到信息. 也就是说,信息量

BP神经网络——交叉熵作代价函数

Sigmoid函数 当神经元的输出接近 1时,曲线变得相当平,即σ′(z)的值会很小,进而也就使?C/?w和?C/?b会非常小.造成学习缓慢,下面有一个二次代价函数的cost变化图,epoch从15到50变化很小. 引入交叉熵代价函数 针对上述问题,希望对输出层选择一个不包含sigmoid的权值更新,使得 由链式法则,得到 由σ′(z) = σ(z)(1? σ(z))以及σ(z)=a,可以将上式转换成 对方程进行关于a的积分,可得 对样本进行平均之后就是下面的交叉熵代价函数 对比之前的输出层de

交叉熵代价函数(作用及公式推导)

转自:http://blog.csdn.net/u014313009/article/details/51043064,感谢分享! 交叉熵代价函数(Cross-entropy cost function)是用来衡量人工神经网络(ANN)的预测值与实际值的一种方式.与二次代价函数相比,它能更有效地促进ANN的训练.在介绍交叉熵代价函数之前,本文先简要介绍二次代价函数,以及其存在的不足. 1. 二次代价函数的不足 ANN的设计目的之一是为了使机器可以像人一样学习知识.人在学习分析新事物时,当发现自己

如何通俗的解释交叉熵与相对熵

[From] https://www.zhihu.com/question/41252833/answer/108777563 熵的本质是香农信息量()的期望. 现有关于样本集的2个概率分布p和q,其中p为真实分布,q非真实分布.按照真实分布p来衡量识别一个样本的所需要的编码长度的期望(即平均编码长度)为:H(p)=.如果使用错误分布q来表示来自真实分布p的平均编码长度,则应该是:H(p,q)=.因为用q来编码的样本来自分布p,所以期望H(p,q)中概率是p(i).H(p,q)我们称之为"交叉熵

2016.3.24 交叉熵

交叉熵 俗话说,千里之行,始于足下,在我踢球的时候,教练总是让我们练习基本功,其实感觉基本功才是重点,如果基本功不好,那么再怎么厉害的战术都不能够执行出来,基本功是发挥的基本和关键,对于网络来说,基本的感觉或者说基本的对于网络的数学感觉也是基本功. 那么对于一个简单的feedforward的普通的全链接的神经网络什么是基本功呢?我认为首先需要对激活函数有一个感觉,尤其是对于sigmoid,这是非线性的一个里程碑式的函数.对于这个重要问题,一定要深入理解各项基本特性.简单描述一下,这个函数再0附近

交叉熵代价函数

本文是<Neural networks and deep learning>概览 中第三章的一部分,讲machine learning算法中用得很多的交叉熵代价函数. 1.从方差代价函数说起 代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为: 其中y是我们期望的输出,a为神经元的实际输出[ a=σ(z), where z=wx+b ]. 在训练神经网络过程中,我们通过梯度下降算法来更新w和b,因此需要计算代价函数对w和

最大似然估计 (Maximum Likelihood Estimation), 交叉熵 (Cross Entropy) 与深度神经网络

最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看.今天准备写一写很多童鞋们w未必完全理解的最大似然估计的部分. 单纯从原理上来说,最大似然估计并不是一个非常难以理解的东西.最大似然估计不过就是评估模型好坏的方式,它是很多种不同评估方式中的一种.未来准备写一写最大似然估计与它的好朋友们,比如说贝叶斯估计 (Beyasian Estimation), 最大后验估计(Max

交叉熵 相关链接

TensorFlow四种Cross Entropy算法实现和应用 对比两个函数tf.nn.softmax_cross_entropy_with_logits和tf.nn.sparse_softmax_cross_entropy_with_logits 从神经网络视角看均方误差与交叉熵作为损失函数时的共同点 交叉熵代价函数 交叉熵代价函数(损失函数)及其求导推导 简单易懂的softmax交叉熵损失函数求导 如何通俗的解释交叉熵与相对熵? https://www.cnblogs.com/virede