[损失设计]4.Center Loss

超强辅助Center Loss

一、Center Loss介绍

  1. 核心思想:扩大类内距
  2. 公式如下:
    L c = 1 2 N ∑ i = 1 n ∣ ∣ x i − c y i ∣ ∣ 2 2 (1) L_c=\frac{1}{2N}\sum_{i=1}^{n}||x_i-c_{y_i}||^{2}_{2}\tag{1} Lc=2N1i=1nxicyi22(1)
  3. 反向传播公式:
    △ c = α N ∑ i = 1 N ( c − x i ) (2) △c=\frac{α}{N}\sum_{i=1}^N(c-x_i)\tag{2} c=Nαi=1N(cxi)(2)
    上面公式中,α一般取值为0.5
  • 在原有的softmax loss中引入一种新的辅助损失函数center loss

二、使用

  • 1. 在原有的softmax loss中引入一种新的辅助损失函数centerlos
  • 2. 注意:如果直接使用centerloss的效果是不好的,centerloss是用来分开类之间的距离的,但是没有让类之间的距离分开
  • Softmax Loss+Center Loss,公式下:
    L = L s + λ L c (3) L=L_s+λL_c\tag{3} L=Ls+λLc(3)

L s = − ∑ i = 1 m log ⁡ e W y i T x i + b y i ∑ j = 1 n e W j T x i + b j + λ 2 ∑ i = 1 m ∣ ∣ x i − c y i ∣ ∣ 2 2 (4) L_s=-\sum_{i=1}^m\log\frac{e^{W^T_{y_i}x_i+b_{y_i}}}{\sum_{j=1}^{n}e^{W^{T}_{j}x_i+b_j}}+\frac{λ}{2}\sum_{i=1}^{m}||x_i-c_{y_i}||^2_2\tag{4} Ls=i=1mlogj=1neWjTxi+bjeWyiTxi+byi+2λi=1mxicyi22(4)

  • softmax loss使类间距越来越大,Center Loss使类内距越来越小

  • 只使用centerloss效果不好,所以一般是将centerloss与softmaxloss一起使用,引入参数lambda用来平衡两个损失的比例。在模型的训练中,提取出来的特征的区分度越高。λ=0.003和α=0.5时对人脸识别的效果最好

  • 效果
    在这里插入图片描述

  • 训练技巧:MNSIT数据集,要使用SGD优化器,效果比较好。

三、缺点

  • 是一个辅助函数,单独使用效果不好
  • 类别比较多时,对硬件的要求较高。
    原因:由于Centerloss为每个类别需要保留一个类别的中心,当类别的熟练很多(>1000)时,这个内存消耗的非常大,它对GPU的内存要求更高
  • L2范数的离群点对loss的影响较大
    原因:由于centerloss是基于L2范数约束的损失函数,如果某个类别的某个离群点较远,会导致损失下降困难,同样由于损失计算的方差和均值和,即使整体损失下降,个别的利群点仍然离中心很远。
  • 类内距太大,MNIST数据实验中可以看到,每一类特征占据的空间较大,如果类别过多,就无法清除的区分每个类别。
  • 只适合同类样本差异不大的数据,由于一个trick不一定适合所有场景,一般来说,如果同一类样本相似,如MNIST手写数字,人脸数据,那么centerloss往往能够带来效果提升,而如果本身同一类养而不能就差异很大,如cifar100,那么则不一定。可以理解成一个人的一堆脸取平均值仍然是他的脸,而一堆不同的狗平均值则可能难以认出是什么。

预知后事如何,且听下回分解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值