BP神经网络——从原理到应用

1 BP神经网络概念
首先从名称中可以看出,Bp神经网络可以分为两个部分,bp和神经网络。bp是 Back Propagation 的简写 ,意思是反向传播。
BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小
其主要的特点是:信号是正向传播的,而误差是反向传播的。
举一个例子,某厂商生产一种产品,投放到市场之后得到了消费者的反馈,根据消费者的反馈,厂商对产品进一步升级,优化,一直循环往复,直到实现最终目的——生产出让消费者更满意的产品。产品投放就是“信号前向传播”,消费者的反馈就是“误差反向传播”。这就是BP神经网络的核心
2 算法流程图
3 神经元模型
每个神经元都接受来自其它神经元的输入信号,每个信号都通过一个带有权重的连接传递,神经元把这些信号加起来得到一个总输入值,然后将总输入值与神经元的阈值进行对比(模拟阈值电位),然后通过一个“激活函数”处理得到最终的输出(模拟细胞的激活),这个输出又会作为之后神经元的输入一层一层传递下去。
4 激活函数:( )
引入激活函数的目的是在模型中引入非线性。如果没有激活函数(其实相当于激励函数是f(x) = x),那么无论你的神经网络有多少层,最终都是一个线性映射,那么网络的逼近能力就相当有限,单纯的线性映射无法解决线性不可分问题。正因为上面的原因,我们决定引入非线性函数作为激励函数,这样深层神经网络表达能力就更加强大
BP神经网络算法常用的激活函数:
1)Sigmoid(logistic),也称为S型生长曲线,函数在用于分类器时,效果更好。
2)Tanh函数(双曲正切函数),解决了logistic中心不为0的缺点,但依旧有梯度易消失的缺点。
3)relu函数是一个通用的激活函数,针对Sigmoid函数和tanh的缺点进行改进的,目前在大多数情况下使用
5 神经网络基础架构
BP网络由输入层、隐藏层、输出层组成。
输入层:信息的输入端,是读入你输入的数据的
隐藏层:信息的处理端,可以设置这个隐藏层的层数(在这里一层隐藏层,q个神经元)
输出层:信息的输出端,也就是我们要的结果
v,w分别的输入层到隐藏层,隐藏层到输出层的是权重
对于上图的只含一个隐层的神经网络模型:BP神经网络的过程主要分为两个阶段,第一阶段是信号的正向传播,从输入层经过隐含层,最后到达输出层;第二阶段是误差的反向传播,从输出层到隐含层,最后到输入层,依次调节隐含层到输出层的权重和偏置,输入层到隐含层的权重和偏置。
6 正向传播过程
正向传播就是让信息从输入层进入网络,依次经过每一层的计算,得到最终输出层结果的过程。在上面的网络中,我们的计算过程比较直接,用每一层的数值乘以对应的权重+偏置变量(激活函数)
类似的我们可以求解出y2——yl
因为参数是随机的,所以第一次计算出的结果跟真实的结果会有一个非常大的误差,所以我们需要根据误差去调整参数,让参数可以更好的去拟合,直到误差达到最小值,这时就需要模型的反向传播==
7 反向传播过程
基本思想就是通过计算输出层与期望值之间的误差来调整网络参数,从而使得误差变小
计算误差公式如下:(差值的平方)
如何调整权重的大小,才能使损失函数不断地变小呢?这里给大家介绍几种常用的方法:
梯度下降法:从几何意义讲,梯度矩阵代表了函数增加最快的方向,因此,沿着与之相反的方向就可以更快到最小值鱼的资料
sgd:在梯度下降法基础上,sgd对单个训练样本进行参数更新,加快收敛速率。
adam:在梯度下降法基础上,通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率,加快收敛速率
lbfgs:sgd,Adam等都是在一阶法(梯度下降法)的基础上进行改进,加快收敛速率。而lbfgs在二阶泰勒展开式进行局部近似平均损失的基础上进行改进的,以降低了迭代过程中的存储量,加快收敛速率。
权重反向更新:
 为学习率,可以调整更新的步伐,合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。
