仪器信息网APP
选仪器、听讲座、看资讯

BP神经网络回归预测

  • 导演叫我趴下脸着地
    2020/09/03
    Love to share
  • 私聊

近红外光谱(NIR)

  • BP神经网络回归预测

    网络结构设计

    误差反向传播(Back Propagation)神经网络简称为BP神经网络[61]BP神经网络以其结构简单、非线性映射能力强、泛化能力高、预测精度高等优点,被广泛应用。BP神经网络的网络结构分为输入层、隐藏层和输出层组成,每一层都由若干个神经元组成,不同层的每个神经元之间采用全连接的方式。隐藏层可以有多个层数,隐藏层越多,理论上模型的精确度越高,但是太多容易造成过拟合。BP神经网络的网络结构示意图如下图所示。

    神经网络结构示意图



    隐藏层节点的经验公式[62]



    式中,n为输入层节点数,m为输出层节点数,a1~10之间的常数。

    根据式(4-1),输入层节点数为7,输出层节点数为1a选择为10,得到隐藏层节点数为13,以第一层隐藏层节点数为13,设计四层隐藏层,网络结构分别为7×1313×1010×55×3

    激活函数选择

    激活函数是指神经元的输出值在传递给下一层的神经元时的一个映射函数。上层神经元的输出值通过这个映射函数被映射成一个新的值作为下一层神经元的输入值。神经元激活函数的示意图如下图所示。

    神经元激活函数示意图



    激活函数的作用是通过映射能够让神经网络的输出值逼近任意的非线性函数。如果没有激活函数的映射作用,每一层神经元的输入都只是上一层神经元的输出,这样就只能逼近线性函数,有没有隐藏层对提升预测准确率意义不大。

    常用的激活函数有如下几种。

    (1) sigmoid函数

    sigmoid函数在神经网络中作为激活函数是比较常见的,其数学公式如下:



    函数图像如下图4-16所示。从图中可以看出,sigmoid函数处处可导,并且它能够将输入的连续值转化成0-1之间的输出,对于前向传输比较方便。但是,神经网络是采用梯度下降法作为优化方法,当输入趋于无穷时,函数值变化比较小,在深层网络中容易发生梯度消失的现象。

    sigmoid函数图像



    (2) tanh函数

    tanh的函数解析式为:



    函数图像如图所示。由式)可知,tanh函数的均值是0,比sigmoid在应用效果上要好,但是仍然没有解决梯度消失的问题。

    tanh函数图像



    (3) relu函数

    relu函数的函数表达式如下:



    x大于0时,relu函数为一次函数,当x小于0时,relu函数为0,函数图像如下图4-18所示。relu成功地解决了梯度消失的问题,而且收敛速度比sigmoidtanh快很多。所以,在建模过程中选择relu函数为激活函数。

    relu函数图像



    BP网络建模结果

    将所有数据随机分成70%的训练集和30%的预测集。对训练集和预测集数据同时进行归一化,使原始数据转换到[0,1]区间内。归一化公式如下:



    对训练集进行十折交叉验证,将训练集均分成十份,第一次将第十份用作验证集,其余九份作为训练集,评价标准为均方根误差RMSE得到验证结果;下一次将第九份用作验证集,以此类推,得到十组预测结果,求其平均值,作为交叉验证结果。以平方损失函数作为模型的损失函数,训练过程loss图如下图所示。

    BP神经网络loss



    十折交叉验证结果RMSE的平均值为0.192,在预测集上得到的预测值与真实值之间的RMSE结果为0.201
猜你喜欢最新推荐热门推荐更多推荐
举报帖子

执行举报

点赞用户
好友列表
加载中...
正在为您切换请稍后...