博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SVM之对偶问题
阅读量:5245 次
发布时间:2019-06-14

本文共 5896 字,大约阅读时间需要 19 分钟。

>>>SVM之对偶问题

前一篇中将最大间隔分类器形式化为以下优化问题: \[\begin{align}\left\{ \begin{matrix} \underset{w,b}{\mathop{\min }}\,\frac{1}{2}{

{\left\| w \right\|}^{2}}  \\ \begin{matrix}s.t. & {
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b)\ge 1  \\\end{matrix}  \\\end{matrix} \right.\end{align}\]

容易发现这是一个凸优化问题,而凸优化问题问题一般而言是满足Slater条件的(具体证明我也不懂),所以可以等价地求解其对偶问题。转而求解其对偶问题,是因为它的对偶问题有很好的形式(向量内积形式),可以为SVM很方便的引人核函数。关于对偶问题的基本概念在一文中已做粗略介绍。现在,写出以上优化问题的对偶形式。

首先,将(1)化为标准形式 \[\begin{align}\left\{ \begin{matrix}\underset{w,b}{\mathop{\min }}\,\frac{1}{2}{

{\left\| w \right\|}^{2}}  \\\begin{matrix}s.t. & 1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b)\le 0  \\\end{matrix}  \\\end{matrix} \right.\end{align}\]

构建拉格朗日函数:\[\begin{align}L(w,b,\alpha )=\frac{1}{2}{

{\left\| w \right\|}^{2}}+\sum\limits_{i}{
{
{\alpha }_{i}}(1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b))}\end{align}\]

令${

{\theta }_{D}}(\alpha )=\underset{w,b}{\mathop{\min }}\,L(w,b,\alpha )$,则(2)的对偶问题可以写成\[\begin{align}\underset{\alpha }{\mathop{\max }}\,\underset{w,b}{\mathop{\min }}\,L(w,b,\alpha )=\underset{\alpha }{\mathop{\max }}\,{
{\theta }_{D}}(\alpha )\end{align}\]

首先求出${

{\theta }_{D}}(\alpha )$。${
{\theta }_{D}}(\alpha )$是函数$L(w,b,\alpha )$关于变量$(w,b)$ 的最小值,且容易发现$L(w,b,\alpha )$是关于$(w,b)$的凸函数,所以可以直接求偏导数并令其为0得到解。

$L(w,b,\alpha )$ 关于$w$ 求偏导:

$\begin{align*}\frac{\partial L(w,b,\alpha )}{\partial w}&=\frac{\partial \left[ \frac{1}{2}{

{\left\| w \right\|}^{2}}+\sum\limits_{i}{
{
{\alpha }_{i}}(1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b))} \right]}{\partial w} \\& =\frac{\partial \left[ \frac{1}{2}{
{w}^{T}}w+\sum\limits_{i}{
{
{\alpha }_{i}}(1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b))} \right]}{\partial w} \\& =w-\sum\limits_{i}{
{
{\alpha }_{i}}{
{y}^{i}}{
{x}^{i}}} \\\end{align*}$

令其为0,得到 \[\begin{align}w=\sum\limits_{i}{

{
{\alpha }_{i}}{
{y}^{i}}{
{x}^{i}}}\end{align}\]

$L(w,b,\alpha )$ 关于$b$ 求偏导:

$\begin{array}{*{35}{l}} \frac{\partial L(w,b,\alpha )}{\partial b} & =\frac{\partial \left[ \frac{1}{2}{

{\left\| w \right\|}^{2}}+\sum\limits_{i}{
{
{\alpha }_{i}}(1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b))} \right]}{\partial b}  \\{} & =-\sum\limits_{i}{
{
{\alpha }_{i}}{
{y}^{i}}}  \\\end{array}$

令其为0,得到 \[\begin{align}\sum\limits_{i}{

{
{\alpha }_{i}}{
{y}^{i}}}=0\end{align}\]

现在,将(5) 代回(3),得到

