SVM笔记(五) 非线性支持向量机

SVM笔记(五) 非线性支持向量机

@(svm)


预备

适合场景

如果训练输入线性不可分,可以使用非线性支持向量机,利用核技巧将输入空间非线性问题转化到特征空间线性可分问题。
这里写图片描述

核技巧

对于输入空间的所有 x,z ,函数 K(x,z) 满足条件

K(x,z)=ϕ(x)ϕ(z)

则称 K(x,z) 为核函数, ϕ(x) 为输入空间到特征空间的映射函数。
核函数的基本思想是进行输入空间到特征空间的映射,但是并没有显式地定义映射函数,一个核函数可能对应多种映射函数形式。
核函数导致特征维度增加:增加计算;降低泛化能力(容易过拟合)。

核函数的条件

χRn K(x,z) 是定义在 χ×χ 上的对称函数,如果对任意 xiχ,i=1,2,...,m K(x,z) 对应的Gram矩阵 K=[K(xi,xj)]m×m 是半正定矩阵,则称 K(x,z) 是正定核。

常用核函数

  1. 多项式核函数
    K(x,z)=(xz+1)p
  2. 高斯核函数
    K(x,z)=exp(||xz||22δ2)

构建目标函数

考虑到SVM的对偶问题

minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi

只是涉及到实例和实例之间的内积 xixj ,可以直接使用核函数进行替换,无需知道映射函数的具体形式。目标函数可替换为
minα12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi

i=1Nαiyi=0

0αiC,i=1,2,...,N

假设 α=(α1,α2,...,αN)T 是上面问题的最优解,那么:
w=i=1Nαiyixi

选择一个下标j,使得 0<αj<C ,可得:
b=yji=1NαiyiK(xi,xj)

构造决策函数:
f(x)=sign(i=1NαiyiK(x,xi)+b)

求最优解

要求解的最优化问题如下:

minα12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi

i=1Nαiyi=0

0αiC,i=1,2,...,N

考虑使用序列最小最优化算法(SMO,sequential minimal optimization),该算法1998年由Platt提出。

基本思想

对于有多个变量的最优化问题,使用迭代求解,每次迭代选择两个变量,其余变量固定,求解两个变量的二次规划问题(可以使用解析方法求解),依次迭代下去,知道所有的变量都满足KKT条件。选择两个变量的标准是其中一个变量是违反KKT条件最严重,另一个变量可以由约束条件自动确定。
直观上面理解:每次找出最离谱的变量,使他满足靠谱的条件,直到所有的变量都靠谱了。

解析方法

  1. 目标函数
    假设选择 α1 α2 ,其他变量固定,最优化问题转化为下面的形式:
    minα1,α212K11α21+12K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKi1+y2α2i=3NyiαiKi2

    α1y1+α2y2=i=3Nyiαi=ζ

    0αiC,i=1,2

    ps:第一个式子忽略了一个常数项。
  2. 上下限剪裁
    初始可行解为 αold1 αold2 ,最优解为 αnew1 αnew2 .
    假设 y1y2,0<ζ<C ,有约束条件可知:
    αold2αold1=αnew2αnew1

    考虑到 αnew1 满足 0αnew1C ,所以 αnew2 满足 ζαnew2C
    一般来讲,最优值 αold2 的取值范围有了进一步的限制,表示如下:
    Lαnew2H

    y1y2 ,H和L取值如下:
    L=max(0,αold2αold1),H=min(C,C+αold2αold1)

    y1=y2 ,H和L取值如下:
    L=max(0,αold2+αold1C),H=min(C,αold2+αold1)
  3. 最优解
    沿约束方向未剪裁的解
    αnew,unc2=αold2+y2(E1E2)η

    其中
    η=K11+K222K12

    Ei=(j=1NαjyjK(xj,xi)+b)yi

    剪裁以后的解变为
    αnew2=Hαnew,unc2Lαnew,unc2>HLαnew,unc2Hαnew,unc2L

    根据 αold2αold1=αnew2αnew1 可以求得
    αnew1=αold1+y1y2(αold2αold1)

选择变量

  1. 第一个变量
    SMO称选择第一个变量为外层循环,找出违反KKT条件最严重的样本点,对应KKT条件如下:
    αi=0yig(xi)1 线

    0<αi<Cyig(xi)=1 线

    αi=Cyig(xi)1 

    其中 g(xi)=Nj=1αjyjK(xi,xj)+b 表示对于输入 xi 的预测值。
    首先遍历间隔线上面的支持向量点 0<αi<C ,如果都满足,遍历整个训练集。
  2. 第二个变量的选择
    称为内层循环。选择标准是能够使 α2 有足够大的变化(即加快收敛速度)。考虑到 αnew2 正比于 |E1E2| ,可以根据该标准选择 α2
    如果选择 α2 不能使目标函数有足够的下降,那么遍历间隔边界的支持向量点,如果仍不合适,重新选择 α1
  3. 最后的停机条件
    i=1Nαiyi=0

    0αiC,i=1,2,...,N

    αi=0yig(xi)1

    0<αi<Cyig(xi)=1

    αi=Cyig(xi)1
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值