標籤:

吳恩達機器學習第七周課後感

目錄

一、主要內容

二、個人感受

三、實際應用

正文

一、主要內容

1.Support Vector Machines

《Large Margin Classification》

Optimization Objective

Support Vector Machine:支持向量機代價函數=min_	heta Csum_{i=1}^mleft[y^{(i)}cost_1(	heta^T x^{(i)})+(1-y^{(i)})cost_0 (	heta^Tx^{(i)})
ight]+frac{1}{2}sum^n_{i=1}	heta^2_j

邏輯回歸可以在兩個情況下,分別被改造成兩個ReLU函數。支持向量機就是被改造的邏輯回歸類似,不過沒有m值。 支持向量機與邏輯回歸還有一個非常大的不同是支持向量機最終的輸出並非概率,而是準確的答案。

Large Margin Intuition

Large Margin Classifier:大間距分類器,可以在兩個群之間畫出一條線,並且使該線同時與兩個群之間的距離最大。

在求支持向量機的代價函數最小值的時候,當y=1時,我們希望x大於等於1;當y=0時,我們希望x小於等於-1。當常亮C非常大的時候,我們優化了代價函數,其結果可以在兩個群之間畫出一條剛剛好的分割線。

Mathematics behind Large Margin Classification

假設我們有兩個向量u和v,求出二者之間的內積。同時,內積等於其中一個向量的範數與其對另一個向量的映射。弄清楚這個概念,對之後的分析會很有幫助。將兩組參數和輸入值轉換成為向量,在一個展開式中,剛好表達了求兩個向量內積的方程,同時他們剛好等於參數的範數和輸入值在參數向量上的映射。由於範數和映射乘積的特性,支持向量機可以非常好的做到在兩組不同樣本之間做到分割。我們必定是希望範數最小,從而樣本在向量上的映射必定是越大越好,也就是Large Margin形成的原因。

《Kernels》

Kernels

kernel:核函數,有種抽象的映射關係。

畫出一條非線性判斷邊界首先會被想到的演算法是多次方方程。然而,在計算複雜問題的時候,這個方法計算量會無比巨大,非常恐怖。首先,在案例中,我們首先了解到使用高斯核函數分別計算三個標記點的相似性。最後算出結果,上面兩個標記點的高斯核函數剛好包含了我們所需要的分類,從而做到了決策邊界。

案例中選用的相似性核函數是高斯核函數。具體的使用過程是,先將所有的樣本都設定為標記點。我們可以將這些被標記點的核函數打包成矩陣,形成一個特徵向量。假設所有的函數都是有理數,可以預測當函數大於等於零的時候,y=1。支持向量機和核函數在一起工作的效率遠遠高於邏輯回歸和核函數在一起工作的效率。

為支持向量機選擇參數的時候,必定會存在變差和方差之間的選擇。當常數C大的時候,偏差小,方差大。常數C小的時候,偏差大,方差小。 sigma^2 大的時候偏差大,方差小。sigma^2 小的時候偏差小,方差大。

《SVMs in Practice》

Using an SVM

在python數據處理中,sklearn是最知名的庫之一,在這個庫中SVM已經被打包好,因此不需要我們重新造輪子。在使用演算法的時候,參數和核函數的選擇我們需要注意。其中最常用的是線性和高斯核函數。多項分類中,大多數的庫已經有了內置的函數,或者我們可以用邏輯回歸中使用的one-vs.-all方法來進行分類。當特徵少,數據並不多的時候,使用高斯核函數的SVM效果在所有演算法里表現最好。在保證數據充足的時候,不論特徵多少,線性SVM和邏輯回歸都有不錯的表現。

二、個人感受

我再一次感受到了吳恩達對於整個機器學習知識體系的了解。支持向量機的概念,他通過非常簡單的語言就把整個概念給傳遞出來了。我竟然也真的在學習了這次課程之後,給同事講清楚了。支持向量機的理念真的非常簡單明了,如果深度學習的理念也能這麼簡單明了,或許就不會有今年的年度撕逼了。

三、實際應用

支持向量機和邏輯回歸一樣,在分類問題中基本成為了工業界的標配。基本上邏輯回歸可以處理的問題,支持向量機也可以,只不過效果可能會稍差一些。支持向量機在絕大多數情況下可以作為邏輯回歸的檢驗器,二者相輔相成,不失為一種保障準確率的好方法。

回到支持向量機,在理解了背後邏輯之後,我開始有了一種妄念,或許在演算法效果不好的時候,我也許能自己改輪子(造輪子就算了,曠日持久)。除了機器學習領域,其實在計算機的其他領域改輪子應該也是一種非常好的學習方法。當然,第一步是理解輪子。


推薦閱讀:

《機器學習基石》課程學習總結(一)
機器學習 - EM演算法
Python基礎_103.數據結構與演算法_查找
優化演算法總結
機器學習導論——Day8、9

TAG:機器學習 |