Siamese Network 孪生网络简介
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Siamese Network 孪生网络简介相关的知识,希望对你有一定的参考价值。
参考技术A “匹配”这类任务有着很广泛的应用场景,例如NLP中的文本匹配,推荐领域的物品召回等任务。由此,学术界和工业界提出了很多不同的方法和模型来解决匹配问题,并致力于效果提升。本篇文章介绍一种经典的网络模型Siamese Network(孪生神经网络),该模型能够处理但不局限于“匹配”问题,下面一起来看下。个人心得:
Wikipedia:
https://en.wikipedia.org/wiki/Siamese_neural_network
Siamese Network的模型架构如图所示。可以看出,该模型的设计思路非常符合“匹配”的直观感受,即将输入pair通过特征变换后进行交叉得到分值(eg. 相似度)。
整个模型可以分为三步:
本节我们以NLP文本匹配任务为例介绍Siamese Network的设计思路。针对文本匹配的Siamese Network设计实例如下图所示。
我们可以看到,模型输入层是待匹配的sentence pair,经过同一个编码器转换后,得到其embedding特征编码向量。进一步,将两个embedding向量进行交互组合,最后送入全连接层得到分类预测结果。其实抽象出来,在文本匹配任务中,Siamese Network可以拆解为,将输入转换到同一个特征空间,然后进行向量交互匹配(类似于余弦相似度),最后进行特征变换使得模型能够学习到针对不同任务的不同参数。
本文我们介绍了孪生神经网络Siamese Network的设计思路和原理,并结合文本匹配来进行阐述。Siamese Network原理简单,适用范围广,可以作为很多场景的一个不错的baseline模型。
Siamese Neural Network (SNN: 孪生神经网络)
0. 概述
- GLA:Generalized Linear Assignment (通用线性分配)
1. 用途
- 衡量两个输入的相似程度。
- 孪生神经网络有两个输入(Input1 and Input2),将两个输入feed进入两个神经网络(Network1 and Network2),这两个神经网络分别将输入映射到新的空间,形成输入在新的空间中的表示。通过Loss的计算,评价两个输入的相似度。
2. SNN网络结构
- Network1和Network2是同一个网络,且它们的权值都一样。
3. PSNN网络结构
- PSNN:Pseudo-Siamese Neural Network (伪孪生神经网络 )
- 其Netowrk1和Network2可以是不同的神经网络(如:左边是LSTM,右边是CNN),也可是相同类型的神经网络
- 其权值不共享
4. 孪生神经网络和伪孪生神经网络的区别
- 孪生神经网络用于处理两个输入"比较类似"的情况。
- 伪孪生神经网络适用于处理两个输入"有一定差别"的情况。
- 如:我们要计算两个句子或者词汇的语义相似度,使用siamese network比较适合;如果验证标题与正文的描述是否一致(标题和正文长度差别很大),或者文字是否描述了一幅图片(一个是图片,一个是文字),就应该使用pseudo-siamese network。也就是说,要根据具体的应用,判断应该使用哪一种结构,哪一种Loss
5. SNN损失函数
- Softmax当然是一种好的选择,但不一定是最优选择,即使是在分类问题中。传统的siamese network使用Contrastive Loss。
- 损失函数还有更多的选择,siamese network的初衷是计算两个输入的相似度,。左右两个神经网络分别将输入转换成一个"向量",在新的空间中,通过判断cosine距离就能得到相似度了。
- Cosine是一个选择,exp function也是一种选择,欧式距离什么的都可以,训练的目标是让两个相似的输入距离尽可能的小,两个不同类别的输入距离尽可能的大。
- 根据实验分析,cosine更适用于词汇级别的语义相似度度量,而exp更适用于句子级别、段落级别的文本相似性度量。其中的原因可能是cosine仅仅计算两个向量的夹角,exp还能够保存两个向量的长度信息,而句子蕴含更多的信息。
6. 轨迹关连
以上是关于Siamese Network 孪生网络简介的主要内容,如果未能解决你的问题,请参考以下文章
Siamese Neural Network (SNN: 孪生神经网络)
Siamese Neural Network (SNN: 孪生神经网络)
SiameseFC遮挡跟踪应用matconvnet工具箱,实现基于Fully-Convolutional Siamese Networks全卷积孪生网络的车辆跟踪matlab仿真
《SARAS-Net: Scale and Relation Aware Siamese Network for Change Detection》论文分享