Generalizing Linear Classification
假設我們有如上圖的 training data,注意到此時 \(\mathcal{X} \subset \mathbb{R}^{2}\)。
那麼 decision boundary \(g\):
即,decision boundary 為某種橢圓,例如:半徑為 \(r\) 的圓(\(w_{1} = 1, w_{2} = 1, w_{0}=-r^{2}\)),如上圖中的黑圈所示。我們會發現,此時 decision boundary not linear in \(\vec{x}\)。
但是,\(g(\vec{x}) = w_{1} x_{1}^{2} + w_{2} x_{2}^{2} + w_{0}\) 在某些空間裡卻是線性的:
因此,如果我們對資料進行特徵變換(feature transformation):
那麼 \(g\) 在 \(\phi -\) transformed feature space 中變為線性的。
Geometric view on feature transformation
Feature Transformation for Quadratic Boundaries
\(\mathbb{R}^{2}-\) case
generic quadratic boundary 如下:
feature transformation 則為:
\(\mathbb{R}^{d}-\) case
generic quadratic boundary 如下:
feature transformation 則為:
- 注意,以上的 \(\mathbb{R}^{2}\) 以及下面會提到的 \(\mathbb{R}^{d}\) 指的是資料的維度。
Theorem.
給定 \(n\) 個互不相同的資料點:\(\mathcal{X} = \left\{ \vec{x_{1}}, \vec{x_{2}}, \ldots, \vec{x_{n}} \right\}\),總是存在一個 feature transformation \(\phi\),使得無論的 \(\mathcal{S} = \mathcal{X} \times \mathcal{Y}\) 的 label 如何,它在 transformed space 中總是線性可分的。
Proof.
給定 \(n\) 個資料點,考慮以下對映(對映至 \(\mathbb{R}^{n}\)):
即,對映為一個 one-hot 向量,除第 \(i\) 行處為 \(1\),其它座標處的值都為 \(0\)。
那麼,由 linear weighting \(\vec{w}^{*} = \begin{pmatrix} y_{1} \\ \vdots \\ y_{n} \end{pmatrix}\) 引出的 decision boundary 完美地分割了 input data。
-
解釋:
證明的意思是,輸入的資料有 \(n\) 個。對於每一個資料點,feature transform 到一個 one-hot vector,只有這條資料在輸入的 \(n\) 個資料中排的位置所對應的座標處取 \(1\),其餘全部取 \(0\)。假設輸入三個資料:\(\vec{x_{1}}, \vec{x_{2}}, \vec{x_{3}}\),則:
\[\phi(\vec{x_{1}}) = \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} \qquad \phi(\vec{x_{2}}) = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix} \qquad \phi(\vec{x_{3}}) = \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix} \]
這樣極端的操作有利有弊:
-
優點:
任意的問題都將變為 linear separable。
-
缺點:
-
計算複雜度:
generic kernel transform 的時間複雜度通常是 \(\Omega(n)\),有些常用的 kernel transform 將 input space 對映到 infinite dimensional space 中。
-
模型複雜度:
模型的概括能力(generalization performance)通常隨模型複雜度的下降而下降。即,若向簡化模型,通常需要以犧牲模型的表現作為代價。
-
-
回顧時間複雜度 \(T(n) = \Omega \big( f(n) \big)\) 的定義:
\[\exists c > 0: ~ \exists n_{0} \in \mathbb{N}^{+}: ~ \forall n \geq n_{0}: ~ T(n) \geq c \cdot f(n) \]
那麼 \(\Omega(n)\) 滿足:
\[\exists c > 0: ~ \exists n_{0} \in \mathbb{N}^{+}: ~ \forall n \geq n_{0}: ~ T(n) \geq cn \]
也就是說時間複雜度最低也與 \(n\) 呈線性。
The Kernel Trick (to Deal with Computation)
如果直接暴露在 generic kernel space \(\phi(\vec{x_{i}})\) 中進行運算,需要時間複雜度 \(\Omega(n)\)。但是相對而言地,kernel space 中的兩個資料點的點積可以被更快地求出,即:
Examples.
-
在 \(\mathbb{R}^{d}\) 空間中的資料的 quadratic kernel transform:
-
Explicit transform:\(O(d^{2})\)
\[\vec{x} \longrightarrow (x_{1}^{2}, \ldots, x_{d}^{2}, \sqrt{2} x_{1} x_{2}, \ldots, \sqrt{2} x_{d-1} x_{d}, \sqrt{2} x_{1}, \ldots, \sqrt{2} x_{d}, 1) \]
-
Dot products:\(O(d)\)
\[(1 + \vec{x_{i}} \cdot \vec{x_{j}})^{2} \]
-
-
徑向基函式(Radial Basis Function, i.e., RBF):
-
Explicit transform:infinite dimension!
\[\vec{x} \longrightarrow \Big( \big( \frac{2}{\pi} \big)^{\frac{d}{4}} e^{-||\vec{x} - \alpha||^{2}} \Big)_{\alpha \in \mathbb{R}^{d}} \]
-
Dot products:\(O(d)\)
\[e^{-||\vec{x_{i}} - \vec{x_{j}}||^{2}} \]
-
Kernel 變換的訣竅在於,在實現分類演算法的時候只透過 “點積” 的方式接觸資料。
Examples.
The Kernel Perceptron(核感知機)
回憶感知機演算法,更新權重向量的核心步驟為:
等價地,演算法可以寫為:
其中,\(\alpha_{k}\) 為在 \(\vec{x_{k}}\) 上發生錯誤的次數。
因此,分類問題變為:
其中 \(\vec{x}\) 輸入函式 \(f\) 的新資料向量,注意與 \(\vec{x_{k}}\) 區分。
因此,在空間內的分類問題:
若在 tranformed kernel space 中處理,則:
演算法具體如下:
在最後注意到,\(\sum\limits_{k=1}^{n} \alpha_{k} y_{k} \big( \phi(\vec{x_{k}}) \cdot \phi(\vec{x}) \big)\) 中的點積 \(\phi(\vec{x_{k}}) \cdot \phi(\vec{x})\) 是相似度(similarity)的一種衡量方式,故自然能夠被其它自定義的相似度衡量方式所替換。
所以,我們可以在任意自定義的非線性空間中,隱性地(implicitly)進行運算,而不需要承擔可能的巨大計算量成本。