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支持新 ...
随机推荐
- linux c编程:标准IO库
前面介绍对文件进行操作的时候,使用的是open,read,write函数.这一章将要介绍基于流的文件操作方法:fopen,fread,fwrite.这两种方式的区别是什么呢.1种是缓冲文件系统,一种是 ...
- IE下获取不到Response添加的cookie的解决方法
原博客地址: http://blog.csdn.net/wjdd1/article/details/16341189 在百度上查询了好久也没有查询到结果,于是自己用ie的开发者工具进行跟踪,JSESS ...
- Tensorflow—gpu报错
一晚上什么事都没做,就一直在查找tensorflow1.4缺少cudnn64_6的错误. 最后发现自己一直用的是cudnn64_7,即使改成cudnn64_6仍不可行.主要受实验室大佬安装的cudnn ...
- 【转载】Java定时器的学习
前几看了一下<thinking in java>了解到java原生的Times类有两个问题: (1)Timer是启动单个线程来处理所有的时间任务,如果一个任务耗时很久,那么如果在执行这个过 ...
- 正则表达式备忘(基于JavaScript)
基于JS学习的正则表达式 备忘 e.g.匹配以0开头的三位或四位区号,以-分格的7或8位电话号码var reg1 = /^0\d{2,3}\-\d{7,8}$/;或var reg1 = new Reg ...
- JVM - 堆外内存
看了不少资料,总结下: 堆外内存 / 直接内存(Direct Memory)JDK1.4中引入的NIO类,基于channel和Buffer的I/O方式,可用Native库直接分配堆外内存,然后利用一个 ...
- form memory cache、form disk cache与304
200 from memory cache 不访问服务器,直接读缓存,从内存中读取缓存.此时的数据时缓存到内存中的,当kill进程后,数据将不存在200 from disk cache 不访问服务器, ...
- JSP嵌入ueditor、umeditor富文本编辑器
一.下载: 1.什么是富文本编辑器?就是: 或者是这个: 其中第一个功能比较详尽,其主要用来编写文章,名字叫做udeitor. 第二个就相对精简,是第一个的MINI版,其主要用来编辑即时聊天或者发帖, ...
- UOJ278 【UTR #2】题目排列顺序
本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! 题目链接: http://uoj.ac/co ...
- html5制作坦克大战
全部html5都采用绘图技术完成.坦克是画出来的.(坦克,子弹,墙,水,草坪) 首先我们画出坦克. 坦克是两边两个矩形,中间一个大矩形,矩形了有一个圆,还有一根线. 画出坦克的思路是以坦克的左上角为参 ...