【模型解读】深度学习网络之Siamese Network网络

Siamese网络(孪生神经网络)详解 SiameseFCSiamese网络(孪生神经网络)本文参考文章:Siamese背景Siamese网络解决的问题要解决什么问题?用了什么方法解决?应用的场景:Siamese的创新Siamese的理论Siamese的损失函数——Contrastive Loss损失函数的选择论文中Contrastive Loss目前的Contrastive Loss:Siamese的思考Siamese的思想总结Siamese network是双胞胎连体,整一个三胞胎连体行不行? Siamese网络(孪生神经网络) 本文参考文章 阅读详情

文章首发于微信公众号《有三AI》

【模型解读】深度学习网络只能有一个输入吗

继续我们之前的专栏《模型解读》,今天说多输入网络,很久没写了因为实在是有更重要的事情。

平常我们所见的深度学习模型,都是输入一个图像或者视频序列,输出分类,分割,目标检测等结果,但是还有一种模型需要输入两张,或者多张图片,这就是多输入网络结构。

作者 | 言有三

编辑 | 言有三

 

01 多输入网络的应用背景

首先我们说说在什么情况下,需要多个输入,只以纯图像应用为例。

1.1 图像验证与匹对

早在上个世纪90年代的时候,LeCun等研究人员就开始利用神经网络陆续进行一些研究,比如我们熟知的大名鼎鼎的LeNet5,但这绝不是唯一,今天我们来说他们的另一种网络结构,Siamese Network,网络细节我们后面这些,这里先说应用背景。

签名验证:

无独有偶,还是从手写字开始,同样是用于银行,用于验证签名是否一致。两个网络都是同样规格的图像输入,最后输出一个相似度。

看到这里,你应该能够想起来如今它的更加广泛的应用,没错,就是人脸验证,或者说人脸识别了。

其实用的时候都不需要两个输入,因为可以建立一个离线数据集专门用于检索匹配。

而且,你可以在此基础上拓展出非常多的玩法,什么夫妻脸之类的。

1.2 目标跟踪

目标跟踪是一个什么过程?就是在时序帧中搜索目标的过程,本质上就是检索。

不管是传统的目标跟踪中的生成模型和判别模型,还是用深度学习来做目标跟踪,本质上都是来求取目标区域与搜索区域的相似度,这就是典型的多输入。

用深度学习来做,就是一个小图像和一个大图像分别输入网络,输出相似度。

1.3 排序

还有一类问题,可以用多输入网络来做,那就是排序。有的时候,我们很难估计一个人的实际年龄或者颜值,但是估计相对年龄和颜值就简单多了。

而且,在此之上,做些什么谁更可爱,谁更成熟之类的,可以想出无数花样,解释的通就行了。

 

02 多输入网络

在这里,给大家介绍两个常见的网络,一个是siamese网络,一个是triplet网络。

2.1 siamese network                        

Siamese本意是“暹罗”人或“泰国”人,后在英语中指“孪生”、“连体”,这是一个外来词,来源于十九世纪泰国出生的一对连体婴儿,具体的故事我们就不说了,挺有看头,大家可以自己去了解。

顾名思义,有两个输入,两个网络,根据这两个网络是否共享权重,可以分为真孪生网络siamese network和伪孪生网络pseudo-siamese network。

真孪生网络siamese network的结构示意图如下:

伪孪生网络pseudo-siamese network的结构示意图如下:

可以看出差别就在于是否共享权重,loss的选择就多了,相似度计算方法就多少,它的计算方法就有多少,交叉熵,欧式距离,余弦距离等都很常用。

那么是否需要共享权重呢?这就看研究的问题而定了,很明显不共享权重有更大的发挥空间,这个问题本文不展开讲。

2.2 triplet network

如果将上面的二输入拓展为三输入怎么样?做人脸识别的同学想必不陌生。

没错,就是triplet network。

大家都知道,训练人脸识别网络的时候需要输入图像对来判断是不是同一个人,loss是两个样本之间的相似度。不过,光是相似度是不够的。

我们以前有一篇文章,专门讲述了人脸识别中的softmax损失的变种,可以回顾。

