以下內容是我在學習完《統計學習方法》及查閱相關資料後,對svm的一些疑惑的理解,可能還有理解不到位的地方,如有不對,請及時指出。
樣本線性可分 -> 硬間隔最大化
樣本近似線性可分 -> 軟間隔最大化
樣本線性不可分 -> 核函式+軟間隔最大化
1、硬間隔最大化時,解是唯一的,即分離超平面wx+b=0中w和b是唯一的。證明
相比之下,感知機利用誤差最小策略得到的分離超平面是不唯一的,無窮多個。感知機取不同的初值和不同的誤分類點,得到的解都是不一樣的。
2、當使用軟間隔最大化(包括使用kernel)時,分離超平面中解w是唯一的,但b不一定唯一,取值在乙個區間,所以實際計算時可以取在所有符合條件的樣本點上的平均值。
在使用smo演算法求解α時,b值如下計算(來自統計學習方法):
下面是我的理解,為什麼軟間隔最大化,模型不唯一:
因為加入了軟間隔,對樣本線性可分要求沒那麼嚴格,允許少量的錯誤,不同的超平面會導致不同的誤分類點,而這些超平面的目標函式最小損失應該是一樣的。(純屬個人理解,可能不對)
在訓練模型,即求解w和b的過程中,因為使用smo演算法,每次只選擇兩個樣本來更新α,選擇的標準是不符合kkt條件和α更新比較大的點,所以一般會選擇誤分類的點來更新模型,所有樣本不一定都能用來更新模型。
在**時,決策函式是:
其中xi和yi是訓練樣本,x是待**的特徵。
而αi取值是[0,c],當取值為0時,訓練樣本在公式中不起作用,此時對應的訓練樣本是已經被正確分類或者在間隔邊界上。只有當α>0時,其對應的樣本才會對決策起作用,此時對應的情況是這些樣本點在支援向量上。
note:
軟間隔的支援向量x或者在間隔邊界上,或者在間隔邊界與分離平面之間,或者在分離超平面誤分一側。
硬間隔的支援向量x都是在間隔邊界上的。
首先,在使用拉格朗日運算元把約束條件加入到最初優化目標中後,優化目標變為:
如果要求這個極值,一般是要求導讓導數為0,沒法先對α求導吧,因為α的數目與樣本數目相關,數量非常大,後面不好計算,而且α還有等於0的情況(個人理解),如果先對w和b求導,那就簡單多了。看其他人的解釋如下(**):
對偶問題將原始問題中的約束轉為了對偶問題中的等式約束
方便核函式的引入
改變了問題的複雜度。由求特徵向量w轉化為求比例係數a,在原始問題下,求解的複雜度與樣本的維度有關,即w的維度。在對偶問題下,只與樣本數量有關。
支援向量機的求解過程可以轉換成對偶問題,其目標函式如下:
需要求這個函式的最小值。這是個凸二次規劃問題,具有全域性最優解,而且有很多方法來求解。但是目標函式的求解α依賴於訓練資料,當樣本數目巨大時,普通求解方法非常低效。所以使用啟發式的方法smo來加速求解。基本思想是每次只選取兩個α來更新,把其他的α看做常數。
首先需要知道函式間隔和幾何間隔:傳送門
svm的目標是求乙個幾何間隔最大的分離超平面,優化目標及約束條件如下:
其中約束條件是說幾何間隔都要大於等於乙個數γ,所以目標就是在滿足約束條件情況下,使γ盡可能大,即幾何間隔盡可能大。
將幾何間隔表示為函式間隔,優化目標變換如下:
將分子和分母同時擴大或縮小相同倍數,對優化目標是沒有影響的,所以在滿足約束條件的情況下,改變函式間隔並不會影響最優化問題的解,所以可以將分子即函式間隔最小值固定為乙個常數(將gama_hat變成乙個常數後,這個常數同時會對優化目標中的w和約束條件的w形成限制,所以相當於分子分母改變相同倍數),常用1,那麼優化問題就變成了如下:
SVM演算法的理解
距離上次看svm演算法已經快過了半個月了,今天再次看到,溫故知新後決定把自己的理解寫出來。不過由於本人文筆不佳,所以想到什麼寫什麼,等有空了再整理。看到覺得混亂的還請見諒。剛剛看svm的時候,只能明白支援向量機之所以叫支援向量機是因為支援向量,後面懂得了w的內容是什麼 幾何距離的意義 低維對映到高維...
svm的簡單理解
svm是一種訓練機器學習的演算法,可以用於解決分類和回歸問題,同時還使用了一種稱之為kernel trick的技術進行資料的轉換,然後再根據這些轉換資訊,在可能的輸出之中找到乙個最優的邊界。簡單來說,就是做一些非常複雜的資料轉換工作,然後根據預定義的標籤或者輸出進而計算出如何分離使用者的資料。簡單理...
關於SVM的理解
因為參閱 涉及到svm數學原理,故跟著學習了下。先是看了知乎對svm的解釋,其中乙個高票答案看得我一頭霧水,擷取如下 畫第乙個圈的地方就很有誤導性,此處的y與後面的y都不一樣,後面的兩處y都是標記值。應該這麼去理解wt b 這個理解好了再參考 的內容就很容易把svm原理理解了 再談下關於文中 兩條直...