博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
≪统计学习精要(The Elements of Statistical Learning)≫课堂笔记(十九):SVM
阅读量:3518 次
发布时间:2019-05-20

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

支持向量机——最大边距方法

前言:这节课我人在北京,只能回来之后抄一下笔记,然后对着书和wiki理解一下....有什么错误还请大家及时指出。

------------------------------

1. 背景

  • 问题:两类分类问题
  • 数据:有标识、有监督 D={
    (xi,yi)xiRp,yi{
    1,1}
    }
    ni=1
  • 模型: f(x)=sign(wx+b)
    • ,线性模型
    • 准则:最大边距

    先说一下个人理解的SVM的直觉。下图来自wiki。二次元中的SVM就是想找到一条直线(或者对应高维空间下的超平面)来尽可能的分割开两组数据。比如图中H3和H2这两条直线虽然都可以分开这两组数据,但是显然H3离两组数据都远一些——这就是SVM遵循的最大边距准则。

    而在实践中,我们把二类分类分别作为正负1,所以两条距离该分割线平行距离1的直线就应景而生。在这两条直线上的点我们称之为支持向量(SV)。

    2. 线性可分时的SVM

    1) 线性可分:存在 w,b

    使得 yi=1,yi=1,wx+b>0wx+b<0wx+b=0

    为分割超平面。

    2) 一个点到超平面 wx+b=0

    的距离:

    d(x|w,b)=wx+bwwx+bw,y=+1,y=1

    =y(wx+b)w

    3) 分割超平面的正则表示

    数据集到某个超平面的距离 d(D|w,b)=mind(i|w,b)=miniyi(wxi+b)w

    。将 y(wx+b)1 标准化,则 yi(wxi+b)w1w

    4) 最大边距准则 maxw,bd(D|w,b)

    5) 线性可分时的SVM

    max1w

    s.t.y(wxi+b)1

    等同于

    min12w2

    s.t.y(wxi+b)1

    这样就有了一个sign分类器。

    6) support vector:分离超平面落在隔离带的边缘,满足 yi(wxi+b)=1

    xi

    被称为SV。

    7) 优点:

    • 对测试误差错识小
    • 稀疏性
    • 自然直观
    • 有效
    • 有理论深度(这话的意思是,又可以造出来一堆论文了么?)

    3.一般的(线性)SVM

    不满足约束的时候,可以做一些放松——引入 ξi0

    作为松弛变量。

    这样原来的最优化问题就变成

    min12w2+Ciξi

    s.t.yi(wi+b)1ξi

    最优的分类器则为 f(x)=wx+b

    这里大概示意了 ξ

    的应用场景。左边是上述完全可分的情况,右边是没法分开,所以我们容忍一些误差,只要误差之和在一个可以接受的范围之内。

    4.非线性的SVM

    这里的直觉大概是,在低维空间较为稠密的点,可以在高维空间下变得稀疏。从而可能可以找到一个高维空间的线性平面,把他们分开。

    原来的数据集是: D={

    (xi,yi)xiRp,yi{
    1,1}
    }ni=1

    然后定义一个从低维到高维的映射: Φ

    ,使得 xΦz 。其中 x 原本属于 Rp ,此时被映射到一个高维的 Rq

    ,可为无限维Hilbert空间(这里我只是照抄笔记...)。

    映射之后的 D={

    (zi,yi)ziRq,yi{
    1,1}
    }ni=1

    ,之后就是传统的寻找一个线性平面。

    Φ

    的例子:

    Φ(x)=(Φ1(x),Φ2(x),Φ3(x))=(x21,2x1x2,x22)

    ,这样就打散到一个高维的空间(圆)。

    下节课是线性SVM的计算。

    这节课主要是讲线性优化的对偶问题。感觉这东西貌似在运筹学的时候被折腾过一遍,现在又来了-_-||

    附赠个老的掉牙的段子...

    有人问经济学家一个数学问题,经济学家表示不会解...

    然后那个人把这个数学问题转成了一个等价的最优化问题,经济学家立马就解出来了...

    好吧,我还是乖乖的赘述一遍对偶问题吧,表示被各种经济学最优化问题折磨过的孩子这点儿真是不在话下。

    --------------------------------------------------------------------

    1. 对偶问题的一般情况

    1) 优化问题

    一个典型的最优化问题形如:

    minf0(x)

    s.t.fi(x)0, i{

    1,,m}

    (不等式约束)

    hi(x)=0, i{

    1,,p}

    (等式约束)

    2) 优化问题的Lagrange (拉格朗日)函数

    L(x,λ,ν)=f0(x)+mi=1λifi(x)+pi=1νihi(x).

    λi,νi>0,i

    3) 对偶函数

    g(λ,ν)=infxDL(x,λ,ν)=infxD(f0(x)+mi=1λifi(x)+pi=1νihi(x))

    称为该优化问题的对偶函数。此时,

    xL(x,λ,ν)=0

    ,显然这个时候一阶偏导数为0。

    4) 对偶问题

    我们称 maxg(λ,ν),s.t.λ0

    为原优化问题的对偶问题,可化为最优化问题的标准形式 ming(λ,ν),s.t.λ0

    如果原优化问题为凸优化,则 g()

    必为凹函数,从而最终的标准形式依旧是一个凸优化问题。

    5) 弱对偶性

    x

    为原问题的解,则 p=f0(x) ,且 fi(x)0 hi(x)=0

    .

    (λ,ν)

    为对偶问题的解,则 d=g(λ,ν) ; λ0

    .

    定理(弱对偶性) dp

    ,即对偶问题的优化值必然小于等于原问题优化值。

    6) 强对偶性

    d=p

    时,两者具有强对偶性;满足该条件的称之为constraint qualifications,如。

    强对偶性满足的时候,原优化问题就可以化为一个二步优化问题了。

    7) KTT条件(库恩-塔克条件)

    局部最优化成立的必要条件:

    xL(x,λ,ν)=f(x)+mi=1λifi(x)+lj=1νjhj(x)=0

    (一阶条件)

    λifi(x)=0,i=1,,m.

    λi0,i

    fi(x)0,i=1,m

    hj(x)=0,j=1,,p

    注:SVM满足强对偶性,所以可以直接解对偶问题。

    2. 对偶问题应用于SVM

    1) SVM的最优化问题

    上节课可知,SVM的最优化问题为:

    min12w2+Ciξi

    s.t.yi(wi+b)1ξi,i

    写成标准形式就是

    min12w2+Ciξi

    s.t.1ξiyi(wi+b)0,i

    ξi0,i

    这样这里总计有2N个约束条件。

    对应的Lagrange函数为: minw,ξ,b{

    12w2+Cni=1ξi+ni=1λi[1yi(wxib)ξi]ni=1μiξi}

    这样一阶条件就是

    Lwk=wk+ni=1λi(yixki)=0

    w=ni=1λi(yixi)

    Lb=ni=1λi(yi)=0

    ni=1λiyi=0

    Lξk=Cλkμk=0

    Cλkμk=0,k

    这样最后我们有 L=12iλiyi(wxi)+iλi(1b)

    .

    3) 对偶函数

    这里的对偶函数就是 g(λ,μ)=12ij(λiyi)(λjyj)(xixj)+iλi

    4) 对偶问题

    ming(λ,μ)=12ij(λiyi)(λjyj)(xixj)iλi

    s.t.iλiyi=0

    0λiC

    μi0

    5) KKT条件

    w=λiyixi

    λi(1yi(wxi+b)ξi)=0

    λiyi=0

    0λiC

    λi[yi(wxi+b)ξi]=0

    μiξi=0

    μi0

    6) SVM分类器

    • 解对偶问题,得到 λ
    , μ
  • 计算 w=iλiyixi
  • 计算 b :找到一个 <0λi<C (非边界上),从而满足 {
    1yi(wxib)=0ξi=0
    。由 yi=±1 ,我们可得 (wxib)=yi b=yiwxi=yijλjyj(xjxi)
  • 平面分类器: y=wx+b , y^=sign(wx+b)=sign(jλjyj(xjxi))
    • ,故只与内积有关。

    这样下节课就会讲到解对偶问题的方法,以及SVM和kernel methods的联系。

转载地址:http://bcvqj.baihongyu.com/

你可能感兴趣的文章
实现自己的权限管理系统(十二):权限操作记录
查看>>
实现自己的权限管理系统(十三):redis做缓存
查看>>
实现自己的权限管理系统(十四):工具类
查看>>
JavaWeb面经(一):2019.9.14
查看>>
JavaWeb面经(二):2019.9.16 Synchronized关键字底层原理及作用
查看>>
JavaWeb面试经:redis
查看>>
牛客的AI模拟面试(1)
查看>>
深入浅出MyBatis:MyBatis解析和运行原理
查看>>
Mybatis与Ibatis
查看>>
字节码文件(Class文件)
查看>>
java中的IO流(一)----概述
查看>>
StringBuilder
查看>>
集合,Collection
查看>>
泛型详解
查看>>
泛型实现斗地主
查看>>
List集合
查看>>
ArrayList集合,LinkedList集合,Vector集合
查看>>
HashSet集合
查看>>
并发与并行,线程与进程
查看>>
方法引用,通过对象名引用成员变量
查看>>