要 了 解 SVM, 首 先 必 須 先 了 解 , 什 麼 是 非 線 性 規 劃(Nonlinear
Programming),如何去解問題…等等,在本章節將會逐一的說明。除此之外
也將介紹什麼是影像二值化和影像多階層化;除此也將會介紹支撐向量機 和手寫中文字辨識相關文獻。
2-1 線性規劃 Linear Programming
二次規劃是屬於一種非線性規劃(Nonlinear Programming)數學概念,所 以這裡會先從探討什麼是線性規劃(Linear Programming)開始,而一般線性 規劃比較有名的方法是單形法[9](Simplex Method 或 Simplex Algorithm), 這是由美國一個數學家 George Dantzig 於1947 發表[10]。
下列為一個標準線性規劃最小化問題範例。有兩個變數x1、x2和兩條 限制式,其中所有的變數x 都大於等於零。i
0 90
3 2
80 4
16 9
min
2 1
2 1
2 1
xi
and x
x x x to subject
x x
imize
2x1+3x2=90 x1+4x2=80
(0, 0) (45, 0) (0, 20)
(0, 80) (0, 30)
(24, 14)
x1
x2
圖 2- 1 線性規劃範例圖
圖 2-1 為該範例的線性規劃示意圖,因為變數xi 0,故這個解的可行 區域(Feasible Region)會落在第一象限中。而解出的解可能會是無解,故藉 由這兩條限制式,可以限制這個區域的邊界,讓它有一個解存在;通常 solution 會落在邊界上,也可能會在邊界內。可以從圖 2-1 看出,最小值落 在兩條限制條件的交會點(24,14)上,其最小值為 412 ;而 Simplex 的概念 所在,就是透過在邊界點上的移動,去搜尋最佳解。
常見的線性規劃問題格式類型分成兩種,標準形式(Standard Form)和寬 鬆 形 式 (Slack Form) 。 標 準 形 式 中 , 所 有 限 制 式 都 是 不 等 式 (Inequality Constraint),只有符號,即沒有符號;而標準形式中,所有限制式都是 等式(Equality Constraint),與標準形式互為相反。
一般線性規劃的問題,為求未知數向量X (x1,x2,...,xj,...,xn)的解,而
0 非負限制條件(Non-Negativity Constraint)。
2
在(2.5)所有變數目前都有符合非負限制條件,還並非是一個 Standard
Form,在第一條限制式目前是一個等式。故必須將等式轉成非等式。
在 Inequality Constraint中,如式子(2.9)若要改成Equality Constraint, 則需將引入一個寬鬆變數(Slack Variable),將改寫成公式(2.10)。
式子(2.12)為一個標準的Slack Form。
在第m1列,原本的基底向量P1,P2,...,Pm,至少會有一個zj cj 0, 去計算一個新的可行解,目的能將目標函式數值最小化。所以搜尋新的向 量P 換入基底時,理論是可以選擇換掉任何一個j zj cj 0的行向量,但這 可能沒法讓目標函式立即減少,也可能讓目標值增加。故P 選擇的方式如j 下列公式:
zj cj
zj ck for j nj
,..., 2 , 1 0
max
arg (2.15)
當選擇向量
Pk換入基底時,接著需計算 n
j x for
x
ik
i 1,2,..., min 0
0
(2.16)
將被換出去的向量為Pl,其
lk l
x x0
0
。因此將會有一個新的可解,和新的一
組基底向量P1,...,Pl1,Pk,Pl1,...,Pm。而這需將對原先的基底向量作調,調整方 式如下:
0 0 0
1 10
0 x P ... x P ... x P
P l l m (2.17a)
0 1
1 P ... x P ... x P
x
Pk k lk l mk (2.17b)
m mj l
lj j
j x P x P x P
P 1 1 ... ... (2.17c) 藉由式子(2.17b)將Pl移項到左式:
) ...
1 (
0 1
1 P x P
x x P
P k k mk
lk
l (2.18)
再將式子(2.18)代入(2.17a)
或是將P0減去 k
式子(2.20)等同式子(2.19)s
藉由式子(2.19)或(2.20),可得到一組新的可行解X'0(x'10,...,x'k0,...,x'm0),
表 2- 2 Simplex 步驟二程序表
基底為Pl P2。
子(2.23),調整過程如下:
4 5 2 3 2 5 4
1 0 0
0 )
(X
f 。以相同的方式繼續套用公式,找出要換進來的
基底向量為Pk P2;並利用式子(2.16)挑選換出的基底,得最小的 5,l5 故將要被換出去的基底為Pl P5,而調整步驟過程如先前一樣,可獲得如表 2-6。
表 2- 6 線性規劃範例步驟 4
1 1 1 1 1 1 i Basis c P 0
P1 P2 P3 P4 P 5 P6
1 P 3 1 2 3
3
1 0 1
6
1
2
1 0 ______
2 P 6 1 2 3
6
1 0 0
6
1 0 1 ______
3 P2 1 5 4 1 0 1 2 0 ______
4 5
6
29 0 0
3
1
2
5 0
從最後一列得知,所有的zj cj 0,而這一個線性規劃問題已解決,
故 這 一 組 向 量 解
2 ,3 0 , 0 2, ,3 5 ,
X 0 , 且 目 標 函 式 數 值 是 擁 有 最 小 值
5 0
0 5
0 )
( 2
3 2
3
X
f 。
由上述討論,使用 Simplex Method,由限制條件可以圍出一個可行解 的區域,而這些可行解通常會落在交會點的邊界上。因此對於解線性規劃
的問題,Simplex Method 能提供一個不錯的解決方式,而且通常都能找到
一個最佳的最大或最小解在。
2-2 非線性規劃 Nonlinear Programming
線性規劃的問題。一般的線性規劃中,它的目標函式通常為一次式。然而 在非線性規劃中,雖然限制條線是線性的,但它的目標函式通常都為二次 式,故又稱作二次規劃問題(Quadratic Program ,QP)。
Quadratic Program 運用的領域很廣闊,如最佳化問題(Optimization Program) 、數值方法(Numerical Methods)、管理科學(Management Science)、 作業研究(Operations Research) …等等。
一般 Quadratic Program表示格式如下:
I i b ax
E i b ax to subject
cx Qx x imize
i t
i t
t t
, , 2
min 1
(2.24)
其中,Q 是一對稱矩陣(Symmetric Matrix)(n*n),同時也是一個半正定矩陣 (Positive Semidefinite Matrix)。 E 是等式(Equality)和 I 是不等式(Inequality) 為限制條件的集合。
2-2-1 等式限制 Equality Constraints
如果一個二次規劃問題,只含等式限制條件,且可有 Closed Form Solution,故可將公式(2.24)改寫成如下:
b Ax to subject
cx Qx x
imize t t
2 min 1
(2.25)
如果 A 是滿秩(Full Rank)且Q 為正定矩陣(Positive Definite Matrix),那這一
公式(2.25)的Lagrange 必要條件如下:
其中(2.25)為nm維的線性方程組(Linear System of Equations)。
當Q 為正定矩陣時,能以顯式(Explicit formula)來表示 x 的推導解。透過 公式(2.26)可得
進一步將式子(2.27)代入式子(2.26)可得
1 0
通常大部分 Active Set[11]都是用在解含有不等式限制條件的 Quadratic Program,其公式定義如下:
k
合 Wk (Working Set) 中 , 所 有 限 制 條 件 和 等 式 的 限 制 條 件 。 其 中
k
k c Qx
g ,dk可以使用公式(2.30)求得。當dk 0,表示目前最佳解xk滿 足所有目前在工作集合Wk;當dk 0,且xk dk滿足所有限制條件,那麼下 一點xk1 xk dk。但如果xk dk是不可行(Not Feasible),則從xk dk中尋 找xk1。其中 計算如(2.31)所示。
0 ,
1 min
0
k t i
k t i i
k t i
k t i i d
a a d
x a and b
d a
x a imum b
k t i
(2.32)
從計算出來的,可以找出下一次疊代xk1點。藉由xk1當下,代入限制條 件中,可以讓原本為 Inequality 滿足,因而讓等式成立,並加入到下一次疊 代的工作集Wk1中。
若要判斷當前點xk的工作集,可利用式子(2.29) 向量中的值來確定。
如果中所有數值都為非負(Nonnegative),表示目前點xk是一個最佳解;如 果i (i )為負值,且是I 中為最小,那麼必須將i所屬的限制式,從目 前的工作集移除,並重新計算dk1繼續計算下去,直到終止(Termination),
因此工作集將會是個有限的集合。下列為 Active Set 演算法。
Active Set Algorithm
Initiation k 0,x0為一可行點,W0是目前工作集。
Step1.使用式子(2.31)解等式限制的二次規劃。if dk 0,go to Step3。
Step2. xk dk,k可利用式子 (2.32)求。if k 1,xk1 xk dk,並
1
Quadratic Program 範例
這一個範例將會使用 Active Set 來求解,以下是 QP 範例。
x2 x1 x2 1
x2 x1 x2 1
Step3:
x2 x1 x2 1
2-3 支撐向量機
SVM 本節主要說明支撐向量機由來以及運作的原理,透過這一節更清 楚了解支撐向量機相關的一些數學原理與所要表達的理念。
2-3-1 支撐向量機概念
支撐向量機(Support Vector Machine, SVM)[48-50]是歸類於人工智慧 (Artificial Intelligence)的一種機器學習(Machine Learning)方法,也是一種用 來分類(Classification)的演算法。
Margin 2
Margin 1
Separating hyperplane 1 Separating hyperplane 2
圖 2- 5 最佳超平面示意圖
根據要解決什麼樣的問題,來探討如何將問題轉換為有意義的特徵 值,而每一筆訓練資料的特徵點,可視為一個特徵向量(Feature Vector),並 組成一組有意義的訓練集合空間,藉由隱含在SVM之中的數學訓練函數,
找到一個最佳的超平面(Optimal Hyper-plane),透過這一個超平面可將問題 做分類。如圖2-5範例所示,在一個二度空間,有圓形和方形兩類,可以讓
倘若能讓這兩類的邊界能最大(Maximized Margin),則可更精確將每一 筆特徵資料點分類於所屬類別之內。而在這空間可能存在很多的超平面,
且因為Separating Hyper-plane 2擁有最大的Margin,故稱可稱此平面為 Optimal Separating Hyper-plane(OSH)。在眾多的超平面之中,找到這一個最 佳超平面就是SVM最主要的目的所在。
(a) (b) 圖 2- 6(a)線性可分割(linearly separable)(b)非線性可分割(linearly inseparable)
在一般理想狀況之下,訓練資料集合成線性可分割(Linearly Separable) 的狀況,如圖 2-6(a)所示,可直接使用超平面來做分類,其中實心圓形或實 心方形稱為支撐向量(Support Vector);但現實世界中,大多數的問題都是呈 現非線性可分割(Linearly Inseparable)的狀況,如圖 2-6(b)所示,部分特徵點 無法作區隔。對於這樣的狀況,Boser[6]等人提出一個改善的方法。採用了 核心函數(Kernel Function)來改變資料形態,其主要概念是將原始資料由低 維 空 間 (Low Dimensional) 藉 由 Kernel Function 轉 換 到 高 維 空 間 (High
進行分類。
2-3-2 Hard-Margin 支撐向量機
一 般 線 性 可 分 割 的 資 料 稱 為 硬 式 支 撐 向 量 機 (Hard-Margin Support Vector Machines)。假設目前的訓練樣本 xi (i1,2,...,l),且屬於class 或1
2
class 兩 類 , 並 標 記 為 和 11 , 若 以 數 學 表 示 則 可 成 , Rn
xi yi
l i i
i y
x , ), 1,2,..., , {1,1},
( ,l 為每一訓練的 Instance 總數,n 為特 徵空間的維度。如果目前的資料是線性可分割,我們可以定義一個決策函 數(Decision Function):
R n b
R w b tx w x
D( ) , , (2.33)
其中 w 是超平面的法向量(Normal Vector),b 為偏移量(Bias)。
1 0
1 0
y for
y b for
tx
w (2.34)
由於目前訓練資料是線性可分割,沒有滿足訓練資料原生的wtx b0 時。因此,要達到可分割,而不是(2.34),我們考慮下面的不等式:
1 1
1 1
y for
y b for
tx
w (2.35)
透過公式(2.35)兩個不等式除以y可得到: l i
for b
tx i w
y ( )1 1,2,..., (2.36)
這一個超平面為
圖 2-7 滿足公式(2.36)。位於最佳分割超平面兩旁稱支撐超平面(Support
Hyper-plane),與最佳分割超平面之間距離為
d w
d 1 ,最大邊界距離
為 w
2 。且所有訓練資料必須滿足:
l i
w for xi iD y
,..., 2 , 1 )
( (2.38)
其中參數 是 margin。
support hyperplane optimal separating hyperplane
w
Maximized Margin
support hyperplane
d
+d
- 1
b tx w
1
b tx w
0
b tx w
圖 2- 7 最佳超平面
如果(w,b)是現在的解(Solution),假設乘上一純量 a,那麼(aw,ab)也是 一個可行解。所以我們可以下列一個限制式:
1
w (2.39)
透過公式(2.38)、(2.39)可以去找最佳分割超平面,且我們必須求 w 的最小歐 基里德長度(Euclidean Norm)來滿足公式(2.36)。結合上述討論,我們可以得 到以下的目標函式:
l
公式(2.40) 中的 w 是為了讓二次規劃(Quadratic Programming)的問題能達2 到最佳化。其中滿足(2.40)中限制式,的所有解,稱為可行解(Feasible Solutions)。雖然求出解可能不是唯一的,但目標函式數值(Object Function Value)是唯一的。
當訓練樣本輸入的變數很少,用二次規劃來解決公式(2.40)。但在某些 情況之下,因為訓練樣本的輸入空間轉換高維度特徵空間,我們必須式(2.40) 轉換成一個等價對偶問題(Equivalent Dual Problem)。
首先將公式(2.40)透過拉格蘭吉法(Lagrange Method)轉換成如下:
i是非負的拉格蘭吉乘數(Nonnegative Lagrange Multipliers) 。為了求最佳解,且滿足i 0限制式和卡羅需-庫恩-塔克 (Karush-Kuhn-Tucker ,KKT)[7]條件,而這個解會位於鞍點(Saddle Point)上,
所以必須分別對 w 和b 偏微分。
l Vector)。之後將式子(2.42)、(2.44)代入公式(2.42),則可獲得新的 Lagrange 方程式,因為將問題轉換為對偶形式,所以改表示如下:
之所以稱 Hard-Margin Support Vector Machines 是因為公式(2.47)之中的限 制式之下,它是一個凹型二次規劃(Concave Quadratic Programming)問題。
如果存在一個解,且
i是一個全區域最佳解(Global Optimal Solution),那這 一個分類問題為線性可分割的。
求得 向量後,代入公式(2.42)就可或得 w 向量。同時也可以計算出 b
值,公式如下:
tx i w i y ix l y i i yi
b
1
(2.48)統整先前敘述,在訓練集合當中,i 0的可以捨棄也不會影響計算結果,
只需要i 0的 Instance,作為最佳分割超平面的支撐向量點。並藉由下列 決策函式作分類,其中 sv 為支撐向量。
] sgn[
] sgn[
)
(
sv i
j b tx xi yi b i
tx w x
D (2.49)
若輸入測試資料x,則它的分類基準如下:
0 ) ( 2
0 ) ( 1
x D if class
x D if class
(2.50)
當D(x)0表示x在邊界上,而無法分類出來。
2-3-3 Soft-Margin 支撐向量機
在硬邊界支撐向量機中,訓練資料是線性可分割。若訓練資料為非線 性可分割時,表示沒有存在一個可行解。所以如果是硬邊界支撐向量機,
可能找不到一個最佳超平面解決這個問題。
為 了 允 許 非 線 性 不 可 分 割 , 我 們 加 入 一 個 非 負 的 寬 鬆 變 數 (nonnegative slack variables)至公式(2.36)中:
l i
i for b
tx i w
y ( )1 1,2,..., (2.51)
透過這一個寬鬆變數 ( 0 ),能存有一個可行解。雖然無法擁有一個最大
最佳超平面導致分類錯誤。如圖 2-8所示。有兩個特徵點無法區分出來。
i
j圖 2- 8 非線性不可分割 為了讓分類錯誤降到最低,故
l
i i
1
必須也要達到最小化。在訓練學習
資料時,針對分類錯誤給予一個相對的懲法成本C (Penalty Parameter)參 數,而參數C是透過交叉驗證(Cross Validation)來尋找最佳數值。故將原木
資料時,針對分類錯誤給予一個相對的懲法成本C (Penalty Parameter)參 數,而參數C是透過交叉驗證(Cross Validation)來尋找最佳數值。故將原木