目标检测之Loss:Center Loss梯度更新

转载:https://blog.csdn.net/u014380165/article/details/76946339

最近几年网络效果的提升除了改变网络结构外,还有一群人在研究损失层的改进,这篇博文要介绍的就是较为新颖的center loss。center loss来自ECCV2016的一篇论文:A Discriminative Feature Learning Approach for Deep Face Recognition。 

论文链接: http://ydwen.github.io/papers/WenECCV16.pdf 
代码链接: https://github.com/ydwen/caffe-face

对于常见的图像分类问题,我们常常用softmax loss来求损失,关于softmax loss你可以参考这篇博文:softmax,softmax-loss,BP的解释。如果你的损失采用softmax loss,那么最后各个类别学出来的特征分布大概如下图Fig2。这个图是以MNISTt数据集做的实验,一共10个类别,用不同的颜色表示。从Fig2可以看出不管是训练数据集还是测试数据集,都能看出比较清晰的类别界限。

这里写图片描述

如果你是采用softmax loss加上本文提出的center loss的损失,那么最后各个类别的特征分布大概如下图Fig3。和Fig2相比,类间距离变大了,类内距离减少了(主要变化在于类内距离:intra-class),这就是直观的结果。

这里写图片描述

接下来详细介绍center loss。如果你还是不熟悉传统的softmax loss,那么先来看看传统的softmax loss。首先区分softmax和softmax loss的区别,可以看博客:softmax,softmax-loss,BP的解释。下面公式1中log函数的输入就是softmax的结果(是概率),而Ls表示的是softmax loss的结果(是损失)。wx+b是全连接层的输出,因此log的输入就表示xi属于类别yi的概率。

这里写图片描述

那么center loss到底是什么呢?先看看center loss的公式LC。cyi表示第yi个类别的特征中心,xi表示全连接层之前的特征。后面会讲到实际使用的时候,m表示mini-batch的大小。因此这个公式就是希望一个batch中的每个样本的feature离feature 的中心的距离的平方和要越小越好,也就是类内距离要越小越好。这就是center loss。

这里写图片描述

关于LC的梯度和cyi的更新公式如下:

这里写图片描述

这个公式里面有个条件表达式如下式,这里当condition满足的时候,下面这个式子等于1,当不满足的时候,下面这个式子等于0.

这里写图片描述

因此上面关于cyi的更新的公式中,当yi(表示yi类别)和cj的类别j不一样的时候,cj是不需要更新的,只有当yi和j一样才需要更新。

作者文中用的损失L的包含softmax loss和center loss,用参数南木达(打不出这个特殊字符)控制二者的比重,如下式所示。这里的m表示mini-batch的包含的样本数量,n表示类别数。

这里写图片描述

梯度求导过程,相当与在softmaxLoss后面加了2*(X - C)的约束因子

具体的算法描述可以看下面的Algorithm1:

这里写图片描述

CenterLoss是一种用于深度学习中的损失函数,用于学习特征表示的类内变化。它通过更新中心点来最小化特征与中心点之间的距离,从而使得同一类别的特征更加紧密地聚集在一起。具体来说,CenterLoss更新机制是根据特征值和中心点的二范数来确定中心点的更新方向。通过这种更新方式,每个类别的中心点会被更新为与该类别所有样本特征值的二范数和最小的位置,可以理解为该类别特征的中心点位置。整体的CenterLoss是在边学习边找中心点的,最终中心点的确定和整体分类任务的收敛是同步进行的。\[1\] CenterLoss的公式描述了类内变化,即希望所有特征离中心的距离都尽量小。具体公式如下: c_{y_i}\in R^d:代表类别为y_i的所有特征的中心。在训练过程中,对每个类别在minibatch尺度上统计出该类别特征的中心。\[2\] 然而,CenterLoss不能直接使用的原因是因为它的反向传播需要与前向传播的输入参数一一对应。具体来说,在反向传播中,需要计算特征、标签、中心点和批量大小的梯度。为了实现这一点,需要编写相应的代码来更新中心点。\[3\] #### 引用[.reference_title] - *1* *3* [CenterLoss | 减小类间距离](https://blog.csdn.net/qiu931110/article/details/106108936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [CenterLoss原理详解(通透)](https://blog.csdn.net/weixin_54546190/article/details/124504683)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值