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

文章首发于微信公众号《有三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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

言有三

三人行必有AI

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

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

打赏作者

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

抵扣说明:

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

余额充值