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

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

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

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

作者 | 言有三

编辑 | 言有三

01

多输入网络的应用背景

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


1.1 图像验证与匹对

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

签名验证:

640?wx_fmt=png

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

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

640?wx_fmt=png

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

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

1.2 目标跟踪

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

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

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

640?wx_fmt=png

1.3 排序

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

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

640?wx_fmt=png

02

多输入网络

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

2.1 siamese network                        

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

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

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

640?wx_fmt=png

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

640?wx_fmt=png

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

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

2.2 triplet network

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

没错,就是triplet network。

640?wx_fmt=png

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

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

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

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


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

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

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

640?wx_fmt=png

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

640?wx_fmt=png

然后优化目标就等于:

640?wx_fmt=png

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

640?wx_fmt=png

那么上面的距离:

640?wx_fmt=png

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

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

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

总结

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

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

640?wx_fmt=png

深度学习模型

640?wx_fmt=png

640?wx_fmt=gif

640?wx_fmt=png

640?wx_fmt=gif

640?wx_fmt=jpeg

640?wx_fmt=gif

640?wx_fmt=png

640?wx_fmt=gif

640?wx_fmt=jpeg

640?wx_fmt=gif

640?wx_fmt=jpeg

640?wx_fmt=gif

640?wx_fmt=png

640?wx_fmt=gif

640?wx_fmt=png

640?wx_fmt=png

转载文章请后台联系

侵权必究

更多请关注知乎专栏《有三AI学院》

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

往期精选

想要变身”AI专家“,就戳戳手指关注我们吧

别忘了点“好看”支持作者噢  ??? 

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

相关推荐

Siamese网络

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

reset2021的博客 1402

孪生网络(Siamese Network)

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

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

[DL]CRF模型解读

CRF(conditional random field,条件随机场)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔科夫随机场。 想要理解CRF模型,需要先对概率图相关概念有所了解,并与HMM(Hidden Markov Model,隐马尔科夫模型)一起比较学习。(本文只解读思想、原理,不涉及求解过程)

sinat_41506268的博客 2135

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

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

专注AI领域 1952

【深度学习】【YOLACT】代码解读一

【YOLACT】代码解读一代码运行验证处理图片训练代码解读网络架构 代码运行 根据github所给指导一步一步进行,如果曾经下载好coco数据集,在data/config.py108行以下修改数据集的目录,并且在run_coco_eval.py16行修改验证集annotation文件的路径。 验证 有以下三种评估方式: first python eval.py --trained_model=we...

Hana 5463

深度学习初探 - 入门 DL 主流框架

这个课程主要是引导大家入门TensorFlow、Theano、Keras 及 Caffe 几个主流的深度学习框架。在课程中有关各种算法的详细推导及思想我们不会做过多的陈诉,旨在通过让同学们动手操作搭建自己的神经网络模型,了解如何使用这些框架解决实际问题。课程会基于每个框架的官方文档,先带大家熟悉框架中基本的定义语法及常用函数(可看成深度模型的小零件),每个实验最后都会综合这些零件搭建一个简易的神经深度网络模型。这个项目十分适合具有一定python编程基础,对人工智能、深度学习感兴趣的同学。Theano。

2401_86435672的博客 1236

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

https://www.toutiao.com/a6711317479001424395/ 平常我们所见的深度学习模型,都是输入一个图像或者视频序列,输出分类,分割,目标检测等结果,但是还有一种模型需要输入两张,或者多张图片,这就是多输入网络结构。 作者 | 言有三 编辑 | 言有三 1多输入网络的应用背景 首先我们说说在什么情况下,需要多个输入,只以纯图像应用为例。...

喜欢打酱油的老鸟 751

Darknet网络(深度学习)

在深度学习中,Darknet是一个轻量级的神经网络框架,最初由Joseph Redmon开发,主要用于计算机视觉任务,尤其是目标检测。它以其速度和效率而闻名,尤其是YOLO(You Only Look Once)系列模型,它们可以在实时或接近实时的速度下进行目标检测。在深度学习中,残差块(Residual Block)是一种常用的建筑模块,最初由Kaiming He等人在提出的深度残差学习网络(ResNet)中引入。

AI_dataloads的博客 1万+

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

文章首发于微信公众号《有三AI》 【模型解读】深度学习网络只能有一个输入吗 继续我们之前的专栏《模型解读》,今天说多输入网络,很久没写了因为实在是有更重要的事情。 平常我们所见的深度学习模型,都是输入一个图像或者视频序列,输出分类,分割,目标检测等结果,但是还有一种模型需要输入两张,或者多张图片,这就是多输入网络结构。 作者|言有三 编辑|言有三 01多输入网络的应用...

hacker_long的专栏 6368

CTR深度学习模型之 DeepFM 模型解读

上一篇文章讲了一些比较经典的 CTR 模型:CTR经典模型串讲:FM / FFM / 双线性 FFM 相关推导与理解,从这一篇文章开始将会陆续介绍一些使用深度学习完成CTR预估的模型,本文主要讲的是DeepFM模型。 之前讲的 FM、FFM、Bi-FFM 本质上都是要学习户点击行为背后隐含的特征组合,不过这些经典模型主要是进行二阶特征组合。理论上也可以进行更高阶的特征组合,但是会造成特征维度指数级增长以及数据稀疏等问题。对于高阶特征组合问题不难想到可以用多层的神经网络解决。 DeepFM 的整体结构 对于类

VariableX的博客 2029

[DL]Bart模型解读

首先上述模型都是由transformer模型延伸而来的。GPT:是一种自回归( Auto-Regressive)的语言模型。Bert:是一种自编码(Auto-Encoding)的语言模型。Bart:结合了自回归和自编码模型。

sinat_41506268的博客 1742

【深度学习-Day 1】为什么深度学习是未来?一探究竟AI、ML、DL关系与应用

欢迎踏上深度学习(Deep Learning, DL)的探索之旅!近年来,人工智能(Artificial Intelligence, AI)浪潮席卷全球,而深度学习正是驱动这股浪潮的核心技术之一。无论你是对 AI 充满好奇的初学者,还是希望在技术领域深耕的开发者,理解深度学习都至关重要。本专栏旨在系统性地引导大家从零基础入门,逐步掌握深度学习的核心概念、关键技术和实战应用。

吴师兄大模型的博客 7378

siamese(孪生)网络

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

[DL]Transformer模型解读

Transformer模型在论文中提出。Transformer中抛弃了传统的CNN和RNN,整个网络结构仅由self-Attenion和Feed Forward Neural Network组成。

sinat_41506268的博客 1200

国产射频直采收发器CX8242KA JESD204C调试

杭州诚芯公司的CX8242KA是国内开发的极少数支持JESD204C接口的高速AD、DA,Serdes具备支持接收和发送,并且速率可以到25Gbps,在国内属于领先水平。250M参考时钟输入,AD采样率2.5G,DA采样率10G,3收2发,主通道模式4,反馈通道模式1,基带采样率1250M,线速率20.625G,收发同时配置混频625M。CX8242KA的204C接口模式支持10种模式,在手册上都有说明。2、 支持TX信道编码,RX信道解码,提升健壮性。这里使用模式4,支持双通道模式,并且反馈开启。

RFSOC的博客 6225

VoLTE吞字断续优化方案

网络侧通过各节点探针的数据采集,能够进行RTP和RTCP包的分析,确定各节点的上行或下行丢包情况。1.基于测试语音分析,每2秒中大约8个字,每个字约10个RTP语音包。通话过程中,语音有短暂停顿,收音段听语音中会出现“吞字/断续现象”2.连续丢3~5个RTP以上就可能会出现吞字断续的感觉。下行评价的丢包问题,很难有效指导定界定位分析,无从下手。2.部分终端可能存在RTCP不反馈,导致无法获取丢包。1.语音包为UDP包,无反馈,终端无法判定是否丢包。终端可依据自身的调度反馈或弃包进行上行丢包判决。

m0_73503557的博客 1515

深度学习-解读GoogleNet深度学习网络

深度学习中,经典网络引领一波又一波的技术革命,从LetNet到当前最火的GPT所用的Transformer,它们把AI技术不断推向高潮。2012年AlexNet大放异彩,它把深度学习技术引领第一个高峰,打开人们的视野。 用pytorch构建CNN经典网络模型GoogleNet,又称为Inception V1 ,还可以用数据进行训练模型,得到一个优化的模型。

Alex_StarSky的博客 1498

深度学习中的编码器-解码器架构

解码的作用:转换为人类可理解的形式,解码器的任务是将编码器生成的中间表示(上下文向量)转换回人类可理解的输出形式(如翻译后的文本、生成的图像描述等)。解码器通过逐步生成输出序列,使得最终的输出符合人类的理解和需求。编码的作用:转换为机器可理解的形式,编码器将输入数据(如文本、图像等)转换为一种机器更容易处理和理解的形式,即上下文向量或编码。在深度学习中,编码器(Encoder)解码器(Decoder)是常见的神经网络架构,通常用于处理序列到序列(seq2seq)任务,如机器翻译、文本摘要和图像描述等。

xxk1323的博客 1093

[DL]BERT模型解读

BERT(Bidirectional Encoder Representations from Transformers)模型在论文中提出,BERT即双向的Transformer的Encoder表示。pre-training:利用无监督的方式对语言模型进行预训练;fine-tuning:通过监督的方式在具体语言任务上进行fine-tuning。

sinat_41506268的博客 1036

嵌入式开发必备:UART、RS232、RS485通信协议实战对比(附代码示例)

本文从嵌入式开发实战角度,深度对比了UART、RS232和RS485三种核心串行通信协议。详细解析了它们的工作原理、硬件连接、代码配置及典型应用场景,并提供了基于通信距离、节点数量和电磁环境的三维度选型指南,帮助开发者根据项目需求做出最优技术决策。

i0j1k2l3m的博客 476

zemax显微镜设计

光学显微镜(Optical Microscope,简写OM)是利用光学原理,把人眼所不能分辨的微小物体放大成像,以供人们提取微细结构信息的。我这里是插入进来之后才反转,如果之前已经在目镜的单独文件夹反转过了就不用了。将目镜的焦距设定为25mm,通过缩放,然后将镜头调转过来。镜头数据中的曲率半径、物距像距都设置为变量。将镜头的焦距整体变为16.25mm。将孔径类型设置为按照光阑尺寸浮动。打开物镜的文件,选择插入镜头。由英国物理学家虎克制作。2、像空间孔径0.25。3、像面大小-0.9。

fendoudecheng的博客 8547

DL之LSTM:《Understanding LSTM Networks了解LSTM网络》的翻译并解读

​ DL之LSTM:《Understanding LSTM Networks了解LSTM网络》的翻译并解读 目录 Understanding LSTM Networks Recurrent Neural Networks The Problem of Long-Term Dependencies长期依赖的问题 LSTM Networks The Core Idea Behind LSTMs—LSTMs背后的核心思想 Step-by-Step LSTM Walk Thr

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 4869

神州路由器DHCPv6配置

神州路由器DHCPv6配置.。

weixin_41687096的博客 462

DL之DNN:《The Neural Network Zoo神经网络模型集合与分类》翻译与解读

​ DL之DNN:《The Neural Network Zoo神经网络模型集合与分类》翻译与解读 目录 相关文章 《The Neural Network Zoo神经网络模型集合与分类》翻译与解读 Introduce Neural Network Zoo 相关文章 DL:深度学习算法(神经网络模型集合)概览之《THE NEURAL NETWORK ZOO》的中文解释和感悟(一) DL:深度学习算法(神经网络模型集合)概览

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 5962

SpringBoot+Vue+kkFileView实现文档管理(文档上传、下载、在线预览)

上面在使用OpenOffice实现doc、excel、ppt等文档的管理和预览。除此之外可用kkFileView实现包括且更多文档的预览。

BADAO_LIUMANG_QIZHI的博客 1万+

手把手教你学基于 Linux 的 NPU 固件开发-第 10 讲:可靠性设计(RAS)——让系统坚如磐石错误检测、纠正与上报机制(ECC、Parity)

组件推荐保护机制备注HBM/DDRScrubbing必须开启,定期巡检片上 SRAMECC(权重/激活值),Parity(指令)权衡面积与可靠性计算单元ABFT或DMR(关键路径)防止计算逻辑错误片上网络CRC重传保证数据传输完整性系统软件AER 上报CE 监控自动恢复闭环管理,杜绝 SDC运维策略预测性维护Checkpoint变被动为主动核心心法(信任硬件,但必须验证。在纳米尺度下,错误是必然发生的物理现象。

MHD0815的博客 92
上一篇: 【AI白身境】学深度学习你不得不知的爬虫基础
下一篇: 【AI白身境】深度学习中的数据可视化
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄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、付费专栏及课程。

余额充值