机器学习--分类算法--SVM算法理论

目录

一 算法概述

1 点到超平面的几何距离公式

2 算法核心思想

3 算法中几个重要概念

1)线性可分

2)线性不可分

3)间隔

4)划分超平面

5)支持向量

二 算法理论

扫描二维码关注公众号,回复: 10355708 查看本文章

1 线性可分SVM

1)硬间隔SVM算法流程

2)软间隔SVM算法流程

2 线性不可分SVM

3 SVR

三 SMO算法


一 算法概述

1 点到超平面的几何距离公式

(x_{0},y_{0})\underset{distance}{\rightarrow }y=w^Tx+b\Rightarrow distance=\frac{|w^Tx_{0}+b|}{||w||_{2}}

注意:分母为点到超平面的函数距离

2 算法核心思想

  • 第一点:在数据中找到一个超平面,让尽可能多的数据分布在超平面两侧
  • 第二点:距离超平面比较近的点近可能的远离这个超平面

注意:第一点感知器模型也可以做到,但是第二点才是SVM算法的最核心思想

3 算法中几个重要概念

1)线性可分

可以在数据中找到一个超平面将尽可能多的数据二元分开(目标属性标记+1或者-1)

2)线性不可分

无法在数据中找到一个超平面将尽可能多的数据二元分开

注意:但是可以通过低维映射高维空间,使之成为线性可分

3)间隔

样本距离超平面的距离

4)划分超平面

将数据划分开的超平面

5)支持向量

一般认为是距离超平面最近的样本(默认函数距离为1)

二 算法理论

1 线性可分SVM

1)硬间隔SVM算法流程

注意:硬间隔要求样本到分割超平面的函数距离大于等于1,对于异常数据很敏感

第一步:假定条件(超平面、支持向量、支持向量距离)

  • 第一点:超平面

y=w^{T}x+b

  • 第二点:支持向量

\left \{ x|w^{T}x+b=\pm 1 \right \}

  • 第三点:支持向量的间隔

\frac{|w^{T}x+b|}{||w||_{2}}=\frac{1}{||w||_{2}}

第二步:目标函数

\left\{\begin{matrix} max(\frac{1}{||w||_{2}})\\s.t.y^{(i)}(w^{T}x^{(i)}+b)\geq 1,i=1,2,...,m \end{matrix}\right.\Rightarrow\left\{\begin{matrix} min(\frac{1}{2}||w||\tfrac{2}{2})\\s.t.1-y^{(i)}(w^{T}x^{(i)}+b)\leq 0,i=1,2,...,m \end{matrix}\right.

第三步:对于有条件约束的目标函数采用泛拉格朗日乘子法进行凸优化

  • 第一点:构建泛拉格朗日函数(泛拉格朗日乘子\beta\geq 0),并将原始问题转化为对偶问题

L(w,b,\beta )=\underset{w,b,\beta }{\arg min}\left \{ \frac{1}{2}||w||^{2}_{2}+\sum_{i=1}^{m}\beta_{i}(1-y^{(i)}(w^{T}x^{(i)}+b)) \right \}

\underset{w,b,\beta}{\arg min}(L(w,b,\beta ))\Leftrightarrow \underset{w,b}{min}\left \{ \underset{\beta}{ max}L(w,b,\beta) \right \}\Leftrightarrow \underset{\beta}{max}\left \{\underset{w,b}{ min}L(w,b,\beta) \right \}

  • 第二点:L(\beta )

L(\beta )=\underset{w,b}{min}\left \{ L(w,b,\beta) \right \}

\frac{\partial L(w,b,\beta)}{\partial w}=w-\sum _{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}=0\Rightarrow w^{*}=\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}

\frac{\partial L(w,b,\beta)}{\partial b}=-\sum _{i=1}^{m}\beta_{i}y^{(i)}=0\Rightarrow \sum _{i=1}^{m}\beta_{i}y^{(i)}=0

L(\beta )=\underset{w,b}{min}\left \{ L(w,b,\beta) \right \}=\underset{w,b}{min}\left \{ \frac{1}{2}w^{T}w-\sum_{i=1}^{m}\beta_{i}y^{(i)}w^{T}x^{(i)}-\sum_{i=1}^{m}\beta_{i}y^{(i)}b+\sum_{i=1}^{m}\beta_{i} \right \}

=\underset{w,b}{min}\left \{ \frac{1}{2}w^{T}w-w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}-b\sum_{i=1}^{m}\beta_{i}y^{(i)}+\sum_{i=1}^{m}\beta_{i} \right \}

