在1中,我们的求解问题是:$min_{w,b}$ $\frac{1}{2}||w||^{2}$,使得$y^{(i)}(w^{T}x^{(i)}+b)\geq 1 ,1 \leq i \leq n$

设$g_{i}(w)=-y^{(i)}(w^{T}x^{(i)}+b)+1 \leq 0$,

那么按照2中的定义,对应的拉格朗日函数为$L(w,b,\alpha)=\frac{1}{2}||w||^{2}-\sum_{i=1}^{n}\alpha_{i}[y^{(i)}(w^{T}x^{(i)}+b)-1]$

这里我们这里面没有$\beta$,因为没有$h$。

那么按照2中的定义有:
(1)$ \frac{\partial}{\partial w}L(w,b,\alpha)=w-\sum_{i=1}^{n}\alpha_{i}y^{(i)}x^{(i)}=0$
(2)$ \frac{\partial}{\partial b}L(w,b,\alpha)=\sum_{i=1}^{n}\alpha_{i}y^{(i)}=0$

由(1)得$w=\sum_{i=1}^{n}\alpha_{i}y^{(i)}x^{(i)}$,将其带入$L(w,b,\alpha)$的表达式,化简得到:$L(w,b,\alpha)=\sum_{i=1}^{n}\alpha_{i}-\frac{1}{2} \sum_{i,j=1}^{n}y^{(i)}y^{(j)}\alpha_{i}\alpha_{j}(x^{(i)})^{T}x^{(j)}-b\sum_{i=1}^{n}\alpha_{i}y^{(i)}$
由(2)得$\sum_{i=1}^{n}\alpha_{i}y^{(i)}=0$,所以最后式子为$L(w,b,\alpha)=\sum_{i=1}^{n}\alpha_{i}-\frac{1}{2} \sum_{i,j=1}^{n}y^{(i)}y^{(j)}\alpha_{i}\alpha_{j}(x^{(i)})^{T}x^{(j)}$

现在这个式子里只有$\alpha$是未知数。这里我们要说明一点,这里我们其实将问题转成了它的对偶问题,也就是说我们的目标是求解2中所说的$d^{*}$。所以我们的目标是:
$\underset{\alpha}{max}W(\alpha)=\sum_{i=1}^{n}\alpha_{i}-\frac{1}{2} \sum_{i,j=1}^{n}y^{(i)}y^{(j)}\alpha_{i}\alpha_{j}(x^{(i)})^{T}x^{(j)}$,使得满足(1)$\alpha_{i}\geq 0,1 \leq i \leq n$,(2)$\sum_{i=1}^{n}\alpha_{i}y^{(i)}=0$

我们将最大化变为最小化,
$\underset{\alpha}{min}W(\alpha)=\frac{1}{2} \sum_{i,j=1}^{n}y^{(i)}y^{(j)}\alpha_{i}\alpha_{j}(x^{(i)})^{T}x^{(j)}-\sum_{i=1}^{n}\alpha_{i}$,使得满足(1)$\alpha_{i}\geq 0,1 \leq i \leq n$,(2)$\sum_{i=1}^{n}\alpha_{i}y^{(i)}=0$

此时,假设我们求出了$\alpha^{*}$(我们将在后面说如何求$\alpha$),那么可以通过$w^{*}=\sum_{i=1}^{n}\alpha_{i}y^{(i)}x^{(i)}$求出$w$。现在看如何求b。由于b只是一个截距,所以$w^{*}$一旦确定,那么就确定了一个平面簇,b只是一个偏移,所以当平面偏移到两类点的中间时最好,所以b的求解公式为:$b^{*}=- \frac{ \underset{i:y^{(i)}=-1}{max}(w^{*})^{T}x_{(i)}+ \underset{i:y^{(i)}=1}{min}(w^{*})^{T}x_{(i)}}{2}$

