【机器学习基础】对偶支持向量机

引言

在上一小节中,我们介绍,用二次规划的方法来求解支持向量机的问题。如果用非线性的特征转化的方式,可以在一个更复杂的Z空间里做二次规划。这种思想是希望通过最大间隔的方式来控制模型的复杂度,通过特征转换来实现复杂的边界。

但是这引入了新的问题:在进行特征转换之后,在新的高维空间中,求解二次规划问题就会变得很困难。甚至在无限大的维度上求解最佳化的问题就变得不可能了。

所以,这一小节,我们要解答的是,通过非常复杂的特征转换,甚至无限维的特征转换,该如何移除在Z空间上对高维度的依赖。

对偶问题

对于原始的SVM问题,进行特征转换之后,问题有d+1个变量(d为Z空间的维度),N个限制条件。我们要转化为一个对等的问题,在这种情况下,问题只有N个变量,N+1个限制条件。

所以,不管是变量的数量也好,条件的数量也好,都只有和数据量有关系,和转换到什么维度的空间中没有关系。变量的数量不会随着特征转换有所变化。

第一步:引入拉格朗日函数

SVM和正则化的思想有些类似,是求解一个有条件的最佳化问题。

由上面这个图可以知道,左侧是原始的有条件的最佳化问题,右侧是使用拉格朗日乘数αn >= 0将条件加入到表达式中去。

于是,我们得到了下面这个SVM表达式:

这个式子的意思是,当b和w向量固定的时候,调整α使得拉格朗日函数的值最大,然后再求一个最小值的问题。

下面再解释一下这里的max的过程:

当b和w是违反约束条件的,那么造成αn与一个正数相乘,对其求解一个最大值问题,只能得到一个无限大的值,这样再求解一个最小化的问题,就可以将这些违反条件的b和w排除掉

当b和w是符合约束条件的,那么造成αn与一个非正数相乘,就能得到一个有边界的最大值。

这一步,我们就可以将一个有条件的最佳化问题,通过拉格朗日乘数转换成一个表达式,从而方便后面的求解。

第二步:拉格朗日对偶问题的转化

对于一个给定的α,对拉格朗日函数的最大化的值总是大于任意一个拉格朗日函数的值,如下:

任何一个给定的α都会有上图的结果,于是我们对右边的式子去一个最大值的动作,就得到了下面的不等式:

这样看上去是将原来的式子的最大化和最小化作了一个交换,这被称为拉格朗日对偶问题。这样就得到了原来问题解法的下限。

强对偶关系需要满足条件

凸函数(convex primal)

原来的问题是有解的,在Z空间中可分(feasible primal)

线性条件(linear constraints)

如果满足上述强对偶关系的话,那么不等式的左右就是等价相等的了。于是,我们就可以来求解右边的问题。

右边的式子有个好处,本来,我们将约束条件通过拉格朗日乘数加入到求解问题中,但这样我们没有办法求解,现在对于max{min[L(b,w,α)]}来说,求解里面的最小化问题时α是固定的(可以看做一个常数),那么这就是一个凸二次规划问题,于是我们就可以用二次规划的方法来求解了。

第三步:化简

这是上面我们得到的式子进行展开的结果,接下来,我们要对其进行化简。

首先我们将拉格朗日函数L对b求偏微分,得到一个条件,化简了待求解的式子:

然后我们再将拉格朗日函数L对w求偏微分,得到另外一个条件,继续化简式子:

可以看到我们的化简结果,我们几乎将b和w都消去了,同时min也去掉了。最终得到了一个只有α的最佳化问题(拉格朗日对偶问题的简化版)!

KKT条件(b、w、α之间需要满足的条件):

第四步:求解

基于上面的化简,我们得到了标准的硬间隔svm对偶问题:

使用一般的二次规划的形式,来求解最佳解:

虽然,按照上面的二次规划形式去套用这个方法貌似很简单,但是对于数据量很大的情况,求解这个问题就需要很大的内存,所以需要特殊的专用方法来求解。

