深度講解支持向量機背後的數學思想

2021-01-07 AI火箭營

在支持向量機(support vector machine,SVM)算法中,有諸多數學思想。學習SVM是一個非常好的實踐數學思想的過程,為我們以後創新解決問題思路提供了啟發。

在卷積神經網絡興起之前,在機器學習界一直是非常受追捧的算法,不光是因為其有良好的泛化能力、很高的準確度,更是因為其完備的數學理論依據以及諸多較難理解的數學知識。這兩點讓人們覺得SVM是一個很精妙很酷的算法!所以在實際應用也非常多。

本文從頭到尾闡述SVM從建模到求解過程中的數學思想,我們發覺SVM建模的出發點是非常簡單的,通過了解其數學思想,對其一步一步為什麼、怎麼應用各種數學思想方法,變得越來越複雜的整個過程就有了非常清晰的了解。更重要的,我們對科學建模過程也有了充分了解,便於我們以後進行各種創新設計。SVM主要概括為:

理解SVM問題是通過簡單的直覺和嚴謹的數學來約束最小化問題。 SVM問題應用拉格朗日方法來解決約束優化問題。 為了找到不同類別點之間最寬的間隔,最大化問題僅取決於點積。其背後的數學思想概括有下邊要講的四點,本文詳細分析之。

幾何思想:簡單直覺的理解世界

SVM出發點是非常直覺的,那就是把二分類問題放到幾何上理解。

SVM最初的問題是:把二分類問題轉化為在二維空間中,找到最佳分隔線,如下圖所示:

這個分隔線怎麼找才最好,最直覺的思想就是"不偏不倚",與兩類樣本點的邊界保持相等的最遠的距離。

這是一個非常直覺、非常樸素的直觀感覺!作為一個比較難理解的算法,SVM發點竟然如何簡單!這也給我們一個啟發,那就是對於現實世界問題建模,剛開始一定要追求極簡原則、直覺原則,為什麼呢?因為越是簡單,越容易檢驗正確與否,類似於幾何中公理一樣。

接下來,我們繼續演繹,那就是在幾何上,怎麼表達"不偏不倚"?很顯然,再一次直覺感知,那就是最大化間隔。

我們希望找到這樣一個決策邊界,這個邊界距離兩類數據點最遠。更進一步的,是距離兩類數據點的邊界最遠,所以定義最接近邊界的數據點定義為支持向量。最後,我們的目標變為找到這樣一個直線(多維叫超平面),它與支持向量有最大的間隔。

抽象思維:由實際問題建模的數學思想

抽象思維,是由實際問題抽象為數學模型的非常重要的思想。

剛才我們已經把問題用幾何說清楚了,接下來,仍然是用幾何求解。為了表達這個距離(間隔),需要把現實世界中的這類問題抽象共性表達。所以我們進行若干設定:

設這個平面用g(x)=0來表示,其法向量用w表示 點與平面實際距離為r 點與平面的距離可以用g(x)的絕對值來度量(稱為函數間隔)

如上圖所示,點x可以表示為:

這是g(x)為正的情況,點x在平面一側。

我們的目標就是求r最大化。函數間隔的取值並不影響最優解,假設將w,b按比例擴大a倍,函數間隔變為ag(x),分母也變為原來的a 倍,上下抵消。對目標函數沒有影響 ,因此為優化方便我們設函數間隔為 1。

也意味著,支持向量邊界被設定為g(x)=±1,即間隔面。最後,間隔變為:

同時我們的約束是:

最後抽象後的數學問題變為:

懲罰函數(因子):提升系統的魯棒容錯能力

懲罰函數亦稱處罰函數,是一類制約函數。對於約束非線性規劃它的制約函數稱為懲罰函數,係數稱為懲罰因子 。是數學中非常重要的一種處理方法。

引入懲罰因子C的SVM(軟間隔支持向量機)的目標函數為:

這個做法非常精妙,體現非常精妙神奇的數學思維。

