机器学习:支持向量机

很久以前看吴恩达老师的视频和西瓜书时用jupyter写的,今天想起来就把它转到这里,真的挺方便。

目的:基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开并选择泛化能力最强的划分超平面。

1.间隔与支持向量–在众多超平面中找到鲁棒性最好的那个

划分超平面可通过如下线性方程描述: w T x + b = 0 w^Tx + b = 0 wTx+b=0
W与b共同决定了超平面。平面上任意一点到超平面的距离为:

γ = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ \gamma = \frac {|w^Tx + b|}{||w||} γ=wwTx+b

from IPython.display import Image
libo="C:/Users/libo/Desktop/machine learning/西瓜书/西瓜书图片/"
Image(filename = libo + "11.png", width=400, height=60)

在这里插入图片描述

如上图所示,使得 w T x + b = 1 w^Tx + b = 1 wTx+b=1 的点称为“支持向量”,易知,两个异类支持向量到超平面的距离之和为 γ = 2 ∣ ∣ w ∣ ∣ \gamma = \frac 2{||w||} γ=w2,称之为“间隔”。

我们的目的:找到最大间隔的划分超平面,即找到约束参数w和b,使得γ最大。

m a x 2 ∣ ∣ w ∣ ∣ max \frac 2{||w||} maxw2

m i n 1 2 ∣ ∣ w ∣ ∣ 2 min \frac1 2||w||^2 min21w2

2.对偶问题

目的:换一种角度来找到最大间隔划分超平面所对应的模型。

任何一个线性问题都至少有一个对偶问题,所谓对偶问题,即换了一种问法的问题。

eg.企业怎样充分利用现有人力、物力去完成更多的任务 和 怎样用最少的人力、物力消耗去完成给定的任务。

m i n 1 2 ∣ ∣ w ∣ ∣ 2 min \frac1 2||w||^2 min21w2 该式(凸二次规划)的对偶问题为:(使用拉格朗日乘子法)

libo="C:/Users/libo/Desktop/machine learning/西瓜书/西瓜书图片/"
Image(filename = libo + "12.png", width=400, height=60)

在这里插入图片描述

求解该式时,训练样本 ( x i , y i ) (x_i,y_i) (xi,yi)需要满足 KKT 条件: ( α i : ∑ i = 1 m α i y i = 0 \alpha_i : \sum_{i=1}^{m} \alpha_i y_i = 0 αi:i=1mαiyi=0)

libo="C:/Users/libo/Desktop/machine learning/西瓜书/西瓜书图片/"
Image(filename = libo + "13.png", width=300, height=60)

在这里插入图片描述

该式为一个二次规划问题(含2个自变量的优化问题,问题规模正比于训练样本数,s.t.意为限制条件),求解该式时,有一个 SMO 算法 :

思想:固定 α i \alpha_i αi之外的所有参数,然后求 α i \alpha_i αi的极值。

执行:1.选取一对需更新的变量 α i \alpha_i αi α j \alpha_j αj;2.固定 α i \alpha_i αi意外的参数,用对偶矩阵不断更新 α i \alpha_i αi α j \alpha_j αj直到趋于稳定。

α i \alpha_i αi α j \alpha_j αj有一个不满足KKT条件的时候,目标函数就在迭代后减小。违背程度大则变量更新后的目标函数减幅越大。

核函数

背景:当原始样本空间并不存在一个能正确划分两类样本的超平面时,我们需要升维。到了某一高维特征空间,必然可分。

问题:空间维数过高,计算困难。

核函数:避免计算高维,模型最优解可由训练样本的核函数展开得到。 然后,难点变成了找到核函数。

特征空间的好坏对支持向量机的性能至关重要,不同的特征空间一般对应了不同的划分平面。因此,不合适的空间会导致性能不佳。

核函数的性质:1.核函数的线性组合也是核函数。 2.核函数的直积也是核函数。 3.如下:

libo="C:/Users/libo/Desktop/machine learning/西瓜书/西瓜书图片/"
Image(filename = libo + "14.png", width=400, height=60)

在这里插入图片描述

软间隔与正则化

背景:核函数很难找到,恰好找到,也可能是过拟合所造成的。

引入软间隔:允许一些样本出现分类错误。 于是乎,现在的任务变成了最小化间隔。

libo="C:/Users/libo/Desktop/machine learning/西瓜书/西瓜书图片/"
Image(filename = libo + "16.png", width=560, height=60)

在这里插入图片描述

libo="C:/Users/libo/Desktop/machine learning/西瓜书/西瓜书图片/"
Image(filename = libo + "15.png", width=560, height=60)

在这里插入图片描述

0/1损失函数的数学性质不佳,使得6.29不宜求解。通常使用一些替代函数来替换损失函数,他们通常是0/1损失函数的上界。

libo="C:/Users/libo/Desktop/machine learning/西瓜书/西瓜书图片/"
Image(filename = libo + "17.png", width=560, height=60)

在这里插入图片描述

支持向量回归

回归问题:给定训练样本,学得回归模型。使得 f ( x ) f(x) f(x)与 y 尽可能接近。

不同的是:SVR假设我们能容忍 f ( x ) f(x) f(x)与 y 之间最多有 ? 的偏差。如下图所示,即相当于构建一个宽度为 2? 的间隔带,若训练样本落入此区域,则预测正确。

libo="C:/Users/libo/Desktop/machine learning/西瓜书/西瓜书图片/"
Image(filename = libo + "18.png", width=560, height=50)

在这里插入图片描述

核方法

如果不考虑偏移项 b ,无论SVM还是SVR学得的模型都能表示为核函数的线性组合,显示出核函数的优势。所以发展出了一系列的基于核函数的学习方法,统称为核方法。

最常见的是通过引入核函数,将线性学习器进行非线性拓展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值