• 沒有找到結果。

第三章 研究方法

3.4 支持向量機

支持向量機(Support Vector Machine, SVM)[46]是一種分類演算法,用於機 器學習(Machine Learning),屬於監督式學習(Supervised Learning)範疇。

SVM 想達成的目的是在一群散佈在平面上欲被分類的資料中,尋找出一 條分類函數,將待被分類的資料分成群集,由於現實中問題往往非常的複雜,

許多時候資料會分布在二維平面或三維空間,甚至是更高的維度裡,因此用來 將不同群集分開的分類函數又被命名為超平面(Hyperplane)。在資料群集裡其實 同時存在許多組分類函數能將資料進行分群,SVM 利用統計學原理在這些分類 函數裡找出一條將分群資料進行分類的分類函數。SVM 的基本概念是利用與分 類函數平行的兩條邊界(Margin)函數作為輔助,透過計算邊界函數至邊界函數的 距離當作求出分類函數的依據。與分類函數平行的兩個函數被稱作支持超平面 (Support Hyperplane),而滿足支持平面條件的資料群集則稱為支持向量(Support Vector)。

舉一個二維資料群集為例,參考圖 3.19,有一資料群集在空間R(紅點及三 角形),{𝑥𝑖, 𝑦𝑖},𝑖 = 1,2, … , 𝑛,𝑥𝑖∈ 𝑅𝑑,𝑦𝑖 ∈ {1, −1},欲求一超平面以區分兩資 料群集,且期望此超平面距離兩集合的邊界越遠越好,以明確分辨資料點屬於那

21

個集合,否則當有新的資料點欲進行分類,易因為精確度不足而造成誤判。

圖 3.19: 二維平面 SVM 分類最佳超平面

我們將此超平面用數學表示式描述為 ax + by + c = 0,並定義係數矩陣 W = [a,b],共變異數矩陣 X = [x,y],如此,我們可重新將超平面表示式描述為函數 P(𝑥) = 𝑊𝑇 ∗ 𝑋 − 𝑤0,欲求出一超平面能使所有𝑦𝑖 = −1的點落在 P(x) < 0 的一 邊,且使所有𝑦𝑖 = 1的點落在 P(x) > 0 的另一邊,以分類兩個群集。

此時便可推得兩個與超平面平行的支持超平面分別為:

𝑊𝑇∗ 𝑋 = 𝑤0+ 𝛼 (9) 𝑊𝑇∗ 𝑋 = 𝑤0− 𝛼 (10) 由公式(9)與公式(10)所得的兩平行支持超平面距離為最大時,所構成的超平面即 為最佳解。我們定義兩支持超平面與超平面的距離為 d ,推得距離為:

𝑑 = ||𝑤0 + 1|− |𝑤0||

||𝑤|| = 1

||𝑤||, if 𝑤0 ∉ (−1,0) (11) 𝑑 = ||𝑤0 + 1|+|𝑤0||

||𝑤|| = 1

||𝑤||, if 𝑤0 ∈ (−1,0) (12) 兩個支持向量平面所構成的邊界之間的距離即為:

𝑑𝑚𝑎𝑟𝑔𝑖𝑛 = 2𝑑 = 2/||𝑤|| (13)

22 Radial Basis Function (RBF)

𝐾(𝑥𝑖, 𝑥𝑗) = exp (−‖𝑥𝑖− 𝑥𝑗2 2𝜎2 ) Sigmoid Kernel 𝐾(𝑥𝑖, 𝑥𝑗) = tanh(𝛾𝑥𝑖𝑇𝑥𝑗+ 𝑐)

本 論 文 之 實 驗 是 以 Multimedia Knowledge and Social Media Analytics Laboratory[47] 提 供 的 GPU-accelerated LIBSVM(A Library for Support Vector Machine) 作為測試系統效能之工具。GPU-accelerated LIBSVM 是在 NVIDIA 發 明的 CUDA 架構下以 LIBSVM[48]修改而成。在 CUDA 的架構下,我們可以使 用 NVIDIA 顯示卡內的多核心進行平行運算,如此可以顯著的縮短處理時間並產 生相同的結果。我們將步態能量影像透過 MHOT 方法取得特徵直方圖後,將之 輸入 GPU-accelerated LIBSVM 進行模型訓練與分析。GPU-accelerated LIBSVM 函式庫提供了多個核心函數供使用者使用,在本論文中我們選擇輻射基底函數 (Radial Basis Function, RBF)為核函數,該工具在訓練階段會採用交叉驗證針對所

23

有訓練資料估計每一個聯合參數的準確性,並自動找出一組最佳參數以此產生 SVM 分類模型,再將測試樣本以相同特徵擷取方法取得之特徵向量輸入分類模 型中進行分類,即可從分類結果中得出我們所提方法之整體辨識效果。

24

相關文件