感知機屬於判別模型。算法
感知機是二類分類的線性分類模型,其輸入爲實例的特徵向量,輸出爲實例的類別,取+1和-1兩個值。函數
感知機:
假設輸入空間是\(X \subseteq R^n\),輸出空間是\(y=\{ +1, -1\}\)。
輸入空間到輸出空間的以下函數稱爲感知機。
\[f(x) = sign(w \cdot x + b)\]
其中,w和b爲感知機模型參數,\(w \subseteq R^n\)爲權值,\(b \subseteq R^n\)爲偏置。sign是函數符號,即
\[sign(x) = \left\{\begin{matrix} +1, x \geq 0 \\ -1, x < 0 \end{matrix}\right. \]學習
幾何解釋:
線性方程\(w \cdot x + b =0\)對應於特徵空間\(R^n\)中的一個超平面S,其中w是超平面的法向量,b是超平面的截距。這個超平面將特徵空間劃分爲兩部分。位於兩部分中的點分別被氛圍正、負兩類。所以,超平面S稱爲分離超平面。spa
感知機學習,經過訓練數據集求的感知機模型中w和b。經過感知機模型來對新輸入的實例進行類別預測。class
假設訓練數據集可分,感知機學習旨在肯定感知機模型中的w和b參數。須要一個學習策略,即定義損失函數,並將損失函數最小化。經驗
損失函數的推導
輸入空間中任意一點\(x_0\)到分離超平面S的距離爲(\(||w||\)是w的二範數):
\[\frac {1} {||w||} |w \cdot x_0 + b|\]
對於誤分類數據\((x_i, y_i)\)來講,\(-y_i (w \cdot x_i + b) > 0\)成立。 所以,誤分類點到超平面的距離是:
\[-\frac {1} {||w||} y_i (w \cdot x_i + b)\]
則,全部誤分類點到分離超平面的距離總和爲
\[-\frac {1} {||w||} \sum _{x_i \in M} y_i (w \cdot x_i + b)\]
不考慮\(-\frac {1} {||w||}\),後面的就是感知機學習的損失函數。數據
感知機損失函數
給定訓練集
\[T = \{ (x_1, y_1), ..., (x_N, y_N) \}\]
以及類別集合
\[y = \{-1, +1\}\]
感知機學習的損失函數定義爲
\[L(w, b) = -\sum _{x_i \in M} y_i (w \cdot x_i + b)\]
其中,M爲誤分類點的集合。這個損失函數就是感知機學習的經驗風險函數。集合
訓練問題轉化爲損失函數極小化問題:\(min_{w,b} L(w, b)\)di
梯度降低法(gradient descent):首先任意選擇一個超平面\(w_0,b_0\),而後用梯度降低發不斷的極小化目標函數(損失函數)。極小化過程當中不是一次使用M中全部的誤分類點的梯度降低,而是一次隨機選擇一個誤分類點使其梯度降低。vi
對偶形式的基本思想是,將w和b表示爲實例\(x_i\)和標記\(y_i\)的線性組合的形式,經過求解其參數而求的w和b。假設初始值\(w_0, b_0\)均爲0。對於誤分類點\((x_i, y_i)\)經過
\[w \Leftarrow w + \eta y_i x_i\] \[b \Leftarrow b + \eta y_i\]
逐步修改w,b。假設修改n次,則w,b關於\((x_i, y_i)\)的增量分別爲\(\alpha_i y_i x_i\)和\(\alpha_i y_i\),其中\(\alpha_i = n_i \eta\)。由此得出最後學習到的w,b能夠標識爲:
\[w = \sum _{i=1}^{N} \alpha_i y_i x_i\] \[b = \sum _{i=1}^{N} \alpha_i y_i\]