【技术综述】一文道尽softmax loss及其变种

大家在研究的是同一个问题,如果想得到更优良的性能,不仅要将正负样本区分开,还要让类内更加紧凑(方差小),类间更加疏远(方差大)。

triplet network将输入改成三个,训练的时候使用一个正例+两个负例,或者一个负例+两个正例。

训练的目标就是上面的:同类别间的距离尽可能的小,不同类别间的距离尽可能的大。

基准样本x和负样本x-之间的距离定义如下:

基准样本x和正样本x+之间的距离定义如下:

然后优化目标就等于:

我们假如网络训练的特别好,令margin=1,此时

那么上面的距离:

损失也就趋向于0,当然这种要求是不可能达到的,也不合理,因为有的正样本的确不那么相似,有的负样本的确很相似,强行学习过拟合风险就增加了。

所以实际用的时候,这个margin应该取一个合理的值,而且样本的选择也很有技巧,所以triplet network没有看起来那么好训练。Anyway,这还是很优雅的思想的。

今天就这么多,更多的并行的输入也是有的,就作为大家的延伸阅读吧。

 

总结

好像文章越写越简单了,不过这是好事。

咱们这个系列未完待续,尽情期待,不要忘了领取我们的卡片噢。

 

深度学习模型

 

转载文章请后台联系

侵权必究

本系列的完整目录:

【模型解读】从LeNet到VGG,看卷积+池化串联的网络结构

【模型解读】network in network中的1*1卷积,你懂了吗

【模型解读】GoogLeNet中的inception结构,你看懂了吗

【模型解读】说说移动端基准模型MobileNets

【模型解读】pooling去哪儿了?

【模型解读】resnet中的残差连接,你确定真的看懂了?

【模型解读】“不正经”的卷积神经网络

【模型解读】“全连接”的卷积网络,有什么好?

【模型解读】从“局部连接”回到“全连接”的神经网络

【模型解读】深度学习网络只能有一个输入吗

【模型解读】从2D卷积到3D卷积,都有什么不一样

【模型解读】浅析RNN到LSTM

感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注有三公众号 有三AI!

 

Siamese Network (原理篇) 1. Siamese Network 用途       Siamese网络是一种相似性度量方法,当类别数多,但每个类别的样本数量少的情况下可用于类别的识别、分类等。传统的用于区分的分类方法是需要确切的知道每个样本属于哪个类,需要针对每个样本有确切的标签。而且相对来说标签的数量是不会太多的。当类别数量过多,每个类别的样本数量又相对较少的情况下,这些方法就不那么适用了。其实也很好理解,对于整个数据集... 阅读详情

相关推荐

Siamese网络

Siamese算法,通常也称为“孪生网络”(Siamese Network),是一种在计算机视觉和深度学习领域中广泛应用的算法。它主要用于处理需要比较两组输入数据相似性或差异性的任务,如人脸验证、图像匹配、文本相似度评估等。

reset2021的博客 1402

孪生网络(Siamese Network)

孪生网络(Siamese Network)是一类神经网络结构,它是由两个或更多个完全相同的网络组成的。孪生网络通常被用于解决基于相似度比较的任务,例如人脸识别、语音识别、目标跟踪等问题。孪生网络的基本思想是将输入数据同时输入到两个完全相同的神经网络中,这两个网络共享相同的权重和参数。通过学习输入数据在这两个网络中的表示,孪生网络可以计算出两个输入样本之间的相似度。

永远相信美好的事情即将发生 2万+

siamese(孪生)网络

siamese网络,是05年YannLecun提出来的。它的特点是它接收两个图片作为输入,而不是一张图片作为输入。下面介绍原始的孪生网络:目的:比较两幅图片是否相似,或者说相似度是多少输入:两幅图片输出:一个相似度数值其实我觉得,用“计算相似度”这个词有点不合适,我觉得应该翻译为匹配程度。因为文献所采用的训练数据中,如果两张图片匹配,输出值标注为y=1,如果两张图片不匹配,那么训练数据标注为y=-1,也就是说,这个训练数据的标注方法,根本就不是一个相似度数值,而是一个是否匹配的数值。我们打个比方,有三样物体:钢笔、铅笔、书包,那么在训练数据中,就把钢笔和铅笔标注为y=1,而不是用一个相似度数值

