机器学习-SVM推导
SVM的基本思想
SVM的基本思想非常直观。设想一个多维平面上散落着正样本和负样本,如果能找到一个超平面,恰好能将正负样本分开,那么这个超平面就可以用来对样本进行分类。如下图所示:
我们的目标是找到图中的H3。
推导步骤
步骤1
假设空间上的训练数据集:
找到分类超平面:
样本空间中任意点x到超平面(w,b)的距离可写为:
若该超平面能将正负样本分开,也就是正负样本完全被超平面隔离开,该情况从数学的角度看,就等同于:
对于所有的正样本,yi=1,distance(xi,yi)大于0意味着:
同理,对所有的负样本,yi=-1,也有:
这意味着负样本都在超平面与法向量ω反向的一侧。
假设同时存在两个平行于H的超平面H1和H2:
使离H最近的正负样本刚好分别落在H1和H2上,这样的样本就是支持向量。那么其他所有的训练样本都将位于H1和H2之外,也就是满足如下约束:
写成统一的式子就是:
而超平面H1和H2的距离可知为:
SVM的任务就是寻找这样一个超平面H把样本无误地分割成两部分,并且使H1和H2的距离最大。要找到这样的超平面,只需最大化间隔Margin,也就是最小化[||w|{|^2}]
于是,SVM的基本型如下:
对于不等式约束的条件极值问题,可以用拉格朗日方法求解。而拉格朗日方程的构造规则是:用约束方程乘以非负的拉格朗日系数,然后再从目标函数中减去。于是得到拉格朗日方程如下:
其中:
那么我们要处理的规划问题就变为:
根据对偶问题做个等价变换:
其意义是:原凸规划问题可以转化为先对w和b求偏导,令其等于0消掉w和b,然后再对α求L的最大值。
先计算w和b的偏导数有:
于是就有:
于是:
于是可得对偶问题:
上式这个规划问题可以直接从数值方法计算求解。
原始问题和对偶问题
从minmax的原始问题,转化为maxmin的对偶问题。一者因为是近似解,二者,转化为对偶问题后,更容易求解。下面可以先求L对w、b的极小,再求L 对a的极大。
合页损失函数
函数:
称为合页损失函数。当样本被正确分类且函数间隔大于1时,合页损失才是0,否则损失是1-y(wx+b)。相比之下,合页损失函数不仅要正确分类,而且确信度足够高时损失才是0。也就是说,合页损失函数对学习有更高的要求。
其他问题
SVM防止过拟合:
https://blog.****.net/vincent2610/article/details/52033250?locationNum=14
SVM 为什么不适合处理大数据?:
但对于大规模学习来说,障碍往往在于算法的计算能力不足,不是数据不够,所以也可以说传统的统计学习方法都不适合大规模数据处理(不只是SVM)。
KKT条件
https://blog.****.net/johnnyconstantine/article/details/46335763