文章目录

  • 楔子
    • 广义拉格朗日函数
    • 原问题和对偶问题
    • KKT条件
  • SVM对偶形式推导
    • 原始优化问题
    • 原问题拉格朗日函数:
    • 对拉格朗日函数对原始问题的变量:w,b及各个$\xi_i$求偏导,求极小值:
    • 得到结果带入拉格朗日函数,对变量$\alpha_i$和$\beta_i$,求极大值
    • 以上优化变成一个凸二次优化问题,原始问题的解和对偶问题的解满足KKT条件:
  • 硬间隔和软间隔对偶性形式对比
    • 硬间隔对偶形式
    • 软间隔对偶形式
    • 对比
  • 对偶问题的解和原问题的解关系和区别
  • $\alpha_i^*$ ,$\xi_i^*$,分离超平面位置的关系:

楔子

广义拉格朗日函数

问题:

转化为无约束的拉格朗日形式:

原问题和对偶问题

primal problem opt (原始问题最优化(极小值)):

dual problem opt (对偶问题最优化(极大值)):

KKT条件


关于KKT 条件的理解:前面三个条件是由解析函数的知识,对于各个变量的偏导数为0(这就解释了一开始为什么假设三个函数连续可微,如果不连续可微的话,这里的偏导数存不存在就不能保证),后面三个条件就是原始问题的约束条件以及拉格朗日乘子需要满足的约束。剩下一个就是***对偶互补条件***,就是添加项每一项均为0.

SVM对偶形式推导

我们以软间隔为例:

原始优化问题

原问题拉格朗日函数:

对拉格朗日函数对原始问题的变量:w,b及各个ξi\xi_iξi​求偏导,求极小值:

得到结果带入拉格朗日函数,对变量αi\alpha_iαi​和βi\beta_iβi​,求极大值


实际上βi\beta_iβi​和αi\alpha_iαi​相关的,可以消去βi\beta_iβi​,βi\beta_iβi​约束为:0<=βi\beta_iβi​<=C。

以上优化变成一个凸二次优化问题,原始问题的解和对偶问题的解满足KKT条件:

硬间隔和软间隔对偶性形式对比

硬间隔对偶形式

软间隔对偶形式

对比

看到没?目标函数一模一样,差别就在于约束条件αi\alpha_iαi​的取值范围。
对偶形式可以看成样本的线性组合,权重不为0的样本构成了支持向量。
还可以看出对偶性形式样本只以内积的形式出现,这个给核方法提供了可乘之机。

对偶问题的解和原问题的解关系和区别

对偶形式的解为α∗\alpha^*α∗=(α1,…,αN)T(\alpha_1,…,\alpha_N)^T(α1​,…,αN​)T
容易求出原问题的解为:

b∗b^*b∗表达式中出现的 j 是满足0<αj\alpha_jαj​<C的下标,为什么呢?

首先支持向量一定在αi\alpha_iαi​>0里面,体会一下:

也就是说由于松弛变量的引入,间隔边界变成一条河了,河里面的点都是支持向量。
所以取0<αj\alpha_jαj​<C,xjx_jxj​必定是在函数间隔上为支持向量,求出的b,就是分割超平面的参数。

αi∗\alpha_i^*αi∗​ ,ξi∗\xi_i^*ξi∗​,分离超平面位置的关系:

