机器学习:支持向量机

超平面

任一平面都可以用它上面的一点及它的法线向量来确定。易于理解的形式:

xcosα+ycosβ+zcosγ=p

其中 p 为平面到原点的距离,3 个角度分别为平面法向量在 x y z 轴方向的方向余弦

超平面 (ω,b) 表示超平面方程为:

ωTx+b=0
  • ω 为超平面的法向量,决定了超平面的方向
  • b 为位移项,决定了超平面与原点的距离

任意点 x0 到超平面 (ω,b) 的距离 r 可写为:

r=|ωTx0+b|||ω||

式子的分子为法向量和以点 x0 为终点的向量的数量积,分母为法向量的模,得出的结果即为平面上的任意一点与点 x0 的连线的模乘以其与法向量的夹角的余弦值,显然为点到平面的距离。

超平面用于分类

设有样本 xi ,其类别为 yi(yi{1,1}),若超平面 (ω,b) 能将其正确分类,则 (ω,b) 应满足:

{ωxi+b1y=1ωxi+b1y=1

支持向量机的基本型

距离超平面最近的几个样本点称为支持向量,支持向量点 xj 满足

ωxi+b=1y=1ωxi+b=1y=1

因此,两个异类支持向量到平面的距离之和为

γ=2||ω||

显然,超平面与支持向量之间的距离越远越好,此时分类结果是最鲁棒的,泛化能力最强,故分类的目标是:

maxω,b2||ω|| s.t. yi(ωTxi+b)1i=1,2,3,...,m.

最大化间隔等效于最大化 ω 的倒数,等效于最小化 12ω2,此即为支持向量机(Support Vector Machine,SVM)的基本型

求解

利用拉格朗日乘数法来求解上述基本型

考研数学中,拉格朗日乘数法用于多元函数的求条件极值问题,若求 f(x,y) 在条件 φ(x,y)=0 下的极值,只需构造拉格朗日函数 F(x,y,λ)=f(x,y)+λφ(x,y) ,然后求解使其偏导均为 0 的方程组即可。

此时的条件极值的条件为:yi(ωTxi+b)1 (其意义为对每一个样本 xi,都能正确计算其类别)

写出拉格朗日函数:

L(ω,b,α)=12||ω||2+i=1mαi(1yi(ωTxi+b))

学习中…

核函数

原始样本空间内不存在可以划分样本的超平面时,可选择将样本空间映射到一个更高维的特征空间,使样本在这个特征空间内线性可分。

如果原始空间是有限维,那么一定存在一个高维特征空间使样本可分。

ϕ(x) 表示 x 映射到高维空间后的向量,则对应的超平面可表示为:

f(x)=ωTϕ(x)+b

其对偶问题为:

maxαi=1mαi12i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)s.t.i=1mαiyi=0αi0,i=1,2,...,m.

其中涉及到 ϕ(xi)Tϕ(xj) 的计算,计算比较困难,用函数 κ(xi,xj) 来代替,即函数

κ(xi,xj)=ϕ(xi)Tϕ(xj)

此即为核函数,关于核函数是否存在的问题,有一个核函数定理如下:

χ 为输入空间,κ(·,·) 是定义在 χ×χ 上的对称函数,设 κ 是核函数当且仅当对于任意数据 D={x1,x2,...,xm} ,“核矩阵” K 总是半正定的。

K=(κ(x1,x1)κ(x1,x2)κ(x1,xn)κ(x2,x1)κ(x2,x2)κ(x2,xn)κ(xn,x1)κ(xn,x2)κ(xn,xn))

也就是只要对称函数对应的核矩阵是半正定的,它就可以作为核函数,对于一个半正定核矩阵,总能找到一个相对应的映射空间,也就是任意一个核函数都隐式地定义了一个特征空间(称为“再生核希尔伯特空间”, RKHS)

特征空间的好坏对支持向量机至关重要,故选择核函数十分控妖,必须将样本映射到合适的特征空间,使其尽可能地线性可分,常用核函数有:

1679541327226

svm常用核函数_svm核函数_wolfrevoda的博客-CSDN博客

核函数的组合也是核函数

  • 对于 γ1γ2 均为正数的情况, γ1κ1+γ2κ2 也是核函数
  • 核函数的直积也是核函数
  • 对于任意的函数 g(x)g(x)κ1(x,z)g(z) 也是核函数

软间隔

软间隔允许支持向量机在一些样本上出错,即允许部分样本不满足 yi(ωTxi+b)1

此时优化目标变成了:

minω,b12||ω||2+Ci=1ml(yi(ωTxi+b)1)

其中 C 为常数,l 为损失函数,常见的损失函数有:

  • hinge 损失:max(0,1,z)
  • 指数损失:exp(z)
  • 对率损失:log(1+exp(z))

支持向量回归

传统回归模通常直接基于模型输出 f(x) 与真实输出 y 计算损失,而支持向量机则允许计算值和真实值之间有一定的误差 ϵ ,也就是仅当预测值和真实值之间的绝对差大于 ϵ 时才计算损失,这相当于以 f(x) 为中心,构建一条宽度为 2ϵ 的间隔带,只要预测值落入其中,即为预测正确。