感知機(perceptron)原理總結

1. 感知機原理

感知機是二分類的線性分類模型,本質上想找到一條直線或者分離超平面對數據進行線性劃分算法

  • 適用於線性可分的數據集,不然感知機不會收斂

假設有一個數據集\(D = {(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)}\),其中\(x_i \in R^n\),即\(x_i = (x_i^{(1)}, x_i^{(2)}, ...x_i^{(n)})\)網絡

  • 模型的輸入爲實例的特徵向量\(x_i\),輸出爲實例的類別,取值爲+1(正例)或者-1(負例)
  • 咱們但願找到一個分離超平面\(w^Tx + b = 0,其中w \in R^n\),使得有知足\(w^Tx + b > 0\)的實例所對應的類別爲正例。而使得知足\(w^Tx + b < 0\)的實例所對應的類別爲負例。

因而咱們能夠構建出感知機模型爲:\(f(x) = sign(w^Tx + b)\)機器學習

2. 損失函數

定義損失函數一個很天然的想法是創建在誤分類點的個數上,可是使用誤分類點的個數來構造損失函數並不容易優化函數

  • 所以使用誤分類點到分離超平面的總距離來構造損失函數

記M爲誤分類點的集合,誤分類點到分離超平面的總距離爲:學習

\[L(w, b) = \sum_{x_i \in M}\frac{| w^Tx_i + b |}{\parallel w \parallel} \]

不考慮\(\frac{1}{\parallel w \parallel}\)(由於上式中,分子和分母有固定倍數的關係),而且去掉絕對值,就能夠獲得感知機的損失函數爲:優化

\[L(w, b) = \sum_{x_i \in M} -y_i (w^Tx_i + b) \]

此時對於誤分類點,\(-y_i (w^Tx_i + b) > 0\)成立spa

3. 優化方法

此時感知機算法就轉變爲,求解參數\(w, b\),使得損失函數極小化,即blog

\[\underset {w, b}{\arg \min L(w, b)} = \underset {w, b}{\arg \min} \sum_{x_i \in M} -y_i (w^Tx_i + b) \]

由於只有對誤分類點纔會對損失函數進行優化,所以感知機的優化採用隨機梯度降低法(SGD),而非使用全部樣本的批量隨機梯度降低法(BGD)it

損失函數\(L(w, b)\)的梯度爲:io

\[\frac{\partial L(w, b)}{\partial w} = -\sum_{x_i \in M} y_i x_i \]

\[\frac{\partial L(w, b)}{\partial b} = -\sum_{x_i \in M} y_i \]

對於SGD,選取一個誤分類點進行更新,即有:

\[w_{t+1} = w_t + \alpha y_ix_i \]

\[b_{t+1} = b_t + \alpha y_i \]

4. 感知機的原始算法

訓練集包括N個樣例,樣本中包含n個特徵,標記爲二分類取值爲-1或者+1

  • 輸入的樣例:\({(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)}\),學習率:\(\alpha\)
  • 輸出分離超平面的係數w, b

算法執行步驟以下:

  1. 初始化w, b以及學習率\(\alpha\)
  2. 在訓練集選取數據\((x_i, y_i)\)
  3. 若是知足\(-y_i(sign(w^Tx_i + b)) > 0\),則

\[w_{t+1} = w_t + \alpha y_i x_i \]

\[b_{t+1} = b_t + \alpha y_i \]

  1. 轉至2,直到訓練集中沒有誤分類點

5. 感知機的對偶算法

對偶形式的基本想法是,將\(w\)\(b\)表示爲實例\(x_i\)和標記\(y_i\)的線性組合的形式,經過求解它的係數來求解\(w\)\(b\)

假設初始值\(w_0\)\(b_0\)都爲0,所以\(w\)\(b\)能夠表示成\(x_iy_i\)\(y_i\)的增量形式,即原始形式能夠化成:

\[w_{t+1} = \sum_{i=1}^{N}\beta_i y_i x_i \]

\[b_{t+1} = \sum_{i=1}^N \beta_i y_i \]

其中,\(\beta_i = n_i \alpha\)\(n_i\)表示第\(i\)個實例\(x_i\)更新的次數

