Perceptron, Support Vector Machine and Dual Optimization Problem (1)

車天健發表於2023-03-28

Linear Decision Boundary(線性決策邊界)


Example. (classification problem)


給定一個二元的特徵空間 \(\mathcal{X} = \left\{ \text{weight} \times \text{height} \right\}\),對標籤 \(\left\{ \text{male, female} \right\}\) 進行分類,即,根據隱去性別的體重與身高的二後設資料,預測 / 判斷該樣本的性別。性別 \(\left\{ \text{male, female} \right\}\) 可以抽象為 \(\mathcal{Y} = \left\{ -1, 1 \right\}\)




Decision Boundary and Linear Classifier


  • 設:\(g = \text{decision boundary}\)\(d=1\) 的情況:

\[g(x) = w_{1} x + w_{0} = 0 \]


一般情況:


\[g(\vec{x}) = \vec{w}^{T} \cdot \vec{x} + w_{0} = 0 \]


注意到一般情況中 \(\vec{w}^{T} \cdot \vec{x}\) 為點積,結果輸出為一個標量。


  • \(f = \text{linear classifier}\),where:

\[\begin{align*} f(\vec{x}) & = \begin{cases} 1 \qquad \text{ if } ~ g(\vec{x}) \geq 0 \\ -1 ~ \quad \text{ if } ~ g(\vec{x}) < 0 \end{cases} \\ & \\ & = \text{sign}\big( \vec{w}^{T} \cdot \vec{x} + w_{0} \big) \end{align*} \]




對於 decision boundary \(g\),我們可以將 \(w_{0}\) 也寫入向量形式:


