按照初学时提出问题的过程来逐步深入:
什么是支持向量机?
支持向量机是一类按监督学习方式对数据进行二元分类的广义线性分类器。
此章节位于机器学习的第四节,首先对前面内容进行小部分复习:
什么是逻辑回归?
逻辑回归是假设数据符合伯努利分布,通过极大似然函数二点方法,运用梯度下降来求解参数,以此解决二分类问题。
支持向量机与逻辑回归和线性回归以及决策树的关系?
1线性回归主要解决连续值预测问题。
2 逻辑回归于支持向量机均属于分类算法(其根本问题一样)二分类的广义线性分类器。
逻辑回归的局限?但是引出了SVM的解决办法?
逻辑回归不能解决非线性问题,其决策面向线性。
但是SVM能解决线性可分的“非线性”问题,在线性解决问题上迈出了一大步。
逻辑回归相较于支持向量机的区别在于:
1目标函数:逻辑回归采用的是logistical loss,svm采用的是hinge loss。其采用的目标函数不同。
2其损失函数的目的相同:增加对分类问题影响较大的数据点的权重,减少对分类问题损失较小的数据点的权重。
3训练样本点:SVM考虑与分类问题最相关的少数数据点,进行学习分类器。逻辑回归通过非线性映射,减少离平面较远点的权重,增加与分类器最相关的数据点的权重。
4支持向量机的突出特点:SVM转化为对偶问题后,分类只需要计算与少数几个支持向量机的距离(进行复杂核函数计算时相对优势更明显)
支持向量机的任务?
SVM找到一个超平面(三维平面以上的均称为超平面),用这个超平面将两个不同类别的样本划分开。
SVM的具体步骤:
我们需要找到一个超平面来进行不同样本的划分。
什么是支持向量机中的支持呢?
离分界线最近的向量。
距离d该如何求呢?
注意数学问题:(这里属于个人理解范畴)
||w||表示为2-范数。如,w是一个n维列向量,w=(w1,w2,...,wn)';||w||=w'w。
二范数指矩阵A的2范数,就是A的转置共轭矩阵与矩阵A的积的最大特征根的平方根值,是指空间上两个向量矩阵的直线距离。类似于求棋盘上两点间的直线距离。
此时成功将目标转变为最小化W,限制条件为:
注意这里约束条件大于0/1对解雇没有影响,只是表述方式的不同。
对于线性不可分的数据集,我们无法找到这样的一种直线,将不同类型的样本分开。但是Vapnik提出了,此时的线性不可分只是当下维度的不可分,不代表高维空间不可分。Such as:二维空间不可分的样本,不一定在三维空间也不可分。
此时认为:当数维趋于无穷时,可以找到这样一条直线将不同的样本进行划分。
改进目前的SVM模型,使其处理线性不可分数据:
注意:函数间隔的取值并不影响最优化问题的解,所以我们可以最小化W等价于以下:
以上就是支持向量机(SVM)的基本表达。
但是目前还有一个问题是,无限维向量是无法处理的。故通过对偶算法来进行处理。
对偶算法解决原理:
上述表达式有函数以及限制条件,在没有限制条件的时候可以直接求极值,有限制条件时,选用拉格朗日乘子法来计算极值,拉格朗日乘子法的优势是可以将约束条件加入其中。
对偶算法的解决过程是:
此时已经将约束条件写入,转为求L函数的极值。
注意矩阵求偏导的方法:
求偏导:w,b
b求出为约束条件
将求出的w,b代入后得到对偶max
在原式基础上带入w解出α。
得到的模型满足KKT:
则得出结论:对于任意训练样本,其要么对原式不会产生影响,要么位于最大间隔边界(支持向量),故可以不保留大部分样本,因为最终模型只与支持向量有关。