[论文阅读] A Discriminative Feature Learning Approach for Deep Face Recognition (Center Loss)
原文: A Discriminative Feature Learning Approach for Deep Face Recognition
用于人脸识别的center loss。
1)同时学习每个类的深度特征的中心点
2)对深度特征和其对应的类中心的距离有一定的惩罚
提出的center loss函数在CNN中可以训练并且很容易优化。
联合softmax loss和center loss,可以同时增加类间分散程度(inter-class dispension)与类内紧凑程度(intra-class compactness)。
对于普通的分类任务,网络最后一层全连接层输出的特征只有可分就行,但对于人脸识别任务,深度网络学到的特征不仅要可分,而且区分度要更大。
Softmax loss只有特征可分的效果,这对人脸识别是不够的。之前提出过contrastive loss和triplet loss,但是这两者需要仔细挑选训练样本,否则的话,具有不稳定行,也很难收敛。
为了增强神经网络学到的深度特征的辨别力,我们提出center loss。我们学习每个类的深度特征的一个中心(与特征具有相同维度的一个向量);在训练的时候,我们同时更新中心和最小化特征与其对应的类中心的距离。CNN在softmax loss和center loss联合下进行训练,其中有一个超参数控制。可以看出,softmax loss迫使不同类的深度特征保持分离,center loss使得属于同一个类的特征更加靠近中心;因此,在这两者联合之下,类间的特征差距不仅被加大,类内的特征变化程度也减小了。
本文的贡献:
1)提出一个新的loss function,称为center loss。可以用来最小化深度特征的类内距离,使得人脸识别更加鲁棒。
2)提出的center loss在CNN中很容易实现;模型可以训练,并且可以直接用SGD优化。
3)做了大量实验,在各种数据集上取得很好的结果。
3 The Proposed Approach
首先用一个小例子来讲解为什么提出这个center loss。以MNIST数据集为例,使用的网络称为LeNet++,与LeNet网络的区别是,加宽和加深了LeNet网络,并将最后一层隐含层输出改为2。具体区别如下:
Softmax损失函数如下:
其中,表示第i个深度特征,属于第yi类;d表示特征维度;m表示mini-batch的大小,n表示类的数量;
训练后二维的深度特征如下图,从图中可以看出,1)在使用softmax loss时,最后学习到的特征是可分的;2)深度特征并没有足够的可区别性,类内变化很大;因此这个不适合用于人脸识别。
3.2 The center loss
因此,如何设计一个有效的loss function,使得学习到的深度特征具有比较强的可区分性?直觉上,我们应该最小化类内的变化程度,同时保持类间的可区分性。最后,提出了center loss function,公式如下:
表示深度特征的第
个类中心。当深度特征改变的时候,
应该被更新。换句话说,我们应该把整个训练数据集考虑在内,并且在每个迭代之后计算每个类的平均特征。因此,center loss不能直接使用。
为了解决这个问题,我们做了两个必要的修改。首先,我们在每个mini-batch上更新中心点,而不是在整个训练集上。在每个迭代中,中心点通过计算每个类对应的特征的平均值得到(这种情况下,有些中心点可能不会更新);其次,为了避免被某些人为的错误标签干扰,我们使用一个尺度α来控制中心点的学习率。关于xi的Lc梯度更新公式和更新公式如下:
其中δ(condition) = 1表示满足condition。α取值范围为[0,1];
我们使用softmax loss和center loss联合训练CNN,公式如下:
从公式中可以看出来,上面的loss可以通过标准的SGD最小化。λ用于平衡两个损失函数。具体训练算法如下:
最后实验结果如下:
[论文阅读] A Discriminative Feature Learning Approach for Deep Face Recognition (Center Loss)的更多相关文章
- Center Loss - A Discriminative Feature Learning Approach for Deep Face Recognition
URL:http://ydwen.github.io/papers/WenECCV16.pdf这篇论文主要的贡献就是提出了Center Loss的损失函数,利用Softmax Loss和Center ...
- A Discriminative Feature Learning Approach for Deep Face Recognition
url: https://kpzhang93.github.io/papers/eccv2016.pdf year: ECCV2016 abstract 对于人脸识别任务来说, 网络学习到的特征具有判 ...
- 【论文阅读】Batch Feature Erasing for Person Re-identification and Beyond
转载请注明出处:https://www.cnblogs.com/White-xzx/ 原文地址:https://arxiv.org/abs/1811.07130 如有不准确或错误的地方,欢迎交流~ [ ...
- 论文阅读 | Recurrent Attentional Reinforcement Learning for Multi-label Image Recognition
源地址 arXiv:1712.07465: Recurrent Attentional Reinforcement Learning for Multi-label Image Recognition ...
- 论文阅读 | FPN:Feature Pyramid Networks for Object Detection
论文地址:https://arxiv.org/pdf/1612.03144v2.pdf 代码地址:https://github.com/unsky/FPN 概述 FPN是FAIR发表在CVPR 201 ...
- 论文阅读 Dynamic Graph Representation Learning Via Self-Attention Networks
4 Dynamic Graph Representation Learning Via Self-Attention Networks link:https://arxiv.org/abs/1812. ...
- 论文阅读 | A Curriculum Domain Adaptation Approach to the Semantic Segmentation of Urban Scenes
paper链接:https://arxiv.org/pdf/1812.09953.pdf code链接:https://github.com/YangZhang4065/AdaptationSeg 摘 ...
- DWA局部路径规划算法论文阅读:The Dynamic Window Approach to Collision Avoidance。
DWA(动态窗口)算法是用于局部路径规划的算法,已经在ROS中实现,在move_base堆栈中:http://wiki.ros.org/dwa_local_planner DWA算法第一次提出应该是1 ...
- 【论文阅读】Socially aware motion planning with deep reinforcement learning-annotated
目录 摘要部分: I. Introduction 介绍 II. Background 背景 A. Collision Avoidance with DRL B. Characterization of ...
随机推荐
- dubbo + dubbo-admin 入门级demo
整个示例中,除了dubbo的服务提供者和消费者是在windows里跑着,其他的所有程序都是在centos中. 1.准备环境 windows中jdk和java ide下载. 在centos中,创建软件安 ...
- Konckout开发实例:简单的表单提交页面
<!doctype html> <html > <head> <meta http-equiv="Content-Type" conten ...
- redis 相关知识
1. 什么是Redis Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库.Redis全称为:Remote Dictionary Ser ...
- hackme.inndy.tw - pyyy - Writeup
hackme.inndy.tw - pyyy - Writeup 0x01 反编译 1.第一次尝试的时候我直接在线反编译,部分结果如下. for (i, f) in enumerate(F): n = ...
- Access数据库自动生成设计文档
在做Access数据库设计时,常常直接在access文件中建表,建字段,然后写设计文档时,又得重新再写一遍字段和表间关系.其实access数据库自己就支持自动生成数据库文档. 操作方法如下: 数据库工 ...
- B-day7
1.昨天的困难,今天解决的进度,以及明天要做的事情 昨天的困难:美化了登录页面,对导入导出的bug进行相关修改,对用户编辑页面进行相关美化,对第三方逻辑进行相应调整. 今天解决的进度:解决了导入和导出 ...
- choose the max from numbers, use scanf and if else (v1:21.9.2017,v2:23.9.2017)
#include<stdio.h> int main(){ int a,b,c,max; printf("请输入一个数值: "); scanf("%d&quo ...
- QTableView
QTableView常用于实现数据的表格显示.下面我们如何按步骤实现学生信息表格: 一 添加表头 //准备数据模型 QStandardItemModel *student_model = ne ...
- iOS开发-OC分支结构
BOOL类型 返回值:真:YES 假:NO BOOL数据类型占一个字节的内存空间,占位符为%d. 计算机在识别时,YES就替换成1,NO就替换成0. bool是C语言中的布尔类型,返回值为true ...
- vue初尝试--组件
github代码同步网址 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添 ...