从零开始学AI——6

53 阅读15分钟

前言

本节是支持向量机,想起我室友当初毕设就和这个有关

第六章

本章开始支持向量机的学习,记得我室友毕设就和这个有关哈哈

6.1 支持向量机

在分类任务中,对于线性可分问题,基础目标是找到一个能将样本完美分离的超平面。但仅满足分类正确性是不够的,因为机器学习的核心目标是构建泛化能力强的模型。关键在于:一个好的超平面应该最大化与最近样本点的距离。这种性质使得模型对噪声或微小扰动不敏感,从而提升泛化性能。

支持向量机的核心思想是:在所有可行超平面中,存在唯一最优解——该超平面不仅保证分类正确性,还通过最大化最近样本点的距离来优化泛化能力。我们定义支持向量为距离超平面最近的样本点,它们直接决定了最优超平面的位置。

  • SVM仅依赖支持向量(而非全部样本数据),这与第三章的线性回归方法(依赖全体数据)不同

超平面的数学表示为:

wTx+b=0\mathbf{w}^{T}\mathbf{x} + b = 0

其中:

  • w=(w1,w2,,wd)\mathbf{w} = (w_{1}, w_{2}, \dots, w_{d}) 是法向量(dd 为属性维度);
  • bb 是位移项。

空间中任意点 a\mathbf{a} 到超平面的距离公式为:

r=wTa+bwr = \frac{|\mathbf{w}^{T}\mathbf{a} + b|}{\|\mathbf{w}\|}

点到平面距离的推导
取空间点 QQ 和平面内点 PP,距离为向量 QP\vec{QP} 在法向量 w\mathbf{w} 方向的投影长度:wQPw\frac{|\mathbf{w} \cdot \vec{QP}|}{\|\mathbf{w}\|}

因此,只需计算所有支持向量到超平面的距离并取最小值即可确定最优间隔。超平面的一个特性是可任意放缩(即对任意c0c \neq 0c(wTx+b)=0c(\mathbf{w}^{T}\mathbf{x}+b) = 0仍表示同一超平面)。为便于计算,需对w,b\mathbf{w},b进行规范化:要求所有支持向量满足

wTxsv+b=1|\mathbf{w}^{T}\mathbf{x}_{sv} + b| = 1

在此规范下:

  1. 几何间隔r=1wr = \frac{1}{\|\mathbf{w}\|}
  2. 正负类支持向量到超平面的距离均为 1w\frac{1}{\|\mathbf{w}\|}
  3. 最终间隔定义为两距离之和2w\frac{2}{\|\mathbf{w}\|}

因此,SVM组基本的问题就是找到一组参数(w,b)(\mathbf{w},b)使得2w\frac{2}{\|\mathbf{w}\|}最大且满足约束:

yi(wTxi+b)1y_{i}(\mathbf{w}^{T}\mathbf{x}_{i}+b)\geq 1
  • 其中yi{1,1}y_{i}\in\{1,-1\}为样本标签,约束乘积大于11表明标签和分类预测同号即要求分类正确
  • 乘积大于等于1表明所有样本都必须在间隔之外或在间隔边界上(支持向量)

现在我们来求解这个最值问题,这是一个凸二次规划问题,对于这一类问题可以使用拉格朗日对偶性来解决。

构建拉格朗日函数

  1. 原式要求2w\frac{2}{\|\mathbf{w}\|}最大,即求12w2\frac{1}{2}\|\mathbf{w}\|^{2}最小
  2. 为所有样本约束引入乘子αi0\alpha_{i}\geq 0,写为αi(1yi(wTxi+b))\alpha_{i}(1-y_{i}(\mathbf{w}^{T}\mathbf{x}_{i}+b))
  3. 所以拉格朗日函数为L=12w2+i=1mαi(1yi(wTxi+b))L = \frac{1}{2}\|\mathbf{w}\|^{2}+\sum_{i=1}^{m}\alpha_{i}(1-y_{i}(\mathbf{w}^{T}\mathbf{x}_{i}+b))

