1. 什么是BP神经网络?
BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的全职和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)隐层(hide layer)和输出层(output layer)。
2. BP神经网络的特点
多层前馈神经网络,信号向前传播,误差向后传播。
3. BP神经网络的结构
如:
n = -10 : 0.1 :10;
a = logsig(n)
plot(n, a)
grid on
4. BP神经网络原理
基本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。利用输出后的误差来估计输出层的直接前一层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所以其他各层的误差估计。
5. BP神经网络原理
误差向后传播
6. BP神经网络工作流程
Ø 网络的初始化
根据训练数据确定网络的输入神经元n,隐含神经元数l,输出神经元数m,初始化各层神经元之间的连接权值Wij和Wjk,初始化隐含层和输出层的阈值a和b,给定学习速率和神经元传递函数。
Ø 隐含层输出计算
根据输入方向X,输入层好人隐含层连接权值Wij以及隐含层阈值a,计算隐含层输出H。
Ø 输出层输出计算.
根据隐含层输出的H,连接权值Wij和阈值b,计算BP神经网络的预测输出O。
Ø 误差计算根据预测输出O和期望输出Y计算网络预测误差e
Ø 权值更新根据网络误差更新网络权值Wij,Wjk
Ø 阈值更新,根据网络误差网络e,神经元阈值a,b
Ø 判断算法迭代是否结束,若没有结束返回步骤2
7. BP网络的标准学习算法——学习过程
8. BP标准算法步骤
Ø 网络结构
输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元。
Ø 变量定义
1) 网络初始化
给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值和最大学习次数M
2) 随机选取一个输入样本及对应期望输出
3) 计算隐含层和输出层个神经元的输入和输出
4) 利用网络期望输出和实际输出,计算误差函数对输出层的个神经元的偏导数
5) 利用隐含层到输出层的连接权值,输出层的输出和隐含层的输出,计算误差函数对隐含层各神经元的偏导数
6) 利用输出层个神经元的和隐含层各神经元的输出来修正连接权值
7) 利用隐含层各神经元的和输入层各神经元的输入修正连接权值
8) 计算全局误差
9) 判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。
9. 梯度下降法
10. BP标准算法直观解释
当误差对权值的偏导数大于零时,权值调整量为负,实际输出大于期望输出,权值向减少方向调整,使得实际输出与期望输出的差减少。
当误差对权值的偏导数小于零时,权值调整量为正,书籍输出少于期望输出,权值向增大方向调整,使得实际输出与期望输出的差减少。
11. BP神经网络的改进
基本BP算法的缺陷:BP算法因其简单、易行、计算量小、并行性强等优点,目前是神经网络训练采用最多也是最成熟的训练算法之一。其算法的实质是求解误差函数的最小值问题,由于它采用非线性规划中的最速下降方法,按误差函数的负梯度方向修改权值,因而存在一下问题:学习效率低,收敛速度慢;易陷入局部极小状态
BP神经网络的构建必须注意隐含层神经元数的选择
如果隐含层神经元数过少,BP神经网络难以建立复杂的映射关系,网络预测误差较大,如果隐含层神经元数过多,网络学习的时间增加,并且可能出现过拟合的现象,就是把样本中非规律性的内容也学会记牢,从而出现训练样本准确,但是其他样本预测误差较大。
最佳隐含层神经元数的选择可参考如下经验公式:
m为隐含层神经元数
n为输入层神经元数,l为输出层神经元数
a为1-10之间的常数
一般问题BP神经网络的分类误差随着隐含层神经元的增加呈现先减少后增加的趋势。
用GA优化BP神经网络:
Ø 用GA直接训练BP网络的权重算法
Ø 用GA先求BP网络的权重,再用纯BP直接训练BP的混合GA-BP算法