Stanford機器學習課程筆記 SVM

2021-06-28 11:46:33 字數 2101 閱讀 1194

stanford機器學習課程筆記——svm

前面已經學習過svm,寫了幾片博文,如下:

入門svm:

svm中的線性不可分情況:

svm中的多類分類問題:

如何使用sklearn中的svm:

這一篇就來把上面學習的過程融合成乙個整體。

svm分類器不是憑空而出的,它是和我們前面講到的lr回歸模型有關係的。或者說就是從lr回歸模型中的代價函式改進而來的。我們知道lr回歸模型的代價函式j定義為:

這個代價函式中是依據log函式建立的,而log函式曲線發現,如果thetat*x>=1或者thetat*x

<=-1,log函式值是不為0的,而我們需要的理想情況是當thetat*x>>1或者thetat*x

那麼我們就需要在lr的代價函式中修改形式,如下:

第乙個公式是lr的代價函式,第二個是svm的代價函式。除了log函式被cost函式替代之外,後面的正則項也稍微變化,1/m被約去了,lambda被提到前面成為了c,這個c一般要設定地很大,這樣子的svm才能夠找到最大間隔的超平面。

既然c要設定地很大,那麼svm的代價函式中的第一項的懲罰就很高,在轉換過程中,當thetat*x>=1或者thetat*x<=-1的時候,

我們可以將其忽略。這樣,轉換之後的svm的目標函式就是:

具體轉換的過程,在我之前的入門svm一篇博文中已經涉及,這裡主要將講思路。

2. 解svm模型的目標函式

解上面的目標函式,我們就需要使用拉格朗日函式。如下:

對於這個函式,我們使用對偶問題和kkt條件來求解,進一步轉換為:

(這個轉換過程是通過拉格朗日函式對w和b求偏導,令偏導等於0,之後代入到上面拉格朗日函式中得到的。。。)

發現這個裡面只有乙個引數a,那麼我們就直接求解這個引數就可以了,而svm模型中的w和b都是可以通過a來表示得到的,如下:

而求解引數a,我們使用的是smo演算法,這個演算法很巧妙,可以快速求得svm模型中的引數a,其基本思想如下:

smo的工作原理是:每次迴圈中選擇兩個alpha進行優化處理,一旦找到一對合適的alpha,那麼就增大其中乙個,同時減小另乙個。選擇的alpha要滿足在間隔邊界之外的條件,而且還沒有進行過區間化處理或者不再邊界上。

額,確實比較難懂。。。我也就沒有太深究這塊兒,有時間還是可以深入進去理解的。

這樣我們就可以學習到乙個svm分類模型了。

線性不可分的情況,我在前面的博文中也講到過,這裡我們只說一下其中最核心的思想?

如何解決svm的線性不可分問題:引入核函式;

核函式的基本做法是什麼?核函式就是把樣本原始的線性不可分的特徵隱式對映到乙個高維空間中,使得樣本的相關特徵被分開,這樣在新空間中樣本的特徵是可分的。

核函式中最關鍵的一步是什麼?就是核函式是隱式對映到高維空間的,在svm中要做樣本的內積運算,一般做法就是先把樣本顯式對映到高維空間,然後再做內積運算,但是這樣子會造成維數災難。而核函式是隱式對映,是先在核函式中求內積的,這個時候內積就是在輸入空間中求的,不需要寫出顯示對映之後的結果,也就不怕維數災難了。

這部分也參考我們之前的博文,裡面給出了幾個擴充套件改進的思路。其中one-one 和 one-other也常用到的兩種。

參考:

stanford 機器學習筆記

個 史丹福大學機器學習課程個人學習筆記 上 zip 史丹福大學機器學習課程個人學習筆記 下 zip 一併附上原始講義 史丹福大學機器學習課程原始講義.zip 說明 部落格上很多提出的問題,我難以回答,因為我水平確實有限,更深層次的內容最好找相關大牛諮詢和相關 研讀。如果有想在我這個版本基礎上再新增自...

Stanford機器學習系列之一 機器學習基本概念

機器學習 arthur samuel,1959 在確定程式設計之外給予計算機學習能力的研究領域。機器學習 tom mitchell,1998 如果電腦程式對於任務t的效能度量p通過經驗e得到了提高,則認為此程式對e進行了學習。監督學習 包括回歸 連續性問題 值或目標變數是連續的 分類 離散性問題 值...

FPGA機器學習之stanford機器學習第三堂1

請注意 csdn那邊的部落格因為那邊審核的時間太長。搬遷入這裡。stanford機器學習前2堂在csdn的部落格裡面。剛開始他寫了,這個公式第二堂講的,是梯度下降法,房價的那個。如果完全擬合的話,並不能說明你擬合的很好,也有可能是你的資料樣本採集的不正確。過擬合就是說,僅僅是擬合了某種特定狀況的行為...