文章目录

  • (一)CenterLoss研究背景和意义
    • 1.1、Research background
    • 1.2、研究成果以及意义
  • (二)论文精度
    • 2.1、Abstract
    • 2.2、Introduction
  • (三)LossFounction
    • 3.1、Softmax 与 CenterLoss 输出的区别
    • 3.2、SoftMax Loss
    • 3.3、CenterLoss
    • 3.3、基于上述center loss的特征学习算法
  • (四)推导反向传播的全过程

(一)CenterLoss研究背景和意义

1.1、Research background

1.人脸识别规模大,尤其集外的样本不仅需要特征separable(可分离的),更加需要separable(可分离的)。

问题一:separable(可分离的)和separable(可分离的)这两个词怎么理解?

首先我们看一张图片(绿色框中的两个部分):

先记住这两个图形样式的区别,后面自然就懂了。(区别就是人脸识别的Loss Function 不同于CNN中图像分类的Loss Function。在作者论文的Introduction做了详细的介绍。下面我会细讲。)

2.之前的方法在训练数据处理上面相当复杂(例如FaceNet中的Triplets Loss,并且Triplets Loss显著增加了计算的复杂度,使训练过程变得不方便。)

3、之前的主要方法:

1.基于pair的contractive loss, Deepid2
2.基于facenet的Triplet loss的方法

缺陷:

1.训练数据的选取复杂度太高
2.也不能用到明确的类别信息

1.2、研究成果以及意义

1.使得训练出来的特征对于同一个类别来讲更加紧致
2.使得训练更加简单方便,尤其输入训练数据这一块
3.能用到每一个类别的信息,信息丢失很少

(二)论文精度

2.1、Abstract

摘要核心
  1. 在此之前大部分分类还是基于softmax的准则
  2. 提出center loss,以及其作用:每个类别的样本距离其中间很近
  3. Softmax + center loss联合训练,容易优化
  4. 取得很好的性能

2.2、Introduction

  1. 很多任务都是Close-Set Identification,比如分类网络就ok,只用Separable的特征就能解决。
问题二:Close-Set Identification是什么意思?

答:Close-Set Identification:字面意思闭集合分类。比如我们的大部分图像分类就是Close-Set Identification,就是检测出的结果必须包含在训练数据集的种类中,比如ImageNet数据集,我们检测的图形中的目标类别必须包含在ImageNet数据集的1000个种类中。

  1. 人脸识别任务不是close-set identfication的,需要足够强的泛化能力去解决集外的人脸,这就需要人脸特征discriminative 。

作者论文中的原话:在人脸识别任务中,深度学习的特征不仅需要可分离,而且需要具有辨别性。由于预先收集所有可能的测试身份以进行训练是不切实际的,因此在cnn中的标签预测并不总是适用的。深度学习的特征需要具有足够的区别和普遍性,才能识别没有标签预测的新的不可见类。

  1. 构建discriminative的loss训练很难,包括之前讲的triplet loss,在数据处理很复杂.
  2. 提出center loss:

意义:
efficiently enhance the discriminative power of the deeply learned features in neural networks

(三)LossFounction

3.1、Softmax 与 CenterLoss 输出的区别

对于常见的图像分类问题,我们常常用softmax loss来求损失。如果你的损失采用softmax loss,那么最后各个类别学出来的特征分布大概如下图Fig2。这个图是以MNISTt数据集做的实验,一共10个类别,用不同的颜色表示。从Fig2可以看出不管是训练数据集还是测试数据集,都能看出比较清晰的类别界限。
Center Loss是通过将特征和特征中心的距离和softmax loss一同作为损失函数,使得类内距离更小,有点L1,L2正则化的意思。最关键是在训练时要使用2个Loss函数:Softmax Loss + lamda * Center Loss:

3.2、SoftMax Loss

这篇文章对Softmax vs. Softmax-Loss: Numerical Stability写的超好,可以进一步加深理解。

The softmax loss function ispresented as follows:

