文章目录

  • ①从原问题到对偶问题
  • ②对偶问题的解的形式化简
  • ③从对偶问题的解到原问题的解
  • ④从原问题的解到分离超平面、决策函数、支撑向量

假设训练数据集不是线性可分的。通常情况是,训练数据中有一些特异点(outlier),将这些特异点除去后,剩下大部分的样本点组成的集合是线性可分的。

①从原问题到对偶问题

  • 对每个样本点(xi,yi)(x_i,y_i)(xi​,yi​) 引进一个松弛变量,使函数间隔加上松弛变量大于等于1。约束条件变为
    yi(w⋅xi+b)≥1−ξi,i=1,2,...,Ny_i(w\cdot x_i +b)\ge1-\xi_i,\quad i =1,2,...,N yi​(w⋅xi​+b)≥1−ξi​,i=1,2,...,N
    同时,对每个松弛变量,支付一个代价,原优化问题变为凸二次规划(convex quadratic programming)问题:
    min⁡w,b,ξ12∥w∥2+C∑i=1Nξis.t. yi(w⋅xi+b)⩾1−ξi,i=1,2,⋯,Nξi⩾0,i=1,2,⋯,N\begin{array}{ll} \min \limits_{w, b, \xi} & \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i} \\ \text { s.t. } & y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N \\ & \xi_{i} \geqslant 0, \quad i=1,2, \cdots, N \end{array} w,b,ξmin​ s.t. ​21​∥w∥2+C∑i=1N​ξi​yi​(w⋅xi​+b)⩾1−ξi​,i=1,2,⋯,Nξi​⩾0,i=1,2,⋯,N​
    C 称为惩罚参数,一般由应用问题决定,C 值大时对误分类的惩罚增大,C值小时对误分类的惩罚减小。最小化目标函数包含两层含义:使12∣∣w∣∣2\frac{1}{2}||w||^221​∣∣w∣∣2 尽量小即间隔尽量大,同时使误分类点的个数尽量小,C 是调和二者的系数。

  • 原始最优化问题的拉格朗日函数是
    L(w,b,ξ,α,μ)≡12∥w∥2+C∑i=1Nξi−∑i=1Nαi(yi(w⋅xi+b)−1+ξi)−∑i=1NμiξiL(w, b, \xi, \alpha, \mu) \equiv \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}-\sum_{i=1}^{N} \alpha_{i}\left(y_{i}\left(w \cdot x_{i}+b\right)-1+\xi_{i}\right)-\sum_{i=1}^{N} \mu_{i} \xi_{i} L(w,b,ξ,α,μ)≡21​∥w∥2+Ci=1∑N​ξi​−i=1∑N​αi​(yi​(w⋅xi​+b)−1+ξi​)−i=1∑N​μi​ξi​
    其中αi≥0,μi≥0\alpha_i\ge0,\mu_i\ge0αi​≥0,μi​≥0

②对偶问题的解的形式化简

现在我们要解的原问题的变量从两个w,bw,bw,b变成了三个w,b,ξw,b,\xiw,b,ξ,同样原始问题等价于对拉格朗日函数的min-max问题,对偶问题是拉格朗日函数的max-min问题,其中min针对问题变量,max针对约束参数。对偶问题的内层min问题,对问题变量求导有
∇wL(w,b,ξ,α,μ)=w−∑i=1Nαiyixi=0∇bL(w,b,ξ,α,μ)=−∑i=1Nαiyi=0∇ξiL(w,b,ξ,α,μ)=C−αi−μi=0\begin{array}{l} \nabla_{w} L(w, b, \xi, \alpha, \mu)=w-\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0 \\ \nabla_{b} L(w, b, \xi, \alpha, \mu)=-\sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ \nabla_{\xi_{i}} L(w, b, \xi, \alpha, \mu)=C-\alpha_{i}-\mu_{i}=0 \end{array} ∇w​L(w,b,ξ,α,μ)=w−∑i=1N​αi​yi​xi​=0∇b​L(w,b,ξ,α,μ)=−∑i=1N​αi​yi​=0∇ξi​​L(w,b,ξ,α,μ)=C−αi​−μi​=0​
化简得
w=∑i=1Nαiyixi∑i=1Nαiyi=0C−αi−μi=0\begin{array}{c} w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i} \\ \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ C-\alpha_{i}-\mu_{i}=0 \end{array} w=∑i=1N​αi​yi​xi​∑i=1N​αi​yi​=0C−αi​−μi​=0​
代回拉格朗日函数,得到对偶问题:
max⁡α−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαis.t. ∑i=1Nαiyi=0C−αi−μi=0αi⩾0μi⩾0,i=1,2,⋯,N\begin{array}{ll} \max \limits_{\alpha} & -\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \\ \text { s.t. } & \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ & C-\alpha_{i}-\mu_{i}=0 \\ & \alpha_{i} \geqslant 0 \\ & \mu_{i} \geqslant 0, \quad i=1,2, \cdots, N \end{array} αmax​ s.t. ​−21​∑i=1N​∑j=1N​αi​αj​yi​yj​(xi​⋅xj​)+∑i=1N​αi​∑i=1N​αi​yi​=0C−αi​−μi​=0αi​⩾0μi​⩾0,i=1,2,⋯,N​
再将对目标函数求极大转换为求极小,消去变量μi\mu_iμi​,得到对偶问题如下,可以看到只是约束参数αi\alpha_iαi​的范围多了一个C
min⁡α12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαis.t. ∑i=1Nαiyi=00⩽αi⩽C,i=1,2,⋯,N\begin{array}{ll} \min \limits_{\alpha} & \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} \\ \text { s.t. } & \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ & 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N \end{array} αmin​ s.t. ​21​∑i=1N​∑j=1N​αi​αj​yi​yj​(xi​⋅xj​)−∑i=1N​αi​∑i=1N​αi​yi​=00⩽αi​⩽C,i=1,2,⋯,N​
可以通过求解对偶问题而得到原始问题的解,进而确定分离超平面和决策函数。

