如何使用Caffe siamese CNN强制表示标签概率的特征向量?

时间:2016-01-22 12:38:04

标签: neural-network deep-learning caffe conv-neural-network pycaffe

How to Create CaffeDB training data for siamese networks out of image directory

相关

如果我有N个标签。如何强制执行大小为N的特征向量在对比损失层之前代表每个类的某种概率?或者通过暹罗网络设计自动出现?

1 个答案:

答案 0 :(得分:2)

如果您只在暹罗网络中使用对比度损失,则无法强制网络分类为正确的标签 - 因为网络仅使用"相同/不相同"信息并不知道不同类的语义。

你可以做的是训练多个损失层 您应该瞄准训练一个足够适合您的域的特征表示,以便查看某些输入的训练特征向量(在某些高维度),您应该能够轻松地将该输入分类到正确的类。此外,鉴于两个输入的特征表示,应该能够容易地说出它们是否相同"或者"不一样"。
因此,我建议您使用"bottom"作为其中一个"InnerProduct"图层的输出,使用两个丢失层训练您的深层网络。一个损失是对比损失。另一个损失应该有另一个"InnerProduct"图层,其中包含num_output: N"SoftmaxWithLoss"图层。

在这项工作中使用了类似的概念: Sun, Chen, Wang and Tang Deep Learning Face Representation by Joint Identification-Verification NIPS 2014