大范文网 - 每天发现一点点
每天学习一点点!
  • 求职简历
  • 简历范文
  • 简历模板
  • 简历表格
  • 简历格式
  • 自荐信
  • 推荐信
  • 求职信
  • 简历封面
  • 英文简历
  • 简历样本
  • 自我评价
  • 自我介绍
  • 自我鉴定
  • 写作技巧
  • 面试技巧
  • 个人简历100字
  • 个人简历200字
  • 个人简历500字
  • 当前位置:大范文网 > 个人简历 > 简历表格 >

    神经网络 激活函数 [BP神经网络实现函数逼近的应用分析]

    分类:简历表格 时间:2020-03-27 本文已影响

    相关热词搜索:神经网络 逼近 函数 分析 BP

    (华南理工大学 自动化学院,广东 广州 510640)
    摘 要:文章指出了BP神经网络存在的问题,选择了一个 具体的目标函数,利用Matlab的神经网络工具箱进行系统仿真,通过改变系统的隐层神经元 数目、训练函数和激励函数,分别比较了系统在模型发生改变后在实现函数逼近性能方面的 差异,并提出了要使BP神经网络在函数逼近方面具有良好的性能,在隐层神经元数目、训练 函数以及传递(激励)函数三个方面需要注意的问题。
    关键词:神经网络;
    BP算法;
    训练函数
    中图分类号:TP39  文献标识码:A  文章编号:1007—6921(2009)12—0094—03
    1 BP网络模型

    BP (Back Propagation)网络是一种神经网络学习算法。它由输入层、中间层、输出层组成 阶层型神经网络,中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元 之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元 获得网络的输入响应产生连接权值(Weight)。然后按减小希望输出与实际输出误差的方向 ,从输出层经各中间层逐层修正各连接权,回到输入层。此过程反复交替进行,直至网络的 全局误差趋向给定的极小值,即完成学习的过程[1]。BP网络由输入层i、隐含层j 、输出层k及各层之间的节点连接权所组成,典型的三层神经网络拓扑结构如图1所示。
    在实际应用中BP算法存在以下问题[2]:①收敛速度慢,若加快收敛速度易产生振 荡;
    ②存 在局部极小和平台问题;
    ③泛化能力差;
    ④隐层节点数和初始值的选取缺乏理论指导。
    2 BP 神经网络的应用
    2.1 神经网络的建立

    训练神经网络之前需要构造一个网络框架,函数newff() 就是构造神经网络的。它需要四个 输入条件,输入样本、各层神经元个数、各层神经元传递函数和训练用函数名称。前馈型网 络训练之前必须对权值和阈值进行初始化,newff()可以自动完成,但无法重新赋初值。可 以应用init()将网络恢复到初始化状态。
    2.2 神经网络的训练

    初始化后的网络即可用于训练,即将网络的输入和输出反复作用于网络,不断调整其权重和阈 值,以使网络性能函数net.performFcn达到最小,从而实现输入输出间的非线性映射。对于n ewff函数产生的网络,其缺省的性能函数是网络输出和实际输出间的均方差MSE。

    在MATLAB中训练网络有两类模式:逐变模式(incremental mode)和批变模式(batch mode)。

    在逐变模式中,每一个输入被作用于网络后,权重和阈值被更新一次。在批变模式中,所有的 输入被应用于网络后,权重和阈值才被更新一次。在这里我们只讨论批变模式,以批变模式来 训练网络的函数是train ,其语法主要格式为:
    [net,tr]=train(NET,p,t)

    其中p和t分别为输入输出矩阵,NET为由newff产生的要训练的网络,net为修正后的网络,tr 为训练的记录(训练步数epoch和性能perf)。train根据在newff函数中确定的训练函数来训 练,不同的训练函数对应不同的训练算法[3]。
    2.3 仿真实例
    已知系统输入为:x=sin(k×pi/40)
    系统输出为:y=0.8×sin(pi×x)+0.2×cos(3×pi×x)
    假定采样点k[0,40],采用含有一个隐层的三层BP网络建模。
    2.3.1 改变隐层神经元数目。为了便于比较建立了两个模型。模型一的神经元为{1,5,1} ,模型二为{1,20,1},输入层和隐层传递函数均为TANSIG函数,输出层为线性函数。网络训 练采用基本梯度下降算法。仿真结果如图2:
    TRAINGD, Epoch 0/50000, MSE 0.471802/0.001, Gradient 2.21781/1e-010
    TRAINGD, Epoch 44848/50000, MSE 0.000999988/0.001, Gradient 0.00136914/1e-010
    TRAINGD, Performance goal met.
    将newff的参数[1,5,1]改为[1,20,1]可得仿真结果如图3:
    TRAINGD, Epoch 0/50000, MSE 1.14616/0.001, Gradient 5.3834/1e-010
    TRAINGD, Epoch 3260/50000, MSE 0.000999415/0.001, Gradient 0.00768474/1e-010
    TRAINGD, Performance goal met.
    2.3.2 改变训练算法。采用trainlm算法的仿真结果如图4所示。
    TRAINLM, Epoch 0/50000, MSE 2.53147/0.001, Gradient 129.028/1e-010
    TRAINLM, Epoch 4/50000, MSE 0.000509102/0.001, Gradient 0.18883/1e-010
    TRAINLM, Performance goal met.
    2.3.3 改变传递函数。输入层和隐层均采用logsig传递函数的仿真结果如图5所示。

    
    TRAINGDX, Epoch 0/50000, MSE 0.726278/0.001, Gradient 2.42265/1e-006
    TRAINGDX, Epoch 203/50000, MSE 0.000998466/0.001, Gradient 0.00197551/1e-006
    TRAINGDX, Performance goal met.
    2.4 仿真分析

    通过改变网络的隐层节点数目、训练函数以及输入层和隐层的传递函数,我们得到了不同的 仿真结果和误差曲线图,对比以上仿真结果和误差曲线图,可以得到以下一些结论:
    2.4.1 其他条件不改变,增加隐层节点数目可以减少网络的训练次数。但是隐层节点数 的增加会使系统变得更加复杂,并且过大的隐层节点数对网络仿真性能的改善也不是十分明 显。通常隐层节点数目一般取作[4,5]:

    其中m、n分别为输入节点数目与输出节点数目,隐层节点数目可以根据公式(1)和(2)得 出一个初始值,然后利用逐步增长法修改,直到得到一个合适的值为止。所谓逐步增长就是 先从一个较简单的网络开始,若不符合要求则逐步增加隐层节点数到合适为止。
    2.4.2 其他条件不改变,改进型算法Trainlm的训练效果最好,Trainrp(强适应性BP 算法)、Trainbfg(拟牛顿算法)、Traingdx(自适应学习速度算法)次之,Traingd(基本 梯度下降算法)的训练效果最差。只要知道网络的结构,输入的向量和传递函数,Trainlm 算法就可以训练任意网络,它对中度规模的网络具有较快的收敛速度。Trainrp主要用于批 量模式训练,收敛速度快,数据占用存储空间小。Trainbfg数据存储量近似于Hessian矩阵,每 个训练周期计算虽大,但收敛速度较快。Traingdx收敛速度快于Traingd,仅用于批量模式训 练。Traingd收敛速度慢,可用于增量模式训练[6~8]。
    2.4.3 BP神经网络各层选用相同的传递函数,从生理上来说不符合人脑的特点。Matlab 工具箱提供了三种传递函数:tansig、logsig和purelin,前两种为非线性函数,分别将x ∈(  - ∞, +∞)的输入压缩为y∈[-1,+1]和y∈[0,1]输出。因此,对非线性问 题,输入层和隐层多采用非线性传递函数,输出层采用线性函数,以保持输出的范围。就非线 性传递函数而言,若样本输出均大于零时,多采用logsig函数,否则,采用tansig函数。对线性 系统而言,各层多采用线性函数。
    3 结束语

    笔者重点分析了隐层神经元数目、训练函数以及传递函数的不同对目标函数逼近性能的 影响,提出了要得到一个好的BP网络需要在这三个方面注意的一些问题,如怎样调整隐层神 经元数目等。当然,影响网络性能的因素还有学习步长的调整、误差函数的选取以及网络初 始参数的设置等。限于篇幅,在此不做过多的讨论。
    [参考文献]
    [1] 胡伍生.神经网络理论及其工程应用[M].北京:测绘出版社,2006.
    [2] Wen Jin-Wei Zhao Jia-Li Luo Si-Wei and Han Zhen.The Improvements of  BP Neural Network Learning Algorithm[J].IEEE Proceedings of ICSP2000,2000:1647 
    [3] 桂现才.BP神经网络在MATLAB上的实现与应用[J].湛江师范学院学报,2004,( 6).
    [4] 徐庐生.微机神经网络[M].北京:中国医药科技出版社,1995.
    [5] 高大启.有教师的线性基本函数前向三层神经网络结构研究[J].计算机学报, 1998,21(1):80~85.
    [6] Demuth H , Beale M. Neural network toolbox user"guide[M] . The Mat hWorks , Inc ,1997.
    [7] Dobbins R. Neural network PC tools : a Practical guide[M].Columbia  Academic Press ,1990.
    [8] 施阳,李俊,王惠刚.Matlab 语言工具箱- Toolbox 实用指南[M].西安:西北 工业大学出版社,1998.

    神经网络 激活函数 [BP神经网络实现函数逼近的应用分析] 相关文章