数据结构与算法
BP神经网络算法
1. 算法原理
1.1 概述
人工神经网络无需事先确定输入输出之间映射关系的数学方程,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近期望输出值的结果。作为一种智能信息处理系统,人工神经网络实现其功能的核心是算法。BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为BP算法,它的基本思想是梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均方差为最小。
BP神经网络的计算过程由正向计算过程和反向计算过程组成。正向传播过程,输入模式从输入层经隐单元层逐层处理,并转向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各神经元的权值,使得误差信号最小。
1.2 算法分析
多层神经网络结构:
通常一个多层神经网络由 L L L层神经元组成,第一层称作输入层,最后一层称作输出层,中间层为隐含层。
多层神经网络的基本组成元素是神经元,单个神经元的模型如下:
输入层输入向量: X = ( x 1 , x 2 , . . . , x i , . . . , x m ) ; X=(x_1,x_2,...,x_i,...,x_m); X=(x1,x2,...,xi,...,xm);
第 l l l层的隐含层向量: H l = ( h 1 l , h 2 l , . . . , h j l , . . . , h s l l ) ( l = 2 , 3 , . . . , L − 1 , j = 1 , 2 , . . . , s l ) ; H^l=(h_1^l,h_2^l,...,h_j^l,...,h_{s_l}^l) (l=2,3,...,L-1,j=1,2,...,s_l); Hl=(h1l,h2l,...,hjl,...,hsll)(l=2,3,...,L−1,j=1,2,...,sl);
输出层输出向量: Y = ( y 1 , y 2 , . . . , y k , . . . , y n ) ; Y=(y_1,y_2,...,y_k,...,y_n); Y=(y1,y2</