这篇论文提出了一个可以用来训练一个用于衡量数据间的相似度模型的方法。它可以用于一些进行识别或者验证的应用程序,并且该方法可以用于训练样本种类非常多、单个类别样本数量非常少的情况。在验证类型的应用中,即使样本类别在原来训练数据中没有出现过也可以使用。

文章目录

  1. 引言
  2. 背景
  3. 正文
    1. 方法定义
    2. 框架
      1. 网络结构
      2. Loss 函数
    3. 实验
      1. 数据集
      2. 实验结果
  4. 引用

引言

这篇论文提出了一个方法,可以用来训练一个用于衡量数据间相似度的模型。这个方法可以用于一些进行识别或者验证的应用程序,并且该方法可以用于训练样本种类非常多、单个类别样本数量非常少的情况。在验证类型的应用中,即使样本类别在原来训练数据中没有出现过也可以使用。

该方法的基本思想是学习一个将输入数据映射到一个目标空间的函数,这个函数所输出的目标空间的中的表示样本之间的距离(L1 范数)可以反映样本在原输入空间中的语义距离。

论文中使用该方法进行人脸验证的任务。模型的学习过程最小化了一个判别损失函数,它可以让来自同一个人的相似度大(距离小),来自不同人的图片相似度小(距离大)。

背景

在这篇论文提出之前,传统的使用判别方法进行分类的算法(比如神经网络、SVM等)基本都需要所有的类别在训练的时候都是已知的。并且这些方法所能承受的样本类别都非常少(大概在100左右)。这就导致了这些方法无法在类似人脸验证这类任务(样本类别及其庞大、单个样本的数量又不多)中使用。因此,本文就提出了一个基于相似性度量的方法来解决这个问题。

正文

方法定义

给定一个可导函数族$G_W(X)$, $W$为函数参数,目标是找到一个$W$满足相似度度量$E_W(X_1, X_2) = \Vert G_W(X_1) - G_W(X_2) \Vert$在$X_1, X_2$属于同一个类别时比较小,属于不同类别时比较大。

系统的输入是从训练集中采样出来的一对模式,$loss$函数用来在$X_1, X_2$属于同一类别时最小化$E_W(X_1, X_2)$,属于不同类别时最大化$E_W(X_1, X_2)$。

文中使用的模型采用了孪生网络结构,也就是使用了两个一样的网络来处理$X_1, X_2$ (W在两个网络中是共享的,一摸一样)。在实际设计网络的时候可以只用一个网络产生两个输出。

框架

人脸验证人物就是需要判断给定的一个代表某人的图片和一个标签,然后判断该图片中的人是否和标签一致。文中使用两种指标来衡量结果错误接受(false accept)错误拒绝(false reject)

本文所给的孪生网络结构如下图所示:

孪生网络结构

上图中$X_1, X_2$表示两个图片。我们用$Y$表示两个图片是否属于同一个人:

$$ Y = \begin{cases} 0, & X_1, X_2 \text{属于同一人}\\ 1, & X_1, X_2 \text{属于不同人}\\ \end{cases} $$

$W$为左右两个卷机神经网络共享的权重,$G_W(X_1), G_W(X_2)$可以看作目标低维空间中的两个点。$E_W(X_1, X_2) = \Vert G_W(X_1) - G_W(X_2) \Vert$为衡量$X_1, X_2$相似度的能量函数,它是一个标量。

网络结构

由于前文给出的通用结构对于$G_W(X)$的选择没有任何要求,文中实验用了多种网络结构,给出最好性能的网络是卷积神经网络结构:$C_1 \to S_2 \to C_3 \to S_4 \to C_5 \to F_6$,其中$C$表示卷积层,$S$表示采样层,$F$表示全连接层,具体网络结构可以参考论文。

Loss 函数

Loss 函数的定义如下:

$$ L(W, Y, X_1, X_2) = (1-Y)\frac{2}{Q}(E_W)^2 + (Y)2Qe^{-\frac{2.77}{q}E_W} $$

其中$Q$是一个常数,被设置为$E_W$的上界。显然,当$Y=0$时,降低$loss$需要降低能量$E_W$;而$Y=1$时,降低$loss$需要增加能量$E_W$。这个与我们的训练目标一致:同一人时$E_W$小,而不同人时$E_W$大。

关于这个loss函数有两点需要注意一下:

  1. 关于常数$Q$的选择。本文提出的方法有效的一个前提是:对于给定的同一类别的对$(X_1, X_2)$以及不同类别的对$X_1, X_2'$,存在$m$,$E_W(X_1, X_2) + m < E_W(X_1, X_2 ')$成立。 这个常数Q的选择需要确保$loss$函数梯度的反方向在$E_W(X_1, X_2) + m = E_W(X_1, X_2')$这条线上应该指向区域$R$,如下图所示:x这样可以避免学习函数收敛到这个边界上。图中$E_W^G$表示相同样本的能量,$E_W^I$表示不同类别样本的能量。具体的证明过程大家感兴趣可以去看原论文。
  2. 使用平方范数替换L1范数不适合。如果使用平方范数来计算$G_W(X_1) - G_W(X_2)$的值,这会导致在能量值趋于零的时候,能量的梯度也趋于零,这样模型就无法进行学习了。

实验

数据集

论文中进行了两轮实验,使用数据集如下:

  1. AT&T的人脸数据集$[2]$
  2. 普渡大学的人脸数据集[3]混合了灰阶的Feret数据集[4]。

实验结果

1

上图给出了在指定错误接收率的条件下的错误拒绝率分布。

第一个实验具体结果如下:

2

第二个实验具体结果如下:

3

引用

[1] Chopra, Sumit, Raia Hadsell, and Yann LeCun. "Learning a similarity metric discriminatively, with application to face verification." 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05). Vol. 1. IEEE, 2005.

[2] http://www.uk.research.att.com/facedatabase.html

[3] A. M. Martinez and R. Benavente. The ar face database. CVC Technical Report, 24, June 1998. http://rvl1.ecn.purdue.edu/=aleix/aleix_face_DB.html

[4] http://www.itl.nist.gov/iad/humanid/feret/


[本]通信工程@河海大学 & [硕]CS@清华大学
这个人很懒,他什么也没有写!

1
487
0

更多推荐


2022年11月30日