SVM支持向量机原理与迁移学习
传统SVM仅依赖输入特征进行分类,而SVM+利用训练时可用的额外信息(特权信息,如专家标注、上下文信息等),这些信息在测试时不可用。通过特权信息,模型能更准确地估计样本的“难易程度”,从而调整分类边界。通过多核学习(MKL)自适应地调整核函数,使得映射后的特征空间对齐源领域和目标领域的分布,从而提升模型在目标领域的泛化能力。也就是说,我们通过调整超平面的法向量方向,从而调整两个类别的最小连线和法向
1. SVM支持向量机
要理解SVM的数学原理,你需要具备前置知识:对偶问题,核技巧
1.1 基本概念
- SVM的目标:数据分类
- SVM的数学描述:使用一个超平面,分隔2组数据,并最大化Margin
![[图片]](https://i-blog.csdnimg.cn/direct/66d3b1a1cb8a4a58add7e94bca785711.png)
于是问题转化为:找到一个超平面,使得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={s∈Rn:w⊤s+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={s∈Rn:w⊤s+b≥1}
- 类别 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={s∈Rn:w⊤s+b≤−1}
其中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⊤(s1−s2)=∥x∥∥s1−s2∥cos(θ)=2
-
边缘Margin距离: d = ∥ s 1 − s 2 ∥ c o s ( θ ) d = \|s^1-s^2\|cos(\theta) d=∥s1−s2∥cos(θ)
-
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=max∥s1−s2∥cos(θ)=max∥w∥2
也就是说,我们通过调整超平面的法向量方向,从而调整两个类别的最小连线和法向量的夹角,从而最大化间隔。 -
SVM的优化问题转化
我们从求最大间隔d,转化为了求最优超平面法向量 w, 这里我们用一般变量符号 x 表示超平面法向量 w
但是 max 2 ∥ x ∥ \max \frac{2}{\|x\|} max∥x∥2是非凸优化问题,于是我们使用等价的目标函数
max 2 ∥ x ∥ ⟺ min ∥ x ∥ 2 2 \max \frac{2}{\|x\|} \iff \min\frac{\|x\|^2}2 max∥x∥2⟺min2∥x∥2
这里选择 min ∥ x ∥ 2 2 \min\frac{\|x\|^2}2 min2∥x∥2是因为其易于求导,且是凸优化问题。
两点的约束条件可以视为![[图片]](https://i-blog.csdnimg.cn/direct/f2bd84200d144def9afc2c511a6dfb85.png)
于是我们得到了SVM的最优化问题:

这里的约束条件含义是:每个数据样本被SVM分割为2个集合s
注意:目标函数的x就是我们追求的超平面权重w
- 支持向量(Support Vector): 指距离超平面最近的两个数据点,链接形成的向量。
支持向量直接决定了SVM的效果。观察最优化问题也可以发现,目标函数只包括x, 而 x 由Margin决定, 即SVM的优化目标只与距离超平面最近的两个数据点有关。
从数学上讲,只有支持向量的数据点约束条件是紧约束,其它数据点都是松约束,同样证明了SVM的解取决于支持向量。
1.2 SVM的对偶问题
使用对偶问题的原因: 对偶问题可以通过KKT条件简化约束条件
对偶问题的可行性:因为SVM解决的是线性规划问题,满足强对偶性,所以我们可以考虑解决对偶问题
根据SVM的拉格朗日函数:![[图片]](https://i-blog.csdnimg.cn/direct/03a26466a7e340be86b0e53e5e38fc01.png)
L(x,b,λ)为SVM的拉格朗日函数,q(λ)是SVM的对偶拉格朗日函数
使用KKT条件:![[图片]](https://i-blog.csdnimg.cn/direct/274146d7ec624725ada38a4dc0cf007e.png)
- x = ∑ λ i ∗ y i s i x = \sum \lambda_i^*y^is^i x=∑λi∗yisi的理解:回忆SVM的初始约束,保证超平面平均分割整个数据集,使得分类的两组数据向量和为0
带入拉格朗日函数L(x,b,λ),得到对偶拉格朗日函数:![[图片]](https://i-blog.csdnimg.cn/direct/afe25e5ee62748d1b33c2b4fb7cfb87f.png)
- 其中: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) 21∑i=1m∑j=1mλiyi⋅λjyj⋅(si⊤sj): 二次项,表示不同样本对超平面的贡献
- λ i y i ⋅ λ j y j \lambda_iy_i \cdot\lambda_jy_j λiyi⋅λjyj标签的乘积,确保正确的分类方向
- s i ⊤ s j s_i^{\top}s_j si⊤sj 样本间的内积,衡量样本的相似性
通过对偶问题,我们得到了一个消除了x,b,但是和原L(x,b,λ)等价的函数q(λ),这样我们就可以先找到最优解 λ i ∗ = arg max λ q ( λ ) \lambda_i^* = \arg \max_\lambda q(\lambda) λi∗=argλmaxq(λ),再寻找x*,于是得到SVM的对偶问题:![[图片]](https://i-blog.csdnimg.cn/direct/a92556512a5649069424ffa43913ae2f.png)
这里的约束条件 ∑ 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=∑λi∗yisi.
然后得到偏置参数
b = ∑ y i − x s i b = \sum y_i - xs_i b=∑yi−xsi
于是得到了超平面函数f(x) = xs + b
- SVM对偶问题的含义理解:
通过求对偶问题,我们把SVM原本的寻找最大间隔超平面优化问题![[图片]](https://i-blog.csdnimg.cn/direct/172ca037e0a54b0cba3be599641c9faa.png)
转化为了![[图片]](https://i-blog.csdnimg.cn/direct/68bf24229e9748f2a02ff26e75fb175a.png)
对偶问题通过引入约束λ, 将原本的支持向量约束转化为了超平面参数λys,这种表示将优化目标从高维参数空间转移到样本空间,直接利用样本间的相似性(内积)构建超平面。
也就是说,对偶问题约束 λ 巧妙地把原本的样本空间数据点约束,转换为了高维参数空间地超平面约束。
通过对偶问题转换,原本地最优化问题变为了最小高维空间中,支持向量之间的内积。而这里面这个内积形式又恰巧就是一个核函数,于是实现了高维空间分割数据点。
- SVM对偶问题的等价性理解:
从信号角度看,内积就是一个特殊的交叉相关,可以表示数据之间的相似性大小。最小化内积实际上就是让支持向量差异尽可能地大,这又恰好和最大化Margin等价了。
1.3 核函数
我们发现SVM是一个线性模型,那么为什么一个线性模型可以对空间内任意分布的点进行分割呢?
因为我们悄无声息地对SVM超平面进行了升维操作。通过升为操作,可以将数据升到m维,此时数据可以直接被一个m-1维的平面分割。
这个隐含的操作,其实就是核函数。在SVM的loss function中,隐含了一个核函数,使得数据可以进行升维。
1.4 Soft Margin
- Soft margin:
在允许一些训练样本点出现在间隔内(或者分类错误)的情况下,仍然尝试最大化间隔的情况. 这样可以在面对某些异常点时忽略错误,而最大化margin![[图片]](https://i-blog.csdnimg.cn/direct/9e645b8b87e64acbb2ce575a892b045a.png)
Soft margin的本质是最大化Margin和最小化loss之间的取舍
引入松弛变量 ζ i \zeta_i ζi来允许一些误分类, 其中C是惩罚参数![[图片]](https://i-blog.csdnimg.cn/direct/457fd869c2c44e7289395bcda379350c.png)
根据KKT条件,进行求拉格朗日对偶函数,得到对偶问题![[图片]](https://i-blog.csdnimg.cn/direct/fe4af05070e64cab9d82100fdf4873e2.png)
然后使用与上述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,1−yix⊤si}
这一项其实就是超平面关于数据的损失,这里的x是超平面参数w,s是数据集中的数据。当 y i x ⊤ s i < 0 y^ix^{\top}s^i < 0 yix⊤si<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 1−yix⊤si
由于数据之间相互独立,我们可以分别对每个数据,进行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(1−yix⊤si)=−yisixk+1=xk−∇x(1−yix⊤si)=xk+yisi
仅在分类错误时更新w -
基于SVM的感知机算法
将感知机与SVM结合,目标函数如下所示:![[图片]](https://i-blog.csdnimg.cn/direct/4a9d28cdcb1c409d8dac3a388e911f01.png)
相比于原本地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参数模型。![[图片]](https://i-blog.csdnimg.cn/direct/377c97cff7ff4061af59919734bdccd9.png)
使用单个人脸数据集作为训练集,但是测试集使用多个其它人脸数据集
- 基于领域差异的迁移:
- 同质域自适应(Homogeneous Domain Adaptation):源领域和目标领域任务相同,但数据分布不同
- 异构域自适应(Heterogeneous Domain Adaptation):更广义的领域差异,可能涉及特征空间变化
- 基于任务关系的迁移:
- 多任务学习(Multi-Task Learning):同时学习多个相关任务,共享部分模型参数
- 零样本学习(Zero-Shot Learning):利用源领域知识推断目标领域未见过的类别
2.1 Adaptive MKL (A-MKL)
通过多核学习(MKL)自适应地调整核函数,使得映射后的特征空间对齐源领域和目标领域的分布,从而提升模型在目标领域的泛化能力。
- 多核学习MKL:Multi-Kernel Learning
传统的SVM soft margin中,我们使用单个核函数实现最小化margin:![[图片]](https://i-blog.csdnimg.cn/direct/e9434f331d8d4833bdaced8b218cf0d3.png)
MKL使用多个核函数的线性组合来表示原本的核![[图片]](https://i-blog.csdnimg.cn/direct/7e8d04f6fb124156928c910f477c52df.png)
![[图片]](https://i-blog.csdnimg.cn/direct/a3ac09a0d3104d7cb68ee9a301c09247.png)
增强SVM的泛化能力
- 适应多核学习A-MKL:基于MKL的迁移学习
不同源的数据的差异视为二者在高维空间位置的差异,通过多核函数Multi-Kernel的权重βk来量化二者的差异![[图片]](https://i-blog.csdnimg.cn/direct/b178b909d9bb45a8bde22b4b7c4b21b4.png)
将MMD作为SVM的优化目标之一,于是得到![[图片]](https://i-blog.csdnimg.cn/direct/c74fdaca9c0740e28533721bdff3ee24.png)
通过交替优化分布求解目标函数![[图片]](https://i-blog.csdnimg.cn/direct/3a8bb8811df64b018dd520f47e0b65f3.png)
2.2 SVM+
传统SVM仅依赖输入特征进行分类,而SVM+利用训练时可用的额外信息(特权信息,如专家标注、上下文信息等),这些信息在测试时不可用。通过特权信息,模型能更准确地估计样本的“难易程度”,从而调整分类边界。
-
特权信息:每个训练样本均关联特权信息(如专家标注、上下文特征等),这些信息仅在训练阶段可用
-
SVM+:
![[图片]](https://i-blog.csdnimg.cn/direct/b45b8b0628e04f9eb328fe9cbef6f234.png)
SVM+引入了第一个margin,专门用于特权信息的优化。 在SVM训练过程中,普通margin和特权margin进行联合优化
- 多实例学习MIL
- MIL:特权信息为“包”,如果一个包被标记为“相关”,则至少存在一个正实例(true positive);“不相关”包的所有实例均为负例。
在训练阶段利用包层级的特权信息(如包标注、辅助特征)优化模型![[图片]](https://i-blog.csdnimg.cn/direct/916499a01ea14c519f9ca0a37a28408f.png)
![[图片]](https://i-blog.csdnimg.cn/direct/9e4d1ae9d28048218605d992f4856a33.png)
2.3 HFA
针对于异构域的迁移学习方法,算法核心是将异构域的输入映射到了一个公共空间中![[图片]](https://i-blog.csdnimg.cn/direct/496b2c1744eb4777a34eaba748b3e00a.png)
这里的W是margin优化,V是L2正则化项
2.4 SPCAN
-
DANN:通过对抗训练使模型学习域不变特征,即特征提取器生成的特征让域分类器无法区分来自源域还是目标域。
-
SPCAN:在对抗训练中保留语义信息,通过条件对抗网络对齐源域和目标域的类条件分布,而非全局分布。
更多推荐
所有评论(0)