数据科学个人笔记:支持向量机

一、线性可分支持向量机

(一)分类器的构造

设某样本的特征向量xi为超空间中的一点,则若这些样本线性可分,我们就可以找到一个超平面将他们完全分隔开。若我们已经找出这个超平面,并令左边的为负例,y=-1,右边的为正例,y=1,则我们就构建了一个分类器。

(二)函数间隔和几何间隔

拟合这个分类器的方法如下:

设yi*(w*xi+b)为训练样本的函数间隔,w、b是要拟合的超平面参数,则函数间隔越大说明样本离超平面越远(负的话说明分错边了),说明分的置信度越高。我们要找到一组w、b,使其确定的超平面离那些离它最近的样本也足够远,也就是函数间隔足够大。离它最近的样本就是支持向量。

(三)几何间隔

函数间隔不适合作为确定w、b的标准,因为2w、2b可能确定出来相同的超平面,但函数间隔却是原来的两倍。由此,我们可以换一个衡量样本与超平面远近的指标:几何间隔,即函数间隔/||w||。输入一组w、b,得到一个超平面,对比所有样本,与其几何间隔最小的样本的几何间隔,被我们定义为最小几何间隔。所以我们的拟合分类器的方式就是求解一个最优化问题,选取w、b,使得最小几何间隔max。

(四)最优化问题

求解的最优化问题可以表示为:

Max_w,b  最小几何间隔

s.t. 每个样本的几何间隔>=最小几何间隔

转化为:

Max_w,b  最小函数间隔/||w||

s.t. 每个样本的函数间隔>=最小函数间隔

从问题的形式中可以发现,无论最小函数间隔等于多少,对最优化的结果并没有影响,最小函数间隔的选取相当于是坐标系,为简化问题,设其为1,故我们可以将问题转化为,

Min_w,b  0.5*||w||^2

s.t. 每个样本的函数间隔-1>=0

可见目标函数为二次函数,不等式约束左边为仿射函数,上述问题为凸二次规划问题。

(五)最优超平面的存在+唯一性证明(待添加)

(六)拉格朗日对偶性

为了引出其后的非线性SVM,我们要将上述最优化问题转化为其对偶问题。先在此放出拉格朗日对偶性的理论基础。

1.可以直接用的定理

设原问题为 Min_w f(w)  s.t. c(w)i<=0  且h(w)j=0

则拉格朗日函数为L(w,a,b)=f(w)+sum[ai*ci]+sum[bj*hj],其中a、b为拉格朗日乘子,

而求解原问题等价于求解min_w max_a,b L  s.t. a>=0

2.为什么要这样设?

原理是,假如我们已经选取了一组w,则内层问题的最大值只有两种情况:

(1)在任意a>=0的情况下,若w使得某c>0(不符合约束),则内层问题的最优值为无穷。同样地,若w使得某h!=0,则函数内层问题最优值为无穷。

(2)若以上两个情况都不发生,则L的的第三项必为零,第二项的最大值必为零,内层问题的最大值为f(w),再求解外层问题的话,就和原问题的解相同。

所以内层问题的最大值不是无穷就是f(w),而要使得整个问题取到最小值,w必须满足原问题约束,不然内层取到无穷大,外层就取不到最小值。

由此可知1中的等价关系成立。

3.对偶问题

 min_w max_a,b L  s.t. a>=0 称为广义拉格朗日的极小极大问题,它的对偶问题是

Max_a,b min_w L s.t. a>=0 称为广义拉格朗日的极大极小问题。

两问题的关系是,

(1)若原问题和对偶问题都有最优值,则对偶最优<=原最优

(2)若f、c为凸函数,h为仿射函数,并且假设不等式约束c严格可行,则存在x、a、b使得原问题和对偶问题同时取得最优解。

(3)若(2)中的条件成立,则x、a、b是最优解的充要条件是,KKT条件:

L对x求偏导=0

ai*ci(x)=0(对偶互补条件,即若ai和ci(x)最少有一0)

ci(x)<=0

a>=0

hj(x)=0

