BP神经网络详解


一、BP神经网络的概念

误差逆传播简称BP算法,BP神经网络是一种多层的前馈神经网络,其主要特点是:信号前向传播,误差反向传播。如下图为只含一层的隐含层的卷积神经网络。

其大致工作流程为:

第一阶段是信号的前向传播,从输入层经过隐含层,最后达到输出层;第二阶段是误差(各边权重w和阈值)的反向传播,从输出层到隐含层,最后到输入层,依次调节各层相连边的权重的阈值。

 

                                                                                          

 

二、BP神经网络流程

神经网络的基本组成单元为神经元。具体模型如下图:

 

                                                                                                                      

其中常见激活函数有:sigmoid函数、Relu函数、Tanh函数等。

神经元的输出为:

                                                                                                 

其中w代表各边的权值,初始值一般为随机给出,后续根据反馈慢慢调节。

BP神经网络模型中,为了便于讨论,假设只有一层隐含层,即有输入层、隐含层、输出层三层结构。设输入层到隐含层的权重为 Vih,隐含层第h个神经元的阈值为Yh。隐含层到输出层的权值为Whj,输出层第j个神经元的阈值用 θ​j表示。在如下图中,有d个输入神经元,q个隐含层神经元,对应q个隐含神经元阈值,l个输出神经元,l个对应的输出神经元阈值。

                                                       

其中βj​中的bh= f (αhγh) 。即也为隐含层的输出结果。同理得出输出层的输出结果为Yj = f(Bj - θ​j)  ,其中f函数为相应的激活函数。

计算出输出结果和实际结果的方差得到误差率

然后进行反向传播减小误差。减小误差的方法为梯度下降法。此处引入另一概念学习率。

学习率是为了控制算法每一轮迭代的更新步长。若太大则容易振荡,若太小则训练速度过慢。

根据周志华西瓜书p103书上的推导,得出各层权重和阈值的更新公式。

最后总体流程总结如下:

输入:训练集D

   学习率初始值

过程:

 1、在(0,1)之间随机初始化网络中所有的权重和阈值

 2、repeat

 3、  for all (Xk,Yk) 属于 D do         

  4、    根据当前参数计算输出层最终输出Y;

 5、    根据P103中公式(5.10)计算输出层神经元的梯度项;

 6、    根据p104中公式(5.15)计算隐含层神经元的梯度项;

 7、    根据P103中公式(5.10)到(5.14)更新各权值w和阈值。

 8、  end for

 9、until 达到停止条件

 上述停止条件一般为预测值和实际值之间的误差。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM