作為模式識別或者機器學習的愛好者,同學們一定聽說過支持向量機這個概念,這可是一個,在機器學習中避不開的重要問題。
其實關于這個知識點,有一則很通俗有趣的傳說:
很久以前,一個村莊里住著一位退隱的大俠,相傳大俠的劍法非常高明。
在一個月黑風高的夜晚,魔鬼抓走了大俠的妻子。大俠取出塵封多年的劍,來到魔鬼的城堡要救他的妻子。但是魔鬼卻提出要求,要和他玩一個游戲。
魔鬼在桌子上放了兩種顏色的球,說:“用你手中的劍分開它們,要求是盡量在放更多球之后,仍然適用。”
大俠拔出利劍一揮,桌上出現一道裂痕,準確地分開了兩種球。
然后魔鬼又在桌上放了更多的球,大俠如法炮制,手起刀落,雖然有一個球沒有準確劃分,但依然干得漂亮。
大俠發現,劍痕的***位置,就是讓劍痕離兩邊的球都有盡可能大的間隙。
有了這樣的思想,現在即使魔鬼放了再多的球,就仍然能夠很好地劃出分界線。
當然,魔鬼不會善罷甘休,于是把一堆球隨手一扔:把它們分開。
大俠看到這樣擺放的球,也是有點懵逼的。就在魔鬼開啟嘲諷模式時,大俠想到了新的辦法。
他左手在桌上一拍,球飛到空中。然后,凌空騰起,用手中的劍劃出一道光波,恰好穿過兩種球的中間。
從魔鬼的角度看這些球,它們看起來像是被一條曲線分開了。
大俠救回了妻子,然后故事在村里傳開了,并被杜撰成了美麗的故事。也就成了現在的支持向量機傳說。
聽完這個故事,是不是對支持向量機有了一些更加感性的認知?
今天,班主任就來給大家詳細講一講線性支持向量機問題。
支持向量機SVM
支持向量機(Support Vector Machine,以下簡稱SVM)主要用于解決模式識別領域中的數據分類問題,它屬于有監督學習算法的一種。
SVM要解決的問題可以用一個經典的二分類問題加以描述,也就是我們在開頭講的那則傳說。如圖a所示,在二維坐標中有一堆紅色的球和藍色的球,能否用一條直線將它們分開呢?顯然是可以的,而且滿足這一條件的直線也顯然不止一條。
這類問題在模式識別領域稱為線性可分問題。
支持向量
圖b和c分別給出了兩種不同的分類方案,其中黑色實線為分界線,稱為“決策面”。
不同的分類器(比如說決策樹、神經網絡,邏輯回歸)會給出不同的分類邊界,而它們都是在找一個“***的”的決策邊界。SVM的意義也是如此。
以圖(b)為例,虛線的位置由決策面的方向和距離決策面最近的幾個樣本的位置決定。兩條虛線之間的垂直距離,就是這個決策面對應的分類間隔。
顯然,每一個可能把數據集正確分開的方向都有一個***決策面。而不同方向***決策面,它們的分類間隔通常是不同的。那個具有“***間隔”的決策面就是SVM要尋找的***解。而這個***解對應的兩側虛線所穿過的樣本點,就是SVM中的支持樣本點,稱為支持向量。
回到圖(b)中的數據,A決策面就是SVM尋找的***解,而相應的三個位于虛線上的樣本點,在坐標系中對應的向量就叫做支持向量。
***決策邊界
那么如何判斷一個決策邊界好呢?讓我們來看一下SVM的關鍵假設:決策邊界兩邊最近的樣本到決策邊界的間隔***,此時的決策邊界為***決策邊界。
間隔
以上舉例為二維平面中的例子。而在樣本空間中,劃分超平面可通過如下線性方程來描述:
其中w為法向量,決定了超平面的方向;b為位移量,決定了超平面與原點的距離。而對于訓練樣本(xi,yi),則滿足以下公式:

公式(2)稱為***間隔假設,yi=+1 表示樣本為正樣本,yi=−1 表示樣本為負樣本。
再經過一系列的變形,可以求出間隔的最終表達式

間隔***化
SVM的思想是使得間隔***化,也就是:

顯然,***化 2||w|| 相當于最小化 ||w||,公式(6)可以轉化成:

公式(7)即為支持向量機的基本型。
對偶問題的解決方法——拉格朗日乘子式
看到這類帶約束的最小值問題,很自然我們想到了拉格朗日乘子法。
由此最終求解可以得到模型:

從這個結論里我們可以看出支持向量機的重要特征:當訓練完成后,大部分樣本都不需要保留,最終模型只與支持向量有關。
應用場景
近年來SVM已經在圖像識別、信號處理、基因圖譜識別等方面得到了廣泛的應用,例如在無人駕駛技術中,需要對路面箭頭指示進行識別,這里就用到了SVM。
又比如,方向梯度直方圖(Histogram of Oriented Gradient, HOG)特征是一種在計算機視覺和圖像處理中,進行物體檢測的特征描述子。如今,HOG特征結合SVM分類器已經被廣泛應用于圖像識別中,尤其是在行人檢測中,獲得了極大的成功。
支持向量機 VS 深度學習
SVM和深度學習(DeepLearning,以下簡稱DL)相比,有哪些特點和適用場景呢?
一般來說,SVM在解決中小數據規模(相對少)、非線性(懲罰變量)、高維(核函數)模式識別方面,具有較大的優勢。DL處理的對象主要為圖像和聲音,其優勢在于對原始特征的表示。
但是神經網絡相當于一個黑盒模型,在一些關鍵的應用場合,會有較高的風險。
例如在智能醫療方面,一個醫生使用了基于深度學習的系統,卻由于神經網絡的“黑盒”特性,無法向患者解釋診斷原理,那用戶極有可能會因為高風險而拒絕。