Siamese network详解和TensorFlow实现(附源码)

下图是Siamese network的基础架构,其中Input 1和Input 2是需要比较相似度的输入,它们通过两个具有相同架构、参数和权重的相似子网络(Network 1和Network 2)并输出特征编码,最终经过损失函数(Loss)的计算,得到两个输入的相似度量。例如,第一个分量的单位是kg,第二个分量的单位是g,这意味着所计算的距离可能会根据特征的单位发生倾斜。而马氏距离的目的,就是计算所有分量不相关后两个变量间的差异,而令所有分量不相关的方法,便是公式中的协方差矩阵(即上上图的“旋转”过程)。

专注AI领域 1952

从OpenClaw到Hermes Agent:AI Agent实战部署与自动化工作流构建

AI Agent(智能体)作为大语言模型(LLM)的能力延伸,其核心原理在于通过工具调用(Tool Calling)与环境交互,使模型从“对话”走向“执行”。这一技术价值在于将自然语言指令转化为具体操作,实现业务流程自动化,从而提升开发与运维效率。在应用场景上,AI Agent广泛适用于自动化运维、智能客服、数据报告生成等重复性任务处理。本文聚焦于两大热门开源框架OpenClaw与Hermes Agent,深入探讨其部署配置、技能扩展及实战联调。通过结合OpenClaw的模块化扩展能力与Hermes Age

weixin_34122810的博客 506

FPGA之VGA转HDMI之编码模块的编写

VGA 图像信息到 HDMI 图像信息的转化需要对输入的 VGA 图像信息进行编码、并行串行转换、单端信号转差分信号、单沿采样转双沿采样。 其中,编码模块就是为了完成 VGA 图像数据 8b 转 10b 的编码。其结构框图如下所示: 图1 编码模块框图 图2 编码模块输入输出信号功能框图 图3 编码模块参考流程图 图4 编码模块参考流程图参数说明 下面我们依据HDMI官方手册中的流程图(图3)进行 HDMI 8b...

qq_51264805的博客 3024

Learning Dynamic Siamese Network for Visual Object Tracking 阅读笔记

前言 预读文章:Fully-Convolutional Siamese Networks for Object Tracking (SiameseTracker)。 在深度学习做目标跟踪效果好的算法中,这篇文章算是有点难度的了~~~啃了一上午算是啃明白了点~ 本博客将采用一边半翻译一边详细解说并抒发自己看法的方式介绍这篇文章。 摘要 1,第一句话就指出本文算法的特点:学习目标的外观变化,...

aiqiu_gogogo的博客 4665

Bode图、ABCD矩阵与EET结合:三步搞定复杂电路传递函数分析

在模拟电路与电源控制设计中,传递函数和频率响应是衡量系统稳定性的核心指标。Bode图以直观的幅频/相频曲线揭示带宽与相位裕度,ABCD二端口矩阵可将级联网络结构化表达,而EET额外元素定理则针对寄生电容、负载效应等局部修正提供显式公式。三者互补,组合成一套从整体拓扑到局部寄生修正的完整分析方法:先用ABCD搭建主体网络,再用EET快速加入额外元件,最后用Bode图验证传递函数和稳定裕度。该方法适用于滤波器设计、电源环路补偿、运放稳定性分析等线性小信号场景,支持Python/SciPy和SPICE交叉验证,显

weixin_32496547的博客 363

DL实战(1):tensorflow在mnist上实现siamese net

一、写在前面 参考:https://www.cnblogs.com/bentuwuying/p/8186364.html 简介:全连接孪生网络(siamese network)是一种相似性度量方法,适用于类别数目多但是每类的样本数少的分类问题。 代码:https://github.com/Shicoder/DeepLearning_Demo/tree/master/siamese_tf_mn...

樛木 1330

Windows安装Pytorch3d

pytorch和pytorch3d版本对应关系如下:https://github.com/facebookresearch/pytorch3d/releasescuda和NVIDIA CUB版本对应关系如下:https://github.com/NVIDIA/cub/releases?page=1本人配置如下:GPU:1050TiCUDA:11.1python:3.8。

