A Discriminative Feature Learning Approach for Deep Face Recognition
url: https://kpzhang93.github.io/papers/eccv2016.pdf
year: ECCV2016
abstract
对于人脸识别任务来说, 网络学习到的特征具有判别性是一件很重要的事情. 增加类间距离, 减小类内距离在人脸识别任务中很重要.
那么, 该如何增加类间距离, 减小类内距离呢?
通常, 我们使用 softmax loss 作为分类任务的loss, 但是, 单单依赖使用 softmax 监督学习到的特征只能将不同类别分开, 却无法约束不同类别之间的距离以及类内距离. 为了达到增加类间距离, 减小类内距离的目的, 就需要额外的监督信号, center loss 就是其中一种.
center loss 包含两个流程:
- 学习一个类别的深度特征的中心
- 使用该中心约束属于该类别的特征表示

最常用的CNN执行特征学习和标签预测,将输入数据映射到深度特征(最后隐藏层的输出),然后映射到预测标签,如上图所示。最后一个完全连接层就像一个线性分类器,不同类的深层特征通过决策边界来区分。
center loss design
如何开发一个有效的损失函数来提高深度学习特征的判别力呢?
直观地说,最小化类内方差同时保持不同类的特征可分离是关键。
center loss 形式如下:

\(c_{y_i} \in R^d\) 为第\(y_i\)类的特征表示的中心
center 更新策略

total loss 函数


toy experiment 可视化


超参设置实验
\(\lambda \quad\) softmax 与 center loss的平衡调节因子
\(\alpha \quad\) center 学习率, 即$ center -= \alpha \times diff$

experiment result

thought
就身边的哥们用 center loss 的经验来看, center loss 在用于非人脸识别的任务上, 貌似效果一般或者没有效果. 可能只有像人脸任务一样, 类内深度特征分布聚成一簇的情况下, 该 loss 比较有效. 如果分类任务中, 类内特征差异比较大, 可能分为几个小簇(如年龄预测), 该 loss 可能就没有啥用处了. 而且 center loss 没有做特征归一化, 不同类的特征表示数量级可能不一样, 导致一个数量级比较大特征即使已经很相似了, 但是其微小的差距也可能比其他的数量级小的特征的不相似时的的数值大.
而且, 学习到的 center 只用于监督训练, 在预测过程中不包含任何与 center 的比较过程.
就学习 center 这一思想而言, 感觉 cosface 中提到的 large margin cosine loss 中用于学习 feature 与权重之间的 cosine 角度, 比较好的实现这种学习一个 center(以 filter 的权重为 center), 然后让 center 尽量与 feature 距离近的思想可能更好一点, 即能在训练时规范 feature 与 center 之间的距离, 又能在预测时候, 通过与 center 比对 cosine 大小来做出预测.
A Discriminative Feature Learning Approach for Deep Face Recognition的更多相关文章
- [论文阅读] A Discriminative Feature Learning Approach for Deep Face Recognition (Center Loss)
原文: A Discriminative Feature Learning Approach for Deep Face Recognition 用于人脸识别的center loss. 1)同时学习每 ...
- Center Loss - A Discriminative Feature Learning Approach for Deep Face Recognition
URL:http://ydwen.github.io/papers/WenECCV16.pdf这篇论文主要的贡献就是提出了Center Loss的损失函数,利用Softmax Loss和Center ...
- 论文笔记:Learning how to Active Learn: A Deep Reinforcement Learning Approach
Learning how to Active Learn: A Deep Reinforcement Learning Approach 2018-03-11 12:56:04 1. Introduc ...
- 论文笔记之:Heterogeneous Face Attribute Estimation: A Deep Multi-Task Learning Approach
Heterogeneous Face Attribute Estimation: A Deep Multi-Task Learning Approach 2017.11.28 Introductio ...
- paper 124:【转载】无监督特征学习——Unsupervised feature learning and deep learning
来源:http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio c ...
- 论文笔记之:From Facial Parts Responses to Face Detection: A Deep Learning Approach
From Facial Parts Responses to Face Detection: A Deep Learning Approach ICCV 2015 从以上两张图就可以感受到本文所提方法 ...
- 论文笔记:Deep feature learning with relative distance comparison for person re-identification
这篇论文是要解决 person re-identification 的问题.所谓 person re-identification,指的是在不同的场景下识别同一个人(如下图所示).这里的难点是,由于不 ...
- 转:无监督特征学习——Unsupervised feature learning and deep learning
http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio clas ...
- [转] 无监督特征学习——Unsupervised feature learning and deep learning
from:http://blog.csdn.net/abcjennifer/article/details/7804962 无监督学习近年来很热,先后应用于computer vision, audio ...
随机推荐
- C语言之输出空心棱形图案
#include<stdio.h> #include<stdlib.h> void main() { int n,j,i; /*i为行数,j为每行中的项数*/ printf(& ...
- java易混淆知识小结
1.java的基本数据类型,及所占字节和范围 byte: 字节型,占1个字节,8位,范围是 -2^7 ~ 2^7-1 short:短整型,占2个字节,16位,范围是 -2^15 ~ 2^15 ...
- HashMap源码分析(基于jdk8)
我们知道在jdk7中HashMap的实现方式是数组+链表.而在jdk8中,实现有所变化,使用的是数组+链表+红黑树实现的. 当链表长度达到8时转化为红黑树. static final int TREE ...
- Appium 客户端类库
Appium 支持以下语言的客户端类库: 语言 Ruby Python Java JavaScript PHP C# Objective-C 锁定注意,一些方法类似 endTestCoverage() ...
- Vim安装使用和配置
卸载vim sudo apt-get remove --purge vim (--purge 是完全删除,会连配置文件一起删除) 也可以使用yum等其它方式安装 ,如果提示apt-get命令不存在可以 ...
- C#中 SQL语句
SQL语句 SELECT STUFF(( (SELECT ',{' ),)) ),)) ),)) +'}' FROM ZSJTTD_HouseBuilding hb ,,'' ) HouseBuild ...
- tomcat server.xml结构
所有xml文件使用的文件头 <?xml version='1.0' encoding='utf-8'?> 2 <Server port="8005" shutdo ...
- [pip]upgrade outdated pip package on windows / 在windows上更新所有过时的pip包
首先更新pip自身: python -m pip install -U pip 查询过期包: pip list --outdated --format=columns Package Version ...
- ab命令
ab -V -n在测试会话中所执行的请求个数.默认时,仅执行一个请求.请求的总数量 -c一次产生的请求个数.默认是一次一个.请求的用户量 -t测试所进行的最大秒数.其内部隐含值是-n 50000,它可 ...
- yarn安装使用
npm install yarn -g // 到指定文件夹 yarn init // 生成package.json文件 yarn init报错 Can't answer a question unle ...