支持向量机

支持向量机

简要介绍

支持向量机(support vector machine),又称SVM,是一种常见的数据分类学习算法,目的是求得参数建立函数 f ( X ) = W T X + b f(X)=W^TX+b f(X)=WTX+b,将样本代入,大于0的与小于0的为不同类别,求得参数有两种方法,其一,满足一个条件,即 f ( X ) = 0 f(X)=0 f(X)=0分开的两个类别间隔要最大化,所以SVM亦称为最大间隔算法,见图一,另外一种方法是类似对数几率回归一样,即使得损失函数最小化,损失函数比较特殊,此处建议观看吴恩达老师的课程支持向量机一章,下文对第一种方法推导。
在这里插入图片描述

具体原理

两个类别的最大间距为 2 ∣ ∣ w ∣ ∣ {2}\over{||w||} w2,最大化间距即最小化 ∣ ∣ w ∣ ∣ ||w|| w,即我们最终要求
求 参 数 w , b 使 得 1 2 ∣ ∣ w ∣ ∣ 2 最 小 约 束 条 件 : y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m 求参数w,b使得\\ \frac{1}{2}||w||^2最小\\ 约束条件:y_i(w^Tx_i+b)\ge 1,i=1,2,\cdots,m w,b使21w2:yi(wTxi+b)1i=1,2,,m
约束条件即为要满足这条直线(或者平面或者更高维的东东)能够完全分开数据,这是SVM的硬间隔,当然也有软间隔,即不需要完全分开数据,能够承受一定的误差,则能够减少噪声样本的影响,我们还是回到硬间隔上。

上面的公式是不等约束条件的优化问题,用拉格朗日乘子法:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − ( y i ( w T x i + b ) ) ) . ∂ L ∂ w = 0    → w = ∑ i = 1 m α i y i x i      ( 1 ) ∂ L ∂ b = 0    → ∑ i = 1 m α i y i = 0      ( 2 ) L(w,b,\alpha)=\frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i(1-(y_i(w^Tx_i+b))).\\ \frac{\partial L}{\partial w}=0\space \space \rightarrow w=\sum_{i=1}^m\alpha_iy_ix_i\space\space\space\space(1)\\ \frac{\partial L}{\partial b}=0\space \space \rightarrow \sum_{i=1}^m\alpha_iy_i=0\space\space\space\space(2) L(w,b,α)=21w2+i=1mαi(1(yi(wTxi+b))).wL=0  w=i=1mαiyixi    (1)bL=0  i=1mαiyi=0    (2)
将(1)式代入拉格朗日函数中,经过复杂的化简,过程见图
在这里插入图片描述

即最终得到
W ( α ) = ∑ i = 1 N α i − 1 2 ( ∑ i , j = 1 N α i α j y i y j x i T x j ) W(\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}(\sum_{i,j=1}^N\alpha_i\alpha_jy_iy_jx_i^Tx_j) W(α)=i=1Nαi21(i,j=1NαiαjyiyjxiTxj)
现在求参数 α \alpha α的值使得上述式子有最大值,从而可以求得 w w w b b b,不过上述式子还有约束条件
α i ≥ 0 y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯   , m α i ( 1 − y i ( w T x i + b ) ) = 0 , i = 1 , 2 , ⋯   , m \alpha_i\ge0\\ y_i(w^Tx_i+b)\ge 1,i=1,2,\cdots,m\\ \alpha_i(1-y_i(w^Tx_i+b))=0,i=1,2,\cdots,m αi0yi(wTxi+b)1i=1,2,,mαi(1yi(wTxi+b))=0i=1,2,,m
关于为什么求 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2最小等价于求 W ( α ) W(\alpha) W(α)最大,并且还有不同的约束条件,这就涉及到拉格朗日乘子法中不等式约束条件的做法了,即求对偶问题和KKT条件,这里不多述

然而这么多 α i \alpha_i αi,又怎么求呢?这里就用到SMO(序列最小化算法)

其核心思想是

  • 选取两个合适的 α i , α j \alpha_i,\alpha_j αi,αj,将其他变量看作常数
  • 这就变成了双变量的优化问题,约束条件为 α i y i + α j y j = C \alpha_iy_i+\alpha_jy_j=C αiyi+αjyj=C
  • 重复步骤1直至达到终止循环条件

有两个问题:1,如何选取 α i , α j \alpha_i,\alpha_j αi,αj,2,循环终止条件是什么

  1. α i \alpha_i αi应该要遍历所有的 α \alpha α都要取一遍, α j \alpha_j αj的选取与 α i \alpha_i αi有关,其标准为两个 α \alpha α所对应的预测误差值之差的绝对值最大

  2. 当所有 α \alpha α不能被更新,即收敛后则终止循环

最大

  1. 当所有 α \alpha α不能被更新,即收敛后则终止循环
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值