
1. 二分类 SVM:原理与公式
1.1 训练集与问题设定
假设训练集为:
D=(xi,yi)i=1n,xi∈Rd,yi∈−1,+1 \mathcal{D} = {(x_i, y_i)}_{i=1}^n, \quad x_i \in \mathbb{R}^d, \quad y_i \in {-1, +1} D=(xi,yi)i=1n,xi∈Rd,yi∈−1,+1
目标:学习一个决策函数f(x)f(x)f(x),能够对新的样本xxx给出正确分类:
f(x)=sign(w⊤x+b) f(x) = \text{sign}(w^\top x + b) f(x)=sign(w⊤x+b)
其中w∈Rdw \in \mathbb{R}^dw∈Rd为权重向量,b∈Rb \in \mathbb{R}b∈R为偏置(截距)。
1.2 超平面定义与间隔
SVM 的核心是寻找一个线性超平面:
w⊤x+b=0 w^\top x + b = 0 w⊤x+b=0
它将两类样本尽量分开,并且间隔最大化。
1.2.1 函数间隔(functional margin)
对样本(xi,yi)(x_i, y_i)(xi,yi)定义函数间隔:
γ^i=yi(w⊤xi+b) \hat{\gamma}_i = y_i (w^\top x_i + b) γ^i=yi(w⊤xi+b)
函数间隔越大,模型对该样本分类的"置信度"越高。
对整个训练集的函数间隔定义为:
γ^=miniγ^i \hat{\gamma} = \min_{i} \hat{\gamma}_i γ^=iminγ^i
注意:函数间隔依赖 (w) 的尺度。如果 (w) 放大 2 倍,函数间隔也放大 2 倍。
1.2.2 几何间隔(geometric margin)
为消除尺度影响,引入几何间隔:
γi=γ^i∣w∣=yi(w⊤xi+b)∣w∣ \gamma_i = \frac{\hat{\gamma}_i}{|w|} = \frac{y_i (w^\top x_i + b)}{|w|} γi=∣w∣γ^i=∣w∣yi(w⊤xi+b)
几何间隔是真正意义上"样本到超平面的距离"。最大化几何间隔 → 更稳健的分类边界。
训练集的最小几何间隔:
γ=miniγi \gamma = \min_i \gamma_i γ=iminγi
1.3 最大几何间隔的约束优化问题
为了找到最优超平面,目标是最大化几何间隔:
maxw,bγ \max_{w,b} \gamma w,bmaxγ
约束条件:所有样本正确分类:
yi(w⊤xi+b)≥γ,i=1,...,n y_i (w^\top x_i + b) \ge \gamma, \quad i=1,\dots,n yi(w⊤xi+b)≥γ,i=1,...,n
通过函数间隔与几何间隔关系γi=γ^i/∣w∣\gamma_i = \hat{\gamma}i / |w|γi=γ^i/∣w∣,可以将优化问题等价改写为凸二次规划:
约束优化形式 :
minw,b12∣w∣2 s.t.yi(w⊤xi+b)≥1,i=1,...,n \begin{aligned} \min{w,b} &\quad \frac{1}{2}|w|^2 \ \text{s.t.} &\quad y_i (w^\top x_i + b) \ge 1, \quad i=1,\dots,n \end{aligned} w,bmin21∣w∣2 s.t.yi(w⊤xi+b)≥1,i=1,...,n
这里,我们通过放缩w,bw,bw,b使得最小函数间隔γ^=1\hat{\gamma} = 1γ^=1,从而转化为标准形式。
1.4 对偶问题与求解思路
引入拉格朗日乘子αi≥0\alpha_i \ge 0αi≥0:
L(w,b,α)=12∣w∣2−∑i=1nαi[yi(w⊤xi+b)−1] L(w,b,\alpha) = \frac{1}{2}|w|^2 - \sum_{i=1}^n \alpha_i [y_i (w^\top x_i + b) - 1] L(w,b,α)=21∣w∣2−i=1∑nαi[yi(w⊤xi+b)−1]
求解对偶问题:
-
对w,bw,bw,b求偏导并令其为零(KKT 条件):
∂L∂w=w−∑i=1nαiyixi=0⇒w=∑i=1nαiyixi \frac{\partial L}{\partial w} = w - \sum_{i=1}^n \alpha_i y_i x_i = 0 \quad \Rightarrow \quad w = \sum_{i=1}^n \alpha_i y_i x_i ∂w∂L=w−i=1∑nαiyixi=0⇒w=i=1∑nαiyixi
∂L∂b=−∑i=1nαiyi=0 \frac{\partial L}{\partial b} = - \sum_{i=1}^n \alpha_i y_i = 0 ∂b∂L=−i=1∑nαiyi=0 -
将www代回拉格朗日函数,得到对偶问题:
maxα∑i=1nαi−12∑i,j=1nαiαjyiyj⟨xi,xj⟩ s.t.αi≥0,∑i=1nαiyi=0 \begin{aligned} \max_{\alpha} &\quad \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i,j=1}^n \alpha_i \alpha_j y_i y_j \langle x_i, x_j \rangle \ \text{s.t.} &\quad \alpha_i \ge 0, \quad \sum_{i=1}^n \alpha_i y_i = 0 \end{aligned} αmaxi=1∑nαi−21i,j=1∑nαiαjyiyj⟨xi,xj⟩ s.t.αi≥0,i=1∑nαiyi=0 -
求解方法:
- 小规模:直接用二次规划求解。
- 中等规模:SMO(Sequential Minimal Optimization)迭代更新αi\alpha_iαi。
- 大规模线性问题:Pegasos 等随机梯度方法。
- 得到最优αi\alpha_iαi 后,权重向量:
w∗=∑iαiyixi w^* = \sum_{i} \alpha_i y_i x_i w∗=i∑αiyixi
偏置:
b∗=yj−w∗⊤xj(任选支持向量 j) b^* = y_j - w^{*\top} x_j \quad \text{(任选支持向量 j)} b∗=yj−w∗⊤xj(任选支持向量 j)
支持向量:αi>0\alpha_i > 0αi>0。
1.5 补充问题
1.5.1 拉格朗日乘子法
引入拉格朗日乘子是什么方法?
拉格朗日乘子法(Lagrange Multiplier Method)是一种将"带约束优化问题"转化为"无约束优化问题"的方法
原始问题(带约束)
minxf(x) \min_x f(x) xminf(x)
s.t. g(x)=0 \text{s.t. } g(x) = 0 s.t. g(x)=0
既要最小化f(x)f(x)f(x),又必须满足约束g(x)=0g(x)=0g(x)=0。
引入拉格朗日乘子
构造一个新函数(拉格朗日函数):
L(x,λ)=f(x)+λg(x) L(x, \lambda) = f(x) + \lambda g(x) L(x,λ)=f(x)+λg(x)
其中:
- λ\lambdaλ:拉格朗日乘子(权重系数)
求解方法
对xxx和λ\lambdaλ同时求导:
∂L∂x=0 \frac{\partial L}{\partial x} = 0 ∂x∂L=0
∂L∂λ=0 \frac{\partial L}{\partial \lambda} = 0 ∂λ∂L=0
第二个条件:
∂L∂λ=g(x)=0 \frac{\partial L}{\partial \lambda} = g(x) = 0 ∂λ∂L=g(x)=0
为什么要引入拉格朗日乘子
minw,b12∣w∣2 \min_{w,b} \frac{1}{2} |w|^2 w,bmin21∣w∣2
s.t. yi(w⊤xi+b)≥1 \text{s.t. } y_i(w^\top x_i + b) \ge 1 s.t. yi(w⊤xi+b)≥1
改写为:
1−yi(w⊤xi+b)≤0 1 - y_i(w^\top x_i + b) \le 0 1−yi(w⊤xi+b)≤0
L(w,b,\\alpha) = \\frac{1}{2} \|w\|\^2 * \\sum_i \\alpha_i \[1 - y_i(w\^\\top x_i + b)\] 其中: 其中: 其中: \\alpha_i \\ge 0
核心原因
- 原因1:把约束"吃进去"
- 不需要单独处理约束
- 转化为一个优化问题
- 原因2:得到对偶问题(关键!)
- 通过对 (w,b) 求导:
w=∑iαiyixi w = \sum_i \alpha_i y_i x_i w=i∑αiyixi
重要结果:模型只依赖于样本的线性组合
- 通过对 (w,b) 求导:
- 原因3:引出核函数
- 对偶问题中只出现:
⟨xi,xj⟩ \langle x_i, x_j \rangle ⟨xi,xj⟩ - 可以替换为:
K(xi,xj) K(x_i, x_j) K(xi,xj)
- 对偶问题中只出现:
- 原因4:自动筛选支持向量
- 根据 KKT,只有"边界点"被保留下来:
αi>0⇒yi(w⊤xi+b)=1 \alpha_i > 0 \Rightarrow y_i(w^\top x_i + b) = 1 αi>0⇒yi(w⊤xi+b)=1
- 根据 KKT,只有"边界点"被保留下来:
1.5.2 对偶问题
在SVM中的具体意义
原始问题:
minw,b12∣w∣2 \min_{w,b} \frac{1}{2}|w|^2 w,bmin21∣w∣2
约束:
yi(w⊤xi+b)≥1 y_i(w^\top x_i + b) \ge 1 yi(w⊤xi+b)≥1
转成对偶后:
\\max_{\\alpha} \\sum_i \\alpha_i * \\frac{1}{2}\\sum_{i,j} \\alpha_i \\alpha_j y_i y_j \\langle x_i,x_j \\rangle
对偶转化的 4 个核心意义
- 让问题变成二次规划(可解)
- 只依赖内积 → 可以用核函数
- 自动筛选支持向量(稀疏性)
- 更适合数值优化(SMO)
2. 支持向量回归SVR:原理与公式
2.1 训练集与问题设定
假设训练集为:
D=(xi,yi)i=1n,xi∈Rd,yi∈R \mathcal{D} = {(x_i, y_i)}_{i=1}^n, \quad x_i \in \mathbb{R}^d, \quad y_i \in \mathbb{R} D=(xi,yi)i=1n,xi∈Rd,yi∈R
与分类问题不同:
- 输出yiy_iyi是连续值
- 目标是学习一个函数f(x)f(x)f(x),用于预测数值
定义回归函数:
f(x)=w⊤x+b f(x) = w^\top x + b f(x)=w⊤x+b
其中:
- w∈Rdw \in \mathbb{R}^dw∈Rd:权重向量
- b∈Rb \in \mathbb{R}b∈R:偏置项
2.2 ε-不敏感损失与间隔
SVR 的核心思想:
不要求完全拟合数据,而是在允许误差范围内保持"平滑"和"稀疏"
2.2.1 ε-不敏感损失(ε-insensitive loss)
定义损失函数:
Lε(y,f(x))={0,∣y−f(x)∣≤ε∣y−f(x)∣−ε,otherwiseL_\varepsilon(y, f(x)) = \begin{cases} 0, & |y - f(x)| \le \varepsilon \\ |y - f(x)| - \varepsilon, & \text{otherwise} \end{cases}Lε(y,f(x))={0,∣y−f(x)∣−ε,∣y−f(x)∣≤εotherwise
含义:
- 当预测误差在ε\varepsilonε内 → 不惩罚
- 超出部分 → 线性惩罚
2.2.2 几何意义(ε-管道)
SVR 相当于构造一个"ε-管道":
∣yi−(w⊤xi+b)∣≤ε |y_i - (w^\top x_i + b)| \le \varepsilon ∣yi−(w⊤xi+b)∣≤ε
- 管道内:不计损失
- 管道外:产生惩罚
类似分类中的"间隔",但变成"回归带宽"
2.3 原始优化问题(Primal)
为了允许部分样本超出 ε,引入松弛变量:
- ξi\xi_iξi:上偏差
- ξi∗\xi_i^*ξi∗:下偏差
2.3.1 优化目标
minw,b,ξ,ξ∗12∣w∣2+C∑i=1n(ξi+ξi∗) \begin{aligned} \min_{w,b,\xi,\xi^*} \quad & \frac{1}{2} |w|^2 + C \sum_{i=1}^n (\xi_i + \xi_i^*) \ \end{aligned} w,b,ξ,ξ∗min21∣w∣2+Ci=1∑n(ξi+ξi∗)
2.3.2 约束条件
yi−(w⊤xi+b)≤ε+ξi(w⊤xi+b)−yi≤ε+ξi∗ξi,ξi∗≥0\begin{aligned} y_i - (w^\top x_i + b) &\le \varepsilon + \xi_i \\ (w^\top x_i + b) - y_i &\le \varepsilon + \xi_i^* \\ \xi_i, \xi_i^* &\ge 0 \end{aligned}yi−(w⊤xi+b)(w⊤xi+b)−yiξi,ξi∗≤ε+ξi≤ε+ξi∗≥0
2.3.3 解释
2.3.3 解释
- 12∣w∣2\frac{1}{2}|w|^221∣w∣2:控制模型平滑(防止过拟合)
- CCC:控制误差惩罚强度
- ε\varepsilonε:控制"容忍误差范围"
本质是:
text
在保证函数平滑的前提下,让尽可能多的数据点落在 ε 管道内
2.4 拉格朗日函数与对偶问题
2.4.1 引入拉格朗日乘子
引入:
- αi,αi∗≥0\alpha_i, \alpha_i^* \ge 0αi,αi∗≥0:对应两个不等式约束
- ηi,ηi∗≥0\eta_i, \eta_i^* \ge 0ηi,ηi∗≥0:对应ξ\xiξ非负约束
2.4.2 拉格朗日函数
L=12∥w∥2+C∑i(ξi+ξi∗)−∑iαi(ε+ξi−yi+w⊤xi+b)−∑iαi∗(ε+ξi∗+yi−w⊤xi−b)−∑i(ηiξi+ηi∗ξi∗)\begin{aligned} L = &\frac{1}{2} \|w\|^2 + C \sum_i (\xi_i + \xi_i^*) \\ &- \sum_i \alpha_i (\varepsilon + \xi_i - y_i + w^\top x_i + b) \\ &- \sum_i \alpha_i^* (\varepsilon + \xi_i^* + y_i - w^\top x_i - b) \\ &- \sum_i (\eta_i \xi_i + \eta_i^* \xi_i^*) \end{aligned}L=21∥w∥2+Ci∑(ξi+ξi∗)−i∑αi(ε+ξi−yi+w⊤xi+b)−i∑αi∗(ε+ξi∗+yi−w⊤xi−b)−i∑(ηiξi+ηi∗ξi∗)
2.4.3 KKT 条件(求导)
对变量求偏导:
对www:
w=∑i(αi−αi∗)xi w = \sum_i (\alpha_i - \alpha_i^*) x_i w=i∑(αi−αi∗)xi
对bbb:
∑i(αi−αi∗)=0 \sum_i (\alpha_i - \alpha_i^*) = 0 i∑(αi−αi∗)=0
对 ξi\xi_iξi:
αi=C−ηi \alpha_i = C - \eta_i αi=C−ηi
得到:
0≤αi,αi∗≤C 0 \le \alpha_i, \alpha_i^* \le C 0≤αi,αi∗≤C
2.4.4 对偶问题
代入得到:
maxα,α∗−12∑i,j(αi−αi∗)(αj−αj∗)⟨xi,xj⟩−ε∑i(αi+αi∗)+∑iyi(αi−αi∗)s.t.∑i(αi−αi∗)=00≤αi,αi∗≤C\begin{aligned} \max_{\alpha,\alpha^*} \quad & -\frac{1}{2} \sum_{i,j} (\alpha_i - \alpha_i^*)(\alpha_j - \alpha_j^*) \langle x_i,x_j \rangle \\ & - \varepsilon \sum_i (\alpha_i + \alpha_i^*) + \sum_i y_i (\alpha_i - \alpha_i^*) \\ \text{s.t.} \quad & \sum_i (\alpha_i - \alpha_i^*) = 0 \\ & 0 \le \alpha_i, \alpha_i^* \le C \end{aligned}α,α∗maxs.t.−21i,j∑(αi−αi∗)(αj−αj∗)⟨xi,xj⟩−εi∑(αi+αi∗)+i∑yi(αi−αi∗)i∑(αi−αi∗)=00≤αi,αi∗≤C
2.5 核函数扩展(非线性 SVR)
对偶问题中只出现内积:
⟨xi,xj⟩ \langle x_i, x_j \rangle ⟨xi,xj⟩
可以替换为核函数:
K(xi,xj) K(x_i, x_j) K(xi,xj)
常用核函数:
- 线性核:K(x,z)=x⊤zK(x,z) = x^\top zK(x,z)=x⊤z
- RBF核:K(x,z)=exp(−γ∣x−z∣2)K(x,z) = \exp(-\gamma |x-z|^2)K(x,z)=exp(−γ∣x−z∣2)
- 多项式核
2.6 模型表达形式
最终回归函数:
f(x)=∑i(αi−αi∗)K(xi,x)+b f(x) = \sum_i (\alpha_i - \alpha_i^*) K(x_i, x) + b f(x)=i∑(αi−αi∗)K(xi,x)+b
支持向量定义
当:
αi−αi∗≠0 \alpha_i - \alpha_i^* \ne 0 αi−αi∗=0
该点为支持向量。
关键性质
- 管道内点 → αi=αi∗=0\alpha_i = \alpha_i^* = 0αi=αi∗=0
- 管道边界点 → 支持向量
- 管道外点 → 被惩罚
只有少数点决定模型(稀疏性)
3. One-class SVM:原理、公式
3.1 问题设定与直观目标
训练集(只有"正常"类样本):
D=xii=1n,xi∈Rd \mathcal{D}={x_i}_{i=1}^n,\quad x_i\in\mathbb{R}^d D=xii=1n,xi∈Rd
目标:在特征空间中找到一个尽可能包含大部分训练样本的闭合区域(或超平面的一侧),把大多数样本视为"正常",把落在边界外的少数点视为异常。等价地,寻找参数使得决策函数对大多数训练样本为正(inside),对少数为负(outlier)。
Schölkopf 的 one-class SVM 的经典形式通过在高维特征空间ϕ(⋅)\phi(\cdot)ϕ(⋅)中构造一个最大化与原点"距离"的超平面来实现这一目标:将数据映射到特征空间后,把大多数点放在与原点同一侧且尽量远离原点,同时允许一些松弛(异常)。
3.2 原始(Primal)优化问题(ν-one-class SVM)
引入参数ν∈(0,1]\nu\in(0,1]ν∈(0,1](控制异常率与支持向量比例的界),和松弛变量ξi≥0\xi_i\ge0ξi≥0。原始问题写为:
minw,ρ,ξ12∥w∥2−ρ+1νn∑i=1nξis.t.w⊤ϕ(xi)≥ρ−ξi,i=1,...,nξi≥0\begin{aligned} \min_{w,\rho,\xi} \quad & \frac{1}{2}\|w\|^2 - \rho + \frac{1}{\nu n}\sum_{i=1}^n \xi_i\\[4pt] \text{s.t.}\quad & w^\top \phi(x_i) \ge \rho - \xi_i,\qquad i=1,\dots,n\\[2pt] & \xi_i \ge 0 \end{aligned}w,ρ,ξmins.t.21∥w∥2−ρ+νn1i=1∑nξiw⊤ϕ(xi)≥ρ−ξi,i=1,...,nξi≥0
说明:
- www与ρ\rhoρ定义了特征空间中的超平面w⊤ϕ(x)=ρw^\top \phi(x) = \rhow⊤ϕ(x)=ρ。把与原点比较的形式改写为"≥ρ\ge\rho≥ρ"是 Schölkopf 的常见写法(等价表述有若干形式------例如把原点视作分界点等)。
- 目标项−ρ-\rho−ρ希望把阈值ρ\rhoρ尽量大(把多数点推远离原点/界),12∣w∣2\frac{1}{2}|w|^221∣w∣2保持模型平滑,1νn∑ξi\frac{1}{\nu n}\sum\xi_iνn1∑ξi对超出阈值的点施加惩罚。
- ν\nuν的含义:上界控制被允许为异常的样本比例(见下文性质)。
3.3 拉格朗日与对偶问题推导
为便于数值求解,引入拉格朗日乘子αi≥0\alpha_i \ge 0αi≥0对不等式约束,βi≥0\beta_i\ge0βi≥0对 ξi≥0\xi_i\ge0ξi≥0。对 w,ρ,ξw,\rho,\xiw,ρ,ξ求偏导并消去原变量后得到对偶问题(只包含内积):
对偶问题 :
maxα−12∑i,j=1nαiαjK(xi,xj)s.t.0≤αi≤1νn,i=1,...,n∑i=1nαi=1\begin{aligned} \max_{\alpha}\quad & -\frac{1}{2}\sum_{i,j=1}^n \alpha_i \alpha_j K(x_i,x_j)\\[4pt] \text{s.t.}\quad & 0\le \alpha_i \le \frac{1}{\nu n},\qquad i=1,\dots,n\\[2pt] & \sum_{i=1}^n \alpha_i = 1 \end{aligned}αmaxs.t.−21i,j=1∑nαiαjK(xi,xj)0≤αi≤νn1,i=1,...,ni=1∑nαi=1
其中K(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩K(x_i,x_j)=\langle\phi(x_i),\phi(x_j)\rangleK(xi,xj)=⟨ϕ(xi),ϕ(xj)⟩为核函数。
3.4 判别函数与阈值
得到最优α⋆\alpha^\starα⋆后:
w⋆=∑i=1nαi⋆ϕ(xi) w^\star=\sum_{i=1}^n \alpha_i^\star \phi(x_i) w⋆=i=1∑nαi⋆ϕ(xi)
预测分数(未阈值化)为:
f(x)=w⋆⊤ϕ(x)−ρ=∑i=1nαi⋆K(xi,x)−ρ f(x)=w^{\star\top}\phi(x) - \rho = \sum_{i=1}^n \alpha_i^\star K(x_i,x) - \rho f(x)=w⋆⊤ϕ(x)−ρ=i=1∑nαi⋆K(xi,x)−ρ
判别规则:
- 若f(x)≥0f(x)\ge 0f(x)≥0 → 判为"正常"(inlier)
- 若f(x)<0f(x)<0f(x)<0 → 判为"异常"(outlier)
阈值ρ\rhoρ的获得:由 KKT 条件,任何满足0<αj<1νn0<\alpha_j<\frac{1}{\nu n}0<αj<νn1的训练点(称为"边界支持向量")满足
w⊤ϕ(xj)=ρ−ξj w^\top\phi(x_j) = \rho - \xi_j w⊤ϕ(xj)=ρ−ξj
对于边界上的点ξj=0\xi_j=0ξj=0,因此可以取
ρ=w⊤ϕ(xj)=∑i=1nαiK(xi,xj) \rho = w^\top\phi(x_j)=\sum_{i=1}^n \alpha_i K(x_i,x_j) ρ=w⊤ϕ(xj)=i=1∑nαiK(xi,xj)
在实践中,通常对所有0<αj<1νn0<\alpha_j<\frac{1}{\nu n}0<αj<νn1的jjj取均值来稳定估计ρ\rhoρ。
3.5 关于 ν 的重要性质(Schölkopf 等)
- ν\nuν是对训练中异常比例的 上界 :训练后被标记为异常(ξi>0)(\xi_i>0)(ξi>0)的样本比例 ≤ ν\nuν。
- ν\nuν 还是支持向量比例的 下界 :训练后支持向量(αi>0)(\alpha_i>0)(αi>0)的比例 ≥ ν\nuν。
因此把ν\nuν 设为你可接受的最大异常率的近似(例如:若预计异常率 ≈ 1%,可把 ν\nuν 设为 0.01 或略高)。
3.6 核化(非线性边界)
对偶形式只包含核K(xi,xj)K(x_i,x_j)K(xi,xj),因此可以直接用常见核函数:
- 线性核: K(x,z)=x⊤zK(x,z)=x^\top zK(x,z)=x⊤z
- RBF(Gaussian):K(x,z)=exp(−γ∣x−z∣2)K(x,z)=\exp(-\gamma|x-z|^2)K(x,z)=exp(−γ∣x−z∣2)(常用)
- 多项式核等
在 RBF 核下,one-class SVM 通常形成一个包围数据的"非线性壳/区域"。