--- tags: 機器學習技法 --- Ch2 Dual Support Vector Machine === ## Content [TOC] ## [Slides & Videos](https://www.csie.ntu.edu.tw/~htlin/mooc/) ## [Motivation of Dual SVM](https://www.youtube.com/watch?v=VUp-17l03lk&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=6) - dual SVM 可以看成 SVM 的另外一種形式 ### Non-Linear Support Vector Machine Revisited ![](https://i.imgur.com/53GbQz5.png) - 當 non-linear transformed feature 的維度 $\tilde d$ 很大的時候,QP 就比較難解 - 能不能讓 SVM 不受 $\tilde d$ 限制呢? ### Todo: SVM 'without' $\tilde d$ ![](https://i.imgur.com/gC7in34.png) - 本來的 SVM - $\tilde d+1$ 個 variables - $N$ 個 constraints - 希望解一個對等的問題 - $N$ 個 variables - $N+1$ 個 constraints - 這邊其實牽扯到一些滿深入的最佳化理論,等等不會推導,直接說明最佳化理論告訴我們了什麼現象。 - 接下來要解的對等的問題我們稱為原來 SVM 的 **dual problem** ### Key Tool: Lagrange Multipliers ![](https://i.imgur.com/WshSJNe.png) - 複習一下 [Lagrange Multipliers](https://hackmd.io/@johnnyasd12/Hyse98wCS#The-Lagrange-Multiplier) 就是把 constraint 乘上一個係數 $\lambda$ 然後加到 objective function 裡面去 (?) - 本來給我 $C$ 的話很難解,改成給我 $\lambda$ 就很好解 - 現在 SVM 也會用到 Lagrange Multiplier,只是這次是把 $\lambda$ 當成變數,直接解。 - SVM 裡的每一個條件,就會對應到一個 Lagrange Multiplier - 所以我們**有 $N$ 個 Lagrange Multiplier** - 最後就會變成對偶問題 dual problem ### Starting Point: Constrained to 'Unconstrained' ![](https://i.imgur.com/5W8lkYR.png) - 之前的 Lagrange Multiplier 我們叫它 $\lambda$,不過在 SVM 的文獻裡面通常叫它 $\alpha$ - 本來的問題 - 目標 $\min_\limits{b,w}\frac 12w^Tw$ - 條件 $1-y_n(w^Tz_n+b)\leq 0 ,\forall n\in\{1,2,...,N\}$ - 為何要**把本來 $y_n(w^Tz_n+b)\geq 1$ 整理成現在小於等於 0 的形式,** 等等就知道 - 用 Lagrange Multiplier 我們就可以把本來的問題寫成看似 unconstrained 的形式 - $\mathcal L(b,w,\alpha)=\frac 12w^Tw+\sum_\limits{n=1}^N\alpha_n(1-y_n(w^Tz_n+b))$ - 注意這裡的 $\alpha$ 是 $N$ 維向量 - 可是這樣改的話我們解的問題就不會跟原本一樣了啊 - 所以我們要把問題改成這樣的架構 - $\min_\limits{b,w}(\max_\limits{\text{all}\,\alpha_n\geq 0}\mathcal L(b,w,\alpha))$ - 這句是什麼意思?就是今天任何一組 $b,w$ 進來我都去調整 $\alpha$,使得 Lagrange function $\mathcal L(b,w,\alpha)$ 最大,之後再去找可以最小化結果的 $b,w$ - 用這樣 min-max 的形式才能保證解的問題跟本來一樣,為什麼呢? - 如果今天這組 $b,w$ 違反了本來的任何條件(有任何一個 $n$ 它的 $y_n(w^Tz_n+b)\geq 1$,裡面的 $\max$ 那一項就會變無限大,那麼外面的 $\min_\limits{b,w}$ 就不會挑這組 $b,w$ - **如果今天這組 $b,w$ 沒有違反本來的任何條件 (即所有 $1-y_n(w^Tz_n+b)$ 都小於等於 0),那 $\max$ 那一項會使得所有的 $\alpha_n(1-y_n(w^Tz_n+b))=0$,** 那麼外面 minimize 的就是 $\frac 12w^Tw$ 本身,分開討論如下: - 當 $1-y_n(w^Tz_n+b)<0$,則 $\alpha_n$ 為了 maximize 就會變成 0 - 當 $1-y_n(w^Tz_n+b)=0$,則 $\alpha_n$ 是多少乘起來都會是 0。***乾那要怎麼選 $\alpha_n$?*** - **也就是說 $1-y_n(w^Tz_n+b)$ 和 $\alpha_n$ 至少其中一個要是 $0$** ,等等講 **KKT condition 會提到,這叫 complementary slackness** - **這也是為什麼剛剛要把 constraints 整理成小於等於 0 的形式吧** - 所以我們的 constraints 其實隱藏在 min-max 的 optimization problem 裡面,那麼在做 $b,w$ 的 minimize 的時候,看起來是不需要考慮任何條件的。 - 太神拉~~~~~ ### Fun Time: Lagrange Multiplier for SVM ![](https://i.imgur.com/JiJyKcg.png) ## [Largange Dual SVM](https://www.youtube.com/watch?v=Yhwtvbzg9Fw&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=7) ### Lagrange Dual Problem ![](https://i.imgur.com/ZjfMqNK.png) - 好ㄌ我們現在有個新的最佳化問題 - 有個 Lagrange 函數 $\mathcal L(b,w,\alpha)$ - 注意這裡的 $\alpha$ 是 $N$ 維向量 - 要先對 $\alpha$ 做最大化 $\max_\limits{\forall \alpha_n\geq 0}\mathcal L(b,w,\alpha)$ - 再對 $b,w$ 做最小化 $\min_\limits{b,w}\max_\limits{\forall \alpha_n\geq 0}\mathcal L(b,w,\alpha)$ - 最佳化問題 $\min_\limits{b,w}\max_\limits{\forall \alpha_n\geq 0}\mathcal L(b,w,\alpha)$ - 對於任何(符合條件 $\forall \alpha'_n\geq 0$)的 $\alpha'$ 而言,$\max_\limits{\forall \alpha_n\geq 0}\mathcal L(b,w,\alpha)\geq \mathcal L(b,w,\alpha')$ - 在外面包一個 min 不等式也一樣成立$\min_\limits{b,w}\max_\limits{\forall \alpha_n\geq 0}\mathcal L(b,w,\alpha)\geq \min_\limits{b,w}\mathcal L(b,w,\alpha')$ - 既然對於任何的 $\alpha'$ 都成立 $\min_\limits{b,w}\max_\limits{\forall \alpha_n\geq 0}\mathcal L(b,w,\alpha)\geq \min_\limits{b,w}\mathcal L(b,w,\alpha')$ - (注意要符合條件 $\alpha'_n\geq 0,\forall n\in\{1,...,N\}$) - 那麼當然 $\min_\limits{b,w}\max_\limits{\forall \alpha_n\geq 0}\mathcal L(b,w,\alpha)\geq \max_\limits{\forall\alpha'_n\geq 0}\min_\limits{b,w}\mathcal L(b,w,\alpha')$ - 有謎有發現 **min 跟 max 對調**了嘿嘿 - 那個 $\alpha'$ 的 $'$ 其實可以不用寫 - > Q: WHY?? - **min 跟 max 這樣交換之後的問題稱為 Lagrange dual problem** - 它是由 Lagrange function 導出來的 - 我把 Lagrange dual problem 解決了,就得到原來問題解法的 **lower bound**,也就是說我最低可以到多低 > 林老师,我觉得第7页的推导稍微有些模糊,觉得这样证明更合适些 L(b1,w1,a1)=min(max(L(b,w,a))) L(b2,w2,a2)=max(min(L(b,w,a))) 比较L(b1,w1,a2)和L(b1,w1,a1)的关系,因为L(b1,w1,a2) 和L(b1,w1,a1)的b和w相同,而L(b1,w1,a1)是各种a中最大的,所以L(b1,w1,a1)>=L(b1,w1,a2) 比较L(b1,w1,a2)和L(b2,w2,a2)的关系,因为L(b1,w1,a2) 和L(b2,w2,a2)的a相同,而L(b2,w2,a2)是各种b,w中最小的,所以L(b1,w1,a2)>=L(b2,w2,a2) 所以L(b1,w1,a1)>=L(b1,w1,a2)>=L(b2,w2,a2) ### Strong Duality of Quadratic Programming ![](https://i.imgur.com/kCwn3JX.png) - 剛剛導出來的這個 $\geq$ 我們稱為 **weak duality** - 真希望它們是 **strong duality** 的啊,這樣解兩個問題就一樣意思了 - 這樣有什麼好處?右邊的式子解 $b,w$ 變成 unconstrained problem 啦~ - **Quadratic Programming 的理論告訴我們,滿足以下 3 條件,上面那兩個就有 strong duality 的關係** - convex primal 原本問題是凸的 - feasible 有解的 - 以這個 case 來說就是 $z$ 是 linear separable - linear constraints - **strong duality 意思就是說,原本問題(primal)的最佳解 ($b,w,\alpha$) 就是對偶問題(dual)的最佳解。** - > Q: 這個時候才能把 $\alpha'$ 的 $'$ 拿掉吧? ### Solving Lagrange Dual: Simplifications ![](https://i.imgur.com/26KAyVM.png) - 又換一個問題啦 - $\max_\limits{\forall\alpha_n\geq 0}\min_\limits{b,w}\mathcal L(b,w,\alpha)$ - $\max_\limits{\forall\alpha_n\geq 0}[\min_\limits{b,w}\frac 12w^Tw+\sum_\limits{n=1}^N\alpha_n(1-y_n(w^Tz_n+b))]$ - 現在**裡面的 minimization 是 unconstrained 的,那就代表 optimal point 的 gradient 會是 0** - optimal point 會滿足 $\frac{\partial\mathcal L(b,w,\alpha)}{\partial b}=0=-\sum_{n=1}^N\alpha_ny_n$ - 既然 optimal point 會滿足 $0=-\sum_{n=1}^N\alpha_ny_n$ 這個條件,代表我就算在 optimization problem 加入這個條件也不影響找到的點。 - 所以現在 optimization problem 變成 $\max_\limits{\forall\alpha_n\geq 0,\sum\alpha_ny_n=0}[\min_\limits{b,w}\frac 12w^Tw+\sum_\limits{n=1}^N\alpha_n(1-y_n(w^Tz_n))]$ - min 的 $b$ 其實可以刪掉因為它的係數和是 $0$ - 可是 $b$ 還是要解啊不然怎麼預測? 晚點會說明 ![](https://i.imgur.com/HPAUdF3.png) - optimization problem $\max_\limits{\forall\alpha_n\geq 0,\sum\alpha_ny_n=0}[\min_\limits{b,w}\frac 12w^Tw+\sum_\limits{n=1}^N\alpha_n(1-y_n(w^Tz_n))]$ - 這邊其實再做一次跟剛才解 $b$ 相同的操作即可 - unconstrained optimization 的 optimal point 微分等於 0 解得 $w_i=\sum_{n=1}^N\alpha_ny_nz_{n,i}$,然後直接把它放到 outer problem 的 constraint - 利用上面的 constraint 化簡一下得到 optimization problem $\max_\limits{\forall\alpha_n\geq 0,\sum y_n\alpha_n=0,w=\sum\alpha_ny_nz_n}[\min_\limits{b,w}\sum_\limits{n=1}^N\alpha_n-\frac 12w^Tw]$ - 這時候 inner problem 的 $w$ 也可以拿掉了,因為剛剛解 constraint 知道,只要算出 $\alpha$ 就會知道 $w$ 是多少 - 既然 $b,w$ 都拿掉了,inner problem 就不用解了 - 最後得到 optimization problem $\max_\limits{\forall\alpha_n\geq 0,\sum y_n\alpha_n=0,w=\sum\alpha_ny_nz_n}-\frac 12\|\sum_\limits{n=1}^N\alpha_ny_nz_n\|^2+\sum_\limits{n=1}^N\alpha_n$ - Lagrange dual problem,現在成了一個只有 $\alpha$ 的最佳化問題,太神拉 ### KKT Optimality Conditions ![](https://i.imgur.com/cA7AaDn.png) - 根據剛剛的推導我們可以知道,如果解出來的 $b,w,\alpha$ 對原來的問題(primal)跟對偶問題(dual)都是最佳解,那麼它們會滿足某些條件 - $y_n(w^Tz_n+b)\geq 1$ - primal feasible:原來問題的條件 - $\alpha_n\geq 0$ - dual feasible:對偶問題的條件,要成立兩邊才對等 - $\sum y_n\alpha_n=0;w=\sum\alpha_ny_nz_n$ - dual-inner optimal:剛剛利用 **inner optimal 偏微分等於 0** 推導出來的 - $\alpha_n(1-y_n(w^Tz_n+b))=0$ - primal-inner optimal:這個條件又稱作 **complementary slackness**,意思是說 **Lagrange multiplier $\alpha_n$ 跟 constraint $1-y_n(w^Tz_n+b)$ 至少要有一個是 0**,為什麼呢? - 複習 [這段](https://hackmd.io/Sr0QGaLfQGedOtM1hGpkcg#Starting-Point-Constrained-to-%E2%80%98Unconstrained%E2%80%99),因為當 $w,b$ 滿足本來條件 $1-y_n(w^Tz_n+b)\leq 0$,小於等於 0 又分兩種情況 - 如果等於 0,那麼乘上 $\alpha_n$ 還是 0 - 如果小於 0,那麼 $\alpha_n$ 就會為了 maximize $\mathcal L(b,w,\alpha)$ 而變成 0 - 上面四個條件是 necessary (必要條件) for optimality,也就是說最佳解必定滿足這四個條件 - 其實也可以證明它也是 sufficient (充分條件),意思是我滿足這四個條件,就一定是最佳解,不過證明頗複雜就不證了。 ### Fun Time: KKT Optimality Conditions ![](https://i.imgur.com/IpX3dyP.png) ![](https://i.imgur.com/usmNjJu.png) ## [Solving Dual SVM](https://www.youtube.com/watch?v=qGk0p7K07Mc&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=8) ### Dual Formulation of Support Vector Machine ![](https://i.imgur.com/TcYLEn6.png) - 現在問題長這樣 - $\max_\limits{\alpha_n\geq 0\,\forall n\in\{1,...,N\},\sum y_n\alpha_n=0,w=\sum\alpha_ny_nz_n}-\frac 12\|\sum_\limits{n=1}^N\alpha_ny_nz_n\|^2+\sum_\limits{n=1}^N\alpha_n$ - 展開平方項。 - 不想要 maximize,那就 minimize 取負號 - 問題就轉化成這樣 - 優化 $\min_\limits{\alpha}\frac 12\sum_\limits{n=1}^N\sum_\limits{M=1}^N\alpha_n\alpha_my_ny_mz_n^Tz_m-\sum_\limits{n=1}^N\alpha_n$ - 條件 $\sum_\limits{n=1}^Ny_n\alpha_n=0;\\\alpha_n\geq 0,\forall n\in\{1,2,...,N\}$ - 看到沒有,現在的問題 - $N$ 個變數 - $N+1$ 個條件 - 是 convex 的 - QP 屌解 ### Dual SVM with QP Solver ![](https://i.imgur.com/0nJkm2l.png) - $q_{n,m}$ 可能要思考一下 - $a_i^T$ 和 $c_i$ 分成兩部分 - $\sum_\limits{n=1}^Ny_n\alpha_n=0$ 對應到 $a_\geq,a_\leq,c_\geq,c_\leq$ - 本來條件是 $y^T\alpha=0$,可是 QP 要的是 $\geq$ 啊 - $=$ 可以寫成,同時 $\geq$ 和 $\leq$ - 也就是說 $y^T\alpha\geq 0$ 且 $y^T\alpha\leq 0$ - 就可以寫成 $y^T\alpha\geq 0$ 且 $-y^T\alpha\geq 0$ - $\alpha_n\geq 0$ 對應到 $a_n^T$ - 所有 $\alpha_n$ 都大於 0,意思就是 $\alpha$ 向量對任何 unit direction (例如 $\begin{bmatrix}0\\\vdots\\1\\0\end{bmatrix}$) 做內積都要大於 0 - 所以 $a_n^T$ 就是第 $n$ 個 unit direction - 有些 QP solver 為了方便使用者 - 有提供 **equality 等式**的功能,就不用像上面那樣把等號拆解了。 - 有的也提供 **bound** 直接對 $\alpha_n$ 給上限或下限的功能 ### Dual SVM with Special QP Solver ![](https://i.imgur.com/5TZUZSU.png) - 取名叫 $Q_D$ 代表對偶(dual)的 - 但是通常 $q_{n,m}=y_ny_mz_n^Tz_m$ 都是 non-zero 的,所以 $Q_D$ 會是 dense 的 - 當 $N$ 很大,$Q_D$ 就超大 - 所以通常會使用特製的 QP solver,專為 SVM 設計。 - 可能是要用到 $Q_D$ 才去算(? - 又或者利用剛剛說的特殊的 constraint (equality & bound),可以有效率的解出來 ### Optimal ($b,w$) ![](https://i.imgur.com/TH7ZbdV.png) - 解完了 $\alpha$,可以代換回我想解的 $w,b$ 了 - $w$ 直接代等式就出來了 - $b$ 利用條件 $\alpha_n(1-y_n(w^Tz_n+b))=0$ - 回想一下,$\alpha_n>0$ 的話,$1-y_n(w^Tz_n+b)$ 就要等於 0,也就是 $y_n(w^Tz_n+b)=1$ - **有謎有發現它就在胖胖的邊界上? support vector!!!** - 等號兩邊乘上 $y_n$,若 $\alpha_n>0$ 則 $y_n-(w^Tz_n+b)=0$ - $b=y_n-w^Tz_n$ ### Fun Time: Optimal $(b,w)$ ![](https://i.imgur.com/ujpO9Js.png) - $1(w^Tz+b)=1\tag 1$ - $-1(w^T(-z)+b)=1\tag 2$ - (1) - (2) 得 $b=0$ ## [Messages behind Dual SVM](https://www.youtube.com/watch?v=agmmQh702aA&list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2&index=9) ### Support Vectors Revisited ![](https://i.imgur.com/gLqoehi.png) - 在邊界上,且 $\alpha_n>0$ 的點我們才稱 support vector - 在邊界上,但 $\alpha_n=0$ 則不算 - **所以回想一下,其實可以知道我們計算 $w,b$ 都只需要 support vectors** - $w$ 怎麼算?support vectors 的 linear combination $\sum_\limits{SV}\alpha_ny_nz_n$ - $b$ 怎麼算?計算任何一個 support vector 的 $y_n-w^Tz_n$ - 所以 SVM 可以看成是:我去找出 support vector 來計算 hyperplane ### Representation of Fattest Hyperplane ![](https://i.imgur.com/ExMdjXq.png) - 其實回想一下可以知道,SVM 跟 PLA 解出來的 $w$ 都是 data 的 linear combination - 而且如果 linear regression/logistic regression 的 $w$ 從 0 出發做 SGD/GD,解出來的 $w$ 也會是 data 的 linear combination - **這樣的結果我們稱 $w$ 'represented' by data** - **SVM 特別之處是 $w$ 只由 support vectors 來表示** - 而 PLA 的 $w$ 是由犯錯的那些 data points 來表示。 ### Summary: Two Forms of Hard-Margin SVM ![](https://i.imgur.com/Jqwn0tl.png) - Primal(原始的) Hard-Margin SVM - $\tilde d+1$ 個 variables - 所以希望 $\tilde d$ 小 - $N$ 個 constraints - 物理意義:找到一個特別 scaling 過的 $w,b$ - Dual(對偶) Hard-Margin SVM - $N$ 個 variables - 所以希望 $N$ 小 - $N+1$ 個 simple constraints - 物理意義:找到 support vectors 還有它們對應的 Lagrange multiplier $\alpha_n$,用來重建 fattest hyperplane - 最後就可以用 $g_{SVM}(x)=\text{sign}(w^T\phi(x)+b)$ 來預測新的 data points ### Are We Done Yet? ![](https://i.imgur.com/FmyxqrH.png) - 一開始說不想碰 $\tilde d$,怕它太大很難算 - 可是它就藏在 $Q_D$ 裡面 - $q_{n,m}=y_ny_mz_n^Tz_m$ 要做內積 ($z$ 是 $\tilde d$ 維向量) - **這樣當 $\tilde d$ 很大的話還是很難算 inner product 啊,下個章節的課程就要解決這個問題。** ### Fun Time ![](https://i.imgur.com/MOmbmri.png) - 這題是用刪去法,因為 124 都不可能,只有 3 有可能所以才選 3 ### Summary ![](https://i.imgur.com/7zrh8kZ.png)