---
# System prepended metadata

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

---

{%hackmd Hyaw8Gm6n %}

# 更胖的超平面

- PLA 是從可以用的超平面中隨機挑選
- 未來有可能再次拿到跟原資料相同的點，但有可能會受 Noise 影響
- 如果有些資料離超平面很接近，那他就很有可能會發生 Flipped。

這時候會需要一個「比較胖」的超平面，在所有可以用的超平面中，離最近的點的距離是最大。

胖平面比較可以抵抗上面所述的問題，比較抗干擾、Robust、強壯。

# 點到超平面的距離

令 $\mathbf{x}^{'}$ 是平面上的點，$\mathbf{x}$ 是一個在平面外的資料點，那麼點到超平面的距離就是 $\mathbf{x}-\mathbf{x}^{'}$ 向量在超平面的單位法向量 $\mathbf{w}$ 的投影： 

$$
\left|\frac{\mathbf{w}^{T}}{\left\|\mathbf{w}\right\|}\left(\mathbf{x}-\mathbf{x}^{'}\right)\right|=\frac{1}{\left\|\mathbf{w}\right\|}\left|\mathbf{w}^{T}\mathbf{x}+b\right|
$$
>內積得到的是投影長度


推導時要記住，超平面上的點滿足：

$$
\mathbf{w}^{T}\mathbf{x}+b=0
$$

而此處我們有一個強制的要求，就是超平面可以完美正確的區分出每個點，也就是這些資料是線性可分的，因此可以知道：

$$
y_{n}\left(\mathbf{w}^{T}\mathbf{x}_{n}+b\right) >0
$$

所以我們可以把惱人的絕對值去掉，變成：

$$
\frac{1}{\left\|\mathbf{w}\right\|}y_{n}\left(\mathbf{w}^{T}\mathbf{x}_{n}+b\right)
$$

# 問題的轉換

有了距離公式，那我們所要的就是：

- 既可以分出全部的點
- 並且離平面最近的點的距離可以最大
 
的 $\mathbf{w}$ 跟 $b$。

但是這樣我們的要求中有 min 又有 max：

$$
\max_{b,\mathbf{w}}\ \min_{n=1,...,N}\frac{1}{\left\|\mathbf{w}\right\|}y_{n}\left(\mathbf{w}^{T}\mathbf{x}_{n}+b\right)
$$

根據過往的經驗，這種東西我們很難去處理。

於是我們靈光一想，等比例放大縮小 $\mathbf{w}^{T}\mathbf{x}_{n}+b=c$ 對我們要的 $\mathbf{w},b$ 不會有影響，所以我們改要求

$$
\min_{n=1,...,N}y_{n}\left(\mathbf{w}^{T}\mathbf{x}_{n}+b\right)=1
$$

因為這樣求最大值會變的很簡單：

$$
\max_{b,\mathbf{w}}\frac{1}{\left\|\mathbf{w}\right\|}
$$

但是 min 依舊是不知道要怎麼辦。

這時候邏輯大師上線，我們想想有甚麼條件可以導致最小值是 1，答案就是全部資料的值要大於等於 1：

$$
\forall n,y_{n}\left(\mathbf{w}^{T}\mathbf{x}_{n}+b\right)\ge 1
$$

因為在這個前提下，最小值必定等於 1：

- 如果最小值大於 1，那麼依舊可以等比例給他縮小到 1
- 也就是說可以找到比最小值更小的值，跟最小值大於 1 矛盾。

:::warning
所以如果有某個條件很難達成，不如來想想有哪些前提必定會得到該條件，而有可能該前提蠻好處理的。
:::

跟[處裡 Logistic Regression 的時候](https://hackmd.io/@ShawnNTU-CS/Syyx9mE33#Cross-Entropy-Error)一樣，為了讓 max 的部分變成熟悉的 min 形式，所以換成倒數；並且避免了麻煩的根號，使用了平方，最後補個常數 $\frac{1}{2}$

因此最終我們的目標就變成：

$$
\begin{align}
\text{objective: }&\min_{b,\mathbf{w}} \frac{1}{2}\mathbf{w}^{T}\mathbf{w}\\
\text{subject to: }& y_{n}\left(\mathbf{w}^{T}\mathbf{x}_{n}+b\right)\ge 1\\
&for\ n= 1,...N\\
\end{align}
$$


:::warning
Objective 跟 Subject to 這樣的寫法常見於最佳化領域中
:::

# 支持向量候選人

其實仔細去想可以發現，在資料當中只有某些點去定位了超平面的位置，也就是距離為最小值的那些點，其他的點並沒有貢獻。

那些點就很像支撐著超平面一樣，所以叫做支持向量候選人 Support Vector Candidates。

那到底這些候選人中誰才是真的 Support Vector，請見 [Dual SVM](https://hackmd.io/@ShawnNTU-CS/HybC95v22#Support-Vectors)。

# Quadratic Programming

在最後我們的要求是：

$$
\begin{align}
\text{objective: }&\min_{b,\mathbf{w}} \frac{1}{2}\mathbf{w}^{T}\mathbf{w}\\
\text{subject to: }& y_{n}\left(\mathbf{w}^{T}\mathbf{x}_{n}+b\right)\ge 1\\
&for\ n= 1,...N\\
\end{align}
$$

這個東西在最佳化領域中其實已經存在解法，因為他的兩個條件：

- (convex) quadratic objective function of $(b,\mathbf{w})$
- linear constraints of $(b,\mathbf{w})$

滿足 Quadratic Programming 的要求，所以我們只要按照下面的形式，把對應的參數丟到寫好的工具包，就可以求出解了。


$$
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{x}_{n}^{T}\right]},\ \color{green}{c_{n} = 1}, M=N
$$

# Linear SVM 跟 L2 Regularizer

原本：

- L2 要 Minimize 的是：
    - $E_{in}$
- L2 的限制是：
    - $\mathbf{w}^{T}\mathbf{w}\le C$

而 Linear SVM 可以發現：

- Linear SVM 要 Minimize 的是：
    - $\mathbf{w}^{T}\mathbf{w}$
- Linear SVM 的限制是
    - $E_{in}=0$ 跟 $y_{n}\left(\mathbf{w}^{T}\mathbf{x}_{n}+b\right)\ge 1\ for\ n= 1,...N$

所以可以說 Linear SVM 是 ‘weight-decay regularization’ within $E_{in} = 0$

# Restricts Dichotomies

由於 Linear SVM 要找的是比較胖的超平面，Large Margin Hyperplane，所以相較於原本普通的超平面，Dichotomies 會變少。

舉例來說二維的普通線和胖胖線，有三個點，普通線可以有 8 種 Dichotomies，但是胖胖線會因為太胖，導致某些 Dichotomies 並不存在。

而這些減少的 Dichotomies，根據 VC 理論，相信可以達到更好的 Generalization，也就是 $E_{in}$ 跟 $E_{out}$ 更接近。

## $d_{vc}(\mathcal{A}_{\rho})$

以前都是在討論一個 $\mathcal{H}$ 的 $d_{vc}$ 是多少，會表示為：

$$
d_{vc}(\mathcal{H})
$$

但是由於 Linear SVM 會因為 $\mathcal{A}_{\rho}$ 的不同，選擇不同胖度($\rho$)的 Large Margin Hyperplane，所以會改成討論因演算法不同而產生的 $d_{vc}$：

$$
d_{vc}(\mathcal{A}_{\rho})
$$

例如在二維平面上，有一些點，但是受限於單位圓上：

$$
\mathcal{X}=\text{unit circle in }\mathbb{R}^{2}
$$

假如我們要求 $\rho > \frac{\sqrt{3}}{2}$，或者說平面兩面的胖度是$\sqrt{3}$，並且圓上面只有三個點：

- 如果三個點構成之三角形為正三角形，則邊長為 $\sqrt{3}$
- 一旦 $\rho > \frac{\sqrt{3}}{2}$，稍微移動點的位置後，一定至少有一個邊的長度小於 $\sqrt{3}$

也就是說，$\mathcal{A}_{\frac{\sqrt{3}}{2}}$ 無法擊敗全部 3 個點，$d_{vc}<3$。

普遍來說，當資料點被限制在在半徑 $R$ 的超維球內時：

$$
d_{vc}(\mathcal{A}_{\rho})\le min(\frac{R^2}{\rho ^{2}},d)+1\le \underbrace{d+1}_{d_{vc}\ perceptron}
$$

# Feature Transform

Linear SVM 當然也可以對資料做 Feature Transform，並且 Large Margin Hyperplane「緩解」原本 $d_{vc}$ 太高的問題。

至於為甚麼會說是緩解，請看下一篇 Dual SVM。


---

:::info
看來得去修最佳化相關課程了
:::