与如何从图像目录中为连体网络创建 CaffeDB 训练数据相关
如果我有N
标签。我如何强制N
在对比损失层之前的大小特征向量代表每个类的某种概率?还是通过连体网设计自动提供?
与如何从图像目录中为连体网络创建 CaffeDB 训练数据相关
如果我有N
标签。我如何强制N
在对比损失层之前的大小特征向量代表每个类的某种概率?还是通过连体网设计自动提供?
如果只在 Siamese 网络中使用对比损失,则无法强制网络分类为正确的标签 - 因为网络仅使用“相同/不同”信息进行训练,并且不知道不同类的语义.
您可以做的是使用多个损失层进行训练。
您的目标应该是训练一个足以满足您的域的特征表示,以便查看某些输入(在某个高维度)的训练特征向量,您应该能够轻松地将该输入分类到正确的类。此外,鉴于两个输入的特征表示,应该能够轻松说出它们是“相同”还是“不同”。
因此,我建议您使用两个损失层"bottom"
作为其中一层的输出来训练您的深度网络"InnerProduct"
。一种损失是对比损失。另一个损失应该有另一个"InnerProduct"
层num_output: N
和一个"SoftmaxWithLoss"
层。
在这项工作中使用了一个类似的概念: Sun、Chen、Wang 和 Tang Deep Learning Face Representation by Joint Identification-Verification NIPS 2014。