BP神经网络收敛速度

阈值、学习率、隐层层数、隐层节点个数等对神经网络的学习速度(收敛速度)都有较大的影响。本文在BP网络的基础上,研究讨论了各个参数对收敛速度的影响,以减小选取网络结构和决定各参数值的盲目性,达到提高收敛速度的目的。

1 初始权值和阈值对收敛速度的影响

初始权值和阈值要选得小一些。选择隐层节点数的原则是尽量使网络结构简单,运算量小。从实验数据分析可知:当节点数太少时,每个节点负担过重,迭代而有的选择却要迭代几千次,或者更多,甚至不收敛。

2 学习率对收敛速度的影响

学习率的设置对BP算法的收敛性有很大的影响。学习率过小,误差波动小,但学习速度慢,往往由于训练时间的限制而得不到满意解;学习率过大,学习速度加快,会引起网络出现摆动现象,导致不收敛的危险。因此,选择一个合适的学习率是B

P算法的一个较关键的问题。学习率的主要作用是调整权值、阈值的修正量.

3 隐层层数的选择对收敛速度的影响

通过实验发现,用两个隐层比用一个隐层的收敛速度还要慢。

4 隐层节点数对收敛速度的影响

目前,对隐层节点数的设定缺乏理论指导,但是实验研究表明,隐含节点数增加会影响收敛速度。

BP神经网络设计步骤

B P网络的设计主要包括输入层,隐层,输出层及各层之间的传输函数几个方面。

1 网络层数

大多数通用的神经网络都预先预定了网络的层数,而BP网络可以包含不同的隐层。对多层BP神经网络,隐层层数至少为1层或1层以上,每个隐层的神经元个数至少为1个或1个以上,否则与多层网络的命题矛盾而不成立。

2 输入层的节点数

网络的输入个数应等于应用问题的输入数,MATLAB的BP网络的建立是通过函数newff或newcf实现的.

3 网络数据的预处理

预处理方法有归一化处理、标准化处理和主成分分析。常采用的是归一化处理,即将输入、输出数据映射到[-1,1]范围内,训练结束后再反映射到原数据范围。

4 输出层的节点数

输出层节点数取决于两个方面,输出数据类型和表示该类型所需要的数据大小。

5 隐层的节点数

1)根据经验,可以参考以下公式进行设计:

n=sqrp(ni+n0)+a或者n=sqrt(nl)

式中:n为隐层节点数;ni为输入节点数;n0为输出节点数;a为1~10之间的常数。

2)改变n,用同一样本集训练,从中确定网络误差最小时对应的隐层节点数。

6 传输函数

BP网络中传输函数常采用S(sigmoid)型函数.在某些特定情况下,还可能采用纯线性(Pureline)

函数.

7 训练方法及其参数选择

net.trainParam.show=..

; %显示训练结果的间隔步数

net.trainParam.epochs= .. ; %最大训练步数

net.trainParam.goal=.. ; %训练目标误差

net.trainParam.mu=.. ; %学习系数的初始值,Marquardt调整参数

net.trainParam.mu_dec= ..; %学习系数的下降因子

net.trainParam.mu_inc=.. ; %学习系数的上升因子

net.trainParam.mu_max= ..;%学习系数的最大值

net.trainParam.min_grad=.. ; %训练中最小允许梯度值

8 初始权值的设计

通常使用如下两种方法:

(1)取足够小的初始权值

(2)使初始值为+1和-1的权值数相等。

