机器学习笔记(十)——入门支持向量机(SVM)

一、SVM原理与模型数学推导

支持向量机,SVM(Support Vector Machine),其实就是一个线性分类器。在最初接到这个算法时,我们可能会一头雾水:这个名词好奇怪[问号脸],怎么“支持”?什么“向量”,哪来的“机”?

(一)由决策边界开始

1 分类中的“不适定问题”

首先,我们看一个简单的二分类问题。在二维的特征平面中,所有的数据点分为了两类:蓝色圆形和黄色三角。我们的目标是找到了一条决策边界,将数据分类。但实际上我们可以找到多条决策边界。
在这里插入图片描述
这就所谓的“不适定问题”。“不适定问题”会影响模型的泛化性。比如在下面的模型中,被黄色箭头标出的点被决策边界划为蓝色圆点,但实际上它和黄色三角更近一些。也就说决策边界的选择,不仅要考虑已经存在的数据上的是否分类正确,还要考虑是否能够更好地划分未出现的测试数据:
在这里插入图片描述
逻辑回归算法如何解决“不适定问题”问题呢?首先定义一个概率函数sigmoid函数:

σ ( t ) = 1 1 + e − t σ(t)=\frac {1}{1+e^{-t}} σ(t)=1+et1
然后根据概率函数进行建模:
P ( Y = 1 ) = 1 1 + e − θ T ⋅ X b P(Y=1)=\frac{1}{1+e^{-θ^T\cdot X_b}} P(Y=1)=1+eθTXb1
建立损失函数:
J ( θ ) = − 1 m ∑ i = 1 m y ( i ) l o g ( σ ( θ T ⋅ X b ( i ) ) ) + ( 1 − y ( i ) ) l o g ( 1 − σ ( θ T ⋅ X b ( i ) ) ) J(θ)=-\frac{1}{m}\sum_{i=1}^my^{(i)}log(σ(θ^T\cdot X_b^{(i)}))+(1-y^{(i)})log(1-σ(θ^T\cdot X_b^{(i)})) J(θ)=m1i=1my(i)log(σ(θTXb(i)))+(1y(i))log(1σ(θTXb(i)))
最小化损失函数,从而求出一条决策边界(线性):
x 2 = − θ 0 − θ 1 x 1 θ 2 x_2=\frac{-θ_0-θ_1x_1}{θ_2} x2=θ2θ0θ1x1
(以上内容逻辑回归算法)
也就说,逻辑回归的损失函数完全是由训练数据集确定的。

2 SVM中的决策边界

支撑向量机如何解决“不适定问题呢”?SVM要找到一条泛化性比较好的决策边界,就是这条直线要离两个分类都尽可能的远,我们认为这样的决策边界就是好的:
在这里插入图片描述
如上图所示:在上面的两个类别中,离决策边界最近的点到决策边界的距离尽可能地远。

那也就是说,我们可以忽略其他大部分的数据点,只关注这几个特殊的点即可。

(二)Support Vector & Margin

1 定义及思想

将最优决策边界向上&下平移,在遇到第一个点时停下来,这个点被称为支撑向量Support Vector;支撑向量到决策边界的距离是d;这两条平移后的直线的间隔(2d)被称为最大间隔Margin。

支撑向量就是支撑着两条平移边界的点,我们只需要重点研究这几个支撑向量即可,这也是SVM名称的由来;Margin就是分界面可以移动的范围,范围越大表示容错能力越强。

所以我们可以看到,所谓的支撑向量机,最初就是一个线性分类器,只不过这个线性分类器不仅能把样本分对,可以最大化Margin。

到目前为止,我们就将SVM转换为了一个最优化问题,下面的工作就是求出Margin的数学表达式,即将支撑向量机思想转化为数学问题。

2 转化为最优化问题(核心)

