前言

学SVM看到对偶问题的时候很难受,因为看不懂,数学知识真的太重要了。后来在B站看到某up主的精彩推导,故总结如下。

SVM基本型

由之前最大化间隔的计算可得SVM的基本型为:

                   $\underset{\mathbf{w},b}{min}\   \ \ \  \frac{1}{2}\left \| \mathbf{w}\right \|^{2}$

                       $s.t. \ y_{i}(\mathbf{w}^{T}\mathbf{x}_{i})+b\geqslant 1,\ \ \ \ i=1,2,\cdots ,m.$

对偶问题

SVM的基本型是一个带约束优化问题,试想如果我们可以构造一个函数,使得该函数在可行解区域内与原目标函数完全一致,而在可行解区域外的数值非常大,甚至是无穷大,那么这个没有约束条件的新目标函数的优化问题就与原来有约束条件的原始目标函数的优化问题是等价的问题。这就是使用拉格朗日方程的目的,它将约束条件放到目标函数中,从而将有约束优化问题转换为无约束优化问题。

所以,利用对偶来求解原问题需要两个步骤:

1. 将有约束的原始目标函数转换为无约束的新构造的拉格朗日目标函数

2. 使用拉格朗日对偶性,将不易求解的优化问题转化为易求解的优化

首先根据拉格朗日乘子法,对上式的每条约束添加拉格朗日乘子$\lambda _{i} \geqslant 0$,于是该问题的拉格朗日函数可写为:

$L(\mathbf{w},b,\lambda ) = \frac{1}{2}\left \| \mathbf{w} \right \|^{2}+\sum_{i=1}^{m}\lambda _{i}(1-y_{i}(\mathbf{w}^{T}\mathbf{x}_{i}+b))$       $\mathbf{\lambda }=(\lambda _{1};\lambda _{2};\cdots ;\lambda _{m})$

由此得到了重要的第一步,将带约束的原问题转化为了无约束的原问题,即:

$\underset{\mathbf{w},b}{min}\   \ \ \  \frac{1}{2}\left \| \mathbf{w}\right \|^{2}$                                                           ------------------->       $ \underset{\mathbf{w},b}{min}\ \underset{\mathbf{\lambda }}{max}\ L(\mathbf{w},b,\mathbf{\lambda})$

$s.t. \ y_{i}(\mathbf{w}^{T}\mathbf{x}_{i})+b\geqslant 1,\ \ \ \ i=1,2,\cdots ,m.$                       ------------------->                       $s.t.\ \ \lambda _{i}\geqslant 0$

为什么这两种是等价的呢?从逻辑上可以简单分析:

接下来第二步转化就是将无约束的原问题转化为对偶问题,即:

$ \underset{\mathbf{w},b}{min}\ \underset{\mathbf{\lambda }}{max}\ L(\mathbf{w},b,\mathbf{\lambda})$                     ------------------->               $ \underset{\mathbf{\lambda }}{max}\ \underset{\mathbf{w},b}{min}\ L(\mathbf{w},b,\mathbf{\lambda})$

$s.t.\ \ \lambda _{i}\geqslant 0$                                                 ------------------->               $s.t.\ \ \lambda _{i}\geqslant 0$

易知$ \underset{\mathbf{w},b}{min}\ \underset{\mathbf{\lambda }}{max}\ L(\mathbf{w},b,\mathbf{\lambda}) \geqslant   \underset{\mathbf{\lambda }}{max}\ \underset{\mathbf{w},b}{min}\ L(\mathbf{w},b,\mathbf{\lambda})$ ,而我们现在需要的是两者相等,相等时需要满足以下两个条件:

1. 满足这个优化问题是凸优化问题。

2. 满足KKT条件。

(KKT条件我不懂,所以略。。)

综上,这一系列的步骤就是SVM基本型(带约束的原问题)——>不带约束的原问题——>对偶问题。

对于这个对偶问题,我们首先固定$\lambda$,求解$w,b$,由于$w,b$不受约束,所以这是无约束的优化问题,直接求导即可。这里需要说明的一点就是因为这是凸函数,二阶导数必然大于0,所以令偏导为零的点就是最小值点。计算过程如下所示:

