iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 22
0
AI & Machine Learning

機器學習你也可以 - 文組帶你手把手實做機器學習聖經系列 第 22

SVM - Hard Margin

昨天提到margin是

hard margin SVM就是很單純的要最大化這個式子,所以完整寫下來會是

min裡面的 w 因為與最小化沒有關係,所以可以拉出來。不過這個最大化最小化的問題很難解,所以我們必須把他轉到一個容易求解的等價問題,我們利用一個性質。在最小化的那一段,我們可以發現,把他乘上一個常數,不會影響到最小的 n 是哪一個,他現在是最小的,大家一起乘一百倍他還是最小。所以我們直接令最小化那段等於一,而在這樣的情況,所有 n 都會滿足

接著我們

要解這邊的的有條件最佳化問題,我們使用lagrange multiplier得到

接著把這個式子分別對 w 與 b 微分,並且令其為零,求最佳解條件,得到

接著把這兩個帶回lagrange得到

限制條件有

這邊的kernel是

解這個 L 是一個二次規劃的問題,可以透過很多方式求解,建議大家可以使用smo的方法,不過這個跟svm比較沒關係,所以這邊不多做介紹,若來日有空再跟大家介紹smo的論文。透過smo得到每一個 a 的值之後,我們可以把最開始的分類邊界重新寫成

且必須滿足

根據KKT condition,這樣可以導出這個最佳解的充要條件

且兩者不可同時為零

可以發現當 a 是零的情況,在 y(x) 中,他不會有任何幫助,反之則會用到,所以 a 非零向量我們稱為support vector(支撐向量),我們預測的時候只會用到這些點,剩下的全部不會用到。而又因為support vector的 a 大於零,因此support vector對應的 必定是零,我們就可以以此去算出 b 出來。

這樣我們就可以完成一個最簡單的SVM了,流程就是

  • 以smo算出 a ,便可得到 support vector

  • 利用support vector計算 b

  • 為分類邊界(正負值對應二元分類)

然而實際的情況常常不是線性可分的資料,所以我們需要更進一步的推廣SVM到soft margin,明天跟大家介紹!


上一篇
SVM - 前言
下一篇
SVM - Soft Margin
系列文
機器學習你也可以 - 文組帶你手把手實做機器學習聖經30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言