Just a Computer Graphics Studio & My Life

支持向量機器 (Support vector machine)通常用在機器學習 (Machine learning)。是一種監督式學習 (Supervised Learning)的方法,主要用在分類 (Classification)回歸 (Regression)上。現今多數人多簡稱之為SVM,在此來個SVM概念教學。

註:監督式學習,是一個機器學習中的技巧,可以由訓練資料中學到或建立一個模式(function / learning model),並依此模式推測新的實例 (instances)。訓練資料(training data)是由輸入物件(通常是向量)和預期輸出所組成。函數的輸出可以是一個連續的值(稱為迴歸分析),或是預測一個分類標籤(稱作分類)。

這次是我第三次聽課學SVM了!數學理論我頂多懂一半,但其實如果只想知道概念的話其實非常簡單。

首先我們想知道為什麼這個技術要叫做支持向量機器 (Support Vector Machine),而其中支持向量 (Support Vector)是指在訓練資料集 (Training data set)中,用於分類上給予最多資訊的點,其會落在如圖中所示的紅色框起來的資料點。

SVM是一個可以同時運用於線性非線性資料的分類演算法。它將原始資料轉換到更高的維度 (dimension),從這些維度上,它可以利用在訓練資料集 (training data set)中所謂的super vectors來找到hyperplane,以用來分類資料。SVM主要是在尋找具有最大margin的hyperplane,也就是maximum marginal hyperplane,因為其具有較高的分類準確性,如圖中所示藍色箭頭指示的範圍。

我們來玩一下台大林智仁老師發展的LIBSVM吧~

先在黑色畫面中點出三種類別的資料。

跑出結果很完美地被分為三個區塊。

這時候我們很好奇,如果無法很漂亮地被區分,那麼會跑出什麼樣的結果?

如果對分類結果不滿意的話,還可以調整參數來達到理想效果。

以下參考連結有更詳盡的SVM教學。

參考:宅學習 – 一個介紹SVM的網頁piaip 的 (lib)SVM 簡易入門、WiKi – 監督式學習、多媒體系統設計投影片 – SVMs、LIBSVM – A Library for Support Vector Machines

Advertisements

Comments on: "支持向量機器 (Support Vector Machine)" (6)

  1. 很清楚的概略介紹!
    btw
    第五段第三行的"super vector"是不是筆誤?
    應該是support vector?

    Liked by 1 person

  2. […] 既SVM實驗後,接著實驗高階的SVM。首先還是要瞭解支持向量機器 (Support Vector Machine)和非線性支持向量機器 (Non-linear SVMs),先前的SVM實驗也可以參考。 […]

    喜歡

  3. […] 剛把OpenCV更新到2.4.3版,來試驗一下它的SVM好不好用。首先當然要瞭解支持向量機器 (Support Vector Machine)和非線性支持向量機器 (Non-linear SVMs),先前的SVM實驗也可以參考。 […]

    喜歡

  4. […] 稍微瞭解支持向量機器 (Support Vector Machine)和非線性支持向量機器 (Non-linear SVMs)後,來使用OpenCV做個小小的實驗。 […]

    喜歡

  5. […] 承接支持向量機器 (Support Vector Machine)的介紹之後,我們知道資料通常沒有那麼容易地被完美分類,那問題是不是就無解了呢?其實不然,如果用直線無法區分,那麼就用曲線來區分,然而曲線也會遇到障礙,而不得不讓資料混在錯的類別,如果我們提高層次來看待分類,那麼問題似乎就變得簡單了。 […]

    喜歡

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: