吴恩达机器学习笔记5-SVM

给定训练样本

D = ( x 1 , y 1 ) , x 2 , y 2 ) , . . . , x n , y n ) , y i { + 1 , 1 }

超平面为 w T x + b = 0
平面的法向量为 w
对于训练数据集D假设找到了最佳超平面 w T x + b = 0 ,定义决策分类函数
f ( x ) = s i g n ( w T x + b )

该决策函数也称为 线性可分支持向量机

空间中超平面可记为(\vec w,b),空间中任意点到超平面(\vec w,b)的距离为

r = w x + b | | w | |

{ w T x i + b + 1 , y i = + 1 w T x i + b 1 , y i = 1

也就是
y i ( w T x i + b ± 1 )

记超平面
w T x i + b = + 1
w T x i + b = 1
之间的距离为 γ
γ = 2 | | w | |

要找到具有最大间隔的最佳超平面,即
{ m a x w , b 2 | | w | | s . t .     y i ( w T x i + b ) + 1 , i = 1 , 2 , . . . n

等价于
{ m i n w , b 1 2 | | w | | 2 s . t .     y i ( w T x i + b ) + 1 , i = 1 , 2 , . . . n

求解这一问题本质上是 凸二次规划问题,可以使用现成的QP优化包求解,还可以使用 拉格朗日对偶性变换到对偶变量的优化问题,即通过求解与原问题等价的对偶问题来求解。

使用拉格朗日对偶性求出 α 后,再求解出 w 和b即可得到SVM决策模型

f ( x ) = w T + b = i = 1 n α i y i x i T x + b

核函数

事实上,大部分时候数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在

为了使其线性可分,把一些变量映射到高维空间,但是这样会出现维数爆炸的问题,因为如果原空间特征是n维的,映射到 n 2 维空间里,就会使内积计算的复杂度从 O ( n ) 变为 O ( n 2 )

核函数:任意两个样本点在扩维后的空间的内积,如果等于这两个样本点在原来空间经过一个函数后的输出,那么这个函数就叫核函数
也就是

f ( x , y ) =< ϕ ( x ) , ϕ ( y ) >= ϕ ( x ) T · ϕ ( y )

这个f就是核函数。

有了核函数,我们就可以减少高维空间内积的计算复杂度

核函数有效性判定
核函数矩阵:给定m个特征向量 x 1 , x 2 , . . . , x n ,我们可以将任意两个 x i , x j 代入,计算m*m的矩阵

M i j = K ( x i , x j ) , i [ 1 , m ] , j [ 1 , m ]

定理:如果K是有效的核函数,那么核函数矩阵是对称半正定的

如果K是有效的核函数,那么我们不需要去找映射φ,直接计算内积即可。

线性核函数

K ( x 1 , x 2 ) = ( x 1 T x 2 ) 2

高斯核函数

K ( x 1 , x 2 ) = e | | x 1 x 2 | | 2 2 δ 2

逻辑回归 or 线性SVM?
特征多,数据量小:逻辑回归
特征少,数据量足够:线性SVM(创建更多变量,不带核函数)

SVM不存在局部最优,另外比神经网络一般要快

猜你喜欢

转载自blog.csdn.net/zic234gh9/article/details/81590377