BP神经网络预测模型

蒸发残渣
BP神经⽹络预测模型
⼀、BP神经⽹络简单介绍
BP神经⽹络是⼀种⼈⼯神经⽹络,其主旨是⼀种进⾏分布式并⾏信息处理的数学模型。
其内部包含⼀个或多个隐含层。
1、基本概念
感知器
代表BP神经⽹络中的单个节点。
其包含:输⼊项、权重、偏置、激活函数、输出。
下图可以看出其详细信息:
其中Xi代表输⼊、Wi代表权重、b代表偏置、f代表激活函数。
引⼊偏置b的原因在于让其模型适⽤于更多情况。
图中的⼯作流程为:从输⼊端开始,沿着箭头指向乘以相关权重系数后加和(还需加偏重),加和后得到的结果作为激活函数的输⼊再次计算,此时得到的结果作为此节点的输出。
⼀个节点的输出将作为下⼀个节点的输⼊,依次计算,直到得到最终的输出。
以上⼯作流程也被称为BP神经⽹络正向传播
注明:以上图⽚来源于B站视频:
2、核⼼步骤
我们在第⼀轮得到满意结果以后会进⾏测试。如果测试结果满意那么就可以直接应⽤。否则就需要多次迭代对权重进⾏调整(权重调整⽅法采⽤梯度下降法),每次调整过后都会进⾏测试。循环往复直到测试结果满意。
以上图形的⼯作流程虚线部分也被称为BP神经⽹络的反向传播过程。
利⽤梯度下降法寻函数最⼩值:
函数为: f(x)=x^2+2
假设设置认定初始值x=3时函数值最⼩,步长设置为0.2。那么此时将计算f(3.2)与f(2.8)的值,将所获函数值较⼩的那⼀⽅f(2.8)作为下次迭代的中⼼值,那么下⼀次就是⽐较f(3)与f(2.6)。依次迭代直到选择出最⼩值。
我们也可以通过改变步长来获取最⼩值,但是需要注意:
步长太⼩,迭代次数就会多,导致收敛慢 步长太⼤会引起振荡,可能⽆法收敛
3、梯度下降法使⽤解析
植物保护学报
参考上⾯的例⼦,会因为步长的不正确选择导致振荡⽆法收敛,所以需要采⽤在不同的位置选择不同的步长来解决这个问题,即:
其中n为学习率。
华罗庚优选法以此得到下⼀个点的值为:
当然其中也会存在误差,误差存在的原因在于x(k+1)的取值可能存在不准确现象。由于误差的存在是在求导之后产⽣的,即针对求导之后误差为(y为解析值,y*为实际数值):
Loss=∑(y-y*)
那么针对求导之前为:
以上为BP神经⽹络的误差项
误差项越⼤,调整越⼤,误差项越⼩,调整越⼩。
4、梯度下降法使⽤原因
梯度是⼀个⽮量,表⽰某⼀个函数在该点处的⽅向导数沿着该⽅向取得的最⼤值。也就是说函数在该点沿着该⽅向(梯度⽅向)变化最快,变化率(梯度的模)最⼤。
梯度取正时,上升最快,梯度取负时下降最快。
在⽬前深度神经⽹络模型中,梯度下降法是最优化的⽅法。但是使⽤梯度下降法很容易遭遇梯度消散和梯度爆炸的问题。参考:
具体使⽤过程中是通过计算梯度,通过梯度进⾏迭代并更新参数向量。
5、反向传播过程
反向传播使⽤梯度下降法,这⾥引⼊局部梯度,即不考虑之前的梯度值,只关注局部⼀个变量的梯度。
反向传播过程中涉及到上游梯度和本地梯度,最终该节点的值为:
拉什迪节点的值=上游梯度*本地梯度
例如在神经⽹络中经常使⽤的激活函数Sigmoid函数:
园林古建筑反向传播解析如下:
从(1)开始进⾏作为输⼊到达(5)的输出表⽰正向传播,反向从(5)开始求导进⾏反向传播。
(5)过程表⽰初始值1,由于(5)的下⼀步是输出,假设上游梯度为1,由于下⼀步为输出,那么此过程值为1。
(4)过程上游梯度为1,本地梯度为-1/x^2,其中x为1.14,那么此过程值为-0.77。
(3)过程上游梯度为-0.77,本地梯度为1【为1的原因是:f(x)=x+a求导之后就是f’(x)=1也就是+1的效果,那么原函数的梯度就是1】,那么过程值为-0.77。
(2)过程上游梯度为-0.77,本地梯度为e^x【因为f(x)= e^x 的导数还是e^x】,过程值为-0.1。
(1)过程上游梯度为-0.1,本地梯度为-1【由于f(x)=ax求导之后为a】。其过程值为0.1。
可爱的四兄弟其中要注意如果存在输⼊为两个变量的情况,例如如下:
此时w0的值是所在⽀线的本地梯度*上游梯度,但是需要注意w0的本地梯度是⼀个偏导值,即为0.2 * -1=-0.2。
6、反向传播和正向传播中特殊的运算结构
Max和Min函数所在结点的本地梯度,如果参与后续运算,则本地梯度为1,否则为0。
如下图所⽰的情况,上游梯度为两个⽅向上的梯度相加。
7、反向传播(矩阵)
矩阵的反向传播需要遵循:求解出来的梯度矩阵的形式应当与原矩阵完全⼀致,这⼀点可以作为检验计算结果是否正确的标准。
⼆、BP神经⽹络Python实现
代码:
理解:
其中main.py是完整版的解释程序。

本文发布于:2024-09-21 23:36:29,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/50556.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:梯度   传播   反向   作为   步长   神经
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议