当前位置: 代码迷 >> 综合 >> few-shot learning(二):Siamese Network
  详细解决方案

few-shot learning(二):Siamese Network

热度:39   发布时间:2023-12-12 01:07:23.0

Siamese Network:孪生网络,更准确的翻译是连体网络。

本次介绍两种训练Siamese Network的方法:

learning Pairwise Similarity Scores

主要思想:每次取两个样本,计算相似度。

  • 在大训练集上训练神经网络,首先使用训练集构造正负样本。正样本告诉神经网络什么样本是同一类,负样本告诉样本之间的区别。

具体的,正样本的构造:在训练集中随机抽取图片,在同一类别中在随机抽样一张,并且相似度置为1。

负样本,在训练集中随机抽取图片,排除这一类别,再随机抽样一张,相似度置为0

  •  搭建卷积神经网络提取特征

  • 训练神经网络,要准备同样数量的正负样本。

注意,两个f是同一个神经网络。最终sigmoid输出越接近1,相似度越高。

  • 训练好网络后,做one-shot预测,选相似度最高的

 Tripler Loss

  • 训练集的准备:每次选出三张图片做训练。首先随机选中一张图片做锚点(anchor),再从锚点的类别中随机抽样一张作为正样本,排除掉该类别,随机抽样得到负样本。
  • 将三个样本送入神经网络,提取特征。

 

  •  如下图所示,显然,d+应该小一些,d-应该大一些。定义损失函数:

  • 训练好网络后,做one-shot预测,找距离最小的。

总结

 

  相关解决方案