您的位置:首页 > 理论基础 > 计算机网络

什么是孪生网络,以及其应用

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  神经网络