softmax,logistic和svm之间的“分类”有什么区别?

时间:2019-01-21 08:57:37

标签: artificial-intelligence svm caffe logistic-regression softmax

我正在使用caffe对SSD模型进行对象检测,最近工作是调整“ MultiBoxLoss”的损失类型。 在multibox_loss_layer.cpp文件中,其丢失具有SOFTMAX作为默认值和LOGISTIC选项,我在caffe代码中添加了铰链损耗(SVM)选项,并进行了训练,但结果很糟糕。

现在老板希望我使用SVM通过python sklearn对特征图进行分类。

我遇到一个问题,在multibox_loss_layer.cpp文件中,可以使用softmax,logistic和铰链损耗来计算损失。在这一步上,它的数据只是“一维”,但特征图是高维的,我在网上发表文章,看来softmax无法对高维数据进行分类。

例如:如果有三类:猫,狗和兔子,则一维数据仅具有代表猫,狗和兔子的三个值(每个类一个值),但是高维数据则每个类都有很多值(例如特征图),在高维情况下,softmax似乎对此没有任何作用。

所以我想知道softmax,logistic和SVM之间有什么区别。有人可以帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:1)

从未见过将SVM损失函数应用于NN。但是,softmax是一个损失函数,应该使用它来优化解决方案多类分类问题。 Softmax将NN输出转换为每个类别出现的概率。 Logistic函数通常将每个神经元输出优化为一个Logistic问题,因此它并不强制输出仅是一类。如果要解决多标签问题,应使用此功能。

SVM不是函数,是另一个分类器。将softmax与SVM进行比较是没有意义的,因为第一个是损失函数,第二个是分类器。

相关问题