什么是SVM和铰链损失之间的关系?

时间:2015-12-17 02:43:12

标签: machine-learning svm logistic-regression

我的同事和我正试图围绕逻辑回归和SVM之间的区别。显然,他们正在优化不同的目标函数。 SVM是否就像说它是一个简单优化铰链损失的判别分类器一样简单?还是比这更复杂?支持向量如何发挥作用?松弛变量怎么样?为什么你不能拥有深度SVM以及你有一个具有sigmoid激活函数的深度神经网络?

1 个答案:

答案 0 :(得分:15)

我会及时回答一件事

  

SVM是否就像说它是一个简单优化铰链损失的判别分类器一样简单?

SVM只是一个线性分类器,通过L2正则化优化铰链损失

  

还是比这更复杂?

不,它只是"只是"然而,有不同的方式来看这个模型导致复杂,有趣的结论。特别是,这种特定的损失函数选择导致非常有效的核化,这对于对数丢失(逻辑回归)和mse(线性回归)都不是这样。此外,您可以显示非常重要的理论属性,例如与Vapnik-Chervonenkis维数减少相关的属性,从而导致过度拟合的可能性较小。

直观地看待这三种常见的损失:

  • 铰链:max(0, 1-py)
  • 日志:y log p
  • mse:(p-y)^2

只有第一个具有属性,一旦正确分类 - 它有0罚款。即使它正确地对样本进行分类,所有剩余的仍然会惩罚您的线性模型。为什么?因为它们与回归分类更相关,所以他们需要完美预测,而不仅仅是正确

  

支持向量如何发挥作用?

支持向量只是放置在决策边界附近的样本(丢失地说)。对于线性情况,它没有太大变化,但由于SVM的大部分功能在于其核化 - 因此SV非常重要。一旦引入内核,由于铰链损失,可以有效获得SVM解决方案,并且支持向量是从训练集中记住的唯一样本,因此构建非线性决策边界与训练数据的子集。

  

松弛变量怎么样?

这只是铰链损耗的另一个定义,当您想要对解决方案进行内核化并显示凸性时更有用。

  

为什么你不能拥有深度SVM以及你有一个具有sigmoid激活功能的深层神经网络?

但是,由于SVM 不是概率模型,因此其训练可能有点棘手。此外,SVM的整体优势来自效率全局解决方案,一旦您创建了深层网络,两者都将丢失。然而,有这样的模型,特别是SVM(具有平方铰链损耗)现在经常是最深层网络层的选择 - 因此整个优化实际上是深度SVM。在它们之间添加更多层与SVM或其他成本无关 - 它们完全由它们的激活定义,并且您可以例如使用RBF激活函数,只是它已被多次显示它导致弱模型(对于局部特征)被检测到。)

总结一下:

  • 有深度SVM,这只是一个典型的深层神经网络,顶部有SVM层。
  • 没有将SVM层"放在中间",因为训练标准实际上只适用于网络的输出。
  • 使用"典型" SVM内核作为激活函数在深度网络中不受欢迎,因为它们的 locality (与非常全局的relu或sigmoid相反)