超平面:比当前空间少1维的空间,如:一维的超平面是点,二维的超平面是1维。
SVM 分离超平面公式:softmax regression 梯度下降_代价函数,通过y>0、<0,判断二分类;即通过超平面把原始空间的内容二分类。计算该公式时,关键是(a)如何判断停止迭代,(b)在每次迭代中计算(w、b、T);目标是计算出最终的(w,b,T(T表示核函数的值、或者转置 等等))。

(1) SVM的核函数(计算w,b,T)[1]

核函数解决特征映射问题,即通过从低纬度到高纬度映射,解决原始空间不可分,如:一维映射到2维,从而计算出其“分离超平面”。如下面例子,计算出分离超平面softmax regression 梯度下降_代价函数_02

softmax regression 梯度下降_代价函数_03


为了验证“分离超平面”,可以再映射回原始特征空间,如下:

softmax regression 梯度下降_梯度下降_04

(2) SVM的优化算法SMO(判断停止迭代,和计算w,b,t),如下:

softmax regression 梯度下降_迭代_05


以上代码中,在train()中,根据公式y=WT *x+b,在given 迭代次数下,计算出W,b,T(类似于 递推函数),即建立model;在score()中,输入x、W、b、T,计算出预测y’,由公式y’/y * 100%计算出accurary,并且输出。

(3) SVM的 梯度下降

(3.1)梯度下降基础知识 [4] [5]

softmax regression 梯度下降_梯度下降_06


梯度下降公式:

softmax regression 梯度下降_迭代_07


以上的公式,计算出的theta(1) 是这次下降所到达点。其中,初始位置是theta(0),a是每次下降的步长(即 learning rate),而J()函数代价函数求导J()函数是梯度(即,下降的方向,也可以说微分J()函数)。

通过反复迭代该公式,在迭代过程中,判断当梯度<given 值的时候,停止迭代,最后得到的theta是最低点;把最低点(1个)代入某方程中,可以得到某拟合函数。如:求下图红色点的拟合直线,通过梯度下降方法,得到蓝色直线。

softmax regression 梯度下降_梯度下降_08


(3.2)SVM的优化算法梯度下降(判断停止迭代,和计算w,b)

softmax regression 梯度下降_梯度下降_09

以上代码中,line1是通过损失函数判断迭代是否停止,(损失函数是,由svm函数计算出y(i),对y(i)缩进1,理想的情况这时y(i)=0;然后对其累加成y,再计算y与预测分离超平面的差距,如果差距cost> precision,需要再优化),并且T是given 的迭代次数;line2是在每次迭代中,计算出代价函数的梯度;line3、4是通过梯度计算出w、b(例如:Wsoftmax regression 梯度下降_代价函数_10=Wsoftmax regression 梯度下降_梯度下降_11 - softmax regression 梯度下降_梯度下降_12 ),再计算损失值。其中,损失函数、代价函数都与 softmax regression 梯度下降_代价函数 相关,softmax regression 梯度下降_迭代_14是 learning rate, 如下代码:

softmax regression 梯度下降_代价函数_15

softmax regression 梯度下降_代价函数_16

参考:
[1] 数据挖掘领域十大经典算法之—SVM算法,
[2] SVM的梯度下降解释及其算法比较,
[3] 机器学习:支持向量机(SVM),
[4] 梯度下降算法原理讲解,
[5] Python numpy.transpose 详解,
[6] LaTex,
[7] loss 与梯度下降,
[8] 梯度下降与随机梯度下降概念及推导过程,