当前位置:首页 > 神经网络 > 正文

bp神经网络的工作原理

BP神经网络算法原理入门-bp神经网络模型详解-bp神经网络代码实现matlab-笔记整合学习了一段时间后,我开始忘记一些知识,所以我整理了一下,作为自己的学习笔记,帮助别学习。
1.什么是BP神经网络
1.1BP神经网络原理
BP神经网络的全称是BackPropagationNeuralNetwork,即BPNN。 过短。
BP神经网络的原理如下图,它模仿脑的原理,把你看到的东西作为输入,经过大脑,最后作为输出。
1.2BP神经网络结构
在此思想下,BP神经网络构建了如下数学模型:
这是一个只有一个的模型。 隐层BP神经网络(加上输入层和输出层,称为三层BP神经网络),
BP神经网络还可以有多个隐层,多层BP神经网络结构图为如下:
多隐含层的BP神经网络的数学表达可以当套娃用。
学习时先用三层来理解,因为三滞后滞后使用得更频繁。
2如何训练BP神经网络
2.1BP神经网络的误差函数
BP使用均方误差函数来评估。 网络误差公式如下:
m和k分别是样本数和输出变量数。 误差越小,模型越好。
2.2梯度下降算法训练BP神经网络可以利用梯度下降算法训练BP神经网络,然后不断向负梯度方向调整,使模型的误差越来越小,最终得到最优解:
梯度下降算法需要。 为了在误差函数中使用参数的梯度,BP神经网络的梯度公式如下:
MARK,我们稍后会使用这个公式来实现代码。 如果公式不清楚,请阅读原文《BP神经网络梯度公式推导(三层结构)》中的推导,了解推导过程就会更清楚。
3如何使用Matlab实现BP神经网络
Matlab提供了实现BP神经网络模型的工具箱matlab工具箱。 但通常使用trainlm算法。 BP神经网络matlab代码示例如下:
运行后得到的结果如下:
代码中我们使用了newff函数、train函数和sim函数具体含义可以参考
matlab-BP神经网络工具箱-newff、train、sim详解
4如何写自己的代码来实现BP神经网络
如果你不会不想使用matlab工具箱,也可以自己写代码来实现BP神经网络,这就需要用到上面的梯度下降法和梯度公式。 具体代码如下:
代码运行后的结果如下:
可以看到结果匹配得非常好。
理解了上面的代码,你就基本学会了BP神经网络。 bp神经网络算法介绍bp神经网络算法简介1、BP(BackPropagation)网络是由Rumelhart和McCelland导的研究小组于1986年提出的。 BP网络可以学习并存储大量的输入输出模式映射关系,而无需提前揭示描述这种映射关系的数学方程。 学习规则是采用最速下降法,通过反向传播不断调整网络的权重和阈值,使网络的误差平方和最小。 BP神经网络模型拓扑包括输入层、隐含层和输出层。
2BP神经网络算法是在现有BP神经网络算法的基础上提出的。 它任意选择一组权重并直接使用目标输出作为线性方程的代数和。 方程组必须通过加权求解,不存在传统方法的部极小值和收敛速度慢的问题,并且更容易理解。