消去$\mathbf{w},b$后得到对偶问题:

              $\underset{\mathbf{\lambda }}{max}\ \ \sum_{i=1}^{m} \lambda _{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\lambda _{i}\lambda _{j}y_{i}y_{j}\mathbf{x}_{i}^{T}\mathbf{x}_{j}$

              $s.t.\ \ \sum_{1}^{m}\lambda _{i}y_{i}=0$

                   $ \lambda _{i}\geqslant 0$                                  $i=1,2,...,m$

支持向量机(Support Vector Machine):对偶的更多相关文章

  1. 支持向量机 support vector machine

    SVM(support Vector machine) (1) SVM(Support Vector Machine)是从瓦普尼克(Vapnik)的统计学习理论发展而来的,主要针对小样本数据进行学习. ...

  2. 支持向量机(Support Vector Machine)-----SVM之SMO算法(转)

    此文转自两篇博文 有修改 序列最小优化算法(英语:Sequential minimal optimization, SMO)是一种用于解决支持向量机训练过程中所产生优化问题的算法.SMO由微软研究院的 ...

  3. 第八篇:支持向量机 (Support Vector Machine)

    前言 本文讲解如何使用R语言中e1071包中的SVM函数进行分类操作,并以一个关于鸢尾花分类的实例演示具体分类步骤. 分析总体流程 1. 载入并了解数据集:2. 对数据集进行训练并生成模型:3. 在此 ...

  4. 支持向量机(Support Vector Machine,SVM)

    SVM: 1. 线性与非线性 核函数: 2. 与神经网络关系 置信区间结构: 3. 训练方法: 4.SVM light,LS-SVM: 5. VC维 u-SVC 与 c-SVC 区别? 除参数不同外, ...

  5. 支持向量机SVM(Support Vector Machine)

    支持向量机(Support Vector Machine)是一种监督式的机器学习方法(supervised machine learning),一般用于二类问题(binary classificati ...

  6. 6. support vector machine

    1. 了解SVM 1. Logistic regression 与SVM超平面 给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类.如果用x表示数据点,用y表示类别( ...

  7. 斯坦福第十二课:支持向量机(Support Vector Machines)

    12.1  优化目标 12.2  大边界的直观理解 12.3  数学背后的大边界分类(可选) 12.4  核函数 1 12.5  核函数 2 12.6  使用支持向量机 12.1  优化目标 到目前为 ...

  8. 机器学习课程-第7周-支持向量机(Support Vector Machines)

    1. 优化目标 在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法A还是学习算法B,而更重要的是,应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的 ...

  9. 5. support vector machine

    1. 了解SVM 1. Logistic regression回顾 Logistic regression目的是从特征中学习出一个0/1二分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的 ...

  10. [C7] 支持向量机(Support Vector Machines) (待整理)

    支持向量机(Support Vector Machines) 优化目标(Optimization Objective) 到目前为止,你已经见过一系列不同的学习算法.在监督学习中,许多学习算法的性能都非 ...

随机推荐

  1. mint-ui笔记

    1.安装: npm install mint-ui --save npm install babel-plugin-component --save-dev //(只引入部分组件时需要安装) 2.导入 ...

  2. 玩转Vuejs--数组监听

    Vue中对数据的监听主要是依靠Object.defineProperty来实现的,这种实现主要是针对key/value形式的对象,对数组中值的变化是无能为力的,那么该如何对数组中的数据进行监听呢,下面 ...

  3. Python博客目录

    python基础 1.helloworld 2.运算符&while循环 3.pycharm安装&for循环&format字符串&list列表&set集合使用 4 ...

  4. [ROS]激光驱动安装

    参考资料: https://blog.csdn.net/hongliang2009/article/details/73302986 https://blog.csdn.net/bohaijun_12 ...

  5. mysql5安装

    一.MYSQL的安装 1.打开下载的mysql安装文件mysql-5.0.27-win32.zip,双击解压缩,运行“setup.exe”. 2.选择安装类型,有“Typical(默认)”.“Comp ...

  6. linux awk 常见字符串处理

    awk指定输出列: awk '{print $0} file' #打印所有列awk '{print $1}' file #打印第一列 awk '{print $1, $3}' file #打印第一和第 ...

  7. Oracle 11g R2 Backup Data Pump(数据泵)之expdp/impdp工具

    Oracle Data Pump(以下简称数据泵)是Oracle 10g开始提供的一种数据迁移工具,同时也被广大DBA用来作为数据库的逻辑备份工具和体量较小的数据迁移工具.与传统的数据导出/导入工具, ...

  8. IntelliJ IDEA使用笔记

    IntelliJ IDEA 2016.3.7激活 1.下载 JetbrainsCrack-2.10-release-enc.jar 链接:https://pan.baidu.com/s/1qVdhWg ...

  9. Mac下安装SecureCRT并激活

    今天花了好长的时间终于把SecureCRT安装成功了 现在分享给大家 安装的步骤, 希望对大家用帮助 Mac下的SecureCRT需要破解才能使用 所以有些费劲的.. 先下载SecureCRT和破解文 ...

  10. [经验共享] MapGIS实用小功能图解——由excel文件导成MapGIS点文件

    项目小组的几个成员都是学地下水和环境的,对于GIS懂得不是很多,于是把一些我们经常用到的mapgis实用小功能做成帮助文档,方便大家使用,发布共享! 1.整理好EXCEL文件(注意X,Y坐标的正确性( ...