在現實生活中,每個人或多或少少都有切過蛋糕的經驗,假設有一個糊塗蛋糕師傅,在填入蛋糕內餡時,完全沒有攪拌,例如先下了葡萄乾,接著再下核桃,你這一刀切下去,最極端的情況,就是產生兩種內餡口味完全不同的蛋糕。而今天要講的「支持向量機」的技術,平心而論,就有點像是切蛋糕的方法,因為切法不同,效果也有差異。
支持向量機(SVM)原始的概念,最早是由俄羅斯籍數學家佛拉基米爾‧萬普尼克(Vladimir Naumovich Vapnik)等人於1963年所提出。支持向量機(SVM)是一種監督式學習的演算法,主要用於「分類」。
支持向量機的作用,就是在大量且不明的情況,儘量將相同的資料,切分在一起,以下先簡單對「線性可分支持向量機」與「非線性可分支持向量機」加以說明。
1.線性可分支持向量機
線性可分支持向量機的概念,就是在以上的二維圖形中,找出一條線,讓這條線與兩個類別之間的間隔寬度距離最大。這條線(1維),在二維平面中,就稱為「間隔超平面」(margin hyperplane)。如果是在三維(度)空間中,這時「間隔超平面」(margin hyperplane) 就不再是一條線,而是一個平面,如圖二所示。而與「間隔超平面」距離最近的點,就稱為「支持向量」(support vector)。
現在,你可以先把它想像成,那些藍色的星點和圓點是佈置在蛋糕上的草莓和水蜜桃丁, 從蛋糕上方俯瞰,手拙的蛋糕師傅碰巧將草莓和水蜜桃大致都排在一起,最直觀和簡單的切法,就是這一切下去,就變成兩種不同口味的蛋糕;接著,再想像一下,蛋糕切開後,豎直的蛋糕縱剖面內部現在夾藏有葡萄乾和核桃,一刀橫切過來,又如何將它平均分成不同的兩種蛋糕。(當然,現實生活中,這蛋糕師傅肯定被罵到臭頭,因為內藏的兩種餡料並沒有充分混合)
2.非線性可分支持向量機
實務上,許多數據屬於非線性的。面對非線性數據,我們可以透過核函數(Kernel Function ),利用增加維度的方式,將輸入空間(Input Space)對應到特徵空間(Feature Space),再藉由尋找最大「間隔超平面」的方式,來進行分類,如圖3所示。此時的間隔超平面,就有點像「庖丁解牛」,刀刃的平面在三度空間的關節處遊走的概念。
最後,與支持向量機(SVM)相關的,還有一個名詞稱為支持向量迴歸(Support Vector Regression, SVR)。支持向量迴歸(SVR)與支持向量機(SVM)只有些許的不同,支持向量迴歸(SVR)是支持向量機(SVM)的延伸。前面談到的支持向量機(SVM)是用來將資料進行分類,而支持向量迴歸(SVR)則能用來進行預測。
羅凱揚(台科大企管系博士)、蘇宇暉(台科大管研所博士候選人)
您可能有興趣: