--- tags: 機器學習技法 --- Ch5 Kernel Logistic Regression === ## Content [TOC] ## [Slides & Videos](https://www.csie.ntu.edu.tw/~htlin/mooc/) ## [Soft-Margin SVM as Regularized Model](https://www.youtube.com/watch?v=Bc8bg5ZkRdk&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=18) ### Wrap Up (SVM) ![](https://i.imgur.com/2yMTNow.png) - 複習一下 - Hard-Margin Primal - Hard-Margin Dual - Soft-Margin Primal - Soft-Margin Dual - 實用的 library (台大 林志仁老師實驗室 開發) - LIBLINEAR:專門解 linear SVM - LIBSVM:專門解 kernel dual SVM ### Slack Variable $\xi_n$ ![](https://i.imgur.com/eNIV1E6.png) - 之前說過 - $\xi_n$ 可以看成是在記錄 data point 違反 fat boundary 的量 (margin violation) - 然後我們對 $\xi_n$ 加到 objective function 中做懲罰,希望可以一起 minimize - 不過我們可以用另外一種觀點看 $\xi_n$ - 若有違反 fat boundary,則 $\xi_n=1-y_n(w^Tz_n+b)$ - 若無違反 fat boundary,則 $\xi_n=0$ - **所以又可以寫成 $\xi_n=\max(1-y_n(w^Tz_n+b),0)$** - **這樣我們就可以把本來的 soft-margin SVM 問題寫成 'unconstrained' form $\min_\limits{b,w}\frac 12w^Tw+C\sum_n\max(1-y_n(w^Tz_n+b),0)$** - > 林老师,您好!请问下第三个slide里面,怎么确定the unconstrained form of soft-margin SVM 没有损失optimality呢?谢谢! >> 也許可以想想對每一組可能的 (w, b),constrained form 和 unconstrained form 所得到的objective value 是不是一樣的…… ### Unconstrained Form ![](https://i.imgur.com/Oxc8RMW.png) - 這個形式其實就跟 L2 regularization 的形式很像啊 - 差別只在 - 這裡的 $w$ 並不包含 $b$,是個比較短的 $w$ - 本來的 $\lambda$ 現在變成 $C$ 的形式 - error function $\widehat{err}$ 現在變得比較複雜 $\widehat{err}=\max(1-y_n(w^Tz_n+b),0)$ - 那怎不直接解這個問題? - 沒了 dual 和 QP,沒辦法用 kernel trick - $\max(\cdot,0)$ 函數並非處處可微,較難 optimize ### SVM as a Regularized Model ![](https://i.imgur.com/Czoa6t9.png) - 看一下**表格,比較這四種 model 的差異** - regularization by constraint - hard-margin SVM - L2 regularization - soft-margin SVM - 我們可以總結一下 - **large margin $\leftrightarrow$ 更少的 hypothesis $\leftrightarrow$ L2 regularization 想要的更短的 $w$** - **soft margin $\leftrightarrow$ 特別的 $\widehat{err}$** - **更大的 $C$ (不論是 regularization 的 constraint 還是 soft-margin SVM 的懲罰係數) $\leftrightarrow$ 更小的 regularization $\lambda$** - 用這種觀點看是希望 SVM 可以延伸到其他的 models,產生連結。 ### Fun Time: SVM as a Regularized Model ![](https://i.imgur.com/4cY7Y5U.png) ## [SVM versus Logistic Regression](https://www.youtube.com/watch?v=5K44AgZvcDk&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=19) ### Algorithmic Error Measure of SVM ![](https://i.imgur.com/ff10ftO.png) - 現在把 $w^Tz+b$ 看成是 score $s$ - > Q: 感覺應該把 slide 上的 $n$ 拿掉?要嘛寫 $s=w^Tz+b$ 要嘛寫 $s_n=w^Tz_n+b$ 吧? - 0/1 error 可以寫成 $err_{0/1}(s,y)=1[\![ys\leq 0]\!]$ - SVM error 可以寫成 $\widehat{err}_{SVM}(s,y)=\max(1-ys,0)$ - 畫圖可以看出 SVM error 是 0/1 error 的 upper bound - SVM error 又稱為 **hinge error measure** - SVM error 有兩個很好的性質: - **是 0/1 error 的 upper bound,所以做好 SVM error 就是間接的做好 0/1 error** - **SVM error 是 convex 的,所以很好 optimize** ### Connection between SVM and Logistic Regression ![](https://i.imgur.com/SeyBOao.png) - 再來看看 SVM 和 (scaled) logistic regression 的 error - $\widehat{err}_{SVM}=\max(1-ys,0)$ - $err_{SCE}=\log_2(1+\exp(-ys))$ - 複習一下基石,(scaled) logistic regression error 也是 0/1 error 的 upper bound - 注意要以 2 為底的 log 才會是 upper bound - 圖中的這一小段可以發現 SVM error 和 scaled cross entropy error 長得差不多 - 而且就算拉長來看,當 $ys$ 接近無限大或負無限大的時候,scaled logistic regression error 乘上一個常數也幾乎跟 SVM error 差不多 - $ys\rightarrow\infty$ - $\widehat{err}_{SVM}(s,y)=0$ - $\ln 2\cdot err_{SCE}(s,y)\approx 0$ - $ys\rightarrow -\infty$ - $\widehat{err}_{SVM}(s,y)\approx -ys$ - $\ln 2\cdot err_{SCE}(s,y)\approx -ys$ - **所以我們可以說 SVM 跟 L2-regularized logistic regression 非常相似** ### Linear Models for Binary Classification ![](https://i.imgur.com/tCeVW20.png) - 這邊又印證了一次,如果解了 regularized LogReg,那就幾乎等於是解了 SVM - ~~我有一個大膽的想法~~ 反過來說,如果解了 SVM,是不是就幾乎得到 logistic regression(以下簡稱 LogReg) 的解,那就可以把它的 weight 拿到 LogReg 裡面用來輸出 soft probability 呢? ### Fun Time: Error Measure of SVM ![](https://i.imgur.com/x6pZEQH.png) ## [SVM for Soft Binary Classification](https://www.youtube.com/watch?v=pNfvZYH5iFg&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=20) ### SVM for Soft Binary Classification: Naïve Idea ![](https://i.imgur.com/0xq6kHm.png) - 那我能不能讓 SVM 有 soft probability 的 output 呢? - Naïve Idea 1:直接解 SVM 的 weight 和 bias,然後代入 sigmoid function $\theta$ - 實務上會得到還不錯的解,因為 SVM 和 regularized LogReg 很相似 - **但是這樣就缺少了 LogReg 的思想,例如 maximum likelihood** - Naïve Idea 2:那就用解 SVM 得到的 weight 和 bias 當成 LogReg 的初始值 $w_0$ 來解 LogReg? - 其實直接解 LogReg 還比較快,因為它是 convex 的,很好解 - **而且這樣解也沒辦法做 kernel trick** - 那到底能不能融合 SVM 和 LogReg 各自的優點呢? ### A Possible Model: Two-Level Learning ![](https://i.imgur.com/51gwnZL.png) - 用 SVM 解出 $w_{SVM},b_{SVM}$ 之後 fix 住,在外面加上兩個自由度 $A,B$ 用 logistic regression 的 maximum likelihood 方式訓練 - 如果前面 SVM 解得好的話,通常之後解出來的 $A>0,B\approx 0$ - 我們可以把這種操作想成:先用 SVM 做 feature transform $\phi_{SVM}(x_n)=w_{SVM}^T\phi(x_n)+b_{SVM}$ 到一維,再做單維度的 logistic regression ### Probabilistic SVM ![](https://i.imgur.com/pverAkw.png) - 總結一下 - Probabilistic SVM 跟本來的 SVM boundary 不一定會一樣,因為有 $B$ 會 shift ($A$ 只是 scale 不影響) - 解 LogReg 在這邊只有兩個變數,可以用更簡單的 solver 解 - 我們並不是真的在 $\mathcal Z$ 空間找到 logistic regression 的解,而是在 $\mathcal Z'$ 空間解 LogReg - 那如果我們真的想在 $\mathcal Z$ 空間解出一個最好的 LogReg 該怎麼做?下節課會說明。 ### Fun Time: Probabilistic SVM ![](https://i.imgur.com/qQAcwSZ.png) ## [Kernel Logistic Regression](https://www.youtube.com/watch?v=AbaIkcQUQuo&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=21) ### Key behind Kernel Trick ![](https://i.imgur.com/31UOrZI.png) - 為什麼之前 SVM 可以用 kernel trick? - 因為我們在求 feature transform $\phi(x)$ 的內積 $z^Tz'$ - 既然如此,若我們可以把解出來的 $w_*$ represent 成 $z_n$ 的 linear combination,就可以用 kernel trick 來解這個問題。 - $w_*=\sum_n\beta_nz_n$ - $w_*^Tz=\sum_n\beta_nz_n^Tz=\sum_n\beta_nK(x_n,x)$ - 其實我們之前就學過這樣的 algorithm 啦,複習 - SVM - PLA - LogReg by SGD - 那什麼時候最好的 $w_*$ 可以 represented by 這些 $z_n$ 呢? ### Representer Theorem ![](https://i.imgur.com/xiKzBrU.png) - **Representer Theorem:任何 L2-regularized 的 linear model,它得到的 optimal solution 會是所有 $z_n$ 的 linear combination。** - 也就是說 - for any $\min_\limits w\dfrac\lambda Nw^Tw+\dfrac 1N\sum_\limits{n=1}^N err(y_n,w^Tz_n)$ - optimal $w_*=\sum_\limits{n=1}^N\beta_nz_n$ - 這麼猛的嗎?證明? - 這部分可能需要回想一些**線性代數**了 - 來,假設 optimal solution $w_*=w_\|+w_\perp$ - $w_\|\in span(z_1,z_2,...,z_N)$ - $w_\perp\perp span(z_1,z_2,...,z_N)$ - 也就是說 $w_*$ 可以分解成 - 落在 span 中的 vector $w_\|$ - 垂直於 span 的 vector $w_\perp$ - representer theorem 告訴我們 $w_\perp=0$,那我們就用反證法先假設 $w_\perp\neq 0$ - 發現 $err(y_n,w_*^Tz_n)=err(y_n,(w_\|+w_\perp)^Tz_n)=err(y_n,w_\|^Tz_n)$,$w_*$ 和 $w_\|$ 的 error function 有相同值 - 然後 $w_*^Tw_*=w_\|^Tw_\|+w_\perp^Tw_\perp>w_\|^Tw_\|$,發現 $w_\|$ 居然比 $w_*$ 還要更 optimal,矛盾! - 所以 $w_\perp=0$,得證。 - **我們在這邊知道了,任何 L2-regularized 的 linear model 都可以被 kernelize** ### Kernel Logistic Regression ![](https://i.imgur.com/YjGvBSp.png) - 既然我們知道 **L2 regularized linear model 的 optimal solution $w_*$ 可以表示成 $\sum_n\beta_nz_n$**,就來 kernelize 一下 L2-regularized logistic regression 好ㄌ - 那麼把符號代換一下就可以得到新的 optimization problem - $\min_\limits\beta \frac\lambda N\sum_\limits{n=1}^N\sum_\limits{m=1}^N\beta_n\beta_mK(x_n,x_m)+\frac 1N\sum_n\log(1+\exp(-y_n\sum_\limits{m=1}^N\beta_mK(x_m,x_n)))$ - **現在成了優化 $\beta_1,...,\beta_N$ 的 unconstrained optimization** ### Kernel Logistic Regression (KLR): Another View ![](https://i.imgur.com/FmSz0fO.png) - 我們也可以把算出來的分數 $\sum_m\beta_mK(x_m,x_n)$ 看成是 $\beta$ vector 和 feature transformed data $K(x_n)$ 的 inner product - $\beta = [\beta_1, \beta_2, ..., \beta_N]^T\in\mathbb R^N$ - $K(x_n)=[K(x_1,x_n),K(x_2,x_n),...,K(x_N,x_n)]^T\in\mathbb R^N$ - **因為 $K(x_n)$ 可以看成是對 $x_n$ 做某種 feature transform,output vector 是它和其他所有 data point 之間的相似性,而 $\beta$ 就扮演了這些 feature 的 weight。** - 而左邊那項可以想成是 special regularizer $\beta^TK\beta$,比平常的 regularizer 多了 $K$ 矩陣做些縮放轉換而已。 - 所以 KLR 可以有兩種觀點 - 可以看成是 $\beta$ 的 linear model,而 kernel function 是 transform 並有 kernel regularizer - 也可以看成是 $w$ 的 linear model,而 $\phi$ 是 (藏在 kernel function 裡的) transform,並有一般的 L2-regularizer - 這些解釋也可以套到 SVM 上 - > Q: 幹這段好玄哦什麼 Gaussian SVM 給你一堆 Gaussian 的 linear combination 下次再回來看好ㄌ - **但是這些 $\beta_n$ 大部分都不是 0,跟 SVM 差很多。** ### Fun Time: ![](https://i.imgur.com/ibMLR1O.png) ### Summary ![](https://i.imgur.com/9c10h9q.png) - 剛剛講的是 kernel for LogReg,**下次要講 kernel for 一般的 regression 問題。**