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

2 評(píng)論 4083 瀏覽 31 收藏 7 分鐘

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

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

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

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

我們還是從一個(gè)最為簡(jiǎn)單的示例開(kāi)始講起(二維平面):

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

情況2:與情況1不同的是,上圖中,A、B、C三條線都完整的區(qū)分了邊界,那我們應(yīng)該如何選擇呢?既然能分豆的工具這么多,那我們理所當(dāng)然應(yīng)該找一個(gè)最好的是不是?最佳答案應(yīng)該是B,因?yàn)锽與邊數(shù)據(jù)的距離是最遠(yuǎn)的,之所以選擇邊距最遠(yuǎn)的線,是因?yàn)檫@樣它的容錯(cuò)率更高,表現(xiàn)更穩(wěn)定,也就是說(shuō)當(dāng)我們?cè)俅畏湃敫嗟亩沟臅r(shí)候,出錯(cuò)的概率更小。

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

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

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

處理這類問(wèn)題的辦法就是,將二維平面轉(zhuǎn)化到一個(gè)三維空間,因?yàn)橥诘途S空間下的非線性問(wèn)題,轉(zhuǎn)化到高維空間中,就變成了線性問(wèn)題。比如說(shuō)上面的圖也許就變成了下方的情況。

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

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

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

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

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

簡(jiǎn)單的理解了SVM的原理,我們?cè)賮?lái)了解一下模型的訓(xùn)練過(guò)程。

  1. 被所有的樣本和其對(duì)應(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)勢(shì)以及缺陷,以便進(jìn)一步加深理解。

優(yōu)點(diǎn):

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

缺點(diǎn):

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

相關(guān)閱讀

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

 

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

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

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

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

    來(lái)自江蘇 回復(fù)