SVM梯度下降的理解
超平面:比當前空間少1維的空間,如:一維的超平面是點,二維的超平面是1維。
SVM 分離超平面公式:
y
=
W
T
∗
x
+
b
y=W^T *x+b
y=WT∗x+b,通過y>0、<0,判斷二分類;即通過超平面把原始空間的內容二分類。計算該公式時,關鍵是(a)如何判斷停止迭代,(b)在每次迭代中計算(w、b、T);目標是計算出最終的(w,b,T(T表示核函式的值、或者轉置 等等))。
(1) SVM的核函式(計算w,b,T)[1]
核函式解決特徵對映問題,即通過從低緯度到高緯度對映,解決原始空間不可分,如:一維對映到2維,從而計算出其“分離超平面”。如下面例子,計算出分離超平面是
x
2
+
x
x^2+x
為了驗證“分離超平面”,可以再映射回原始特徵空間,如下:
(2) SVM的優化演算法SMO(判斷停止迭代,和計算w,b,t),如下:
以上程式碼中,在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]
梯度下降公式:
以上的公式,計算出的theta(1) 是這次下降所到達點。其中,初始位置是theta(0),a是每次下降的步長
通過反覆迭代該公式,在迭代過程中,判斷當梯度<given 值的時候,停止迭代,最後得到的theta是最低點;把最低點(1個)代入某方程中,可以得到某擬合函式。如:求下圖紅色點的擬合直線,通過梯度下降方法,得到藍色直線。
(3.2)SVM的優化演算法梯度下降(判斷停止迭代,和計算w,b)
以上程式碼中,line1是通過損失函式判斷迭代是否停止,(損失函式是,由svm函式計算出y(i),對y(i)縮排1,理想的情況這時y(i)=0;然後對其累加成y,再計算y與預測分離超平面的差距,如果差距cost> precision,需要再優化),並且T是given 的迭代次數;line2是在每次迭代中,計算出代價函式的梯度
參考:
[1] 資料探勘領域十大經典演算法之—SVM演算法,https://blog.csdn.net/fuqiuai/article/details/79483057
[2] SVM的梯度下降解釋及其演算法比較,https://blog.csdn.net/olizxq/article/details/90143558
[3] 機器學習:支援向量機(SVM),https://blog.csdn.net/olizxq/article/details/83052235
[4] 梯度下降演算法原理講解,https://blog.csdn.net/qq_41800366/article/details/86583789
[5] Python numpy.transpose 詳解,https://blog.csdn.net/u012762410/article/details/78912667
[6] LaTex, https://blog.csdn.net/u014711094/article/details/80645327
[7] loss 與梯度下降,https://blog.csdn.net/silent_crown/article/details/78109461?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param
[8] Latex 希臘字母,https://blog.csdn.net/xyqzki/article/details/6842777