3、孪生网络/连体网络(Siamese Network)
目的:
用Siamese Network (孪生网络) 解决Few-shot learning (小样本学习)。
Siamese Network并不是Meta Learning最好的方法,
但是通过学习Siamese Network,非常有助于理解其他Meta Learning算法。
这里介绍了两种方法:Siamese Network (孪生网络)、Trplet Loss
Siamese Network孪生网络
1、拿到一个样本量较大的训练集,对数据集进行正负样本分类。
正样本图片之间两两标一,负样本图片之间两两标0。
2、搭建一个卷积神经网络(CNN),用于提取特征。
CNN中有卷积层,池化层,和展平层。
输入是一张图片x,输出是提取的特征向量f(x)。
3、训练神经网络。
- 将两张图片输入同一CNN网络
- 第一张图片提取的向量为
,
- 第二张图片提取的向量为
。
- 两个特征向量之间的区别向量:
- 全连接层处理向量
,得到标量。
- 用Sigmoid激活函数,输出一个0-1之间的实数
正样本:
两张图都是老虎,因此标签为1。
- 损失函数Loss是标签与预测
之间的差值。
负样本:
Triplet Loss:
Reference: Facenet:A unified embedding for face recognition and clustering. In CVPR,2015