机器学习笔记—支持向量机(SVM)

机器学习算法—支持向量机(support vector machine,SVM)

算法描述

线性SVM
给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , , ( x m , y m ) } y { 1 , + 1 } D=\{(x_1,y_1),(x_2,y_2),\cdot\cdot\cdot,(x_m,y_m)\},y\in\{-1,+1\} ,分类学习的基本思想就是基于训练集D在样本空间寻找一个划分超平面,将不同类别的样本区别开。因此重点就是如何寻找最优的划分超平面。

Alt
在样本空间中,划分超平面可通过如下线性方程来描述: ω T x + b = 0 \omega^Tx+b=0 样本空间中任一点 x x 到超平面 ( ω , b ) (\omega,b) 的距离 γ \gamma 可写成: γ = ω T x + b ω \gamma=\frac{|\omega^Tx+b|} {||\omega||} 假设超平面 ( ω , b ) (\omega,b) 能够对样本 ( x i , y i ) (x_i,y_i) 正确分类,那么有 { ω T x i + b > 0 y i = + 1 ω T x i + b < 0 y i = 1 \begin{cases} \omega^Tx_i+b>0,y_i=+1 \\ \omega^Tx_i+b<0,y_i=-1\end{cases} 为了增强分类器的鲁棒性,我们令 { ω T x i + b + 1 y i = + 1 ω T x i + b 1 y i = 1 \begin{cases} \omega^Tx_i+b\geq+1,y_i=+1 \\ \omega^Tx_i+b\leq-1,y_i=-1\end{cases} 使得上式等号成立的样例称之为“支持向量(support vector)”。
两个异类支持向量到超平面的距离之和称为间隔(margin) γ \gamma γ = 2 ω \gamma=\frac{2} {||\omega||}
Alt
间隔最大化
支持向量机的思想思想就是寻找一超平面,使得间隔最大化。因此可获得支持向量机的优化目标为:
m a x ω , b 2 ω s.t. y i ( ω T x i + b ) 1 i = 1 , 2 , . . . m . \begin{array}{} \underset {\omega,b} {max} & \frac{2}{||\omega||} \\ \text{s.t.}& y_i( \omega^Tx_i+b)\geq1 \\ &i=1,2,...m. \end{array} 引入二范数,上述优化问题等价于
m i n ω , b 1 2 ω 2 s.t. y i ( ω T x i + b ) 1 i = 1 , 2 , . . . m . \begin{array}{} \underset {\omega,b} {min} & \frac{1}{2} ||\omega||^2 \\ \text{s.t.}& y_i( \omega^Tx_i+b)\geq1 \\ &i=1,2,...m. \end{array} 对偶SVM
上式是一个有约束的二次规划问题,引入拉格朗日乘子 α \alpha ,当 α 0 \alpha\geq0 时,可构造拉格朗日函数 L ( ω , b , α ) L(\omega,b,\alpha) : L ( ω , b , α ) = 1 2 ω 2 + i = 1 m α i ( 1 y i ( ω T x i + b ) ) L(\omega,b,\alpha)=\frac{1} {2} ||\omega||^2+\sum_{i=1}^m \alpha_i(1-y_i( \omega^Tx_i+b)) 分别对 ω , b , α \omega,b,\alpha 求导等于0可得:

猜你喜欢

转载自blog.csdn.net/qq_29317617/article/details/85943338