初識支持向量機

在學習機器學習的時候,當學到支持向量機的時候可能會有一點懵了,這篇文章主要是像大家介紹一下支持向量機的思想,不會有過多的數學。在介紹之前,先看一個非常有意思的故事,故事來源於知乎,原文鏈接,故事是這樣的:

在很久以前的情人節,大俠要去救他的愛人,但魔鬼和他玩了一個遊戲。

魔鬼在桌子上似乎有規律放了兩種顏色的球,說:「你用一根棍分開它們?要求:盡量在放更多球之後,仍然適用。」

於是大俠這樣放,乾的不錯?

然後魔鬼,又在桌上放了更多的球,似乎有一個球站錯了陣營。

SVM就是試圖把棍放在最佳位置,好讓在棍的兩邊有儘可能大的間隙。(支持向量計演算法的核心思想)

現在即使魔鬼放了更多的球,棍仍然是一個好的分界線。

然後,在SVM 工具箱中有另一個更加重要的 trick。 魔鬼看到大俠已經學會了一個trick,於是魔鬼給了大俠一個新的挑戰。

Advertisements

現在,大俠沒有棍可以很好幫他分開兩種球了,現在怎麼辦呢?當然像所有武俠片中一樣大俠桌子一拍,球飛到空中。然後,憑藉大俠的輕功,大俠抓起一張紙,插到了兩種球的中間。(支持向量機演算法的核技巧,用來解決非線性分類問題)

現在,從魔鬼的角度看這些球,這些球看起來像是被一條曲線分開了。

再之後,無聊的大人們,把這些球叫做 「data」,把棍子 叫做 「classifier」, 最大間隙trick 叫做「optimization」, 拍桌子叫做「kernelling」, 那張紙叫做「hyperplane」。

看完這個故事後大家應該對於支持向量機演算法的核心思想有所了解了,在介紹支持向量機演算法之前,我們需要先明確兩個問題,當然這也是每一種機器學習演算法需要解決的兩個問題,如果搞懂這兩個問題,你也就理解了這個演算法:

Advertisements

1、在學習機器學習演算法之前,先要了解演算法的核心思想(目標函數)是什麼?像之前的感知器演算法,演算法的目的是保證預測值與實際值之間的平方差誤差最小,在邏輯斯蒂回歸中,演算法的目的是保證所預測的類別的概率最大。

2、如何來獲取目標函數,在邏輯斯蒂回歸演算法中,我們通過極大似然估計來使得預測類別的概率最大,求出了代價函數,然後通過梯度下降演算法來優化代價函數。

這篇文章,我們主要介紹支持向量演算法的核心思想。

下面,我們先看一張圖

上面四幅圖中,直線都能夠將三角形和正方形分割開來,那麼我們應該選擇哪種方法最合理呢?想想,如果在三角形或者正方形中有雜訊數據,靠近直線的位置多了幾個點,那麼很可能造成三角形被分到了正方形的一邊,而正方形被分到三角形的一邊,從四幅圖中看來,貌似第4幅圖的抗干擾(魯棒性)最強。這就是支持向量演算法的核心思想,希望找到離超平面(圖中的紅線)最近的點,確保它們離超平面儘可能的遠。第四幅圖中藍色線上的三角形和四邊形就被叫做支持向量(support vector)。而我們的目的就是要最大化支持向量到超平面的距離。在下一篇文章中,將會介紹如何來求出我們需要優化的目標函數,並通過拉格朗日和KKT來求解。

Advertisements

你可能會喜歡