Snakewood的博客 4287

[CTFSHOW]JWT

文章目录前言JWT简介CTFSHOW Web345CTFSHOW Web346前置知识开始做题CTFSHOW Web347CTFSHOW Web348CTFSHOW Web349CTFSHOW Web350前置知识利用WP如何防御 前言 有些师傅向我咨询WP,索性就发了吧,其实早就写好了,只是懒,在github仓库里囤着 JWT简介 可以看看我的Github总结给自己看的,Y4tacker CTFSHOW Web345 首先打开题目,查看源码,接下来访问/admin被跳转回主页啥也没有发生 where is

Y4tacker的博客 6045

鲸鱼比赛-kernel 解读4:Siamese Neural Network 构建鲸鱼分类的流程

https://www.kaggle.com/martinpiotte/whale-recognition-model-with-score-0-78563/notebook Duplicate image identification (not much to see here -- keep moving) Image preprocessing (just the regular stu...

qq_16236875的博客 664

无线Mesh组网全攻略:从原理、部署到调优与排障

对于布线困难的大户型、复式楼或园区,传统的无线中继往往面临带宽减半和链路不稳定的问题。无线Mesh网络通过多跳转发与自组织路由,让每个节点无需网线即可协作扩展覆盖,并依靠动态路径选择实现自愈。其核心技术涉及802.11s、HWMP路由协议,以及802.11k/v/r协同的无缝漫游,能有效提升终端切换体验。在实际部署中,设备选型、回程频段规划与布点位置直接决定网络质量。围绕无线Mesh的组网原理、设备选型、配置调优与故障排查,提供一套工程实践参考,帮助用户在复杂环境下构建稳定高效的无缝覆盖。

weixin_34098209的博客 275

深度学习三维重建-双目视差三维重建小笔记

记录一下深度学习进行双目三维重建看过的网络 持续更新(时不时更新) 数据集: SceneFlow KITTI 与三维有关的数据集: TanksAndTemples 一大堆Github总结的数据集 Github大佬的笔记 -----------------------------------我是分界线------------------------------------ SceneFlow数据...

Quasimo 7451

STM32入门教程:人脸识别

STM32CubeMX配置 打开STM32CubeMX,创建一个新的工程,并选择你使用的STM32系列和具体型号。根据摄像头模块的规格,将摄像头的输出引脚连接到相应的STM32引脚上。人脸识别是一种非常常见的人工智能应用,它可以通过摄像头捕捉到的图像,识别出图像中的人脸并进行相关的分析和处理。在本教程中,我们将使用STM32开发板和相关传感器,通过指导你搭建一个基于STM32的简单人脸识别系统,并编写相应的代码来实现该功能。另外,为了达到更好的人脸识别效果,可能需要使用更高性能的处理器和更复杂的算法。

吃不胖. 374

ComfyUI 局部重绘工作流示例

本文介绍了使用ComfyUI进行图像局部重绘的基础工作流程,重点讲解如何修改人物眼睛颜色和表情。主要内容包括:1.准备工作(可选下载DreamShaperv8模型);2.加载素材图片和工作流文件;3.使用遮罩编辑器绘制需要修改的区域;4.修改提示词控制生成内容;5.调整denoise参数优化效果。教程提供了详细的提示词示例(如"smile,blackeyes"等)和参数设置建议,帮助用户通过多次尝试获得理想效果。该工作流适用于修改图像局部区域而不影响整体画面。

云域A的博客 334

Siamese Network理解

提起siamese network一般都会引用这两篇文章: 《Learning a similarity metric discriminatively, with application to face verification》和《 Hamming Distance Metric Learning》。 本文主要通过论文《Learning a Similarity Metric Discr...

weixin_30868855的博客 183

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

深度学习基础(十一)其他网络类型

参考文章 【模型解读】siamese network和triplet network原理与应用 “Triplet network”三元组网络阅读笔记 强化学习(一)模型基础 强化学习(二)马尔科夫决策过程(MDP) 强化学习(Reinforcement Learning)入门 深度学习基础(十一)其他网络类型孪生网络 Siamese NetworkTriplet Network强化学习马尔科夫决策过程 Markov Decision Process基于价值的强化学习(value-based)基于策略的强.

