单层感知器是最基本的神经网络,采用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 当数据中出现奇异样本的时候,网络训练时间长
时间: 2024-10-31 04:19:39