AI產(chǎn)品經(jīng)理必懂算法:支持向量機(jī)SVM

2 評論 4085 瀏覽 31 收藏 7 分鐘

作為AI產(chǎn)品經(jīng)理必懂算法的第二篇,來了解一下支持向量機(jī)SVM算法,英文全稱是“Support Vector Machine”。在機(jī)器學(xué)習(xí)中,SVM是監(jiān)督學(xué)習(xí)下的二分類算法,可用于分類和回歸任務(wù)。

首先我們來玩兒一個分豆子的經(jīng)典游戲,可以想象一堆的紅豆、綠豆,散布在一個高維空間中,豆子的特征有多少,空間的維數(shù)就有多少。相應(yīng)的,各個豆子的位置就是其對應(yīng)各特征的坐標(biāo)值。如果想盡可能完美地一下把豆分開,SVM就是用來找到分豆神器的方法,換個比較專業(yè)的說法就是尋找最優(yōu)的“超平面”。

備注:超平面是純粹的數(shù)學(xué)概念,不是物理概念,它是平面中的直線、空間中的平面的推廣,只有當(dāng)維度大于3,才稱為“超”平面。

SVM的核心任務(wù)就是:構(gòu)建一個N-1維的分割超平面來實現(xiàn)對N維樣本數(shù)據(jù)放入劃分,認(rèn)定的分隔超平面兩側(cè)的樣本點分屬兩個不同類別。

我們還是從一個最為簡單的示例開始講起(二維平面):

情況1:請大家觀察一下,A、B、C三條直線哪一條才是正確的分類邊界呢?顯而易見,只有A“完整”的區(qū)分了兩種數(shù)據(jù)的決策邊界。

情況2:與情況1不同的是,上圖中,A、B、C三條線都完整的區(qū)分了邊界,那我們應(yīng)該如何選擇呢?既然能分豆的工具這么多,那我們理所當(dāng)然應(yīng)該找一個最好的是不是?最佳答案應(yīng)該是B,因為B與邊數(shù)據(jù)的距離是最遠(yuǎn)的,之所以選擇邊距最遠(yuǎn)的線,是因為這樣它的容錯率更高,表現(xiàn)更穩(wěn)定,也就是說當(dāng)我們再次放入更多的豆的時候,出錯的概率更小。

那么由此推導(dǎo)出,SVM的分類方法,首先考慮的是正確分類;其次考慮的優(yōu)化數(shù)據(jù)到邊界的距離。

接下來更麻煩的情景出現(xiàn)了,請看下圖,這堆豆子要怎么分?如果這是在一個二維平面上,這些豆子應(yīng)該用一條什么線來劃分呢?

難道我們真的要在畫一條無限曲折的線去劃分嗎?如果再怎樣曲折還是無法區(qū)分又該怎么做呢?這就是線性不可分的情況,其實在現(xiàn)實生活中,大量的問題都線性不可分,而SVM正是處理這種線性不可分情況的好幫手。

處理這類問題的辦法就是,將二維平面轉(zhuǎn)化到一個三維空間,因為往往在低維空間下的非線性問題,轉(zhuǎn)化到高維空間中,就變成了線性問題。比如說上面的圖也許就變成了下方的情況。

如上圖所示,即三維樣本數(shù)據(jù)被二維平面劃分,在二維空間中的不可分問題也被轉(zhuǎn)換成了三維線性可分問題,可以被支持向量機(jī)處理?;谶@個思想,SVM采用核函數(shù)來實現(xiàn)低維空間到高維空間的映射,從而在一定程度上解決了低維空間線性不可分的問題。

下面我們簡述一下關(guān)于核函數(shù)的定義,以利于進(jìn)一步理解他的作用。

核函數(shù):任意兩個樣本點在擴(kuò)維后的空間的內(nèi)積,如果等于這兩個樣本點在原來空間經(jīng)過一個函數(shù)后的輸出,那么這個函數(shù)就叫核函數(shù)。

作用:有了這個核函數(shù),以后的高維內(nèi)積都可以轉(zhuǎn)化為低維的函數(shù)運算了,這里也就是只需要計算低維的內(nèi)積,然后再平方。明顯問題得到解決且復(fù)雜度極大降低??偠灾撕瘮?shù)它本質(zhì)上隱含了從低維到高維的映射,從而避免直接計算高維的內(nèi)積。

常用的核函數(shù)有如下一些:例如線性核函數(shù)、多項式核函數(shù)、徑向基核函數(shù)(RBF)、高斯核函數(shù)、拉普拉斯核函數(shù)、sigmoid核函數(shù)等等。

簡單的理解了SVM的原理,我們再來了解一下模型的訓(xùn)練過程。

  1. 被所有的樣本和其對應(yīng)的分類標(biāo)記交給算法進(jìn)行訓(xùn)練。
  2. 如果發(fā)現(xiàn)線性可分,那就直接找出超平面。
  3. 如果發(fā)現(xiàn)現(xiàn)行不可分,那就映射到n+1維的空間,找出超平面。
  4. 最后得到超平面的表達(dá)式,也就是分類函數(shù)。

最后,我們要了解的是SVM的優(yōu)勢以及缺陷,以便進(jìn)一步加深理解。

優(yōu)點:

  • 效果很好,分類邊界清晰;
  • 在高維空間中特別有效;
  • 在空間維數(shù)大于樣本數(shù)的情況下很有效;
  • 它使用的是決策函數(shù)中的一個訓(xùn)練點子集(支持向量),所以占用內(nèi)存小,效率高。

缺點:

  • 如果數(shù)據(jù)量過大,或者訓(xùn)練時間過長,SVM會表現(xiàn)不佳;
  • 如果數(shù)據(jù)集內(nèi)有大量噪聲,SVM效果不好;
  • SVM不直接計算提供概率估計,所以我們要進(jìn)行多次交叉驗證,代價過高。

相關(guān)閱讀

AI產(chǎn)品經(jīng)理必懂算法:k-近鄰(KNN)算法

 

本文由 @燕然未勒 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自 Unsplash ,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 我覺得作者真的夠用心,通俗易懂,還連優(yōu)缺點都說明白了~AI產(chǎn)品經(jīng)理必備!

    回復(fù)
  2. 感謝分享~

    來自江蘇 回復(fù)