為什麼要引入C?要理解參數C的意義,先要理解ξ的意義。如下圖所示,

當樣本點越過本類樣本點的邊界時,

時,點在分離超平面與本側間隔面之間;

時,點在超平面上;

時,點在分離超平面與另一側間隔面之間;

時,點在分離超平面誤分一側。

所以,設置C就是為了對這些在邊界地帶誤分的點,而這些點在現實世界是天然存在的,如果對於他們不進行容錯(對應硬間隔支持向量機),那麼我們是無論如何也不能把樣本分開的。而引入懲罰因子,目的就是,對這類誤分的樣本進行容錯,相當於把點拉到正確一側。

具體分析之,我們要最小化目標函數:

①當C很大時,ξ趨近於0,結合上圖和上邊的解釋,分離超平面被邊界的點朝相反類別一側擠壓,換句話說:懲罰很大,容忍度很低,錯分較少,對樣本的擬合性較好,但容易過擬合;

②C的變小時,ξ開始變大,結合上圖和上邊的解釋,處於兩個間隔面之間的點(甚至另一側)變多,錯分較多,對樣本的擬合性下降。

所以要權衡折中。

轉化思想:轉化為容易解決的問題

轉化思想,是數學中最為靈魂、最為常用的思想。

這裡主要講的對於SVM目標函數求解用到了拉格朗日對偶與KKT條件,如果不太了解拉格朗日對偶與KKT條件,可以參考本頭條號文章《深入講解強弱對偶理論與KKT條件》視頻《形象直觀理解KKT條件》。

我們已經得到SVM的目標函數(以硬間隔為例):

對於求解不等式約束的問題,我們轉化為求其對偶問題,這個對應的對偶問題是:

其中

最終我們得到目標函數如下,由我個變量變為只有一個變量:

核思想:升維的同時避免維度災難帶來的複雜計算

目標函數中有點積:

不僅如此,因為決策函數還取決於支持向量和新樣本的點積:

這意味著如果我們使用將數據映射到更高維度空間的映射函數,那麼最大化和決策函數取決於不同樣本的映射函數的點積,那麼我們只需要知道K而不是映射函數本身。這就是核函數,它降低了尋找映射函數的複雜性。核函數定義了轉換空間中的內積。

對於核函數的透徹理解,請參考本頭條號另一文章《透徹形象理解核函數》,本文僅以高斯核函數作為舉例,推導其映射函數:

其映射函數為:

可以映射到無窮維。看核函數,注意到它取決於兩點之間的歐幾裡德距離,即如果兩個矢量更接近則該項很小。由於方差總是正的,這意味著對於更接近的向量,其值更大。當伽馬參數高時,核函數的值將更小,即使對於非常靠近兩個樣本,這可能導致複雜的決策邊界或引起過度擬合。如下圖所示:

