BP神经网络
人工神经网络(Artificial Neural Network,简称 ANN)是利用仿生原理对人脑神经网络的结构和功能的简化抽象。人工神经网络是一种可以并行分散处理数据,具有非线性映射、容错能力强、自适应学习进化的特点。BP人工神经网络是在此基础上,基于误差反向传播算法而设计的多层前向神经网络。因其能够实现输入与输出间任意的非线性映射,因此在模式识别、自适应控制、风险评估等领域有着广泛的应用。
BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络。
BP神经网络的基本原理
BP算法在神经网络训练中是一个十分典型的学习算法。其构成如下:一个输入层,一个或者多个隐含层和一个输出层构成,各层又由若干个神经元节点构成,每个神经元的输出值由其输入值、传递函数、阈值所决定。神经网络的学习过程包括了正向传播和反向传播两个过程。正向传播的过程中,在输入层输出数据,经过隐含层一系列运算后,将输出层得到的结果与期望值比较,得到误差取值。若误差大于某个范围则进行反向传播,根据上一层的误差,对该层神经元的权值和阈值进行相应的修改,从而减小误差。如此循环,直到误差在精度范围内或者达到训练终止条件为止。
BP神经网络的训练方法
BP神经网络的基本训练步骤如下:
- BP神经网络的构建和初始化,确定隐含层层数,确定各层的节点数,随机生成各个节点的权值和阈值;
- 输入训练数据集,训练输入数据以及其对应的输出数据;
- 根据输入样本计算输出数据;
- 根据输出数据和期望数据计算误差,并判定是否达到精度,若达到精度就停止运行并取得各节点权值和阈值,否则继续执行(5);
- 根据误差反向传播,修正各层各节点的权值和阈值;
- 继续执行(3)。
基本BP神经网络的构建与训练(Python)
1 |
|
测试结果如下:
BP神经网络函数逼近实验
网络构建模型:
神经网络模型
对函数 f(x)=x2/3 +0.9√(3.3-x2 )×sin(31.41593x)的拟合(Python )
1 |
|
第一组测试结果:
样本数量 100,训练次数 1000,训练速率 0.05
1 |
|
拟合曲线:
误差曲线:
第二组测试结果:
样本数量 10000,训练次数 1000,训练速率 0.05
1 |
|
拟合曲线:
误差曲线:
BP神经网络
https://jason-xy.github.io/2020/06/bpnn/