最后我们可以通过KKT条件和α来求解b和w:

得到w之后,通过KKT的这个条件,计算得到w:

αn > 0 的情况就对应于在边界上的支持向量。

对偶SVM传递的信息

通过上面的求解,我们将α和原始的SVM的支持向量关联上,即αn > 0 对应支持向量。

这样,我们只需要计算使用支持向量来计算w和b就可以了。

这里我们比较一下SVM和PLA算法,我们把SVM的w表示成数据yn*zn和αn的线性组合形式,其中αn是由对偶问题算出来的。

我们可以看出SVM和PLA最后得到的w都是原始数据的线性组合,这种情况我们可以说w可以被数据表示出来,而SVM不同的是,w只需要SVM中的支持向量表示出来就可以了。

小结

回到最初我们要解决的问题,我们通过对偶问题将待求解的问题的难度只依赖数据的数量N,但是其实我们发现在高维空间中,其维度隐藏在二次规划问题中的矩阵中去了。

那么我们该如何才能避开这个计算的难度呢?在下一节中,我们通过核技巧的方法来避免这个内积的计算。

转载请注明作者Jason Ding及其出处

Github博客主页(http://jasonding1354.github.io/)

CSDN博客(http://blog.csdn.net/jasonding1354)

简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)

百度搜索jasonding1354进入我的博客主页

时间: 2024-11-03 01:06:18

【机器学习基础】对偶支持向量机的相关文章

【机器学习基础】线性可分支持向量机

引言 接下里的一系列有关机器学习的博文,我将具体的介绍常用的算法,并且希望在这个过程中尽可能地结合实际应用更加深入的理解其精髓,希望所付出的努力能得到应有的回报. 接下来的有关机器学习基础博文主要根据机器学习技法课程的学习,围绕特征转换(feature transforms)这个主要工具,从以下三个方向进行探讨: 如果现在有很多特征转换可以使用的时候,我们该如何运用这些特征转换,如何控制特征转换中的复杂度的问题,从这个角度刺激了支持向量机(Support Vector Machine)算法的发展

第一章:机器学习基础

第一部分:分类 本书前两部分主要探讨监督学习(supervisedieaming).在监督学习的过程中,我们只需要给定输入样本集,机器就可以从中推演出指定目标变量的可能结果.监督学习相对比较简单,机器只需从输入数据中预测合适的模型,并从中计算出目标变量的结果.      监督学习一般使用两种类型的目标变量:标称型和数值型.标称型目标变量的结果只在有限目标集中取值,如真与假.动物分类集合{爬行类.鱼类.哺乳类.两栖类.植物.真菌};数值型目标变量则可以从无限的数值集合中取值,如0.100.42.0

机器学习与数据挖掘-支持向量机(SVM)(一)

最近在看斯坦福大学的机器学习的公开课,学习了支持向量机,再结合网上各位大神的学习经验总结了自己的一些关于支持向量机知识. 一.什么是支持向量机(SVM)? 1.支持向量机(Support Vector Machine,常简称为SVM)是一种监督式学习的方法,可广泛地应用于统计分类以及回归分析.支持向量机属于一般化线性分类器,这族分类器的特点是他们能够同时最小化经验误差与最大化几何边缘区,因此支持向量机也被称为最大边缘区分类器. 2.支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个

《Python机器学习基础教程》高清版免费PDF下载

Python机器学习基础教程-[德] 安德里亚斯·穆勒(Andreas C.Müller)[美]莎拉·吉多(Sarah Guido) 著,张亮(hysic) 译 下载地址1:网盘下载 下载地址2:网盘下载 内容简介本书是机器学习入门书,以Python语言介绍.主要内容包括:机器学习的基本概念及其应用:实践中常用的机器学习算法以及这些算法的优缺点:在机器学习中待处理数据的呈现方式的重要性,以及应重点关注数据的哪些方面:模型评估和调参的方法,重点讲解交叉验证和网格搜索:管道的概念:如何将前面各章的方

算法工程师<机器学习基础>

<机器学习基础> 逻辑回归,SVM,决策树 1.逻辑回归和SVM的区别是什么?各适用于解决什么问题? https://www.zhihu.com/question/24904422 2.Linear SVM 和 线性回归 有什么异同? 答案:https://www.zhihu.com/question/26768865 基础知识:https://blog.csdn.net/ChangHengyi/article/details/80577318 3.支持向量机属于神经网络范畴吗? https:

机器学习资料《分布式机器学习算法理论与实践》+《白话机器学习算法》+《Python机器学习基础教程》

机器学习正在迅速改变我们的世界.我们几乎每天都会读到机器学习如何改变日常的生活. 人工智能和大数据时代,解决最有挑战性问题的主流方案是分布式机器学习! <分布式机器学习:算法.理论与实践>电子书资料全面介绍分布式机器学习的现状,深入分析其中的核心技术问题,并且讨论该领域未来的发展方向. 我认为第3章到第8章是核心,讲解分布式机器学习的框架及其各个功能,分别针对其中的数据与模型划分模块.单机优化模块.通信模块.数据与模型聚合模块加以介绍.最有用的是第9章,学习由分布式机器学习框架中不同选项所组合

【机器学习基础】混合和装袋

融合模型(Aggregation Model) 如果我们已经得到了一些特征或者假设,它们和我们做机器学习的目标有若干的一致性的话,我们可以将这些假设综合起来,让预测效果变得更好,这样的模型被称为融合模型. 融合模型是通过混合(mix)和组合(combine)一些假设的方式,得到更好的预测结果. 下面列举了四种不同的混合组合方式,并给出了数学表示形式: 当有多个假设时,我们选择检验误差最小的假设作为我们最信任的目标函数: 我们现在有多个假设,我们可以给每个假设一个投票的权利,综合所有假设的投票结果

机器学习实战笔记1(机器学习基础)

1:如何选择合适的算法 2:python简介 (1)   python的优势:相对于matlab,matlab单个软件授权就要花费数千美元,也没有一个有影响力的大型开源项目.相对于c++/c/java,完成简单的操作就需要编写大量的代码:而如今我们应该花费更多的时间去处理数据内在的含义,而无需花费太多精力解决计算机如何得到数据结果(python简洁) (2)   python具有numpy科学函数库,它是一个使运算更容易.执行更迅速的库:另外还有matplotlib绘图工具. 3:python语

【机器学习实战】第1章 机器学习基础

第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息. 获取海量的数据 从海量数据中获取有用的信息 我们会利用计算机来彰显数据背后的真实含义,这才是机器学习的意义. 机器学习 场景 例如:识别动物猫 模式识别(官方标准):人们通过大量的经验,得到结论,从而判断它就是猫. 机器学习(数据学习):人们通过阅读进行学习,观察它会叫.小眼睛.两只耳朵.四条腿.一条尾巴,得到结论,从而判断它就是猫. 深度学习(深入数据):人们通过深入了解它,发现它会'喵喵'的叫.与同类的猫科动物

机器学习实战之第一章 机器学习基础

第1章 机器学习基础 机器学习 概述 机器学习就是把无序的数据转换成有用的信息. 获取海量的数据 从海量数据中获取有用的信息 我们会利用计算机来彰显数据背后的真实含义,这才是机器学习的意义. 机器学习 场景 例如:识别动物猫 模式识别(官方标准):人们通过大量的经验,得到结论,从而判断它就是猫. 机器学习(数据学习):人们通过阅读进行学习,观察它会叫.小眼睛.两只耳朵.四条腿.一条尾巴,得到结论,从而判断它就是猫. 深度学习(深入数据):人们通过深入了解它,发现它会'喵喵'的叫.与同类的猫科动物