超平面:
超平面是n維歐氏空間中余維度等於一的線性子空間,也就是必須是(n-1)維度。
這是平面中的直線、空間中的平面之推廣(n大於3才被稱為「超」平面),是純粹的數學概念,不是現實的物理概念。因為是子空間,所以超平面一定經過原點。
在幾何體中,超平面是一維小於其環境空間的子空間。 如果空間是3維的,那麼它的超平面是二維平面,而如果空間是二維的,則其超平面是一維線。 該概念可以用於定義子空間維度概念的任何一般空間。 [1]
在不同的設定中,超平面的物件可能具有不同的屬性。 例如,n維仿射空間的超平面是尺寸為n-1的平坦子集。由於其性質,它將空間分成兩個半空間。 n維投影空間的超平面不具有此屬性。
————————————————————————一條羞恥的分割線————————————————————————
線性分類器最基本的想法是:在樣本空間中尋找乙個超平面,將不同類別的樣本分開
明顯可以將訓練樣本分開的超平面有很多,分類器必須從這些超平面中選擇哪個來表示它的決策邊界?
為了更好地解釋不同的超平面對泛化誤差的影響,考慮兩個超平面b1和
預備知識:
拉格朗日乘子法:
第一步:引入拉格朗日乘子得到拉格朗日函式:
第二步:令 偏導為零
第三步:回代拉格朗日函式得到對偶優化問題:
對偶:
對偶是大自然中廣泛存在的,呈「分形」形態分布的一種結構規律,及任何系統往下和往上均可找出對偶二象的結構關係,且二象間具有對立統一性、互漲性和互根性。
對偶問題:每乙個線性規劃問題都存在乙個與其對偶的問題,原問題與對偶問題對乙個實際問題從不同角度提出來,並進行描述,組成一對互為對偶問題。
p問題:min f = c'x ,ax≥b ,且c'≥0;d問題:max g = y'b, y'a≤c', 且y'≥0。問題 p和問題d互為對偶問題。其特點如下:目標函式的目標互為相反(max,min);目標函式的係數是另乙個約束條件右端的向量;約束係數矩陣是另乙個的約束係數矩陣的轉置;約束方程的個數與另乙個的變數的個數相等;約束條件在乙個問題中為「>」,在另乙個問題中為 「
(b) kkt條件
對於含有不等式約束的優化問題,如何求取最優值呢?常用的方法是kkt條件,同樣地,把所有的不等式約束、等式約束和目標函式全部寫為乙個式子l(a, b, x)= f(x) + a*g(x)+b*h(x),kkt條件是說最優值必須滿足以下條件:
1. l(a, b, x)對x求導為零;
2. h(x) =0;
3. a*g(x) = 0;
求取這三個等式之後就能得到候選最優值。其中第三個式子非常有趣,因為g(x)<=0,如果要滿足這個等式,必須a=0或者g(x)=0.
直覺上,決策邊界的邊緣較小,決策邊界任何輕微的擾動都可能對分類結果產生較大的影響。也就是說,具有較大邊緣的決策邊界比那些具有較小邊緣 的決策邊界具有更好的泛化誤差。
因此,根據結構風險最小化原理,需要設計最大化決策邊界的邊緣的線性分類器,以確保最壞情況下
的泛化誤差最小。線性支援向量機
(linear svm)
就是這樣的分類器。
給定訓練資料集,線性分類器的決策邊界可以寫成如下線性方程:
其中 w為法向量,決定了決策邊界的方向; 為位移量,決定了決策邊界與原點之間 的距離。顯然,決策邊界由引數 w和 b確定。
假設決策邊界能將訓練樣本正確分類,即對於任意樣本點 :若 y=1,則有 wx+b>0;若y = -1 則有wx+b<0 。那麼通過調整決策邊界的引數 w和b:
總可以得到:
距離決策邊界最近的訓練樣本點使得上式中的等號成立,因此被稱為「支援向量」(support vector)。
兩個異類支援向量到決策邊界的距離之和被稱為決 策邊界的「邊緣」 (margin)
,剛好等於超平面之間的間隔
因此,線性支援向量機的學習就是要尋找滿足約束 條件的引數, 使得間隔最大。由於目標函式是二次的,並且約束條件在引數 和
上是線性的,因此線性支援向量機的學習問題是一 個凸二次優化問題,可以直接用現成的優化計算包求解,或者用更高效的拉格朗日乘子法求解。
因為線性
svm還需滿足不等式約束 ,所以可以把不等式約束變換成等式約束,這 種變換得到拉格朗日乘子約束,也稱作為karush-kuhn-tucker (kkt) 線性
svm假定訓練樣本是線性可分的,即存在乙個 線性的決策邊界能將所有的訓練樣本正確分類。 然而在實際應用中,在原始的樣本空間內也許並不存在這樣的決策邊界。對於這樣的問題,可將樣本從原始空間對映到乙個更高維的特徵空間,使得樣本在對映後的特徵空間 內線性可分。
參考資料:
j. platt:
fast training of support vector machines using sequential minimal optimization
. in b. schoelkopf and c. burges
and a. smola, editors, advances in kernel methods - support vector learning, 1998.
支援向量機(一)
本篇是學習svm的初學講義,希望能夠對大家有所幫助。svm涉及到很多拉格朗日對偶等最優化知識,強烈推薦大家學習 最優化計算方法 不然理解svm會遇到很多困難。學習之前強烈推薦先玩一玩林智仁的svm toy.exe,對理解svm很有幫助,鏈結在 好了,接下來我們開始svm的學習。在本文中,會盡量避免一...
支援向量機 一)
最近在看史丹福大學的機器學習的公開課,學習了支援向量機,再結合網上各位大神的學習經驗總結了自己的一些關於支援向量機知識。一 什麼是支援向量機 svm 1 支援向量機 support vector machine,常簡稱為svm 是一種監督式學習的方法,可廣泛地應用於統計分類以及回歸分析。支援向量機屬...
支援向量機(一)
支援向量機 svm 有嚴格的數學基礎和推導理論的模式識別方法,是針對小樣本的的統計學理論,基於結構風險最小化原則,演算法在優化過程中具有全域性最優解,泛化能力也比較突出,是一套優秀的機器學習技術。機器學習是乙個不斷學習發展加深的過程,正如乙個讀書人學習svm的時候,他看書的境界分為三層,如先讀資料探...