为啥线性支持向量机与 HoG 描述符配合得很好?

Posted

技术标签:

【中文标题】为啥线性支持向量机与 HoG 描述符配合得很好?【英文标题】:Why does linear svms work well with HoG descriptors?为什么线性支持向量机与 HoG 描述符配合得很好? 【发布时间】:2014-08-19 16:09:35 【问题描述】:

好的,我见过的几乎所有使用 HoG 功能的应用程序都使用线性 svm 作为分类器。有人可以为我解释为什么选择线性 svm 以及为什么它们能提供良好的性能吗?

是否选择了线性 svm,因为它比使用多项式或高斯核的 svm 更简单、更容易训练,并且使用这些核并没有显着提高性能?

【问题讨论】:

使用非线性内核进行训练并不总是具有良好的性能。非线性内核有时可能会导致过度训练,从而导致测试性能不佳。这有时与您的数据有多复杂有关。通常,不复杂的数据与 RBF 内核相结合可能会损害测试准确性(过度训练,而不是在样本外对象中训练模型泛化)。因此,内核决策和对它们的良好校准会显着影响性能。我希望这会有所帮助! @endif 有趣的问题。试试这个:“为什么在 HOG 特征上训练的线性 SVM 表现如此出色?” arxiv.org/abs/1406.2419 【参考方案1】:

有关更多信息,请阅读名为“Why do linear SVMs trained on HOG features perform so well?”的期刊论文 Hilton Bristow, Simon Lucey (2014)

【讨论】:

【参考方案2】:

线性或非线性不是 HOG 或任何其他特征的问题。它只是与实例数 + 集群数 + 特征维度数相关。一般来说,线性模型优先用于包含比实例更多特征维度的数据集。如果情况相反,那么您应该选择像内核 SVM 这样的非线性,因为它会将您的数据隐式投影到另一个空间中,在该空间中,您的实例再次以更多维度表示。

在大多数情况下,通过将 HOG 应用于图像,您可以获得非常多的特征维度。因此,您可以简单地使用线性模型。但是,如果您有 100000... 类和 10000000... 图像,那么 HOG + 线性模型将不够用。因此,在 ImageNet 挑战赛中没有人使用 HOG 和线性 SVM。

【讨论】:

【参考方案3】:

就我个人而言,我从未使用过梯度直方图,但在你的情况下,我会评估你的 HoG 数据是否是线性判别的。我不只是假设如果每个人都对 HoG 使用线性分类器是因为你应该这样做。批判性地评估该断言。

试试这个:使用 LDA 投影一个 HoG 数据集,然后绘制转换后的特征空间的散点图。检查是否可以使用最大边距超平面来区分类。

【讨论】:

【参考方案4】:

真正重要的是速度。无论您使用什么功能,内核 SVM 都可以在检测方面获得更好的性能。 但是核 SVM 是耗时的,特别是对于分类器被多次评估的滑动窗口检测器。所以在目标检测中经常选择线性SVM。 HOG 是一个很好的目标检测描述符,使用线性 SVM 可以达到很好的性能。如果不考虑计算复杂性,我们可以期待使用内核 SVM 获得更好的性能。

【讨论】:

以上是关于为啥线性支持向量机与 HoG 描述符配合得很好?的主要内容,如果未能解决你的问题,请参考以下文章

支持向量机原理线性不可分支持向量机与核函数

李航统计学习方法(第二版)(十四):线性支持向量机与软间隔最大化

如何使 HOG 特征向量适应线性 svm 输入

李航统计学习方法(第二版)(十三):线性可分支持向量机与硬间隔最大化

机器学习二十:线性不可分支持向量机与核函数

基于SVM支持向量机和HOG特征的交通标志检测算法matlab仿真