SVM

简介:   SVM是我写的最长的一篇博客。  解决SVM有两个思路,这两个思路指导我们后面的方法:简单情况,线性可分或线性不可分,把问题转化成为一个凸优化问题,可以利用拉格朗日乘子法简化,然后有既有的算法解决。

  SVM是我写的最长的一篇博客。
  解决SVM有两个思路,这两个思路指导我们后面的方法:

  • 简单情况,线性可分或线性不可分,把问题转化成为一个凸优化问题,可以利用拉格朗日乘子法简化,然后有既有的算法解决。
  • 复杂情况,非线性情况,用映射函数将样本投射到高维空间,使其变成线性的情况。利用核函数减少高纬度计算量。

  所谓的支持向量机就是在一个分隔平面两边各找到对应的支持向量,使得经过这些支持向量的左右两边平面的距离最大化,如图所示:

img_8dcdc363bdad5c040d52e77469dd2b03.png

然后我们开始计算。
img_d3627444a43272f289735e9f2286f547.png

现在,我们得出来的d,我们就可以转化为凸优化问题
img_c3e23445c9de8acb3b34fdcdde585785.png

到了这里,我们可以用拉格朗日乘子法来解决这个问题。为什么可以用拉格朗日乘子法来解决,首先得解释一下拉格朗日乘子法。
img_21d0c07d084284c1e7e5d3c12babaff5.png

假设f(x,y)无约束,那么f在它的梯度那里就可以取到最小值,就是梯度下降到几乎不变的时候,在图中就是f的圆心。但是有了约束后,取不到,只能通过拉格朗日乘子法来解决。解释如图:
img_f5f7e757548dee28b288c18296f9b1eb.png
拉格朗日

解释完了,那么就可以得到如下的公式,分别对w和b求导得到:
img_b41adc037812a3638b5ab5c51cf27a98.png

但是这个是要加上kkt条件的,kkt条件中的变量太多,不利于解L,所以将拉格朗日乘子法的问题转化为其对偶问题,
img_6c2deaf4d97d42b37d5e6d6fe000e02b.png

这里,我插一句,什么是松弛变量和惩罚函数

img_a639c48d6e08981446fb28e8cf47ac49.png

好了,到了倒数第二步了,我们现在要求 \alpha_i\alpha_j,那么,所以,我们可以用SMO算法来解决。SMO算法的思想很简单。如图:
img_3b094ef8e2f6ed2eb791eb9d9a0048ac.png

这个,我暂时不打算细讲,以后可能会单独分出来在好好说说。然后就是核函数了,核函数就是简化计算。就是本来是求 x_i . x_j,映射到高维空间求 \phi(x_i) . \phi(x_j),而核函数就是用低位空间的一个函数计算,简化高维空间的 \phi(x_i) . \phi(x_j),常用的核函数有以下几种:
img_114a6a560f7b9a7b0385ea206e6e24e0.png

目录
相关文章
|
4月前
|
机器学习/深度学习 算法 Serverless
什么是支持向量机(SVM)
支持向量机(Support Vector Machine,SVM)是一种用于分类问题的监督算法。主要用于二分类和多分类问题。其基本思想是找到一个超平面,能够将不同类别的样本点尽可能地分开,并使得离超平面最近的样本点尽可能远离超平面,从而实现较好的分类效果。 SVM的关键是找到一个最优的超平面,这个超平面可以通过使得最靠近超平面的样本点之间的间隔最大化来定义。这些最靠近超平面的样本点被称为支持向量。SVM的优化目标可以表示为一个凸二次规划问题,可以通过求解对应的拉格朗日函数来得到最优解。
|
3月前
|
机器学习/深度学习 算法 Serverless
支持向量机(SVM)
支持向量机(Support Vector Machine,SVM)是一种用于分类问题的监督算法。主要用于二分类和多分类问题。其基本思想是找到一个超平面,能够将不同类别的样本点尽可能地分开,并使得离超平面最近的样本点尽可能远离超平面,从而实现较好的分类效果。 SVM的关键是找到一个最优的超平面,这个超平面可以通过使得最靠近超平面的样本点之间的间隔最大化来定义。这些最靠近超平面的样本点被称为支持向量。SVM的优化目标可以表示为一个凸二次规划问题,可以通过求解对应的拉格朗日函数来得到最优解。 SVM除了能够处理线性可分离的问题外,还可以通过核函数的引入处理线性不可分的问题,将样本映射到高维空间,从而
|
6月前
|
机器学习/深度学习 数据采集 算法
支持向量机SVM:从数学原理到实际应用
支持向量机SVM:从数学原理到实际应用
120 0
|
8月前
|
机器学习/深度学习 算法 Python
2022-11-10-支持向量机SVM
2022-11-10-支持向量机SVM
79 0
|
11月前
|
机器学习/深度学习 算法
SVM学习笔记
SVM学习笔记
93 0
|
机器学习/深度学习 运维 算法
SVM(五):SVM小结
SVM(五):SVM小结
SVM(五):SVM小结
|
机器学习/深度学习
SVM(三):非线性支持向量机
SVM(三):非线性支持向量机
SVM(三):非线性支持向量机
|
机器学习/深度学习 算法
SVM(一):线性支持向量机
SVM(一):线性支持向量机
SVM(一):线性支持向量机
|
机器学习/深度学习 算法 开发者
Svm 介绍| 学习笔记
快速学习 Svm 介绍。
82 0
Svm 介绍| 学习笔记
|
机器学习/深度学习 算法