1. SVM支持向量机

要理解SVM的数学原理,你需要具备前置知识:对偶问题核技巧

1.1 基本概念

  1. SVM的目标:数据分类
  2. SVM的数学描述:使用一个超平面,分隔2组数据,并最大化Margin
    [图片]

于是问题转化为:找到一个超平面,使得d(超平面两侧距离最近的点)尽可能大
3. SVM的建模:

  • SVM的原始问题
    寻找一个超平面C: wx+b = 0,使得

    • 超平面 H = { s ∈ R n : w ⊤ s + b = 0 } H = \{s\in R^n:w^{\top}s+b = 0 \} H={sRn:ws+b=0}
    • 类别 s 1 s^1 s1 H 1 = { s ∈ R n : w ⊤ s + b ≥ 1 } H_1 = \{s\in R^n:w^{\top}s+b \geq 1 \} H1={sRn:ws+b1}
    • 类别 s 2 s^2 s2 H 2 = { s ∈ R n : w ⊤ s + b ≤ − 1 } H_2 = \{s\in R^n:w^{\top}s+b \leq -1 \} H2={sRn:ws+b1}
      其中w 为超平面法向量,x(x1,x2)为超平面的坐标. H1,H2 之间的空白区域叫做margin。那么,我们可以推断出:
  • w ⊤ ( s 1 − s 2 ) = ∥ x ∥ ∥ s 1 − s 2 ∥ c o s ( θ ) = 2 w^{\top}(s^1-s^2) = \|x\|\|s^1-s^2\|cos(\theta) = 2 w(s1s2)=x∥∥s1s2cos(θ)=2

  • 边缘Margin距离: d = ∥ s 1 − s 2 ∥ c o s ( θ ) d = \|s^1-s^2\|cos(\theta) d=s1s2cos(θ)

  • SVM的优化问题
    为了让两个分类区别更明显,间隔尽可能大,于是得到目标函数
    max ⁡ d = max ⁡ ∥ s 1 − s 2 ∥ c o s ( θ ) = max ⁡ 2 ∥ w ∥ \max d = \max \|s^1-s^2\|cos(\theta) =\max \frac{2}{\|w\|} maxd=maxs1s2cos(θ)=maxw2
    也就是说,我们通过调整超平面的法向量方向,从而调整两个类别的最小连线和法向量的夹角,从而最大化间隔。

  • SVM的优化问题转化
    我们从求最大间隔d,转化为了求最优超平面法向量 w, 这里我们用一般变量符号 x 表示超平面法向量 w
    但是 max ⁡ 2 ∥ x ∥ \max \frac{2}{\|x\|} maxx2是非凸优化问题,于是我们使用等价的目标函数
    max ⁡ 2 ∥ x ∥    ⟺    min ⁡ ∥ x ∥ 2 2 \max \frac{2}{\|x\|} \iff \min\frac{\|x\|^2}2 maxx2min2x2
    这里选择 min ⁡ ∥ x ∥ 2 2 \min\frac{\|x\|^2}2 min2x2是因为其易于求导,且是凸优化问题。
    两点的约束条件可以视为
    [图片]
    于是我们得到了SVM的最优化问题:

在这里插入图片描述

这里的约束条件含义是:每个数据样本被SVM分割为2个集合s
注意:目标函数的x就是我们追求的超平面权重w

  1. 支持向量(Support Vector): 指距离超平面最近的两个数据点,链接形成的向量。
    支持向量直接决定了SVM的效果。观察最优化问题也可以发现,目标函数只包括x, 而 x 由Margin决定, 即SVM的优化目标只与距离超平面最近的两个数据点有关。
    从数学上讲,只有支持向量的数据点约束条件是紧约束,其它数据点都是松约束,同样证明了SVM的解取决于支持向量。

1.2 SVM的对偶问题

使用对偶问题的原因: 对偶问题可以通过KKT条件简化约束条件
对偶问题的可行性:因为SVM解决的是线性规划问题,满足强对偶性,所以我们可以考虑解决对偶问题

根据SVM的拉格朗日函数:
[图片]

L(x,b,λ)为SVM的拉格朗日函数,q(λ)是SVM的对偶拉格朗日函数

使用KKT条件:
[图片]

  • x = ∑ λ i ∗ y i s i x = \sum \lambda_i^*y^is^i x=λiyisi的理解:回忆SVM的初始约束,保证超平面平均分割整个数据集,使得分类的两组数据向量和为0