回忆解析几何的知识,点(x ,y)到直线 A x + B y + C = 0 Ax+By+C=0 Ax+By+C=0的距离:
d = ∣ A x + B y + C ∣ A 2 + B 2 d=\frac {|Ax+By+C|}{\sqrt{A^2+B^2}} d=A2+B2 Ax+By+C
扩展到n维空间:x点 ω T x + b = 0 ω^Tx+b=0 ωTx+b=0到(其中ω是n维向量,b是截距)的距离为:
d = ω T x + b ∣ ∣ ω ∣ ∣ , ∣ ∣ ω ∣ ∣ = ω 1 2 + ω 2 2 + . . . + ω n 2 + d=\frac{ω^Tx+b}{||ω||},||ω||=\sqrt{ω_1^2+ω_2^2+...+ω_n^2+} d=ωωTx+b,ω=ω12+ω22+...+ωn2+
然后我们去找决策边界的表达式:
在这里插入图片描述
求出在满足下面的条件下,ω的值是多少。
{ ω T x ( i ) + b ≥ 1 ∀ y ( i ) = 1 ω T x ( i ) + b ≤ − 1 ∀ y ( i ) = − 1 \left\{\begin{matrix} ω^Tx^{(i)}+b\geq 1 & \forall y^{(i)}=1\\ ω^Tx^{(i)}+b\leq -1 & \forall y^{(i)}=-1\end{matrix}\right. { ωTx(i)+b1ωTx(i)+b1y(i)=1y(i)=1
我们将上面的两个式子进行合并,即可以将 y ( i ) y^{(i)} y(i)提到前面去。这样,支撑向量机的所有数据点都要满足下面的式子:
y ( i ) ( ω T x ( i ) + b ) ≥ 1 y^{(i)}(ω^Tx^{(i)}+b)\geq 1 y(i)(ωTx(i)+b)1
对于任意支撑向量点x到决策边界的距离为d,我们要最大化Margin,将前面的式子带入后得到 m a x 2 ∣ ω T x ( i ) + b ∣ ∣ ∣ ω ∣ ∣ max\frac{2|ω^Tx^{(i)}+b|}{||ω||} maxω2ωTx(i)+b,也就是 m a x 2 ∣ ∣ ω ∣ ∣ max\frac{2}{||ω||} maxω2。即相当于最小化 m i n 1 2 ω T ω min\frac{1}{2}ω^Tω min21ωTω
OK,现在我们已经得到了SVM的最优化问题:
Φ ( x ) = 1 2 ω T ω Φ(x)=\frac{1}{2}ω^Tω Φ(x)=21ωTω s.t. y ( i ) ( ω T x ( i ) + b ) ≥ 1 y^{(i)}(ω^Tx^{(i)}+b)\geq 1 y(i)(ωTx(i)+b)1
即最优化的目标函数为 m i n 1 2 ω T ω min\frac{1}{2}ω^Tω min21ωTω,还要有限定条件( s . t . s u b j e c t t t o , s.t. subjecttto, s.t.subjecttto,
限制于):所有数据满足 y ( i ) ( ω T x ( i ) + b ) ≥ 1 y^{(i)}(ω^Tx^{(i)}+b)\geq 1 y(i)(ωTx(i)+b)1

我们发现,SVM的最优化问题是有限制条件的,与之前接触的没有限制条件的全局最优化问题的计算方法很不同。

(三)求解有条件限制的最优化问题

1 数学推导

通过六步数学推导,求解有条件限制的最优化问题。如果觉得吃力,大家可以仅仅了解推导过程,记住结果即可。

第一步:给出表达式

对于有约束条件的最优化问题,用拉格朗日乘数法来解决,得到( a i a_i ai是拉格朗日系数):
L p = 1 2 ∣ ∣ ω ∣ ∣ 2 − ∑ i = 1 l a i y i ( ω T ⋅ x i + b ) + ∑ i = 1 l a i L_p=\frac{1}{2}||ω||^2-\sum_{i=1}^la_iy_i(ω^T\cdot x_{i}+b)+\sum_{i=1}^la_i Lp=21ω2i=1laiyi(ωTxi+b)+i=1lai
此时,我们要求 L p L_p Lp基于ω,b的极小值。

第二步:求导

我们对ω,b进行求导,可以得到两个式子:
∂ L p ∂ ω = 0 ⇒ ω = ∑ i = 1 l a i y i x i \frac{\partial L_p}{\partial ω}=0\Rightarrow ω=\sum_{i=1}^l{a_iy_ix_i} ωLp=0ω=i=1laiyixi
∂ L p ∂ b = 0 ⇒ ∑ i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值