③从对偶问题的解到原问题的解

假设对偶问题的解α∗\alpha^*α∗已经知道,(对原问题)用KKT条件得
∇wL(w∗,b∗,ξ∗,α∗,μ∗)=w∗−∑i=1Nαi∗yixi=0∇bL(w∗,b∗,ξ∗,α∗,μ∗)=−∑i=1Nαi∗yi=0∇ξL(w∗,b∗,ξ∗,α∗,μ∗)=C−α∗−μ∗=0αi∗(yi(w∗⋅xi+b∗)−1+ξi∗)=0μi∗ξi∗=0yi(w∗⋅xi+b∗)−1+ξi∗⩾0ξi∗⩾0αi∗⩾0μi∗⩾0,i=1,2,⋯,N\begin{array}{l} \nabla_{w} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=w^{*}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}=0 \\ \nabla_{b} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}=0 \\ \nabla_{\xi} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=C-\alpha^{*}-\mu^{*}=0 \\ \alpha_{i}^{*}\left(y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1+\xi_{i}^{*}\right)=0 \\ \mu_{i}^{*} \xi_{i}^{*}=0 y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1+\xi_{i}^{*} \geqslant 0 \\ \xi_{i}^{*} \geqslant 0 \\ \alpha_{i}^{*} \geqslant 0 \\ \mu_{i}^{*} \geqslant 0, \quad i=1,2, \cdots, N \end{array} ∇w​L(w∗,b∗,ξ∗,α∗,μ∗)=w∗−∑i=1N​αi∗​yi​xi​=0∇b​L(w∗,b∗,ξ∗,α∗,μ∗)=−∑i=1N​αi∗​yi​=0∇ξ​L(w∗,b∗,ξ∗,α∗,μ∗)=C−α∗−μ∗=0αi∗​(yi​(w∗⋅xi​+b∗)−1+ξi∗​)=0μi∗​ξi∗​=0yi​(w∗⋅xi​+b∗)−1+ξi∗​⩾0ξi∗​⩾0αi∗​⩾0μi∗​⩾0,i=1,2,⋯,N​
第一个式子容易得到
w∗=∑i=1Nαi∗yixiw^{*}=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i} w∗=i=1∑N​αi∗​yi​xi​

至少有一个(不是要求的,是求解问题的时候,发现至少一个非零才是合理的,否则都为0,根据第一个式子w也为0)αj∗>0\alpha_j^*>0αj∗​>0,任选其一,yj(w∗⋅xj+b∗)−1=0y_{j}\left(w^{*} \cdot x_{j}+b^{*}\right)-1=0yj​(w∗⋅xj​+b∗)−1=0

注意到yj2=1y_{j}^{2}=1yj2​=1,联立上述二式得

b∗=1yj−w∗⋅xj=yj−∑i=1Nαi∗yixixjb^*=\frac{1}{y_j}-w^*\cdot x_j=y_j-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}x_jb∗=yj​1​−w∗⋅xj​=yj​−∑i=1N​αi∗​yi​xi​xj​

和前述硬间隔的结果一样。

④从原问题的解到分离超平面、决策函数、支撑向量

进一步,分离超平面可以写成
∑i=1Nαi∗yi(x⋅xi)+b∗=0\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}=0 i=1∑N​αi∗​yi​(x⋅xi​)+b∗=0
分类决策函数可以写成
f(x)=sign(∑i=1Nαi∗yi(x⋅xi)+b∗)f(x)=sign\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}\right) f(x)=sign(i=1∑N​αi∗​yi​(x⋅xi​)+b∗)
可以看到,w∗,b∗w^*,b^*w∗,b∗只依赖于那些αj∗>0\alpha_j^*>0αj∗​>0的样本,这样的对应的训练样本我们就称之为支撑向量

注:

每次任选一个符合条件的非0的αj\alpha_jαj​就可求得w和b,但是这样的结果可能由于j不一样而不唯一。