带入拉格朗日函数L(x,b,λ),得到对偶拉格朗日函数:
[图片]

  • 其中:m是数据数量,λi是每个数据对应的lagrange算子,si是数据所属类别
  • 第一项 ∑ 1 m λ i \sum_1^m\lambda_i 1mλi: 线性项,反映了每个拉格朗日乘子对目标函数的直接贡献
  • 第二项 1 2 ∑ i = 1 m ∑ j = 1 m λ i y i ⋅ λ j y j ⋅ ( s i ⊤ s j ) \frac12\sum_{i=1}^m\sum_{j=1}^m \lambda_iy_i \cdot\lambda_jy_j\cdot (s_i^{\top}s_j) 21i=1mj=1mλiyiλjyj(sisj): 二次项,表示不同样本对超平面的贡献
    • λ i y i ⋅ λ j y j \lambda_iy_i \cdot\lambda_jy_j λiyiλjyj标签的乘积,确保正确的分类方向
    • s i ⊤ s j s_i^{\top}s_j sisj 样本间的内积,衡量样本的相似性
      通过对偶问题,我们得到了一个消除了x,b,但是和原L(x,b,λ)等价的函数q(λ),这样我们就可以先找到最优解 λ i ∗ = arg ⁡ max ⁡ λ q ( λ ) \lambda_i^* = \arg \max_\lambda q(\lambda) λi=argλmaxq(λ),再寻找x*,于是得到SVM的对偶问题:
      [图片]

这里的约束条件 ∑ 1 m λ i y i = 0 \sum_1^m\lambda_iy_i = 0 1mλiyi=0根据KKT条件得出。对于单变量最优化问题,使用数值方法/运筹学方法可以直接得到最优解λ*
当我们得到最优解λ*后,根据权重x的约束得到
x = ∑ λ i ∗ y i s i x = \sum \lambda_i^*y^is^i x=λiyisi.
然后得到偏置参数
b = ∑ y i − x s i b = \sum y_i - xs_i b=yixsi
于是得到了超平面函数f(x) = xs + b

  • SVM对偶问题的含义理解:
    通过求对偶问题,我们把SVM原本的寻找最大间隔超平面优化问题
    [图片]

转化为了
[图片]

对偶问题通过引入约束λ, 将原本的支持向量约束转化为了超平面参数λys,这种表示将优化目标从高维参数空间转移到样本空间,直接利用样本间的相似性(内积)构建超平面。
也就是说,对偶问题约束 λ 巧妙地把原本的样本空间数据点约束,转换为了高维参数空间地超平面约束。
通过对偶问题转换,原本地最优化问题变为了最小高维空间中,支持向量之间的内积。而这里面这个内积形式又恰巧就是一个核函数,于是实现了高维空间分割数据点。

  • SVM对偶问题的等价性理解:
    从信号角度看,内积就是一个特殊的交叉相关,可以表示数据之间的相似性大小。最小化内积实际上就是让支持向量差异尽可能地大,这又恰好和最大化Margin等价了。

1.3 核函数

我们发现SVM是一个线性模型,那么为什么一个线性模型可以对空间内任意分布的点进行分割呢?
因为我们悄无声息地对SVM超平面进行了升维操作。通过升为操作,可以将数据升到m维,此时数据可以直接被一个m-1维的平面分割。
这个隐含的操作,其实就是核函数。在SVM的loss function中,隐含了一个核函数,使得数据可以进行升维。

1.4 Soft Margin

  1. Soft margin:
    在允许一些训练样本点出现在间隔内(或者分类错误)的情况下,仍然尝试最大化间隔的情况. 这样可以在面对某些异常点时忽略错误,而最大化margin
    [图片]

Soft margin的本质是最大化Margin和最小化loss之间的取舍

引入松弛变量 ζ i \zeta_i ζi来允许一些误分类, 其中C是惩罚参数
[图片]

根据KKT条件,进行求拉格朗日对偶函数,得到对偶问题
[图片]

然后使用与上述SVM相同的方法得到软间隔超平面函数f(x) = xs + b

1.5 基于SVM的感知机算法

  • 感知机算法:
    假设存在一个超平面 wx + b, 能够分隔两组数据:
    y = s i g n ( w x + b ) y = sign(wx + b) y=sign(wx+b)
    为了能够正确的二分类,我们在寻找超平面的同时,也需要保证以上决策函数成立,即
    y ( w x + b ) > 0 y(wx + b) > 0 y(wx+b)>0
    于是我们得到了感知机的目标函数hinge loss:
    min ⁡ x 1 m max ⁡ { 0 , 1 − y i x ⊤ s i } \min_x \frac1m \max\{0,1-y^ix^{\top}s^i\} xminm1max{0,1yixsi}
    这一项其实就是超平面关于数据的损失,这里的x是超平面参数w,s是数据集中的数据。当 y i x ⊤ s i < 0 y^ix^{\top}s^i < 0 yixsi<0时,不满足 y ( w x + b ) > 0 y(wx + b) > 0 y(wx+b)>0,所以我们使其获得一个较大的loss: 1 − y i x ⊤ s i 1-y^ix^{\top}s^i 1yixsi
    由于数据之间相互独立,我们可以分别对每个数据,进行hinge loss梯度下降。于是
    ∇ x ( 1 − y i x ⊤ s i ) = − y i s i x k + 1 = x k − ∇ x ( 1 − y i x ⊤ s i ) = x k + y i s i \nabla_x(1-y^ix^{\top}s^i) = -y^is^i \\ x^{k+1} = x^k - \nabla_x(1-y^ix^{\top}s^i) = x^k + y^is^i x(1yixsi)=yisixk+1=xkx(1yixsi)=xk+yisi
    仅在分类错误时更新w

  • 基于SVM的感知机算法
    将感知机与SVM结合,目标函数如下所示:
    [图片]

