本文共 985 字,大约阅读时间需要 3 分钟。
本章开始进入SVM的讲解。SVM(Support Vector Machine)指的是,是常见的一种判别方法。在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。
在进入SVM学习之前,需要对以下知识点进行说明,大纲如下:
● 梯度下降法、拉格朗日乘子法、KKT条件回顾
● 感知器模型回顾● SVM线性可分 (重点)● SVM线性不可分 (重点)● 核函数 (重点)● SMO__梯度下降法__是一种求极值的算法,在对自变量没有限制条件的时候使用。当函数自变量存在取值范围的时候,就无法使用梯度下降法进行求解了。
对自变量有取值范围的函数,如果要求极值,可以使用__拉格朗日乘子法__。即在有限制的情况下,对有限制条件的函数进行转化,转化成无限制条件的函数,使转化完的函数和原函数等价,这时取得极值点的时候和原函数相同。这就是拉格朗日乘子法的思想和存在的意义。
当有限制的函数转化成无限制的函数后,就可以通过求偏导的方法(梯度下降法)进行求极值。
KKT条件 是指,满足什么样的条件下,可以让原函数转化成拉格朗日乘子法。
直观理解:找到一些直线划分两个不同的分类,使得误分的点越少越好。
用感知器找到的直线不止一条,可以找到一条__感知器模型__的最优解。最后找到的直线称为__SVM支持向量机__。
__SVM支持向量机__可以处理两类问题:
SVM线性可分模型 ,即一条直线可以分割两种分类。__SVM线性不可分模型__,两种分类比较紧密,用一条直线无法轻易分割。这种问题的处理方式可以将数据映射到高维,通过一个面来分割两类数据,最后求高维面在低维上的映射。
解决数据映射到高维时,计算量复杂的问题。
SVM通常用对偶问题来求解,这样的好处有两个:1、变量只有N个(N为训练集中的样本个数),原始问题中的变量数量与样本点的特征个数相同,当样本特征非常多时,求解难度较大。2、可以方便地引入核函数,求解非线性SVM。求解对偶问题,常用的算法是SMO,彻底地理解这个算法对初学者有一定难度,本文尝试模拟算法作者发明该算法的思考过程,让大家轻轻松松理解SMO算法。
理解原理即可。
参考: 《》
转载地址:http://simjm.baihongyu.com/