偏差-方差困境是机器学习方法的面临的主要问题。如果模型过于简单则模型将难以找到输入和输出之间的适当关系(欠拟合)。如果一个模型太复杂,它在训练中会表现得更好,但在看不见的数据上的性能会有更大的差异(或过拟合),而且复杂的模型往往需要更昂贵的计算资源。对于机器学习来说理想的方法是,能够找到一个简单的模型,它训练起来既很快又可以找到输入和输出之间的复杂关系。核方法就是通过将数据的输入空间映射到高维特征空间,在高维特征空间中可以训练简单的线性模型,从而得到高效、低偏差、低方差的模型。
这句话就是本文的写作目的。在看完本文后,希望你能很好地理解这句话的含义以及它为什么重要。
核方法
机器学习世界中有许多的核方法。支持向量机(svm)就是其中之一,在20世纪后期甚至优于当时的神经网络。但是现在因为数据的数量有了突飞猛进的发展,所以核方法并不占优势。因为核方法最适合于中小型数据集,但是在结果的可解释性很重要的问题上核方法还是有优势的。
核方法使用核(或基函数)将输入数据映射到不同的空间。通过这种映射,简单的模型可以在新的特征空间而不是输入空间上训练,从而提高模型的性能。
以上是对核函数的介绍,在本篇文章中将重点介绍径向基函数,这是一个非常简单但常见的核。
线性回归和 RBF(径向基函数)
在回归问题中,我们试图估计从 X 推断 Y 的最佳函数。如果 X 和 Y 之间存在非线性关系,则不能简单地在此数据上拟合线性模型。然而,核方法的目标是在这些非线性关系上使用线性模型并保证结果的是正确的。
内核方法通过将数据转换为更高维度并在此维度上拟合线性模型来实现这一点。通过这种方法我们在原始输入空间中有效地拟合了一个高阶模型。
线性回归
我们先看一下线性回归,然后我们就可以了解如何使用核方法对线性模型生成非线性映射。
最优线性回归是最小化我们模型的预测和目标输出y之间的平方距离的回归器。将这个误差最小化就能得到最优解决方案。
我们可以将最小二乘误差与我们模型的权重进行微分,从而找到产生最小误差的权重向量,结果就是伪逆解。为了正确理解线性代数公式,我们必须熟悉每个变量的维度数:
输入数据 X 是 (Nxd) 维,其中 N 是数据点的数量,d 是特征的数量。因此,逆计算将是一个 (dxd) 矩阵,并且所得的权重矩阵是 (dx1)。我们的权重向量与输入数据中的特征具有相同的维度。这是肯定的,因为当我们从 X 推断 Y 时,我们采用权重和输入数据之间的点积,因此输入必须具有与我们的权重相同的维度。
高维空间中的线性回归
核方法通过使用核或一组 M 个基函数将数据矩阵 X 映射到新的设计矩阵 U(design matrix)。新的设计矩阵具有更高的维度(NxM,其中 M ≥ d)。
我们可以通过采用 M 个基函数 (ϕ) 来构造一个设计矩阵 U,每个基函数都由它们自己的均值和标准差参数化。上面等式中的平均值的维数为 (dx1)。因此,对于输入空间中的每个数据点,我们应用 M 个基函数将输入维度 (Nxd) 转换为新的设计矩阵 (NxM)。
RBF 使用高斯基函数。每个基函数代表输入空间中的高斯分布。每个数据点都在所有高斯分布中进行评估。结果是输入向量从 d 维到 M 维的映射。
要参数化这些高斯分布的均值和标准差,可以使用k-means聚类得到参数化基函数的均值和标准差
现在我们有了我们的设计矩阵 U,并且我们已经将输入数据映射到了一个高维空间,我们可以在这个新的特征空间中拟合一个线性模型。
通过来自特征空间的估计和我们的目标 y 之间的最小二乘误差,并根据我们的新权重向量 l 进行微分,我们发现最优解与输入数据中线性回归的最优解相同 .
这里要注意的是我们的权重向量 (l) 现在是一个 Mx1 向量,在原始输入空间中,权重向量是一个 dx1 向量(记住 M > d)。
合成数据的例子
这是合成的非线性数据。有 10,000 个数据点,我们的 Y 坐标是一维的。这意味着我的数据矩阵 X 的维度为 (10,000x1)。我们可以尝试通过使用上面看到的伪逆解计算最佳权重来拟合该数据的线性模型。正如您在上面看到的那样,它的表现并不好。
下面我们通过在高维特征空间中拟合相同的线性模型,更好地近似数据中的真实关系。
首先,我将 200 个基函数应用于我的每个数据点。我在我的输入空间中采用 200 个高斯分布,并评估我所有基本函数的每个数据点。我的新设计矩阵现在是 (10,000x200) 维的。然后我使用相同的伪逆解来获得这个新特征空间中的最佳权重。
RBF模型估计的关系是非线性的,并且与数据吻合得很好。但是这个新模型仍然是一个线性回归器!因为我们将它拟合到新特征空间中,所以我们间接地在原始输入空间中拟合了一个复杂的非线性模型。
总结
核方法使用核(或一组基函数)将低维输入空间映射到高维特征空间。并在新的特征空间中训练一个线性模型(ax b类型的线性模型)。我们实际上是在原始输入空间中训练一个高阶模型(例如ax² bx c类型)。通过这样做,既保留了简单模型的所有优势(如训练速度、具有解析解、方差更低),也获得了更复杂模型的优势(更好的映射、更低的偏差)。这就是内核方法如此强大的原因!