ML 徒手系列 SVM
在Lagrange乘子法中,介绍了如何构建及如何使用对偶函数,对目标问题进行求解。
这一章利用L乘子法对SVM进行推导。
SVM 即支持向量机,是通过求解超平面进行分类的一种算法。所谓的支持向量,是在最大间隔边界上的向量。
问题来源:

如何求解上图中红色线的参数:W b
红色线可表示为:

点到直线的距离:

在此以直线为分界线是为了可视化,实际当中是超平面。
此时样本可表示为:

得支持向量到超平面距离之和:(支持向量为两黑色线上的样本)

对样本值做标记:

问题:为何不等式选择的右侧值为1或-1》》》不等式可以通过缩放w b的方式改变最终值》》》

此处选择1或-1是为了计算方便,并不影响最终的结果。
通过(1)式构建Lagrange乘子:
实质是求:

化成求:

加入平方项和系数,是为了求导数方便。
Lagrange乘子法:

对固定的w b 均有:

加入min,问题化成:

上述的对偶函数:

对(4)式右侧进行求解,结合(2)分别对w b求偏导:

将(5)(6)(7)代入(2)式:

此时问题化成:

此时的任务是求解(7)式右侧。
(7)式可以使用SMO算法进行求解:
在α的m(总共有m个样本点)个值中选取两个:

固定除这两个的其他α值。

将此条件代入到(7)式,求关于这两个α的极值。
得到α值后,与之前的条件进行对比,得到支持向量以及α所有值。代入条件得到w b。
SMO具体细节,下次再总结。
带松弛因子的SVM:
原理同上述讲解,上述是线性支持可分支持向量机。只是此时加入了其他的约束条件。
此时可以允许一定的错误分类。
核函数:
使用核函数可以将原始输入空间映射到新的特征空间没从而使得原来不可分的样本变得可分。
核函数的选择是SVM变得复杂的又一个因素。
常用的核函数:
线性核、高斯核、拉普拉斯核。高斯核用的相对较多。
原来的不等式约束变成:

原来的max:

变成:

核函数k:

核函数代替了原来简单的变量。
hinge loss:
对于带松弛因子的SVM,使用对偶函数求极值的方法不易直接求解。使用hinge替代损失函数:
此时

变成:

对于多分类时,使用hinge loss更为方便。
ML 徒手系列 SVM的更多相关文章
- ML 徒手系列说明
徒手系列正确打开方式: 1.徒手撸公式 2.徒手撸代码
- ML 徒手系列 拉格朗日乘子法
拉格朗日乘子法是解决极值问题的方法. 本方法是计算多元函数在约束条件下的极值问题的方法. 1.多元函数与约束问题 如下图所示,f(x,y)为多元函数,g(x,y)=c为约束条件.目的是计算在约束条件下 ...
- ML 徒手系列 最大似然估计
1.最大似然估计数学定义: 假设总体分布为f(x,θ),X1,X2...Xn为总体采样得到的样本.其中X1,X2...Xn独立同分布,可求得样本的联合概率密度函数为: 其中θ是需要求得的未知量,xi是 ...
- 【ML入门系列】(三)监督学习和无监督学习
概述 在机器学习领域,主要有三类不同的学习方法: 监督学习(Supervised learning) 非监督学习(Unsupervised learning) 半监督学习(Semi-supervise ...
- 【ML入门系列】(二)分类与回归
前言 在机器学习中,“分类”和“回归”这两个词经常听说,但很多时候我们却混为一谈.本文主要从应用场景.训练算法等几个方面来叙述两者的区别. 本质区别 分类和回归的区别在于输出变量的类型.分类的输出是离 ...
- 【ML入门系列】(一)训练集、测试集和验证集
训练集.验证集和测试集这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被人混用. 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train ...
- CS231n 2016 通关 第三章-SVM与Softmax
1===本节课对应视频内容的第三讲,对应PPT是Lecture3 2===本节课的收获 ===熟悉SVM及其多分类问题 ===熟悉softmax分类问题 ===了解优化思想 由上节课即KNN的分析步骤 ...
- [Machine Learning & Algorithm]CAML机器学习系列1:深入浅出ML之Regression家族
声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 符号定义 这里定义<深入浅出ML>系列中涉及到的公式符号,如无特殊说明,符号 ...
- 关于ML.NET v0.6的发布说明
ML.NET 0.6版本提供了几项令人兴奋的新增功能: 用于构建和使用机器学习模型的新API 我们主要关注的是发布用于构建和使用模型的新ML.NET API的第一次迭代.这些新的,更灵活的API支持新 ...
随机推荐
- 'gbk' codec can't encode character '\xa0' in position 34: illegal multibyte sequence
今天在爬某广告贼多的网站遇到的问题,简单记录下
- htop的使用
htop是top的增强版本.官网地址: http://hisham.hm/htop/ 这网站比较...... 实验环境: [root@miyan ~]# cat /etc/redhat-release ...
- SpringBoot学习笔记(7):Druid使用心得
SpringBoot学习笔记(7):Druid使用心得 快速开始 添加依赖 <dependency> <groupId>com.alibaba</groupId> ...
- 关于scrollLeft的获取在不同浏览器或相同浏览器的不同版本下的获取
chrome61向w3c规则靠拢,document.body.scrollLeft获取的值一直为0,需要使用document.documentElement.scrollLeft(或document. ...
- linux中什么是文件结构体?
struct file结构体定义在include/linux/fs.h中定义.文件结构体代表一个打开的文件,系统中的每个打开的文件在内核空间都有一个关联的 struct file.它由内核在打开文件时 ...
- web框架详解之tornado 一 模板语言以及框架本质
一.概要 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过 ...
- 对类型化数组(Typed Array)与ArrayBuffer的理解 转囧囧
类型化数组(Typed Array)也是HTML5中新引入的API.用一句话解释类型化数组就是:它是JS操作二进制数据的接口. 众所周知,直接操作二进制数据可以使程序更为高效, 尽管JS对常规数组做了 ...
- java深入探究02
web前端 html javascript Dom,BOM xml css Bootstrap
- js 跨域复习 window.name | window.domain | iframe | Jsonp
引起跨域的原因: 浏览器的同源策略,但是当你要发送请求的时候,出于安全性问题,浏览器有严格的要求,必须协议,域名,端口都相同,这个就是同源策略. 影响:a通过js脚本向b发送ajax请求,不同源就会报 ...
- php中session的配置
在 php.ini 中搜 session.save_path 查看session文件保存的目录;