支持向量机

支持向量机(support vector machine,简称为SVM)

  • 作为经典的有监督学习算法,常用于分类与回归分析问题中
  • 支持向量机有着完备而优雅的数学理论,并且计算成本低效果好
  • 在集成学习与深度学习流行前,SVM 在很多领域都是非常主流的算法

SVM 算法图解:

  • SVM 核心思想在于通过寻找一个超平面,尽可能的分隔不同类别间的样本
  • 支持向量(support vector):用于确定超平面边缘的部分样本

SVM 借助核技巧将输入隐式映射到高维特征空间中,从而有效地进行非线性分类

常见的核函数:

核函数 表达式 备注
Linear Kernel线性核 $k(x,y)=x^{t}y+c$
Polynomial Kernel多项式核 $k(x,y)=(ax^{t}y+c)^{d}$ $d\geqslant1$为多项式的次数
Exponential Kernel指数核 $k(x,y)=exp(-\frac{\left |x-y \right |}{2\sigma ^{2}})$ $\sigma>0$
Gaussian Kernel高斯核 $k(x,y)=exp(-\frac{\left |x-y \right |^{2}}{2\sigma ^{2}})$ $\sigma$为高斯核的带宽,$\sigma>0$,
Laplacian Kernel拉普拉斯核 $k(x,y)=exp(-\frac{\left |x-y \right |}{\sigma})$ $\sigma>0$
ANOVA Kernel $k(x,y)=exp(-\sigma(x^{k}-y^{k})^{2})^{d}$
Sigmoid Kernel $k(x,y)=tanh(ax^{t}y+c)$ $tanh$为双曲正切函数,$a>0,c<0$

SVM 算法优缺点分析:

  • 理论基础好,具备非线性分类能力;追求结构化风险最小,泛化能力强
  • 最终决策函数由少数的支持向量决定,鲁棒性强,避免了“维数灾难”
  • 针对凸优化问题可以发现全局最优解,可以避免过拟合的问题
  • 适用于小样本学习方法,但对大规模训练样本难以实施
  • 不容易处理多分类问题,对数据缺失敏感,对部分超参的选择敏感

关于 SVM 算法的对偶问题和推导过程 #待补充

往年同期文章