首页 > 代码库 > 单层感知器

单层感知器

单层感知器是最基本的神经网络,采用hardlim或hardlim作为激活函数,下面是其拓扑结构:

技术分享

该感知器有s个神经元,m个输入,n个输出,先给出一些定义:

为了方便表示,将样本向量的第一个分量设为1,p(n)=[1,p1(n),p2(n),...,pm(n)),与之对应地权值矩阵的第一列设为每个神经元对应的阈值W(n)=[b1(n),w11(n),w12(n),...w1m(n);b2(n),w21(n),w22(n),...w2m(n);...;bs(n),ws1(n),ws2(n),...wsm(n)],di(n)表示第i个神经元的期望输出,yi(n)表示第i个神经元的实际输出 ,其中i= 1 to s;n表示迭代次数,η表述学习率

开始讲解感知器的学习算法:

1 n=0,初始化权值矩阵W

2 输入样本p,计算实际输出yi(n)=sgn(p(n)W(n)T)

3 更新权值矩阵:

                   W(n+1)=W(n)+η[d(n)-y(n)]p(n) d(n),y(n)为向量

4 判定是否满足条件,满足条件,迭代结束,若不满足,n+1后继续迭代2,3步

判断条件一般有三个:

(1) 误差小于一个较小的值ζ

                      |di(n)-yi(n)|<ζ

(2) 权值变化较小

                       |W(n+1)-W(n)|<ζ

(3) 达到最大迭代步数

 

感知器的局限性:

1 由于激活函数是hardlim或hardlims,其输出只能是1,0,-1

2 感知器算法只对线性可分的样本数据收敛,只适用于线性可分的数据

3 当数据中出现奇异样本的时候,网络训练时间长

 

单层感知器