=\underset{w,b}{min}\left \{ \frac{1}{2}w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}-w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}-b\sum_{i=1}^{m}\beta_{i}y^{(i)}+\sum_{i=1}^{m}\beta_{i} \right \}

=\underset{w,b}{min}\left \{ -\frac{1}{2}w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}+\sum_{i=1}^{m}\beta_{i} \right \}

=\underset{w,b}{min}\left \{ -\frac{1}{2}w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}w^{T}+\sum_{i=1}^{m}\beta_{i} \right \}

= -\frac{1}{2}\sum_{j=1}^{m}\beta_{j}y^{(j)}(x^{(j)})^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}+\sum_{i=1}^{m}\beta_{i}

=\sum_{i=1}^{m}\beta_{i} -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\beta_{i}\beta_{j}y^{(i)}y^{(j)}(x^{(i)})^{T}x^{(j)}

L(\beta)=\sum_{i=1}^{m}\beta_{i} -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\beta_{i}\beta_{j}y^{(i)}y^{(j)}(x^{(i)})^{T}x^{(j)},s.t.\sum_{i=1}^{m}\beta_{i}y^{(i)}=0

  • 第三点:L^{*}(w,b,\beta)

L^{*}(w,b,\beta)=\underset{\beta}{max}(L(\beta))=\underset{\beta}{min}(-L(\beta))

