SVM算法相关推导[二]

接上文SVM算法相关推导[一]

最大间隔分类器是一种在约束下求最大化的问题,对于这种问题用拉格朗日乘子法和KKT条件可以变化为求其相对简单的对欧问题。(传说中的SMO?)

对于拉个朗日乘子法和KKT条件的理解,CSDN的博主lijil168介绍的不错。

https://blog.csdn.net/lijil168/article/details/69395023

lysuns的博客

http://www.cnblogs.com/lysuns/p/4626378.html

这里简要介绍

1.拉格朗日乘子法

假设有函数f, 在一堆约束h_i(w)=0的情况下求解f的最小值的情况下可以得到新的目标函数是原优化目标和约束的线性和

原问题

\underset{w}{\min}\ f(w)\\ s.t(\text{subject to}) h_i(w) = 0, \ i=1,2,...,l

有一堆的函数 h_i(w)=0

这个公式求解可以用消元法或者拉格朗日法。消元法就是根据h_i(w)=0得到w的一个值带入原公式,再来求解。

亦可以用拉个朗日法:

那么拉格朗日乘子法定义的新目标函数为

L (w,b)=f(w)+ \sum_{i=1}^{l}\beta_ih_i(w)

求解的过程对w,b,beta的每一个元素针对上式求偏导, 并置为0这样就可以得到极值点

\left\{\begin{matrix} \frac{\partial L}{\partial w}=0 \\\\ \frac{\partial L}{\partial b}=0 \end{matrix}\right.

加入增加不等式约束, 比如g(w)<=0,

SVM算法相关推导[二]_第1张图片

拉格朗日乘法可以扩展为

L(w,\alpha,\beta)=f(w)+\sum_{j=1}^{k}\alpha_j g_j(w)+\sum_{i=1}^{l}\beta_i h_i(w)

定义最大化函数,即求使L最大化的alpha, beta值:

\theta_p(w)=\underset{\begin{matrix} \alpha, \beta\\ \alpha > 0 \end{matrix}}{\max}L(w, \alpha, \beta)

我们会发现

\underset{w}{\min}\ {\theta_p(w)} 和原始定义\underset{w}{\min}\ f(w)等价

原因是这样的:

考虑优化问题

P^*=\min \underset{\begin{matrix} \alpha, \beta\\ \alpha > 0 \end{matrix}}{\max}L(w, \alpha, \beta)=\underset{w}{\min}\theta_p(w)

看这个Theta函数的定义知道(为啥?)
\begin{cases} \theta_p(w)=\infty & \text{ if } g(w)>0 \\ \theta_p(w)=\infty& \text{ if } h(w)\neq 0\\ \theta_p(w)=f(w) & \text{eitherwise} \end{cases}

就得到了

\begin{cases} \theta_p(w)=\infty & \text{ if fit the constraint }\\ \theta_p(w)=f(w) & \text{eitherwise} \end{cases}

2.对偶问题

对偶问题有个结论

\max\min \ f(x) \leq \min\max \ f(x)

对于我们的拉格朗日乘子,设对偶问题

\theta_D(\alpha,\beta)=\min \ L(w, \alpha, \beta)

d^*=\underset{\begin{matrix}\alpha \geq 0 \\ \beta \end{matrix}}{\max}\underset{w}{\min} \ L(w, \alpha,\beta)=\max_{\begin{matrix} \alpha \geq 0\\ \beta \end{matrix}} \theta_D(\alpha,\beta)

根据max min的对偶性质有

d^* \leq p^*

3.KKT条件

摘自wiki, 在数学最优化理论里,KKT条件(Karush–Kuhn–Tucker conditions)是在满足一些有规则的条件下,一个非线性规划(Nonlinear Programming)问题能有最优化解法的一个必要和充分条件。这是一个广义化拉格朗日乘数的成果。

它有四个条件stationarity(平稳性),complementary slackness(补充松弛),primal feasibility(主约束),dual feasibility(对偶约束)。

Stationarity(平稳性):

对于最大化 f(x): 

{\displaystyle \nabla f(x^{*})=\sum _{i=1}^{m}\mu _{i}\nabla g_{i}(x^{*})+\sum _{j=1}^{\ell }\lambda _{j}\nabla h_{j}(x^{*}),}

对于最小化f(x)

-\nabla f(x^{*})=\sum _{i=1}^{m}\mu _{i}\nabla g_{i}(x^{*})+\sum _{j=1}^{\ell }\lambda _{j}\nabla h_{j}(x^{*}),}

 

