ML Lecture 20: Support Vector Machine

  • 先以+1和-1表示兩個分類
    • 表示第一筆資料到第n筆資料的label,值為+1或-1
    • 我們期望 乘積越大 越好,因此 越大,loss應該要越小
    • 理想狀況是: 為正,則loss=0,為負,則loss=1,但是這個loss function無法微分,不能做gradient descent
    • hinge loss: 只要 loss就是0,否則 越小,loss越大
      • hinge loss 比較不怕 outlier
      • 使用 hinge loss,當 時,只要 ,loss就是0;當 時,只要 ,loss 就是0

Linear SVM

  • hinge loss 是 convex function
  • regularization term 也是 convex function
  • 相加仍為 convex function,gradient descent做起來相當簡單
  • 與 logistic regression 唯一的差別是 loss function ,使用 cross entropy 就是 LR,使用 hinge loss 就是 linear SVM

  • 可以有deep structure

  • 也可以使用 gradient descent 解

gradient descent

結論:

  • depends on 參數 可以用 來代替

Linear SVM - another formulation (我們熟悉的 SVM 樣貌)


注意上圖兩個紅框框裡面的式子代表不一樣的意義

  • 但是因為 loss function 要 minimize ,下面的紅色框就和上面的紅色框相同了

損失函數

  • : hinge loss,即
  • : regularization項

現在把 hinge loss 換成 ,即

而我們想 minimize loss 的時候, 這件事等同於

也就是說當我們無法達到 時, 可以放寬我們的標準(根據2式),故 又名 slack variable

Dual Representation

而最後解出來的 w 可以視為 data point 的 linear combination,即

WHY?
一般會使用 Lagrange Multiplier 解出之前提到的式子來證明,不過現在用 gradient descent 的觀點來看這件事
Gradient Descent 對於第i維的w,update

也就是

以 hinge loss 而言,大多數的 會等於0,也就是 中大多數的 會等於0,只有幾個 data point 的係數不為0,而係數不為0的那些 ,就被稱為 support vector。 若w初始化為0,則最後得到的w會是 data point 的 linear combination。而使用 data point 的 linear combination 做為w的好處是,可以使用到 kernel method

kernel method

, 所以 我們又可以把 寫成 因此 中,只有是未知的,也就是說我們的目的是找出使得 loss function 最小

因此我們只需要知道 是多少,並不需要知道 這個 vector 是長什麼樣子

Kernel Trick

當我們要把所有的 transform 成 時,kernel trick 很有用 Q: 的定義就是兩個 vector 做完 feature transform 之後的內積 嗎???

舉例 1

  • 這是土法煉鋼的算法
  • 我們可以把上面那個 的結果轉換成 ,這樣可以省下許多計算
    • 個人理解:假設 維的 vector; 維的 vector,則計算 都需要 次計算、計算 需要 次計算。因此一共至少要進行 次計算
    • 而直接計算 則只需要 次計算

舉例 2

  • 把 x 的部分串成一個 vector 就是
  • 把 z 的部分串成一個 vector 就是

舉例 3 - Radial Basis Function Kernel

如果把 視為一個 kernel ,則 feature transform 的維度會是無窮大,為什麼?

  • 只和 有關,因此我們用 表示它;同理,我們用 來表示
  • 用泰勒展開會得到後面那行的結果 (可以視為無窮多維的 feature inner product)

RBF kernel因為是投射到無窮多維,所以比較容易overfitting

舉例 4 - Sigmoid Kernel

Sigmoid kernel 就像是單層 hidden layer 的 NN,而 neuron 的數目相當於 support vector 的數目

自訂 kernel function

也可以自訂kernel function,用類似similarity方式定義

  • 當 x 是 structured object,很難設計一個 ,很適用 kernel function
  • 而 是否可以視為兩個 feature transform 的 inner product 可以用 Mercer's theory 檢查。

Deep Learning 和 SVM 的異同

results matching ""

    No results matching ""