首页 > 其他分享 >机器学习技法---(Week2)Dual Support Vector Machine

机器学习技法---(Week2)Dual Support Vector Machine

时间:2023-01-01 17:34:30浏览次数:38  
标签:Machine SVM yn Support --- 条件 1N 问题 对偶


  上节课把原始的优化问题改写成二次规划的形式,通过软件包来求解参数。这节课通过研究原问题的对偶问题,在一定条件下,对偶问题的最优解和解参数和原问题一致,继而得到原问题的解。

Motivation of Dual SVM

[x,x2,x3]→[z1,z2,z3]

[ x , x 2 , x 3 ] → [ z 1 , z 2 , z 3 ] )。此时,z域是线性的,可以使用上节课的线性SVM求解最优解(这话听着怪怪的,我说下我的理解吧)。回忆基石的课,拟合回归问题时。可以通过增加x x 高次方项增加模型的复杂度,继而减小EinEin。同样的,对于SVM问题,也可以通过这样的方式减少Ein E i n ,并且SVM的large-margin能够减少有效的VC Dimension,相当于加了一个惩罚项。但是做变换的时候特征维度往往会变得很大,由d→d^ d → d ^ ,此时求解QP问题会比较复杂。对偶问题在求解时,不依赖d^ d ^ ,这就是提出对偶问题的原因。(后面会讲到对偶问题依赖的是训练集大小,一般来说都是样本数量大于特征数量吧,奇怪了。这个疑惑,暂且留着吧–据说和核函数升维有关系,升维之后特征会变得特别多)。

  经过变换之后,QP问题的形式如下:

机器学习技法---(Week2)Dual Support Vector Machine_二次规划

前面说过SVM相当于加了个惩罚项,基石的正则化课程讲到通过拉格朗日乘子法求解,同样的dual SVM问题也可以通过引入拉格朗日乘子的方式,把原问题转化为非条件问题。

机器学习技法---(Week2)Dual Support Vector Machine_二次规划_02

那么如何讲条件问题转化成非条件问题呢?拉格朗日乘子法熟悉的话,应该很直观:

机器学习技法---(Week2)Dual Support Vector Machine_二次规划_03

下面利用拉格朗日函数构造非条件问题:

机器学习技法---(Week2)Dual Support Vector Machine_最优解_04

为什么这样构造之后,两个问题就等价了呢?可以这样理解:
把max L(b,w,α) m a x   L ( b , w , α ) 记为f f ,转化之后的问题就是在(w,b)(w,b)的参数空间中找一个使得f f 最小的值
对于ff,是要找到一个α α 使得L(b,w,α) L ( b , w , α ) 最大。观察拉格朗日函数,显然如果原问题的约束条件不满足,则1−yn(wTzn+b)>0 1 − y n ( w T z n + b ) > 0 ,f f 趋于正无穷,那么minmin时,这样的参数取不到最优解。所以先对L L 取关于αα的极小,再取关于w,b w , b 的极大和原问题是等价的。

Lagrange Dual SVM

αn>0

α n > 0 ,那么对于固定的α′ α ′ 且α′n≥0 α ′ n ≥ 0 ,一定有如下不等式成立:

机器学习技法---(Week2)Dual Support Vector Machine_最优解_05

上式显然成立,对不等式两边同时取Max,不等式同样成立:

机器学习技法---(Week2)Dual Support Vector Machine_最优解_06

上式表明对等价问题的min和max做了一个对调,满足这样的关系叫做Lagrange dual problem。≥

≥ 称为弱对偶关系,= = 称为强对偶关系。在二次规划QP问题中,强对偶关系需要满足下面三个条件:

1. 函数是凸的(convex primal)

2. 函数有可行解(feasible primal)

3. 条件是线性的(linear constraints)

即存在满足条件的解(b,w,α)(b,w,α)使得等式左右都成立,这样就可以通过直接解对偶问题求原问题。

关于拉格朗日对偶性,李航的《统计学习方法》有较为完整的介绍。并且强对偶要求的是约束和目标函数都是凸函数,有点差异的。此处存疑!

  这里原问题满足这三个条件,所以我们可以直接求对偶问题,经过推导对偶问题转化为无条件形式:

机器学习技法---(Week2)Dual Support Vector Machine_最小值_07

先求上式括号里的部分,即对拉格朗日函数求最小值,那么必要条件是梯度为0。首先,令L(b,w,α) L ( b , w , α ) 对参数b b 的偏导为0:

∂L∂b=0→−∑n=1Nαnyn=0∂L∂b=0→−∑n=1Nαnyn=0


把上述求偏导得到的等式带入并化简:

机器学习技法---(Week2)Dual Support Vector Machine_最优解_08

同样的对w w 求偏导:

∂L∂w=0→w−∑n=1Nαnynzn=0→w=∑n=1Nαnynzn∂L∂w=0→w−∑n=1Nαnynzn=0→w=∑n=1Nαnynzn


把上述求偏导得到的等式带入并化简:

机器学习技法---(Week2)Dual Support Vector Machine_二次规划_09