xi∈Rdx_i\in R^dxi​∈Rd:表示属于yiy_iyi​类(yyy指输出,iii指yyy的第iii行,即第iii个类别。)的第iii层的深层特征。;
ddd:指特征维度;
Wj∈RdW_j \in R^dWj​∈Rd:表示最后一个全连接层中权重W∈Rd×nW \in R^{d \times n}W∈Rd×n的第jjj列;
bbb: 偏置,不用多说了;
mmm:The size of mini-batch(Batch Size);
nnn: The number of class;

上面的这些参数可以结合下图理解奥


The resulting 2-D deep features如下图所示

这里The resulting 2-D deep features指:最后的全连接层设置为2(二分类)如下图所示。

由于最后一个完全连接的层就像一个线性分类器,所以不同类的深度特征通过决策边界(就是超平面)来区分。

所以我们得出结论:

(1)在softmax loss的监督下,深入学习的特征是可分离的
(2)深度特征没有足够的辨别力,因为它们仍然显示出显著的类内变化。因此,不适合直接使用这些特征进行识别。

3.3、CenterLoss

CenterLoss公式如下:该公式有效地描述表征类内变化(the intra-class variations)。

cyi∈Rdc_{y_i}\in R^dcyi​​∈Rd:代表类别为yiy_iyi​的所有feature的中心。具体来说即在训练过程中对每个类别在minibatch尺度上统计出该类别feature的中心,希望所有feature离中心的距离都尽量小。

Center Loss不能直接使用的原因?

答:

cyic_{y_i}cyi​​会随着深层特征的改变而更新。换句话说,我们需要考虑到整个训练集,并在每次迭代中平均每个类的特征,这是低效的,甚至是不切实际的。因此,Center Loss不能直接使用。这可能是这种Center Loss直到现在从未使用于CNN中的原因。

如何解决Center Loss不能直接使用。

答:

1、我们不是针对整个训练集更新中心,而是基于小批量进行更新。在每次迭代中,中心是通过平均相应类的特征来计算的(在这种情况下,一些中心可能不会更新)。
2、为了避免由于少数错误标记的样本而引起的大扰动,我们使用标量α\alphaα来控制中心的学习率。

上图中:公式(3)是Center Loss基于xix_ixi​计算的梯度。
公式(4)中δ(condition)δ(condition)δ(condition) 非0即1,指当yiy_iyi​的类别与cjc_jcj​的类别不一样时,cjc_jcj​是不进行更新的。含义是类别中心的更新距离方式,具体来说就是对于每个类别jjj,将j类别中心减去每个jjj类别feature中心的值取平均,以此作为类别中心更新的步进值。

3.3、基于上述center loss的特征学习算法

结合Center Loss输出的内类聚合结果图

(四)推导反向传播的全过程

下图是论文中给出的更新过程:

本人详细推导更新的完整过程

