上一篇文章《从零开始学习SVM》中引出了想要进行分开两个样本需要的目标函数,但是是针对线性可分的。如下图所示,是存在一个超平面完完全全的分开两类样本。

但是如果是线性不可分呢?同样以猫狗数据为例,有的狗被主人打扮确实像猫,人都容易混合,像这种相似性比较高的数据,可能无法通过线性的方法完全分开

即无法用一个超平面把两类数据分开,属于一种混合的状态,就如下图一样

一方面来说,人的识别准确度都无法达到100%,更别说机器了,一般只要机器能达到一个可以容忍的准确度,能完成分类工作就可以了。允许少部分样本在两个边界线内,甚至超出边界线(上图中的红点)。与此同时在最大化间隔的同时,不满足约束的样本应该尽可能的少。

minw,b12||w||2

min_w,_b \frac{1}{2} ||w||^2

s.t.yi(wTxi+b)⩾1,i=1,2,3…,m.

s.t. y_i(w^Tx_i+b)\geqslant1,i=1,2,3\dots,m.
我们的优化目标可以写为:

minw,b12||w||2+C∑imζi

min_w,_b \quad \frac{1}{2}||w||^2+C\sum_{i}^{m}\zeta_i

s.t.yi(wT+b)⩾1−ζi

s.t.\quad y_i(w^T+b)\geqslant1-\zeta_i

ζi⩾0,i=1,2,3…,m

\zeta_i\geqslant0,i=1,2,3\dots,m
引入”松弛变量”的概念,显然每个样本都有其对应的”松弛变量”,表征了该样本不满足约束的程度—来自《机器学习》周志华。我的理解是样本离虚线边界距离的大小,越小则不满足约束程度越小,越大则不满足约束程度越大。同理我们通过拉格朗日乘子法可得到的拉格朗日函数为:

L(w,b,α,ζ,u)=12||w||2+C∑imζi+∑imαi(1−ζi−yi(wT+b))−∑imuiζi

L(w,b,\alpha,\zeta,u)= \frac{1}{2}||w||^2+C\sum_{i}^{m}\zeta_i+\sum_{i}^{m}\alpha_i(1-\zeta_i-y_i(w^T+b))-\sum_{i}^{m}u_i\zeta_i
对 L(w,b,α,ζ,u) L(w,b,\alpha,\zeta,u)的 w,b,ζ w,b,\zeta求偏导为零可以得到

w=∑imαiyixi

w=\sum_{i}^{m}\alpha_iy_ix_i

0=∑imαiyi

0=\sum_{i}^{m}\alpha_iy_i

C=αi+ui

C=\alpha_i+u_i
经过带入可以惊人的发现,”松弛变量”并没有在目标函数里面,感觉整个人都轻松了一把。跟之前的不带有”松弛变量”的目标函数的唯一区别是 α \alpha的取值范围变化了

maxα∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxTixj

max_\alpha \quad\sum_{i=1}^{m}\alpha_i-\frac{1}{2}\sum_{i=1}^{m}{\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jx_i^Tx_j}

s.t.∑i=1mαiyi=0

s.t. \quad \sum_{i=1}^{m}\alpha_iy_i=0

C⩾αi⩾0,i=1,2,…,m

C\geqslant\alpha_i \geqslant0,i=1,2,\dots,m
KKT条件:

αi⩾0

\alpha_i\geqslant0

yif(xi)−1+ζi⩾0

y_if(x_i)-1+\zeta_i\geqslant0

αi(yif(xi)−1+ζi)=0

\alpha_i(y_if(x_i)-1+\zeta_i)=0

ζi⩾0,uiζi=0

\zeta_i\geqslant0,u_i\zeta_i=0
KKT条件基本上与不带有”松弛变量”的目标函数一致,求解方法也一样,最大的收获是我们有了得到一定准确度的分类器的方法,使得svm不仅仅应用到科研理论中,同样可以应用到生产,适用业界数据多样、噪声随机多样的情形,满足业界的需求。后面的学习我们将针对该目标函数进行优化,我们将继续对线性分类进行讨论,后面会继续推出非线性的分类解决方法

从零开始学习SVM(二)---松弛变量相关推荐

  1. 从零开始学习jQuery (二) 万能的选择器

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  2. [乐意黎转载]从零开始学习jQuery (二) 万能的选择器

    一.摘要 本章讲解jQuery最重要的选择器部分的知识. 有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显减轻开发人员的工作量. 二.前言 编写任何javascript程 ...

  3. python定义符号常量_python从零开始学习(二):python中的变量与常量

    一.python变量与常量里的定义 变量:在内存中开辟一块区域,储存值,可以理解为给值起一个名字.例子 a=1,a就是变量,1就是值 常量:程序运行中不会改变的值,大部分情况和变量一起使用. 例子  ...

  4. 高等数学二从零开始学习的总结笔记(持续更新)

    推免失败,3个月从零开始学习数二,把做题的一些经验总结到博客 高等数学 一.函数.极限.连续 1.等价无穷小的使用 在x->0时,等价无穷小 尤其重要,在题目中经常会使用 但要尤其注意,只有乘法 ...

  5. 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  6. 从零开始学习jQuery (十) jQueryUI常用功能实战

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  7. 从零开始学习jQuery (九) jQuery工具函数

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  8. 从零开始学习jQuery (八) 插播:jQuery实施方案

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  9. 从零开始学习jQuery (七) jQuery动画-让页面动起来!

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

最新文章

  1. SpringBoot2 整合 XFIRE 服务端和客户端
  2. java对docker_如何在docker中运行java程序
  3. Caret模型训练和调参更多参数解读(2)
  4. 细说Python Lambda函数的用法,建议收藏!
  5. opencv 利用轮廓检索函数实现字母匹配(图像匹配)
  6. Q126:PBRT-V3,VolPathIntegrator(体渲染)流程概述
  7. 瑞友客户端无法建立跟远程计算机的连接,瑞友天翼终端错误信息的原因以及解决方法大全.doc...
  8. .NET Compact Framework 2.0 SP1 发布了
  9. ffmpeg ACC音频播放
  10. 开源实时视频码流分析软件 VideoEye
  11. Deepfacelab 新手教程(转载)
  12. 【小白话通信】离散分布的生成
  13. Android studio实现类微信界面
  14. 莫比乌斯反演专题题解
  15. EtherCAT 寻址模式详解
  16. 企业邮箱怎么申请?公司域名后缀的企业邮箱如何注册呢?
  17. 【QA答疑】VRay3.4 for SketchUp2017 三种渲染方式
  18. SpringBoot(9)整合JWT实现Token验证
  19. ollydbg没有phantom_OllyDBG新手使用说明书
  20. Ubuntu18.04连接不上校园无线网怎么办?

热门文章

  1. 〖ChatGPT实践指南 - 零基础扫盲篇③〗- 开始使用 ChatGPT 并访问 OpenAI 获取 API Keys
  2. Java下载Excel文件
  3. 35个Python实战项目,完整源代码!
  4. Connections could not be acquired from the underlying database!
  5. python-Opencv 图片锐化
  6. FME在变更地类流向统计中的应用
  7. 两个向量组线性相关是不是也能说成两个向量组等价 向量组等价 线性相关 向量组等价和矩阵等价的区别
  8. 利用Sympy计算sin1°的最小多项式
  9. 30个很有效的破冰游戏_20170513210952
  10. 974. Subarray Sums Divisible by K [Medium]