核函数原理深度解析:从定义到应用
核函数原理深度解析:从定义到应用
核函数是机器学习和统计学中的一个重要概念,特别是在支持向量机(SVM)和其他基于核方法的算法中。它通过一个隐式的方式将数据映射到一个高维空间,从而使得在该高维空间中线性不可分的问题变得线性可分。本文将通过一个具体的二分类问题,深入解析核函数的原理及其在分类任务中的应用。
核函数的定义
核函数(Kernel Function)是一个定义在输入空间中的函数,满足
[ K(x, y) = \phi(x) \cdot \phi(y) ]
其中 $\phi$ 是一个从输入空间映射到高维特征空间的映射,$\cdot$ 表示高维空间中的内积。
核函数的作用
核函数通过计算输入数据在高维空间中对应点的内积,而不需要显式进行映射。这种方法被称为“核技巧”(Kernel Trick)。
核函数的诞生
让我们通过一个具体的例子来理解核函数是如何解决实际问题的。
假设我们现在正在处理一个二分类问题,红蓝两类样本在原始空间 $\mathcal{X}$ 中的分布如左图所示。如果要在原始空间中将两类样本分开,需要一个复杂的椭圆方程。但是,如果我们将原始空间中的所有样本点通过一个映射关系 $\phi$ 映射到高维空间 $\mathcal{H}$ 中,就可以用一个简单的"平面"将两类样本划分开。
映射之后,$\mathcal{X}$ 中的每个样本点的坐标由 $x$ 变为 $\phi(x)$。于是,原始空间中的内积平方可以表示为:
[ K(x, y) = (\phi(x) \cdot \phi(y))^2 ]
这说明,我们可以通过计算原始空间中的内积平方来间接获得高维空间中的内积,从而避免了显式地进行高维映射。
核函数在分类中的应用
接下来,我们通过一个简单的二分类问题来展示核函数的作用。
假设现在我们有训练集:
[ {(x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)} ]
其中每个样本 $x_i$ 属于 $d$ 维空间,标签 $y_i$ 可能是 -1 或 1。
通过映射 $\phi$ 将原始空间中的点映射到高维空间中,训练集变为:
[ {(\phi(x_1), y_1), (\phi(x_2), y_2), \ldots, (\phi(x_n), y_n)} ]
假设“+”标记点属于正类($y=1$),“○”标记点属于负类($y=-1$)。我们可以分别求出正负两类点的中心位置:
[ \mu_+ = \frac{1}{n_+} \sum_{i \in \mathcal{P}} \phi(x_i) ]
[ \mu_- = \frac{1}{n_-} \sum_{i \in \mathcal{N}} \phi(x_i) ]
根据“三角形法则”可以求出由负类中心点指向正类中心点的向量:
[ \Delta = \mu_+ - \mu_- ]
对于一个新的样本点 $\phi(x)$,我们可以通过计算其与 $\Delta$ 的夹角来判断其类别:
[ \cos \theta = \frac{\phi(x) \cdot \Delta}{|\phi(x)| |\Delta|} ]
如果 $\cos \theta > 0$,则属于正类;如果 $\cos \theta < 0$,则属于负类。最后通过信号函数 $\text{sign}(\cdot)$ 处理即可得到类别。
核函数的性质
- 是否必须知道具体的映射 $\phi$?No!
- 是否只需要核函数 $K$ 就可以进行求解?Yes!
- 什么样的 $K$ 是符合要求的?有限半正定的(稍后讲解)
- 给定一个映射 $\phi$,是否能找到一个相关的核函数 $K$?Yes!
- 给定一个核函数 $K$,是否能构建一个特征空间 $\mathcal{H}$?Yes!
有限正半定函数
一个对称矩阵 $K$ 被称为半正定矩阵,如果对于所有非零向量 $a$,都有:
[ a^T K a \geq 0 ]
核函数需要满足的条件是其内积矩阵是半正定矩阵。
常用核函数
- 线性核:$K(x, y) = x \cdot y$
- 多项式核:$K(x, y) = (x \cdot y + c)^d$
- 高斯核(RBF核):$K(x, y) = \exp(-\gamma |x - y|^2)$
本文主要参考了李政轩老师系列视频:https://www.youtube.com/watch?v=p4t6O9uRX-U&list=PLt0SBi1p7xrRKE2us8doqryRou6eDYEOy&index=1