【理論部分】:(1)SVM理解與數學證明
一. SVM(Support Vector Machine)匯入
首先說明一下,SVM提出的目的是為了解決在低維空間中線性不可分的二分類問題,通過將資料空間對映到高維,使得資料在高維空間中是線性可分的,以此來完成優化目標。
- 線性分類
假設,某一個給定的資料集是線性可分的,那麼我們可以用線性分類器實現其二分類問題,也即在n維的資料空間中找到一個超平面(hyper plane),將資料劃分為兩個類別,超平面表示為:
- 邏輯迴歸(Logistical Regression)
邏輯迴歸是指將取值範圍為的原自變數對映到 ,對映後的值被分類為類別的概率
二. 優化目標函式選取
考慮在資料是線性可分的情況下,我們只要找到一個合適的超平面,就能夠將資料明確的進行分類,那現在就要考慮這個超平面怎麼選取的問題了,什麼樣的超平面能夠使資料的分類效果最好??
那當然 , 是兩個類別的資料到超平面的距離和越大越好!先來考慮用什麼距離來進行評估吧,這裡先介紹兩種距離:函式距離(Functional Margin)+ 幾何距離(Geometrical Margin)
- 函式距離(Functional Margin)
既然超平面可以表示為:,那麼對於任意一個數據x,只要代入上式計算出函式值,便可以直接根據其正負來判斷該資料是屬於哪一個類別。那麼我們可以簡單的用函式值的絕對值來表徵該資料距離超平面的遠近,也即:定義為函式距離。
對於每一個數據點,可分別計算出其對應的函式距離,且滿足:
【注】:用和分別表示兩個類別標籤,因為由超平面分開的兩個類別的函式取值是符號相反的,用1和-1表示類別標籤可以便於計算。
但是,函式距離的缺點也很明顯了,當引數w和b成倍增加的時候,超平面的位置並沒有改變,但是函式距離成倍增加,並不能將其作為參考。
- 幾何距離(Geometrical Margin)
由上圖可示,加入矢量表示,資料點x可以表示為:其中,是資料點x在超平面上的投影,表示該資料點據超平面的距離,w表示超平面的法向量,||w||是範數表示,是向量w的模。 同時已知是超平面上的點,因此有聯合公式(2-3)和(2-4)可以計算得到:然後再取絕對值:定義為幾何距離。
從表示式中可以明顯的看出,幾何距離不會因為w和b的成倍增加而隨之增加,可以公正的表示資料點x相對於超平面的距離(畢竟除了一個w的範數就是相當於進行歸一化處理了嘛)。
到了這裡,我們就可以先確定下來第一個未知因素了,
用幾何距離來衡量資料點到超平面的距離遠近!對於任意一個輸入資料x,引數優化目標就是為了要讓幾何距離取到最大。 為了計算方便,將函式距離令為1,即添加了約束條件:
得到最終的優化目標:
三. 目標函式求解
當未知引數在分母的位置時,往往是不好求解的,那麼就換個思路,將其變換到分子,然後求變換後式子的最小值。(對偶問題求解,這裡不對對偶問題詳細解釋,基本思路就是將函式轉化為更容易求解的形式,一般通過優化其倒數來實現)。 好的,那現在我們的優化目標轉變為了:
又有目標優化函式,又有約束條件,這就是拉格朗日求解的最佳拍檔組合嘛!
理所當然的引入了拉格朗日乘子, 新定義損失函式: 當時,有,此時滿足
整理一下,現在有了三類未知引數了,分別是w,b,,並且還是有範圍的,那肯定是w和b比較好求了。
根據凸函式的理論,可以直接通過梯度為0求得其全域性最優,求導吧…