相關焦點

  • 從零推導支持向量機 (SVM) | 雷鋒網
    摘要支持向量機 (SVM) 是一個非常經典且高效的分類模型。但是,支持向量機中涉及許多複雜的數學推導,並需要比較強的凸優化基礎,使得有些初學者雖下大量時間和精力研讀,但仍一頭霧水,最終對其望而卻步。本文旨在從零構建支持向量機,涵蓋從思想到形式化,再簡化,最後實現的完整過程,並展現其完整思想脈絡和所有公式推導細節。本文力圖做到邏輯清晰而刪繁就簡,避免引入不必要的概念、記號等。此外,本文並不需要讀者有凸優化的基礎,以減輕讀者的負擔。對於用到的優化技術,在文中均有介紹。
  • 形象講解支持向量機
    支持向量機(SVM)是由分離超平面的判別分類器。換句話說,給定標記的訓練數據(監督學習),算法輸出最佳超平面,其對新示例進行分類。在二維空間中,這個超平面是將平面分成兩部分的線,其中每一類都位於兩側。本文以一個外行的角度來學習假設在圖表上給出了兩個標籤類的圖,如圖(A)所示。你能決定一個分類線嗎?
  • 智能財務風險預警方法—支持向量機
    ,此外,支持向量機還可以用在一些預測或者分析等領域,應用非常廣泛,工程科學等方面都能有所應用。當今世界上的支持向量機支持向量機的研究部分中,實際和理論方面的研究兩方在快速發展,如今支持向量機已經可以用於生物醫學識別,文本識別,人臉識別,手寫識別等非常多的領域。支持向量機將分類樣本映射為向量空間的特徵向量集合,並在向量空間中構造最優分類超平面,使得在保證分類正確的同時,不同類別的集合與最優分類超平面的間隔最大。
  • 25道題檢測你對支持向量機算法的掌握程度
    我相信你在不同的途徑中肯定也接觸過支持向量機,是不是覺得已經對這個東西有些頭痛,認為很多人都會,但是自己好像怎麼都不能明白過來它的原理,或者說你已經對自己有關支持向量機的知識已經很有自信了,那麼現在你來對地方了,這份技能測試就是專門測試你對於支持向量機的掌握程度已經是否可以應用。這份測試已經有超過550多人參加了,最後我會放出這些人的分數的分布情況,從而方便你對比一下自己的支持向量機的水平程度。
  • 支持向量機其實沒那麼玄乎
    在機器學習中,支持向量機也是一種常見的算法。支持向量機的原理是,在兩類的樣本中,尋找到能最好劃分類別的超平面。如果在平面中找不到,那就進入更多維度的空間,直至某個維度的空間能夠劃分出最合適的支持向量。兩條支持向量中間的那個超平面就是機器能夠利用的判斷邏輯。
  • 改進遺傳算法的支持向量機特徵選擇解決方案介紹
    支持向量機是一種在統計學習理論的基礎上發展而來的機器學習方法[1],通過學習類別之間分界面附近的精確信息,可以自動尋找那些對分類有較好區分能力的支持
  • 改進遺傳算法的支持向量機特徵選擇解決方案
    支持向量機是一種在統計學習理論的基礎上發展而來的機器學習方法[1],通過學習類別之間分界面附近的精確信息,可以自動尋找那些對分類有較好區分能力的支持向量,由此構造出的分類器可以使類與類之間的間隔最大化,因而有較好的泛化性能和較高的分類準確率。由於支持向量機具有小樣本、非線性、高維數、避免局部最小點以及過學習現象等優點,所以被廣泛運用於故障診斷、圖像識別、回歸預測等領域。
  • 「研究」支持向量機和其它類人工神經網絡的聯繫及區別
    支持向量機(Support Vector Machines,SVM)是20世紀90年代初,由Vapnik教授領導的研究小組提出的一種新的智能機器,它基於Vapnik等人在上世紀60年代末提出統計學習理論。
  • 超詳細支持向量機知識點,面試官會問的都在這裡了
    它的基本思想是在特徵空間中尋找間隔最大的分離超平面使數據得到高效的二分類,具體來講,有三種情況(不加核函數的話就是個線性模型,加了之後才會升級為一個非線性模型):當訓練樣本線性可分時,通過硬間隔最大化,學習一個線性分類器,即線性可分支持向量機;當訓練數據近似線性可分時,引入鬆弛變量,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機;當訓練數據線性不可分時,通過使用核技巧及軟間隔最大化
  • 如何使用支持向量機學習非線性數據集
    支持向量機(SVM)什麼是支持向量機呢?支持向量機是監督機器學習模型,可對數據進行分類分析。實際上,支持向量機算法是尋找能將實例進行分離的最佳超平面的過程。如果數據像上面那樣是線性可分離的,那麼我們用一個線性分類器就能將兩個類分開。
  • 支持向量機+sklearn繪製超平面
    核函數4.SVM 應用實例1.快速了解SVM 支持向量機(support vector machines,SVM)是一種二類分類模型。它的基本模型是定義在特徵空間上的間隔最大的線性分類器,間隔最大使它有別於感知機;而且SVM還支持核技巧,能夠對非線形的數據進行分類,其實就是將非線形問題變換為線性問題,通過解變換後的線性問題來得到原來非線形問題的解。舉個例子來說明支持向量機是來幹什麼的吧!
  • 支持向量機(三):圖解KKT條件和拉格朗日乘子法
    前言支持向量機求解最優化參數的過程中需要用到拉格朗日乘子法和KKT條件,本文用清晰易懂的圖解法說明拉格朗日乘子法和
  • 一個簡單的案例帶你了解支持向量機算法(Python代碼)
    相反,「支持向量機」就像一把鋒利的刀—它適用於較小的數據集,但它可以再這些小的數據集上面構建更加強大的模型。現在,我希望你現在已經掌握了隨機森林,樸素貝葉斯算法和模型融合的算法基礎。如果沒有,我希望你先抽出一部分時間來了解一下他們,因為在本文中,我將指導你了解認識機器學習算法中關鍵的高級算法,也就是支持向量機的基礎知識。
  • 機器學習|劉老師專欄—從邏輯回歸到支持向量機(一)
    劉老師專欄,今天分享的是從邏輯回歸到支持向量機解決分類問題的思路,算法理論知識固然重要,但更值得學習的是解決問題的思考方式,仔細欣賞劉老師的分享吧~需要複習邏輯回歸?請戳:機器學習|劉老師專欄——機器的「是非觀」機器學習|劉老師專欄——機器學習與是非題(二)機器學習|劉老師專欄——關於邏輯回歸的更多思考支持向量機是解決分類問題的另一個重要方法,關於這個方法的具體內容,因為我覺得插入公式和圖片都很麻煩,所以不再贅述。而且,相比於教材來說,贅述也不過是一種重複。
  • 高考數學——「數列」部分專講,10道例題講解應試技巧+解題思維
    在歷年高考數學的壓軸題中,有關數列的題型一直佔據著不可或缺的地位,往往讓很多同學無所適從.最典型的便是數列放縮題型,其內在的估計思想更是數學思想中的精髓.對於高中數學而言,數列這一部分內容主要包括數列通項與數列求和.又由於數列可視為一類特殊的函數,則其函數性質也會偶爾一展風採.
  • 一種利用最小二乘支持向量機方法預測比採油指數的模型
    一種利用最小二乘支持向量機方法預測比採油指數的模型本篇文章來自中海油天津分公司和中國地質大學(武漢)等單位在油田開發方案設計時,比採油指數起著至關重要的作用。特別對於海上油田來說,受開發成本和時間限制的影響,存在測試時間較短和測試採樣點較少的劣勢。
  • 深度學習與自然語言處理的工作概述及未來發展
    1957年,Rosenblatt提出了感知機模型(Perceptron),是線性模型,可以看作是兩層的神經網絡;1986年,Rumelhart等開發了後向傳播算法(Back Propagation),用於三層的神經網絡,代表著簡單的非線性模型;1995年,Vapnik等發明了支持向量機(Support Vector Machines),RBF核支持向量機等價於三層的神經網絡,也是一種簡單的非線性模型
  • 深度網絡揭秘之深度網絡背後的數學
    我決定在今年夏天抽出點時間深入的學習一下數學。我也打算寫一篇關於最新的學習諮詢的文章,以便幫助別人理解一些生澀難懂的概念。我編寫的這篇文章會對那些不太擅長線性代數和微積分的人十分友好,但就像標題所暗示的,這將是一篇與數學密切相關的文章。
  • 417頁《機器學習中的數學》免費開放下載!| 好書分享
    然而,機器學習不等同於深度學習(深度神經網絡),要學好機器學習並不容易。工欲善其事必先利其器,對機器學習而言,這把利器無疑就是數學。AI科技評論今天給大家介紹一本今年由劍橋大學出版社出版的一本新書:《Mathematics for machine learing》~