SVM (二)SVM理論基礎

2021-08-20 17:51:37 字數 2772 閱讀 4116

上面我們討論了關於拉格朗日乘子法和kkt條件,下面我們討論一下svm的一些基礎概念

我們從乙個簡單地二分類問題來看,給定訓練樣本集合\( d =\, y_i \ \epsilon \ \\)如下圖所示:

分類學習最基本的思想就是找到乙個超平面將不同的類別分開,因此我們希望找乙個決策面使得兩個類分開,那麼決策面一般表示就是 \(w^t + b = 0\),現在的問題是如何找對應的w和b使得分割效果最好,這裡跟logistic分類問題一樣,也是找權值

在那裡,我們使根據每乙個樣本的輸出值和目標值得誤差不斷的調整權值w和b來求解。當然這種求解方式只是眾多方式中的一種,那麼svm是怎麼求最優的方式的呢?

這裡我們反過來看,假設我們知道了結果,就是上面這樣的分類線對應的權值w和b。那麼我們會看到,在這兩個類裡面,是不是總能找到離這個線最近的點,像下面這樣:

然後我們定義一下離這條分類線的最近的點到這個分類面的距離分別為\(d_1\) 和 \(d_2\),因此我們知道總的距離就是\(d = (d_1 + d_2\),所以svm的策略是先找最邊上的點,然後再找這兩個距離之和d然後求解d的最大值。於是我們找到了這樣的乙個分介面\(w^t + b = 0\),那麼做離它最近的兩類點且平行於分類面,如上面的虛線所示。

w是這個超平面的法向量,決定了超平面的方向,b為位移項,決定了超平面與原點之間的距離。w和b唯一確定乙個超平面。高中我們學過點到直線的距離公式,那麼模擬而得,樣本空間中樣本點x到超平面的距離可以寫為:​

假設我們有這兩個虛線,那麼真實的分介面正好是這兩個分介面的中間線,這樣\(d_1 = d_2\)。我們把兩個虛線分別設定為\(w^t + b = 1\)和\(w^t + b = -1\)。可以看到虛線相對於真實分類面平乙個乙個單位,可能大家會問,為什麼就正好是乙個單位?

確實不知道到底是幾個單位,因此我們假設是k個單位,那麼虛線就會變成\(w^t + b = k\),兩邊同除以k,那麼虛線還是可以變成\(w^t + b = 1\)。然後中線就會變成\(w_1^t + b_1 = 0 \),可以看的出來,這中間就是乙個倍數的關係

我們再來看\(d\)是怎麼求的,假設分解面是\(w^t + b = 1\),我們從最簡單的二維資料出發,假設x是二維資料,那麼分類面可以寫出來就是:\(w_1 x_1 + w_2 x_2 + b = 0\),初中知識,點到直線的距離就是\(d = \frac\),模擬到平面可以得到,我們先假設向量\(w\)為\(w=(w1,w2)^t\),\(||w||\)是向量的第二範數,\(||w|| = \sqrt\),則距離d為:​

d稱之為支援向量(支撐向量)的「間隔」,支撐向量就是到虛線上的那些點。我們的目標是使d最大,即找到滿足的引數w和b使得d最大,也就是使分母最小,於是優化問題轉變為:​

需要注意的這不止乙個約束條件,而是對於每乙個樣本都有這樣的乙個約束條件,轉換到這個形式以後是不是很像上述的kkt條件下的優化問題了呢?對的就是這個,但是還有乙個問題:這裡的目標函式是不是凸函式呢?經過數學證明,這是乙個凸函式,具體的證明這裡就不詳細闡述了。

因此,我們引入拉格朗日乘子法,優化的目標變為:​

對\(w\)和\(b\)求偏導可得:​

​ 這個兩個公式非常重要,簡直就是核心公式。這裡涉及到向量的求導問題,我們以二維資料\(w=(w_1, w_2)\)舉例來說明, \(w^t w = w_1^2 + w_2^2\), 對\(w_1\)求導得\(2w_1\),同理可得\(2w_2\), 合在一起就是\(2w\), 這就解釋了為什麼需要在優化問題前面乘以\(\frac\)。我們向量的求導問題就簡單地講述到這邊,如果讀者想要得到具體的細節,可以去查詢方保鎔《矩陣論》第五章矩陣微積分及其應用的相關知識。我們將上述兩個公式帶入原始的公式可以得到其對偶問題:​

​ 那麼到這裡,有同學想問對偶問題是如何得到的,關於對偶問題,我下面會詳細的用一章來講解。現在我們知道的是,不管原問題是不是凸問題,它的對偶問題一定是乙個凸優化問題。上述過程是滿足kkt條件的,即如下所示:​

解出\(\alpha\)後,我們可以求出 \(w\) 和 \(b\)。如下:​

從上面的式子可以看出,對於任意的樣本\( (x_i, y_i)\), 總有\(\alpha_i = 0\) 或者 \((y_i f( x_i ) - 1) = 0\)。如果\(\alpha_i = 0\), 則樣本不會出現在上式求和中,也就不會對\(f(x)\)有影響;如果\(\alpha_i > 0\),\( y_i f( x_i ) = 1\),所對應的樣本落在最大間隔的邊界上,是乙個支撐向量,這是svm的乙個重要性質:訓練完成後,大部分的訓練樣本都不需要最終保留,最終的模型只和那些支撐向量有關係。那麼如何求解上面的對偶問題的,你可以使用二次規劃演算法來求解,但是該問題的規模正比於樣本的規模,在實際任務中有很大的開銷,因此我們就可以使用我們上文提到的smo演算法!我們下文來專門討論一下smo演算法,今天就到這裡啦!

svm學習筆記 svm 理論基礎3

回顧一下上文的思路,對於線性可分問題,我們可以用超平面將訓練樣本分開。但是通常超平面有很多個,我們選擇距離兩類樣本點幾何間隔最大的那個,這樣能夠使得模型錯誤率的 上界 最小。而這個問題,有進一步的轉化為求超平面法向量 w 的值最小的問題。好,今天就從這裡開動。線性可分問題 之 問題轉化 之 凸二次規...

測試理論基礎二

軟體的開發都會依據相應的開發模型,而測試級別指的就是在這個模型當中我們人為定義的開發步驟。其中對於測試來說我們最常見的一種級別分類如下 1.單元測試 ut unit test 在軟體測試中單元指的就是組成軟體最小的底層 結構,一般就是類 函式 元件 當下的軟體測試行業,不會刻意要求測試人員對源 進行...

軟體測試理論基礎(二)

四 如何寫測試計畫 測試計畫應該包含什麼?編寫目的 背景 參考資料 測試要點 測試環境 產品及技術形態 起始時間 測試設計和測試執行 的任務分解和人員安排 風險控制 測試內容 人力以及時間資源分配 責任劃分 風險控制 測試結束的標準是什麼?用例通過率和bug比例達到要求,不出現比較嚴重的bug,測試...