NORMFACE:L2 hypersphere embedding for face Verification
来源:互联网 发布:apache 压力测试工具 编辑:程序博客网 时间:2024/06/04 01:36
https://github.com/happynear/NormFace
本文的思想很简单,就是通过验证研究正则化的本质,来设计网络结构。提取问题:
1,为什么用classificatin loss,尤其是softmax loss训练cnn 特征的时候,特征正则化这么有效果?
2,为什么用softmax loss 来直接优化余弦相似度会导致 网络不能收敛?
3,怎么优化余弦相似度?
3.1 L2 正则化层。
现象:下图就是LeNET的特征减少到2个点,然后选择10000个2维的特征点投影到平面。
problem: 从左边的图中可以看见,按照欧式距离的度量方法来计算,那么f1和f2的欧式距离是小于f2和f3的欧式距离,naive idea,f1和f2的相似度远大于f2和f3的相似度,但是事实上不是如此。所以能不换个度量方式呢?比如余弦的角度作为一种不错的度量方式,也是很多先前的工作采用的度量方式。这样就存在一个gap,也就说在test的时候采用正则化的方式(余弦公式),但是train 的时候就没有采用。
identity:上面是直观的说明这个问题,那么从数学的角度解释上面现象的本质。1:softmax是本质上就是在做最大化似然函数的操作(文中另有公式证明在特征正确分类的情况下,该特征的权值增大将不会影响,分类结果。,因此softnax 的特征分布就是radial 形状的),但是这个属性我们并不需要,因此就需要normalization,来减少radial形状的影响;2:考虑bias term 的影响,并且考虑该是否增加。比较一下下面两张图,观察做了正则化前后的特征分布的变化,很显然,在做了正则化之后,特征点就分布到整个空间。
solution:现在需要做的事情就是train和test的时候给设计特征的正则化的操作。所以模型设计一个正规化层。定义就如下:
其中e的是一个正的数值主要目的就是X是0向量,其中x既可以代表f,也可以代表W的一组参数。在反向传播的过程中,关于x的梯度如下:
推到就省略了。下次补上。
我个人觉得上面文中有些推导存在逻辑上面问题。
3.3 模型正则化后,不能模型不能收敛的问题。
problem:通过上面知道normalization layer,我们将直接优化余弦相似度:
但是作者实验后发现,在经过几千部的迭代之后,模型的loss 减少的很小,而且收敛到一个很大的数值。
wy:最主要的原因是经过正则化之后,d的数值范围是在[-1,1]之间,然而一般情况下(就是不做正则化),他这个数值停留在[-20,20]或者[-80,80]的取值范围内部。这个小范围的问题将会组织概率P接近1,举个极端的例子,的数值很小,比如当n=10的时候,P=0.45;当n=1000的时候,p=0.007,即使其他的样本在他的对立面。既然softmax loss 针对the groud truth 标签的梯度是 1- Py,模型将经常尝试给大的梯度给完好分类的样本,但是那些比较不容易分类的样本可能不能得到大的梯度。(这又是为什么呢?)
定理:
假设数据集的每一类都是拥有相同的样本,而且所有样本都是正确分类。如果我们能正则化特征和权值,softmax loss 将会有一个比更加小的bound,如上。
这个bound 预示了一个问题,如果我仅仅正规化特征和权值到1,softnax loss 在训练数据也将会陷入比较大的数值。举个真实的例子,我们在casia-webface dataset 上面训练模型。loss 将会从9.27降到8.5,但是loss of bound 是8.27,这个就非常接近真实的数值。也预示着bound 是很紧的。
不解释,自己看上面把。
4,重新设计度量学习。
2 0
- NORMFACE:L2 hypersphere embedding for face Verification
- 人脸识别-NormFace: L2 Hypersphere Embedding for Face Verification
- SphereFace: Deep Hypersphere Embedding for Face Recognition
- 人脸识别--SphereFace: Deep Hypersphere Embedding for Face Recognition
- 人脸识别“SphereFace: Deep Hypersphere Embedding for Face Recognition”
- SphereFace : Deep Hypersphere Embedding for Face Recognition学习笔记
- 【论文笔记】SphereFace: Deep Hypersphere Embedding for Face Recognition
- ICCV2013-Hybrid Deep Learning for Face Verification
- FaceNet: A Unified Embedding for Face Recognition and Clustering
- FaceNet: A Unified Embedding for Face Recognition and Clustering 笔记
- FaceNet: A Unified Embedding for Face Recognition and Clustering
- 【学习】facenet:a unified embedding for face recognition and clustering_wrapper
- FaceNet: A Unified Embedding for Face Recognition and Clustering
- 读《Attribute and Simile Classifiers for Face Verification》有感
- 【深度学习论文笔记】FaceNet: A Unified Embedding for Face Recognition and Clustering
- 人脸识别“FaceNet: A Unified Embedding for Face Recognition and Clustering”
- 论文笔记 | FaceNet: A Unified Embedding for Face Recognition and Clustering
- 【论文笔记】FaceNet: A Unified Embedding for Face Recognition and Clustering
- javascript中this 的指向问题(二)
- leetcode--Triangle
- commons-fileupload实现文件上传
- 523. Continuous Subarray Sum
- wprintf或_tprintf不显示问题
- NORMFACE:L2 hypersphere embedding for face Verification
- 【Java】synchronized
- BZOJ4802: 欧拉函数 pollard_pho
- leetcode--Perfect Squares
- C++11新标准 博客目录
- 设计模式--工厂模式
- VMWare克隆或复制Linux虚拟机后eth0找不到的解决方案,vmware下复制copy或者克隆clone之后找不到网卡
- eclipse has occurred. see the log
- Android:广播一些基础梳理和小细节