Siamese Network 是一种神经网络的架构,而不是具体的某种网络,就像Seq2Seq一样,具体实现上可以使用RNN也可以使用CNN。Siamese Network 就像“连体的神经网络”,神经网络的“连体”是通过共享权值来实现的(共享权值即左右两个神经网络的权重一模一样)。
Siamese Network的作用就是衡量两个输入的相似程度。孪生神经网络有两个输入(input1 and input2),将两个输入 feed 进入两个神经网络(Network1 andNetwork2),这两个神经网络分别将映射到新的空间,形成输入在新的空间中的表示。通过Loss的计算,评价两个输入的相似度。
Siamese Network和其他网络的不同之处就在于,首先他是两个输入,他输入的不是标签,而是是否是同一类别,如果是同一类别就是0,否则就是1。
1.Siamese Network的特点:
1. Siamese 网络采用两个不同的输入,通过两个具有相同架构、参数和权重的相似子网络。如上图。
2. 这两个子网互为镜像,就像连体双胞胎一样。
3. 两个子网络输出一个编码来计算两个输入之间的差异。
4. Siamese 网络的目标是使用相似度分数对两个输入是相同还是不同进行分类。可以使用二元交叉熵、对比函数或三元组损失来计算相似度分数,这些都是用于一般距离度量学习方法的技术。
5. Siamese 网络是一种one-shot分类器,它使用判别特征从未知分布中概括不熟悉的类别。
2.Siamese Network的用途:
孪生神经网络有两个输入(Input1 and input2),将两个输入 feed 进入两个神经网络(Network1 and Network2),这两个神经网络分别将输入映射到新的空间,形成输入在新的空间中的表示。通过Loss的计算,评价两个输入的相似度。Siamese Network可以衡量两个输入的相似度。
3.Siamese Network的优缺点
优点:Siamese 网络是一种one-shot分类模型,只需一个训练样本即可进行预测;可以用于某些类的样本很少的数据集;Siamese 网络的one-shot学习特性不依赖于特定领域的知识,而是利用了深度学习技术。
缺点:仅输出相似性分数而不输出概率。
4.Siamese Network 的应用
签名验证、面部识别、比较指纹、根据临床分级评估疾病严重程度、工作资料的文本相似度以恢复匹配、用于配对相似问题的文本相似度等