感知機(perceptron)原理總結

2022-08-01 16:15:13 字數 3860 閱讀 2256

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

假設有乙個資料集\(d = \),其中\(x_i \in r^n\),即\(x_i = (x_i^, x_i^, ...x_i^)\)

於是我們可以構建出感知機模型為:\(f(x) = sign(w^tx + b)\)

定義損失函式乙個很自然的想法是建立在誤分類點的個數上,但是使用誤分類點的個數來構造損失函式並不容易優化

記m為誤分類點的集合,誤分類點到分離超平面的總距離為:

\[l(w, b) = \sum_\frac

\]不考慮\(\frac\)(因為上式中,分子和分母有固定倍數的關係),並且去掉絕對值,就可以得到感知機的損失函式為:

\[l(w, b) = \sum_ -y_i (w^tx_i + b)

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

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

\[\underset = \underset \sum_ -y_i (w^tx_i + b)

\]因為只有對誤分類點才會對損失函式進行優化,因此感知機的優化採用隨機梯度下降法(sgd),而非使用所有樣本的批量隨機梯度下降法(bgd)

損失函式\(l(w, b)\)的梯度為:

\[\frac = -\sum_ y_i x_i

\]\[\frac = -\sum_ y_i

\]對於sgd,選取乙個誤分類點進行更新,即有:

\[w_ = w_t + \alpha y_ix_i

\]\[b_ = b_t + \alpha y_i

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

演算法執行步驟如下:

初始化w, b以及學習率\(\alpha\)

在訓練集選取資料\((x_i, y_i)\)

如果滿足\(-y_i(sign(w^tx_i + b)) > 0\),則

\[w_ = w_t + \alpha y_i x_i

\]\[b_ = b_t + \alpha y_i

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

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

假設初始值\(w_0\)和\(b_0\)都為0,因此\(w\)和\(b\)可以表示成\(x_iy_i\)和\(y_i\)的增量形式,即原始形式可以化成:

\[w_ = \sum_^\beta_i y_i x_i

\]\[b_ = \sum_^n \beta_i y_i

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

此時,模型轉變為

\[f(x) = sign(\sum_^n \beta_j x_j y_j x + b)

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

演算法執行步驟如下:

初始化\(\beta\), b以及學習率\(\alpha\)

在訓練集選取資料\((x_i, y_i)\)

如果滿足\(y_i(sign(\sum_^n \beta_j y_j x_j x_i + b)) <= 0\),則

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

\]\[b_ = b_t + \alpha y_i

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

其中,訓練例項可以通過計算gram矩陣(即\(x_i\)和\(x_j\)的內積組成的矩陣)的形式來儲存

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

\[f(x) = sign(\hat w^t \hat x)

\]之前我們說明了,只有誤分類點才會對\(\hat w\)進行更新。因此,考慮以下兩種情況:

真實類別為y=+1, 但是模型的輸出為-1

真實類別為y=-1, 但是模型的輸出為+1

其實,無論對於誤分類的情況1還是情況2,總有\(y_i \hat w_^t \hat x_i = \geq y_i \hat w_t^t \hat x_i\),因為\(y_i \hat w_t^t \hat x_i\)的符號代表是否分類正確,大小代表分類超平面是否將其「分得很開」,上面的不等式說明了,對於某個誤分類點來說,更新後要比更新前要好,演算法pla對該誤分類點「學習」了。

對於線性可分的資料集,總能找到乙個或者多個分類超平面能將該資料集劃分,這表明了pla的收斂性。

說明兩個向量的相似性有很多方法,其中計算兩個向量的內積是一種方法。當內積越大,表明兩個向量越相似。當然,這需要考慮向量的長度,當模長越大時,向量的內積也會越來越大。

先討論\(w_f\)和\(w_t\)的內積,\(w_0\)為0向量

\begin

\begin

w_f^t w_t & = w_f^t(w_ + y_ix_i) \\

& = w_f^t w_ + y_i w_f^t x_i \\

& \geq w_f w_ + \underset (y_i w_f^t x_i) \\

& \geq w_f w_0 + t \underset (y_i w_f^t x_i) \\

& = t \underset (y_i w_f^t x_i)

\end

\end

討論\(w_f\)和\(w_t\)的模長,由於只有誤分類點才更新,所以有\(y_i w_^t x_i \leq 0\)

\begin

\begin

\parallel w_t \parallel^2 & = \parallel w_ + y_ix_i \parallel^2 \\

&= \parallel w_ \parallel^2 + 2y_i w_^t x_i + \parallel y_ix_i \parallel^2 \\

& \leq \parallel w_ \parallel^2 + \parallel x_i \parallel^2 \\

& \leq \parallel w_ \parallel^2 + \underset \parallel x_i \parallel^2 \\

& \leq \parallel w_ \parallel^2 + t \underset \parallel x_i \parallel^2 \\

& = t \underset \parallel x_i \parallel^2

\end

\end

討論\(w_f\)和\(w_t\)的角度

\begin

\begin

1 \geq cos \theta = \frac &

\geq \frac (y_i w_f^t x_i)} \parallel x_i \parallel^2}} \\

& = \frac \underset (y_i w_f^t x_i)} \parallel x_i \parallel^2}}

\end

\end

化解得到t的關係式

\[t \leq \frac \parallel x_i \parallel^2} (y_i w_f^t x_i)^2} = \frac

\]其中,$$r^2 = \underset \parallel x_i \parallel^2, \rho = \frac (y_i w_f^t x_i)}$$

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

從感知機的分類原理中,可以看出滿足條件的超平面並不止乙個,不同的超平面依賴於引數的初始值。也就是說感知機模型可以有多個解。

當然,感知機也是神經網路的重要基礎,因此也可以從神經網路的角度來說明

感知機Perceptron模型

特徵向量x,令總共有d個特徵,每個特徵賦予不同的權重w,表示該特徵對輸出的影響有多大。那所有特徵的加權和的值與乙個設定的閾值threshold進行比較 大於這個閾值,輸出為 1,小於這個閾值,輸出為 1。感知機模型,就是當特徵加權和與閾值的差大於或等於0,則輸出h x 1 當特徵加權和與閾值的差小於...

機器學習 感知機perceptron

在機器學習中,感知機 perceptron 是二分類的線性分類模型,屬於監督學習演算法。輸入為例項的特徵向量,輸出為例項的類別 取 1和 1 感知機對應於輸入空間中將例項劃分為兩類的分離超平面。感知機旨在求出該超平面,為求得超平面匯入了基於誤分類的損失函式,利用梯度下降法 對損失函式進行最優化 最優...

機器學習 感知機perceptron

在機器學習中,感知機 perceptron 是二分類的線性分類模型,屬於監督學習演算法。輸入為例項的特徵向量,輸出為例項的類別 取 1和 1 感知機對應於輸入空間中將例項劃分為兩類的分離超平面。感知機旨在求出該超平面,為求得超平面匯入了基於誤分類的損失函式,利用梯度下降法 對損失函式進行最優化 最優...