SVM的基本思想
SVM的基本思想非常直观。设想一个多维平面上散落着正样本和负样本,如果能找到一个超平面,恰好能将正负样本分开,那么这个超平面就可以用来对样本进行分类。如下图所示:

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