我在我的书(Webb 和 Wiley 的统计模式分类)中阅读了关于 SVM 和线性不可分数据的部分:
在许多现实世界的实际问题中,将没有分隔类的线性边界,搜索最优分离超平面的问题是没有意义的。即使我们要使用复杂的特征向量,,将数据转换为类线性可分的高维特征空间,这将导致数据的过拟合,从而导致泛化能力差。
为什么将数据转换到类线性可分的高维特征空间会导致过拟合和泛化能力差?
我在我的书(Webb 和 Wiley 的统计模式分类)中阅读了关于 SVM 和线性不可分数据的部分:
在许多现实世界的实际问题中,将没有分隔类的线性边界,搜索最优分离超平面的问题是没有意义的。即使我们要使用复杂的特征向量,,将数据转换为类线性可分的高维特征空间,这将导致数据的过拟合,从而导致泛化能力差。
为什么将数据转换到类线性可分的高维特征空间会导致过拟合和泛化能力差?
@ffriend 有一篇关于它的好帖子,但一般来说,如果你转换到高维特征空间并从那里训练,学习算法会“被迫”考虑更高空间的特征,即使它们可能什么都没有与原始数据有关,并且不提供预测质量。
这意味着您在训练时不会正确概括学习规则。
举一个直观的例子:假设你想根据身高预测体重。你拥有所有这些数据,对应于人们的体重和身高。让我们非常普遍地说,它们遵循线性关系。也就是说,您可以将体重 (W) 和身高 (H) 描述为:
, 在哪里是你的线性方程的斜率,并且是 y 截距,或者在这种情况下,是 W 截距。
假设您是一位经验丰富的生物学家,并且您知道这种关系是线性的。您的数据看起来像一个向上趋势的散点图。如果您将数据保存在二维空间中,您将通过它拟合一条线。它可能没有达到所有要点,但没关系 - 你知道这种关系是线性的,无论如何你都想要一个好的近似值。
现在假设您获取了这个二维数据并将其转换为更高维空间。所以不仅仅是,您还添加了 5 个维度,,,,, 和.
现在你去寻找多项式的系数来拟合这个数据。也就是说,你想找到系数对于“最适合”数据的这个多项式:
如果你这样做,你会得到什么样的线路?你会得到一个看起来很像@ffriend 最右边的情节。您已经过度拟合数据,因为您“强制”您的学习算法考虑与任何事情无关的高阶多项式。从生物学上讲,体重只是线性地取决于身高。它不依赖于或任何更高阶的废话。
这就是为什么如果你盲目地将数据转换到更高阶的维度,你会冒着过拟合的风险,而不是泛化。
假设我们正在尝试使用线性回归(这基本上就是 SVM 所做的)来寻找近似平原上的一组 2D 点的函数。在红十字下方的 3 幅图像中是观察值(训练数据),3 条蓝线代表用于回归的具有不同程度多项式的方程。
第一个图像是由线性方程生成的。如您所见,它反映的点很差。这被称为欠拟合,因为我们给学习算法的“自由度”太小(度数太小的多项式)。第二张图像要好得多——我们使用了二次多项式,看起来还不错。但是,如果我们进一步增加“自由度”,我们会得到第三张图像。它的蓝线正好穿过十字架,但你相信这条线真的描述了依赖性吗?我不这么认为。是的,在训练集上,学习误差(十字和直线之间的距离)非常小,但是如果我们再添加一个观察值(例如,来自真实数据),它的误差很可能会比我们使用第二个方程时大得多图片。这种效应称为过拟合- 我们试图过于密切地跟踪训练数据并遇到麻烦。使用单个变量的多项式是内核的一个简单示例 - 而不是一维 () 我们使用几个 (,,, 等等。)。您可以看到将数据转换为更高维空间可能有助于克服欠拟合,但也可能导致过拟合。真正的挑战是找到“恰到好处”的东西。为您进一步研究该主题提供一些提示。您可以使用称为交叉验证的过程检测过度拟合。简而言之,您将数据分成 10 个部分,其中 9 个用于训练,1 个用于验证。如果验证集的误差远高于训练集,那么你就已经过拟合了。大多数机器学习算法使用一些允许克服过拟合的参数(例如,SVM 中的内核参数)。此外,这里的一个流行关键字是正则化- 修改直接影响优化过程的算法,字面意思是“不要太紧跟训练数据”。
顺便说一句,我不确定 DSP 是否适合此类问题,您可能也会有兴趣访问CrossValidated。
你进一步阅读了吗?
在 6.3.10 部分结束时:
“但是,通常必须设置内核的参数,并且选择不当会导致泛化能力差。对于给定问题的最佳内核的选择没有得到解决,并且已经针对特定问题导出了特殊内核,例如文档分类"
这将我们引向第 6.3.3 节:
“可接受的内核必须可表示为特征空间中的内积,这意味着它们必须满足 Mercer 条件”
内核本身相当困难的区域,您可以拥有大数据,在不同的部分应该应用不同的参数,例如平滑,但不知道确切的时间。因此,这样的事情很难一概而论。