基本原理:
BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为BP算法,它的基本思想是梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均方差为最小。基本BP算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向进行,而调整权值和阈值则从输出到输入的方向进行。正向传播时,输入信号通过隐含层作用于输出节点,经过非线性变换,产生输出信号,若实际输出与期望输出不相符,则转入误差的反向传播过程。误差反传是将输出误差通过隐含层向输入层逐层反传,并将误差分摊给各层所有单元,以从各层获得的误差信号作为调整各单元权值的依据。通过调整输入节点与隐层节点的联接强度和隐层节点与输出节点的联接强度以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。
结构:
BP网络是在输入层与输出层之间增加若干层(一层或多层)神经元,这些神经元称为隐单元,它们与外界没有直接的联系,但其状态的改变,则能影响输入与输出之间的关系,每一层可以有若干个节点。
由于BP神经网络参数超级多,如果不先定义好变量,后面非常难理解,故针对上述图形,定义如下:
(1) n1 :表示网络层数,此处为4
(2)L1:表示第l层,L是输入层,Ln1是输出层,其他为隐含层
(3) w(l)ij。表示第l+1层第i个单元与第l层第j个单元的连接权重
(4)b(l)i:表示第l层第i个单元的偏置项(激活阈值)
(5)z(l)i:表示第l层第i个单元的权重累计
(6) a(l)i:表示第l层第i上单元的激活值(输出值)
(7)h(X)wb:表示最后的输出值.
(8)Sl:表示第l层的神经元个数
(9)样本个数为m,特征个数为n
由定义推导:
第一层:
第二层:
第三层:
第四层:
计算过程:
BP神经网络的计算过程由正向计算过程和反向计算过程组成。正向传播过程,输入模式从输入层经隐单元层逐层处理,并转向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各神经元的权值,使得误差信号最小。
BP网络神经网络公式推导:
对于单价样本,代价函数为:
对于全部样本,代价函数为:
BP神经网络的实现: