首页 > 其他分享 >【模型解读】深度学习网络只能有一个输入吗

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

时间:2023-07-04 19:37:48浏览次数:56  
标签:triplet network siamese 样本 网络 解读 深度 输入


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

作者 | 言有三

编辑 | 言有三

01

多输入网络的应用背景

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


1.1 图像验证与匹对

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

签名验证:

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

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

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

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

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

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

1.2 目标跟踪

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

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

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

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

1.3 排序

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

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

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

02

多输入网络

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

2.1 siamese network                        

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

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

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

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

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

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

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

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

2.2 triplet network

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

没错,就是triplet network。

【模型解读】深度学习网络只能有一个输入吗_人脸识别_07

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

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

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

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


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

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

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

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

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

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

然后优化目标就等于:

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

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

【模型解读】深度学习网络只能有一个输入吗_人脸识别_11

那么上面的距离:

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

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

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

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

总结

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

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

【模型解读】深度学习网络只能有一个输入吗_人脸识别_13

深度学习模型

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

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

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

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

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

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

【模型解读】深度学习网络只能有一个输入吗_人脸识别_20

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

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

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

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

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

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

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

【模型解读】深度学习网络只能有一个输入吗_人脸识别_28

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


标签:triplet,network,siamese,样本,网络,解读,深度,输入
From: https://blog.51cto.com/u_14122493/6624481

相关文章

  • 在Twitter信息流中大规模应用深度学习——推文的相关度计算使用了深度学习
    我们如何对信息流进行排序?在引入排序算法之前,信息流的组成非常简单:收集所有由你的关注对象在你最后一次登录Twitter之后发送的推文,再将它们按照时间倒序显示出来。这个看起来很简单,但要为数以亿计的Twitter用户提供这种稳定的体验对我们来说是一个巨大的挑战,它对我们的基础设施和运......
  • textare内容直接存储mysql,怎么原样输出到页面,保留输入的空格 回车换行
    使用thinkcmf时,一个textarea类型的模版变量,配置内容里需要显示换行和多个连续空格。 查看数据库存储json保存数据后是有存储回车换行和多个空格的,只是显示时不显示回车换行,多个连续空格变成了一个空格。使用{$theme_vars.foot1|nb2br}仅能保留回车换行,多个空格只显示一个......
  • Qt InputDialog 置顶后模拟键盘输入失效问题
    开发环境:Qt5.12.2+QtCreator4.8.21、问题背景嵌入式linux-arm触摸屏移植了谷歌拼音输入法后测试使用问题2、问题现象1)主窗口编辑框输入法有效2)QInputDialog弹框输入法失效3、问题原因 初步怀疑是QInputDialog置顶问题导致4、问题解决......
  • 基于策略的深度强化学习
     策略函数,输入为状态,输出动作a对应的概率。   利用神经网络去近似一个概率函数 softmax函数使概率加和等于1且都为正数。 Qπ用来评价在状态s下作出动作a的好坏程度,与策略函数π有关。 状态价值函数V,只与当前状态s有关 将策略函数π替换为神经网络 用梯......
  • linux源码解读(三):文件系统——inode【转】
    转自:https://www.cnblogs.com/theseventhson/p/15622853.html众所周知,计算机系统在掉电后也能存储数据的就是磁盘了,所以大量数据大部分时间是存放在磁盘的;现在新买的PC,磁盘从数百G到1TB不等;服务器的磁盘从数十TB到上百TB,这么大的存储空间,该怎么高效地管理和使用了?站在硬件角度,cpu......
  • C#的winform中控制TextBox中只能输入正整数
    txt_n是要输入的文本的名字privatevoidtxt_n_KeyPress(objectsender,KeyPressEventArgse){if(e.KeyChar!='\b')//这是允许输入退格键{intlen=txt_n.Text.Length;if(len......
  • input框限制输入内容
    <inputv-model="request.idCardNo"maxlength="18"@input="typeInput($event)"placeholder="请输入您的身份证号">对应在methods中的方法 typeInput(event){ //只能输入数字和字母的验证; constinputType=/[\W]/g//想限制什么类型在这里换换正......
  • js 数字格式化,只能输入正负整数,小数
     1、只能输入正整数<inputname="columnValue"class="input96required"type="text"size="50"onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replac......
  • 【深度】韦东山:一文看看尽linux对中断处理的前世今生
    交流群一:QQ群:869222007(鸿蒙开发/Linux/嵌入式/驱动/资料下载)交流群二:QQ群:536785813(单片机-嵌入式)公 众 号:百问科技版本日期作者说明V12020韦东山技术文档前言:本文,4200字,研究代码花了一天,写出来花了一天;录视频估计又得花半天;真怀念以前简单粗暴的生活啊:拿起话筒就录视频,先画好......
  • 神经网络通过优化方法进行训练。然而,优化技术似乎不是深度学习中最重要的主题。为什么
    在深度学习中,神经网络通过优化方法进行训练,目的是最小化损失函数并获得最佳的模型参数。然而,优化技术在深度学习中并不是最重要的主题,主要原因如下:数据和模型的重要性:在深度学习中,数据的质量和数量以及模型的设计和复杂性对于模型的性能和泛化能力起着至关重要的作用。优化技术......