qq5024581的博客 631

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Siamese Network理解(附代码)

author:DivinerShi文章地址:http://blog.youkuaiyun.com/sxf1061926959/article/details/54836696提起siamese network一般都会引用这两篇文章: 《Learning a similarity metric discriminatively, with application to face verification》和《 ...

bbbeoy的专栏 838

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

【SiamRPN】《High Performance Visual Tracking With Siamese Region Proposal Network》

CVPR-2018商汤科技。

bryant_meng 1429

(DaSiamRPN)Distractor-aware Siamese Networks for Visual Object Tracking 阅读笔记

2018年的VOT竞赛结果已出,基于深度特征(Deep Feature)的相关滤波依旧强势,但值得注意的是,基于孪生网络(Siamese Network)的方法异军突起,在主赛上有不俗表现的同时,在实时赛与长时跟踪赛上取得了几乎垄断的绝对优势。 先解释一下SiamRPN与DaSiamRPN SiamRPN(High Performance Visual Tracking with Siames...

polaris_c的博客 2159

CVPR-2020-SiamBAN:Siamese Box Adaptive Network for Visual Tracking阅读笔记

论文地址:https://arxiv.org/pdf/2003.06761.pdf 论文代码:https://github.com/hqucv/siamban 一、 动机: 现有的追踪器大多依赖于多尺度测试和预定义的锚框来对目标进行精确地位,但这样就需要先验知识和一系列设计候选盒子的超参数,所以为了解决这个问题设计了更加灵活通用的SiamBAN。该算法将视觉跟踪问题视为一个并行分类和回归问题,直接对目标进行分类,并在统一的FCN中回归其边界框。并且,神经科学家已经表明,生物视觉初级视觉皮层可以快速有效地从复

菜菜子hoho的博客 1606

Camera Relocalization by Computing Pairwise Relative Poses Using Convolutional Neural Network

利用卷积神经网络计算成对相对姿态的相机重定位(解读)(原论文) 摘要 文中提出的基于深度学习的相机重定位方法。通过使用卷积神经网络(CNN)来定位给定的查询图像,用于首先检索类似的数据库图像,然后预测查询与其姿势已知的数据库图像之间的相对姿势。查询图像的摄像机位置是通过使用基于RANSAC的方法的两个相对平移估计的三角测量获得的。每个相对姿势估计提供相机方向的假设,并且它们在第二RANSAC方...

肥羊汤 1114

论文阅读笔记《Siamese Convolutional Neural Network for Camera Pose Estimation and Visual Servoing》

小样本学习&元学习经典论文整理||持续更新 核心思想   该文使用基于孪生网络结构的CNN来实现相机的位姿估计和视觉伺服,过程也比较好理解,输入是当前位置的图像和期望位置的图像,输出的是两个图像之间的变换矩阵(包含平移矩阵和由四元数表示的旋转矩阵)。网络的结构如下图所示 孪生网络的两个分支分别对应当前位置图像IAI_AIA​和期望位置的图像IBI_BIB​,分别提取图像中的特征信息,然后将通道压缩至96,并且展成一维特征向量,再进行拼接。最后经过7个全连接层,输出7个预测结果(平移参数x,y,z和

深视 874

nlp_structbert_siamese-uninlu_chinese-base参数详解:config.json关键字段作用说明

本文介绍了如何在星图GPU平台自动化部署nlp_structbert_siamese-uninlu_chinese-base特征提取模型,并解析其config.json关键参数。该二次构建的镜像支持统一处理多种中文NLP任务,如文本分类和关系抽取,显著提升自然语言理解任务的开发效率与应用效果。

weixin_33628677的博客 280

PCRNet: Point Cloud Registration Network using PointNet Encoding 论文解读

PCRNet网络结构、迭代PCRNet网络、损失函数、实验

NPU 研0 1526
上一篇: 【AI白身境】深度学习中的数据可视化​​​​​​​
下一篇: 【AI白身境】究竟谁是paper之王,全球前10的计算机科学家
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值