# Infinite $\widetilde{d}$
回顧原本 QP 的內容:
$$
optimal\ \mathbf{u}=QP(\mathbf{\color{red}{Q},\color{orange}{p},\color{blue}{A},\color{green}{c}})\\
\begin{align}
\text{objective: }&\min_{\mathbf{u}} \frac{1}{2}\mathbf{u}^{T}\color{red}{\mathbf{Q}}\mathbf{u}+\color{orange}{\mathbf{p}^{T}}\mathbf{u}\\
\text{subject to: }&\color{blue}{\mathbf{a}_{m}^{T}}\mathbf{u}\le \color{green}{\mathbf{c}_{m}}\\
&for\ m= 1,...M\\
\end{align}
$$
其中:
$$
\mathbf{u}=
\begin{bmatrix}
b \\
\mathbf{w}
\end{bmatrix};
\color{red}{
\mathbf{Q}=
\begin{bmatrix}
0 & \mathbf{0}_{d}^{T}\\
\mathbf{0}_{d}^{T} & \mathbf{I}_{d}
\end{bmatrix}};
\color{orange}{
\mathbf{p} = \mathbf{0}_{d+1}}\\
\color{blue}{\mathbf{a}^{T}_{n}=y_{n}\left[1,\mathbf{z}_{n}^{T}\right]},\ \color{green}{c_{n} = 1}, M=N
$$
但如果經過了特徵轉換:
$$
\phi(\mathbf{x}_{n})=\mathbf{z}_{n}\\
\Large{
\color{red}{\mathbf{x}_{n} \in \mathbb{R}^{d}},\color{purple}{\mathbf{z}_{n} \in \mathbb{R}^{\tilde{d}}}}\\
$$
$\color{red}{Q矩陣}$ 就必須面臨 $\widetilde{d}$ 的問題,也就是 $\widetilde{d}$ 可能會非常的多,甚至無限多個。
所以目前的 convex QP:
- 有 $\widetilde{d}+1$ 種變數
- 有 $N$ 個條件 constraints
所以我們希望有一種方法,可以去除掉對 $\widetilde{d}$ 的依賴性,將原本的 QP 轉換成另一種等價的 convex QP:
- 有 $N$ 種變數
- 有 $N+1$ 個條件 constraints
# Lagrange Multipliers
在 Logistic Regression 的時候,那時候是一個限制,用了一個 Lagrange Multiplier:
$$
\min_{\mathbf{w}}E_{aug}(\mathbf{w})=E_{in}(\mathbf{w})+\frac{\lambda}{N}\mathbf{w}^{T}\mathbf{w}
$$
經過了這項操作,對 $E_{aug}$ 來說原本 Logistic Regression 的條件就好像被隱藏了起來。
# Lagrange Function
那我們也來試試看,把原本 SVM 問題的條件給「藏起來」:
$$
\begin{align}
\text{objective: }&\min_{b,\mathbf{w}} \frac{1}{2}\mathbf{w}^{T}\mathbf{w}\\
\text{s.t.: }& y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\ge 1\\
&for\ n= 1,...N\\
\end{align}
$$
要把這 N 個條件藏起來,我們建立 Lagrange Function:
$$
\mathcal{L}(b,\mathbf{w},\boldsymbol{\alpha})=
\underbrace{\frac{1}{2}\mathbf{w}^{T}\mathbf{w}}_{objective}+\sum_{n=1}^{N}\underbrace{\alpha_{n}\left(1-y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\right)}_{constraint}
$$
我們就可以把原本的 SVM 轉化成看似沒有條件的問題:
$$
\min_{b,\mathbf{w}}\left(\max_{all\ \alpha\ge 0} \mathcal{L}(b,\mathbf{w},\boldsymbol{\alpha})\right)=\min_{b,\mathbf{w}}\left(\infty \text{ if violate},\frac{1}{2}\mathbf{w}^{T}\mathbf{w} \text{ if feasible}\right)
$$
在上面的式子中,挑選 $b,\mathbf{w}$ 的時候就彷彿不受那 N 個限制一般
原因是因為我們透過 $max$,先將符合條件的人選篩選好了:
- 如果 「violate」:$\left(1-y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\right)>0$
- 那麼 $max$ 就會一直追求最大的 $\alpha$,直到變成無限大
- 無限大就無法挑。
- 如果 「feasible」:$\left(1-y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\right)\le 0$
- 由於已限制全部的 $\alpha\ge 0$,要讓 $\alpha\times\text{some negatives}$ 是最小值,那麼只能讓 $\alpha=0$
- 除非該點原本 $\left(1-y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\right)= 0$
所以 Feasible 就會剩下原本的目標 $\frac{1}{2}\mathbf{w}^{T}\mathbf{w}$,max 就不見了;接著只要挑選最小的 $\frac{1}{2}\mathbf{w}^{T}\mathbf{w}$ 就好。
這樣子,我們就巧妙的將原本的限制給「藏在 $max$ 裡面」。
:::warning
上面可以發現,constraint 其實就是把原本 subject to 的內容,改成 $0\ge (...)$,$(...)$ 就是我們所要的 constraint。
這個方式再之後也會再次用到。
:::
# Lagrange Dual Problem
由於裡面是 $max$,所以對於任意的 $\alpha^{'}$ 來說,存在著大於等於的關係:
$$
\min_{b,\mathbf{w}}\left(\max_{all\ \alpha\ge 0} \mathcal{L}(b,\mathbf{w},\boldsymbol{\alpha})\right) \ge \min_{b,\mathbf{w}}\mathcal{L}(b,\mathbf{w},\boldsymbol{\alpha^{'}})
$$
而 $\alpha^{'}$ 的 BEST,也是任意的其中之一,所以我們可以給右邊取 $max$;當然 $\alpha^{'} \ge 0$:
$$
\min_{b,\mathbf{w}}\left(\max_{all\ \alpha\ge 0} \mathcal{L}(b,\mathbf{w},\boldsymbol{\alpha})\right) \ge \underbrace{\max_{all\ \alpha^{'} \ge 0} \min_{b,\mathbf{w}}\mathcal{L}(b,\mathbf{w},\boldsymbol{\alpha^{'}})}_{Lagrange\ Dual\ Problem}
$$
而 $\alpha^{'}$ 只是個記號,可以改為 $\alpha$,這樣一來上面的動作就很像是把 $min$ 跟 $max$ 做了交換;而右手邊的就是所謂的「Lagrange Dual Problem」,原本的問題是「Primal Problem」
## weak duality
在最佳化領域, $\ge$ 這樣的關係叫做 weak duality。
## strong duality
有 weak 就有 strong,也就是 $=$。
但是,對「QP 問題」來說,要是強對偶,最佳化領域的專家證明了必須滿足:
- convex primal
- 原本的問題是 convex 的
- SVM 確實是 convex
- feasible primal
- $\phi$ 轉換後如果是 Separable,那就是有解的
- 也就是 $\left(1-y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\right)\le 0$ 的部分
- [這個我們有給予保證](https://hackmd.io/iISbapICSbqs9aWnDVQpKQ?both#%E9%BB%9E%E5%88%B0%E8%B6%85%E5%B9%B3%E9%9D%A2%E7%9A%84%E8%B7%9D%E9%9B%A2)
- linear constraints
- 確實我們 QP 問題就是線性的 Constraints
這樣一來等號就會成立,換句話說,「primal-dual optimal」,對兩個問題都是最佳的解是存在的。
# Simplifications
有了右邊求 $min$ 的部分,由於他「可以任意挑選、沒有限制」,所以就可以使用梯度來進行化簡。
## $\frac{\partial \mathcal{L}(b,\mathbf{w},\mathbf{\alpha})}{\partial b}=0$
$$
\frac{\partial \mathcal{L}(b,\mathbf{w},\mathbf{\alpha})}{\partial b}=-\sum_{n=1}^{N}\alpha_{n}y_{n}=0
$$
這裡有個技巧,對原本的 $min$ 去多加 $\sum_{n=1}^{N}\alpha_{n}y_{n}=0$ 的 Constraint 並不會影響求最佳解,所以可以進行替換,並且讓 $min$ 少一個變數:
$$
\max_{all\ \alpha\ge 0}\left(\min_{b,\mathbf{w}}\frac{1}{2}\mathbf{w}^{T}\mathbf{w}+\sum_{n=1}^{N}\alpha_{n}\left(1-y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\right)\right)\\
\Rightarrow \max_{all\ \alpha\ge 0,\sum_{n=1}^{N}\alpha_{n}y_{n}=0}\left(\min_{\mathbf{w}}\frac{1}{2}\mathbf{w}^{T}\mathbf{w}+\sum_{n=1}^{N}\alpha_{n}\left(1-y_{n}\mathbf{w}^{T}\mathbf{z}_{n}\right)\right)\\
$$
## $\frac{\partial \mathcal{L}(b,\mathbf{w},\mathbf{\alpha})}{\partial w_{i}}=0$
$$
\frac{\partial \mathcal{L}(b,\mathbf{w},\mathbf{\alpha})}{\partial w_{i}}=w_{i}-\sum_{n=1}^{N}\alpha_{n}y_{n}z_{n,i}=0\\
w_{i}=\sum_{n=1}^{N}\alpha_{n}y_{n}z_{n,i}
$$
所以一樣,再給他加上新限制:$\mathbf{w}=\sum_{n=1}^{N}\alpha_{n}y_{n}\mathbf{z}_{n}$
$$
\max_{all\ \alpha\ge 0,\sum_{n=1}^{N}\alpha_{n}y_{n}=0,\mathbf{w}=\sum_{n=1}^{N}\alpha_{n}y_{n}\mathbf{z}_{n}}\left(\min_{\mathbf{w}}-\frac{1}{2}\mathbf{w}^{T}\mathbf{w}+\sum_{n=1}^{N}\alpha_{n}\right)\\
\Rightarrow
\max_{all\ \alpha\ge 0,\sum_{n=1}^{N}\alpha_{n}y_{n}=0,\mathbf{w}=\sum_{n=1}^{N}\alpha_{n}y_{n}\mathbf{z}_{n}}-\frac{1}{2}\left\|\sum_{n=1}^{N}\alpha_{n}y_{n}\mathbf{z}_{n}\right\|^{2}+\sum_{n=1}^{N}\alpha_{n}
$$
可以發現 $min$ 就這樣不見了。
# Karush-Kuhn-Tucker (KKT) conditions
經過上面的一番化簡,我們來整理一下,如果 $(b,\mathbf{w},\alpha)$ 是最佳解,則可推得:
- primal feasible:
- $y_{n}(\mathbf{w}^{T}\mathbf{z}_{n}+b)\ge 1$
- 也就是上面提到過,滿足強對偶的條件之一,必須要是線性可分
- dual feasible:
- $\alpha_{n} \ge 0$
- 這是我們給予 Lagrange Multipliers 的限制
- dual-inner optimal
- $\sum_{n=1}^{N}\alpha_{n}y_{n}=0$ 和 $\mathbf{w}=\sum_{n=1}^{N}\alpha_{n}y_{n}\mathbf{z}_{n}$
- 這是根據 dual 的式子中,梯度等於 0 而得到的限制
- primal-inner optimal
- $\alpha_{n}\left(1-y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\right)=0$
- 這是先前根據 primal 的式子中,可行解法的條件;也就是去除了無限大。
- 而且可以有趣的發現,這兩者必須至少其中一人等於 0
- 所以有可能兩個都等於 0
- **這件事情又叫做「Complementary Slackness」**
而如果有某個 $(b,\mathbf{w},\boldsymbol{\alpha})$ 滿足這四個條件,那麼他就會是最佳解;也就是說最佳解跟四個條件互為充分必要:
$$
\text{Optimal } \Leftrightarrow \text{ Four conditions}
$$
---
# Dual Formulation of SVM
所以我們就有了 Dual SVM 的公式:
$$
\max_{all\ \alpha\ge 0,\sum_{n=1}^{N}\alpha_{n}y_{n}=0,\mathbf{w}=\sum_{n=1}^{N}\alpha_{n}y_{n}\mathbf{z}_{n}}-\frac{1}{2}\left\|\sum_{n=1}^{N}\alpha_{n}y_{n}\mathbf{z}_{n}\right\|^{2}+\sum_{n=1}^{N}\alpha_{n}
$$
跟Logistic Regression 的時候一樣,我們喜歡的是 $min$ 跟 $\sum$,所以我們給他修改為:
$$
\min_{\alpha}\frac{1}{2}\sum_{n=1}^{N}\sum_{m=1}^{M}\alpha_{n}\alpha_{m}y_{n}y_{m}\mathbf{z}_{n}^{T}\mathbf{z}_{m}-\sum_{n=1}^{N}\alpha_{n}\\
subject\ to\ \ \sum_{n=1}^{N}\alpha_{n}y_{n}=0,\alpha_{n}\ge 0
$$
也就是整體加了負號,並把長度寫成 $\sum\sum$ 的形式;並且為了專心解 $\boldsymbol{\alpha}$ ,我們把那些限制當作隱藏的限制,式子表達得更簡潔。
上面的式子就是 standard hard-margin SVM dual。
## Solve with QP
這個式子就是我們成功轉換出的等價 Convex QP 問題,可以證明他的 convex 性質。
既然是 QP 問題,那就一樣丟給 QP 去解就行了,所以我們來列出 QP 所需的各個部分:
$$
optimal\ \mathbf{u}=QP(\mathbf{\color{red}{Q},\color{orange}{p},\color{blue}{A},\color{green}{c}})\\
\begin{align}
\text{objective: }&\min_{\mathbf{u}} \frac{1}{2}\mathbf{u}^{T}\color{red}{\mathbf{Q}}\mathbf{u}+\color{orange}{\mathbf{p}^{T}}\mathbf{u}\\
\text{subject to: }&\color{blue}{\mathbf{a}_{m}^{T}}\mathbf{u}\le \color{green}{\mathbf{c}_{m}}\\
&for\ m= 1,...M\\
\end{align}
$$
對應之後可以知道:
$$
\mathbf{u}=
\boldsymbol{\alpha};\
\color{red}{\mathbf{q_{n,m}}=y_{n}y_{m}\mathbf{z}_{n}\mathbf{z}_{m}};\
\color{orange}{
\mathbf{p} = \mathbf{-1}_{N}}\\
\color{blue}{\mathbf{a}^{T}_{\ge}=\mathbf{y}},\color{blue}{\mathbf{a}^{T}_{\le}=-\mathbf{y}},\color{blue}{\mathbf{a}^{T}_{n}=\mathbf{I}_{N}}\\
\color{green}{c_{\ge}= 0} ,\color{green}{c_{\le}= 0},\color{green}{c_{n}= 0}
$$
其中線性 constraint 中 $\le$ 跟 $\ge$ 的部分,是為了湊出 $\sum_{n=1}^{N}\alpha_{n}y_{n}=0$,但是有些寫得很好的 QP 工具包,會直接提供 $=$ 的 QP 工具,只要詳細閱讀使用手冊就好。
:::warning
切記要詳細閱讀使用手冊,因為不等式方向可能會不一樣...
:::
## Special QP Solver
其實跟 Linear SVM 一樣,$\mathbf{Q}$ 矩陣式需要被特別關照的對象,因為在這裡,他會是一個 $N\times N$ 矩陣,如果 $N$ 很大,那會不得了。
所以實際使用的時候,最好是使用專屬的「特殊 QP」來計算 Dual SVM 的解。這種特殊 QP 可能是:
- 不會直接把 Q 矩陣存起來,要用的時候才會把某一項算出來
- 減少記憶體的消耗
- 或是使用特殊的限制 special constraints
# Optimal $(b,\mathbf{w})$
有了 $\boldsymbol{\alpha}$ 之後,根據條件之一:
$$
\mathbf{w}=\sum_{n=1}^{N}\alpha_{n}y_{n}\mathbf{z}_{n}
$$
可以輕易的算出 $\mathbf{w}$。
至於 $b$,我們可以根據另一個條件:
$$
\alpha_{n}\left(1-y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\right)=0
$$
我們有提到 Complementary Slackness,所以我們可以隨意找一個不為 0 的 $\alpha_{n}$,去計算出 $b$:
$$
1=y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\\
y_{n}=\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)\\
b=y_{n}-\mathbf{w}^{T}\mathbf{z}_{n}
$$
理論上任意一個 $\alpha$ 得到的 $b$ 應該都是一樣的,雖然可能會因為電腦的小數點位數問題而稍稍不同。
# Support Vectors
上面在求 $b$ 的時候,可以發現一件事情:
$$
y_{n}\left(\mathbf{w}^{T}\mathbf{z}_{n}+b\right)=1
$$
這不正告訴我們他是邊界上的點;並且這些點,**才是真正的 Support Vectors**,原因是因為他的 $\alpha_{n} > 0$,這些點才會告訴我們兩個重要的訊息:
$$
\mathbf{w}=\sum_{n=1}^{N}\alpha_{n}y_{n}\mathbf{z}_{n}=\sum_{SV}\alpha_{n}y_{n}\mathbf{z}_{n}
$$
$$
b=y_{n}-\mathbf{w}^{T}\mathbf{z}_{n} \text{ with any SV}(\mathbf{z}_{n},y_{n})
$$
也就是說,SVM 透過 dual optimal solution 找到 support vector,而這些 support vector 讓我們學到了最胖的超平面。
---
# Represented by data
在權重的公式中,其實可以發現老熟人 PLA 的身影:
$$
\mathbf{w}_{SVM}=\sum_{n=1}^{N}\alpha_{n}(y_{n}\mathbf{z}_{n}),\ \mathbf{w}_{PLA}=\sum_{n=1}^{N}\beta_{n}(y_{n}\mathbf{z}_{n})
$$
$\alpha_{n}$ 是從 dual solution 得來的,而 $\beta_{n}$ 是從 mistake corrections 得來得的。
這件事情,如果讓 GD/SGD-based LogReg/LinReg 也從 $\mathbf{w}=\mathbf{0}$ 出發,一樣可以得出類似的式子。
$\mathbf{w}$ 是 $\mathbf{z}_{n}$ 的線性組合這件事情,就是代表我們的權重可以被資料所表示。
而我們的 SVM 則更是只從那些 Support Vector 中所表達,因為 SVM 相信重要的是那些負責支撐的點;PLA 則是覺得重要的是那些犯錯的點。
# Summary
- Primal Hard-Margin SVM
- $\widetilde{d}+1$ 個變數,$N$ 個限制
- 適用於 $\widetilde{d}$ 較小的時候
- 物理意義:找出出特別縮放過的 $(b,\mathbf{w})$
- Dual Hard-Margin SVM
- $N$ 個變數,$N+1$ 個限制
- 適用於 $N$ 較小的時候
- 物理意義:找出 $\alpha$,並從中找到支撐向量重建出 $(b,\mathbf{w})$
兩者都可以找到最佳的胖胖超平面。
$$
g_{SVM}(\mathbf{x}) = sign(\mathbf{w}^{T}\phi(\mathbf{x})+b)
$$
# Without dependency on $\tilde{d}$
沒錯,還記得一開始我們的要求嗎,消除對 $\tilde{d}$ 的依賴。
但是從 $Q$ 矩陣中依舊可以發現,他還在。
那要怎麼辦?請見[下一章](https://hackmd.io/@ShawnNTU-CS/r1kk9fFn2)