什么是孪生网络,以及其应用
2017-03-06 11:29
656 查看
翻译自quora What are Siamese neural networks, what applications are they good for, and why?
孪生神经网络是一类包含两个或更多个相同子网络的神经网络架构。 这里相同是指它们具有相同的配置即具有相同的参数和权重。 参数更新在两个子网上共同进行。
孪生神经网络在涉及发现相似性或两个可比较的事物之间的关系的任务中流行。 一些例子是复述评分,其中输入是两个句子,输出是它们是多么相似的得分; 或签名验证,确定两个签名是否来自同一个人。 通常,在这样的任务中,使用两个相同的子网络来处理两个输入,并且另一个模块将取得它们的输出并产生最终输出。 下面的图片来自Bromley et al (1993)[1]。 他们为签名验证任务提出了一个孪生体系结构。
孪生结构之所以在这些任务中表现的比较好,有如下几个原因
子网共享权重意味着训练需要更少的参数,也就意味着需要更少的数据并且不容易过拟合。
每个子网本质上产生其输入的表示。 (图片中的“签名特征向量”)。如果您的输入是相同类型的,例如匹配两个句子或匹配两个图片,使用类似的模型来处理类似的输入是有意义的。 这样,您就有了具有相同语义的表示向量,使得它们更容易比较。
-
问题回答,一些最近的研究使用孪生体系结构来评分问题和答案候选人之间的相关性[2]。 所以一个输入是一个问句,另一个输入是一个答案,输出和问题的答案是相关的。 问题和答案看起来不完全相同,但如果目标是提取相似性或它们之间的联系,孪生体系结构也可以很好地工作。
引用了如下的两篇文章
[1]Signature Verification using a “Siamese”
Time Delay Neural Network
[2]ABCNN: Attention-Based Convolutional Neural Network
for Modeling Sentence Pairs
孪生神经网络是一类包含两个或更多个相同子网络的神经网络架构。 这里相同是指它们具有相同的配置即具有相同的参数和权重。 参数更新在两个子网上共同进行。
孪生神经网络在涉及发现相似性或两个可比较的事物之间的关系的任务中流行。 一些例子是复述评分,其中输入是两个句子,输出是它们是多么相似的得分; 或签名验证,确定两个签名是否来自同一个人。 通常,在这样的任务中,使用两个相同的子网络来处理两个输入,并且另一个模块将取得它们的输出并产生最终输出。 下面的图片来自Bromley et al (1993)[1]。 他们为签名验证任务提出了一个孪生体系结构。
孪生结构之所以在这些任务中表现的比较好,有如下几个原因
子网共享权重意味着训练需要更少的参数,也就意味着需要更少的数据并且不容易过拟合。
每个子网本质上产生其输入的表示。 (图片中的“签名特征向量”)。如果您的输入是相同类型的,例如匹配两个句子或匹配两个图片,使用类似的模型来处理类似的输入是有意义的。 这样,您就有了具有相同语义的表示向量,使得它们更容易比较。
-
问题回答,一些最近的研究使用孪生体系结构来评分问题和答案候选人之间的相关性[2]。 所以一个输入是一个问句,另一个输入是一个答案,输出和问题的答案是相关的。 问题和答案看起来不完全相同,但如果目标是提取相似性或它们之间的联系,孪生体系结构也可以很好地工作。
引用了如下的两篇文章
[1]Signature Verification using a “Siamese”
Time Delay Neural Network
[2]ABCNN: Attention-Based Convolutional Neural Network
for Modeling Sentence Pairs
相关文章推荐
- 什么是正则表达式以及在Java1.4中的应用
- 在PPC上面用.NET CF开发应用需要注意些什么——(一)CPU、OS以及CLR差别简述
- 嵌入式做驱动,做系统,以及做应用,分工有什么区别。
- MFC中的CDC是什么,以及应用
- Android判断网络是否连接,跳转到设置页面以及判断连接的是什么网络
- 什么是正则表达式以及在Java1.4中的应用
- 黑马程序员-java网络编程以及IO流的应用
- 按位与 按位或 按位异或(位运算到底可以干什么,有些什么经典应用,以及如何用位运算优化你的程序)
- 谐振电路的工作原理是什么?以及应用,麻烦说的详细点
- NFS网络操作系统介绍以及相关应用
- 什么是正则表达式以及在Java1.4中的应用
- [Professional ASP.NET Design Pattern 读书笔记系列] 03 网络应用的分层以及重点的分离
- 谈谈为什么ORMapping不适合企业应用的构建,以及未来企业应用系统构建需要什么要素
- select的解析,以及在linux网络编程的应用
- Android学习笔记---27_网络通信之通过GET和POST方式提交参数给web应用,以及使用httpClient,来给web项目以post方式发送参数
- 什么是网络推广以及如何做好网络推广
- TCP和UDP的区别以及应用有什么不同?
- 网络IO工作模型以及在分布式中的应用
- 别把什么都做成网络应用
- Java 网络:InetAddress类的应用以及通过Socket实现TCP编程