支持向量机(二)——松弛变量处理异常点
- 支持向量机(一)——线性可分支持向量机
- 支持向量机(二)——松弛变量处理异常点
- 支持向量机(三)——利用核函数得到非线性分类器
2 松弛变量处理异常点
2.1 原始问题
在博文支持向量机(一)——线性可分支持向量机 一文中,我们介绍了训练数据集线性可分的情况下,应用硬间隔最大化策略得到最优超平面。但是在实际情况中,训练集有很大可能存在噪声,使得某些样本偏离正常范围,称这些样本为异常点,如下图所示
这时如果应用硬间隔最大化,得到的最优超平面是图中的黑色实线;而如果不迁就左上角的异常点,得到的最优分类超平面为黑色虚线。可以看出实线是对训练集过拟合的结果,而虚线的泛化能力更好。所以完全正确分类的超平面不一定是最好的。
另外,当训练集本身线性不可分的时候,是不存在能将数据集完全正确分离的超平面的。
线性不可分数据集:
不存在超平面能将数据集完全正确划分,但是去除掉一小部异常点之后,剩下的大部分数据是线性可分数据。
对于以上两种情况,硬间隔最大策略不再受欢迎或者有效。此时,我们需要考虑软间隔最大化。软间隔最大化允许样本点落在间隔边界内部甚至允许误分类样本点存在(我们称这些点为超平面的异常点)。这是通过为每个样本点引入一个松弛变量 ξi≥0 \xi_i \geq 0实现的,只要样本点的函数间隔加上 ξi \xi_i之后大于等于1即可。由于 ξi \xi_i代表了样本点的偏离距离,需要对总偏移距离进行限制。于是引入了松弛变量的原优化问题现在为
\begin{align} \min_{\boldsymbol \omega, b} & \qquad \frac{1}{2}||\boldsymbol \omega||^2 +C \sum_{i=1}^m \xi_i \\\\ s.t. & \qquad {y_i(\boldsymbol \omega^T \boldsymbol x_i+b)} + \xi_i \geq {1} \\\\ & \qquad \xi_i \geq 0 \end{align} \tag {26}
C>0 C\gt 0是惩罚因子,C值大时,对超平面的异常点惩罚较重,也就是说不希望有异常点存在;C值小时,对超平面异常点的惩罚较小。当训练数据线性可分时,如果令 C=+∞ C=+\infty,那么优化问题(1)等价于线性可分支持向量机的优化问题。
优化问题(1)可以这样理解:从训练集中选择部分样本,称为剩余训练集,剩余训练集是线性可分的,其余样本点作为异常点。对剩余训练集进行硬间隔最大化,也就是说从函数间隔为1的超平面中选择几何间隔最大的,但同时还要考虑异常点对超平面的偏移程度最小。遍历所有可能的剩余训练集,得到最优的超平面。
2.2 对偶问题
通过极大极小拉格朗日函数,可以得到原始问题(26)的对偶问题。
引入拉格朗日乘子 αi≥0,μi≥0 \alpha_i \geq 0, \mu_i \geq 0,构建拉格朗日函数
L(\boldsymbol \omega, b, \boldsymbol \xi, \boldsymbol \alpha, \boldsymbol \mu)=\frac{1}{2}||\boldsymbol \omega||^2 + C \sum_{i=1}^m \xi_i + \sum_{i=1}^{m}\alpha_i (1-y_i(\boldsymbol \omega^T \boldsymbol x_i+b) - \xi_i ) - \sum_{i=1}^m \mu_i \xi_i \tag {27}
原始问题的对偶问题为:
\max_{ \boldsymbol \alpha, \boldsymbol \mu}\min_{\boldsymbol \omega, b, \boldsymbol \xi} L(\boldsymbol \omega, b, \boldsymbol \xi, \boldsymbol \alpha, \boldsymbol \mu)
为了求对偶问题,首先需要求极小化问题 minω,b,ξL(ω,b,ξ,α,μ) \min_{\boldsymbol \omega, b, \boldsymbol \xi} L(\boldsymbol \omega, b, \boldsymbol \xi, \boldsymbol \alpha, \boldsymbol \mu)。令
\nabla_\boldsymbol \omega L = \boldsymbol \omega - \sum_{i=1}^m\alpha_i y_i \boldsymbol x_i=0 \tag {28}
\nabla_b L = -\sum_{i=1}^m\alpha_i y_i =0 \tag{29}
\nabla_{\xi_i}L = C-\alpha_i-\mu_i=0 \tag{30}
得到:
\boldsymbol \omega =\sum_{i=1}^m\alpha_i y_i \boldsymbol x_i \tag{31}
\sum_{i=1}^m\alpha_i y_i =0 \tag{32}
C-\alpha_i-\mu_i=0 \tag{33}
代入到L中,得到
\begin{align} \min_{\boldsymbol \omega, b, \boldsymbol \xi} L(\boldsymbol \omega, b, \boldsymbol \xi, \boldsymbol \alpha, \boldsymbol \mu)&=\frac{1}{2}\left( \sum_{i=1}^m\alpha_i y_i \boldsymbol x_i^T \sum_{j=1}^m\alpha_j y_j \boldsymbol x_j \right) + \sum_{i=1}^{m}\alpha_i - \sum_{i=1}^m \alpha_i y_i \left( \sum_{j=1}^m\alpha_j y_j \boldsymbol x_j ^T \right ) \boldsymbol x_i - \sum_{i=1}^m \alpha_i y_i b \\\\ &=\frac{1}{2}\left( \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j \right) + \sum_{i=1}^{m}\alpha_i - \sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_j y_i y_j \boldsymbol x_i ^T \boldsymbol x_j \\\\ &= - \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j + \sum_{i=1}^{m}\alpha_i \end{align} \tag{34}
然后再对 minω,b,ξL(ω,b,ξ,α,μ) \min_{\boldsymbol \omega, b, \boldsymbol \xi} L(\boldsymbol \omega, b, \boldsymbol \xi, \boldsymbol \alpha, \boldsymbol \mu) 求极大:
\begin{align} \max_{ \boldsymbol \alpha, \boldsymbol \mu} &\qquad - \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j + \sum_{i=1}^{m}\alpha_i \\\\ s.t. & \qquad \sum_{i=1}^m\alpha_i y_i =0 \\\\ & \qquad C-\alpha_i-\mu_i=0 \tag{35}\\\\ & \qquad \alpha_i \geq 0 \tag{36} \\\\ & \qquad \mu_i \geq 0 \tag{37} \\\\ \end{align}
约束条件(35)(36)(37)等价于
0 \leq \alpha_i \leq C
\mu_i \geq 0
重写上面的优化问题:
\begin{align} \min_{ \boldsymbol \alpha} &\qquad \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m\alpha_i \alpha_j y_i y_j \boldsymbol x_i^T \boldsymbol x_j - \sum_{i=1}^{m}\alpha_i \\\\ s.t. & \qquad \sum_{i=1}^m\alpha_i y_i =0 \\\\ & \qquad 0 \leq \alpha_i \leq C\\\\ \\\\ \end{align} \tag{38}
优化问题(38)是原始问题(26)的对偶问题,两个优化问题的最优解存在,并且满足KKT条件:
{\nabla_\boldsymbol \omega L(\boldsymbol \omega^*, b^*, \boldsymbol \xi^*, \boldsymbol \alpha^*, \boldsymbol \mu^*)}=\boldsymbol \omega^* -\sum_{i=1}^m\alpha_i^* y_i \boldsymbol x_i=0 \tag{39}
{\nabla_b L(\boldsymbol \omega^*, b^*, \boldsymbol \xi^*, \boldsymbol \alpha^*, \boldsymbol \mu^*)}=-\sum_{i=1}^m\alpha_i^* y_i =0 \tag{40}
{\nabla_{\xi_i} L(\boldsymbol \omega^*, b^*, \boldsymbol \xi^*, \boldsymbol \alpha^*, \boldsymbol \mu^*)}= C-\alpha_i^*-\mu_i^*=0 \tag{41}
\alpha_i^* (1-y_i({\boldsymbol \omega^*}^T \boldsymbol x_i+b^*) - \xi_i^*) = 0 \tag{42}
1-y_i({\boldsymbol \omega^*}^T \boldsymbol x_i+b^*) - \xi_i^*\leq 0 \tag{43}
\alpha_i ^*\geq 0, i=1, 2, \cdots, m \tag{44}
\mu_i^*\xi_i^* = 0 \tag{45}
\mu_i^* \geq 0 \tag{46}
\xi_i^* \geq 0 \tag{47}
求出对偶问题(38)的最优解 α∗,μ∗ \boldsymbol \alpha^*, \boldsymbol \mu^*后,由公式(39)可以得出原始问题的最优解 ω∗ \boldsymbol \omega^*:
\boldsymbol \omega^* = \sum_{i=1}^m\alpha_i^* y_i \boldsymbol x_i \tag{48}
至于 b∗ b^*,当 0<α∗j<C 0 \lt \alpha_j^* \lt C时,由公式(41)知道 μ∗j>0 \mu_j^* \gt 0,于是根据(45)知道
\xi_j^*=0,而由公式(42)可知
1-y_j({\boldsymbol \omega^*}^T \boldsymbol x_j+b^*) - \xi_j^* = 0
于是
1-y_j({\boldsymbol \omega^*}^T \boldsymbol x_j+b^*) = 0
于是
b^* = y_j^* - {\boldsymbol \omega^*}^T \boldsymbol x_j=y_j^* - \sum_{i=1}^m\alpha_i^* y_i ( \boldsymbol x_i^T \boldsymbol x_j) \tag {49}
于是得到最优超平面
\boldsymbol \omega^* \boldsymbol x + b^* = 0
2.3 支持向量
由公式(48)可知, ω∗ \boldsymbol \omega^* 和所有 α∗i>0 \alpha_i^* > 0 有关,对应的实例称为支持向量。软间隔最大化的支持向量包含间隔边界上的实例、间隔边界内部的实例以及误分类实例。
支持向量包含:
- 当 0<α∗i<C 0 时,由公式(41)知道 μ∗I>0 \mu_I^* \gt 0,再由公式(45)知道 ξ∗i=0 \xi_i^* = 0,于是由(42)知道
1−yj(ω∗Txj+b∗)=0.
1-y_j({\boldsymbol \omega^*}^T \boldsymbol x_j+b^*) = 0.
所以当 0<α∗i<C 0 时,对应的支持向量位于间隔边界上。
当 α∗i=C \alpha_i^* =C时,有 μ∗i=0 \mu_i^*=0,对应的 ξ∗i \xi_i^*可取的值就比较多了:
ξ∗i=0 \xi_i^* = 0时,有
yj(ω∗Txj+b∗)=1,y_j({\boldsymbol \omega^*}^T \boldsymbol x_j+b^*) =1,
意味着分类正确,对应的支持向量位于间隔边界上;0<ξ∗i<1 0 \lt \xi_i^* \lt 1时,有
0<yj(ω∗Txj+b∗)<1,0
意味着分类正确,对应的支持向量位于间隔边界内部;ξ∗i=1 \xi_i^* =1时,有
yj(ω∗Txj+b∗)=0,y_j({\boldsymbol \omega^*}^T \boldsymbol x_j+b^*) =0,
意味着对应的支持向量位于超平面上 ;ξ∗i>1 \xi_i^* >1时,有
yj(ω∗Txj+b∗)<0,y_j({\boldsymbol \omega^*}^T \boldsymbol x_j+b^*)
意味着对应的支持向量被误分类 。
支持向量机(二)——松弛变量处理异常点相关推荐
- 支持向量机 二 :非线性支持向量机
如果您还未了解 线性向量机,建议首先阅读 <支持向量机 一:线性支持向量机> 一.为什么要用非线性支持向量机? 线性支持向量机不香吗?为什么还要用非线性支持向量机? 线性支持向量机香是香, ...
- 支持向量机之松弛变量与惩罚因子 (四)
当我们对数据进行处理的时候,不论是分类还是回归,我们都必须考虑某些影响因素,比如噪声.缺省值.异常点等.我们要尽可能使我们的算法或模型对这些因素有很好的鲁棒性. 在上一节中,我们探讨了核函数使SVM对 ...
- 【机器学习】SVR支持向量机回归
回归和分类从某种意义上讲,本质上是一回事.SVM分类,就是找到一个平面,让两个分类集合的支持向量或者所有的数据(LSSVM)离分类平面最远:SVR回归,就是找到一个回归平面,让一个集合的所有数据到该平 ...
- 机器学习 —— 支持向量机
目录 一.基于最大间隔分隔数据 1.1 线性模型 1.2 超平面 1.3 支持向量 1.4 支持向量机 二.寻找最大间隔 三.拉格朗日乘子法与对偶问题 3.1 对偶问题:等式约束 3.2 不等式约束的 ...
- 支持向量机 一 :线性支持向量机介绍
一.SVM简介 支持向量机(suport vector mechine,SVM)主要用于解决二分类问题.这里简单介绍一下线性SVM,希望能对SVM的入门者有所帮助. SVM是如何对样本对进行分类的呢? ...
- 支持向量机 (三): 优化方法与支持向量回归
拉格朗日乘子法 - KKT条件 - 对偶问题 支持向量机 (一): 线性可分类 svm 支持向量机 (二): 软间隔 svm 与 核函数 支持向量机 (三): 优化方法与支持向量回归 优化方法 一.S ...
- 机器学习算法の03 支持向量机SVM
机器学习算法の03 支持向量机SVM SVM的基本概念 线性可分支持向量机 非线性支持向量机和核函数 线性支持向量机与松弛变量 LR与SVM的区别与联系 SVM的基本概念 基本概念: 支持向量机(su ...
- 机器学习算法系列(十五)-软间隔支持向量机算法(Soft-margin Support Vector Machine)
阅读本文需要的背景知识点:硬间隔支持向量机.松弛变量.一丢丢编程知识 一.引言 前面一节我们介绍了一种最基础的支持向量机模型--硬间隔支持向量机,该模型能对线性可分的数据集进行分类,但现实中的数据 ...
- SVM支持向量机-手写笔记(超详细:拉格朗日乘数法、KKT条件、对偶性质、最优化、合页损失、核函数...)
SVM支持向量机-手写笔记 作者:某丁 日期:2021.05.21 写完了,发现想要真正理解SVM还需要继续深入学习,以上所写只不过是冰山一角,我的管中窥豹而已. 参考 [1] 一文搞懂支持向量机(S ...
最新文章
- 如何吧家庭网络从计算机去掉,【求助】Windows无法从该家庭组中删除你的计算机...
- vscode 搭建go开发环境的13个插件的安装
- 如何在Ubuntu上使用ssh-add永久添加私钥? [关闭]
- kibana智能检索发送多次_msearch —— 配置index pattern,同时设置时间段,就知道到底是在哪些索引里去查找数据了...
- .net平台下C#socket通信(上)
- Kitten编程猫 里的克隆体无法进行边缘检测
- 在后台查看product的change history
- linux文件名快速键入,linux修改文件名【使用模式】
- 反射与特性与Tool编写
- android以view建坐标系,android自定义View——坐标系
- 调用Windows api 窗口截图
- luoguP1196 银河英雄传说(并查集)
- 用友文件服务器不存在,用友T6软件备份提示超时已过期,错误'53'文件不存在
- 深度学习之CUDA与cuDNN
- 2016.1.6~2017.7.7,袋鼠云一岁半啦
- pycharm 新建文件后选错文件格式怎么改
- 【软件测试】软件测试的定义、软件测试的目的
- 经典同态加密算法(加法与乘法)
- STM32学习(七)
- 2017网易前端笔试题总结