主要内容
这是一篇介绍Siamese网络的论文,提起Siamese网络,一般都会引用这篇文章和《Hamming Distance Metric Learning》。本文中,作者主要提出了一种方法是:如何从数据中寻找一种判断相似性的函数,即学习一种相似度度量的方法。方法使用的场景是:类别数量很多,在训练中并不知道类别,而且每种类别的训练样本数量很少。解决的想法是:学习一种将输入空间映射到目标空间的函数,使得目标空间中的L1范数近似于输入空间的语义距离。网络性能的评价是:错误接受的百分比和错误拒绝的百分比。学习的过程是:最小化一个有判别能力的损失函数,使相同类别物体的度量小,不同类别物体的度量大。总体思想是一个Metric Learning,即通过距离决定样本之间的关系,距离公式如下:
其中参数为$ \omega $,$X_{1}$和$X_{2}$是一对比较样本。
网络结构
上图中参数w的两边是完全相同的网络结构,文中使用卷积网络,并共享相同的权值w,输入为一对图像(Y,X1,X2),其中Y为标签,0为相似,1为不相似。针对不同的输入,分别输出低维空间的结果为$G_{w}(X_{1})$和$G_{w}(X_{2})$且由输入经过网络映射所得到,最终将这两个输出结果使用能量函数$E_{w}$进行比较。
网络的损失函数,即Siamese网络中的Contrastive Loss为:
其中p为训练样本数量,$L_{G}$只计算正样本组合的损失,$L_{I}$只计算负样本组合的损失。通过这样分开的设计,可以使当要最小化损失函数时,减少正样本对的能量,增加负样本对的能量,能量也可以理解为距离,距离越小说明两个样本越相似。简单实现的话,只要将正样本组合损失函数设计为单调增加,将负样本组合损失函数设计为单调减少,但有一个前提是不同类别的图像对的距离肯定比相同类别的图像对的距离小。即得到了下列条件的条件一。
论文中给出了三个条件和一个定理:
之后为了满足这些条件,论文中使用$H(E_{w}^G,E_{w}^I) = L_{G}(E_{w}^G) + L_{I}(E_{w}^I)$作为总体的损失函数,并用下图说明了收敛性:
之后给出一个精确的对单个样本的损失函数,即对$ L_G $和$ L_I $的定义。此网络最重要的部分就是对这两个单个损失函数的定义,本文中只是给出了一个最初的设想,现在已经不常用了。
其中$G_{w}$,$E_{w}$是有界的,Q为常数,是$E_{w}$的上界,使用获得的损失值用梯度反转去更新共享的权值w。
文中卷积网络的设计参数如下,基础结构按以下顺序。
- $ C_1 $特征图个数为15,大小为$ 50\times40 $,卷积核大小为$ 7\times7 $,训练参数个数为750。
- $ S_2 $特征图个数为15,大小为$ 25\times20 $,感受野大小为$ 2\times2 $,训练参数个数为30。
- $ C_3 $特征图个数为45,大小为$ 20\times15 $,卷积核大小为$ 6\times6 $,训练参数个数为7128。其中部分连接到了$ S_2 $。
- $ S_4 $特征图个数为45,大小为$ 5\times5 $,感受野大小为$ 4\times3 $,训练参数个数为100。
- $ C_5 $特征图个数为250,大小为$ 1\times1 $,卷积核大小为$ 5\times5 $,训练参数个数为312750。全连接到 $ S_4 $。
- $ F_6 $单元大小为50,训练参数个数为12550。
总结
本文主要提出了一种具有判别能力的通过学习复杂的相似度度量的方法,非常适合于那些类别特别多,但训练过程中没有类别信息的任务,同时提出了一种损失函数可以达到上述的效果。本文提出的Siamese网络用于判别两个物体是否相似的任务上具有很好的效果,如目标跟踪任务。