Primal feasibility(主约束)

g_{i}(x^{*})\leq 0,{\text{ for }}i=1,\ldots ,m

h_{j}(x^{*})=0,{\text{ for }}j=1,\ldots ,\ell \,\!

Dual feasibility(对偶约束)

\mu _{i}\geq 0,{\text{ for }}i=1,\ldots ,m

Complementary slackness(补充松弛)

\mu _{i}g_{i}(x^{*})=0,{\text{ for }}\;i=1,\ldots ,m.

4.SVM求解

在SVM算法的求解方法是先写出原始问题,然后写出对偶问题,然后求解对偶问题

p^*=d^*=L(w^*,\alpha^*,\beta^*)

需要

\frac{\partial L(w^*, \alpha^*, \beta^*)}{\partial w}=0

\frac{\partial L(w^*, \alpha^*, \beta^*)}{\partial \beta}=0

要满足的限制为KKT 条件

\alpha_i^*\cdot g_i(w)=0

g_i(w^*) \leq 0

\alpha_i^* \geq 0

由这三个KKT条件显然可得

\text{if} \ \alpha_i > 0 \Rightarrow g_i(w^*)=0\\ \text{Usally}\ a_i \neq 0 \Leftrightarrow g_i(w^*)=0

所一可以说 g(w)是活动约束(active constraint)

第一步,写出原始问题

考虑我们SVM的优化目标
\underset{w,b}{\min}\ \frac{1}{2} \left\|w\right\|^2\\ s.t. \ y^{(i)}(w^Tx^{(i)}+b)\geq1

只有不等式约束,没有等式约束。因此只有 alpha和g函数

约束改为g<=0的方式

-y^{(i)}(w^Tx^{(i)}+b) +1 \leq 0

将w,b都作为优化参数

可以知道

g(w,b)=-y^{(i)}(w^Tx^{(i)}+b) +1 \leq 0

有根据KKT有

\text{if} \ \alpha_i > 0 \Rightarrow g_i(w^*)=0\\ \text{Usally}\ a_i \neq 0 \Leftrightarrow g_i(w^*)=0

意味着如果 \alpha_i不为0 则 g=0 即

g(w,b)=-y^{(i)}(w^Tx^{(i)}+b) +1 = 0
y^{(i)}(w^Tx^{(i)}+b)=1

回忆我们定义的函数间隔

\hat\gamma^{(i)}=y^{(i)}(w^Tx^{(i)}+b)

显然x,y的函数间隔为1

其他情况则必有 \alpha_i=0

这里函数间隔为1的向量都是支持向量

现在我们的优化目标已经满足KKT条件,写出KKT乘子,其实是拉格朗日乘子的不等式约束的扩展

L(w,\alpha,\beta)=\frac{1}{2}\left \| w\right \|^2-\sum_{i=1}^{m}\alpha_i(y^{(i)}(w^Tx^{(i)}+b)-1)

第二步,写出对偶问题

根据拉格朗日乘子定义,我们要求的原始问题是

\theta_P(x)=\max_\alpha L(w,\alpha,\beta)

\min_w \theta_P(w)就是等价与\min_wf(w)=\min_w \frac{1}{2}\left \| w \right \|^2

对偶问题

\theta_D(x)=\min_{w,b}\ L(w,b,x)

最后要求的是

d^*=\max_{\alpha\geq0,\beta} \theta _D(x)=\max_{\alpha\geq0,\beta} \min_w L(w,\alpha,\beta)

