few-shot learning(二):Siamese Network

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

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

learning Pairwise Similarity Scores

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

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

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

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

few-shot learning(二):Siamese Network

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

few-shot learning(二):Siamese Network

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

few-shot learning(二):Siamese Networkfew-shot learning(二):Siamese Network

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

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

few-shot learning(二):Siamese Network

few-shot learning(二):Siamese Network

 Tripler Loss

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

few-shot learning(二):Siamese Network

 

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

few-shot learning(二):Siamese Networkfew-shot learning(二):Siamese Network

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

few-shot learning(二):Siamese Network

总结

few-shot learning(二):Siamese Network