\[g(\vec{x}) = \vec{w}^{T} \cdot \vec{x} + w_{0} = \begin{pmatrix} \vec{w} \\ w_{0} \end{pmatrix}^{T} \cdot \begin{pmatrix} \vec{x} \\ 1 \end{pmatrix} = {\vec{w}^{'}}^{T} \cdot \vec{x}^{'} \]


so that the homogenous form:


\[g(\vec{x}^{'}) = {\vec{w}^{'}}^{T} \cdot \vec{x}^{'} \]




所謂 linear classifier,linear(線性)體現為:


\[\sum\limits_{i} w_{i} x_{i} + w_{0} = w_{1}x_{1} + w_{2}x_{2} + \cdots + w_{d}x_{d} + w_{0} \]


其中,\(d\) 為特徵空間的維度,即 \(\vec{x} \in \mathbb{R}^{d}\)


而非線性的 classifier,例如 sigmoid:


\[\sigma(\vec{x}) = \frac{1}{1 + e^{-\vec{w} \cdot \vec{x}}} = \frac{1}{1 + e^{-(w_{1}x_{1} + w_{2}x_{2} + \cdots + w_{d}x_{d} + w_{0})}} \]


將一個特徵向量 \(\vec{x} \in \mathbb{R}^{d}\) 輸入,經過一定的權重運算(或者同時進行一定的非線性變換)後輸出為一個標量,這便是神經網路中一個 neuron(神經元)的運算過程,由多個如此的基本單元的相互連線組成神經網路。事實上,可以用神經網路模擬任意的光滑函式 (smooth function),意味著該函式無限可微。




How to learn weights?


給定具有標籤的訓練資料(包含 bias):


\[(\vec{x_{1}}, y_{1}), ~ (\vec{x_{2}}, y_{2}), ~ \ldots, ~ (\vec{x_{n}}, y_{n}) \]


希望找到 \(\vec{w}\) 使得 training error 最小,即:


\[\mathop{\arg\min}\limits_{\vec{w}} \frac{1}{n} \sum\limits_{i=1}^{n} \mathbb{I}_{\left\{ \text{sign}\big( \vec{w} \cdot \vec{x_{i}} \big) \neq y_{i} \right\}} = \mathop{\arg\min}\limits_{\vec{w}} \Big( \sum\limits_{x_{i} \text{ s.t. } y_{i} = 1} \mathbb{I}_{\left\{ \vec{w} \cdot \vec{x_{i}} < 0 \right\}} + \sum\limits_{x_{i} \text{ s.t. } y_{i} = -1} \mathbb{I}_{\left\{ \vec{w} \cdot \vec{x_{i}} \geq 0 \right\}} \Big) \]


傳統方法是對 loss function 求導並檢驗 stationary point,但此處使用傳統方法無法得到最優解,since it’s NP-hard to solve or approximate.




Finding Weights (Related Assumptions)


儘管問題是 NP-hard,我們可以透過做出進一步的合理假設來簡化問題,使得 weight 可以被估計。例如,我們可以假設 training data 是線性可分的(linear separable)。




Linear Separability


假設:存在一條線性的 linear decision boundary 完美地對 training data 進行分類。


現在給定 labeled training data:


\[\mathcal{S} = \left\{ (\vec{x_{1}}, y_{1}), ~ (\vec{x_{2}}, y_{2}), ~ \ldots, ~ (\vec{x_{n}}, y_{n}) \right\} \]


希望判斷:是否存在 \(\vec{w}\) such that:


\[\forall i \in \mathbb{N}^{+}, i \leq n: ~ y_{i} (\vec{w} \cdot \vec{x_{i}}) \geq 0 \]


注意上式中 \(y_{i} (\vec{w} \cdot \vec{x_{i}}) \geq 0\) 說明 \(y_{i}\)\((\vec{w} \cdot \vec{x_{i}})\) 符號相同,即代表分類正確。


這等價於:training data 是否 linearly separable?


由於存在 \(d+1\) 個變數(指 \(\vec{x_{i}} \in \mathbb{R}^{d}\),即 \(\vec{x_{i}} = \big( x_{i, 1}, ~ x_{i, 2}, ~ \ldots, ~x_{i, d} \big)\) 所對應的 \(d\) 個權重與 \(w_{0}\)),以及 \(|S| = n\) 個 constraints,透過一個 constraint optimization program 將最佳化問題解出是可能的。




The Perceptron Algorithm


感知機演演算法如下:


\[\begin{align*} & \text{初始化}: \vec{w}^{(0)} = \vec{0} \\ & \\ & \text{for}: t = 1, 2, 3, \cdots: \\ & \\ & \qquad \text{若存在} (\vec{x}, y) \in \mathcal{S} \text{ s.t. : } \text{sign}(\vec{w}^{(t-1)} \cdot \vec{x}) \neq y: \\ & \qquad \qquad \vec{w}^{(t)} \leftarrow \begin{cases} & \vec{w}^{(t-1)} + \vec{x} \quad \text{ if } y = 1 \\ & \vec{w}^{(t-1)} - \vec{x} \quad \text{ if } y = -1 \end{cases} = \vec{w}^{(t-1)} + y \vec{x} \\ & \\ & \qquad \text{若不存在} (\vec{x}, y) \in \mathcal{S} \text{ s.t. : } \text{sign}(\vec{w}^{(t-1)} \cdot \vec{x}) \neq y: \\ & \qquad \qquad \text{終止演演算法}。 \end{align*} \]




Definition. (Margin of a Hyperplane)


一個資料集所屬空間中的一個超平面的 margin 是距離超平面最近的資料點到超平面的距離。




Definition. (Margin of a Dataset)


一個資料集的 margin (記作 \(\gamma\)) 是對於這個資料集而言,使用任意的權重向量 (weight vector) 分別點乘每一個資料點,其新資料集在新空間內所儘可能達到的最大 margin (of the hyperplane)。




  • 換言之,margin of hyperplane 是一個 \(\min\) 的概念,而 margin of dataset 是一個 \(\max\min\) 的概念。並且,對於 margin of dataset 的定義,假設初始 feature dataset 為 \(\mathcal {X} = \left\{\vec{x_{1}}, \vec{x_{2}}, \ldots, \vec{x_{n}} \right\}\),對於每一個資料點 \(\vec{x}_{i}\),點乘以一個任意的權重向量 \(\vec{w}\),得到新的一組 feature dataset \(\mathcal{X}^{\star} = \left\{ \vec{w} \cdot \vec{x_{1}}, \vec{w} \cdot \vec{x_{2}}, \ldots, \vec{w} \cdot \vec{x_{n}} \right\}\),再配對以各自的 label 得到二維平面上的新資料集 \(\mathcal{X}^{\star} \times \mathcal{Y} = \left\{ (\vec{w} \cdot \vec{x_{1}}, y_{1}), (\vec{w} \cdot \vec{x_{2}}, y_{2}), \ldots, (\vec{w} \cdot \vec{x_{n}}, y_{n}) \right\}\)。在這個二維空間內根據給定的 hyperplane (即一根直線),求出使得 margin of the dataset \(\mathcal{X}^{\star} \times \mathcal{Y}\) 最大的上述 \(\vec{w}\)

Perceptron Algorithm Guarantee


Theorem. (Perceptron Mistake Bound)


假設存在一個 \(\vec{w}^{*}\) (單位長度為 \(1\)),使 \(\text{margin} = \gamma\) 的 training sample 變得 linear separable。令 \(R = \max\limits_{\vec{x} \in \mathcal{X}} ||\vec{x}||\),那麼 perceptron algorithm 最多會犯 \(T = \big(\frac{R}{\gamma}\big)^{2}\) 次錯誤。




Proof.


證明的關鍵點在於說明:經過第 \(t\) 次遍歷後得到的 \(\vec{w}^{(t)}\)\(\vec{w}^{*}\) 相差多少?


假設 perceptron algorithm 在第 \(t\) 次遍歷時犯了一個錯誤,那麼:


\[\begin{align*} \vec{w}^{(t)} \cdot \vec{w}^{*} & = (\vec{w}^{(t-1)} + y \vec{x}) \cdot \vec{w}^{*} \\ & = \vec{w}^{(t-1)} \cdot \vec{w}^{*} + y \vec{x} \cdot \vec{w}^{*} \\ & \geq \vec{w}^{(t-1)} \cdot \vec{w}^{*} + \gamma \end{align*} \]


上面最後一個不等式的推導,我後面會解釋。簡單來說,這是因為 data is separable by a margin \(\gamma\)


同時,我們有:


\[\begin{align*} ||\vec{w}^{(t)}||^{2} & = ||\vec{w}^{(t-1)} + y \vec{x}||^{2} \\ & = ||\vec{w}^{(t-1)}||^{2} + 2 y (\vec{w}^{(t-1)} \cdot \vec{x}) + ||y \vec{x}||^{2} \\ & \leq ||\vec{w}^{(t-1)}||^{2} + R^{2} \end{align*} \]


  • 解釋:


    上面最後一個不等式的推導意味著:\(2 y (\vec{w}^{(t-1)} \cdot \vec{x}) + ||y \vec{x}||^{2} \leq R^{2} = \max\limits_{x \in \mathcal{X}} || \vec{x} ||^{2}\)。這是因為,perceptron algorithm 僅在分類錯誤的時候對權重向量 \(\vec{w}\) 進行更新,由我們上述的假設,即第 \(t\) 次遍歷的時候出現分類錯誤,這意味著:


    \[y (\vec{w}^{(t-1)} \cdot \vec{x}) < 0 \]


    代表著 label \(y\)\(\vec{w}^{(t-1)} \cdot \vec{x}\) 異號。


    由於label \(y\) 為標量,則 \(||y \vec{x}||^{2} = y^{2} ||\vec{x}||^{2}\),且由於 \(y \in \left\{ -1, 1 \right\}\),則:


    \[||y \vec{x}||^{2} = ||\vec{x}||^{2} \leq \max\limits_{\vec{x} \in \mathcal{X}} ||\vec{x}||^{2} \]


    自然成立。


那麼,由上我們證得:


\[\vec{w}^{(t)} \leq ||\vec{w}^{(t-1)}||^{2} + R^{2} \]


對於每次遍歷 \(1, 2, \ldots, t\),由上式,有:


\[\begin{cases} \vec{w}^{(t)} \cdot \vec{w}^{*} \geq \vec{w}^{(t-1)} + \gamma \\ \\ ||\vec{w}^{(t)}||^{2} \leq ||\vec{w}^{(t-1)}||^{2} + R^{2} \end{cases} \]


因此,在 \(T\) 次遍歷後:


\[\begin{align*} T \gamma & \leq \vec{w}^{T} \cdot \vec{w}^{*} \\ & \leq ||\vec{w}^{(T)}|| \cdot ||\vec{w}^{*}|| \\ & \leq R \sqrt{T} \end{align*} \]


  • 解釋:


    • 第一個不等式可以 recursively 得到,即:


      \[\begin{align*} \vec{w}^{(T)} \cdot \vec{w}^{*} & \geq \vec{w}^{(T-1)} \cdot \vec{w}^{*} + \gamma \\ & \geq \vec{w}^{(T-2)} \cdot \vec{w}^{*} + 2\gamma \\ & \geq \vec{w}^{(T-3)} \cdot \vec{w}^{*} + 3\gamma \\ & \; \; \vdots \quad \text{recursively} \\ & \geq T \gamma \end{align*} \]


    • 第二個不等式則是因為:


      \[\vec{w}^{(T)} \cdot \vec{w}^{*} = \cos \langle \vec{w}^{(T)}, \vec{w}^{*} \rangle \cdot ||\vec{w}^{(T)} || \cdot ||\vec{w}^{*}|| \]


      \(\cos \langle \vec{w}^{(T)}, \vec{w}^{*} \rangle \in [-1, 1]\)


    • 第三個不等式同樣可以 recursively 得到,即:


      \[\begin{align*} & \vec{w}^{(0)} = \vec{0}, \text{ recursively: } \\ & ||\vec{w}^{(1)}||^{2} \leq R^{2} \\ & ||\vec{w}^{(2)}||^{2} \leq ||\vec{w}^{(1)}||^{2} + R^{2} \leq 2 R^{2} \\ & \vdots \\ & ||\vec{w}^{(T)}||^{2} \leq ||\vec{w}^{(T-1)}||^{2} + R^{2} \leq ||\vec{w}^{(T-2)}||^{2} + 2R^{2} \leq \cdots \leq T R^{2} \end{align*} \]


因此,我們得到:


\[T \gamma \leq R \sqrt{T} \]


即:


\[T \leq \Big( \frac{R}{\gamma} \Big)^{2} \]


Why we have: \(y \vec{x} \cdot \vec{w}^{*} \geq \gamma\)?


首先,\(\gamma\) 為 sample dataset 的 margin,它的含義如上文所述,其代表對於任意可能的權重向量,能使經權重向量變換後的資料集中離超平面最近的資料點到超平面的這段 “最小距離” 最大的距離(比較拗口,注意理解)。即:


\[\max\limits_{\vec{w}} \big( \min\limits_{\vec{x} \in \mathcal{X}} D \big) \]


現在,由於假設了存在 \(\vec{w}^{*}\) 使超平面將 sample dataset 線性區分,則超平面的解析式為:


\[y (\vec{w}^{*} \cdot \vec{x}) = 0 \]


對於任意的資料點 \(\vec{x_{0}}\),其到超平面的距離為:


\[\begin{align*} \frac{|y(\vec{w}^{*} \cdot \vec{x_{0}})|}{\sqrt{||\vec{w}^{*}||^{2}}} & = |y(\vec{w}^{*} \cdot \vec{x_{0}})| \\ & = y (\vec{w}^{*} \cdot \vec{x_{0}}) \end{align*} \]


其中第一個等式的成立是因為有假設: \(||\vec{w}^{*}||^{2} = 1\),第二個等式的成立同樣因為假設:\(y (\vec{w}^{*} \cdot \vec{x_{0}}) \geq 0\)


然而,即使 \(\gamma\) 代表的是 “最大的最小距離”,即 \(\max\limits_{\vec{w}} \big( \min\limits_{\vec{x} \in \mathcal{X}} D \big)\),在給定的 \(\vec{w}\) 下,\(\gamma\) 所代表的依然是在這種選擇 \(\vec{w}\) 下的、對於所有 \(\vec{x} \in \mathcal{X}\) 的最小距離,即一個 lower bound。


那麼給定 \(\vec{w}^{*}\) 下,\(\gamma\) 即為給定的 \(\vec{w}^{*}\) 下的超平面的 margin,而非資料集的 margin,這意味著:


\[\forall \vec{x_{0}} \in \mathcal{X}: ~ y(\vec{w}^{*} \cdot \vec{x_{0}}) = y \vec{w}^{*} \cdot \vec{x_{0}} \geq \gamma \]

相關文章