美文网首页
机器学习基础-SVM与感知机

机器学习基础-SVM与感知机

作者: 田田ww | 来源:发表于2019-03-19 13:25 被阅读0次

    参考《统计学习方法》李航等

    SVM定义

    SVM(Support Vector Machine,支持向量机),是一种用来进行二分类的机器有监督的学习方法,是定义在特征空间上的间隔最大的线性分类器。

    hard margin maximization 硬间隔最大化,当数据线性可分,学习一个线性可分支持向量机

    soft margin maximization 软间隔最大化,当数据近似线性可分,学习一个线性支持向量机

    kernel trick 核方法,当数据线性不可分,学习非线性支持向量机(核函数将输入从输入空间映射到特征空间得到的特征向量之间的内积,隐式地在高维特征空间中学习线性支持向量机)

    给定一个训练样本集D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m) \}, y_i \in \{ -1,+1 \},分类学习的基本想法就是基于训练集D在样本空间中找到一个划分超平面将不同样本分开。处于两类样本最中间的划分超平面对样本局部扰动的容忍性最好。即当对分类边界处的样本进行扰动时,更不容易产生分类错误。此时我们需要找到最大间隔。如下图

    红色实线代表划分超平面,虚线表示决策边界,边界上的样本称为支持向量

    则此时可设划分超平面可用线性方程

                                                    \omega^Tx+b = 0

    表示,此时\omega为法向量,决定超平面的方向,b为位移项,决定超平面与原点的距离。

    分类决策函数为              f(x)=sign(\omega^Tx+b)

    此时在超平面确定的情况下,\vert\omega^Tx_i+b\vert可相对的表示点x_i距离超平面的远近,同时\omega^Tx_i+b与类标记y_i符号是否一致能够表示分类是否正确,所以可用y_i(\omega^Tx_i+b)来表示分类的正确性和确信度,也叫函数间隔(functional margin)

    则函数间隔为

                                            \hat\gamma_i=y_i(\omega^Tx_i+b)

    此时由于成比例改变\omegab超平面不变但函数间隔会改变,于是我们对法向量加些约束,如规范化,\|\omega\|=1,使得间隔确定。\|\omega\|为L2范数。

    则此时要求\hat\gamma=\min_{i=1,2,...,N} \hat\gamma_iy_i(\omega^Tx_i+b)\geq \hat\gamma

    空间中任意样本点到超平面的距离为

                                                margin = \frac{\vert\omega^Tx+b\vert }{\|\omega\| } (由点到直线距离可得)

    由于y_i(\omega^Tx_i+b)\geq 0当分类正确时成立,margin可转化为

                                                margin = \frac{y_i(\omega^Tx_i+b) }{\|\omega\| }

    则我们需要最优化一个如下的问题:

                                        \left\{\begin{aligned}\max_{\omega,b}&\ margin \\s.t. &\ y_i(\omega^Tx_i+b)\geq \hat{\gamma}, 
 (i=1,2,...,N)\end{aligned}\right.

    由上可知 margin = \frac{\hat\gamma }{\|\omega\| } 则,可化为

                                        \left\{\begin{aligned}\max_{\omega,b}&\ \frac{\hat\gamma }{\|\omega\| }  \\s.t. &\ y_i(\omega^Tx_i+b)\geq \hat{\gamma}, (i=1,2,...,N)\end{aligned}\right.

    此时优化问题只与\omegab有关,函数间隔的取值并不影响最优化的问题,故我们令\hat\gamma=1

    且最大化\frac{1}{\|\omega\|} 与最小化\frac{1}{2} \|\omega\|^2等价,于是得到线性可分支持向量机的最优化问题

                                        \left\{\begin{aligned} \min_{\omega,b}&\ \frac{1}{2}\|\omega\|^2   \\s.t. &\ y_i(\omega^Tx_i+b)\geq 1, (i=1,2,...,N)\end{aligned}\right.

    此时上述优化问题转化为一个凸二次规划问题。

    SVM优化过程——对偶算法

    应用拉格朗日对偶性,通过求解对偶问题,得到原问题的最优解。优点在于,一对偶问题更易求解,二自然引入核函数,进而推广到非线性分类问题。

    首先构建拉格朗日函数,对每个不等式约束引入拉格朗日乘子\lambda_i\geq 0,i=1,2,...,N

    定义拉格朗日函数为

                            L(\omega,b,\lambda)=\frac{1}{2} \|\omega\|^2+\sum_{i=1}^N{\lambda_i(1-y_i(\omega^Tx_i+b))}

    将n个变量,k个约束的问题转化为n+k个无约束问题。

    原问题可写为

                           \begin{aligned}& \min_{\omega,b}\max_{\lambda}L(\omega,b,\lambda)& s.t. \lambda_i\geq 0 \end{aligned}

    根据拉格朗日对偶性,原问题的对偶问题为

                            \begin{aligned}& \max_{\lambda}\min_{\omega,b}L(\omega,b,\lambda)& s.t. \lambda_i\geq 0 \end{aligned}

    此时先求L(\omega,b,\lambda)\omega,b的极小,再求对\lambda的极大。具体过程如下图:

    非线性SVM与核函数

    一用核函数将原空间的数据映射到新空间

    二在新空间用线性分类学习方法从训练数据中学习分类模型。

    感知机分类

    感知机分类过程中只要求L(\omega,b)=y_i(\omega^Tx_i+b)>0对所有样本均成立即可。

    求解过程往往采用梯度下降方法,

    \frac{\partial L(\omega,b)}{\partial \omega} = \sum_{x\in{D}}y_ix_i,\frac{\partial L(\omega,b)}{\partial b} = \sum_{x\in{D}}y_i,

    则更新公式为

    \omega = \omega+\eta y_ix_i,b=b+\eta y_i

    与SVM相比,感知机可获得无数个分离超平面,但无法的到最鲁棒的超平面。

    相关文章

      网友评论

          本文标题:机器学习基础-SVM与感知机

          本文链接:https://www.haomeiwen.com/subject/yxvumqtx.html