L^{*}(w,b,\beta)= \left\{\begin{matrix} \underset{\beta}{min}(-L(\beta))\\ s.t.\sum_{i=1}^{m}\beta_{i}y^{(i)}=0 \end{matrix}\right.\RightarrowL^{*}(w,b,\beta)=\left\{\begin{matrix} min\left \{ \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\beta_{i}\beta_{j}y^{(i)}y^{(j)}(x^{(i)})^{T}x^{(j)}-\sum_{i=1}^{m}\beta_{i} \right \}\\ s.t.\sum_{i=1}^{m}\beta_{i}y^{(i)}=0 \end{matrix}\right.

L^{*}(w,b,\beta)=\left\{\begin{matrix} min\left \{ \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\beta_{i}\beta_{j}y^{(i)}y^{(j)}(x^{(i)})^{T}x^{(j)}-\sum_{i=1}^{m}\beta_{i} \right \}\\ s.t.\sum_{i=1}^{m}\beta_{i}y^{(i)}=0 \end{matrix}\right.

第四步:使用SMO算法得到最优解\beta^{*}

第五步:根据w,b,\beta关系以及支持向量集合(S个)\left \{ (x^{s},y^{s})|\beta_{s}> 0 \right \},更新w^{*},b^{*}

w^{*}=\sum_{i=1}^{m}\beta _{i}y^{(i)}x^{(i)}

b^{*}=\frac{1}{S}\sum _{s=1}^{S}(y^{(s)}-\sum _{i=1}^{m}\beta_{i}y^{(i)}(x^{(i)})^{T}x^{(s)})

第六步:构建最终分类器

f(x)=sign(w^{*}x+b^{*})

2)软间隔SVM算法流程

注意:软间隔要求每个样本都引入松弛因子\xi,使得样本的函数距离加上松弛因子之后大于等于1,样本的函数距离要求放松了,对异常样本敏感度下降

第一步:假定条件(超平面、支持向量、支持向量距离、松弛因子、惩罚项)

  • 第一点:超平面

y=w^{T}x+b

  • 第二点:支持向量(松弛因子\xi=0

\left \{ x|w^{T}x+b=\pm 1 \right \}

  • 第三点:支持向量的间隔

\frac{|w^{T}x+b|}{||w||_{2}}=\frac{1}{||w||_{2}}

  • 第四点:松弛因子\xi(\xi\geq 0)

松弛因子\xi越大,意味者样本的函数距离越小(越接近超平面,甚至越过超平面),但是过大的松弛因子\xi会导致分类错误可能性上升,松弛因子的引入是有代价的,需要对其进行惩罚

  • 第五点:惩罚项

对松弛因子\xi进行L1惩罚,加入惩罚系数C(超参C>0)

第二步:目标函数

\left\{\begin{matrix} max(\frac{1}{||w||_{2}})+C\sum_{i=1}^{m}\xi _{i}\\s.t.y^{(i)}(w^{T}x^{(i)}+b)+\xi \geq 1,i=1,2,...,m\\s.t.\xi _{i}\geq 0,i=1,2,...,m \end{matrix}\right.\Rightarrow\left\{\begin{matrix} min(\frac{1}{2}||w||\tfrac{2}{2})+C\sum_{i=1}^{m}\xi _{i}\\s.t.1-\xi-y^{(i)}(w^{T}x^{(i)}+b)\leq 0 ,i=1,2,...,m\\s.t.-\xi _{i}\leq 0 \end{matrix}\right.

第三步:对于有条件约束的目标函数采用泛拉格朗日乘子法进行凸优化

  • 第一点:构建泛拉格朗日函数(泛拉格朗日乘子\beta\geq 0,\mu \geq 0),并将原始问题转化为对偶问题

L(w,b,\xi ,\beta,\mu )=\underset{w,b,\xi ,\beta,\mu }{\arg min}\left \{ \frac{1}{2}||w||^{2}_{2}+C\sum_{i=1}^{m}\xi _{i}+\sum_{i=1}^{m}\beta_{i}(1-\xi _{i}-y^{(i)}(w^{T}x^{(i)}+b))-\sum_{i=1}^{m}\mu _{i}\xi _{i} \right \}

\underset{w,b,\xi ,\beta,\mu }{\arg min}(L(w,b,\xi ,\beta,\mu ))\Leftrightarrow \underset{w,b,\xi }{min}\left \{ \underset{\beta,\mu}{ max}L(w,b,\beta) \right \}\Leftrightarrow \underset{\beta,\mu}{max}\left \{\underset{w,b,\xi }{ min}L(w,b,\beta) \right \}

  • 第二点:L(\beta,\mu )

L(\beta,\mu )=\underset{w,b,\xi}{min}\left \{ L(w,b,\xi ,\beta,\mu ) \right \}

\frac{\partial L(w,b,\xi ,\beta,\mu )}{\partial w}=w-\sum _{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}=0\Rightarrow w^{*}=\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}

\frac{\partial L(w,b,\xi ,\beta,\mu )}{\partial b}=-\sum _{i=1}^{m}\beta_{i}y^{(i)}=0\Rightarrow \sum _{i=1}^{m}\beta_{i}y^{(i)}=0

\frac{\partial L(w,b,\xi ,\beta,\mu )}{\partial \xi_{i} }=C-\beta _{i}-\mu _{i}=0\Rightarrow C-\beta _{i}-\mu _{i}=0,i=1,2,...,m

L(\beta,\mu )=\underset{w,b,\xi }{min}\left \{ L(w,b,\xi ,\beta,\mu ) \right \}

=\underset{w,b,\xi}{min}\left \{ \frac{1}{2}w^{T}w+C\sum_{i=1}^{m}\xi _{i}-\sum_{i=1}^{m}\beta_{i}\xi _{i}-\sum_{i=1}^{m}\beta_{i}y^{(i)}w^{T}x^{(i)}-\sum_{i=1}^{m}\beta_{i}y^{(i)}b+\sum_{i=1}^{m}\beta_{i} -\sum_{i=1}^{m}\mu _{i}\xi _{i}\right \}

=\underset{w,b,\xi}{min}\left \{ \frac{1}{2}w^{T}w-\sum_{i=1}^{m}\beta_{i}\xi _{i}-\sum_{i=1}^{m}\beta_{i}y^{(i)}w^{T}x^{(i)}-\sum_{i=1}^{m}\beta_{i}y^{(i)}b+\sum_{i=1}^{m}\beta_{i} +\sum_{i=1}^{m}(C-\mu _{i})\xi _{i}\right \}

=\underset{w,b,\xi}{min}\left \{ \frac{1}{2}w^{T}w-\sum_{i=1}^{m}\beta_{i}\xi _{i}-\sum_{i=1}^{m}\beta_{i}y^{(i)}w^{T}x^{(i)}-\sum_{i=1}^{m}\beta_{i}y^{(i)}b+\sum_{i=1}^{m}\beta_{i} +\sum_{i=1}^{m}\beta _{i}\xi _{i}\right \}

=\underset{w,b,\xi}{min}\left \{ \frac{1}{2}w^{T}w-\sum_{i=1}^{m}\beta_{i}y^{(i)}w^{T}x^{(i)}-\sum_{i=1}^{m}\beta_{i}y^{(i)}b+\sum_{i=1}^{m}\beta_{i} \right \}

=\underset{w,b,\xi }{min}\left \{ \frac{1}{2}w^{T}w-w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}-b\sum_{i=1}^{m}\beta_{i}y^{(i)}+\sum_{i=1}^{m}\beta_{i} \right \}

=\underset{w,b,\xi }{min}\left \{ \frac{1}{2}w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}-w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}-b\sum_{i=1}^{m}\beta_{i}y^{(i)}+\sum_{i=1}^{m}\beta_{i} \right \}

=\underset{w,b,\xi }{min}\left \{ -\frac{1}{2}w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}+\sum_{i=1}^{m}\beta_{i} \right \}

