Neural network 如何使用Caffe暹罗CNN加强表示标签概率的特征向量?

Neural network 如何使用Caffe暹罗CNN加强表示标签概率的特征向量?,neural-network,deep-learning,caffe,conv-neural-network,pycaffe,Neural Network,Deep Learning,Caffe,Conv Neural Network,Pycaffe,有关 如果我有N标签。我怎样才能确保对比损失层之前的大小N的特征向量代表每个类别的某种概率?或者说,暹罗网络设计会自动实现这一点?如果你只在暹罗网络中使用对比损失,就没有办法强迫网络分类到正确的标签中——因为网络只使用“相同/不相同”信息进行训练,并且不知道不同类别的语义 您可以使用多个损耗层进行培训。 您的目标应该是训练一种对您的领域足够有用的特征表示,以便查看某些输入(在某些高维中)的经过训练的特征向量,您应该能够轻松地将该输入分类到正确的类中。此外,考虑到两个输入的特征表示,应该能够很容易

有关


如果我有
N
标签。我怎样才能确保对比损失层之前的大小
N
的特征向量代表每个类别的某种概率?或者说,暹罗网络设计会自动实现这一点?

如果你只在暹罗网络中使用对比损失,就没有办法强迫网络分类到正确的标签中——因为网络只使用“相同/不相同”信息进行训练,并且不知道不同类别的语义

您可以使用多个损耗层进行培训。
您的目标应该是训练一种对您的领域足够有用的特征表示,以便查看某些输入(在某些高维中)的经过训练的特征向量,您应该能够轻松地将该输入分类到正确的类中。此外,考虑到两个输入的特征表示,应该能够很容易地说出它们是“相同”还是“不相同”。
因此,我建议您使用两个损耗层来训练您的深层网络,并将
“bottom”
作为其中一个
“InnerProduct”
层的输出。一个损失是对比损失。另一个损耗应具有另一个
“InnerProduct”
层,该层具有
num\u输出:N
“SoftmaxWithLoss”

在这项工作中使用了类似的概念:
.

所以我的网中有某种叉子,最后落在那两个损失层?例如,我将fc7作为对比损耗的输入,另一个fc8作为softmax损耗的输入,fc8本身将fc7作为输入。@Feuerteufel完全正确!请注意,您需要向每个损耗层添加
loss\u weight
参数-它们可能对总体损耗产生不同的影响。你可以优先考虑对比损失,反之亦然。给予两者相同的权重是否有(不利)的优势?最后我想有一个好的分类器。两个损耗层是否都有fc8作为输入,或者在进入SoftMax层之前是否有必要再增加一层?@Feuerteufel(1)关于
损耗(weight)
我想你必须试着看看是否有一个损耗主导了整个过程。。。(2) 在
fc7
上训练对比损失更一般,但我可以看到它也在
fc8
上工作。我想你得试试看。如果你能回到这里,发表你的见解与我们分享,那就太好了。明白了,忘记了在重建caffe之前进行清理,现在它开始工作了。