学习率设置太小,结果收敛非常缓慢;学习率设置太大,结果在最优值附近徘徊,难以收敛,一般选取为0.01−0.8
至此,我们完成了一次神经网络的训练过程,通过不断的使用所有数据记录进行训练,从而得到一个分类模型。不断地迭代,不可能无休止的下去,总归有个终止条件。
设置最大迭代次数,比如使用数据集迭代100次后停止训练
计算训练集在网络上的预测准确率,达到一定门限值后停止训练
8 案例及软件实现
8.1 案例介绍
研究“幸福感”的影响因素,有四个变量可能对幸福感有影响,他们分别是:经济收入、受教育程度、身体健康、情感支持。建立支持 bp 神经网络模型来预测幸福度。
8.2 软件实现
Step1:新建分析;
Step2:上传数据;
Step3:选择对应数据打开后进行预览,确认无误后点击开始分析;
上海航天冰箱
step4:选择【bp 神经网络回归】;
step5:查看对应的数据数据格式,按要求输入【bp 神经网络回归】数据(注:bp 神经网络中定类自变量建议进行编码,定量变量建议标准化)
step6:进行参数设置(“更多设置”里的参数在客户端可进行设定)
step7:点击【开始分析】,完成全部操作。
8.3 结果展现
输出结果 1:模型参数
上表展示了训练该模型的时候,输入的参数以及训练所耗的时间。
输出结果 2:模型评估结果
外科学精品课程
上表中展示了训练集和测试集的预测评价指标,通过量化指标来衡量 bp 神经网络的预测效果。
● MSE(均方误差): 预测值与实际值之差平方的期望值。取值越小,模型准确度越高。
● RMSE(均方根误差):为 MSE 的平方根,取值越小,模型准确度越高。
● MAE(平均绝对误差): 绝对误差的平均值,能反映预测值误差的实际情况。取值越小,模型准确度越高。
● MAPE(平均绝对百分比误差): 是 MAE 的变形,它是一个百分比值。取值越小,模型准确度越高。
● R²: 将预测值跟只使用均值的情况下相比,结果越靠近 1 模型准确度越高。
训练集测试集的各预测评价指标值相差不大,就平均绝对百分比误差来看,误差率仅 9%左右,模型预测良好。
输出结果 3:测试数据预测结果
上表展示了 bp 神经网络模型对测试数据的预测结果,第一列是预测结果,第二列是因变量真实值,其余列是各自变量的值。
输出结果 4:测试数据预测图
上图中展示了 bp 神经网络回归对测试数据的预测情况。
输出结果 5:模型预测与应用(此功能只在客户端支持使用)
:当无法进行预测功能时,可检查数据集中是否存在定类变量或者缺失值:
● 当存在定类变量时,请在用于训练模型的数据集和用于预测的数据集中将变量编码,再进行操作。
(SPSSPRO:数据处理->数据编码->将定类变量编码为定量)
● 当用于预测数据的数据集中存在缺失值时,请删去缺失值再进行操作。
情况 1:在上面模型评估后,模型分类结果较好,具有实用性,这时我们将该模型进行应用。点击【模型预测】上传文件可以直接得到预测结果。
经上述操作后,得到以下结果:
天师钟馗之美丽传说情况 2:若是上传的数据包括因变量真实值,不仅仅可以得到预测结果,还可以得到当前应用数据预测评估效果。
经上述操作后,得到以下结果:
注:
由于 bp 神经网络具有随机性,每次运算的结果不一样。若需要保存本次训练模型,需要使用 SPSSPRO 客户端进行。
bp 神经网络的参数修改需要使用 SPSSPRO 客户端进行。
9 总结心游
通过前面的介绍,相信读者可以发现BP神经网络模型有一些参数是需要设计者给出的,也有一些参数是模型自己求解的。那么,哪些参数是需要模型设计者确定的呢?
比如,学习率,隐含层的层数,每个隐含层的神经元个数,激活函数的选取,损失函数(代价函数)的选取等等,这些参数被称之为超参数。
其它的参数,比如权重矩阵和偏置系数在确定了超参数之后是可以通过模型的计算来得到的,这些参数称之为普通参数,简称参数。
超参数的确定其实是很困难的,因为你很难知道什么样的超参数会让模型表现得更好,希
望通过大家的努力慢慢探索吧。

本文发布于:2024-09-21 17:43:10,感谢您对本站的认可!

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

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

标签:模型   参数   函数   神经网络   进行   预测   数据   结果
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议