百面机器学习 #3 经典算法:01-2 不完全线性可分(软间隔)支撑向量机SVM相关推荐

  1. 百面机器学习 #3 经典算法:02 逻辑回归

    参考: 百面机器学习 西瓜书 02 逻辑回归Logistic Regression(对数几率回归) 2.1 逻辑回归和线性回归 二者都使用极大似然法来对训练样本进行建模. 在求解超参数的过程中,都可以 ...

  2. 百面机器学习 #3 经典算法:01-3 核函数支撑向量机SVM

    文章目录 1.3 非线性SVM与核技巧 1.3.1 核函数 1.3.2 核技巧在支持向量机中的应用 1.3.3 常用核函数 1.4 其他问题 1.4.1 是否存在一组参数使SVM训练误差为0:是 1. ...

  3. 百面机器学习之经典算法

    1.逻辑回归相比于线性回归,有何异同?         首先,逻辑回归处理的是分类问题,线性回归处理的是回归问题,这是两者的最本质的区别.逻辑回归中,因变量取值是一个二元分布,模型学习得出的是 ,即给 ...

  4. 百面机器学习 #3 经典算法:01-1 线性可分(硬间隔)支撑向量机SVM

    文章目录 ①从原始问题到对偶问题 ②对偶问题的解的形式化简 ③从对偶问题的解到原问题的解 ④从原问题的解到分离超平面和决策函数.支撑向量 参考李航统计学习方法第7章. 支持向量机学习的基本想法是求解能 ...

  5. 机器学习基础-经典算法总结

    机器学习基础-经典算法 逻辑回归 逻辑回归的原理,问题的假设 为什么逻辑回归也可称为对数几率回归 推导逻辑回归损失函数 逻辑回归损失函数求导 逻辑回归为什么使用交叉熵作为损失函数 LR是不是凸优化问题 ...

  6. 【机器学习】机器学习的经典算法

    [机器学习]机器学习的经典算法 https://www.cnblogs.com/DicksonJYL/p/9517025.html 本文为整篇文章第二部分,整篇文章主要目录如下: 1:一个故事说明什么 ...

  7. Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机GA遗传算法PSO粒子群优化算法)、案例应用之详细攻略

    Matlab:基于Matlab实现人工智能算法应用的简介(SVM支撑向量机&GA遗传算法&PSO粒子群优化算法).案例应用之详细攻略 目录 1.SVM算法使用案例 1.1.Libsvm ...

  8. 百面机器学习03-经典算法

    01 支持向量机 支持向量机 (Support Vector Machine, SVM)是众多监督学习万法中十分出色的一种,几乎所有讲述经典机器学习万洼的教材都会介绍 . 关于 SVM,流传着一个关于 ...

  9. 《百面机器学习》---AI算法工程师求职必备“面经”

    [导读]今天给大家推荐一本人工智能算法工程师求职必备"面经" --百面机器学习(文末附pdf下载方式,限时领取哟!) 自2018年面世以来,该书现已成为机器学习算法工程师求职面试必 ...

最新文章

  1. 如何解决用谷歌浏览器调试代码接口请求的时候,跳转网页切换网页的时候,上一个页面的接口请求记录被清除消失的问题
  2. python matplotlib散点图-python matplotlib更新函数的散点图
  3. linux裁剪—定制自己所需要的linux
  4. 多媒体技术创新与难点探索(内附讲师资料下载)
  5. 高性能MySQL数据库(含二级考试)-张晨光-专题视频课程
  6. CSS3那些不为人知的高级属性
  7. bzoj1034 [ZJOI2008]泡泡堂BNB 结论
  8. SpringMVC大坑一枚:ContentNegotiatingViewResolver可能不利于SEO
  9. VMware 修复多款产品中的高危漏洞
  10. 单通道图像保存_3D图像展示篇结构更清晰
  11. mybatis-plus主键生成策略
  12. python使用虚拟内存_深入浅出虚拟内存(一)
  13. 《窈窕绅士》里的诗句
  14. 我理解数字滤波器 -电容
  15. 【js-xlsx和file-saver插件】前端html的table导出数据到excel的表格合并显示boder
  16. 记一次app爬虫sign破解
  17. 弱网测试学习记录(1)
  18. 基于JAVA3D的网络三维技术的设计与实现
  19. Mac 默认php安装目录
  20. 开源项目扮演的角色_适用于Linux的5种开源角色扮演游戏

热门文章

  1. Python3之max key参数学习记录
  2. mvc上传图片(上传和预览)webuploader
  3. 利用条件运算符的嵌套来完成此题:学习成绩 =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。...
  4. POJ 2993 Emag eht htiw Em Pleh(模拟)
  5. 支持位移操作的环形字符串
  6. 软件测试工程师面试必备技能
  7. 集合框架(List、Collection、迭代器)
  8. Linux进程间通信(信号量)
  9. iservice封装有哪些方法_对WebService的一些封装技巧总结
  10. 零基础学web前端难吗?新手该怎么学?