II.方法
A.所推出方法的概览
Fig.1展示了暹罗神经网络的总体结构,使用了神经网络作为基础模型,它由几个层组成(包括卷基层、池化层还有全连接FC层),其中每一部分都在整个体系中起到了重要作用,显然,在取得图像特征这一方面,卷基层是最重要的一个。总体上来说,浅层的卷积层的到来低层次的特征,更深一些的卷积层俘获了相对高层次的特征。由前一层产生的特征图谱被送至后面的层,不同的特征图在同一个卷积层中使用不同的卷积核来提取各种视觉特征。池化层用来削减特征表示的维度并创建小旋转的不变性。最大池化是在现在广泛使用的池化方法,它计算处在一个特征图中附近位置的最大值。全连接层是整个结构中处在最后的层级,用来从前面的层之中生成一个比较好的信息的归纳。
Fig.1 网络模型结构Fig.1 暹罗神经网络模型的结构。从两个相同类别中找到的两个图像被称之为一个 积极对 (Positive Pair),而来自于不同类的图像被称为 消极对 (Negative Pair),积极或是消极的图像对是我们模型中的输入。网络由两个鉴别CNN、三个额外的卷积层还有一个平方层(Square Layer)组成。一个通行的学习规则在特征、中使用,通过CNN模型进行学习。非参数的平方层把和当作输入,输出的则是,最终得到了输入对图像的相似度()。
B.分类Loss
我们使用了交叉熵损失作为分类Loss,来做标签检测,这个东西应该这么计算:
作为运算符号,表示卷积的意思,而 是一个维度为4096的特征矢量,这些矢量是通过CNN学习到的。表示附加卷积层的参数。基于文献[21]中所做的工作,表示目标类,表示预测为该目标类的概率。因此对于目标类, 而。
C.鉴别Loss
我们仍然使用交叉熵损失作为匹配预测的鉴别Loss,这个东西应该这么算:
这里和是高层特征,它们由CNN模型从一个输入端图像对中得到,它们都是4096维的特征矢量。而平方层[21]是非参数的,用来计算出,算式如下:。然后,附加的卷积层和一个Softmax函数一起把嵌入到一个二维的矢量中,其作用是预测这两个图像属于同一类型的可能性,并且,。如说输入图像恰恰是相同类型,此时而(或者有其他表示方式)。
D.正则项
在鉴别模型中,平方层被用来比较两个输入图像的特征平方之间的差距有多大,我们希望相似的图像对能够在距离上表现得小一点,而不太相似的对能有比较大的距离。收到文献[26]的启发,我们使用了特征嵌入f1和f2,计算了给出训练样例(xi,xj)的欧式距离,距离的计算被如下定义:
我们设置了一个边缘参数 τ 把相似的图像对从不相似的图像对中区别出来,作用在特征空间上。如果(xi,xj)来自于相同的场景,它们的特征距离应该比参数 τ 小得多,如果来自不同的场景,距离值就应该比参数 τ 大很多。给出的一个训练样例(xi,xj),其目标表达应为(yi,yj)。我们的距离应该这么算:
和文献[26]中所做的不同,我们的模型只致力于通过参数 τ 把来自于相同场景输入对的特征距离进行最小化,这比起文献[26]中所做的度量学习正则化来说,变得简单了一些,所以我们对于距离Loss和正则化都有一定的优化,这样算:
总结一下,我们的暹罗卷积神经网络被训练用来最小化三个Loss,包括三个交叉熵Loss和一个距离Loss,这种结合增强了我们模型学习判别特征,所以相同场景的图像距离值尽量小,而不同场景的图像则距离尽可能远。
网友评论