SVM
Support vector machine
一般去理解一个算法,都是从名字入手,接触了这么几个算法,这是唯一一个让人捉摸不透的名字.
https://onionesquereality.wordpress.com/2009/03/22/why-are-support-vectors-machines-called-so/amp/
SVM:
from the classifier to the closest data points called the support vector,these specofic data points are “supporting” the hyperplane into “equilibrium”.
The distance between the two thin lines is called the margin
The Support Vectors constrain the width of the margin
上图中两个红色菱形点与一个蓝色实心圆点就是支持向量,通过这个求解目标,以及约束条件来求解这个超平面。
SVM是定义在特征空间上的.
学习目标:在特征空间中找到一个分离超平面,能将实例分到不同的类.
利用间隔最大化求最优分离超平面.
核函数
引入核函数可以解决非线性的情况:将样本从原始空间映射到一个更高为的特征空间,使得样本在这个特征空间内线性可分
不仅用在SVM中,DP中也会用到.
常用的核函数及对比:
-
Linear Kernel 线性核
k ( x i , x j ) = x i T x j k(x_i,x_j)=x_i^{T}x_j k(xi,xj)=xiTxj
线性核函数是最简单的核函数,主要用于线性可分,它在原始空间中寻找最优线性分类器,具有参数少速度快的优势。 如果我们将线性核函数应用在KPCA中,我们会发现,推导之后和原始PCA算法一模一样,这只是线性核函数偶尔会出现等价的形式罢了。 -
Polynomial Kernel 多项式核
k ( x i , y j ) = ( x i T x j ) d k(x_i,y_j)=(x_i^{T}x_j)^d k(xi,yj)=(xiTxj)d也有复杂的形式:
k ( x i , x j ) = ( a x i T x j + b ) d k(x_i,x_j)=(ax_i^{T}x_j+b)^d k(xi,xj)=(axiTxj+b)d
其中 d ≥ 1 d\ge1 d≥1为多项式次数,参数就变多了,多项式核实一种非标准核函数,它非常适合于正交归一化后的数据,多项式核函数属于全局核函数,可以实现低维的输入空间映射到高维的特征空间。其中参数d越大,映射的维度越高,和矩阵的元素值越大。故易出现过拟合现象。 -
径向基函数 高斯核函数 Radial Basis Function(RBF)
k ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ 2 2 σ 2 ) k(x_i,x_j)=exp(-\frac{||x_i-x_j||^2}{2\sigma^2}) k(xi,xj)=exp(−2σ2∣∣xi−xj∣∣2)
σ > 0 \sigma>0 σ>0是高斯核带宽,这是一种经典的鲁棒径向基核,即高斯核函 数,鲁棒径向基核对于数据中的噪音有着较好的抗干扰能力,其 参数决定了函数作用范围,超过了这个范围,数据的作用就“基本 消失”。高斯核函数是这一族核函数的优秀代表,也是必须尝试的 核函数。对于大样本和小样本都具有比较好的性能,因此在多数 情况下不知道使用什么核函数,优先选择径向基核函数。
- Laplacian Kernel 拉普拉斯核
k ( x i , x j ) = e x p ( − ∣ ∣ x i − x j ∣ ∣ σ ) k(x_i,x_j)=exp(-\frac{||x_i-x_j||}{\sigma}) k(xi,xj)=exp(−σ∣∣xi−xj∣∣)
- Sigmoid Kernel Sigmoid核
k ( x i , x j ) = t a n h ( α x T x j + c ) k(x_i,x_j)=tanh(\alpha x^Tx_j+c) k(xi,xj)=tanh(αxTxj+c)
采用Sigmoid核函数,支持向量机实现的就是一种多层感知器神 经网络。
对于核函数如何选择的问题,吴恩达教授是这么说的:
- 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
- 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
- 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
公式推导放到后面,以实际应用驱动理论.