1. 程式人生 > >統計學習方法-第2章-感知機(1)

統計學習方法-第2章-感知機(1)

2.1 感知機模型

定義: 輸入特徵空間為\(\chi\subseteq R^n\), 輸出空間為\(\mathcal{Y}=\{+1, -1\}\). 則由輸入空間到輸出空間的如下函式:
\[f(x) = sign(w\cdot x+b)\]
其中\[sign(x)=\left\{\begin{array}{cc} +1, & x\geq 0\\ -1, & x<0 \end{array}\right.\]
稱為感知機. 是一種線性分類模型, 屬於判別模型.
幾何解釋: 線性方程\(w\cdot x+b=0\)對應特徵空間\(R^n\)中一個超平面\(S\), 其中\(w\)

為其法向量, \(b\)為其截距. 超平面\(S\)將特徵空間劃分為兩部分, 位於兩部分的特徵向量被分為正負兩類.

2.2 感知機學習策略

在介紹感知機的學習方法之前, 需要知道感知機學習的前提假設是資料集是線性可分的, 即存在某個超平面\(S\)能夠將資料集的正負例點完全正確地劃分開, 對於所有\(y_i = +1\)的例項\(i\)\(w\cdot x_i + b>0\), 對於所有\(y_i = -1\)的例項\(i\)\(w\cdot x_i + b<0\).


假設訓練資料集是線性可分的, 感知機學習的目標是確定\(w\), \(b\)從而得到一個可以正確劃分訓練集正負樣本的分離超平面, 需要定義損失函式並將其極小化. 感知機所採用的損失函式是誤分類點到超平面

\(S\)的總距離.
首先, 特徵空間\(R^n\)中任意一點\(x_0\)到超平面\(S\)的距離:
\[ d = \frac{1}{||w||} |w\cdot x_0 + b|\]
而對於誤分類的點, 有\(-y_i(w\cdot x_i + b) > 0\), 所以, 誤分類點\(x_i\)到超平面\(S\)的距離之和為:
\[-\frac{1}{||w||}\sum_{x_i\in M}{y_i(w\cdot x_i + b)}\]
其中\(M\)為超平面\(S\)誤分類點集合. 忽略常數因子,得到感知機學習的損失函式為:
\[L(w,b)=-\sum_{x_i\in M}{y_i(w\cdot x_i + b)}\]

該損失函式就是感知機學習的經驗風險函式, 顯然\(L(w,b)\)是非負的, 若沒有誤分類點, 則損失函式為\(0\). 而且對於一個特定樣本點的損失函式, 其在錯誤分類時是引數\(w\), \(b\)的線性函式, 在正確分類時為\(0\). 故損函式\(L(w,b)\)\(w\), \(b\)的連續可導函式.

2.3 感知機學習演算法

感知機學習問題轉化為了求解損函式\(L(w,b)\)的最優化問題, 使用隨機梯度下降法.

2.3.1 感知機學習演算法的原始形式

問題: 給定訓練資料集\(T=\{(x_1, y_1), (x_2, y_2),...,(x_N, y_N)\}\), 其中\(x_i \in \chi = R^n,y_i\in \mathcal{Y}=\{+1, -1\},i=1,2,...,N\), 求引數\(w\), \(b\), 使其為以下故損失函式極小化問題的解
\[\min_{w,b}{L(w,b)=-\sum_{x_i\in M}{y_i(w\cdot x_i + b)}}\]
其中\(M\)為錯誤分類點的集合.
初始時, 任意選擇一個超平面\(w_0\), \(b_0\), 然後每次隨機選取一個誤分類點使其梯度下降. 損失函式的梯度為
\[ \begin{align*} \nabla_w L(w,b) &=-\sum_{x_i\in M}{y_i x_i}\\ \nabla_b L(w,b)&=-\sum_{x_i\in M}{y_i} \end{align*} \]
隨機選擇一個誤分類點\((x_i, y_i)\), 對\(w\), \(b\)更新:
\[ \begin{align*} w &\leftarrow w+\eta y_i x_i \\ b &\leftarrow b+\eta y_i \end{align*} \]
其中\(\eta(0<\eta \leq 1)\)是步長, 即學習率. 迭代演算法如下:
演算法:
輸入: 訓練資料集\(T=\{(x_1, y_1), (x_2, y_2),...,(x_N, y_N)\}\), 其中\(x_i \in \chi = R^n,y_i\in \mathcal{Y}=\{+1, -1\},i=1,2,...,N\), 學習率\(\eta(0<\eta \leq 1)\);
輸出: \(w\), \(b\); 感知機模型\(f(x) = sign(w\cdot x+b)\).

  1. 選取初值\(w_0\), \(b_0\)
  2. 在訓練資料中選取\((x_i, y_i)\)
  3. 如果\(y_i(w \cdot x_i +b) \leq 0\)
    \[ \begin{align*} w &\leftarrow w+\eta y_i x_i \\ b &\leftarrow b+\eta y_i \end{align*} \]
  4. 轉到2, 直到訓練集中沒有誤分類點.