交叉熵损失和二元交叉熵损失

一、什么是交叉熵损失(Cross Entropy Loss)

交叉熵是信息论的概念。WIKIPEDIA给出的交叉熵定义如下

交叉熵损失和二元交叉熵损失

上面的意思大概是说,给定两个概率分布p和q,通过q来表示p的交叉熵为

交叉熵损失和二元交叉熵损失

其中\mathit{E_p}[\cdot ]是关于分布q的期望值算子。如果概率分布p和概率分布q是离散的,那么通过q来表示p的交叉熵为

交叉熵损失和二元交叉熵损失

交叉熵描述了两个概率分布之间的距离。交叉熵越小,两个概率分布越接近。例如

交叉熵损失和二元交叉熵损失

交叉熵损失定义为

交叉熵损失和二元交叉熵损失

其中\bold{y}_i是标签值,y_i'是预测值。

注意这里的预测值一般是对数据和模型参数进行一些可推导计算后得到的结果。交叉熵损失通过梯度下降不断使预测值的分布接近标签值的分布,同时模型的参数也随之更新,这在机器学习中称为学习.

二、什么是二元交叉熵损失(Binary Cross Entropy Loss)

二元交叉熵损失定义为

\tiny \mathrm{BCELoss}=-\frac{1}{n}\sum_{i=1}^{n}[y_i\cdot \mathrm{log}p(y_i)+(1-y_i)\cdot \mathrm{log}(1-p(y_i))]

其中\tiny y_i是二元标签值0或者1,\tiny p(y_i)是属于\tiny y_i标签值的概率。

可以轻易地分析出来,当标签值\tiny y_i=1时,\tiny 1-y_i=1-1=0;当标签值\tiny y_i=0时,\tiny 1-y_i=1-0=1。也就是说,在二元交叉熵损失函数第一项\tiny y_i\cdot \mathrm{log}p(y_i)和第二项\tiny (1-y_i)\cdot \mathrm{log}(1-p(y_i))之中,必定有一项的值为0。我们再来看第一项和第二项的函数图像(横坐标为\tiny p(y_i),纵坐标为\tiny \mathrm{BCELoss}):

交叉熵损失和二元交叉熵损失

当标签值\tiny y_i=1时 ,\tiny \mathrm{BCELoss}=-\mathrm{log}p(y_i),如果\tiny p(y_i)接近1,\tiny \mathrm{BCELoss}接近0;如果\tiny p(y_i)接近0,\tiny \mathrm{BCELoss}则变得无穷大。

当标签值\tiny y_i=0时,\tiny \mathrm{BCELoss}=-\mathrm{log}(1-p(y_i)),如果\tiny p(y_i)接近1,\tiny \mathrm{BCELoss}变得无穷大;如果\tiny p(y_i)接近0,\tiny \mathrm{BCELoss}接近0。

通过上面的简单分析,当预测值接近标签值时,损失很小,而当预测值远离标签值时,损失很大,有利于模型的学习。

3. 参考

交叉熵损失函数

Cross Entropy

binary cross entropy in its core

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年4月11日 下午2:58
下一篇 2022年4月11日 下午3:16

相关推荐