2.感知器的训练算法
2.1 两类情况算法:
已知两个训练模式集分别属于$omega_1$类和$omega_2$类,权向量的初始值为$w(1)$,可任意取值。若$x_kin omega_1,w^T(k)x_k>0$,若$x_kin omega_2,w^T(k)x_kleq0$,则在用全部训练模式集进行迭代训练时,第$k$次的训练步骤为:
- 若$x_kin omega_1$且$w^T(k)x_kleq 0$,则分类器对第$k$个模式$x_k$做了错误分类,此时应校正权向量,使得$w(k+1) = w(k) + Cx_k$,其中$C$为一个校正增量。
- 若$x_kin omega_2$且$w^T(k)x_kgeq 0$,同样分类器分类错误,则权向量应校正如下:$w(k+1) = w(k) - Cx_k$
- 若以上情况不符合,则表明该模式样本在第$k$次中分类正确,因此权向量不变,即:$w(k+1) = w(k)$
若对$xin omega_2$的模式样本乘以$(-1)$,则有:
$w^T(k)x_kleq 0$时,$w(k+1) = w(k) + Cx_k$
此时,感知器算法可统一写成:
[w(k + 1) = left{ {egin{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}}
ight.]
2.2 多类情况算法:
对M类模式存在M个判别函数${d_i,i=1,2,cdots,M}$,若$xin omega_i$,则$d_i>d_j,forall j eq 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 eq i$的条件成立,则权向量不变,即
[w_j(k+1)=w_j(k),j=1,2,cdots,M]
若其中第l个权向量使得$d_i(k)leq d_1(k)$,则相应的权向量应做调整,即
[left{ {egin{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
e i,;j
e l}
end{array}}
ight.]
其中C是一个正常数。权向量的初始值$w_i(1),i = 1,2,cdots,M$可视情况任意选择。
3. 算法讨论