原问题的等价问题:上述约束问题可以等价于minw,bmaxαLmin_{\mathbf{w},b}max_{\alpha}L

  1. 对于内层,只关心α\alpha的变化,我们已经要求α0\alpha\geq 0
  2. 如果存在一个样本违背了约束((1yi(wTxi+b)>0(1-y_{i}(\mathbf{w}^{T}\mathbf{x}_{i}+b)>0),那么求和项会出现正数,maxαmax_{\alpha}会让LL趋于无穷,最终外层的minmin永远无法满足,因此不能有样本违背约束。
  3. 如果所有样本都满足约束 yi(wTxi+b)1y_i(\mathbf{w}^T\mathbf{x}_i+b) \ge 1,则 1yi(wTxi+b)01-y_{i}(\mathbf{w}^{T}\mathbf{x}_{i}+b) \le 0。为了最大化 LLαi(1yi())\sum \alpha_i (1 - y_i(\dots)) 这一项必须取其最大可能值,即 0。这要求对于所有 ii,必须满足 αi(1yi(wTxi+b))=0\alpha_i(1-y_{i}(\mathbf{w}^{T}\mathbf{x}_{i}+b)) = 0。这就是KKT互补条件
  4. 回到整个式子minw,bmaxαLmin_{\mathbf{w},b}max_{\alpha}L就等价于min(12w2)min\left( \frac{1}{2}\|\mathbf{w}\|^{2} \right),因此等价

考虑对偶问题,即交换maxmaxminmin,其对偶问题为maxαminw,bLmax_{\alpha}min_{\mathbf{w},b}L。可以证明强对偶性成立,两个问题最优解是一样的

求解内层最小化问题 对于内层,变量只有w,b\mathbf{w},b,所以可以求偏导令其为00有。

Lw=0w=i=1mαiyixiLb=0i=1maiyi=0\begin{align} \frac{ \partial L }{ \partial \mathbf{w} } &=0 \Rightarrow \mathbf{w} = \sum_{i=1}^{m}\alpha_{i}y_{i}\mathbf{x}_{i} \\ \frac{ \partial L }{ \partial b } &= 0 \Rightarrow \sum_{i=1}^{m} a_{i}y_{i}=0 \end{align}

前者表明最优w\mathbf{w}α,y\alpha,y决定,是xi\mathbf{x}_{i}的线性组合;后者给出了α,y\alpha,y的一个约束。现在我们代回LL得到对偶目标函数

L=12(i=1mαiyixi)T(j=1mαjyjxj)+i=1mαii=1mαiyi((j=1mαjyjxj)Txi+b)=12i=1mj=1mαiαjyiyj(xiTxj)+i=1mαii=1mj=1mαiαjyiyj(xjTxi)bi=1mαiyi=i=1mαi12i=1mj=1mαiαjyiyj(xiTxj)\begin{align} L &= \frac{1}{2} \left( \sum_{i=1}^m \alpha_i y_i \mathbf{x}_i \right)^T \left( \sum_{j=1}^m \alpha_j y_j \mathbf{x}_j \right) + \sum_{i=1}^{m} \alpha_{i} - \sum_{i=1}^{m} \alpha_{i}y_{i}\left( \left( \sum_{j=1}^{m} \alpha_{j}y_{j}\mathbf{x}_{j} \right)^{T}\mathbf{x}_{i}+b \right) \\ &= \frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j (\mathbf{x}_i^T \mathbf{x}_j)+ \sum_{i=1}^{m}\alpha_{i} - \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j (\mathbf{x}_j^T \mathbf{x}_i) - b\sum_{i=1}^{m} \alpha_{i}y_{i} \\ &= \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j (\mathbf{x}_i^T \mathbf{x}_j) \end{align}

其中用到了xjTxi=xiTxj\mathbf{x}_j^T \mathbf{x}_i = \mathbf{x}_i^T \mathbf{x}_ji=1maiyi=0\sum_{i=1}^{m} a_{i}y_{i}=0.这样完整的对偶问题就被构建完成,我们需要求解αi\alpha_{i}在满足约束条件i=1mαiyi=0\sum_{i=1}^m \alpha_i y_i = 0αi0\alpha_{i}\geq 0的最大LL。这也是一个二次规划问题,但现在LL仅仅依赖于α\alpha。它的求解方法很多,这里我们介绍最出名的序列最小最优化 (Sequential Minimal Optimization, SMO算法,其核心思想是选取两个变量αi,αj\alpha_{i},\alpha_{j}固定其他所有变量(因为存在约束条件,只选取一个的话,该变量可由其他固定变量根据约束条件导出),这样就可以求解子问题。具体说来

  • 选一对乘子,通常会优先选择那些最"违反" KKT 条件的乘子,收敛快
  • 固定其他 m2m-2 个乘子,将对偶目标函数 L(α)L(\alpha) 视为仅关于 αi\alpha_iαj\alpha_j 的函数,并求解这个子优化问题,得到更新后的最优值 (αinew,αjnew)(\alpha_i^{new}, \alpha_j^{new})。这个子问题因为只有两个变量,并且约束简单,可以解析求解。
  • 更新原来的乘子和bb
  • 检查所有乘子是否在一定容忍度内满足 KKT 条件。如果满足,则算法收敛;否则,进行下一轮迭代。

因此,最优法向量

w=i=1mαiyixi\mathbf{w} = \sum_{i=1}^{m} \alpha_{i}y_{i}\mathbf{x}_{i}

其中,αi\alpha_{i}是最优乘子。最后我们说一下bb的求解,根据KKT互补,只有支持向量才会出现和bb有关的等式(非支持向量αi=0\alpha_{i}=0,含bb项约束是一个不等式),所以我们只需要考虑11个支持向量,解约束项等式就可以得到bb。但为了健壮性,我们一般考虑所有支持向量求解的期望:

b=1SsS(ysi=1maiyixiTxs)b = \frac{1}{|S|}\sum_{s\in S}\left( y_{s}-\sum_{i=1}^{m} a_{i}y_{i}\mathbf{x}_{i}^{T}\mathbf{x}_{s} \right)

其中SS是所有支持向量的集合。

最终bb的表达式和书上不太一致,我感觉是教材写错了

6.2 核函数

我们已经知道,支持向量机的核心目标是找到一个超平面,用于处理线性可分数据的分类问题。然而,这与感知机面临的困境类似:对于线性不可分问题,超平面无法直接有效分类。在感知机中,解决方案是引入隐层和非线性激活函数,通过将超平面转换为曲面来实现分类。而SVM采用了另一种策略:通过核函数将原始样本映射到更高维的特征空间,在该空间中寻找一个线性超平面完成分类。

一个列子:假设实数区间R\mathbb{R}[1,1][-1,1]被定义为负类,其余实数R[1,1]\mathbb{R}\setminus[-1,1]正类。此时无法通过一维空间的线性决策边界(即一个点)实现完美分类,因为该问题线性不可分。但若通过映射ϕ:RR2\phi: \mathbb{R} \to \mathbb{R}^2将样本升维至二维空间,其中ϕ(x)=(x,x2)\phi(x) = (x, x^2),则样本在二维空间中形成抛物线y=x2y = x^2负类值域落在[0,1][0,1]区间,正类值域分布于(1,+)(1, +\infty)。此时可用线性超平面(如直线y=1.01y = 1.01)实现分类(注意,映射后的点都落在抛物线上,而不是整个平面)。

更形式化地说,我们可以定义一个映射ϕ\phi将原始样本空间X\mathcal{X}中的样本点xXx \in \mathcal{X}映射到一个高维空间H\mathcal{H}中的点ϕ(x)\phi(x),即ϕ:XH\phi : \mathcal{X} \to \mathcal{H}。然后我们就可以在H\mathcal{H}中训练一个SVM,其线性决策边界0=wTϕ(x)+b0 = \mathbf{w}^{T}\phi(\mathbf{x})+b,并求解高维空间中的对偶问题:

maxαi=1mαi12i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)\max_{\alpha} \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j \phi(\mathbf{x}_i)^T \phi(\mathbf{x}_j)

但这样会引入一个问题:映射后的空间H\mathcal{H}维度可能很高(甚至是无限维),导致直接计算ϕ(x)\phi(\mathbf{x})困难且存储成本高

幸运的是可以发现:所有ϕ(x)\phi(x)的出现都以内积形式ϕ(xi)Tϕ(xj)\phi(\mathbf{x}_i)^T \phi(\mathbf{x}_j)存在,包括决策函数:

f(z)=iSVαiyiϕ(xi)Tϕ(z)+bf(\mathbf{z}) = \sum_{i\in SV} \alpha_{i}y_{i}\phi(\mathbf{x}_{i})^{T}\phi(\mathbf{z})+b

其中z\mathbf{z}是预测数据。因此,我们可以引入核函数κ(xi,xj)=ϕ(xi)Tϕ(xj)\kappa(\mathbf{x}_{i},\mathbf{x}_{j}) = \phi(\mathbf{x}_{i})^{T}\phi(\mathbf{x}_{j}),避免显式计算ϕ(x)\phi(\mathbf{x})

该理论属于再生核希尔伯特空间(RKHS),涉及Mercer定理等数学基础。

略去复杂的数学部分,我们只需要知道一个有效的核函数一定对应一个高维H\mathcal{H}和对应的映射函数ϕ\phi使得κ(xi,xj)=ϕ(xi)Tϕ(xj)\kappa(\mathbf{x}_{i},\mathbf{x}_{j}) = \phi(\mathbf{x}_{i})^{T}\phi(\mathbf{x}_{j})成立。 有效核函数的条件

  1. 对称性κ(xi,xj)=κ(xj,xi)\kappa(\mathbf{x}_i, \mathbf{x}_j) = \kappa(\mathbf{x}_j, \mathbf{x}_i)
  2. 半正定核矩阵:对任意数据集{x1,...,xm}\{\mathbf{x}_1, ..., \mathbf{x}_m\},矩阵Gij=κ(xi,xj)G_{ij} = \kappa(\mathbf{x}_i, \mathbf{x}_j)是半正定的。

选择核函数及其参数对 SVM 的性能至关重要,但这一选择通常没有理论上的最优解,而是需要依赖实验调优

最后说明一下常见的核函数:

核函数类型表达式参数说明
线性核κ(xi,xj)=xiTxj\kappa(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i^T \mathbf{x}_j无参数
多项式核κ(xi,xj)=(xiTxj)d\kappa(\mathbf{x}_i, \mathbf{x}_j) = ( \mathbf{x}_i^T \mathbf{x}_j)^ddd:多项式阶数
高斯核(RBF)κ(xi,xj)=exp(γxixj2)\kappa(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma \|\mathbf{x}_i - \mathbf{x}_j\|^2)γ=12σ2\gamma = \frac{1}{2\sigma^2}(带宽参数,控制函数平滑度)
拉普拉斯核κ(xi,xj)=exp(γxixj)\kappa(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma \|\mathbf{x}_i - \mathbf{x}_j\|)γ=1σ>0\gamma=\frac{1}{\sigma} > 0(与高斯核类似,但使用L1距离)
Sigmoid核κ(xi,xj)=tanh(βxiTxj+θ)\kappa(\mathbf{x}_i, \mathbf{x}_j) = \tanh(\beta \mathbf{x}_i^T \mathbf{x}_j + \theta)β>0\beta>0(缩放因子),θ<0\theta<0(偏置项)

此外,对于任意正实数 c1,c2c_{1},c_{2} 和核函数 κ1,κ2\kappa_{1},\kappa_{2},以及函数 g(x)g(\mathbf{x}),以下构造均为核函数:

  1. 线性组合c1κ1+c2κ2c_{1}\kappa_{1} + c_{2}\kappa_{2}
  2. 直积κ1κ2(x,z)=κ1(x,z)κ2(x,z)\kappa_{1} \otimes \kappa_{2}(\mathbf{x},\mathbf{z}) = \kappa_{1}(\mathbf{x},\mathbf{z})\kappa_{2}(\mathbf{x},\mathbf{z})
  3. 函数缩放g(x)κ1(x,z)g(z)g(\mathbf{x})\kappa_{1}(\mathbf{x},\mathbf{z})g(\mathbf{z})

6.3 软间隔与正则化

在引入核函数后,虽然SVM的理论框架趋于完善,但仍存在两个关键问题需要解决:

  1. 复杂问题的线性可分性:无论是原始样本空间还是映射后的特征空间H\mathcal{H},要找到一个完美分离所有样本的超平面极其困难,这在实际应用中会带来高昂的计算和优化成本。
  2. 异常点导致的过拟合:若样本中存在少量异常点(如错误标注或离群点),SVM为强制分类这些点可能导致间隔大幅缩小,从而损害模型的泛化能力

这些问题的根源在于硬间隔的严格约束——即要求所有样本必须满足yi(wTxi+b)1y_{i}(\mathbf{w}^{T}\mathbf{x}_{i}+b)\geq 1。通过允许部分样本违反该约束(称为软间隔,soft margin),可显著提升模型对噪声和复杂分布的适应性。

于是在考虑最大化间隔的情况下,引入常数C>0C>00/10/1损失函数L0/1L_{0/1},优化目标可以写为

minw,b12w2+Ci=1mL0/1(yi(wTxi+b)1)\min_{w, b} \quad \frac{1}{2} ||w||^2 + C \sum_{i=1}^m L_{0/1}(y_{i}(\mathbf{w}^{T}\mathbf{x}_{i}+b)-1)

其中

L0/1(z)={0if z>01if z0L_{0/1}(z) = \begin{cases} 0 & \text{if } z > 0 \\ 1 & \text{if } z \le 0 \end{cases}

这相当于分类出错的样本给一个惩罚。但是L0/1L_{0 /1}函数性质不好,不适合求解,于是常用一些其他函数来替代它称为“替代损失”。设z=yif(xi)z = y_{i}f(\mathbf{x}_{i})常见的三种替代损失为:

损失函数名称表达式备注
Hinge损失max(0,1z)\max(0, 1 - z)用于支持向量机(SVM)
指数损失exp(z)\exp(-z)常用于AdaBoost算法
对率损失log(1+exp(z))\log(1 + \exp(-z))逻辑回归的平滑替代损失
因此我们采用Hinge损失函数,目标函数变为
minw,b12w2+Ci=1mmax(0,1yi(wTxi+b))\min_{w, b} \quad \frac{1}{2} ||w||^2 + C \sum_{i=1}^m \max(0, 1 - y_i (\mathbf{w}^{T}\mathbf{x}_{i}+b))

为了更方便的计算,引入松弛变量ξi0\xi_{i}\geq 0,每一个样本点都有一个对应的ξi\xi_{i},因此优化目标可以重写为

minw,b,ξ12w2+Ci=1mξi\min_{w, b, \xi} \quad \frac{1}{2} ||w||^2 + C \sum_{i=1}^m \xi_i

可以发现其实就是用ξi\xi_{i}替换了Hinge损失的值,用来表示样本不满足原始约束的违背程度,注意存在约束1yi(wTxi+b)ξi1 - y_i (\mathbf{w}^{T}\mathbf{x}_{i}+b)\leq \xi_{i},这就是常用的软间隔支持向量机。注意到这依旧是一个二次规划问题,因此引入拉格朗日乘子:

L=12w2+Ci=1mξi+i=1mαi(1ξiyi(wTϕ(xi)+b))i=1mμiξiL = \frac{1}{2} ||w||^2 + C \sum_{i=1}^m \xi_i + \sum_{i=1}^m \alpha_i (1 - \xi_i - y_i (w^T \phi(x_i) + b)) - \sum_{i=1}^m \mu_i \xi_i

求得对偶问题:

maxαi=1mαi12i=1mj=1mαiαjyiyjκ(xi,xj)\max_{\alpha} \quad \sum_{i=1}^m \alpha_i - \frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j \kappa(x_i, x_j)

约束条件:

i=1mαiyi=00αiC,i=1,...,m\begin{align} &\sum_{i=1}^m \alpha_i y_i = 0 \\ &{0 \le \alpha_i \le C}, \quad i = 1, ..., m \end{align}

可以发现比起硬间隔唯一区别就是α\alpha有了上限CC。最后由KKT条件下有

  • αi=0\alpha_i = 0: 则 yif(xi)1y_i f(x_i) \ge 1ξi=0\xi_i = 0。点在间隔边界外,被正确分类。不是支持向量。
  • 0<αi<C0 < \alpha_i < C: 则 yif(xi)=1y_i f(x_i) = 1ξi=0\xi_i = 0。点恰好在间隔边界上。这些是自由支持向量 ,它们决定了 bb 的值。
  • αi=C\alpha_i = C: 则 yif(xi)1y_i f(x_i) \le 1ξi0\xi_i \ge 0。点在间隔边界内部或者被错误分类。这些是有界支持向量 。它们可能是:
    • 0yif(xi)<10\leq y_i f(x_i) < 1ξi=1yif(xi)>0\xi_i = 1 - y_i f(x_i) > 0 (在间隔内)
    • yif(xi)<0y_i f(x_i)<0ξi>1\xi_{i}>1(被错误分类)

最终的决策边界 w=αiyiϕ(xi)w = \sum \alpha_i y_i \phi(x_i) 仍然只由 αi>0\alpha_i > 0 的点(即所有支持向量,包括自由的和有界的)决定。

最后软间隔中还有一个神奇的常数CC没有提到,其实这个常数正是正则化思想的体现。所谓正则化,是一种在机器学习中广泛使用的技术,其主要目的是防止模型过拟合提高模型的泛化能力。它通过向标准的学习目标(通常是最小化训练误差)中添加一个与模型复杂度相关的惩罚项来实现,这相当于引入了一种对模型复杂度的偏好或约束,引导模型学习到更简单、更具有普适性的规律。

形式上来说,正则化的目标函数通常表现为: minfCi=1NL(yi,f(xi))+Ω(f)min_{f}\,\, C\sum_{i=1}^{N} L(y_{i},f(\mathbf{x}_{i})) +\Omega(f) 这个式子和软间隔目标函数确实类似,但我们先跳出SVM领域,只看这个式子,其中

  • i=1NL(yi,f(xi))\sum_{i=1}^{N} L(y_{i},f(\mathbf{x}_{i})) 称为经验风险,用于描述模型 ff 在训练集上的拟合程度(例如,误差或损失的总和),是我们想主要降低的目标
  • Ω(f)\Omega(f) 称为正则化项或惩罚项,它度量模型 ff 的复杂度,目的是为了让最后训练出来的模型不会过分偏离正则化项
  • CC就很明显是平衡正则化项和经验风向的权重,CC越小,对模型复杂度的惩罚越重,模型趋向于更简单;反之模型越倾向于拟合训练数据。 可以明显看出来,对于正则化来说经验风险才是重点,这与SVM的直观感受不符,但不可否认的是SVM也符合这个目标函数,因此也可以拿SVM作为例子。

回到正则化方法中,我们会选择合适的正则化项 Ω(f)\Omega(f) 的形式(这通常基于领域知识或对模型特性的期望),可以限制模型的复杂度,从而降低模型在训练数据上过拟合的风险,进而提高其在未见数据上的泛化能力。上述优化问题称为正则化问题。常用的正则化项 Ω(f)\Omega(f) 包括:

  • L2L_{2}范数正则化:Ω(f)=w22\Omega(f) = ||\mathbf{w}||_2^2。倾向于使得权重向量 w\mathbf{w} 的分量取值比较小且分散(均衡),防止个别权重过大。
  • L1L_{1}范数正则化:Ω(f)=w1\Omega(f) = ||\mathbf{w}||_1。倾向于产生稀疏的权重向量,即 w\mathbf{w} 中许多分量为0。这可以用于特征选择。
  • L0L_{0}范数:Ω(f)=w0\Omega(f) = ||\mathbf{w}||_0(非零分量的个数)。直接度量稀疏性,但优化困难,通常用 L1L_1 范数作为其凸近似。

6.4 支持向量回归

接下来我们考虑回归问题,回忆线性回归模型y=wTx+by = \mathbf{w}^T\mathbf{x} + b,我们需要找到一个超平面来最小化所有样本点的预测误差。与传统线性回归不同,支持向量回归(SVR)受SVM启发引入ϵ\epsilon-不敏感带——当样本点落在以预测直线为中心、宽度为2ϵ2\epsilon的带状区域内时,不产生任何损失。这种机制通过容许部分偏离直线的样本点,将SVM的间隔思想成功迁移到回归问题中,其核心优势体现在对噪声的不敏感稀疏解特性上。

现在我们就开始数学部分,我们的目标依旧是找到线性模型的参数w,b\mathbf{w},b,只是这一次我们借鉴SVM引入间隔,那么损失函数可以写为:

i=1mlϵ(f(xi)yi)\sum_{i=1}^{m} l_{\epsilon}(f(\mathbf{x}_{i})-y_{i})

其中

lϵ={0,ifzϵ;zϵ,otherwisel_{\epsilon}=\begin{cases} 0, \quad if \,\, |z|\leq \epsilon; \\ |z|-\epsilon, \quad otherwise \end{cases}

称为ϵ\epsilon-不敏感损失,考虑正则化,我们希望参数w\mathbf{w}更平坦,所以引入正则化项12w2\frac{1}{2}\|\mathbf{w}\|^{2}且基于同样的理由——lϵl_{\epsilon}不是一个好函数,引入松弛变量ξi,ξ^i0\xi_{i},\hat{\xi}_{i}\geq 0于是有

minw,b,ξi,ξ^i12w2+Ci=1m(ξi+ξ^i)\min_{\mathbf{w},b,\xi_{i},\hat{\xi}_{i}}\quad \frac{1}{2}\|\mathbf{w}\|^{2}+C\sum_{i=1}^{m}(\xi_{i}+\hat{\xi}_{i})

其中

  • ξi\xi_{i}是衡量超出间隔上边界f(xi)+ϵf(\mathbf{x}_{i})+\epsilon的量
  • ξ^i\hat{\xi}_{i}是衡量超出间隔下边界f(xi)ϵf(\mathbf{x}_{i})-\epsilon的量 而约束条件写为
{ξi+ϵf(xi)yiξ^i+ϵyif(xi)ξi,ξ^i0\begin{cases} \xi_{i}+\epsilon\geq f(\mathbf{x}_{i})-y_{i} \\ \hat{\xi}_{i}+\epsilon \geq y_{i}-f(\mathbf{x}_{i}) \\ \xi_{i},\hat{\xi}_{i}\geq 0 \end{cases}

接下来就是拉格朗日乘子法继续发力,得到对偶问题

maxα,α^i=1myi(α^iαi)ϵ(α^i+αi)12i=1mj=1m(α^iαi)(α^jαj)xiTxj\max_{\alpha,\hat{\alpha}} \quad \sum_{i=1}^{m} y_{i}(\hat{\alpha}_{i}-\alpha_{i})-\epsilon(\hat{\alpha}_{i}+\alpha_{i})-\frac{1}{2}\sum_{i=1}^{m} \sum_{j=1}^{m}(\hat{\alpha}_{i}-\alpha_{i})(\hat{\alpha}_{j}-\alpha_{j}) \mathbf{x}^{T}_{i}\mathbf{x}_{j}

满足约束

i=1m(α^iαi)=00αi,α^iC\begin{align} &\sum_{i=1}^{m}(\hat{\alpha}_{i}-\alpha_{i})=0\\ &0\leq \alpha_{i},\hat{\alpha}_{i}\leq C \end{align}

中间步骤对w\mathbf{w}求导可以得到

w=i=1m(α^iαi)xi\mathbf{w}=\sum_{i=1}^{m} (\hat{\alpha}_{i}-\alpha_{i})\mathbf{x}_{i}

这表明最优的 ww 可以表示为输入样本 xix_i 的线性组合,系数由拉格朗日乘子决定。重要的KKT条件为

αi(wTxi+byiϵξi)=0α^i(yiwTxibϵξ^i)=0(Cαi)ξi=0(Cα^i)ξ^i=0\begin{align} &\alpha_i (w^T x_i + b-y_i - \epsilon - \xi_i) = 0 \\ &\hat{\alpha}_i (y_{i}-w^T x_i - b - \epsilon - \hat{\xi}_i) = 0 \\ &(C - \alpha_i) \xi_i = 0 \\ &(C - \hat{\alpha}_i) \hat{\xi}_i = 0 \end{align}

由KKT条件,我们可以知道,只有落在间隔边界上和间隔外部的样本其对应的乘子α\alpha才是非零值,对参数w\mathbf{w}有贡献,而只有落在间隔边界上的样本(ξ=0,α0\xi=0,\alpha\neq 0)可以求得参数bb,依旧是取多个这样的样本点求平均。 综上,只有不落在间隔内部的样本才对模型有贡献,解依旧有稀疏性。最后目标函数依旧是只含有x\mathbf{x}的内积,可以使用核函数处理。

6.5 核方法

我们之前已经使用过核函数帮助我们用线性方法处理非线性问题了,现在我们更进一步地学习核方法。核方法是一大类用于模式分析的算法。它们的核心思想是:

  • 隐式映射到高维空间:通过一个核函数 κ(x,x)\kappa(x, x'),将原始输入空间 X\mathcal{X} 中的数据 xx 隐式地映射到一个希尔伯特空间 H\mathcal{H}(通常称为特征空间),这个映射通常表示为 ϕ:XH\phi: \mathcal{X} \to \mathcal{H}

  • 核函数计算内积:核函数的关键作用在于,它直接计算了特征空间中两个映射后向量的内积
    κ(x,x)=ϕ(x),ϕ(x)H\kappa(x, x') = \langle \phi(x), \phi(x') \rangle_{\mathcal{H}} 这里的 ,H\langle \cdot, \cdot \rangle_{\mathcal{H}} 表示特征空间 H\mathcal{H} 中的内积。重要的是,我们不需要显式地知道映射 ϕ\phi 的具体形式,也不需要计算 ϕ(x)\phi(x) 的坐标,只需能计算 κ(x,x)\kappa(x, x') 的值即可。

  • 在特征空间中应用线性方法:核方法的基本策略是在高维特征空间 H\mathcal{H} 中应用线性的模式分析方法(如分类、回归、降维等)。由于核函数允许我们计算特征空间中的内积,任何仅依赖于数据点之间内积的线性算法,都可以通过将内积替换为核函数,转化为一个在原始空间中表现为非线性的算法。

回顾 SVM 中使用核函数的部分,应该更容易理解这一思想。

事实上许多核方法的理论基础是理论定理,他指出对于一个形如

minhHl(h(x1),,h(xm))+Ω(hH2)\min_{h \in \mathcal{H}} \quad l(h(x_1), \dots, h(x_m)) + \Omega(||h||_{\mathcal{H}}^2)

找出最优解h(x)h(\mathbf{x})的问题,其中hH2||h||_{\mathcal{H}}^2是函数 hh 在 RKHS H\mathcal{H} 中的范数 (norm) 平方,只要满足

  • Ω()\Omega(\cdot) 是一个定义在 [0,)[0, \infty)的单调递增函数
  • 损失函数ll非负 那么最优解一定可以写为
h(x)=i=1mαiκ(x,xi)h^*(\mathbf{x})=\sum_{i=1}^{m} \alpha_{i}\kappa(\mathbf{x},\mathbf{x}_{i})

书上介绍了用LDA(第三章)基于核方法处理非线性问题,我这里就不赘述了。

本文由博客一文多发平台 OpenWrite 发布!