BP神经网络的代表者是D.Rumelhart和J.McCelland,"反向传播(backpropagation)"一词的使用出现在1985年后,它的广泛使用是在1986年D.Rumelhart和J.McCelland所著的Parallel Distributed Processing这本书出版以后。BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。
一、BP神经网络的模型
![bd5b372884a4994d4abc2ff1dcc7c498.png](https://i-blog.csdnimg.cn/blog_migrate/489fd3e52f7dc081ca16a43c7648d87b.jpeg)
BP神经网络的过程主要分为两个阶段,第一阶段是信号的前向传播来传递信息,第二阶段是误差的反向传播来调整中间层的权重和偏置。
二、BP神经网络的流程
BP神经网络的流程:
1、前向传播;
2、误差反向传播;
3、迭代判定标准。
以三层BP神经网络为例:
(1)前向传播
假设输入层的节点个数为n,隐含层的节点个数为l,输出层的节点个数为m。输入层到隐含层的权重w_ij,隐含层到输出层的权重为w_jk,输入层到隐含层的偏置为a_j,隐含层到输出层的偏置为b_k,学习速率为η,激励函数为g(x),一般选择sigmoid函数。形式为:
![f5e04768e0e121ba0720237a84bf3fc3.png](https://i-blog.csdnimg.cn/blog_migrate/0e9229cbb355b7517ecda6dfe40d63ee.jpeg)
隐含层的输出为:
![b4292a5227b63824683ad0d0e4e0afdb.png](https://i-blog.csdnimg.cn/blog_migrate/a068853f86959732d1fede721ce24c99.jpeg)
输出层的输出为:
![4955fe75c91fa9b5cbcb47d458e7caa4.png](https://i-blog.csdnimg.cn/blog_migrate/e8bccd1ddb88b73544310de64d0b4c20.jpeg)
(2)误差反向传播
误差反向传播的目的是更新权值,最终使目标输出与期望输出的误差函数最小。期望输出为Yk,则误差函数为:
![1df7d286fbe540ec6627cc354055f2ca.png](https://i-blog.csdnimg.cn/blog_migrate/8c3fa654eb2cb0aeaf604682ed819097.jpeg)
min(E)是个最优化的过程,我们知道梯度最大值的方向,即为函数值下降最快的方向,因此采用梯度下降法。
隐含层到输出层的权值更新:
![8b861277b8785c782fbf86135d802bc8.png](https://i-blog.csdnimg.cn/blog_migrate/9f6dccf83b5c3e4a1c60aa801051ca9a.jpeg)
输入层到隐含层的权值更新:
![f4377bebe8ab3caf5049511829072070.png](https://i-blog.csdnimg.cn/blog_migrate/4fdfffb87aeedd0623346eef3ed385e3.jpeg)
而
![50320f62e779923b3706e45dbf29762a.png](https://i-blog.csdnimg.cn/blog_migrate/2bd24fc5d205144e9e2c6727f6af69d3.jpeg)
则
![96d623140fe41b2906de78195136fe67.png](https://i-blog.csdnimg.cn/blog_migrate/d686cf1176d9b7d948cfe8173c89ceb5.jpeg)
同理,可得偏置的更新
![0a97d86ed836357f7c9adc86f663bb6a.png](https://i-blog.csdnimg.cn/blog_migrate/c94457c860a700321e24281656499b11.jpeg)
(3)迭代判定标准
常用判断迭代结束的标准主要是指定迭代的最大次数和相邻两次误差输出小于指定值。