AI產品經理必懂算法:支持向量機SVM
作為AI產品經理必懂算法的第二篇,來了解一下支持向量機SVM算法,英文全稱是“Support Vector Machine”。在機器學習中,SVM是監督學習下的二分類算法,可用于分類和回歸任務。
首先我們來玩兒一個分豆子的經典游戲,可以想象一堆的紅豆、綠豆,散布在一個高維空間中,豆子的特征有多少,空間的維數就有多少。相應的,各個豆子的位置就是其對應各特征的坐標值。如果想盡可能完美地一下把豆分開,SVM就是用來找到分豆神器的方法,換個比較專業的說法就是尋找最優的“超平面”。
備注:超平面是純粹的數學概念,不是物理概念,它是平面中的直線、空間中的平面的推廣,只有當維度大于3,才稱為“超”平面。
SVM的核心任務就是:構建一個N-1維的分割超平面來實現對N維樣本數據放入劃分,認定的分隔超平面兩側的樣本點分屬兩個不同類別。
我們還是從一個最為簡單的示例開始講起(二維平面):
情況1:請大家觀察一下,A、B、C三條直線哪一條才是正確的分類邊界呢?顯而易見,只有A“完整”的區分了兩種數據的決策邊界。
情況2:與情況1不同的是,上圖中,A、B、C三條線都完整的區分了邊界,那我們應該如何選擇呢?既然能分豆的工具這么多,那我們理所當然應該找一個最好的是不是?最佳答案應該是B,因為B與邊數據的距離是最遠的,之所以選擇邊距最遠的線,是因為這樣它的容錯率更高,表現更穩定,也就是說當我們再次放入更多的豆的時候,出錯的概率更小。
那么由此推導出,SVM的分類方法,首先考慮的是正確分類;其次考慮的優化數據到邊界的距離。
接下來更麻煩的情景出現了,請看下圖,這堆豆子要怎么分?如果這是在一個二維平面上,這些豆子應該用一條什么線來劃分呢?
難道我們真的要在畫一條無限曲折的線去劃分嗎?如果再怎樣曲折還是無法區分又該怎么做呢?這就是線性不可分的情況,其實在現實生活中,大量的問題都線性不可分,而SVM正是處理這種線性不可分情況的好幫手。
處理這類問題的辦法就是,將二維平面轉化到一個三維空間,因為往往在低維空間下的非線性問題,轉化到高維空間中,就變成了線性問題。比如說上面的圖也許就變成了下方的情況。
如上圖所示,即三維樣本數據被二維平面劃分,在二維空間中的不可分問題也被轉換成了三維線性可分問題,可以被支持向量機處理?;谶@個思想,SVM采用核函數來實現低維空間到高維空間的映射,從而在一定程度上解決了低維空間線性不可分的問題。
下面我們簡述一下關于核函數的定義,以利于進一步理解他的作用。
核函數:任意兩個樣本點在擴維后的空間的內積,如果等于這兩個樣本點在原來空間經過一個函數后的輸出,那么這個函數就叫核函數。
作用:有了這個核函數,以后的高維內積都可以轉化為低維的函數運算了,這里也就是只需要計算低維的內積,然后再平方。明顯問題得到解決且復雜度極大降低??偠灾?,核函數它本質上隱含了從低維到高維的映射,從而避免直接計算高維的內積。
常用的核函數有如下一些:例如線性核函數、多項式核函數、徑向基核函數(RBF)、高斯核函數、拉普拉斯核函數、sigmoid核函數等等。
簡單的理解了SVM的原理,我們再來了解一下模型的訓練過程。
- 被所有的樣本和其對應的分類標記交給算法進行訓練。
- 如果發現線性可分,那就直接找出超平面。
- 如果發現現行不可分,那就映射到n+1維的空間,找出超平面。
- 最后得到超平面的表達式,也就是分類函數。
最后,我們要了解的是SVM的優勢以及缺陷,以便進一步加深理解。
優點:
- 效果很好,分類邊界清晰;
- 在高維空間中特別有效;
- 在空間維數大于樣本數的情況下很有效;
- 它使用的是決策函數中的一個訓練點子集(支持向量),所以占用內存小,效率高。
缺點:
- 如果數據量過大,或者訓練時間過長,SVM會表現不佳;
- 如果數據集內有大量噪聲,SVM效果不好;
- SVM不直接計算提供概率估計,所以我們要進行多次交叉驗證,代價過高。
相關閱讀
本文由 @燕然未勒 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自 Unsplash ,基于 CC0 協議。
我覺得作者真的夠用心,通俗易懂,還連優缺點都說明白了~AI產品經理必備!
感謝分享~