相比于原本地SVM算法,增加了一项hinge loss,其本质是对分类错误的数据施加惩罚。也就是说,我们可以理解为这是一个带有Lp正则化项的SVM
这个惩罚项通过Lp范数可以惩罚错误分类的项,也可以通过数值优化超平面的margin

1.6 SVM与逻辑回归

在边际最大化(maximization margin)的框架下,损失函数的选择直接影响优化目标,从而定义了不同的模型特性:

  • SVM: 在正确分类的同时最大化margin → Hinge Loss
  • 逻辑回归:在正确分类的同时,最大化分类结果的置信度 → CE(对数损失)
    迁移学习 Transfer Learning: 将从一个任务或领域(称为源领域)学到的知识,迁移到另一个相关但不同的任务或领域(称为目标领域),从而提升目标领域模型的性能。

2. SVM迁移学习

与传统机器学习相比:

  • 传统机器学习:假设训练数据(源领域)和测试数据(目标领域)独立同分布(i.i.d.),直接通过训练数据优化模型。
  • 迁移学习:允许源领域和目标领域的数据分布、任务或标签空间存在差异,通过知识迁移解决目标领域数据不足或分布偏移的问题。
    说人话,传统机器学习的过程是从头开始,模型的初始化参数是随机分布的。而迁移学习认为初始化模型可以是一个其他领域的pretrained参数模型。
    [图片]

使用单个人脸数据集作为训练集,但是测试集使用多个其它人脸数据集

  1. 基于领域差异的迁移:
  • 同质域自适应(Homogeneous Domain Adaptation)​:源领域和目标领域任务相同,但数据分布不同
  • 异构域自适应(Heterogeneous Domain Adaptation)​:更广义的领域差异,可能涉及特征空间变化
  1. 基于任务关系的迁移:
  • 多任务学习(Multi-Task Learning)​:同时学习多个相关任务,共享部分模型参数
  • 零样本学习(Zero-Shot Learning)​:利用源领域知识推断目标领域未见过的类别

2.1 Adaptive MKL (A-MKL)

通过多核学习(MKL)自适应地调整核函数,使得映射后的特征空间对齐源领域和目标领域的分布,从而提升模型在目标领域的泛化能力。

  1. 多核学习MKL:Multi-Kernel Learning
    传统的SVM soft margin中,我们使用单个核函数实现最小化margin:
    [图片]

MKL使用多个核函数的线性组合来表示原本的核
[图片]

[图片]

增强SVM的泛化能力

  1. 适应多核学习A-MKL:基于MKL的迁移学习
    不同源的数据的差异视为二者在高维空间位置的差异,通过多核函数Multi-Kernel的权重βk来量化二者的差异
    [图片]

将MMD作为SVM的优化目标之一,于是得到
[图片]

通过交替优化分布求解目标函数
[图片]

2.2 SVM+

传统SVM仅依赖输入特征进行分类,而SVM+利用训练时可用的额外信息(特权信息,如专家标注、上下文信息等),这些信息在测试时不可用。通过特权信息,模型能更准确地估计样本的“难易程度”,从而调整分类边界。

  1. 特权信息:每个训练样本均关联特权信息(如专家标注、上下文特征等),这些信息仅在训练阶段可用

  2. SVM+:
    [图片]

SVM+引入了第一个margin,专门用于特权信息的优化。 在SVM训练过程中,普通margin和特权margin进行联合优化
在这里插入图片描述

  1. 多实例学习MIL
  • MIL:特权信息为“包”,如果一个包被标记为“相关”,则至少存在一个正实例(true positive);“不相关”包的所有实例均为负例。
    在训练阶段利用包层级的特权信息(如包标注、辅助特征)优化模型
    [图片]

[图片]

2.3 HFA

针对于异构域的迁移学习方法,算法核心是将异构域的输入映射到了一个公共空间中
[图片]

这里的W是margin优化,V是L2正则化项

2.4 SPCAN

  1. DANN:通过对抗训练使模型学习域不变特征,即特征提取器生成的特征让域分类器无法区分来自源域还是目标域。

  2. SPCAN:在对抗训练中保留语义信息,通过条件对抗网络对齐源域和目标域的类条件分布,而非全局分布。

更多推荐