CenterLoss原理详解(通透)相关推荐

  1. docker核心网络原理详解

    docker清空所有容器: 删除所有镜像: ip addr docker是如何处理容器网路访问的? 跑一个tomcat容器并使用ip addr查看ip地址: linux是可以ping通容器内部的ip的 ...

  2. 手机快充芯片及其技术标准和设计原理详解

    手机快充芯片及其技术标准和设计原理详解 智能手机对于宽带无线通信.图像处理等多方面的需求导致实际耗电呈指数增长.未来5G通信带宽将比4G增加10倍,4K/8K等高清视频技术逐渐应用,CPU.GPU等运 ...

  3. 卷积神经网络(CNN)详细介绍及其原理详解

    文章目录 前言 一.什么是卷积神经网络 二.输入层 三.卷积层 四.池化层 五.全连接层 六.输出层 七.回顾整个过程 总结 前言 本文总结了关于卷积神经网络(CNN)的一些基础的概念,并且对于其中的 ...

  4. 有刷直流电机工作原理详解

    有刷直流电机工作原理详解 来源:网络整理• 2018-05-10 09:00 • 56380次阅读 有刷直流电机被广泛用于从玩具到按钮调节式汽车坐椅的应用中.有刷直流 (Brushed DC,BDC) ...

  5. amoled led 排列_AMOLED-显示原理详解.pdf

    AMOLED-显示原理详解 AMOLED 显示原理详解 2016/05/25 Agenda 什么是AMOLED AMOLED vs LCD PMOLED AMOLED vs Retina AMOLED ...

  6. 循环神经网络RNN、LSTM、GRU原理详解

    一.写在前面 这部分内容应该算是近几年发展中最基础的部分了,但是发现自己忘得差不多了,很多细节记得不是很清楚了,故写这篇博客,也希望能够用更简单清晰的思路来把这部分内容说清楚,以此能够帮助更多的朋友, ...

  7. DS18B20温度传感器原理详解及例程代码、漏极开路

    [常用传感器]DS18B20温度传感器原理详解及例程代码_Z小旋的博客-CSDN博客_ds18b20温度传感器 传感器引脚及原理图 DS18B20传感器的引脚及封装图如下: DS18B20一共有三个引 ...

  8. Redis基础及原理详解

    Redis基础及原理详解 前言:以下是最近学习redis的一些笔记总结,文中如有不当的地方欢迎批评指正,重在记录与学习,笔芯~~ Nosql概述 演进历史 单机mysql Memcached(缓存)+ ...

  9. 【原创】R-CNN及Selective Search原理详解

    R-CNN原理详解: 候选区域生成 Selective Search方法 算法流程 计算相似度 给区域打分 特征提取 类别判定 位置调整 总结 R-CNN论文链接: R-CNN R-CNN将CNN引入 ...

最新文章

  1. java冒泡排序_Java中的经典算法之冒泡排序(Bubble Sort)
  2. 第二次冲刺阶段第四天
  3. RegConnectRegistry函数
  4. PMCAFF微课堂 | 奇酷运营总监类类教你如何利用金字塔模型提高用户忠诚度
  5. 【问链-EOS公开课】第十三课 EOS插件机制深入解析
  6. java面试题七 char转int
  7. Mysql 5.5的编译安装 在ubuntu 10平台上面
  8. c语言中memcpy函数_带有示例的C中的memcpy()函数
  9. lua软件测试自动化,一种基于Lua脚本的嵌入式软件自动化测试系统及方法专利_专利查询 - 天眼查...
  10. 11 二叉查找树中搜索区间
  11. 在CentOS 7上安装Node.js的4种方法(yum安装和源码安装)
  12. InnoDB Plugin 1.0.2 for MySQL 5.1.30 (GA) Released
  13. 母函数 经典题目汇总
  14. 在一起计时器_三种在PPT里制作计时器的方法,超详细!超漂亮!
  15. 2019年python爬虫-我破解了中文裁判网数据挖掘-反爬技术哪些事情
  16. 定义一个Employee类,其中包括表示姓名、街道地址、城市和邮编等属性
  17. iPhone 12界面下拉不显示控制中心解决方法「iphone技巧」
  18. 记一次很坑很坑的报错java.lang.Exception: The class is not public.
  19. 微信小程序授权登录和账号登录
  20. Python学习记录(4)元组:戴了紧箍咒的列表

热门文章

  1. linux不需要磁盘碎片整理!
  2. PyautoGui常规操作
  3. Busybox命令详解
  4. 数据清洗、可视化工具
  5. IHE DICOM测试说明
  6. Altium Designer 之【差分线】和【等长线】
  7. 推荐|网易云音乐分析之推荐算法
  8. MATLAB算法实战应用案例精讲-【智能优化算法】细菌觅食优化-BFO(附MATLAB源码)
  9. 南京航空航天大学计算机学院校区,南京航空航天大学有几个校区及校区地址
  10. AHRS基础知识(旋转矩阵(四元数)、向量叉乘、哥氏定理、四元数运算法则)