BP神经网络算法推导
BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成正向传播时,输人样本从输人层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分推给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受的程度,或进进行到预先设定的学习次数为止。
采用BP算法的多层感知器是至今为止应用最广泛的神经网络,在多层感知器的应用中,以图3.16所示的单隐层网络的应用最为普遍。一般习惯单隐层感知器称为三层感知器,所谓三层包括了输人层、隐层和输出层。
三层感知器中,输入向量为 X=(x1,x2,...,xi,...,xn)T ,图中 x0=−1 是为隐层神经元引人阈值而设置的;隐层输出向量为 Y=(y1,y2,...,yj,...,ym)T ,图中yo=-1是为为输出层神经元引人阈值而设置的;输出层输出向量为 O=(o1,o2,...,ok,...,ol)T ;期望输出向量为 d=(d1,d2,...,dk,...,dl)T 。输人层到隐层之间的权值矩阵用用 V 表示,
V=(V1,V2,...,Vj,...,Vm) ,其中列向量 Vj 为隐层第j个神经元对应的权向量;隐层到输出层之间的权值矩阵用 W 表示,W=(W1,W2,...,Wk,...,Wi) ,其中列向量 Wk 为输出层第k个神经元对应的权向量,下面分析各层信号之间的数学关系。
对于输出层,有
Ok=f(netk),k=1,2,..,l(3.6)
其中f(netk)=∑j=0mWjkyj,k=1,2,..,l(3.7)
对于隐层,有yj=f(netj),j=1,2,..,m(3.8)
其中f(netj)=∑i=0nVijxi,j=1,2,..,m(3.9)
转移函数为 Sigmoid函数:f(