孪生网络 Siamese Network

article/2025/9/30 19:45:25

文章目录

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

孪生网络的发展

孪生网络又称为连体网络,网络中的连体是通过共享权值来实现。孪生网络最早是出现在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就是"连体的神经网络",神经网络的"连体"是通过共享权值来实现的,如下图所示:
在这里插入图片描述

左右两个网络可以是同一个,也可以是不同网络,比如一个是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 孪生神经网络–一个简单神奇的结构

http://chatgpt.dhexx.cn/article/fp51Rb4l.shtml

相关文章

论文笔记:孪生神经网络(Siamese Network)

Siamese Network 原文:《Learning a Similarity Metric Discriminatively, with Application to Face Verification》 1、四个问题 要解决什么问题? 用于解决类别很多(或者说不确定),然而训练样本的类别数较少的分类…

SiameseFC超详解

SiameseFC 前言论文来源参考文章 论文原理解读首先要知道什么是SOT?(Siamese要做什么)SiameseFC要解决什么问题?SiameseFC用了什么方法解决?SiameseFC网络效果如何?SiameseFC基本框架结构SiameseFC网络结构…

Siamese网络代码详解 训练自定义数据集 模型推理

开门见山,Siamese网络结构如下所示: 主干网络:VGG16。整个VGG16的网络结构比较简单,如下图所示,主要分为5个部分: stage1为 2次33卷积+1次22最大池化,输出特征为64通道;stage2为 2次33卷积+1次22最大池化,输出特征为128通道;stage1为 3次33卷积+1次22最大池化,输出…

深度学习(自监督:SimSiam)——Exploring Simple Siamese Representation Learning

文章目录 前言SimSiam简述实验 前言 该文章是何凯明组发表于CVPR2021上的文章,目前已获得最佳论文提名,主要解决自监督对比学习中的奔溃解问题。奔溃解即不论什么输入,特征提取器输出的特征向量都相同。 本文将简单介绍SimSiam,…

siamese模型码详解(每一句代码都有解释!!!)

最近在研究Siamese模型来进行文本相似度的计算,今天就做一期代码详解,每一行的代码都会做出相应的解释,对于初学LSTM的人来说读懂代码是非常有必要的,Siamese模型就是将两个句子(训练数据)通过embeding层&a…

孪生神经网络(Siamese Network)详解

1. 要解决什么问题? 主要解决以下两类分类问题: 第一类,分类数量较少,每一类的数据量较多,比如ImageNet、VOC等。这种分类问题可以使用神经网络或者SVM解决,只要事先知道了所有的类。第二类,分…

Siamese Network (原理篇)

1. Siamese Network 用途 Siamese网络是一种相似性度量方法,当类别数多,但每个类别的样本数量少的情况下可用于类别的识别、分类等。传统的用于区分的分类方法是需要确切的知道每个样本属于哪个类,需要针对每个样本有确切的标签。而且相对来说…

siamese(孪生) 网络

siamese 网络, 是05年Yann Lecun提出来的。它的特点是它接收两个图片作为输入,而不是一张图片作为输入。 文献资料: 摘抄自caffe github的issue697 Siamese nets are supervised models for metric learning [1]. 译:孪生网络…

Siamese Network(孪生网络)

模型结构 上图是孪生网络的简单模型结构,思路很简单,就是输入两个样本到同样的网络(参数结构相同),最后计算两个网络输出的距离,如果距离较近就认为是同一类,较远就认为是不同的类别&#xff0c…

51、目标的相似度检测模型Siamese部署rk3399pro、ncnn、mnn进行推理加速

基本思想:需要一个判断目标相似度的模型,来比对被检测目标和既定目标的相似度,测试图片仅有的几张图片,感觉一般,量化图片尽量多点对于rknn 链接: https://pan.baidu.com/s/1NFjnCBh5RqJXDxEjl9TzHg?pwdxev4 提取码:…

SPCL:Siamese Prototypical Contrastive Learning

论文链接:https://arxiv.org/abs/2208.08819 BMVC 2021 abstract CSL(Contrastive Self-supervised Learning)的一个缺点是,对比损失函数需要大量的负样本,以提供更好的理想互信息边界。 通过变大batch size来增加负样本数理,同…

Exploring Simple Siamese Representation Learning论文笔记

写在前面 大三狗随手记录,不喜勿喷。 主要思想 Siamese network常常被用来计算图像的两个增强之间的相似性,但可能会造成模型坍塌(即输出恒定)。作者在本文提出了一个非常简单的Simple Siamese network,简称Simsiam…

SiamCAR:Siamese Fully Convolutional Classification and Regression for Visual Tracking

文章目录 AbstractIntroductionProposed MethodFeature ExtractionBounding Box PredictionThe Tracking Phase 值得关注的几个问题Q1:输入的图片大小不一?Q2:在两者做相关性之前,如何得到特征图?Q3:两者的相关性计算是如何实现的&#xff1f…

TensorFlow搭建VGG-Siamese网络

TensorFlow搭建VGG-Siamese网络 Siamese原理 Siamese网络,中文称为孪生网络。大致结构如下图所示: Siamese网络有两个输入,一个输出。其中,两个输入经过相同的网络层知道成为一个n维向量,再对这个n维向量进行求距离&…

mesa 概述

技术关键词:mesa、OpenGL、dri、gpu、kmd、xsever 目录 一、mesa概述 二、mesa架构 1. 架构设计 2. 模块划分 三、mesa与linux图形系统中的其他模块的关系 四、mesa的编译 五、链接资源 总结 一、mesa概述 mesa是OpenGL、OpenGL ES、Vulkan、OpenCL的一个开…

Siamese 网络(Siamese network)

来源:Coursera吴恩达深度学习课程 上个文章One-Shot学习/一次学习(One-shot learning)中函数d的作用就是输入两张人脸图片,然后输出相似度。实现这个功能的一个方式就是用Siamese网络。 上图是常见的卷积网络,输入图片…

MISF:Multi-level Interactive Siamese Filtering for High-Fidelity Image Inpainting 论文解读与感想

深度学习模型被广泛应用于各种视觉任务的同时,似乎传统的图像处理方式已经被人们渐渐遗忘,然而很多时候传统图像处理方式的稳定性和可解释性依然是深度学习模型所不能达到的。本文是CVPR2022的一篇将传统与深度相结合进行inpainting的文章。 在图像inpa…

Siamese系列文章

说明 在学习目标追踪方面,慢慢读懂论文,记录论文的笔记,同时贴上一些别人写的非常优秀的帖子。 文章目录 说明综述类型笔记SiamFC笔记 SiamRPN笔记 DaSiamRPN笔记 SiamRPN笔记复现 SiamDW笔记 SiamFC笔记 UpdateNet笔记 SiamBAN笔记 SiamMa…

SiamRPN阅读笔记:High Performance Visual Tracking with Siamese Region Proposal Network

这是来自商汤的一篇文章 发表在CVPR2018上 论文地址 目录: 文章目录 摘要1.引言2.相关工作2.2 RPN2.3 One-shot learning 3.Siamese-RPN framework3.1 孪生特征提取子网络3.2 候选区域提取子网络3.3 训练阶段:端到端训练孪生RPN 4. Tracking as one-sho…

【度量学习】Siamese Network

基于2-channel network的图片相似度判别 一、相关理论 本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《Learning to Compare Image Patches via Convolutional Neural Networks》,本篇文章对经典的算法Siamese Networks 做了改进。学习这…