一、人脸识别的难点
- 不同人脸类别之间的界限不明显
- 脸与脸之间相似度很高,难以区分
- 如何解决人脸特征分类困难的问题
二、人脸识别损失函数
1.Softmax 和 Softmax Loss
-
Softmax
S j = e a j ∑ k = 1 T e a k S_j=\frac{e^{a_j}}{\sum^T_{k=1} e^{a_k}} Sj=∑k=1Teakeaj
a j a_j aj表示当前输入的类别特征, a k a_k ak表示从第一个到最后一个的类别特征 -
Softmax Loss
交叉熵损失函数: L = − ∑ j = 1 T y j l o g S j L=-\sum^T_{j=1}y_j logS_j L=−j=1∑TyjlogSj
y j y_j yj为标签, S j S_j Sj表示每个输入类别属于真实类别的概率, − l o g S j -logS_j −logSj为信息熵
由于 y i y_i yi是0和1,所以公式化简为 L = − l o g S j L=-logS_j L=−logSj,y属于真实类别(0和1), l o g S logS logS是对概率(0, 1)求对数(-∞, 0),负对数就是(0, +∞)
概率在0到1之间,可见,概率越小,log值也越小,而-Iog值则越大。概率越大,-log值 越小。所以只需要优化-log值,让其最小,就能找到概率最大的预测值。
2.Softmax Loss 和 Cross-Entropy Loss
E
=
−
∑
j
=
1
T
y
i
l
o
g
P
j
E=-\sum^{T}_{j=1}y_ilogP_j
E=−j=1∑TyilogPj
当cross entropy的输入P是softmax的输出时,cross entropy等于softmax loss。
P
j
P_j
Pj是输入的概率向量P的第j个值,所以如果你的概率是通过softmax公式得到的,那么cross entropy就是softmax loss。
3.Minst数据 Softmax Loss 特征分类
只能区分类间距,无法拉近类内距
4.Siamese Network孪生神经网络
5.Triplet Loss
两个正样本特征,一个负样本特征,使用其中一个正样本点和另外两个特征做距离上的比较
6.Center Loss
-
为了使模型学到的特征判别度更高,在原有的Softmax Loss基础上加了一种新的辅助损失函数Center Loss
求导公式
由于不能直接获得C,所以将其放到网络中随机生成,在每个batch里更新一次C,然后将这个梯度形式加到Center上,做梯度下降
这里再增加一个scale度量α,使center不会抖动,也就是学习率,α一般取0.5 -
如何提取数据特征
-
改进Center Loss
λ=0.003和α=0.5时对人脸识别人物效果最佳 -
缺点
- 类别较多时,对硬件要求较高
- L2范数的离群点对loss的影响较大
- 类内距太大
- 只适合同类样本差异不大的数据
7.欧氏距离
用于衡量个体在空间上存在的距离,距离越远说明个体差异越大。衡量的是多维空间中各点之间的绝对距离。
因为计算的是基于各维度特征的绝对值,所以欧氏距离需要保证各维度指标在相同刻度级别,比如对身高、体重两个单位不同的指标使用欧氏距离可能结果失效。
8.余弦距离
用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上
通常用于正空间,一般取值为0-1之间
余弦距离就是用1减去我们的余弦相似度获得的,余弦相似度的取值范围是[-1,1],方向相同的两个向量之间的相似度是1,余弦距离取值范围是[0,2]
要区分两个向量,最好的办法就是增大角度 θ+ m,或者减小相似度系数 cos(θ)- m。
9.欧氏距离与余弦相似度的区别
两个向量的余弦相似度不能代替两个点的距离,距离越小,相似度越大,但相似度越大,距离不一定最小
欧式距离能够体现个体数值的绝对差异,更多用于需要从维度的数值大小中体现差异的分析,如使用用户行为指标分析用户价值的相似度或差异
余弦相似度更多从方向上区分差异,对绝对数值不敏感,更多用于使用用户对内容评分来区范围内用户兴趣的相似度和差异,同时修正用户间可能存在的度量标准不统一的问题
举个例子:
用户对内容评分,按5分制,X和Y两个用户对两个内容的评分分别为(1,2) 和(4,5),使用余弦相似度得到的结果是0.98,两者极为相似。但从评分上看x似乎不喜欢这个内容,而Y则比较喜欢,余弦相似度对数值的不敏感导致了结果的误差,需要修正这种不合理性就出现了调整余弦相似度,即所有维度上的数值都减去一个均值。比如X和Y的评分均值都是3,那么调整后为(-2,-1)和(1,2),再用余弦相似度计算,得到-0.8, 相似度为负值并且差异很大,但显然更加符合现实。
10.余弦相似度与欧氏距离的等价性
标准化后的两个向量,它们的欧氏距离的平方与余弦相似度距离成正比,标准化后的向量间的区别主要体现在方向上
余弦相似度在某种程度上与 L2标准化的欧式距离相同
11.L-SoftmaxLoss
12.A-SoftmaxLoss
在训练过程中,归一化权值||W||=1,并将偏置biases设置为0
为了进一步将强特征的可判别性,将角度系数m加入到损失函数中,m一般是一个大于1的整数
13.AM-SoftmaxLoss
用减小相似度系数的方式增大向量之间的距离
对f进行归一化处理,乘上缩放系数s(默认为30)
第一个m是批次,第二个m是超参数,A-Softmax是用cosθ乘以m,而AM-Softmax使用cosθ减去m,两者最大不同之处是一个是角度距离,一个是余弦相似度距离
14.Arc-SoftmaxLoss
根据cos性质,优化角度距离比优化余弦距离更有效果,因为余弦距离相对更密集。增大角度比减小相似度距离对分类的影响更加直接
公式里第一个m是批次,第二个m是超参数
注:反三角余弦计算出来的是弧度,而非角度,实际增加的m也是弧度