Perceptron

Intro

  • 深度學習基礎單元(神經元)
  • Linear classifier

Perceptron Learning Algorithm

基本定義

  • 資料 : $ (x, y) \Rightarrow (x_1, x_2) $
  • 方程式 : $ w_0c + w_1x_1 + w_2x_2 = (w_0, w_1, w_2) \cdot (c, x_1, x_2) = 0 $
  • 資料點位於直線右側時, 等式結果為正, 反之則為負

基本算法 : 修正錯誤

  • 遇到錯誤的點時將往x方向的法向量加入w, 迫使資料點被放置於直線的另一側

img

實作方式

  • 指定迭代次數, 若參數可正確分類則return

處理高維度資料

  • 訂立一個 threshold, 取內積結果與 threshold 相差的正負值

img

關於迭代次數與參數正確性成正相關的證明

當 $\mathbf w^{(t)}$ 對樣本 $(x_k,y_k)$ 分類錯誤時,PLA會做以下更新 :

$$ \mathbf w^{(t+1)} = \mathbf w^{(t)} + y_k x_k $$

假設現在是第t次 :

$$ \begin{aligned} \mathbf{w}^{(t+1)} \cdot \mathbf{w}^{*} &= (\mathbf{w}^{(t)} + y_k x_k) \cdot \mathbf{w}^{*} \\ &= \mathbf{w}^{(t)} \cdot \mathbf{w}^{*} + y_k (x_k \cdot \mathbf{w}^{*}) \end{aligned} $$

線性可分 $\Rightarrow y_k (x_k!\cdot \mathbf w^{*})\ge\gamma$

$$ \mathbf w^{(t+1)}!\cdot \mathbf w^{*} \ge \mathbf w^{(t)}!\cdot \mathbf w^{*} + \gamma $$

接著計算更新之後的Norm :

$$ \begin{aligned} |\mathbf w^{(t+1)}|^2 &= |\mathbf w^{(t)} + y_k x_k|^2\\ &= |\mathbf w^{(t)}|^2 + 2y_k\mathbf w^{(t)}!\cdot x_k + |x_k|^2\\ &\le |\mathbf w^{(t)}|^2 + 0 + R^2 \quad(\because y_k\mathbf w^{(t)}!\cdot x_k\le0)\\ &= |\mathbf w^{(t)}|^2 + R^2 \end{aligned} $$

M次更新後可得 :

$$ |\mathbf w^{(M)}|^2 \le M R^2 $$

並且可以分別得到dot至少成長 :

$$ \mathbf w^{(M)}!\cdot \mathbf w^{*}\ge M \gamma $$

以及norm至多成長 :

$$ |\mathbf w^{(M)}|\le R\sqrt{M} $$

因此可以得到Cosine的下界 :

$$ \begin{aligned} \cos\theta_M &= \frac{\mathbf w^{(M)}!\cdot \mathbf w^{*}} {|\mathbf w^{(M)}||\mathbf w^{*}|}\\ &\ge \frac{M\gamma}{(R\sqrt{M})|\mathbf w^{*}|} = \frac{\sqrt{M}\gamma}{R|\mathbf w^{*}|} \end{aligned} $$

其中右式為單調增加

雜訊容忍

  • 加總錯誤次數
  • Minimize

不過由於需要minimize的為indicator, 無法解開(NP-hard), 可改進此演算法

Pocket Algorithm

  • 更新模式與PLA相同
  • 若新的權重優於原版才更新為新的 $w_t$

Linear Regression

Intro

  • 與Perceptron很類似, 不過不是取sign, 是取內積作為函數的output
  • 以擬合資料走向為目標, 想辦法最小化殘差量

Error measure

使用的誤差平方

imgs

Algorithm

先定義資料集 ${(\mathbf x_i, y_i)}_{i=1}^n,\quad \mathbf x_i\in\mathbb{R}^p$ :

$$ X = \begin{bmatrix} 1 & x_{11} & x_{12} & \cdots & x_{1p} \\ 1 & x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n1} & x_{n2} & \cdots & x_{np} \end{bmatrix} ,\quad \boldsymbol\beta = \begin{bmatrix} \beta_0 \\ \beta_1 \\ \vdots \\ \beta_p \end{bmatrix} ,\quad \mathbf y = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} $$

模型就會是 :

$$ \hat{\mathbf y}=X,\boldsymbol\beta $$

接著定義Loss:

$$ J(\boldsymbol\beta) = |\mathbf y - X\boldsymbol\beta|_2^2 = (\mathbf y - X\boldsymbol\beta)^\top(\mathbf y - X\boldsymbol\beta) $$

接著求微分,然後令他為0 (求解正規方程) :

$$ \frac{\partial J}{\partial \boldsymbol\beta} = -2X^\top(\mathbf y - X\boldsymbol\beta) ;\overset{!}{=} \mathbf0 \quad\Longrightarrow\quad X^\top X \boldsymbol\beta = X^\top \mathbf y $$

假設 $X^\top X$ 可逆(大部分情況都是可逆) :

$$ \boldsymbol\beta = (X^\top X)^{-1} X^\top \mathbf y $$

Applications

線性回歸也可套用到二元分類, 利用公式去推算初始的線, 加快算法的收斂速度

img12