首页 文章

Tensorflow Inception模型再培训,为什么不给SVM带来瓶颈?

提问于
浏览
1

在初始模型中进行“转移学习”或“重新训练”的常用方法是从模型中获取瓶颈层,将瓶颈张量挤压为平坦的2048神经元层,然后添加最终层,其中数字神经元与要分类的类别数量(最终是softmax) .

我的问题是:相反,将这个瓶颈层训练为神经网络,为什么不将这些高度抽象的2048特征提供给SVM,这可能会取得更好的结果呢?

非常感谢!

1 回答

  • 1

    这些天的趋势是执行端到端学习,而不是让模型学习一些抽象表示,然后将这种表示提供给其他模型(例如SVM) .

    这种趋势背后的直觉如下:如果您在某个子任务 S1 上优化模型 A ,在另一个子任务 S2 上优化模型 B ,两个模型都将收敛到某些局部最优解 . 预期两个局部最优的组合与通过优化完整任务 S = (S1 + S2) 获得的最优值相比是次优的 . 在端到端优化模型时,您可以将模型的所有部分调整在一起,以更好地解决任务 . 但是,当您拆分模型并分别训练其不同的部件时,您会破坏部件之间的直接信号,并且为了改善模型 B 的结果的特定任务而难以改进模型 A 的输出,因为您没有直接优化两种模型的方法 .

    你所建议的东西在过去很受欢迎 . 例如,Girshick的原始论文正在使用预训练的卷积神经网络来提取特征,然后将这些特征提供给SVM进行分类 .

    然而,这种方法在随后的R-CNN迭代中被放弃,Fast RCNN,SVM步骤被softmax取代 . 在Fast R-CNN的表8第5.4节中,作者将相同的模型与SVM与softmax进行了比较,他们得出的结论是softmax稍微优于SVM版本 .

相关问题