支持向量机上
理论引入
Learning Machines:什么是学习机器?
目标:学习一个映射关系
- 学习机器的任务是学习输入 x i \mathbf{x}_i xi 到输出 y i y_i yi 的映射关系:
x i ⟶ y i \mathbf{x}_i \longrightarrow y_i xi⟶yi
学习机器模型的定义形式:
我们假设有一个函数模型来描述这个映射:
y = f ( x , α ) y = f(\mathbf{x}, \boldsymbol{\alpha}) y=f(x,α)
其中:
- x \mathbf{x} x:输入特征向量
- f f f:模型结构(如线性函数、神经网络、SVM 等)
- α \boldsymbol{\alpha} α:模型参数(如权重、偏置、核参数等)
学习本质:通过调整 α \boldsymbol{\alpha} α 参数,使得 f ( x , α ) f(\mathbf{x}, \boldsymbol{\alpha}) f(x,α) 更好地逼近真实标签 y y y。
Generalization vs. Learning:泛化 vs. 拟合
学习过程的本质:
- 通过参数的调整,对特征空间进行划分,从而实现分类或回归。
- 经典方法是:最小化经验风险(Empirical Risk)。
学到的内容是规则还是记忆?
- 学习机器可能:
- 只记住样本(记忆训练数据)
- 提取出一般规律(泛化能力)
问题在于,如果我们只最小化经验风险,机器是否真正学到了规律?
风险的定义与分析
期望风险(Expected Risk):也称为泛化误差
R ( α ) = ∫ 1 2 ∣ y − f ( x , α ) ∣ d P ( x , y ) R(\boldsymbol{\alpha}) = \int \frac{1}{2} |y - f(\mathbf{x}, \boldsymbol{\alpha})| \, dP(\mathbf{x}, y) R(α)=∫21∣y−f(x,α)∣dP(x,y)
- 这是机器在所有可能样本上的平均错误,是我们真正想要最小化的目标。
- 但问题是: P ( x , y ) P(\mathbf{x}, y) P(x,y) 是未知的分布,我们无法直接计算它。
经验风险(Empirical Risk):也称为训练误差
R emp ( α ) = 1 2 l ∑ i = 1 l ∣ y i − f ( x i , α ) ∣ R_{\text{emp}}(\boldsymbol{\alpha}) = \frac{1}{2l} \sum_{i=1}^{l} \left| y_i - f(\mathbf{x}_i, \boldsymbol{\alpha}) \right| Remp(α)=2l1i=1∑l∣yi−f(xi,α)∣
- 我们能做的是在训练数据上计算平均误差,即经验风险。
问题是:
是否 R ( α ) ≈ R emp ( α ) R(\boldsymbol{\alpha}) \approx R_{\text{emp}}(\boldsymbol{\alpha}) R(α)≈Remp(α)?
Empirical Risk 的局限性
如何让经验风险趋近于 0?
只要我们使用一个具有强大记忆能力的模型(比如高阶多项式、深度神经网络),就可以拟合训练集,令经验风险非常小。
但这样做的隐患:
- 机器并不一定学到了规律。
- 有可能只是在死记硬背训练数据。
- 此时的泛化误差(Expected Risk)可能非常大。
这就导致了**过拟合(Overfitting)**问题。
结构风险最小化(SRM)理论
什么是 SRM?
目标:不仅最小化经验风险,还要控制模型的结构复杂度。
新的风险定义方式:
Total Risk = Empirical Risk ⏟ 拟合好训练数据 + Structure Risk ⏟ 模型复杂度引起的风险 \text{Total Risk} = \underbrace{\text{Empirical Risk}}_{\text{拟合好训练数据}} + \underbrace{\text{Structure Risk}}_{\text{模型复杂度引起的风险}} Total Risk=拟合好训练数据 Empirical Risk+模型复杂度引起的风险 Structure Risk
也可以理解为:
R total = R emp + Ω ( 模型复杂度 ) R_{\text{total}} = R_{\text{emp}} + \Omega(\text{模型复杂度}) Rtotal=Remp+Ω(模型复杂度)
其中 Ω \Omega Ω 是对模型复杂度的惩罚函数(如正则化项 λ ∣ ∣ w ∣ ∣ 2 \lambda ||\boldsymbol{w}||^2 λ∣∣w∣∣2)
理解“结构”和“规则”
什么是结构?
结构是指模型的构成形式,比如:
- 模型的类型(线性/非线性、神经网络/SVM)
- 参数个数(维度)
- 模型复杂度(VC维、深度)
选择合适的结构是防止过拟合的关键。
什么是规则?
规则是模型从数据中提取出的可泛化的规律。好的规则能在新数据上也正确预测。
VC 维(Vapnik-Chervonenkis Dimension)
来源于统计理论,尤其是霍夫丁不等式,有关推导参考:
什么是 VC Dimension(VC维)?
基本定义:
VC 维是**衡量模型容量(复杂度)**的重要指标。
- 给定一个函数集合 f ( x , α ) {f(\mathbf{x}, \alpha)} f(x,α),其中 f : R d → − 1 , 1 f : \mathbb{R}^d \to {-1, 1} f:Rd→−1,1。
- 如果这个函数集合能够对某 l l l 个样本点的所有 2 l 2^l 2l 种可能的标签进行完全分类,我们说这个集合**“shatter”这 l l l 个点**。
- VC dimension 就是这个函数集合最多可以 shatter 的样本点数目。
换句话说,VC维越大,模型越“有能力”去记住数据的各种标签组合。
VC 维举例:二维空间中的有向直线
- 在线性分类器中,在 R 2 R^2 R2 中用一条有向直线进行二分类。
- 实验证明:最多可以打散任意3个点,但不能打散所有4个点的组合。
因此,二维空间中有向直线分类器的 VC 维为:
VC dimension = 3
一般结论:
在 R n \mathbb{R}^n Rn 中,超平面(linear classifiers)的 VC 维是:
h = n + 1 h = n + 1 h=n+1但注意:VC维 不等于参数个数!Vapnik (1995) 的一个例子中,只有 1 个参数的模型,却可以拥有无限 VC 维!
VC Dimension 与泛化误差的关系
回顾两个风险:
期望风险(Expected Risk):在所有样本分布上的平均误差。
R ( α ) = ∫ 1 2 ∣ y − f ( x , α ) ∣ d P ( x , y ) R(\alpha) = \int \frac{1}{2} |y - f(\mathbf{x}, \alpha)| \, dP(\mathbf{x}, y) R(α)=∫21∣y−f(x,α)∣dP(x,y)经验风险(Empirical Risk):在训练集上的平均误差。
R emp ( α ) = 1 2 l ∑ i = 1 l ∣ y i − f ( x i , α ) ∣ R_{\text{emp}}(\alpha) = \frac{1}{2l} \sum_{i=1}^{l} \left| y_i - f(\mathbf{x}_i, \alpha) \right| Remp(α)=2l1i=1∑l∣yi−f(xi,α)∣
VC Confidence Bound(置信界)
Vapnik-Chervonenkis 理论提供了一个上界来衡量期望风险与经验风险之间的偏差:
对给定的置信度 1 − η 1 - \eta 1−η,有如下不等式成立:
R ( α ) ≤ R emp ( α ) + h ( log ( 2 l / h ) + 1 ) − log ( η / 4 ) l ⏟ VC Confidence R(\alpha) \leq R_{\text{emp}}(\alpha) + \underbrace{\sqrt{\frac{h(\log(2l/h) + 1) - \log(\eta/4)}{l}}}_{\text{VC Confidence}} R(α)≤Remp(α)+VC Confidence
lh(log(2l/h)+1)−log(η/4)
其中:
- h h h:模型的 VC 维
- l l l:训练样本个数
- η \eta η:置信失效概率(如 0.05)
含义解释:
- 第一项:经验风险
- 第二项:由模型复杂度 h h h 和样本规模 l l l 控制的置信项,表示“学习误差的上限偏移”
目标:在确保经验风险低的前提下,使VC 置信项也尽可能小。
结构风险最小化(Structure Risk Minimization, SRM)
回顾 SRM 原理
目标函数:
Total Risk = R emp + VC Confidence \text{Total Risk} = R_{\text{emp}} + \text{VC Confidence} Total Risk=Remp+VC Confidence不只最小化训练误差,更要控制模型复杂度(VC维)!
SRM 的实现方法:嵌套结构函数集
如图所示(见后两张图):
F 1 ⊂ F 2 ⊂ ⋯ ⊂ F k \mathcal{F}_1 \subset \mathcal{F}_2 \subset \cdots \subset \mathcal{F}_k F1⊂F2⊂⋯⊂Fk
- 每个函数集合 F i \mathcal{F}_i Fi 都有不同的 VC 维 h i h_i hi;
- 在每个 F i \mathcal{F}_i Fi 中,最小化经验风险;
- 再在所有的 i i i 中选择使得“总风险”最小的那个。
线性支持向量机(Linear SVM)
线性可分性(Linear Separability)
定义:
一组二分类数据点是线性可分的,当存在一个超平面(线)可以将正类与负类完全正确地分开,即没有误分类。
线性分类器如何选择最佳划分?
问题引出:
在所有可以正确分类的超平面中,哪个最好?
- 不同的线性分类器可能都能将数据分类正确(见图)。
- 但我们需要选择泛化能力最强的那个。
最大间隔分类器(Maximum Margin Classifier)
核心思想:
在所有能分开的超平面中,选择间隔(margin)最大的那个超平面。
几何定义:
对于数据点 ( x i , y i ) (\mathbf{x}_i, y_i) (xi,yi),若超平面由 w ⋅ x + b = 0 \mathbf{w} \cdot \mathbf{x} + b = 0 w⋅x+b=0 定义,则:
y i ( w T x i + b ) ≥ 1 y_i (\mathbf{w}^T \mathbf{x}_i + b) \geq 1 yi(wTxi+b)≥1
是支持向量机对线性可分数据的基本约束条件。按我的理解,正确分类的条件是(对于二分类): y i ( w T x i + b ) ≥ 0 y_i (\mathbf{w}^T \mathbf{x}_i + b) \geq 0 yi(wTxi+b)≥0,即对于正样本(+1)预测为+1,对于负样本(-1)预测为-1。要求>1即把条件变得更加苛刻。
⇒ ∃ w , b such that w x i + b ≥ + 1 for y i = + 1 w x i + b ≤ − 1 for y i = − 1 ≡ y i ( w x i + b ) − 1 ≥ 0 ∀ i \begin{aligned} \Rightarrow & \exists \mathbf{w}, b \text { such that } \\ & \mathbf{w} \mathbf{x}_i+b \geq+1 \text { for } y_i=+1 \\ & \mathbf{w} \mathbf{x}_i+b \leq-1 \text { for } y_i=-1 \\ \equiv & y_i\left(\mathbf{w} \mathbf{x}_i+b\right)-1 \geq 0 \quad \forall i \end{aligned} ⇒≡∃w,b such that wxi+b≥+1 for yi=+1wxi+b≤−1 for yi=−1yi(wxi+b)−1≥0∀i
为什么最大间隔是最优?
几何含义:最大化两个边界间的距离d(Margin is defined as the width that the boundary could be increased by before hitting a data point)
推导如下:
d = 1 − b ∥ w ∥ − − 1 − b ∥ w ∥ = 2 ∥ w ∥ \begin{aligned} d & =\frac{1-b}{\|\mathbf{w}\|}-\frac{-1-b}{\|\mathbf{w}\|} \\ & =\frac{2}{\|\mathbf{w}\|} \end{aligned} d=∥w∥1−b−∥w∥−1−b=∥w∥2直觉解释:
- 更大的间隔意味着模型对噪声和扰动更鲁棒。
- 支持向量(离超平面最近的数据点)决定了边界,因此只“关注”关键点。
- 理论上能带来更好的泛化能力(对应更小 VC 维)。
VC维与间隔的关系
理论结果:
假设所有数据点都被包含在半径为 R R R 的球体中,间隔宽度为 γ \gamma γ,则支持向量机对应函数类的 VC 维 h h h 满足:
h ≤ min ( ( R γ ) 2 , d ) + 1 h \leq \min\left( \left(\frac{R}{\gamma}\right)^2, d \right) + 1 h≤min((γR)2,d)+1
其中 d d d 是输入空间维度。
含义解读:
- 更大的 margin(间隔) γ \gamma γ 会降低 VC 维,从而减小泛化误差上界。
- 支持了结构风险最小化(SRM)的核心思想:在经验风险相同时,选择 VC 维更小(即 margin 更大的模型)。
SVM 优化目标与约束(Hard Margin SVM)
几何目标转化为优化问题:
最大化 margin 等价于最小化 ∣ w ∣ |\mathbf{w}| ∣w∣,于是优化问题如下:
目标函数(Objective):
min w , b 1 2 ∥ w ∥ 2 \min_{\mathbf{w}, b} \frac{1}{2} \|\mathbf{w}\|^2 w,bmin21∥w∥2
约束条件(Constraints):
y i ( w T x i + b ) ≥ 1 ∀ i y_i (\mathbf{w}^T \mathbf{x}_i + b) \geq 1 \quad \forall i yi(wTxi+b)≥1∀i
这是一个标准的 凸二次规划问题,解这个问题需要使用 拉格朗日乘子法(Lagrange Multiplier)。