NormFace L2 Hypersphere Embedding for Face Verification
NormFace: L2 Hypersphere Embedding for Face Verification
3 L2 NORMALIZATION LAYER
在这一部分中,我们回答了当损失函数为softmax-loss时为什么要对特征进行规范化,以及如果直接对规范化特征进行softmax-loss,为什么网络不收敛的问题。
3.1 Necessity of Normalization
图2:左:使用MNIST[14]数据集上的softmax loss优化二维特征分布。请注意,f1和f2之间的欧氏距离远小于f2和f3之间的距离,即使f2和f3来自同一个类。右:二维平面上0类的 softmax probability。最好用彩色观看。
图3:内积运算后加上偏压项时的两个选择散点图。请注意,有一个或两个 簇位于零点附近。如果我们将中心簇的特征标准化,它们会在单位圆上到处扩散,这将导致错误分类
为了直观感受softmax的损失,我们做了一个玩具实验,在MNIST数据集[14]上训练一个更深的LeNet[13]模型。我们将特征维数减少到2,并从图2中的平面上的训练集绘制10,000个二维特征。从图中我们发现,如果我们使用欧几里德距离作为度量,f2可以比f3更接近f1。因此,直接使用这些特性进行比较可能会导致性能下降。同时,我们发现,与欧氏距离或内积运算相比,特征向量之间的夹角似乎是一个很好的度量。实际上,以往的研究大多以特征向量间夹角的余弦作为相似度[31,36,38],尽管它们都使用softmax loss来训练网络。由于softmax损失最常见的相似性度量是具有非规范化特征的内积,因此在训练和测试阶段使用的度量之间存在差距。
soft max loss倾向于创建“辐射状的”特征分布的原因(图2)是softmax loss实际上充当max操作符的软版本。缩放特征向量的大小不会影响其类的分配。正式地说,我们回顾了softmax损失的定义,
其中m是训练样本的数目,n是类的数目,fi是第i个样本的特征,yi是[1,n]范围内的对应标签,W和b是softmax损失前最后一个内积层的权重矩阵和偏差向量,Wj是W的第j列,它对应于第j类。在测试阶段,我们对样本进行分类
在这种情况下,我们可以推断。利用这个不等式,我们得到以下命题。
命题1。对于以无偏差内积相似度为度量的softmax loss,令表示x被归类为i类的概率。对于任意给定的标度s > 1,如果,那么总是成立。
证明:
让t=s-1,缩放之后,我们有
这个命题意味着,软最大损失总是鼓励分离良好的特征具有更大的量级。这就是为什么softmax的特征分布是“径向的”。
但是,我们可能不需要这个属性,如图2所示。通过标准化,我们可以消除其影响,因此,我们通常使用两个特征向量的余弦来度量两个样本的相似性。但是,如果在内积运算后加入偏置项,则命题1不成立。实际上,这两个类的权向量可以是相同的,模型仍然可以通过偏差做出决策。我们在MNIST实验中发现了这种情况,散射体如图3所示。从图中可以发现,有些类的点都位于零点附近,经过规范化,每个类的点都可以分布在单位圆上,与其他类重叠。在这些情况下,特征规范化可能会破坏特定类的区分能力。为了避免这类风险,本文在 softmax loss之前不加偏倚项,尽管它通常用于分类任务。
3.2 Layer Definition
我们定义是一个小正值,防止除零。对于输入向量,L2归一化层输出归一化向量,
这里x可以是特征向量f,也可以是权矩阵的一列。在反向传播中,梯度w.r.t. x可由链式法则求得,
3.3 Reformulating Softmax Loss
使用归一化层,我们可以直接优化余弦相似度,
其中f为特征,Wi为softmax loss层之前内积层权矩阵的第i列。
然而,经过归一化后,网络无法收敛。损失只减少了一点点,然后在几千次迭代中收敛到一个非常大的值。在那之后,无论我们训练了多少次迭代,学习速度有多小,损失都不会减少。
这主要是因为归一化后的取值范围只在[-1,1],当我们使用内积层和softmax loss时,通常的取值范围是(-20,20)和(-80,80)。这个低范围问题可能会阻止概率接近1,即使样本被很好地分离。,是f的分类标签。在极端情况下, 的数值非常小。比如当n=10的时候,P=0.45;当n=1000的时候,p=0.007。即使在这种情况下,所有其他类的样本都在单位超球面的另一边。由于softmax loss相对于ground truth label的梯度为1-P,所以该模型总是试图给分离良好的样本提供较大的梯度,而不容易分类的样本可能得不到足够的梯度。
命题2。(归一化后的Softmax损失边界)假设每个类具有相同数量的样本,并且所有的样本都被很好地分离,即每个样本的特征与其对应类的权重完全相同。如果能正则化特征和权值,使其范数为L,那么softmax损失将有一个bound(下界),其中n为类的数量。
证明:假设,假设所有的样本都是分离良好的,直接使用 Wi 来表示第i类的特性。softmax loss定义:
这个公式与(1)式不同,因为我们假设每个类都有相同的样本数量。通过分子分母同时除以
由于 是凸函数,
当且仅当所有 具有相同的值,不等式取等号,也就是来自不同类的features具有相同的距离。不幸的是,在d维空间中,只有d + 1个唯一的顶点来确保每个顶点有相同的距离。所有这些顶点将形成一个正则d-单纯形[26],例如,正则2-单纯形是一个等边三角形,正则3-单纯形是一个正则四面体。在人脸验证数据集中,由于类数通常比特征维数大得多,这种等式在实际应用中是不成立的。
类似于 ,当 ,softplus函数 也是一个凸函数,所以
所以
不等式取等号当且仅当
这个界意味着,如果我们仅仅将特征和权重规范化为1,即使不应用正则化,softmax损失也将被困在训练集上的一个非常高的值。作为一个真实的例子,如果我们在CASIA-Webface数据集(n = 10575)上训练模型,损失将从大约9.27减少到大约8.50。这个条件的界是8.27,非常接近真实值。这表明我们的束缚非常紧密。为了对这个界有一个直观的认识,我们还在图5中绘制了这个界作为范数的函数的曲线。
图5:softmax loss的下界与特征和权重的规范的函数。注意,x轴是模的平方,因为我们在实践中直接在余弦距离上添加了缩放参数。
在我们得到这个界之后,收敛问题的解就很清楚了。通过将特征和权重列归一化为一个更大的值而不是1,softmax的损失可以继续减少。在实践中,我们可以通过在余弦层之后直接添加一个缩放层来实现这一点。缩放层只有一个可学习的参数。
我们还可以将它修正为一个足够大的值,如图5所示,对于不同的类号来说是20或30。然而,我们更倾向于通过反向传播来自动学习参数,而不是引入一个新的超参数。最后,定义了余弦距离下的 softmax loss 为
来说是20或30。然而,我们更倾向于通过反向传播来自动学习参数,而不是引入一个新的超参数。最后,定义了余弦距离下的 softmax loss 为
[外链图片转存中…(img-vqBUMhA4-1594114681597)]
其中 是标准化后的 x