这样,表达式里面消去了w w ,问题进一步简化。这时候的条件有3个:

    机器学习技法---(Week2)Dual Support Vector Machine_最小值_10

    机器学习技法---(Week2)Dual Support Vector Machine_最小值_11

    其中满足最佳化条件称为Karush-Kuhn-Tucker(KKT): 

    机器学习技法---(Week2)Dual Support Vector Machine_二次规划_12



    • 这里有个逻辑问题没搞明白,就SVM问题而言,是因为原问题和对偶问题满足一些条件所以他们有相同的最优解,然后一定会满足KKT条件,不知道是不是这个逻辑,回头再查查资料吧。

    Solveing Dual SVM

      进一步简化,把MAX问题转化为Min问题,把部门条件放到约束中:

    机器学习技法---(Week2)Dual Support Vector Machine_最小值_13

    w=∑n=1Nαnynzn

    w = ∑ n = 1 N α n y n z n 这个条件暂时不考虑,因为目标函数中没有出现w w 。然后改写成QP问题的形式,用软件包求解即可。

    机器学习技法---(Week2)Dual Support Vector Machine_最小值_14

    这里没有看懂,主要αn≥0αn≥0拆到约束里怎么表达,存疑吧~

    计算Q

    Q 矩阵时,如果样本量特别大,计算量也会很大。所以计算QQ时会采用一些特殊的方法。

    得到αn

    α n 之后,根据KKT条件就可以计算w w 和bb。

    首先w=∑n=1Nαn

    w = ∑ n = 1 N α n

    其次根据αn(1−yn(wTzn+b))=0

    α n ( 1 − y n ( w T z n + b ) ) = 0 得到b=yn−wTzn b = y n − w T z n

    机器学习技法---(Week2)Dual Support Vector Machine_最优解_15

    计算b b 时,如果αn>0αn>0成立,那么yn(wTzn+b)=1 y n ( w T z n + b ) = 1 成立,那说明这个点正好在分解线上,即fat boundary上,这些点就是support vector。

    Messages behind Dual SVM

    前面讲到如果αn>0

    α n > 0 成立,那么yn(wTzn+b)=1 y n ( w T z n + b ) = 1 成立,那说明这个点就是支持向量,但是分类线上的点不一定都是支持向量,但满足αn>0 α n > 0 的点一定都是支持向量。

    机器学习技法---(Week2)Dual Support Vector Machine_二次规划_16

    比较PLA和SVM的公式:

    机器学习技法---(Week2)Dual Support Vector Machine_二次规划_17

    两者形式上十分相似,但是wSVM w S V M 由fattest hyperplane边界上所有的SV决定(非支持向量点对应α α 为0),wPLA w P L A 由所有当前分类错误的点决定。wSVM w S V M 和wPLA w P L A 都是原始数据点yn,zn y n , z n 的线性组合形式,是原始数据的代表。

    Summary

      比较原始问题和对偶问题:

    机器学习技法---(Week2)Dual Support Vector Machine_最优解_18

    对偶问题的引进是为了避免计算中对d^ d ^ 的依赖,约束由d^ d ^ 个条件转换成N N 个约束条件。但是计算QQ矩阵时候已经引入了。下节课将研究探讨如何消除对d^ d ^ 的依赖。

    存疑

    有两个疑问,记录下:
    1. 对偶问题QP问题的改写
    2. KKT条件的逻辑,是因为对偶问题和原问题满足三个条件,所以有共同的最优解,继而满足KKT条件?

    Ref

    [1] 《机器学习技法》第二周课程

                                    2018-03-28 于杭州


    标签:Machine,SVM,yn,Support,---,条件,1N,问题,对偶
    From: https://blog.51cto.com/u_15575753/5983165

    相关文章

    • 机器学习技法---(Week1)Linear Support Vector Machine
        技法的课,相对更关注算法,希望1个月内搞掂~课程介绍  共计16周课程,主要内容:哲学上直观的理解、关键理论、核心算法和实际操作的注意点。围绕特征变换,本次课程涉及到以......
    • Bias-Variance
      knitr::opts_chunk$set(echo=TRUE)看了蛮久的,各种各样的说法,把不同的阐述分别写下,以供自己参考Hastie-《统计学习导论》《ISLR》是Hastie写的基于R的统计学习教材,网上有......
    • 11、Nacos配置中心-加载多配置集
      把我们以前项目中的配置文件中内容进行拆分,然后都弄到配置中心,方便维护.以前我们的配置:现在在nacos中拆分后的配置:这样我们项目中只需维护一个bootstrap.yml配置文件......
    • 机器学习基石---How Can Machines Learn Better
        对Week12-Week16做简单的总结,不仔细看所有细节。大体内容:借由非线性分类模型引出Overfitting的问题,从而提出Regularization和Validation,以及机器学习中三个原则。非线性......
    • 软件方法(下)分析和设计2021版本连载-第8章 分析类图(1)
      ​(1)任何您认为的错误都可以,包括错别字。(2)同一错误仅支付最先指正者报酬。(3)请根据最新版本作指正。下册内容目前指正人有:吴佰钊、王周文、刘学斌、成文华、黄树成、李蜀斌、......
    • OpenOCD+DAP-LINK调试ESP32的失败经历
      目的手里有调试STM32的DAP-LINK,想试试通过JTAG调试ESP32OpenOCD支持CMSIS-DAPDAP-LINK支持的芯片,我手上这款描述如下,应该JTAG协议的都支持平台windows10+ESP-IDFE......
    • leetcode-599. 两个列表的最小索引总和
      599.两个列表的最小索引总和-力扣(Leetcode)刚开始的思路是搞两个map,但是性能比较差,只需要构建一个map然后遍历第二个list即可[!添加后可以过滤一些肯定不符合条件的]......
    • Java - CAS 总结
      CAS介绍CAS操作包含三个操作数——内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值,否则处理器不做任何操作......
    • layui 注册模板--并且提示注册成功--太爽了
      <!doctypehtml><htmlclass="x-admin-sm"><head><metacharset="UTF-8"><title>后台登录-X-admin2.2</title><metaname="renderer"content="webkit|ie-comp......
    • 性能测试-微服务性能压测监控和调优【重点】【杭州多测师_王sir】【杭州多测师】
       本文主要内容一、何为压力测试1.1、大白话解释性能压测是什么:就是考察当前软件和硬件环境下,系统所能承受的最大负荷,并帮助找出系统的瓶颈所在。性能压测的......