(七)支持向量机的对偶形式

1.原问题的拉格朗日函数为

L(w,b,alfa)=0.5*||w||^2-sum[alfai*(函数间隔i-1)]

根据(六).1和3的定理,我们要求解的最优化问题等价于对偶问题

max_alfa min_w,b L  s.t. alfa>=0

2.为了继续转化该问题,将alfa看作常数,求解min_w,b L。

通过求偏导为0,推出F=min_w,b L=-0.5*sum[sum[alfai*alfaj*yi*yj*(xi*xj)]]+sum(alfai)

3.最终,我们求解的问题转化为

min_alfa -F  s.t. sum(alfai*yi)=0, alfai>=0

根据KKT条件,w=sum(ai*yi*xi), b=yi-sum(alfa_i*yi*(xi*xj)) (此处有推导,待完善)

可见,我们的分来决策函数也可写成y=sign(sum(alfai*yi*(xi*x)+b))

 

二、线性支持向量机

(一)软间隔最大化

设每个样本的松弛变量ni,并将ci改成函数间隔i>=1-ni。此处由于我们假设数据集非线性可分,所以我们放松我们的约束条件,认为每个样本可以接受最大ni程度的分错范围。但是我们当然希望每个ni越小越好,所以我们的约束问题变为

Min_w,b 0.5*||w||^2+C*sum(ni)

s.t. yi*(w*xi+b)>=1-ni 且ni>=0

其中C为惩罚参数,C越大则对ni的惩罚越大,ni越小,反之可接受的误差越大。

(二)对偶问题

经过相似的推导过程,原问题可转化为

min_alfa -F  s.t. sum(alfai*yi)=0, C>=alfai>=0

而w、b的计算方式不变。

(三)合页损失函数(待补充)

 

三、非线性支持向量机

(一)核技巧

样本的特征空间若离线性可分差之甚远,但用别的方法能分开,比如画个圆圈,则我们需使用核技巧对特征向量们进行变换,将X变换成f(X),然后f(X)变成近似线性可分的了,就能使用sign[sum[alfai*yi*f(xi)*f(x)+b]]来作为分类器了。变换函数f(X)不好求,通常好求的是K(xi,xj)=f(xi)*f(xj),即核函数。故分类器变为sign[sum[alfa*yi*K(xi,x)+b]]。求解过程参见线性支持向量机。

(二)正定核(待添加)

(三)常用核函数

1.多项式核函数K(x,z)=(x*z+1)^p

2.高斯核函数K(x,z)=exp((-||x-z||^2)/(2sigma^2))

3.字符串核函数(待添加)

4.径向基核函数、幂指数核函数、拉普拉斯核函数、ANOVA 核函数、二次有理核函数、多元二次核函数、逆多元二次核函数以及 Sigmoid 核函数(待添加)。

(四)序列最小最优化算法(SMO)

直接求解最后带alfa的凸二次规划问题在训练样本很大时通常因过于低效而无法使用,此时我们可以使用一种启发式的迭代求解方法,即SMO。SMO的思想是将求解优化问题转化成使得所有的alfai满足KKT条件,因为这两点是等价的。

SMO算法先随机初始化所有的alfai=0,然后按照一定的条件选取其中的两个alfai,固定其他变量,针对这两个变量求解凸二次规划问题并将最优解作为alfai的更新值。

如何选择变量:

我们选取第一个变量时的目标是找最不符合优化问题的KKT条件(对偶互补性)的变量,也就是最不符合yi*g(xi)<=1(alfai=C) or >=1(alfai=0) or =1(0<alfai<C),其中g(x)为最优超平面的式子。找到后,寻找第二个变量,根据alfa1与alfa2的关系,我们选取|E1-E2|最大的alfa2,其中E=g-y。

(五)优缺点

优点:可以解决小样本下机器学习的问题,提高泛化性能,在解决文本分类、文字识别、图像分类等方面仍受欢迎,避免神经网络结构选择和局部极小的问题。

缺点:缺失数据敏感,内存消耗大,难以解释。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SiameseAge

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值