=\underset{w,b,\xi }{min}\left \{ -\frac{1}{2}w^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}w^{T}+\sum_{i=1}^{m}\beta_{i} \right \}

= -\frac{1}{2}\sum_{j=1}^{m}\beta_{j}y^{(j)}(x^{(j)})^{T}\sum_{i=1}^{m}\beta_{i}y^{(i)}x^{(i)}+\sum_{i=1}^{m}\beta_{i}

=\sum_{i=1}^{m}\beta_{i} -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\beta_{i}\beta_{j}y^{(i)}y^{(j)}(x^{(i)})^{T}x^{(j)}

L(\beta,\mu )=L(\beta)=\sum_{i=1}^{m}\beta_{i} -\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\beta_{i}\beta_{j}y^{(i)}y^{(j)}(x^{(i)})^{T}x^{(j)},s.t.\left\{\begin{matrix} \sum_{i=1}^{m}\beta_{i}y^{(i)}=0\\C-\beta_{i}-\mu_{i} =0,i=1,2,...,m\end{matrix}\right.

  • 第三点:L^{*}(w,b,\xi ,\beta,\mu )

L^{*}(w,b,\xi ,\beta,\mu )=\underset{\beta,\mu }{max}(L(\beta,\mu ))=\underset{\beta}{max}(L(\beta))=\underset{\beta}{min}(-L(\beta))

L^{*}(w,b,\xi ,\beta,\mu )= \left\{\begin{matrix} \underset{\beta}{min}(-L(\beta))\\ s.t.\sum_{i=1}^{m}\beta_{i}y^{(i)}=0\\s.t.C-\beta _{i}-\mu _{i}=0,i=1,2,...,m \end{matrix}\right.\Rightarrow L^{*}(w,b,\xi ,\beta,\mu )=\left\{\begin{matrix} min\left \{ \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\beta_{i}\beta_{j}y^{(i)}y^{(j)}(x^{(i)})^{T}x^{(j)}-\sum_{i=1}^{m}\beta_{i} \right \}\\ s.t.\sum_{i=1}^{m}\beta_{i}y^{(i)}=0\\s.t.0\leq \beta _{i}\leq C,i=1,2,...,m \end{matrix}\right.

第四步:使用SMO算法得到最优解\beta^{*}

第五步:根据w,b,\xi ,\beta,\mu关系以及支持向量集合(S个)\left \{ (x^{s},y^{s})|\0<\beta_{s}< C \right \},更新w^{*},b^{*}

注意:支持向量满足如下关系推导

\Rightarrow \xi _{i}=0\Rightarrow \left\{\begin{matrix} \mu _{i}> 0\Rightarrow \beta _{i}< C\\ 1-\xi _{i}-y^{(i)}(w^{T}x+b)=0\Rightarrow \beta _{i}> 0 \end{matrix}\right.\Rightarrow 0< \beta _{i}< C

w^{*}=\sum_{i=1}^{m}\beta _{i}y^{(i)}x^{(i)}

b^{*}=\frac{1}{S}\sum _{s=1}^{S}(y^{(s)}-\sum _{i=1}^{m}\beta_{i}y^{(i)}(x^{(i)})^{T}x^{(s)})

第六步:构建最终分类器

f(x)=sign(w^{*}x+b^{*})

2 线性不可分SVM

3 SVR

三 SMO算法

发布了8 篇原创文章 · 获赞 1 · 访问量 173

猜你喜欢

转载自blog.csdn.net/weixin_35733800/article/details/105222533