首页 > 代码库 > 感知器的训练算法

感知器的训练算法

 

 1.感知器算法来源和基本思想
      “感知器”一词出自于20世纪50年代中期到60年代中期人们对一种分类学习机模型的称呼,它是属于有关动物和机器学习的仿生学领域中的问题。当时的一些研究者认为感知器是一种学习机的强有力模型,后来发现估计过高了,但发展感知器的一些相关概念仍然沿用下来。
 
      采用感知器算法(Perception Approach)能通过对训练模式样本集的“学习”得到判别函数的系数。由于该算法不需要对各类别中模式的统计性质做任何假设,因此称为确定性的方法。
 
      感知器算法实质上是一种赏罚过程:
–对正确分类的模式则“赏”,实际上是“不罚”,即权向量不变。
–对错误分类的模式则“罚”,使w(k)加上一个正比于xk的分量。
–当用全部模式样本训练过一轮以后,只要有一个模式是判别错误的,则需要进行下一轮迭代,即用全部模式样本再训练一次。
–如此不断反复直到全部模式样本进行训练都能得到正确的分类结果为止。

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. 算法讨论

–这里的分类算法都是通过模式样本来确定判别函数的系数,但一个分类器的判断性能最终要受并未用于训练的那些未知样本来检验。
–要使一个分类器设计完善,必须采用有代表性的训练数据,它能够合理反映模式数据的整体。
–要获得一个判别性能好的线性分类器,究竟需要多少训练样本?直观上是越多越好,但实际上能收集到的样本数目会受到客观条件的限制;过多的训练样本在训练阶段会使计算机需要较长的运算时间;一般来说,合适的样本数目估计:若k是模式的维数,令C=2(k+1),则通常选用的训练样本数目约为C的10~20倍。

感知器的训练算法