第七周筆記:支持向量機SVM
我們要找到(不斷縮小)的代價函數(的導數)。代價函數長這樣:
他的導數就長這樣:
把函數換一種寫法:
我們知道,我們預測有兩個結果,也就是樣本的結果y為1或者為0所以很明顯,分類時就是:y=1時,y=0時就是。
這樣很開心,因為我們的決策邊界從一條線,變成了一個區域。所以這玩意又稱為大間距分類器。
大間距分類器有個好處,可以自動忽視異常值(區域內值)。
核函數:
好多人搞不明白為毛要用核函數。其實很好理解。我舉個例子你就理解了。
假設現在我在地板上畫了一條線,然後扔了兩張紙在地上,讓你判斷紙在線的左邊呢,還是在右邊。
由於紙張壓線了,或者兩張紙舉例不一樣,你估計會一臉蒙蔽。於是要找個方法對吧,那就把紙張摺疊一些,用我優雅的摺紙技術把這張紙折成了一個球。再扔到線上。
這次由於紙折成了球,你相對於紙張整個壓在線上,就更容易判斷現在紙在左邊還是右邊了。核函數,就是類似於這個例子里摺紙,當然,紙就是你的特徵量咯……
實際操作中和這個例子還是有很大區別的,比如幾張紙之類的……(手動滑稽)。
回到正題。
現在我們定義一個新的特徵量l。l和x都是特徵量,為了讓他們共同預測結果,我們要對其建立一個新的函數關係式以形成cost函數。
當然……你(的摺紙方法)寫成 x-l 或者 x / l 也沒人攔得住你,不過一般情況下,我們選擇高斯核函數:
這裡,當x與l越接近,f越接近1.x與l差距越大,f越接近0.
嗯,猜對了,實際處理SVM問題,核函數的意義就在於替換那個x為f。
實際問題中,是否選擇SVM可以如下考慮:
n多,甚至大於m時,用邏輯回歸或者無核SVM。
n小時,用高斯核函數處理特徵量後的SVM。
n非常小,而m非常大時,也許需要增加更多的特徵量(n是特徵量數,m是數據數量),而由於數據很多,出於計算速度考慮的話,可以用邏輯回歸或者無核SVM。
如果電腦夠好,不需要考慮計算速度,在此之上可以使用神經網路。(神經網路很早以前就有了,近幾年火主要是因為計算機計算能力提升)
推薦閱讀: