吳恩達《機器學習》課程總結 11 支援向量機

2022-02-23 04:03:28 字數 2537 閱讀 6922

(1)以下是邏輯回歸以及單個樣本的代價函式

(2)首先將使用上圖中紫色的線(稱為cost1或者cost0)的代替曲線,然後將樣本數m去掉,最後將c代替1/λ(可以這麼理解,但不完全是),從而實現邏輯回歸的代價函式到svm的轉換。

(3)svm的輸出將不再是邏輯回歸的概率,而就是0或者1:

(1)首先對z的要求更加嚴格了,在邏輯回歸中只要求大於或小於零,,這裡將會是大於等於1或小於等於-1。

(2)假設c非常大時,我們的優化會盡量時第一項為零,假設可以得到這樣的引數,那麼就可以將代價函式轉換為:

即在後面的約束下求解前面的最小值。

(3)c非常大時(即λ非常小),會盡量去滿足上面的約束,這樣會導致對異常點非常敏感(過擬合),如下所示:

這時將會得到紫色的線,如果將c適當減小,會得到滿意的黑色線的。即c不那麼大時,可以忽略掉一些異常點。

c是懲罰係數,理解為調節優化方向中兩個指標(間隔大小,分類準確度)偏好的權重,即對誤差的寬容度,c越高,說明越不能容忍出現誤差,容易過擬合,c越小,容易欠擬合,c過大或過小,泛化能力變差。

(3)支援向量機經常被稱為最大間距分類器,在c很大時確實如此,但c不是那麼大時,將不是,如上一點的例子所示。但是這麼理解是有助於理解svm的。

(4)c較大相當於λ較小,會出現過擬合;反之則出現欠擬合。

(1)向量的內積:乙個向量投影到另乙個向量投影長度與向量的範數的乘積,也就是對應座標相乘再相加。

(2)目標函式要使得θ盡可能小,這時只要使得x在θ上的投影盡可能的大,就能夠在θ取越小的值時滿足約束條件,這就是svm背後的數學原理。

(3)θ和邊界呈現90°垂直,另外θ0為零時邊界通過原點,反之不通過原點。

(1)如果直接用多項式取擬合下面的邊界的話,肯能需要多項式的次數很高,特徵很多。

(2)利用x的各個特徵與我們預先選定地標(landmark)l(1),l(2),l(3),的近似程度選取新的特徵f1,f2,f3。

上面是乙個高斯核函式,注:這個函式與正態分佈沒什麼實際上的關係,只是看上去像而已。

(3)與地標越近結果f越接近1,越遠f越接近0。

(3)通過一下式子將很容易進行分類:

(4)核函式計算的結果即為新的特徵。

(1)地標的個數設定為樣本數m,即每個樣本的位置即為地標的位置:

(2)將核函式運用到支援向量機中,

給定x,計算新特徵f,當θtf>0時,**y=1,否則反之。

相應的修改代價函式為:

在具體實施過程中,還需要對最後的正則化想微調,在計算

時,用θtmθ代替θtθ。m跟選擇的核函式有關,用相關庫幾塊使用帶核函式的svm。

不帶核函式的svm稱為線性核函式。

(3)以下是支援向量機的兩個引數c和σ的影響:

c=1/λ;

c較大時,相當於λ較小,可能會導致過擬合,高方差;

c較小時,相當於λ較大,可能會導致欠擬合,高偏差;

σ較大時,可能會導致低方差,高偏差。

σ較小時,可能會導致低偏差,高方差。 

2.選擇核心引數或你想要使用的相似函式。

(2)以下是邏輯回歸和支援向量機的選擇:

1.相比於樣本數m,特徵數n大的多的時候,沒有那麼多資料量去訓練乙個非常複雜的模型,這時考慮用svm。

2.如果n較小,而且m大小中等,例如n在1-1000之間,而m在10-1000之間,使用高斯函式的支援向量機。

3.如果n較小,而m較大,例如n在1-1000之間,而m大於50000,則使用支援向量機會非常慢,解決方案是創造增加更多的特徵,然後使用邏輯回歸或不帶核函式的支援向量機。

神經網路在以上三種情況下都可以有較好的表現,但神經網路訓練可能非常慢,選擇支援向量機的原因主要在於它的代價函式是凸函式,不存在區域性最小值。

吳恩達《機器學習》課程總結 19 總結

線性回歸 下面第三行x0 i 其實是1,可以去掉 邏輯回歸 神經網路 寫出前向傳播即可,反向框架會自動計算 pca訓練誤差減去人類最高水平為偏差 欠擬合 交叉驗證集誤差減訓練誤差為方差 過擬合 正則化解決方差問題,不對 0正則化 全過程觀測偏差與方差,所以更全面。找到哪種原因造成誤差最大,最該花時間...

吳恩達《機器學習》課程總結(19)總結

線性回歸 下面第三行x0 i 其實是1,可以去掉 邏輯回歸 神經網路 寫出前向傳播即可,反向框架會自動計算 pca訓練誤差減去人類最高水平為偏差 欠擬合 交叉驗證集誤差減訓練誤差為方差 過擬合 正則化解決方差問題,不對 0正則化 全過程觀測偏差與方差,所以更全面。找到哪種原因造成誤差最大,最該花時間...

吳恩達機器學習筆記 12支援向量機6SVM總結

吳恩達老師課程原位址 用以解決 svm 最優化問題的軟體很複雜,且已經有研究者做了很多年數值優化。因此強烈建議使用高優化軟體庫中的乙個,而不是嘗試自己落實一些框架。有許多好的軟體庫,ng用得最多的兩個是liblinear 和 libsvmnote無論使用使用何種模型進行擬合,原始輸入資料都需要進行歸...