SVM基礎及java源碼實現

當權重向量是單位向量時,幾何間隔就是函數間隔!

最速下降法/steepest descent,牛頓法/newton,共軛方向法/conjugate direction,共軛梯度法/conjugate gradient 及其他


【1】最速下降法(或:梯度法)

最速下降法(梯度下降法)只用到了梯度信息,即目標函數的一階導數信息,

【2】牛頓法

而牛頓法則同時用到了一階導數和二階導數(Hesse矩陣(二階導數矩陣))信息。在start point點處,對目標函數進行泰勒展開,並只取二階導數及其之前的幾項(更高階的導數項忽略),

【3】共軛方向法

選定搜索方向d,使之滿足共軛條件以及下降條件,在此搜索方向上通過精確線搜索確定移動的步長,然後將當前點移動到下一點,再重新選定搜索方向,周而復始,直到滿足終止條件。


【4】共軛梯度法

“共軛梯度法”是一種特殊的“共軛方向法”。共軛方向法與梯度也有關係——共軛方向法利用了目標函數的梯度信息(梯度與方向的積滿足“下降”條件)。共軛梯度法與此關係有所區別:用當前點的負梯度方向,與前面的搜索方向進行共軛化,以得到新的搜索方向。

當前點的搜索方向是當前點的負梯度方向與前面所有方向的線性組合。

共軛梯度法的收斂性:比最速下降法的收斂性要好得多。



********************************************

爲何收斂呢?

若line search的步長αk滿足精確搜索條件αk=argminα>0f(xk+αdk),搜索方向dk與負梯度方向−gk的夾角<90°(稱爲下降條件),那麼,必然會發生下面3種情況中的一種:

(1)存在某個有限的k,使得gk=0

 (2)f(xk)→−∞ 

(3)gk→0  

也就意味着收斂了

********************************************

線性流形

在迭代過程中,我們會從初始點開始,在搜索方向上通過精確線搜索的方法,找到使目標函數值符合要求(例如,min f(X))的步長,然後將點移動到下一點。這樣不斷進行下去,就會得到很多個點。在N維空間Rn中,在每一個搜索方向上,都有無數個點,它們構成了一個軌跡(或者說一個集合),我們稱之爲線性流形

**********************************************

 【最小二乘法】

********************************************

SVM 再理解

目標:我們最大化的是離超平面最近的點到超平面的距離;

我們的目的是最大化支持向量到分割超平面的幾何間隔r,而不是最大化函數間隔g(x);

我們需要最大化的是幾何間隔r,這等價於我們固定||w0||,然後最大化函數間隔g(x)。

但是實際上我們不會這麼做,通常的處理方法是固定函數間隔g(x)的絕對值爲1,然後最小化||w0||。

也就是說我們把支持向量到分割超平面的函數間隔g(x)的絕對值設定爲1,然後最小化||w0||。



爲了使問題變得易於處理,我們的方法是把目標函數和約束全部融入一個新的函數,即拉格朗日函數,再通過這個函數來尋找最優點。



  SVM得到的目標函數:

 經過論證,我們這裏的問題是滿足 KKT 條件的(首先已經滿足Slater condition,再者f和gi也都是可微的,即L對w和b都可導),因此現在我們便轉化爲求解第二個問題。

也就是說,原始問題通過滿足KKT條件,已經轉化成了對偶問題。

對偶問題求解的3個步驟




***************************************************************
最優化理論與KKT條件

最優化問題可以根據目標函數和約束條件的類型進行分類:
1). 如果目標函數和約束條件都爲變量的線性函數, 稱該最優化問題爲線性規劃;
2). 如果目標函數爲變量的二次函數, 約束條件爲變量的線性函數, 稱該最優化問題爲二次規劃;
3). 如果目標函數或者約束條件爲變量的非線性函數, 稱該最優化問題爲非線性規劃.

KTT條件是指在滿足一些有規則的條件下, 一個非線性規劃(Nonlinear Programming)問題能有最優化解法的一個必要和充分條件. 這是一個廣義化拉格朗日乘數的成果

  • 對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值;
  • 如果含有不等式約束,可以應用KKT條件去求取;

******************************************

支持向量機:Duality

**************************************

SMO算法的解法



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章