此時,模型轉變爲

\[f(x) = sign(\sum_{j=1}^N \beta_j x_j y_j x + b) \]

訓練集包括N個樣例,樣本中包含n個特徵,標記爲二分類取值爲-1或者+1

  • 輸入的樣例:\({(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)}\),學習率:\(\alpha\)
  • 輸出分離超平面的係數\(\beta\), b

算法執行步驟以下:

  1. 初始化\(\beta\), b以及學習率\(\alpha\)
  2. 在訓練集選取數據\((x_i, y_i)\)
  3. 若是知足\(y_i(sign(\sum_{j=1}^N \beta_j y_j x_j x_i + b)) <= 0\),則

\[\beta_j(t+1) = \beta_j(t) + \alpha \]

\[b_{t+1} = b_t + \alpha y_i \]

  1. 轉至2,直到訓練集中沒有誤分類點

其中,訓練實例能夠經過計算Gram矩陣(即\(x_i\)\(x_j\)的內積組成的矩陣)的形式來存儲

6. 從圖形中理解感知機的原始算法

爲了方便說明,記\(\hat w = (w, b)\)\(\hat x = (x, 1)\),則感知機模型能夠變爲:

\[f(x) = sign(\hat w^T \hat x) \]

以前咱們說明了,只有誤分類點纔會對\(\hat w\)進行更新。所以,考慮如下兩種狀況:

  1. 真實類別爲y=+1, 可是模型的輸出爲-1

    • 考慮到\(\hat w^T \hat x = |\hat w||\hat x|cos\theta\)
    • 對於真實類別,咱們但願說明\(\hat w^T \hat x > 0\),即\(\hat w\)\(\hat x\)的夾角越小越好,而模型的輸出有\(\hat w^T \hat x < 0\),則說明\(\hat w\)\(\hat x\)的夾角過大
    • 所以,咱們能夠經過減小\(\hat w\)\(\hat x\)的夾角來達到目的,即有\(\hat w(t+1) = \hat w(t) + \hat x(t)\)(對應着\(w_{t+1} = w_t + \alpha y_i x_i\),且\(\alpha = 1\)的狀況)
    • \(y_i \hat w_{t+1}^T \hat x_i = y_i \hat w_t^T \hat x_i + y_i \parallel \hat x_i \parallel \geq y_i \hat w_t^T \hat x_i\)
      誤分類狀況1
  2. 真實類別爲y=-1, 可是模型的輸出爲+1

    • 考慮到\(\hat w^T \hat x = |\hat w||\hat x|cos\theta\)
    • 對於真實類別,咱們但願說明\(\hat w^T \hat x < 0\),即\(\hat w\)\(\hat x\)的夾角越大越好,而模型的輸出有\(\hat w^T \hat x > 0\),則說明\(\hat w\)\(\hat x\)的夾角太小
    • 所以,咱們能夠經過增大\(\hat w\)\(\hat x\)的夾角來達到目的,即有\(\hat w(t+1) = \hat w(t) - \hat x(t)\)(對應着\(w_{t+1} = w_t - \alpha y_i x_i\),且\(\alpha\) = 1的狀況)
    • \(y_i \hat w_{t+1}^T \hat x_i = y_i \hat w_t^T \hat x_i - y_i \parallel \hat x_i \parallel = y_i \hat w_t^T \hat x_i + \parallel \hat x_i \parallel \geq y_i \hat w_t^T \hat x_i\)
      誤分類狀況2

其實,不管對於誤分類的狀況1仍是狀況2,總有\(y_i \hat w_{t+1}^T \hat x_i = \geq y_i \hat w_t^T \hat x_i\),由於\(y_i \hat w_t^T \hat x_i\)的符號表明是否分類正確,大小表明分類超平面是否將其「分得很開」,上面的不等式說明了,對於某個誤分類點來講,更新後要比更新前要好,算法PLA對該誤分類點「學習」了。

7. 感知機算法(PLA)的收斂性

對於線性可分的數據集,總能找到一個或者多個分類超平面能將該數據集劃分,這代表了PLA的收斂性。

  • 這部分主要參考林軒田的《機器學習基石》,我的以爲講得要比李航的《統計學習方法》要清晰,雖然證實本質上是同樣的

