合肥网站开发需要,网站开发验收单,外贸网站制作有哪些,制作微信公众号的网站1.Siamese网络
Siamese network就是“连体的神经网络”#xff0c;神经网络的“连体”是通过共享权值来实现的#xff0c;如下图所示。共享权值意味着两边的网络权重矩阵一模一样#xff0c;甚至可以是同一个网络。 如果左右两边不共享权值#xff0c;而是两个不同的神经网…1.Siamese网络
Siamese network就是“连体的神经网络”神经网络的“连体”是通过共享权值来实现的如下图所示。共享权值意味着两边的网络权重矩阵一模一样甚至可以是同一个网络。 如果左右两边不共享权值而是两个不同的神经网络叫伪孪生网络pseudo-siamese network伪孪生神经网络对于pseudo-siamese network两边可以是不同的神经网络如一个是lstm一个是cnn也可以是相同类型的神经网络。 1.1 原理
Siamese网络衡量两个输入的相似程度输出是一个[0,1]的浮点数表示二者的相似程度。孪生神经网络有两个输入Input1 and Input2,将两个输入feed进入两个神经网络Network1 and Network2这两个神经网络分别将输入映射到新的空间形成输入在新的空间中的表示。通过Loss的计算评价两个输入的相似度。
传统的siamese network使用Contrastive Loss对比损失函数如下所示 其中Dw被定义为姐妹孪生网络的输出之间的欧氏距离。Dw欧式距离公式如下也可以是其他的距离度量方法比如Cosine距离主要用于词汇级别的语义相似度度量。 其中Gw是其中一个子网络的输出。X1和X2是输入数据对。 Y值为1或0。如果模型预测输入是相似的那么Y的值为0否则Y为1。 max是表示0和m-Dw之间较大值的函数。m是大于0的边际价值margin value边际价值表示超出该边际价值的不同不会造成损失因为希望基于实际不相似对网络进行优化。
1.2 用途
孪生神经网络用于处理两个输入“比较类似的情况。 伪孪生神经网络适用于处理两个输入有一定差别”的情况。 比如我们要计算两个句子或者词汇的语义相似度使用siamese network比较适合如果验证标题与正文的描述是否一致标题和正文长度差别很大或者文字是否描述了一幅图片一个是图片一个是文字就应该使用pseudo-siamese network。也就是说要根据具体的应用判断应该使用哪一种结构哪一种Loss。
词汇的语义相似度分析QA中question和answer的匹配签名/人脸验证。手写体识别也可以用siamese network。还有kaggle上Quora的question pair的比赛即判断两个提问是不是同一问题。在图像上基于Siamese网络的视觉跟踪算法也已经成为热点。单样本学习
2.单样本学习
2.1 原理
传统的神经网络试图学习某一个类别的图像的表达而One-Shot Learning 试图学习不同图像(可以同一类别或者不同类别) 的区别。
给定图片A和图片B, 将A转换为一个表达(embedding vector) p, 将B转换为 一个表达(embedding vector) q
• 如果 A 和 B 属于同一个类别, 那么我们希望 p 和 q 是相似的 • 如果 A 和 B 不属于同一个类别, 那么我们希望 p 和 q 是不相似的 • 相似度的度量, 欧几里得距离 2.2 意义 减少训练数据 • 深度学习需要大量的数据 MNIST 为了 10 个类别的区分, 需要 60,000 张训练图像, 平均一个类别需要6000 张训练图像 • One-Shot 试图将一个类别的训练图像减少, 极端情况时减小到一张图片 在新类别的数据出现时, 无需重新训练 • 传统的深度神经网络无法处理没有出现在训练集中的类别 • 以员工刷脸打卡为例, 使用传统深度神经网络, 每一个新员工入职, 都是一个新的 类别, 需要重新训练深度神经网络 • 如果每天都有新员工入职, 每天都要重新训练网络, 成本非常高 • One-Shot learning 可以无需重新训练即可应用于新的类别的数据