交叉熵(Cross Entropy)
在线性回归问题中,常常使用MSE(Mean Squared Error)作为loss函数
而在分类问题中常常使用交叉熵作为loss函数。
在搜索“交叉熵”这个概念后,看到需要了解一些其他的名词。
信息量:
衡量信息量的大小就是看这个信息消除不确定性的程度。
在一些比较确定的事情上,信息量就为0.譬如说“煤是黑的”,概率P(x)=1,那么-log(P(x))=0
而再比如说“小明有10个小孩”,这句话信息量就比较大。假设小明有10个小孩的概率P(x)=0.1,那么信息量I(x)=-log(P(x))=-log(0.1)=3.3219
信息量的大小与信息发生的概率成反比。
概率越大,信息量越小。概率越小,信息量越大。
设某一事件发生的概率为P(x),其信息量表示为
(其中I(x)表示信息量,这里log表示以e为底的自然对数。)
信息熵(熵)
用来表示所有信息量的期望。
期望是试验中每次可能结果的概率乘以其结果的总和
拿上面的例子继续说,譬如说“小明有10个小孩”这件事的概率有0.1。
这件事的结果取值只取两种可能(0:有、1:没有)
那么在得到求证之前,这件事情有多大的不确定度呢?可能会说“十有八九没这么多孩子”
用数学怎么来具体度量这个不确定度?就需要用到“期望”。对所有可能结果带来的额外信息量求取均值(期望)
所以信息熵可以表示为:(这里的X是个离散型随机变量)
对于0-1分布的问题,由于其结果只用两种情况,是或不是。计算熵的公式可以简化如下:
相对熵(KL散度、KL距离)
是两个随机分布间距离的度量。
如果对于同一个随机变量X有两个单独的概率分布P(x)和Q(x),则我们可以使用KL散度来衡量这两个概率分布之间的差异。
在机器学习中,常常使用P(x)来表示样本的真实分布,Q(x)来表示模型所预测的分布。
比如在一个三分类任务中(例如,猫狗马分类器)。x1、x2、x3分别代表猫,狗,马,例如一张猫的图片真实分布P(X)=[1,0,0], 预测分布Q(X)=[0.7,0.2,0.1],
计算KL散度:
KL散度越小,表示P(x)与Q(x)的分布更加接近,可以通过反复训练Q(x),来使Q(x)的分布逼近P(x)。
其实还没看太懂。。。
P在前,相当于以P为基准,看Q与P相差多少。
直观理解:若Q想要达到和P一样的分布的话,中间还差多少信息量
上述式子中,最后一行,前面的P的交叉熵H(P,Q),后面的p的熵
所以P的交叉熵越大,代表KL散度距离0的距离越远,Q和P就越不像
交叉熵
交叉熵越小,代表两个概率模型越相近
说是容易跟相对熵搞混。二者联系紧密,但又有所区别。
上面KL散度的式子拆开:
可以看出:KL散度 = 交叉熵 - 信息熵
交叉熵公式表示为:
在机器学习训练网络时,输入数据与标签常常已经确定,那么真实概率分布P(x)也就确定下来了,所以信息熵在这里就是一个常量。由于KL散度的值表示真实概率分布P(x)与预测概率分布Q(x)之间的差异,值越小表示预测的结果越好,所以需要最小化KL散度,而交叉熵等于KL散度加上一个常量(信息熵),且公式相比KL散度更加容易计算,所以在机器学习中常常使用交叉熵损失函数来计算loss就行了。
也就是说本来是需要通过计算KL散度来看真实与预测之间的差异,但由于机器学习中输入数据与标签确定,所以信息熵为一个常量,且因为KL散度 = 交叉熵 - 信息熵,所以只需要求交叉熵就行了。
参考:
https://blog.csdn.net/b1055077005/article/details/100152102
https://blog.csdn.net/rtygbwwwerr/article/details/50778098
交叉熵应用到神经网络里
似然值
真实的情况已经发生,我们假设他有很多模型,在这个概率模型下,发生这种情况的可能性。这个就是似然值。
硬币投出这样的结果,这个硬币本来的概率模型应该是什么样的呢?
虽然我们永远无法准确的确定,但选这个似然值最大的,就叫最大似然估计法。(挑出似然值最大的那个概率模型)文章来源:https://www.toymoban.com/news/detail-752764.html
极大似然估计:
本质上就是在去计算神经网络里面的概率模型的似然值,找到那个极大似然值。这个就i应该是最接近现实情况的那个概率模型。文章来源地址https://www.toymoban.com/news/detail-752764.html
到了这里,关于理解交叉熵(Cross Entropy)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!