第三章 研究方法
3.4 支持向量機
資料分類(Data Classification)是依照資料的特性,將相似度較高的資料進行 分 類 , 目 前 常 見 的 分 類 方 法 主 要 為 Nearest Neighbor 、 類 神 經 網 路 (Neural Networks)、Decision Tree 和 Support Vector Machine 等方法。本論文採用 Support Vector Machine,主要原因是 SVM 操作容易、運算速度快且效果良好。本節將介 紹 SVM 的原理與本論文所使用的 LIBSVM[32]。
支 持 向 量 機 SVM 是 一 種 根 據 統 計 學 習 理 論 提 出 的 機 器 學 習 (machine learning)演算法。其目的是利用一群已知類別的資料樣本做為訓練資料,以建立 模型(model),在未知的測試樣本輸入時,SVM 能夠依據事先建立的模型,進行 測試樣本的預測(predict),藉以將測試樣本進行分類。
SVM 的概念在於,將一群二維或多維的空間資料進行超平面(hyperplane)切 割,並且希望這個超平面能夠將資料進行最佳的分類,也就是使兩個超平面擁有 最大的間隔。以二維的資料分類為例,如圖 3.20 為例,該圖為兩種身份的分類,
由此圖可以發現用來區分兩個類別資料的線條不只一種,許多不同的線條都能夠 區分這兩類資料,但其中黑線才是最適當的邊界,而為了能夠找出最佳的超平面,
我們必須使這條線為最大邊界(Margin)的超平面,也就是使特徵空間中,兩種類 別的資料距離最大(𝐻1與𝐻2之間的距離),藉以將這兩種身份用最佳的方式來分類。
H1 H2
身份1
Margin 身份2
圖 3.20:二維平面 SVM 最佳超平面示意圖
26
由於上述的討論是以線性資料為前提。但實際上,並非所有的資料都能夠用 線性來做分類,所以我們必須將這些非線性資料投射到更高為維度的空間,使其 變為線性資料,以利於後續的分類,如圖 3.21 所示。
X F
F(x)
F(x) F(x)
F(y) F(y)
F(y)
圖 3.21:由 X 空間映射至 F 空間示意圖
像這樣將資料映射至另一個更高維度空間的演算法,在 SVM 中稱之為核心演 算法。因此,我們將在這邊將討論 LIBSVM 的核心演算法。
在 LIBSVM 中較常見的核心演算法為線性核函數(linear kernel)、多項式核函 數(polynomials kernel)以及放射基核函數(Radial Basis Function, RBF)。由 Hsu[38]
的研究中提到放射基核函數演算法相較於其他的方法有以下的優點:
1. RBF 核函數能夠分類高維度且非線性的資料。
2. 該演算法將資料正規化至 0 到 1 之間,有助於減少運算難度以及處理時 間。
3. SVM 搭配 RBF 核函數只需要調整參數 c 與σ,且操作簡單與擁有足夠的 預測能力。
因此,本論文在核函數演算法中,選擇 RBF 做為 SVM 的核心演算法,其運算公 式如公式(10)所示。
𝑘(𝑥, 𝑥𝑐) = exp (−‖𝑥−𝑥𝑐‖2
2𝜎2 ), (10)
27 (Compute Unified Device Architecture, CUDA),該架構是由 NVIDIA 所推出的一 種整合技術,該技術能夠讓 GPU 內的各個處理器與 CPU 處理器進行資料同步與 交換;藉由 CUDA 平行運算技術,使 GPU-LIBSVM 在運算的時間比 LIBSVM 快許多倍,因此我們選擇 GPU-LIBSVM 來進行實驗,相關觀念如圖 3.22 所示。
28