SVM从入门到精通(一)

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32502811/article/details/80946889 我是标题党【doge】······ 最近在看SVM算法的原理,之前只知道用,但是对理论推导并不是很明白,这次算是复习一下,加深理解。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_32502811/article/details/80946889

我是标题党【doge】······
最近在看SVM算法的原理,之前只知道用,但是对理论推导并不是很明白,这次算是复习一下,加深理解。

从感知机说起

要深入理解SVM,首先要从感知机说起。
什么是感知机呢?

感知机(perceptron)是二类分类的线性分类模型。
假设输入空间为χRnχ⊆Rn,输出空间是y=1,+1y=−1,+1.由输入空间到输出空间的如下函数f(x)=sign(ωx+b)f(x)=sign(ω⋅x+b)称为感知机。

也就是说,我的ωω参数和bb参数,确定了一个分离超平面,将训练数据集划分为两个部分,分别为正类和负类。因此,我们需要知道ωω和b的值,确定这个超平面,那么来了一个新的数据,通过计算和这个超平面的距离,就知道它属于哪个类别了。

因此,我们的任务就变成了求ωωbb的值是什么,从而确定分离超平面。
在这里,我们有一个前提条件,就是数据集是线性可分的

那么如何求这两个参数呢?我们需要确定一个学习策略,即定义经验损失函数并将其极小化。也就是我们常说的loss.

在感知机中,我们选择的loss为误分类点到超平面的总距离,让这个总距离最小,这就是我们的优化目标。特征空间中任意一点x0x0到超平面的距离为:

1ω|ωx0+b|1‖ω‖|ω⋅x0+b|

对于误分类的数据 (xi,yi)(xi,yi)来说, yi(ωx+b)<0yi(ω⋅x+b)<0.因此,误分类点到分类超平面的距离就是 1ωyi|ωx+b|−1‖ω‖yi|ω⋅x+b|
因此,所有误分类点到分类超平面的距离就是:
1ωxiMyi(ωx+b)−1‖ω‖∑xi∈Myi(ω⋅x+b)

由于 1ω1‖ω‖为常数,因此不考虑它。于是,我们得到了感知机的损失函数:
L(ω,b)=xiMyi(ωxi+b)L(ω,b)=−∑xi∈Myi(ω⋅xi+b)

且该损失函数关于 ωω和b连续可导。

有了学习策略,也就是我们的经验函数,接下来就是学习算法了。我们将学习问题转化为了优化问题,解决方法就是随机梯度下降(SGD),这里不展开说了。
对于感知机,学习算法有原始形式对偶形式

  • 原始形式:
    1. 选取ω0,b0ω0,b0的初值,可以随机给。
    2. 在训练集中选取数据(xi,yi)(xi,yi)
    3. 如果yi(ωxi+b)<0yi(ωxi+b)<0(说明被分错了):
      ωω+ηyixiω←ω+ηyixi
      bb+ηyib←b+ηyi
    4. 回到2,直至没有错分的点。

  • 对偶形式
    对偶形式的基本想法是,将ωω和b 表示为实例xixi和label yiyi的线性组合形式,通过求解其系数,求得ωω和b。
    按照上面的参数更新过程,我们设初始值都为0,那么经过n次迭代以后,ωω和b关于(xi,yi)(xi,yi)的增量为αiyixiαiyixiαiyiαiyi,其中αiηαiη。因此,最后学习到的参数值分别可以表示为:
    ω=i=1Nαiyixiω=∑i=1Nαiyixi
    b=i=1Nαiyib=∑i=1Nαiyi

    基于此,感知机的模型就可以表示为f(x)=sign(Nj=1αjyjxjx+b)f(x)=sign(∑j=1Nαjyjxj⋅x+b)
    实例点更新的次数越多,意味着它与分离超平面越近,越不好分。也就是说,这样的实例对学习的结果影响最大。

那么,对偶形式就可以如下表示了:
1. 参数为αα,b,赋初值为0.
2. 在训练集中选取数据(xi,yi)(xi,yi)
3. 如果(Nj=1αjyjxjx+b)<=0(∑j=1Nαjyjxj⋅x+b)<=0:

αiαi+ηαi←αi+η
bb+ηyib←b+ηyi

4. 转2,直到没有误分类的点。

对偶形式中,训练集仅以内积的形式出现,为了方便,可以预先算出来存储下来,这个矩阵就是Gram矩阵

G=[xixj]N×NG=[xi⋅xj]N×N

总结

  1. 首先,感知机应用场景为,数据集是线性可分的,这是前提。
  2. 感知机的经验损失函数为误分类点到分离超平面的距离和,让这个距离和达到最小。
  3. 感知机学习得到的分离超平面并不唯一,有无穷多解。解由于初值不同或者迭代顺序不同而可能有所不同。
  4. 学习算法为随机梯度下降.有原始形式和对偶形式。
目录
相关文章
|
机器学习/深度学习 算法 API
机器学习SVM算法入门
机器学习SVM算法入门
91 0
|
6月前
|
数据可视化 算法
【R语言实战】——kNN和朴素贝叶斯方法实战
【R语言实战】——kNN和朴素贝叶斯方法实战
|
6月前
【R语言实战】——Logistic回归模型
【R语言实战】——Logistic回归模型
|
机器学习/深度学习
【阿旭机器学习实战】【21】通过SVM分类与回归实战案例,对比支持向量机(SVM)3种SVM不同核函数
【阿旭机器学习实战】【21】通过SVM分类与回归实战案例,对比支持向量机(SVM)3种SVM不同核函数
【阿旭机器学习实战】【21】通过SVM分类与回归实战案例,对比支持向量机(SVM)3种SVM不同核函数
|
机器学习/深度学习 算法
|
机器学习/深度学习 算法
连载|集成学习(简介)
连载|集成学习(简介)
|
机器学习/深度学习 算法
SVM学习笔记
SVM学习笔记
128 0
|
机器学习/深度学习
机器学习原理与实战 | SVM(支持向量机)实践
机器学习原理与实战 | SVM(支持向量机)实践
154 0
机器学习原理与实战 | SVM(支持向量机)实践
|
机器学习/深度学习 算法 开发者
Svm 介绍| 学习笔记
快速学习 Svm 介绍。
Svm 介绍| 学习笔记
|
API Python
lightgbm入门学习第一笔记
lightgbm入门学习第一笔记
452 0
下一篇
无影云桌面