- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我和我的同事正在尝试理解逻辑回归和支持向量机之间的区别。显然他们正在优化不同的目标函数。 SVM 是否像说它是一个判别分类器一样简单,可以简单地优化铰链损失?或者比这更复杂?支持向量如何发挥作用?那么松弛变量呢?为什么不能像不能拥有具有 sigmoid 激活函数的深度神经网络那样拥有深度 SVM?
最佳答案
我每次只回答一件事
Is an SVM as simple as saying it's a discriminative classifier that simply optimizes the hinge loss?
SVM 只是一个线性分类器,通过 L2 正则化优化铰链损失。
Or is it more complex than that?
不,这“只是”这样,但是可以通过不同的方式来看待这个模型,从而得出复杂而有趣的结论。特别是,损失函数的这种特定选择会导致极其有效的核化,而这对于对数损失(逻辑回归)或 mse(线性回归)来说并非如此。此外,您还可以展示非常重要的理论属性,例如与 Vapnik-Chervonenkis 降维相关的理论属性,从而减少过度拟合的可能性。
直观地看一下这三种常见的损失:
max(0, 1-py)
y日志p
(p-y)^2
只有第一个具有一旦某物被正确分类的属性 - 它的惩罚为 0。即使线性模型对样本进行了正确分类,所有剩余的模型仍然会惩罚您的线性模型。为什么?因为他们与回归比分类更相关,所以他们想要完美的预测,而不仅仅是正确。
How do the support vectors come into play?
支持向量只是放置在决策边界附近的样本(粗略地说)。对于线性情况,它没有太大变化,但由于 SVM 的大部分功能在于其核化 - SV 非常重要。一旦引入核,由于铰链损失,可以有效获得SVM解,并且支持向量是训练集中唯一记住的样本,从而构建非线性与训练数据子集的决策边界。
What about the slack variables?
这只是铰链损失的另一个定义,当您想要对解决方案进行核化并显示凸性时更有用。
Why can't you have deep SVM's the way you can't you have a deep neural network with sigmoid activation functions?
您可以,但是由于 SVM 不是概率模型,因此它的训练可能有点棘手。此外,SVM 的全部优势来自于效率和全局解决方案,一旦创建深度网络,这两者都会丢失。然而,确实有这样的模型,特别是SVM(具有平方铰链损失)现在经常被选择用于深度网络的最顶层——因此整个优化实际上是一个深度SVM。在中间添加更多层与 SVM 或其他成本无关 - 它们完全由其激活定义,例如您可以使用 RBF 激活函数,简单地说,它已被多次证明会导致模型较弱(局部特征)被检测到)。
总结一下:
关于machine-learning - SVM 和铰链损失之间有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325759/
我是一名优秀的程序员,十分优秀!