第三章 研究方法
3.1 改良式垂直邊緣格雷編碼(EPGC)之架構
3.1.6 支持向量機(Support Vector Machine, SVM)
在機器學習(Machine learning)領域中,支持向量機器(Support Vector Machine, SVM) [17]-[19]為一種廣泛被使用的方法,使用的是一種監督式學習(Supervised Learning)的方式,主要用在分類(Classification)問題和回歸(Regression)問題上。而 監督式學習也是機器學習中的一種方式,可以藉由訓練資料中學習到或建立一個 模式(Learning Model),並依此模式預測未知的資料。
支持向量機的主要目的是找出一個超平面(Hyperplane),可以使兩個集合或兩 個群體分開,集合或群可以是高維度,因此超平面亦同於在高維度中的平面,這 裡以二維平面來解釋SVM的基本概念,如圖 3-10所示,左圖中綠點與藍點無法 直接使用一條直線分開,不過可以用一個圓的方程式表示將其分為兩個不同群集 的線,因此轉換到右圖時,可以發現高維度用二維平面表示時,圓方程式即為其 超平面,此外,右圖中灰色虛線為兩群集中,最靠近超平面的邊界(Margin),當 邊界越大時,其分類效果越好,否則反之。
(x+a)2+(y+b)2=c
x y
(x+a)2 (y+b)2
Hyperplane Margin
圖 3-10 SVM 超平面示意圖
SVM在解決高維度集合分類問題中展現許多特有的優勢,目前在影像相關應 用很多都在辨識領域,例如手寫辨識、人臉辨識、圖像辨識……等等,或其他領域 分類等問題中。
- 35 -
SVM基本上為一個二元分類器(Binary Classifier),實際上在各領域中SVM常 常應用到多元分類上,以下介紹兩種主要方式:
(1). 一對多(One-against-rest):
假設有10個不同的集合 a 到 j,那就需要10個SVM分類器 A 到 J,如 圖 3-11所示,A 分類器可將藍點 a 集合與其他綠點 b 到 j 集合分開,亦 即 A 分類器只辨別得出來是否為 a 集合,所以整體需要透過10個分類器,
才可將10個不同集合分類開來。
a a
a b
c d j
圖 3-11 一對多的示意圖
(2). 一對一(One-against-one):
訓練部分:假設共有 k 個集合,對其中任兩個集合進行SVM的訓練, 𝐶2𝑘 共 𝑘(𝑘 − 1) 2⁄ 個SVM分類器,換句話說,就是每一個分類器都可以分辨出兩 個集合,而這兩個集合都為 k 集合中的其中之一。
測試部分:將每筆測試資料分別丟入經由每兩個集合訓練出來的分類器,
每筆資料會總共有𝑘(𝑘 − 1) 2⁄ 次的分類結果,經由各個SVM分類器分辨出來 的結果投票,獲得最多票數的集合就是此筆資料的分類結果。
- 36 -
本論文主要目的是分辨影像是否經過USM處理,屬於二元分類問題,因此主 要分成兩個類別,所以較上述多元分類方法單純,而我們使用的SVM工具是由台 大 林智仁 教授開發的LIBSVM [19],這個開源的函式庫為目前發展最完整且最 廣泛被使用的SVM分類器,其功能完整且支援多元分類,只需將擷取到的特徵資 訊,依照其規定的資料內容格式與檔案格式儲存,如圖 3-12所示,每一欄所代表 之意義如表 3-5所列,即可使用LIBSVM建立訓練模組以及測試、預測等功能。
格式範例:
[label] [index 1]:[value] [index 2]:[value] [index 3]:[value]…
[label] [index 1]:[value] [index 2]:[value] [index 3]:[value]…
表 3-5 格式範例所代表之意義
格式 意義
[label] 分類的類別,我們的設定以 0 代表原始影像,1 代表 USM 影像。
[index] 特徵類別,範圍為 0 到(2𝑁−2− 1)。
[value] 各特徵類別的機率值。
圖 3-12 LIBSVM 規定之資料內容格式與檔案格式
- 37 -
Orig 0.2812 0.0744 0.0807 0.0855 0.0881 0.0678 0.1442 0.1781 USM 0.138 0.0722 0.0863 0.1487 0.0936 0.065 0.2043 0.192
0