支援向量機(Support Vector Machine, SVM)為一種機器學習
(machine learning)的方法,近幾年來已被廣泛用於解決樣式分類
(pattern classification)以及迴歸(regression)的問題,也很 成功的應用於各種領域。由於它可以同時降低訓練錯誤(training error, or empirical risk)及測試錯誤(test error, or risk),
因此已成為機器學習領域中最熱門的一種方法。
支援向量機是由 Vapnik 所提出,但在本計劃中僅就涉及樣式分 類的理論作初步探討,有關詳細深入之資訊可參考支援向量機相關著 作。
在樣式分類問題中,通常會定義以下基本的表示法:
xi: 是一個向量,用以描述一筆資料的各個屬性,xi∈Rn,i=1...l yi: 為+1 或-1 的標記(label),表示兩種類別, yi∈{±1},i=1...l S: xi所成的集合
L: yi所成的集合
f : 決定函數(decision function), f :Rn →{±1}
樣式分類的工作,就是在給定一筆資料 時,判定該資料是屬於 哪一個類別(+1 或-1)。
xi
而在距離的判定上是採取 1-norm、2-norm 的表示法其意義為某 一點到原點的距離的計算方法採用那一種方式:
norm
以線性分類器(linear classifier)來說,主要是要在給定的 訓練資料(training data)中,找出一個超平面(Hyperplane),
將這些資料區分開來,如圖 5.1 所示。也就是找到相對應的 w 和 b,
把訓練資料區分開來。將來在給定一筆測試資料(test data)x 時,
便依據決定函數 的值分類,若 ,則將該筆資料歸 界(margin),如圖 5.2 所示,便可以降低測試錯誤(test error, or risk error)。Vapnik 和 Chervonenkis 提出的最佳超平面(Optimal Hyperplane),指的就是可區分兩類資料的超平面中有最大邊界者。
在重新調整 和b值以滿足 後,對所
此時邊界為
找出最佳超平面是一個二次規劃(quadratic programming)的 問題,可以使用 Lagrangian 理論及 Lagrangian 乘數(multipliers)
來解:
Lagrangian:
∑
=
optimization problem),它是一個最大化(maximization)問題,
w
並且用來表示一個對於線性可區分類別問題的支援向量機公式: 度(經過 Linear Discriminant Analysis 降維) ,因此分類演算法往 往所處理的資料並不是線性可區分的,所以要把上述求最佳邊界的公 式( )擴大,其原理是將在原本用到的式子中再加上一個 正的 Slack Variable,
2
如圖 5.3 顯示,若 是屬於正向(Positive)那一類時,此時應該
要滿足 ,但是
x2 2•w+b≥1
x x2•w+b的結果卻是≤1,所以在(5-3)中扣 去ξi,才會滿足這一個不等式限制(Inequality Constraints);反 之,若 x1 是屬於負向(Negative)那一類時,則應該要滿足
,但是 的結果卻是 ,所以在(5-4)中加上
2 •w+b≤1
x x1•w+b ≥1 ξi,滿
足這一個不等式限制(Inequality Constraints)。把(5-3)、(5-4) 兩式合併,可組成下面這不等式:
(
i)
ii x w b
y • + ≥1−ξ ,ξi ≥0∀i (5-6) 在不等式限制(Inequality Constraints)所加上的ξi,則表示為 這一筆資料的訓練誤差(Training Error),
xi
∑
i
ξi 則代表所有資料訓 練誤差的總和,一般有兩種評估訓練誤差的方法:
1. 1-norm Slack Variable 2. 2-norm Slack Variable。
而在本計劃我們所使用到的是 2-norm Slack Variable,所以僅 將 2-norm Slack Variable 做一個簡單的介紹。所以將原本的目標函 數( )加上 2-norm Slack Variable,再加上限制(5-6),
則變成 2-Norm Soft Margin:
2
式中的 C 為可調整的常數,代表 training-error 的 penalty。若 C 值愈大,表示對 training-error 的影響愈重,反之則愈小。
對 2-Norm Soft Margin 而言,其原始的(Primal)Lagrangian 為:
( ) [
i(
i)
i]
( )
所以此對偶(2-norm Soft Margin)最大化問題(Dual Maximization Problem)為:
maximize
( ) ∑ ∑ ( )
Karush-Kuhn-Tucker (KKT) 條件則為:(
x w b)
i 料庫,這些影像在經過前置處理後交由支援向量機 Libsvm(為一套∑
=免費軟體)進行訓練及測試。
使用平滑支援向量機來做特徵比對具有許多的優點:
首先,相異人眼之虹膜特徵非常多樣化,傳統的歐式距離比對方 法,對特徵向量取最近距離的方式更是沒有任何可靠的理論支持。而 一種新的機器學習方法─平滑支援向量機,可以有效處理大量且變動 的資料,適合用來作樣式辨識。
其次,相較於著重在降低訓練錯誤(empirical risk minimization)的傳統分類方法,像是類神經網路(neural network),平滑支援向量機可以同時降低訓練錯誤及測試錯誤
(structural risk minimization),因此更加的有效與強健。
再者,是速度的考量。速度是虹膜辨識系統要達到即時效率的重 要考量因素。平滑支援向量機比起類神經網路,在速度上明顯占有優 勢。類神經網路在資料量大時,需用大量的權重來訓練,平滑支援向 量機則較不受大量資料的影響。
第六章 實驗結果
6.1 實驗環境介紹
本論文所使用的程式開發軟體為 Borland C++ builder 6.0 以及 Matlab 7.0 R14,MS Access 則是用來儲存虹膜碼以及各個需要的參 數,作業平台為 Windows XP,系統配備 Intel Celeron CPU 2.8 GHz 與 512 的記憶體。
使用的取像設備為 AVC 301A B/W CCD camera,兩顆紅外線投射 器。本論文所開發的取像設備與其他論文相比,不僅是非接觸式取 像,所擷取之影像品質,也較為優良(如圖 6.1),對於環境光源,更 具有不變性,這代表即使在光照程度不同的環境,使用本論文的攝影 機構也能得到相同照度的影像。
本論文另外對於知名虹膜影像資料庫 CASIA 也做了相同的實驗測 試。CASIA 是目前國際上規模最大的共享虹膜圖像庫,已被來自 70 個國家和地區的 877 個研究單位申請使用。
6.2 實驗結果
本論文所開發的系統對於兩個不同的資料庫做了測試,一個是中 國自動化科學研究院所提供的 CASIA 人眼影像資料庫(如圖 6.1)。
CASIA 資料庫包含了 108 個類別的人眼影像,每個類別內 7 張影像。
CASIA 資料庫特色如下:
人眼影像皆為灰階影像,大小為320×280,虹膜半徑約為 pixel。
130
~ 110
人眼影像中虹膜內的紋理清晰對比度優良。
人眼影像已預先做過瞳孔搜尋,並用與瞳孔相同半徑的黑色 原型遮罩將瞳孔中的光源去除。
人眼影像所拍攝的範圍為單一眼睛,包含了完整的上下眼瞼。
利用技巧避免了環境光害,因此人眼影像內沒有任何的光源 污染。
部分人眼影像之虹膜部分受上眼瞼的睫毛所遮蔽,在虹膜定 位上增加了困難,因此可取得之虹膜資訊也相對的減少。
圖 6.1 CASIA 人眼影像資料庫
由於 CASIA 人眼影像資料庫中每個類別只有 7 張影像,因此在訓 練以及測試的空間都遭到壓縮,本論文對於 108 個類別中,隨機提取 了 6 張影像作為訓練集,剩下的 1 張作為測試集。特徵提取方面我們 實驗了三種降維的方式 PCA、LDA 以及 DLDA,實驗結果如表 6-1:
PCA LDA DLDA
FRR 87.6
2
93.1 9
93.82
FAR 5.83 2.64 2.91
表 6-1
另外我們也利用了我們自製的人眼影像擷取設備實際對 21 位受 測者進行人眼影像採樣,每個人拍攝的人眼影像為 20 張,圖 6.2 為 其中一位受測者的人眼影像,拍攝出來的影像品質較 CASIA 人眼影像 資料庫更為優良。實驗結果如表 6-2。
圖 6.2 實際拍攝出來的人眼影像
PCA LDA DLDA
FRR 91.2
3
96.4 98.52
FAR 8.76 3.59 1.48