首页 > 代码库 > 感知器的训练算法
感知器的训练算法
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. 算法讨论
感知器的训练算法