核技巧可以将一个非线性问题映射到一个线性问题。
我的问题是:
1. 线性问题和非线性问题的主要区别是什么?这两种问题的差异背后的直觉是什么?核技巧如何帮助我们在非线性问题上使用线性分类器?
2. 为什么点积在这两种情况下都如此重要?
谢谢。
回答:
许多分类器,包括线性支持向量机 (SVM),只能解决线性可分的问题,即属于类别 1 的点可以用超平面与属于类别 2 的点分开。
在许多情况下,一个线性不可分的问题可以通过对数据点应用变换 phi() 来解决;这个变换被称为将点变换到特征空间。我们希望在特征空间中,这些点将是线性可分的。(注意:这还不是核技巧…请继续关注。)
可以证明,特征空间的维度越高,在该空间中线性可分的问题的数量就越多。因此,理想情况下,我们希望特征空间的维度尽可能高。
不幸的是,随着特征空间维度的增加,所需的计算量也会增加。这就是核技巧的用武之地。许多机器学习算法(包括 SVM)可以用这样一种方式来公式化:它们对数据点执行的唯一操作是两个数据点之间的标量积。(我将用 <x1, x2>
表示 x1 和 x2 之间的标量积。)
如果我们将点变换到特征空间,则标量积现在看起来像这样:
<phi(x1), phi(x2)>
关键的见解是,存在一类称为核函数的函数,可用于优化此标量积的计算。核函数是一个函数 K(x1, x2)
,它具有以下属性
K(x1, x2) = <phi(x1), phi(x2)>
对于某些函数 phi()。换句话说:我们可以在低维数据空间(x1 和 x2 “存在”的地方)中评估标量积,而无需变换到高维特征空间(phi(x1) 和 phi(x2) “存在”的地方)– 但我们仍然可以获得变换到高维特征空间的好处。这被称为核技巧。
许多流行的核函数,例如高斯核,实际上对应于变换到无限维特征空间的变换 phi()。核技巧允许我们计算该空间中的标量积,而无需在该空间中显式地表示点(这显然在具有有限内存的计算机上是不可能的)。