2.感知器的訓練算法
2.1 兩類情況算法:
已知兩個訓練模式集分別屬於$\omega_1$類和$\omega_2$類,權向量的初始值為$w(1)$,可任意取值。若$x_k\in \omega_1,w^T(k)x_k>0$,若$x_k\in \omega_2,w^T(k)x_k\leq0$,則在用全部訓練模式集進行迭代訓練時,第$k$次的訓練步驟為:
- 若$x_k\in \omega_1$且$w^T(k)x_k\leq 0$,則分類器對第$k$個模式$x_k$做了錯誤分類,此時應校正權向量,使得$w(k+1) = w(k) + Cx_k$,其中$C$為一個校正增量。
- 若$x_k\in \omega_2$且$w^T(k)x_k\geq 0$,同樣分類器分類錯誤,則權向量應校正如下:$w(k+1) = w(k) - Cx_k$
- 若以上情況不符合,則表明該模式樣本在第$k$次中分類正確,因此權向量不變,即:$w(k+1) = w(k)$
若對$x\in \omega_2$的模式樣本乘以$(-1)$,則有:
$w^T(k)x_k\leq 0$時,$w(k+1) = w(k) + Cx_k$
此時,感知器算法可統一寫成:
\[w(k + 1) = \left\{ {\begin{array}{*{20}{c}}
{w(k)}&{if\;{w^T}(k){x_k} > 0}\\
{w(k) + C{x_k}}&{if\;{w^T}(k){x_k} \le 0}
\end{array}} \right.\]
2.2 多類情況算法:
對M類模式存在M個判別函數$\{d_i,i=1,2,\cdots,M\}$,若$x\in \omega_i$,則$d_i>d_j,\forall j\neq i$。
設有M種模式類別$\omega_1,\omega_2,\cdots, \omega_M,$,若在訓練過程的第$k$次迭代時,一個屬於$\omega_i$類的模式樣本$x$送入分類器,則應先計算出$M$個判別函數:
\[d_j(k)=w_j(k)x,j=1,2,\cdots,M\]
若$d_i(k)>d_j(k),j=1,2,\cdots,M,\forall j\neq i$的條件成立,則權向量不變,即
\[w_j(k+1)=w_j(k),j=1,2,\cdots,M\]
若其中第l個權向量使得$d_i(k)\leq d_1(k)$,則相應的權向量應做調整,即
\[\left\{ {\begin{array}{*{20}{c}}
{{w_i}(k + 1) = {w_i}(k) + Cx}\\
{{w_l}(k + 1) = {w_l}(k) - Cx}\\
{{w_j}(k + 1) = {w_j}(k),\;j = 1,2, \ldots ,M,\;j \ne i,\;j \ne l}
\end{array}} \right.\]
其中C是一個正常數。權向量的初始值$w_i(1),i = 1,2,\cdots,M$可視情況任意選擇。
3. 算法討論