$\begin{align*}{

{\theta }_{D}}(\alpha )&=\frac{1}{2}{
{\left\| w \right\|}^{2}}+\sum\limits_{i}{
{
{\alpha }_{i}}(1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b))} \\& =\frac{1}{2}{
{w}^{T}}w+\sum\limits_{i}{
{
{\alpha }_{i}}(1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b))} \\& =\frac{1}{2}\sum\limits_{i,j}{
{
{\alpha }_{i}}{
{\alpha }_{j}}{
{y}^{i}}{
{y}^{j}}{
{({
{x}^{i}})}^{T}}{
{x}^{j}}}+\sum\limits_{i}{
{
{\alpha }_{i}}}-\sum\limits_{i,j}{
{
{\alpha }_{i}}{
{\alpha }_{j}}{
{y}^{i}}{
{y}^{j}}{
{({
{x}^{i}})}^{T}}{
{x}^{j}}}-b\sum\limits_{i}{
{
{\alpha }_{i}}{
{y}^{i}}} \\& =\sum\limits_{i}{
{
{\alpha }_{i}}}-\frac{1}{2}\sum\limits_{i,j}{
{
{\alpha }_{i}}{
{\alpha }_{j}}{
{y}^{i}}{
{y}^{j}}{
{({
{x}^{i}})}^{T}}{
{x}^{j}}}-b\sum\limits_{i}{
{
{\alpha }_{i}}{
{y}^{i}}} \\\end{align*}$

再根据(6),得到  \[\begin{align} {

{\theta }_{D}}(\alpha )&=\sum\limits_{i}{
{
{\alpha }_{i}}}-\frac{1}{2}\sum\limits_{i,j}{
{
{\alpha }_{i}}{
{\alpha }_{j}}{
{y}^{i}}{
{y}^{j}}{
{({
{x}^{i}})}^{T}}{
{x}^{j}}} \\& =\sum\limits_{i}{
{
{\alpha }_{i}}}-\frac{1}{2}\sum\limits_{i,j}{
{
{\alpha }_{i}}{
{\alpha }_{j}}{
{y}^{i}}{
{y}^{j}}<{
{x}^{i}},{
{x}^{j}}>} \\\end{align}\]

这便求出了${

{\theta }_{D}}(\alpha )$,而对偶问题是$\underset{\alpha }{\mathop{\max }}\,{
{\theta }_{D}}(\alpha )$。加上约束条件,对偶问题就可以写成

\[\begin{align}\left\{ \begin{matrix}\underset{\alpha }{\mathop{\max }}\,\sum\limits_{i}{

{
{\alpha }_{i}}}-\frac{1}{2}\sum\limits_{i,j}{
{
{\alpha }_{i}}{
{\alpha }_{j}}{
{y}^{i}}{
{y}^{j}}<{
{x}^{i}},{
{x}^{j}}>}  \\s.t.\left\{ \begin{matrix}{
{\alpha }_{i}}\ge 0  \\\sum\limits_{i}{
{
{\alpha }_{i}}{
{y}^{i}}}=0  \\\end{matrix} \right.  \\\end{matrix} \right.\end{align}\]

其中约束${

{\alpha }_{i}}\ge 0$是拉格朗日对偶问题本身的要求,约束$\sum\limits_{i}{
{
{\alpha }_{i}}{
{y}^{i}}}=0$代表$\frac{\partial L(w,b,\alpha )}{\partial b}=0$的结果。

现在,对偶问题就得到了。对偶问题求解的结果是得到$\alpha $ 的取值。当$\alpha $得到解后,就可以根据$w=\sum\limits_{i}{

{
{\alpha }_{i}}{
{y}^{i}}{
{x}^{i}}}$解出$w$ 。$w$确定了分类超平面的方向,$b$ 使得超平面有一个平移,根据最大间隔分类器的准则,最优超平面是穿过两类样本“最中间”的一个平面,所以$b$并不难确定\[\begin{align}b=-\frac{\underset{i:{
{y}^{i}}=-1}{\mathop{\max }}\,{
{w}^{T}}{
{x}^{i}}+\underset{i:{
{y}^{i}}=1}{\mathop{\min }}\,{
{w}^{T}}x}{2}\end{align}\]

$(w,b)$ 确定后,分类器就确定了,就是超平面${

{w}^{T}}x+b=0$ ,对于新的输入样本$x$ ,如果${
{w}^{T}}x+b>0$则判别它样本类别为1,否则判别它样本类别为-1。

现在不求解$w$ ,而是将$w=\sum\limits_{i}{

{
{\alpha }_{i}}{
{y}^{i}}{
{x}^{i}}}$ 带入判别式${
{w}^{T}}x+b$ 中,得 \[\begin{align}{
{w}^{T}}x+b=\sum\limits_{i}{
{
{\alpha }_{i}}{
{y}^{i}}<{
{x}^{i}},x>}+b\end{align}\]

上式将判别式写成了向量内积的形式,看似需要计算输入$x$与所有训练样本的内积,但实际上还可以简化。

回顾一文提到的KKT条件${

{\alpha }_{i}}{
{g}_{i}}(x)=0$ ,只有${
{g}_{i}}(x)=0$时${
{\alpha }_{i}}$ 才可能不为0。对应到现在的分类器:$x\to (w,b),{
{g}_{i}}(x)\to {
{g}_{i}}(w,b)=1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b)$ (注意这里的$x$ 是优化问题形式化中的优化变量,不要与上文中的新输入样本$x$ 混淆)。所以只有当$1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b)=0$时,对于的${
{\alpha }_{i}}$ 才可能不为0,那么(11)的计算实际上只需计算了部分训练样本与新输入样本的内积,这部分$1-{
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b)=0$的训练样本称为支持向量,这也是SVM——支持向量机名字的来源。

