---
# System prepended metadata

title: Dual Support Vector Machine
tags: [機器學習技法]

---

# 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)