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) 是正定核。
常用核函数
- 多项式核函数
K(x,z)=(x⋅z+1)p - 高斯核函数
K(x,z)=exp(−||x−z||22δ2)
构建目标函数
考虑到SVM的对偶问题
minα12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi
只是涉及到实例和实例之间的内积 xi⋅xj ,可以直接使用核函数进行替换,无需知道映射函数的具体形式。目标函数可替换为
minα12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi
∑i=1Nαiyi=0
0≤αi≤C,i=1,2,...,N
假设 α∗=(α∗1,α∗2,...,α∗N)T 是上面问题的最优解,那么:
w∗=∑i=1Nα∗iyixi
选择一个下标j,使得 0<α∗j<C ,可得:
b∗=yj−∑i=1Nα∗iyiK(xi,xj)
构造决策函数:
f(x)=sign(∑i=1Nα∗iyiK(x,xi)+b∗)
求最优解
要求解的最优化问题如下:
minα12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαi
∑i=1Nαiyi=0
0≤αi≤C,i=1,2,...,N
考虑使用序列最小最优化算法(SMO,sequential minimal optimization),该算法1998年由Platt提出。
基本思想
对于有多个变量的最优化问题,使用迭代求解,每次迭代选择两个变量,其余变量固定,求解两个变量的二次规划问题(可以使用解析方法求解),依次迭代下去,知道所有的变量都满足KKT条件。选择两个变量的标准是其中一个变量是违反KKT条件最严重,另一个变量可以由约束条件自动确定。
直观上面理解:每次找出最离谱的变量,使他满足靠谱的条件,直到所有的变量都靠谱了。
解析方法
- 目标函数
假设选择 α1 和 α2 ,其他变量固定,最优化问题转化为下面的形式:
minα1,α212K11α21+12K22α22+y1y2K12α1α2−(α1+α2)+y1α1∑i=3NyiαiKi1+y2α2∑i=3NyiαiKi2
α1y1+α2y2=−∑i=3Nyiαi=ζ
0≤αi≤C,i=1,2
ps:第一个式子忽略了一个常数项。 - 上下限剪裁
初始可行解为 αold1 和 αold2 ,最优解为 αnew1 和 αnew2 .
假设 y1≠y2,0<ζ<C ,有约束条件可知:
αold2−αold1=αnew2−αnew1
考虑到 αnew1 满足 0≤αnew1≤C ,所以 αnew2 满足 ζ≤αnew2≤C
一般来讲,最优值 αold2 的取值范围有了进一步的限制,表示如下:
L≤αnew2≤H
当 y1≠y2 ,H和L取值如下:
L=max(0,αold2−αold1),H=min(C,C+αold2−αold1)
当 y1=y2 ,H和L取值如下:
L=max(0,αold2+αold1−C),H=min(C,αold2+αold1) - 最优解
沿约束方向未剪裁的解
αnew,unc2=αold2+y2(E1−E2)η
其中
η=K11+K22−2K12
Ei=(∑j=1NαjyjK(xj,xi)+b)−yi
剪裁以后的解变为
αnew2=⎧⎩⎨⎪⎪Hαnew,unc2Lαnew,unc2>HL≤αnew,unc2≤Hαnew,unc2≤L
根据 αold2−αold1=αnew2−αnew1 可以求得
αnew1=αold1+y1y2(αold2−αold1)
选择变量
- 第一个变量
SMO称选择第一个变量为外层循环,找出违反KKT条件最严重的样本点,对应KKT条件如下:
αi=0⇔yig(xi)≥1 间隔线以外正确分类情况
0<αi<C⇔yig(xi)=1 间隔线上的样本点
αi=C⇔yig(xi)≤1 两条间隔点之间的点
其中 g(xi)=∑Nj=1αjyjK(xi,xj)+b 表示对于输入 xi 的预测值。
首先遍历间隔线上面的支持向量点 0<αi<C ,如果都满足,遍历整个训练集。 - 第二个变量的选择
称为内层循环。选择标准是能够使 α2 有足够大的变化(即加快收敛速度)。考虑到 αnew2 正比于 |E1−E2| ,可以根据该标准选择 α2 。
如果选择 α2 不能使目标函数有足够的下降,那么遍历间隔边界的支持向量点,如果仍不合适,重新选择 α1 。 - 最后的停机条件
∑i=1Nαiyi=0
0≤αi≤C,i=1,2,...,N
αi=0⇔yig(xi)≥1
0<αi<C⇔yig(xi)=1
αi=C⇔yig(xi)≤1