支持向量机(Support Vector Machines, SVM)被公认为优秀的分类模型,有很多人解释SVM的基本原理,我也从他们的研究成果中学习,在我的博客只是想介绍基本原理,以一种容易理解的方式解释原理,并希望通过MATLAB代码实现这些基本原理。由于SVM对数学理论的要求很高,而且SVM的形式也多种多样,实现方式也各不相同,在本系列中我们重点关注以下几个方面:
- 一些支持向量机的基本概念
- 线性支持向量机的原理
- 线性支持向量机的原理
- 非线性支持向量机的原理
- 支持向量机的实现-序列最小优化算法(SMO)
二是支持向量机的基本原理
Rosenblatt感知机的基本原理介绍在博文《简单易学的机器学习算法-Rosenblatt感知机》中。Rosenblatt感知机是神经网络模型和支持向量机SVM的基础,但Rosenblatt感知机只能处理线性问题,神经网络和支持向量机的功能更强大,可以处理线性问题。它还可以处理非线性可分问题。
支持向量机SVM是定义特征空间中间隔最大的线性分类器。在Rosenblatt传感器中,通过计算分类误差获得分离超平面,在SVM中使用间隔最大的特性。
非线性可分性),通过最大间隔(处理线性可分性与非线性可分性略有差异)等优化问题,得到超平面的分离
这样就可以得到分类决策函数
其中,
为符号函数
三、支持向量机的分类
对于不同的问题,有不同的支持向量机,主要有几种支持向量机
- 线性可分支持向量机:解决线性可分问题的主要要求
- 线性支撑向量机:主要处理近似线性可分问题
- 非线性支持向量机:主要处理线性不可分割的问题
四、支持向量机中的一些基本概念
支持向量机有很强的理论基础,在分析SVM算法的过程中需要使用一些基本概念,主要包括以下几个方面:
1、函数间隔和几何间隔
对于线性可分问题,如下图所示:
分离超平面上方为正类,下方为负类。一个点距离分离超平面的距离可以表示分类预测的确定性,如上图中的A、B和C。由于A远离分离超平面,如果预测A为正类,则更确定预测是正确的;C靠近超平面,如果预测为正类,则不确定。
对于数据集
和分离超平面
:
- 函数间隔:定义样本点分离超平面的函数间隔;
- 几何间隔:定义样本点分离超平面的函数间隔
2、拉格朗日对偶性
拉格朗日函数主要用于处理带约束的优化问题。
假设
,
,
是定义在
对于具有约束力的优化问题,上连续可微函数:
引入广义拉格朗日函数:
要求
的最小值:
,它的对偶问题可以通过寻求解决,即寻求解决