說明兩個向量的類似性有不少方法,其中計算兩個向量的內積是一種方法。當內積越大,代表兩個向量越類似。固然,這須要考慮向量的長度,當模長越大時,向量的內積也會愈來愈大。

  • 符號說明:\(w_f\)表明真實的w,\(w_t\)表明咱們找到的w,這裏爲了符號簡潔些,不記成\(\hat w\),可是含義同樣,即\(w_f\)\(w_t\)裏面包含\(b\),記學習率\(\alpha = 1\)
  1. 先討論\(w_f\)\(w_t\)的內積,\(w_0\)爲0向量
    \begin{equation}
    \begin{split}
    w_f^T w_t & = w_f^T(w_{t-1} + y_ix_i) \\
    & = w_f^T w_{t-1} + y_i w_f^T x_i \\
    & \geq w_f w_{t-1} + \underset {i} {min} (y_i w_f^T x_i) \\
    & \geq w_f w_0 + t \underset {i} {min} (y_i w_f^T x_i) \\
    & = t \underset {i} {min} (y_i w_f^T x_i)
    \end{split}
    \end{equation}

  2. 討論\(w_f\)\(w_t\)的模長,因爲只有誤分類點才更新,因此有\(y_i w_{t}^T x_i \leq 0\)
    \begin{equation}
    \begin{split}
    \parallel w_t \parallel^2 & = \parallel w_{t-1} + y_ix_i \parallel^2 \\
    &= \parallel w_{t-1} \parallel^2 + 2y_i w_{t_1}^T x_i + \parallel y_ix_i \parallel^2 \\
    & \leq \parallel w_{t-1} \parallel^2 + \parallel x_i \parallel^2 \\
    & \leq \parallel w_{t-1} \parallel^2 + \underset {i} {max} \parallel x_i \parallel^2 \\
    & \leq \parallel w_{0} \parallel^2 + t \underset {i} {max} \parallel x_i \parallel^2 \\
    & = t \underset {i} {max} \parallel x_i \parallel^2
    \end{split}
    \end{equation}

  3. 討論\(w_f\)\(w_t\)的角度
    \begin{equation}
    \begin{split}
    1 \geq cos \theta = \frac{w_f^T w_t}{\parallel w_f \parallel \parallel w_t \parallel} &
    \geq \frac{t \underset {i} {min} (y_i w_f^T x_i)}{\parallel w_f \parallel \sqrt{t \underset {i} {max} \parallel x_i \parallel^2}} \\
    & = \frac{\sqrt{t} \underset {i} {min} (y_i w_f^T x_i)}{\parallel w_f \parallel \sqrt{\underset {i} {max} \parallel x_i \parallel^2}}
    \end{split}
    \end{equation}

  4. 化解獲得t的關係式

\[t \leq \frac{\parallel w_f \parallel^2 \underset {i} {max} \parallel x_i \parallel^2}{\underset {i} {min} (y_i w_f^T x_i)^2} = \frac{R^2}{\rho^2} \]

其中,$$R^2 = \underset {i} {max} \parallel x_i \parallel^2, \rho = \frac{\underset {i} {min} (y_i w_f^T x_i)}{\parallel w_f \parallel}$$

由上述不等式說明了,更新次數是有上限的,這也就證實了收斂性

8. 應用場景與缺陷

  • 感知機僅限於數據線性可分的狀況,對於線性不可分的狀況,該算法不收斂。
  • 感知機的收斂步數受兩類別之間間隔的影響。間隔越小,收斂的步數越大。

9. 其餘

從感知機的分類原理中,能夠看出知足條件的超平面並不止一個,不一樣的超平面依賴於參數的初始值。也就是說感知機模型能夠有多個解。

  • 泛化能力最好的決策超平面
    • 可以將兩個類型的樣本分開
    • 可以最大化決策邊界附近的兩類型之間的距離

固然,感知機也是神經網絡的重要基礎,所以也能夠從神經網絡的角度來講明

10. 參考資料

  • 李航《統計學習方法》
  • 林軒田《機器學習基石》
相關文章
相關標籤/搜索