1. 引言:当线性分类器遇到“弯弯绕”的数据
大家好,我是老张,在AI和算法领域摸爬滚打了十几年。今天咱们接着聊线性分类器这个系列,这次的主题是SVM的非线性分类。如果你看过前几篇,应该还记得我们花了很大力气,用拉格朗日乘子法和KKT条件,把寻找最优分类超平面这件事,变成了一个漂亮的凸优化问题求解。但说实话,那都是“理想国”里的故事——数据规规矩矩,一根直线就能划清界限。
现实世界可没这么友好。我印象很深,早年做一个图像分类项目,数据点像两团纠缠在一起的毛线球,根本找不到一条直线能把它们分开。当时团队里有个新人直接说:“线性SVM没戏了,上神经网络吧。” 但我总觉得,SVM这套数学框架如此优雅,不应该就这么轻易放弃。后来才知道,SVM真正的威力,恰恰藏在它处理非线性问题的“核”心里。这就像给你一把只能画直线的尺子,却告诉你它能画出任何复杂的曲线——秘密就在于一个叫“核函数”的数学魔术。
今天这篇,我就带你走完这段从拉格朗日乘子到核函数的完整数学之旅。我们会看到,SVM如何通过一个巧妙的“空间跳跃”,把低维空间里扭成一团的数据,映射到高维空间,然后轻松地用超平面切开。我会尽量用大白话和例子把每一步讲透,就算你数学底子一般,跟着走下来,也能把握住精髓。
2. 回顾:线性SVM的软肋与“升维”的直觉
2.1 线性SVM的“阿喀琉斯之踵”
我们先快速回顾一下硬间隔SVM的核心思想:它要找的是一个能完美分开两类数据,并且间隔(Margin)最大的超平面。用数学语言说,就是求解下面这个优化问题:
最小化:$\frac{1}{2}||w||^2$ 约束条件:$y_i(w^T x_i + b) \geq 1, \quad i=1,...,n$
通过拉格朗日乘子法,我们引入乘子 $\alpha_i \geq 0$,把带约束的问题转化成对偶问题:
最大化:$L(\alpha) = \sum_{i=1}^{n} \alpha_i - \frac{1}{2} \sum_{i=1}^{n}\sum_{j=1}^{n} \alpha_i \alpha_j y_i y_j x_i^T x_j$ 约束条件:$\sum_{i=1}^{n} \alpha_i y_i = 0, \quad \alpha_i \geq 0$
最后得到的分类决策函数是:$f(x) = \text{sign}(\sum_{i=1}^{n} \alpha_i y_i x_i^T x + b)$
看到问题了吗?整个求解过程和最终的分类器,都只依赖于样本特征向量之间的内积 $x_i^T x_j$。这个观察非常关键,是后续所有魔法的起点。
但它的软肋也很明显:只能画直线(或超平面)。对于像异或(XOR)问题这样的经典非线性案例,二维平面上的四个点(0,0)和(1,1)是一类,(0,1)和(1,0)是另一类,你打死也画不出一条直线把它们分开。这就是“本质上的线性不可分”。
2.2 “维度即自由”的升维思想
遇到这种问题,一个很自然的想法是:既然在二维平面里分不开,我们能不能把数据点“扔”到三维甚至更高维的空间里去看看?在更高的维度里,我们或许就能找到一个超平面把它们分开。
举个例子,想象二维平面上的一堆点,它们大致分布在一个圆圈内外。在二维平面里,你无法用直线分开它们。但如果我把每个点 $(x_1, x_2)$ 映射到三维空间 $(x_1, x_2, x_1^2 + x_2^2)$,会发生什么?原来在二维平面上形成一个圆环的点,在三维空间里可能会被一个平面(比如 $z=1$)完美地分成上下两层。这就是“升维”的直观威力。
更形式化地说,我们寻找一个映射函数 $\phi(x)$,把原始特征空间(比如二维)中的数据点 $x$,映射到一个更高维(甚至无限维)的特征空间 $\mathcal{H}$ 中去,即 $\phi: \mathbb{R}^d \rightarrow \mathcal{H}$。我们希望在这个新的高维空间 $\mathcal{H}$ 里,数据变得线性可分了。这样,我们就可以在高维空间里应用线性SVM的那一套成熟方法。
3. 核函数:高维空间内积的“捷径”
3.1 直接映射的灾难与内积的核心地位
升维的想法很美,但一实践就碰壁。第一个问题是:映射到多少维合适?对于复杂数据,可能需要映射到极高的维度,甚至无限维。第二个问题更致命:计算灾难。即使我们知道了映射 $\phi$,在高维空间里计算向量 $\phi(x_i)$ 和 $\phi(x_j)$ 本身,以及它们的内积 $\phi(x_i)^T \phi(x

从拉格朗日乘子到核函数:SVM非线性分类的数学之旅&spm=1001.2101.3001.5002&articleId=151204422&d=1&t=3&u=d67479fa70194e4da05975dc2006d62a)
2万+

被折叠的 条评论
为什么被折叠?



