如何提高分类的区分性能——细粒度图像分类(Fine-Grained Classification)

问题

如何让网络关注细小细节

举个栗子

通过树叶判断植物类别,花朵判断花的品种,以及人脸识别等任务

1. CenterLoss

1.1 传统分类学习存在的问题:

类内距离可能超过类间距离,对一些模棱两可的样本不好区分

如何提高分类的区分性能——细粒度图像分类(Fine-Grained Classification)_第1张图片

1.2 Center Loss方案

  • 让特征向量有更好的区分性能,有点像做一个内部聚类,把特征向量约束到一起,让不同类别距离(类间距离)尽量大,相同类别(类内距离)尽量小,

如何提高分类的区分性能——细粒度图像分类(Fine-Grained Classification)_第2张图片

  • CenterLoss作用后的区分特征再做分类,能够更好的鉴别出模棱两可的图片

1.3 实现原理/公式解析

  • 计算类与该类别中心的Loss,再做一个L2正则,即向量的平方,如下图所示。中心点坐标为该类别所有相加的和处于类别个数,即均值。

centerloss_Lc.png

  • 算法
    如何提高分类的区分性能——细粒度图像分类(Fine-Grained Classification)_第3张图片

    • {xi}为训练集. θC为卷积层里的参数.权重参数W和{cj|j=1,2, …, n}为损失层里的参数。

    • 超参数λ为聚类程度的参数指标,α指的是控制每次中心点更新的波动情况(α=1:完全不考虑波动;α<1:进行圆滑处理),μt为学习率.

    • 对于第6步,注意的是,中心点的向量不是一直固定不变的,每个batchsize训练后,中心点是会改变的。Δcj更新方式如下

    centerloss_Cjf437bef79ded8892.png

     δ(condition) = 1; condition为True
     δ(condition) = 0; condition为False
    
  • 结果

    • λ越大,越靠近中心点,聚类能力越强,特征越可区分性;λ越小,越远离中心点,分类能力越强
      如何提高分类的区分性能——细粒度图像分类(Fine-Grained Classification)_第4张图片
    • 在MNIST数据集上表现良好,但在CIFAR数据集上表现不佳

2. 其他Loss

  • Triplet Loss/ Contrastive Loss

3. 注意力机制(Attention Mechanism)

如何提高分类的区分性能——细粒度图像分类(Fine-Grained Classification)_第5张图片

最后

原文链接

你可能感兴趣的:(深度学习,分类)