从理论上理解采用交叉熵作为损失函数的意义

简要解释为什么要使用交叉熵作为损失函数。用简短的话来解释就是:我们需要得到最大似然估计,即模型得到的预测分布应该与数据的实际分布情况尽可能相近。KL散度(相对熵)是用来衡量两个概率分布之间的差异。模型需要得到最大似然估计,乘以负Log以后就相当于求最小值,此时等价于求最小化KL散度(相对熵)。所以得到KL散度就得到了最大似然。又因为KL散度中包含两个部分,第一部分是交叉熵,第二部分是信息熵,即KL=交叉熵−信息熵。信息熵是消除不确定性所需信息量的度量,简单来说就是真实的概率分布,而这部分是固定的。所以优化KL散度就是近似于优化交叉熵。

即:最小化交叉熵完全等价于极大似然估计;

        求最小化交叉熵等价于求KL散度。

首先推导最小化交叉熵完全等价于极大似然估计,具体的证明公式参考:最小化交叉熵损失与极大似然 - 知乎。给出简单的推导:

第一步是最大似然估计,通俗来讲就是我们需要从参数集中找出一组参数,使得观察到的概率值最大。最后一步就是我们的最小化交叉熵,也是一般神经网络的优化目标。

\hat{w}, \hat{b} = argmax_{w, b} \prod _{i=1}^{n} P(y_{i}|x_{i}, w, b) =argmax_{w, b} \sum_{i=1}^{n} log P(y_{i}|x_{i}, w, b) = argmin_{w, b} - \sum_{i=1}^{n} log P(y_{i}|x_{i}, w, b)

然后推导最小化交叉熵等价于求KL散度。

1.KL散度(相对熵)

相对熵就是KL散度,用来衡量两个概率分布之间的差异。对于两个概率p(x)q(x),其相对熵计算公式如下:

KL(p || q) = -\int p(x) ln q(x) dx - (-\int p(x) ln p(x) dx )
KL 越小,表示p(x)和q(x)的分布越近。

相对熵的特点就是只有当p(x) = q(x)时,其值为0。当两者不同时,其值大于0。这个利用了- ln (x)为严格的凸函数的性质。

我们可以将上诉公式拆成两部分,第一部分就是交叉熵,第二部分就是信息熵(常数)。

2.交叉熵

公式的前半部分就是交叉熵。在-\int p(x) ln q(x) dx中,p(x)代表真实的概率分布,q(x)代表预测的概率分布。我们模型预测目的就是使交叉熵最小,即q(x)最接近于p(x)。因为模型的后半部分是一个常数。所以当相对熵最小时,即意味着交叉熵达到了最小。反过来,当我们模型预测得到一个最小的交叉熵时,也就得到了最小的相对熵,也就等效于得到了最大似然估计(最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。这个是统计学中的知识,想了解的同学自行百度,不多解释)。

3.信息熵

公式的后半部分就是信息熵。信息熵是消除不确定性所需信息量的度量。

信息熵   =   \sum_{x=1}^{n}    (信息x发生的概率×验证信息x需要的信息量)

简而言之:信息熵是信息量乘以其发生概率。而真实的概率分布是固定的,所以这一部分是一个常数。

首先了解一下信息量:信息量是对信息的度量,就跟时间的度量是秒一样,当我们考虑一个离散的随机变量 x 的时候,当我们观察到的这个变量的一个具体值的时候,我们接收到了多少信息呢?

多少信息用信息量来衡量,我们接受到的信息量跟具体发生的事件有关。

信息的大小跟随机事件的概率有关。越小概率的事情发生了产生的信息量越大,如湖南发生地震了;越大概率的事情发生了产生的信息量越小,如太阳从东边升起来了(肯定发生嘛, 没什么信息量)。这很好理解!

信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。

总结:

虽然最小化的是交叉熵,但其实我们实际上的目的是最大似然,但我个人喜欢从KL散度的方向去分析交叉熵。
最大似然有两个非常好的统计性质:

样本数量趋于无穷大时,模型收敛的概率会随着样本数m的增大而增大。这被称为一致性。
一个一致性估计器能够在固定数目的样本m下取得更低的泛化误差(generalization error),或者等价的,需要更少的样本就可以得到固定水平的泛化误差。这被称作统计高效性。

题外话:最大似然估计是频率派提出的观点,而贝叶斯派则认为贝叶斯才是真实的分布情况。贝叶斯公式中包含了最大似然函数,并且在最大似然函数后面乘以了一个先验概率。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值