孪生网络 Siamese Network

文章目录

      • 孪生网络的发展
      • 孪生网络
        • 定义
        • 功能与用途
        • 损失函数

孪生网络的发展

孪生网络又称为连体网络,网络中的连体是通过共享权值来实现。孪生网络最早是出现在1993年的论文《Signature Verification using a ‘Siamese’ Time Delay Neural Network》用于美国支票上的签名验证,即验证支票上的签名与银行预留签名是否一致。

孪生网络是一种监督学习,用于度量学习。

随后由于硬件的限制网络技术的发展,几乎停滞不前。

  • 2010年Hinton在ICML上发表了文章《Rectified Linear Units Improve Restricted Boltzmann Machines》,用来做人脸验证,效果很好。其原理很简单,将两个人脸feed进卷积神经网络,输出same or different。
  • 2015年CVPR的一篇关于图像相似度计算的文章:《Learning to Compare Image Patches via Convolutional Neural Networks》,本篇文章对经典的算法Siamese Networks 做了改进。

以上算法都是使用孪生网络来进行图片相似度的对比。随后孪生网络开始慢慢地出现在计算机视觉目标跟踪领域

  • 2016年ECCV Fully-Convolutional Siamese Networks for Object Tracking
  • 2016年ECCV Learning to Track at 100 FPS with Deep Regression Networks
  • 2017年CVPR End-to-end representation learning for Correlation Filter based tracking

孪生网络

孪生网络最早提出在1993年的下面这篇论文中。
Bromley J, Bentz J W, Bottou L, et al. Signature verification using a “siamese” time delay neural network[J]. International Journal of Pattern Recognition and Artificial Intelligence, 1993, 7(04): 669-688.

定义

简单来说,Siamese Network就是"连体的神经网络",神经网络的"连体"是通过共享权值来实现的,如下图所示:
孪生网络 Siamese Network_第1张图片

左右两个网络可以是同一个,也可以是不同网络,比如一个是CNN,另一个是LSTM,如果左右两边权重不共享,此时叫伪孪生网络。

功能与用途

孪生网络最早用于验证支票上的签名与银行预留签名是否一致,后用于对比两个输入的相似度,随后又慢慢应用到目标跟踪领域。

孪生网络针对两个输入 input1 和 input2,分别进入神经网络 network1 和network2,通过最后的 loss 计算,可以评价两个 network 后向量的相似度,即两个 input 输入的相似度。

孪生网络由于权重共享,所以一定程度上限制了 network1 和 network2 的差异不能太大,所以通常用来处理两个输入差异不是非常大的问题,比如,对比两张图片、两个句子,两个词汇的相似度。对于输入差异很大的相似度,比如图片与相应的文字描述,文章标题与文章段落的相似度,这时候就需要使用伪孪生网络。

所以针对不同的情况,需要选择合适的网络结构和对应的损失函数

损失函数

Siamese network的输入是两个经过 network表示后的向量,在新的向量空间中,只要能判断两个向量的距离,让同类的距离越小,一类的距离越大就能达到目标。所以这里的距离可以有很多,比如欧式距离、余弦距离、指数距离都可以。

参考资料:

  1. Bromley J, Bentz J W, Bottou L, et al. Signature verification using a “siamese” time delay neural network[J]. International Journal of Pattern Recognition and Artificial Intelligence, 1993, 7(04): 669-688.
  2. SiameseNetwork孪生神经网络原理及实现
  3. 知乎专栏:Siamese NN for one-shot image recognition.
  4. Siamese network 孪生神经网络–一个简单神奇的结构

你可能感兴趣的:(论文笔记,小样本学习,孪生网络)