个人总结:从 感知机 到 SVM分类(详)(附:梯度下降家族)

前言

SVM是一个二元分类算法,线性分类和非线性分类都支持。经过演进,现在也可以支持多元分类,以及回归问题。而感知机在思想上可以看做SVM的前辈。

 

回顾感知机

感知机模型就是尝试找到一个超平面,能够把所有二元类分开。如果找不到这么一条直线,就说明类别线性不可分,也就意味着感知机模型不适合你的数据分类。使用感知机的前提就是数据线性可分。而其他模型在面对线性不可分的情况下,比如支持向量机可以通过核技巧来让数据在高维可分,神经网络可以通过激活函数和增加隐藏层来让数据可分。

对于这个分离的超平面,定义为,而将x代入后大于0定义为类别1,小于0定义为-1。如果这两类数据线性可分,这样的超平面一般都不是唯一的,也就是说感知机模型可以有多个解。

则感知机模型可以定义为:y = sign(\omega ^{T}x + b), y\in \left \{ -1, 1 \right \},

其中

于是对于误分类的样本,满足 y^{i}(\omega ^{T}x^{i} + b) < 0

该样本点到超平面的距离为:

-y^{i}(\omega ^{T}x^{i} + b)/\left \| \omega \right \|_{2}

感知机的损失函数优化,思想是让所有误分类的点(M)到超平面的距离和最小,于是有损失函数:

这里可以不考虑\frac{1}{\left \| \omega \right \|_2},为什么呢?因为如果当分子的ω扩大N倍,分母的L2范数也会扩大N倍,分子和分母有固定的倍数关系。可以通过固定分子或者分母为1,然后求 分子 或者 分母的倒数的最小化 作为损失函数。这里把分母固定为1,即得到简化的损失函数:

(如果把分母固定为1,则就引入了SVM的损失函数)

对于这个损失函数可以用梯度下降法或者拟牛顿法来解决,常用的是梯度下降法。

回到感知机,感知机采用随机梯度下降,也就是每次只需要使用一个误分类的点来更新梯度。

损失函数:

对ω求偏导:

\frac{\partial F}{\partial \omega} = - \sum_{x_{i}\in M}y^{(i)}x^{(i)}

则ω的梯度下降公式应该为:

\omega = \omega + \alpha\sum_{x_{i}\in M}y^{(i)}x^{(i)},其中α为步长,y(i)的输出样本为1或者-1,x(i)为(n + 1) x 1维向量。

而我们采用随机梯度下降,所以每次仅仅采用一个误分类样本来计算梯度,假设采用第i个样本来更新梯度,则

\omega = \omega + \alpha y^{(i)}x^{(i)}

对偶形式

对偶形式可以对执行速度进行优化。

之前的算法形式为\omega = \omega + \alpha y^{(i)}x^{(i)}。对于从来没有误分类过的样本,被选择参与ω迭代的次数为0,对于被多次误分类而更新的样本j,参与ω迭代的次数设为mj。如果令ω初始值为0向量,则表达式可以写为:

\omega = \alpha \sum_{j = 1}^{m}m_{j}y^{(j)}x^{(j)}

,则ω向量的表达式为:

\omega = \sum_{j = 1}^{m}\beta_{j}y^{(j)}x^{(j)}

在判断是否误分类时,原始是y^{(i)}(\omega^{T}x^{(i)} + b) < 0 变为 y^{(i)}(\sum_{j = 1}^{m}\beta_{j}y^{(j)}x^{(j)}x^{(i)} + b) < 0。注意到现在是。这个内积结果在下面的迭代次数中可以重用。如果事先用矩阵算出所有样本间的内积,那在算法运行时仅仅一次的矩阵内积计算比多次的循环计算更省时。而判断误分类就是感知机里计算量最大的地方,对偶形式就比原始形式更加优越。

感知机小结

感知机是深度学习网络,神经网络等的基础,SVM也参考借鉴了一部分思想。

感知机的解不唯一,与ω的初值和α的初值有关,这个初值的设置会影响最终的结果。

同时使用对偶形式也比原始形式计算效率更高。

 

SVM

支持向量机(Support Vector Machine),如果不考虑集成学习的算法,不考虑特定训练数据集,在分类算法中的表现SVM排第一是没有什么异议的。

之前在感知机的回顾中提到,超平面固定的时候,表示点x到超平面的相对距离。通过观察与y是否同号,判断分类是否正确。

定义函数间隔γ',之前在感知机也提到过:

(这里为了度量性能,默认都能正确分类,都为正)

对于训练集m个样本,对应m个函数间隔的最小值,就是整个训练集的函数间隔(判断性能用最小的那个来确定)。

函数间隔越大,对分类的结果越确信,我们希望函数间隔越大越好。那成比例增加ω和b就可以了?但是是一回事。

所以函数间隔并不能正常反应点到超平面的距离。为同一度量,得到几何间隔γ,定义为

感知机里用的就是几何间隔。定义训练集到超平面的最小几何间隔为m个几何间隔的最小值。

支持向量

支持向量机的核心思想是,只关心离超平面近的那些点是否分类正确,因为离超平面很远的那些点已经被分类正确了,如果让比较近的点尽可能远离超平面,那么分类效果会好一些。

而感知机的思想为让所有误分类的点(M)到超平面的距离和最小。思想的差距决定了支持向量机的分类效果是比感知机更优的。

可以证明,符合支持向量机要求的超平面只有一个,具有唯一性,而符合感知机条件的超平面可能有多个。

和支持向量机的超平面保持一定的函数距离的两个超平面对应的向量(距离超平面最近的且满足一定条件的几个训练样本点,也就是在这两个超平面上的样本点),定义为支持向量

(这里的函数距离为1,支持向量到超平面的几何距离为,两个支持向量的距离为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值