考虑支持向量满足$1-{

{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b)=0$,所以${
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b)=1$,而${
{y}^{i}}({
{w}^{T}}{
{x}^{i}}+b)$正是样本函数间隔的定义,也就是说,支持向量就是函数间隔为1的样本,它们也是所有样本中函数间隔最小的样本。

 

上图标出来最优分类超平面(红色)和对于的函数间隔为1的样本(两条黑线上的样本),对左侧黑线上的支持向量有${

{w}^{T}}{
{x}_{l}}+b=-1$ ,对于右侧黑线上的支持向量有${
{w}^{T}}{
{x}_{r}}+b=1$,根据KKT条件,这两个样本可以根据${
{\alpha }_{l}}>0$ 和${
{\alpha }_{r}}>0$找到,两个式子联立起来得到$b=-\frac{
{
{w}^{T}}{
{x}_{l}}+{
{w}^{T}}{
{x}_{r}}}{2}$ ,与(10)的是一致的。其实从这里就可以看出,只需要一个样本就可以确定$b$了,根据${
{w}^{T}}{
{x}_{r}}+b=1$,就可以解出$b$,$b=-\frac{
{
{w}^{T}}{
{x}_{l}}+{
{w}^{T}}{
{x}_{r}}}{2}$和(10)比较直观的说明分类超平面穿过两类样本正中间而已。

现在,分类器的内容似乎已经完整了,但不要忘了,这都是在样本可分的情况下进行的,还没有考虑样本不可分的情况。

核函数在一定程度上解决了样本不可分问题,观察优化问题(9)和判别函数(11),其中都存在向量的内积形式,核函数正是在这上面做文章的。下一篇将讨论这个问题。

转载于:https://www.cnblogs.com/dreamvibe/p/4356897.html

你可能感兴趣的文章
[JS]递归对象或数组
查看>>
CSS与Theme的作用——Asp.Net
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
20165115 2017-2018-2 《Java程序设计》第四周学习总结
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>
WPF自定义集合控件概述与遇到的问题
查看>>
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
pytest的参数化测试
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>
安装Pygame和pip的艰辛之路
查看>>
Hibernate的实体类为什么需要实现 java.io.Serializable 接口
查看>>
在Ubuntu下配置Apache多域名服务器
查看>>
多线程《三》进程与线程的区别
查看>>
Min Stack
查看>>
老鸟的Python入门教程
查看>>
Ubuntu下非常给力的下载工具--uget+aria2
查看>>
Nginx配置
查看>>
棋盘覆盖问题
查看>>
vs2003无法调试 解决方法收藏
查看>>