最近在研究自编码器提取特征做分类和生成、重建。所以细致了解人脸识别的各种损失函数!
1、概要
人脸识别:输入一张图片,进行人脸检测,再提取关键点进行人脸对齐矫正,最后提取人脸特征,进行判别这个人是谁。判别这个人是谁,本质上是分类问题。
既然牵涉到分类,分类的目的就是不同类的类间间距够大,同一类的类内距离足够小。那么我们一步一步介绍人脸识别中常用的损失函数。
2、Softmax Loss
:将特征图扁平化后的输出映射到(0,1)之间,给出每个类的概率。假设最后一层特征图尺度是:
。再将这些特征输入给扁平化 为 [
] 个向量(这里的
是
)。下面扁平化的 [
X
] 的向量进入全连接层,全连接层的参数权重是
(
X
)(这里的
表示分类的类别数),经过全连接层处理就会得到一个 [
x
] 的向量,但是这个向量里面都每个数值的大小都没有限制,或许是无穷大,也有可能是无穷小,均有可能。因此多分类时候,往往在全连接层后面接个
层。这个层的输入是 [
x
] 的向量,输出也是 [
x
] 的向量。但是输出的每个向量都归一化到
之间。这里的
输出的向量是该样本属于每一类的概率。
公式:
上面公式中的
表示这 [
x
] 个向量中的第
个值,而下面分母表示所有值的求和。上式成功的把
归一化到
之间。优化目标:属于正确标签的预测概率最高。
下面介绍
:
上式中的
表示
层输出的第
的概率值。
表示一个 [
x
] 的向量,里面的
列中只有一个为1,其余为0(真实标签的那个为1,其余不是正确的为0)。这个公式有一个更简单的形式是:
其中的
是指当前样本的真实标签。
函数是个递增的函数,你预测错的概率会比你预测对的概率要大,因为前面加了一个负号。
图像分类里面常用
。
3、Center Loss
来自