浅析支持向量机(SVM)

时间:2020-03-04 09:02:15   收藏:0   阅读:191

brief introduction

information

? 支持向量机(Support Vector Machine,以下简称SVM),是一个二元分类( dualistic classification)的广义线性分类器(generalized linear classifier),通过寻找分离超平面作为决策边界(decision boundary),分离少量的支持向量(support vector),从而达到分类目的\([1][2][3]\)

? 可采用一对一(One Versus One)、一对多(One Versus Rest)等策略转变为多分类问题\([6]\)

? 原问题(primal problem)仅支持硬间隔最大化(hard margin maximum),添加松弛变量(slack variable)后支持软间隔最大化(soft margin maximum)。


details

? 属性:稀疏性和稳健性(Robust)\([1]\)、非参数模型(nonparametric models)、监督学习(supervised learning)、判别模型(discriminant model)、【KKT条件(Karush-Kuhn-Tucker condition)约束,对偶形式(dual form)转换,序列最小优化(Sequential Minimal Optimization,以下简称为SMO)算法求解\([1][4][5]\)】、支持核方法(kernel method)。

? 求解:使用门页损失函数(hinge loss function)计算经验风险(empirical risk)并在求解时加入了正则化项以优化结构风险(structural risk),1.直接进行二次规划(Quadratic Programming)求解;2.利用拉格朗日算子( Lagrange multipliers),将其转为,符合KKT条件(Karush-Kuhn-Tucker condition)的对偶形式(dual form),再进行二次规划(Quadratic Programming)求解\([1]\)

? 扩展:利用正则化、概率学、结构化、核方法改进算法,包括偏斜数据、概率SVM、最小二乘SVM(Least Square SVM, LS-SVM)、结构化SVM(structured SVM)、多核SVM(multiple kernel SVM);也可扩充到回归(Support Vector Regression)、聚类、半监督学习(Semi-Supervised SVM, S3VM)。


problems

primal problem

当样本数据集线性可分(linear separable)时,寻找正负样本中各自距离对方最近的样本数据(称为支持向量,即SVM的名字由来)(一般为三个),利用相对位置(排除坐标缩放影响,也是采用几何间隔的原因),构建最大间隔(几何间隔)进行分类[3]。

技术分享图片

\[from:greedyai.com\]

如图,当硬间隔最大化时,正类支持向量(positive support vector)(图中\(x_1\))与负类支持向量(negative support vector)(图中\(x_2, x_3\))使

\(sign\)表示符号函数,即计算括号内的值,值为正数则取正类别,反之亦然。

(求解推导请查看下方dual problem内容)


multi-class


slack problem

? 硬间隔最大化无法满足实际条件中,异常值间隔、线性不可分等情况,因此引入软间隔(soft margin)方式: 在原问题基础上,添加松弛变量(slack variable),增加容错率。

技术分享图片

\[from:greedyai.com\]

(求解推导请查看下方dual problem内容)


Duality

KKT condition

留意\(\alpha^\star>0, g_i(w^\star)=0\),即非支持向量的样本令\(g_i(w^\star)\neq 0\),可得\(\alpha^\star=0\)


dual form normal processing


dual form transformation

primal to dual

(from greedyai.com)

\[ \begin{align} &min_{(w,b)}\,\frac{1}{2}\|W\|^2 \s.t. &y_i(W^{\top}x_i+b)\geq 1 \end{align} \]

KKT condition分析,知:


slack to dual

(from greedyai.com)4:19

\[ \begin{align} &min_{(w,b,\color{red}{\xi\geq 0})}\,\frac{1}{2}\|W\|^2+\color{red}{C\sum_{i}\xi_i} \s.t. &y_i(W^{\rm{T}}x_i+b)\geq 1\color{red}{-\xi_i} \end{align} \]


dual form explanation

由上可得dual 问题,模型:
\[ \begin{align} max_{\alpha}\;W(\alpha) &= \sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i=1}^n\alpha_i\alpha_j {\color{blue}{y_iy_j}}{\color{green}{x_ix_j}} \s.t.\; &\alpha_i\geq 0\&\sum_{i=1}^n{\color{orange}{\alpha_iy_i}}=0 \&C\geq \alpha_i \end{align} \]
模型中元素(蓝色、绿色、橙色标注):
\[ \begin{align} max &\begin{cases} -{\color{blue}{y_iy_j}}:\; 两样本标签同类,值减少 & 阻碍max \-{\color{green}{x_ix_j}}:\; 两样本数据相似,值减少 & 阻碍max \-{\color{blue}{y_iy_j}}{\color{green}{x_ix_j}}:\; 两样本内在逻辑类似,值减少 & 阻碍max \\end{cases}\\sum_{i=1}^n &\begin{cases} {\color{orange}{\alpha_iy_i}}:\; 不同类标签各自加和,绝对值相等 \\end{cases}\\end{align} \]

(感觉有点模糊,可能此处反应出SVM模型潜在变量和支持向量的\(\alpha>0\)有关)


solving problem

coordinate descent method \([5]\)

(from greedyai.com)

技术分享图片

from \([5]\)


Sequential Minimal Optimization \([5]\)

CS 229, Autumn 2009 - The Simplified SMO Algorithm, SVM-w-SMO,

(SMO是一种坐标下降法\([1]\) )


kernel method

kernel svm


重点推荐\([5][6][10]\)

原文:https://www.cnblogs.com/AndrewWu/p/12405767.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!