--- tags: 機器學習技法 --- Ch6 Support Vector Regression === ## Content [TOC] ## [Slides & Videos](https://www.csie.ntu.edu.tw/~htlin/mooc/) ## RoadMap ![](https://i.imgur.com/OqbisDL.png) ## [Kernel Ridge Regression](https://www.youtube.com/watch?v=5uUob0VX83Y&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=23&t=0s) ### Recall: Representer Theorem ![](https://i.imgur.com/OoHZItC.png) - 回想一下 Representer Theorem,任何 L2-regularzed 的 linear model,最佳解 $w_*$ 都會是 (transformed) feature 的線性組合 - for any L2-regularized linear model $\min_\limits w \frac\lambda Nw^Tw+\frac 1N\sum_nerr(y_n,w^Tz_n)$ - optimal solution $w_*=\sum_n\beta_nz_n$ - 所以任何 L2-regularized linear model 都可以被 kernelize - linear regression 做 L2-regularization 就變 ridge regression - $err(y,w^Tz)=(y-w^Tz)^2$ - **我們接下來就要把 ridge regression 給 kernelize,而且希望它跟 linear regression 一樣,有一步登天的解 (analytic/closed-form solution)** ### Kernel Ridge Regression Problem ![](https://i.imgur.com/BwjhNSC.png) - 直接把 $w_*=\sum_n\beta_nz_n$ 帶入 ridge regression 的 objective function,然後把 $z^Tz'$ 用 $K(x,x')$ 帶入 - 得到 $\min_\limits\beta\frac\lambda N\sum_n\sum_m\beta_n\beta_mK(x_n,x_m)+\frac 1N\sum_n(y_n-\sum_m\beta_mK(x_n,x_m))$ - $=\frac\lambda N\beta^TK\beta+\frac 1N(y-K\beta)^2$ - > Q: 這裡不太知道怎變的,可能要自己算一下 - $=\frac\lambda N\beta^TK\beta+\frac 1N(\beta^TK^TK\beta-2\beta^TK^Ty+y^Ty)$ - 這樣問題就只剩下解 $\beta\in\mathbb R^N$ ### Solving Kernel Ridge Regression ![](https://i.imgur.com/0iNuGBO.png) - $E_{aug}=\frac\lambda N\beta^TK\beta+\frac 1N(\beta^TK^TK\beta-2\beta^TK^Ty+y^Ty)$ - 可以發現這是一個 $\beta$ 的二次式,來看看對 $\beta$ 的 gradient 怎麼算 - 對 $\lambda\beta^TK\beta$ 偏微分 - 得到 $2\lambda K\beta$,而 $K$ 是 symmetric 的,所以 $K=K^T$ - $=2\lambda K^TI\beta$ - 對 $\beta^TK^TK\beta-2\beta^TK^Ty+y^Ty$ 偏微分 - 得到 $2K^TK\beta-2K^Ty$ - 所以 $\nabla E_{aug}(\beta)=\frac 2N(\lambda K^TI\beta+K^TK\beta-K^Ty)=\frac 2NK^T((\lambda I+K)\beta-y)$,若希望它等於 0,那麼 - 一種可能的解是 $(\lambda I+K)\beta-y=0$,這時候 $\beta=(\lambda I+K)^{-1}y$ - 而 $\lambda I+K$ 一定是 invertible 因為 $K$ 是半正定 (positive semi-definite),可以複習 Mercer's condition - 但是這樣要花 $O(N^3)$ 的 time complexity - **現在終於可以透過 kernel 直接去 closed-form 解 $\mathcal Z$ 空間中的問題了。** ### Linear versus Kernel Ridge Regression ![](https://i.imgur.com/dSfwAh4.png) - linear ridge regression - $\lambda I+X^TX$ 是 $d\times d$ 維 - 只能 linear - time complexity 較低 - training $O(d^3+d^2N)$ - prediction $O(d)$ - kernel ridge regression - $\lambda I+K$ 是 $N\times N$ 維 - 可以 feature transform - time complexity 較高 - training $O(N^3)$ - prediction $O(N)$ - 計算資源多可以用 kernel,data 量太大不適合用 kernel ### Fun Time: Kernel Ridge Regression ![](https://i.imgur.com/il0oW2V.png) - 直接把 $w_*=\sum_n\beta_nz_n$ 帶進去 - > Q: 這裡的 $w$ 應該已經包含 $b$ 嗎? ## [Support Vector Regression Primal](https://www.youtube.com/watch?v=rMTD31FFY3g&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=24&t=0s) ### Soft-Margin SVM versus Least-Squares SVM ![](https://i.imgur.com/rSFqQHh.png) - 之前在基石課說過,regression 得到的 weights 也可以拿來做 classification - **用 kernel ridge regression 來做 classification 就叫做 least-squares SVM,簡稱 LSSVM** - 叫他 least-squares 就是在強調它的 error function 是 squared error - 之前的 soft-margin Gaussian SVM 跟 現在的 Gaussian LSSVM 有啥差別? - 學出來的 boundary 幾乎一樣,但是 LSSVM 的 support vectors 數量多很多,因為 $\beta$ 大多不是 0 - 會導致 predict 速度很慢 - 圖中方框框就是 support vectors - kernel logistic regression 其實也類似,$\beta$ 大多不是 0 - **那能不能在做 regression 的時候,做出 sparse 的 representation $\beta$ 呢?** ### Tube Regression ![](https://i.imgur.com/SFDmUft.png) - > Q: x軸? y軸是 $y$ 和 $\hat y$? - 落在 tube(管子) 範圍內就當 error 是 0 - $|s-y|\leq\epsilon$:$0$ - 落在 tube 外面就計算它到 tube 的差距(y軸距離) - $|s-y|>\epsilon$:$|s-y|-\epsilon$ - **所以可以把 error measure 寫成 $err(y,s)=\max(0,|s-y|-\epsilon)$** - **通常被稱為 $\epsilon$-insensitive error** - $\epsilon >0$ ### Tube versus Squared Regression ![](https://i.imgur.com/SU7T7gl.png) - tube:$err(y,s)=\max(0,|s-y|-\epsilon)$ - squared:$err(y,s)=(s-y)^2$ - 比較一下 tube 和一般的 squared regression - 當誤差小的時候,tube 和 squared regression 是差不多的 - 當誤差大的時候,squared error 會極速放大 error,所以 squared 更容易受到 outlier 影響 - 等等會說,tube regression 可以找到更 sparse 的 solution(representation?)。 ### L2-Regularized Tube Regression ![](https://i.imgur.com/csBbzP9.png) - L2 regularized tube regression 的 optimization problem $\min_\limits w\frac\lambda Nw^Tw+\frac 1N\sum_n\max(0,|w^Tz_n-y_n|-\epsilon)$ - 一般的 SVM 比 L2-regularized tube regression 多了些好處 - 雖然跟 tube 一樣不是處處可微,但是可以用 QP 解 - 雖然跟 tube 一樣都有 kernel trick,但是 - SVM 是利用 dual 和 KKT conditions 導致解有 sparsity - 而 regularized tube regr. 是利用 representer theorem 來做 kernelize,因此並沒有 sparsity - 那我們就來模仿一下 SVM 的 optimization problem,把原本的 L2 regularized tube 改成這樣,希望可以和 SVM 產生連結。 - $\min_{b,w}\frac 12w^Tw+C\sum_n\max(0,|w^Tz_n+b-y_n|-\epsilon)$ - 把 $b$ 從 $w$ 中獨立出來,把 $\lambda$ 變成 $C$ ### Standard Support Vector Regression Primal ![](https://i.imgur.com/jUdekcv.png) - 複習 [soft-margin SVM primal](https://hackmd.io/@johnnyasd12/BJ2kx1oy8#Soft-Margin-SVM) - 想和 SVM 相似,我們就設置一些可以違反的量 $\xi$,把 $\xi$ 加到 minimize 的 objective function 還有 constraint 中 - 得到 optimization problem - $\min_\limits{b,w,\xi}\quad\frac 12w^Tw+C\sum_n\xi_n$ - $\text{s.t.}\quad|w^Tz_n+b-y_n|\leq\epsilon+\xi_n\\\qquad \xi_n\geq 0$ - 但是這樣不是 quadratic programming 的 problem,因為 constraint 有絕對值,所以把 violation 拆成兩個 - 這樣就是一個標準的 Support Vector Regression (SVR) 的問題。 - minimize regularizer - upper tube violation $\xi_n^\land$ - lower tube violation $\xi_n^\lor$ ### Quadratic Programming for SVR ![](https://i.imgur.com/moFIgst.png) - $C$ 用來控制 regularization 和 tube violation 之間的 trade-off - $\epsilon$ 用來控制 tube 的 (y軸)寬度 - 終於成了一個 QP 問題 - $\tilde d+1+2N$ 個 variables - $2N+2N$ 個 constraints - **再跟之前一樣轉成 dual problem 之後用 kernel trick,就可以移除 $\tilde d$ 的依賴。** ### Fun Time: SVR Primal ![](https://i.imgur.com/QluAIQi.png) ## [Support Vector Regression Dual](https://www.youtube.com/watch?v=0ZIKMdSAJio&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=25&t=0s) ### Lagrange Multipliers $\alpha^\land$ & $\alpha^\lor$ ![](https://i.imgur.com/SIA8pE8.png) - 我們把 $|y_n-w^Tz_n-b|\leq\epsilon+\xi_n$ 拆成 $2N$ 個 constraint,所以共有 $2N$ 個 Lagrange multiplier $\alpha$ - 回想之前 $\xi_n>0$ 對應到的 Lagrange multiplier,其實都可以被 $\alpha$ 表示,所以就不寫了,專心解 $\alpha$ - > Q: 忘記在哪了ㄎㄎ - 接下來幾乎就是重複 [Lec2](https://hackmd.io/@johnnyasd12/HkyoeuCRS#Starting-Point-Constrained-to-%E2%80%98Unconstrained%E2%80%99) 或 [Lec4](https://hackmd.io/@johnnyasd12/BJ2kx1oy8#Lagrange-Dual) 做過的事情,像是 - 把 Lagrange multiplier 乘上 constraint 加進 objective function 就得到 Lagrange function - KKT condition - 解 Lagrange function 對 $w,b$ 偏微分等於 0 - complementary slackness:Lagrange multiplier 和 constraint 乘積為 0 - 剩下的 dual problem 推導都和 Lec4 差不多,留給我們自己做 - > Q: 懶得做ㄏㄏ,下次ㄅ ### SVM Dual and SVR Dual ![](https://i.imgur.com/6qcNIvU.png) - 下面的藍色就是從上面的藍色來的,依此類推 - > Q: 之後再複習前面的ㄅ - 原本 SVM 的 primal 跟 dual 其實都跟 SVR 很像 - 可以用類似的 QP solver 來解 ### Sparsity SVR Solution ![](https://i.imgur.com/uPYFz2C.png) - 當 data 在 tube 內部(不在 boundary 上),則 - $|w^Tz_n+b-y_n|<\epsilon$ - $\xi_n^\land=\xi_n^\lor=0$ - 就導致了 $\beta_n=0$ - 所以 support vectors 只能在 tube boundary 上或外面,也就是有了 sparse 的 $\beta$ ### Fun Time: SVR Dual ![](https://i.imgur.com/F95QePc.png) ## [Summary of Kernel Methods](https://www.youtube.com/watch?v=9OBWkHnzr2k&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=26&t=0s) ### Map of Linear Models ![](https://i.imgur.com/kwE0FsK.png) - column 1:解 classification 問題 - column 2:解 regression 問題 - column 3:解 soft classification 問題 - row 2:在 LIBSVM 常用 ### Map of Linear/Kernel Models ![](https://i.imgur.com/EvEK6Tt.png) - row 4:在 LIBSVM 常使用 - row 1:較少使用因為 performance 較差 - row 3:較少使用,因為 $\beta$ 很 dense,預測要花較多力氣 ### Kernel Models ![](https://i.imgur.com/GnImLrH.png) ### Summary ![](https://i.imgur.com/rgkkeYK.png)