损失函数-交叉熵的推导和二分类交叉熵

交叉熵

期望:

期望就是所有随机变量的均值。

E(X)=X1*P(X1)+X2*P(X2)+X3*P(X3)

熵:

熵表示所有信息量的期望。

信息量如何计算呢?

概率值取Log,然后加个负号,就是信息量

      I(X0)=-log(P(X0))

I(X0)代表信息熵

公式理解:概率越小,信息越大,概率越大,信息越小。

与正常思考反着来,因为概率大,所以这条信息重要性越小,因为都知道。所以信息量小。

                                因为概率小,所以这条信息很重要,因为概率小不确定,所以包含的信息量大

熵的公式:

熵就是在信息量的基础上求一个期望,(也就是先乘概率值再累计求和)熵的公式定义如下

以上的log函数全部底为2 

举例:

对于二项分布,只有两种可能的情况,一个发生的概率为P(x),另一个发生的概率为1-P(x),此时的信息量计算过程如下

在这里不要把这个看成二分类交叉熵。 

交叉熵就是损失函数。信息量是各种情况熵的期望。熵的公式里面填的数字都是概率值。两种情况的事件,概率值只有两种,P(x)  和  1-P(x) ,带进去如上。

相对熵(KL散度)

KL散度的定义:

同一个随机变量X,有两个单独的概率分辨P(x)和Q(x)。用KL散度来衡量P(x)和Q(x)两个独立分辨之间的差异。KL散度值越小,表示P和Q的分布越接近。

直观理解:

KL之所以说是对比两个分布之间的差异。应该是相减 。但是体现在log里面的相除。log拆分开来的话不就是相减了吗!

交叉熵 Cross Entropy

交叉熵是做为损失函数来使用的。

表示对于数据预测分类情况的类别真实类别情况之间的距离。

此时P(X)代表真实样本,Q(X)代表预测样本(注意这句话!!!!下面第三步要用的到)

我们使用梯度下降优化的目的,就是使得预测分类的结果尽可能的逼近真实的分类结果。也就是KL散度的值越小越好。

第一步:

  带入KL散度公式,

第二步简化

最右边这个P(xi)/Q(xi)拆开,从除变成减,两边都有P(xi),求和符号也带着

 

现在设                   

 因为在上面已经提到熵的定义 公式。可以往上面翻翻看。所以

 第三步

 

 我们发现H(x)即是对P(x)进行求取熵,但是P(x)是一个真实的样本。那么他的初始值都已经固定了。P(X)也就是一个常数,而常数在接下来的LOSS中是没有任何意义的。那么就可以将这个去除。

 这就是交叉熵。

交叉熵的应用

交叉熵在分类中常被使用,通常和Softmax在一起使用,softmax获取概率,带入到交叉熵中。根据交叉熵的值,不断的调整。

BCE 二分类交叉熵损失函数。

对于在二分类损失函数中应用,交叉熵损失函数为以下形式。

 SoftWare交叉熵损失函数。

交叉熵经常搭配softmax使用,将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。

参考

https://blog.csdn.net/Albert233333/article/details/127148805

猜你喜欢

转载自blog.csdn.net/weixin_43852823/article/details/127552296
今日推荐