cnn为啥最后一层用softmax而不是其他分类器

深度学习用来特征提取,那么提取了特征之后为啥分类器用的是softmax而不是其他分类器,是不是说明了大量特征情况下简单的才是最好的?谢谢!
已邀请:

ruirui_ICT - 听大大们说,要“左手代码,右手公式”,喵~

赞同来自: hahaha caffe 李扬 ZhangXu bea_tree

我来简单说说我的理解:
 
1.我们现在见过的最多的模型都是针对多分类问题,比如mnist和cifar10里面分成10类,imagenet里分成1000类,这种多分类问题使用softmax分类器简单快捷,而且经典的AlexNet里也是这么用的,大家就愉快的一直用下来了~
 
2.利用其它的分类器也是可以的呀,比如R-CNN里就是把特征提出来用SVM分类的么(不过好像作者比较了SVM和softmax感觉效果差不多,于是Fast R-CNN又改回softmax了。。)。以及ICCV15的Marr Prize不就是利用了Random Forest,取得了比softmax更好的性能嘛~
 
3.再发散一点,CNN后面也不一定要接分类器呀,也是根据任务来定的,主要是看需要什么loss,如果是分类可以用softmax loss,如果是回归可以用cross entropy,还有见过搞emmbedding任务用hinge loss的,各种各样。。不过我们现在常用的提特征的CNN都是在imagenet1000的分类数据集上训练的,比如最开始的AlexNet和后来的VGG,今年3.57的结果出来估计以后大家是不是都盼着用MSRA的ResNet提了吧。。
 
4.最后吐槽一句,不满意的请无视。。我感觉CNN这么神奇的东西不是设计出来专门用于提特征的,能设计成一个end to end的网络把多个阶段合并起来BP才是精髓吧,所以根据自己的任务设计一个更合适的loss和网络进行训练或finetune,说不定会得到比直接用别人训练好的模型提特征更好的结果吧~(直接的一个例子不就是R-CNN到Fast R-CNN的发展么)当然模型效果好了特征也会跟着好,当成黑盒直接提特征再适合不过啦~
 
(针对最近大大们头疼的侵权问题,在这里弱弱的加一句:本内容为本人原创,仅授权给CaffeCN使用,如需转载须注明转载来源。(⊙v⊙))

要回复问题请先登录注册