从零开始学习SVM(二)---松弛变量
上一篇文章《从零开始学习SVM》中引出了想要进行分开两个样本需要的目标函数,但是是针对线性可分的。如下图所示,是存在一个超平面完完全全的分开两类样本。
但是如果是线性不可分呢?同样以猫狗数据为例,有的狗被主人打扮确实像猫,人都容易混合,像这种相似性比较高的数据,可能无法通过线性的方法完全分开
即无法用一个超平面把两类数据分开,属于一种混合的状态,就如下图一样
一方面来说,人的识别准确度都无法达到100%,更别说机器了,一般只要机器能达到一个可以容忍的准确度,能完成分类工作就可以了。允许少部分样本在两个边界线内,甚至超出边界线(上图中的红点)。与此同时在最大化间隔的同时,不满足约束的样本应该尽可能的少。
min_w,_b \frac{1}{2} ||w||^2
s.t. y_i(w^Tx_i+b)\geqslant1,i=1,2,3\dots,m.
我们的优化目标可以写为:
min_w,_b \quad \frac{1}{2}||w||^2+C\sum_{i}^{m}\zeta_i
s.t.\quad y_i(w^T+b)\geqslant1-\zeta_i
\zeta_i\geqslant0,i=1,2,3\dots,m
引入”松弛变量”的概念,显然每个样本都有其对应的”松弛变量”,表征了该样本不满足约束的程度—来自《机器学习》周志华。我的理解是样本离虚线边界距离的大小,越小则不满足约束程度越小,越大则不满足约束程度越大。同理我们通过拉格朗日乘子法可得到的拉格朗日函数为:
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=\sum_{i}^{m}\alpha_iy_ix_i
0=\sum_{i}^{m}\alpha_iy_i
C=\alpha_i+u_i
经过带入可以惊人的发现,”松弛变量”并没有在目标函数里面,感觉整个人都轻松了一把。跟之前的不带有”松弛变量”的目标函数的唯一区别是 α \alpha的取值范围变化了
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. \quad \sum_{i=1}^{m}\alpha_iy_i=0
C\geqslant\alpha_i \geqslant0,i=1,2,\dots,m
KKT条件:
\alpha_i\geqslant0
y_if(x_i)-1+\zeta_i\geqslant0
\alpha_i(y_if(x_i)-1+\zeta_i)=0
\zeta_i\geqslant0,u_i\zeta_i=0
KKT条件基本上与不带有”松弛变量”的目标函数一致,求解方法也一样,最大的收获是我们有了得到一定准确度的分类器的方法,使得svm不仅仅应用到科研理论中,同样可以应用到生产,适用业界数据多样、噪声随机多样的情形,满足业界的需求。后面的学习我们将针对该目标函数进行优化,我们将继续对线性分类进行讨论,后面会继续推出非线性的分类解决方法
从零开始学习SVM(二)---松弛变量相关推荐
- 从零开始学习jQuery (二) 万能的选择器
本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...
- [乐意黎转载]从零开始学习jQuery (二) 万能的选择器
一.摘要 本章讲解jQuery最重要的选择器部分的知识. 有了jQuery的选择器我们几乎可以获取页面上任意的一个或一组对象, 可以明显减轻开发人员的工作量. 二.前言 编写任何javascript程 ...
- python定义符号常量_python从零开始学习(二):python中的变量与常量
一.python变量与常量里的定义 变量:在内存中开辟一块区域,储存值,可以理解为给值起一个名字.例子 a=1,a就是变量,1就是值 常量:程序运行中不会改变的值,大部分情况和变量一起使用. 例子 ...
- 高等数学二从零开始学习的总结笔记(持续更新)
推免失败,3个月从零开始学习数二,把做题的一些经验总结到博客 高等数学 一.函数.极限.连续 1.等价无穷小的使用 在x->0时,等价无穷小 尤其重要,在题目中经常会使用 但要尤其注意,只有乘法 ...
- 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...
- 从零开始学习jQuery (十) jQueryUI常用功能实战
本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...
- 从零开始学习jQuery (九) jQuery工具函数
本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...
- 从零开始学习jQuery (八) 插播:jQuery实施方案
本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...
- 从零开始学习jQuery (七) jQuery动画-让页面动起来!
本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...
最新文章
- SpringBoot2 整合 XFIRE 服务端和客户端
- java对docker_如何在docker中运行java程序
- Caret模型训练和调参更多参数解读(2)
- 细说Python Lambda函数的用法,建议收藏!
- opencv 利用轮廓检索函数实现字母匹配(图像匹配)
- Q126:PBRT-V3,VolPathIntegrator(体渲染)流程概述
- 瑞友客户端无法建立跟远程计算机的连接,瑞友天翼终端错误信息的原因以及解决方法大全.doc...
- .NET Compact Framework 2.0 SP1 发布了
- ffmpeg ACC音频播放
- 开源实时视频码流分析软件 VideoEye
- Deepfacelab 新手教程(转载)
- 【小白话通信】离散分布的生成
- Android studio实现类微信界面
- 莫比乌斯反演专题题解
- EtherCAT 寻址模式详解
- 企业邮箱怎么申请?公司域名后缀的企业邮箱如何注册呢?
- 【QA答疑】VRay3.4 for SketchUp2017 三种渲染方式
- SpringBoot(9)整合JWT实现Token验证
- ollydbg没有phantom_OllyDBG新手使用说明书
- Ubuntu18.04连接不上校园无线网怎么办?
热门文章
- 〖ChatGPT实践指南 - 零基础扫盲篇③〗- 开始使用 ChatGPT 并访问 OpenAI 获取 API Keys
- Java下载Excel文件
- 35个Python实战项目,完整源代码!
- Connections could not be acquired from the underlying database!
- python-Opencv 图片锐化
- FME在变更地类流向统计中的应用
- 两个向量组线性相关是不是也能说成两个向量组等价 向量组等价 线性相关 向量组等价和矩阵等价的区别
- 利用Sympy计算sin1°的最小多项式
- 30个很有效的破冰游戏_20170513210952
- 974. Subarray Sums Divisible by K [Medium]