iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 7
0

我們來回顧一下 SVM 模型。

https://chart.googleapis.com/chart?cht=tx&chl=%5Cbegin%7Balign%7D%20%5Carg%5Cmin_%7B%5Cmathbf%7Bw%7D%2C%20b%2C%20%5Cmathbf%7B%5Cxi%7D%7D%20%26%5C%20%5C%20%5C%20%5C%20%20%20%20%20%20%5Cfrac%7B1%7D%7B2%7D%20%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bw%7D%20%2B%20C%20%5Csum%20_%7Bn%3D1%7D%5EN%20%5Cxi_n%20%5C%5C%5C%5C%20%5Cend%7Balign%7D

https://chart.googleapis.com/chart?cht=tx&chl=%5Cbegin%7Balign%7D%20%5Ctext%7Bsubject%20to%7D%20%26%5C%20%5C%20%5C%20%5C%20%20%20%20%20%20%5Cforall%20i%2C%20y_i%20(%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bx_i%7D%20%2B%20b)%20%5Cge%201%20-%20%5Cxi_n%20%5C%5C%5C%5C%20%5Cend%7Balign%7D

https://chart.googleapis.com/chart?cht=tx&chl=%5Cbegin%7Balign%7D%20%5Ctext%7B%20%7D%20%26%5C%20%5C%20%5C%20%5C%20%20%20%20%20%20%5Cforall%20n%2C%20%5Cxi_n%20%5Cge%200%20%5Cend%7Balign%7D

他可以被進一步轉成

https://chart.googleapis.com/chart?cht=tx&chl=%5Cbegin%7Balign%7D%20%5Carg%5Cmin_%7B%5Cmathbf%7Bw%7D%2C%20b%7D%20%26%5C%20%5C%20%5C%20%5C%20%20%20%20%20%20%5Cfrac%7B1%7D%7B2%7D%20%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bw%7D%20%2B%20C%20%5Csum%20_%7Bn%3D1%7D%5EN%20max(1%20-%20y_i%20(%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bx_i%7D%20%2B%20b)%2C%200)%20%5C%5C%5C%5C%20%5Cend%7Balign%7D

在 SVM 的陳述當中,有沒有發現 https://chart.googleapis.com/chart?cht=tx&chl=%5Cfrac%7B1%7D%7B2%7D%20%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bw%7D 這部份看起來跟 https://chart.googleapis.com/chart?cht=tx&chl=l_2 regularization 一樣。後半部份是跟誤差有關。

如果分類分對的話,https://chart.googleapis.com/chart?cht=tx&chl=y_i%20(%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bx_i%7D%20%2B%20b) 就會是大於等於 1,這樣的話後面整項計算起來就會是 0。

如果分類分對但是離線太近的話,https://chart.googleapis.com/chart?cht=tx&chl=y_i%20(%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bx_i%7D%20%2B%20b) 就會是小於 1,這樣後面整項會是一個小於 1 的值,代表離線太近了,算是些微的誤差。

如果分類都分錯,https://chart.googleapis.com/chart?cht=tx&chl=y_i%20(%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bx_i%7D%20%2B%20b) 根本就是負值,後面整項會是一個大於 1 的值,代表離線太遠了,算是很大的誤差。

Hinge error

這樣的誤差計算方式稱為 hinge error,也就是:

https://chart.googleapis.com/chart?cht=tx&chl=E(y%2C%20%5Chat%7By%7D)%20%3D%20max(1%20-%20y%5Chat%7By%7D%2C%200)

https://chart.googleapis.com/chart?cht=tx&chl=l_2 -regularized linear model

所以我們根本可以把模型看成是一個 https://chart.googleapis.com/chart?cht=tx&chl=l_2 -regularized 的線性模型。

https://chart.googleapis.com/chart?cht=tx&chl=%5Carg%5Cmin_%7B%5Cmathbf%7Bw%7D%2C%20b%7D%20%5Cfrac%7B1%7D%7B2%7D%20%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bw%7D%20%2B%20C%20%5Csum%20_%7Bn%3D1%7D%5EN%20E(y%2C%20%5Chat%7By%7D)

不懂 regulariztion 的朋友請左轉 我之前寫過的鐵人文章

基本上,你想把誤差函數換成其他的東西都可以,像是變成 kernel https://chart.googleapis.com/chart?cht=tx&chl=l_2 -regularized linear regression (kernel ridge regression)。

https://chart.googleapis.com/chart?cht=tx&chl=y%20%3D%20%5Cmathbf%7Bw%7D%5ET%5Cphi(%5Cmathbf%7Bx%7D)%20%2B%20b%20%5C%5C%5C%5C%20E(y%2C%20%5Chat%7By%7D)%20%3D%20%5Cfrac%7B1%7D%7BN%7D%20(y%20-%20%5Chat%7By%7D)%5E2%20%5C%5C%5C%5C%20%5Carg%5Cmin_%7B%5Cmathbf%7Bw%7D%2C%20b%7D%20%5Cfrac%7B1%7D%7B2%7D%20%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bw%7D%20%2B%20C%20%5Csum%20_%7Bn%3D1%7D%5EN%20E(y%2C%20%5Chat%7By%7D)

或是你想要 kernel https://chart.googleapis.com/chart?cht=tx&chl=l_2 -regularized logistic regression。

https://chart.googleapis.com/chart?cht=tx&chl=y%20%3D%20%5Cmathbf%7Bw%7D%5ET%5Cphi(%5Cmathbf%7Bx%7D)%20%2B%20b%20%5C%5C%5C%5C%20E(y%2C%20%5Chat%7By%7D)%20%3D%20%5Cfrac%7B1%7D%7BN%7D%20log(1%20%2B%20exp(-y%5Chat%7By%7D))%20%5C%5C%5C%5C%20%5Carg%5Cmin_%7B%5Cmathbf%7Bw%7D%2C%20b%7D%20%5Cfrac%7B1%7D%7B2%7D%20%5Cmathbf%7Bw%7D%5ET%5Cmathbf%7Bw%7D%20%2B%20C%20%5Csum%20_%7Bn%3D1%7D%5EN%20E(y%2C%20%5Chat%7By%7D)


上一篇
07 標準 SVM
下一篇
09 從線性迴歸到羅吉斯迴歸
系列文
機器學習模型圖書館:從傳統模型到深度學習31

尚未有邦友留言

立即登入留言