对Theta函数,我们令L对w导数为0来求出最小值

\nabla_wL=w-\sum_{i=1}^m \alpha_iy^{(i)}x^{(i)}=0

所以

w=\sum_{i=1}^m\alpha_iy^{(i)}x^{(i)}

我们令对b导数为0来求出最小值

\nabla_bL=-\sum_{i=1}^m \alpha_iy^{(i)}=0

将w带入L函数内,可以得到

\begin{align*} L(w,\alpha,\beta)=&\frac{1}{2}(\sum_{i=1}^m\alpha_i y^{(i)}x^{(i)})^T(\sum_{i=1}^m\alpha_iy^{(i)}x^{(i)}) \\ &-\sum_{i=1}^m\alpha_i(y^{(i)}(\sum_{j=1}^m\alpha_jy^{(j)}x^{(j)}))^Tx^{(i)}+b)-1) \end{align*}

展开各给子式

\frac{1}{2}(\sum_{i=1}^m\alpha_i y^{(i)}x^{(i)})^T(\sum_{i=1}^m\alpha_iy^{(i)}x^{(i)})=\frac{1}{2}\sum_{i=1}^m\sum_{j=1}^my^{(i)}y^{(j)}\alpha_i \alpha_j ({x^{(i)}}^Tx^{(j)})

\begin{align*} &\sum_{i=1}^m\alpha_i(y^{(i)}(\sum_{j=1}^m\alpha_jy^{(j)}x^{(j)}))^Tx^{(i)}+b)-1)\\ &=\sum_{i=1}^m \alpha_i y^{(i)} (\sum_{j=1}^m \alpha_j y^{(j)} x^{(j)})^T x^{(j)} + \sum_{i=1}^m \alpha_i b y^{(i)} - \sum_{i=1}^m \alpha_i \\ &=\sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y^{(i)} y^{(j)}({x^{(i)}}^Tx^{(j)}) + \sum_{i=1}^m \alpha_i b y^{(i)} - \sum_{i=1}^m \alpha_i \end{align*}

又有

\sum_{i=1}^m \alpha_i y^{(i)} = 0

带入L式子可以得到

L=\sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j \left \langle x^{(i)}, x^{(j)} \right \rangle = W(\alpha)

回忆之前我们定义的对偶问题

\theta_D(\alpha)=\min_{\alpha}L

如果

\sum_{i=1}^m \alpha_i y^{(i)} \neq 0 

那么 

\theta_D(\alpha)=\min_{\alpha}L=-\infty

所以对于问题

\max_{\alpha \geq 0}\theta_D(\alpha)

如果 

\sum_{i=1}^m \alpha_i y^{(i)} = 0

那么 

\theta_D(\alpha)=W(\alpha)

所以SVM的对偶问题实际上是求

\max_{\alpha}W(\alpha) \\ s.t. \ \alpha_i \geq 0 \text{ and } \sum y^{(i)}\alpha_i=0

求解这个问题得到 alpha, 然后又之前导数为0我们得到w

w=\sum_{i=1}^m \alpha_i y^(i) x^{(i)}

我们就可以得到b,两根支持线的中值

b=\frac{1}{2}(\max_{i, y^(i)=-1}w^Tx^(i) +\min_{i, y^(i)=1}w^Tx^(i))

这样可以得到完整的预测函数

h_{w,b}(x)=g(w^Tx+b)

g(z)=\left\{\begin{matrix} 1 \ &\text{ if } z>0\\ \\ -1 \ &\text{ if } z \leq 0 \end{matrix}\right.

现在我们看下

w^Tx+b=\sum_{i=1}^m \alpha_i y^{(i)}\left \langle x^{(i)},x \right \rangle +b

如果特征维度很高,那么

\left \langle x^{(i)},x \right \rangle

技术很耗时,可以通过核函数

k(x^{(i)},x)

来高效计算

你可能感兴趣的:(SVM算法相关推导[二])