回归(平方损失)与分类[ ( BCE、CE) 和 (Focal loss) ]

回归损失与分类损失

回归用于逼近某个数值,预测的结果是连续的,例如预测小明的身高,160,161,162,163cm。平方损失即MSE:
在这里插入图片描述
分类用于预测物体属于某一个标签,预测的结果是离散的,例如预测明天是否下雪:是or否。
由于预测分类,最终的输出需要介于(0,1)之间,通常在网络输出处接上sigmoid或softmax (因为其函数值域在(0,1)之间)。
一个最常见的问题就是:为什么分类任务要用交叉熵损失函数,而不用均方误差损失函数?详细推导看到这里,我直接给出结论。
这与他们的导数形式是相关的,当接平方损失时:求得权重w与偏置b的梯度如下:
在这里插入图片描述
σ’(z)表示sigmoid或softmax的梯度,其梯度在网络输出概率接近0或1时非常小。
对于交叉熵损失函数:
其梯度为: 梯度的大小与网络输出概率值和期望值的差相关,差别越大,梯度越大,这是一个很好的性质。
在这里插入图片描述

log 损失

分类中的log损失通常分为BCE(sigmoid+log损失) 和 CE(softmax+log损失)

BCE(sigmoid+log损失)

公式如下:y是标签0或1,a是网络经过sigmoid函数的输出,范围是(0,1),n是样本数。
网络输出一个值,BCE根据该数值与对应标签的情况给出一个损失。
在这里插入图片描述
当y取0时,ylna消除,剩下-ln(1-a),所以a需要越接近0才能让loss降下来。
当y取1时,(1-y)ln(1-a)消除,剩下-lna,所以a需要越接近1才能让loss降下来。
该loss将0和1的情况的均考虑了进来,可用于二分类。

CE(softmax+log损失)

公式:y代表标签0或1,a代表网络经softmax的输出值,n是样本数。
网络输出多个值,CE根据只根据对应标签为1的网络输出给出一个损失。
在这里插入图片描述
当y取0时,没有计算损失。
当y取1时,剩下-lna,所以a需要越接近1才能让loss降下来。
该公式只专注于让对应标签为1的网络输出为1。
由于softmax的公式:这属于归一化,当有一项逼近1时,其他项则逼近0。
在这里插入图片描述

Focal loss

由于CE在计算损失时是一种公平策略,即没有对不同类别进行限制,哪种类别较多,则自然计算较多loss,也就容易导致类别失衡的情况出现。
在这里插入图片描述
于是Focal loss对CE loss进行改造,加入了两种加权的方法。公式如下:
在这里插入图片描述

第一:根据类别的数量,对不同类别进行加以不同比例,即αt:原论文是用于正负样本的分类,即只有两类,故αt是0.25与0.75。现应用在多分类中,做法如下:
A: 计算输入样本中每个类别像素点占所有像素点的比例,设为Sort [x],x代表第x个类别。
B: 应用如下公式:类别所占比例越小,最终加所加权重越大。
在这里插入图片描述
第二:根据网络预测结果来判断难训练样本(1-pt)γ:
其中p代表网络经过softmax之后的输出概率。当标签为1时,网络经softmax层输出越接近1代表训练越好。pt由p计算得到:当标签为1时,pt=p,即同样越接近1越好,当标签为其他时 (比如: 0),由于pt = 1-p,所以pt越接近1也代表训练越好。
在这里插入图片描述
所以,当1-pt越接近0时,即pt越接近1,训练结果越好,则这部分属于易训练样本,故权重较低,反之难训练样本就是1-pt越接近1时,即pt越接近0,训练结果越坏。所以在经过幂指数之后,权重较高。

Dice loss

前面交叉熵计算损失的思想为直接将所有误差相加,有多少加多少,这属于一种绝对的做法,图像中不同物体损失的大小与该物体大小有关,focal loss也仍然遵循了这一前提,只不过加入权重而已。
Dice loss的思想则采用了一种相对的做法, 从其公式可以看出:
在这里插入图片描述
TP表示正阳性:判断为正样本,本身确实是正样本。
FP表示负阳性:判断为正样本,但本身为负样本。(判断错误)
FN表示负阴性:判断为负样本,但本身为正样本。(判断错误)
TN表示正阴性:判断为负样本,本身确实为负样本。
如下图:绿色表示负的判断为正的,蓝色部分表示正的但被判断为负的,红色就是正确判断出来的。所以dice就是红色面积的两倍/ (绿色+蓝色)。
在这里插入图片描述
写成loss就是loss = 1-dice。
从上述可以看出,就算物体尺寸很小 (蓝色部分的面积),但只有少部分判断正确(红色的面积),那么该loss仍然会变得很大。显然这已经不取决于物体所占面积的大小了,而是判断正确的相对于错误与正确的总面积。
Dice loss在物体尺寸较小时,训练容易不稳定。但看了好多博客并没有给出解释:在这里我根据自己的理解说一说是怎么回事
如下图:t表示标注值(期望值),y表示网络的输出。I = t x y即表示只训练对应标注值为1的部分,U = t + y表示两者的并集。最终的loss = 1 - (2I / U)。当物体尺寸很小的时候,假如只有一个像素点,那么整个loss分子的大小就由这个像素点数值的大小所控制,如果物体尺寸比较大,即有多个像素点时,loss分子的大小就由多个像素点共同协调控制。这样即使有的像素点预测错误,也不影响整体的loss

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值