matlab 收敛速度,BP网络的收敛速度和设计步骤【转】相关推荐

  1. matlab搭建BP网络

    matlab中使用BP网络 前一段时间在看神经网络,学习了一点皮毛,在这里和大家分享一下. 首先说明,BP并不能称之为神经网络的一种,更确切的说是一种BP算法.因为在其他的神经网络(例如LSTM,DB ...

  2. matlab中bp网络盲分离代码,利用matlab实现语音盲分离

    [实例简介] 本文利用了独立变量分析的算法,用 matlab实现了语音信号的盲分离.这在语音识别,以及未来机器人智能化上起着至关重要的作用 [实例截图] [核心代码] icalab └── icala ...

  3. matlab bp结果,Matlab如何处理BP网络每次运行结果不一样这个问题

    我按照版上指导,通过循环语句找到了最合适的节点数,也用了归一化处理.但是尽管如此,每次运行后的结果还是从60多到130多不等.这些东西写进报告里没有说服力.这个如何处理一下呢.我的原代码如下: clc ...

  4. matlab径向基网络,MATLAB——径向基网络拟合曲线和分类

    1.广义RBF P=:.:; rand('state',pi); %指定状态,产生相同的随机数 T=sin(*P)+rand(,length(P)); % 给正弦函数加噪声 plot(P,T,'o') ...

  5. 蚁群算法优化BP神经网络回归预测的算法设计-附代码

    蚁群算法ACO优化BP神经网络回归预测的算法设计及其MATLAB代码实现 文章目录 蚁群算法ACO优化BP神经网络回归预测的算法设计及其MATLAB代码实现 1. 蚁群算法简介 2. 蚁群算法优化BP ...

  6. matlab nctool使用,感知器和BP网络设计及应用技术总结.doc

    学号: 1001314197 人工神经网络实验报告 实验一 感知器和BP网络设计及应用 实验1 感知器和BP网络设计及应用 题目一 初步认识Matlab人工神经网络工具箱 实验目的 初步了解人工神经网 ...

  7. Matlab的神经网络(一)BP网络

    最近刚开始学习神经网络,感觉一开始接触浅浅的理解是没问题的,但是深层次理解还是需要不断地实践.BP是一种前馈的运行,但是可以将误差反馈回去:根据梯度下降法来不断的调整权值(容易陷入局部最小值),直到最 ...

  8. 使用BP网络逼近函数-matlab

    一.大致介绍 BP算法的学习过程是由正向传播和反向传播组成的.在正向传播的过程中,输入的信息从输入层到隐含层处理 最后传向输出层,而且每一个神经元只能影响到下一层神经元的状态.当在输出层得不到期望的输 ...

  9. 【智能控制实验】基于MATLAB的BP神经网络实现非线性函数拟合设计

    基于MATLAB的BP神经网络实现非线性函数拟合设计 一.实验要求: 重点是掌握BP神经网络的学习算法原理,掌握matlab工具箱设计BP神经网络拟合非线性模型的方法(m文件):掌握在图形用户界面下设 ...

  10. 利用BP网络实现非线性函数映射(基于matlab工具箱)

    利用BP网络实现非线性函数映射(基于matlab工具箱) 目录 利用BP网络实现非线性函数映射(基于matlab工具箱) 一.网络结构 二.学习过程 三.学习结果 四.误差分析 五.实验总结 附录(源 ...

最新文章

  1. c语言把一个数组赋值给另一个数组_如何把一个固定数组的值传递给另外一个数组...
  2. 从源码分析DEARGUI之add_input_float和4
  3. Angular7 ng-zorro-antd 制作右键菜单
  4. 软件项目管理0706:工匠精神
  5. Shiro切入Spring的方式
  6. 数据库系统故障相关知识笔记
  7. ios html特殊符号转化,iOS HTML特殊字符转译
  8. h3c 链路聚合测试_4G/5G聚合路由器在直播中无线多链路聚合图传技术是什么?
  9. 【Proteus仿真】220V转5V向单片机供电
  10. Ubuntu 18.04 安装 CUDA
  11. 使用mysqldump备份数据库
  12. Allegrocadence PCB测量时显示两种单位(mil mm)
  13. 黑盒测试具体有哪些操作步骤?
  14. 观音灵签 第六十四签下签卯宫 古人马前覆水
  15. 计算机更改默认设置,如何设置修改电脑默认播放器?
  16. PCB布局、布线小技巧
  17. 5脚耳机插座原理图_【连载十九】手机维修电路基础原理图
  18. 深入学习理解(1):java:ExecutorService invokeAll 任务的批量提交invokeAll两种方法的区别
  19. 手绘如何学?零基础手绘教程
  20. 常见的网络故障以及解决方法

热门文章

  1. “最新”手机号码归属地库制作
  2. 2023系统分析师讲义知识点总结
  3. HCNE复习参考(中)
  4. 【Codeforces Round #531 (Div. 3) F. Elongated Matrix】状压DP
  5. 五万美元的年薪是如何花光的
  6. 调用Python的PyAutoGUI模块模拟登录QQ邮箱
  7. 低代码学习教程:如何编辑自定义打印模版?
  8. beyond compare如何设置只比较实际内容?(使用关联规则比较)
  9. 理解.exe文件的结构原理即运行过程
  10. 360手机号码归属地查询抓取、免费稳定高效手机号码归属地查询