SVM学习笔记3-问题转化的更多相关文章

  1. SVM学习笔记(一)

    支持向量机即Support Vector Machine,简称SVM.一听这个名字,就有眩晕的感觉.支持(Support).向量(Vector).机器(Machine),这三个毫无关联的词,硬生生地凑 ...

  2. SVM学习笔记

    一.SVM概述 支持向量机(support vector machine)是一系列的监督学习算法,能用于分类.回归分析.原本的SVM是个二分类算法,通过引入“OVO”或者“OVR”可以扩展到多分类问题 ...

  3. SVM学习笔记(二)----手写数字识别

    引言 上一篇博客整理了一下SVM分类算法的基本理论问题,它分类的基本思想是利用最大间隔进行分类,处理非线性问题是通过核函数将特征向量映射到高维空间,从而变成线性可分的,但是运算却是在低维空间运行的.考 ...

  4. SVM学习笔记(一):libsvm参数说明(转)

    LIBSVM 数据格式需要---------------------- 决策属性 条件属性a 条件属性b ... 2 1:7 2:5 ... 1 1:4 2:2 ... 数据格式转换--------- ...

  5. SVM学习笔记-线性支撑向量机

    对于PLA算法来说,最终得到哪一条线是不一定的,取决于算法scan数据的过程. 从VC bound的角度来说,上述三条线的复杂度是一样的 Eout(w)≤Ein0+Ω(H)dvc= ...

  6. SVM学习笔记5-SMO

    首先拿出最后要求解的问题:$\underset{\alpha}{min}W(\alpha)=\frac{1}{2} \sum_{i,j=1}^{n}y^{(i)}y^{(j)}\alpha_{i}\a ...

  7. SVM学习笔记4-核函数和离群点的处理

    核函数在svm里,核函数是这样定义的.核函数是一个n*n(样本个数)的矩阵,其中:$K_{ij}=exp(-\frac{||x^{(i)}-x^{(j)}||^{2}}{2\sigma ^{2}})$ ...

  8. SVM学习笔记1-问题定义

    问题定义: 给出一些样本,包含两类.svm试图找到一个超平面,将数据分开,并且每种样本到超平面的距离的最小值最大. 输入样本:$\{x_{i},y_{i}| 1\leq i\leq n \}$,$y_ ...

  9. Python学习笔记:出生日期转化为年龄

    在数据挖掘项目中,有时候个体的出生日期包含信息量过大,不适合作为一个有效数据进入模型算法训练,因此有必要把出生日期转化为年龄age,age是一个很好的特征工程指示变量. import pandas a ...

随机推荐

  1. 日线做多,15min做空的情况收集

  2. sqli-labs(十二)(and和or的过滤)

    第二十五关: 这关是过滤了and 和or 输入?id=1' or '1'='1 发现or被过滤了,将or换成and也一样. 输入?id=1' oorr '1'='1 这样就可以了,将一个or置空后,o ...

  3. teragen/terasort_简化版

    1, 关闭Hadoop安全模式 进入hdfs用户 su – hdfs Cd /opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/bin hdfs dfs ...

  4. VS VC 读取 INI文件

    1.获取应程序同极目录下的config.ini路劲 void GetConfigFilePath(char *path,int len, char *file) { char module[256] ...

  5. (2)Python3笔记 数据类型之"组"(序列) 与 集合

    一. list [ 列表 ] ---- 任意数据类型的有序排列 1. list 操作类似 str操作 (参考上一节字符串操作) [1,2,3,4] [1,2,'a', True, [2,'b']]   ...

  6. es6proxy

    Proxy 支持的拦截操作一览. 对于可以设置.但没有设置拦截的操作,则直接落在目标对象上,按照原先的方式产生结果. (1)get(target, propKey, receiver) 拦截对象属性的 ...

  7. Java操作队列

    Java操作队列 常见的几种模式:   1 简单队列simple 模型:(p + 队列 + c) P:生产者producer,将消息发送到队列 红色:消息队列 C:消费者consumer,从队列消费消 ...

  8. Linux基础命令---查找用户信息finger

    finger finger指令用来查找.显示指定用户的信息.查询远程主机信息是,可以用user@localhost来指定用户. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.S ...

  9. linux 二级域名设置

    首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com 其次,在 httpd.conf 中打开 mod_rewrite 之后,在 httpd.conf 的最后,添加以下内容: Rewr ...

  10. java中避免乱码

    response.setContentType("text/html;charset=UTF-8"); 这个是在action中的 这个是在json中设置乱码的 contentTyp ...