机器学习:SVM算法的对偶形式相关推荐

  1. 机器学习-SVM算法

    机器学习-基础知识 机器学习-线性回归 机器学习-逻辑回归 机器学习-聚类算法 机器学习-决策树算法 机器学习-集成算法 机器学习-SVM算法 文章目录 支持向量机 1. 间隔与支持向量 1.1. 点 ...

  2. 人工智能与机器学习----SVM算法深入探究

    人工智能与机器学习----SVM算法深入探究 一.支持向量机 二.如何找到超平面 三.最大间隔分类器 四.编程练习 1.未经过标准化的原始数据点分布 2.使用多项式特征和核函数 一.支持向量机 支持向 ...

  3. 程序员训练机器学习 SVM算法分享

    http://www.csdn.net/article/2012-12-28/2813275-Support-Vector-Machine 摘要:支持向量机(SVM)已经成为一种非常受欢迎的算法.本文 ...

  4. 机器学习SVM算法数字识别器

    目录 1 SVM算法api 1.1 SVM算法api综述 1.2 SVC 1.3 NuSVC 1.4 LinearSVC 1.5 小结 2 案例:数字识别器 2.1 案例背景介绍 2.2 数据介绍 2 ...

  5. python机器学习 | SVM算法介绍及实现

    本篇博客具体学习参考: 1 [机器学习]支持向量机SVM及实例应用 2 [ML]支持向量机(SVM)从入门到放弃再到掌握 这两篇文章讲得特别清楚,数学推导(第一篇)也能看明白,强烈推荐学习~~ 本篇博 ...

  6. svm算法java实现_谁有用JAVA实现机器学习svm算法的代码,感激不尽

    展开全部 OpenCV开发SVM算法是基于LibSVM软件包开发的,LibSVM是台湾大学林智仁(Lin Chih-Jen)等开发设计的一个简单.易于使用和快62616964757a686964616 ...

  7. 机器学习SVM算法原理

    目录 1 定义输入数据 2 线性可分支持向量机 3 SVM的计算过程与算法步骤 3.1 推导目标函数 3.2 目标函数的求解 3.2.1 朗格朗日乘子法 3.2.2 对偶问题 3.2.3 整体流程确定 ...

  8. 手把手教你实现机器学习SVM算法

    向AI转型的程序员都关注了这个号

  9. 深度学习第四次培训(SVM算法)

    SVM算法 SVM需要超平面wx+b来分割数据集(此处以线性可分为例),因此会有一个模型训练过程来找到w和b的值.训练完成之后就可以拿去预测了,根据函数y=wx+b的值来确定样本点x的label,不需 ...

最新文章

  1. 车路协同让城市更智慧
  2. String 方法中 replace 和 replaceAll 的区别详解(源码分析)
  3. CheLunTan.Net无需注册同样享有发帖和回帖权利
  4. MySQL 选择数据库
  5. 从 Flink Forward Asia 2021,看Flink未来开启新篇章
  6. Django REST Framework API Guide 01
  7. Android RecyclerView(九)滑动监听综述
  8. java new一个线程执行完后会自动销毁吗_Java基础总结,超级全的面试题
  9. MySQL并发复制系列二:多线程复制
  10. Hadoop集群部署权限总结
  11. 嵌入式Linux系统编程学习之九基于文件描述符的文件操作
  12. 10-300-020-简介-架构-简介
  13. Java代码有效和片段有效_Java 9 尝鲜之交互式编程环境
  14. JEPLUS表格高级展示——JEPLUS软件快速开发平台
  15. 学习写DSHOW框架下的FILTER之四
  16. html动感相册怎么转成视频,ps把相片或图片制作成一个动感的相册视频效果
  17. 2018-2019-1 20165301 20165304 20165314 实验二 固件程序设计
  18. 网站seo淘宝客不能做了?我是怎么用网站做淘客月入过万的
  19. android显示微博sdk,android微博sdk发图文微博图片不显示35
  20. HDU 4357 字符交换位置无数次变成另一个字符串-YY-(神题

热门文章

  1. springboot 添加允许跨域_springboot设置cors跨域请求的两种方式
  2. 操作系统角度谈测试管理和自动化测试
  3. linux安装zlib_Linux zlib和libpng安装(LAMP环境搭建)
  4. python 中cookie_使用Python分析Cookies
  5. acme云服务器生成证书_使用 acme.sh 申请 SSL 证书并且定期自动更新
  6. php去字符串空格,php怎么去掉字符串中空格
  7. jquery三级联动模糊查询_jquery三级联动
  8. matlab narxnet,请问吧里有大神做过MATLAB时间序列神经网络(NARX)吗?
  9. python字符串类型str_python数据类型之字符串类型str
  10. 【若依(ruoyi)】菜单操作SQL