BP神经网络之MATLAB@GUI篇

本文介绍了如何在MATLAB中使用GUI设计BP神经网络,包括选择网络结构、训练函数、初始权值赋值等步骤,并通过bodyfat数据集进行示例,探讨了训练数据、修正数据和测试数据的划分,以及训练后的评估和优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计BP神经网络方法

使用BP神经网络解决问题时,需要一个训练数据集,此外还需要确定以下参数:

(1)网络层数

BP网络可以包含1到多个隐层,单隐层前馈网络已具有很大的学习。因此对于大部分场合,单个隐层即可满足需求。面对大数据,从增加模型复杂度角度来说,增加隐层数目比增加隐层神经节点数更有效,因为增加隐层数目不仅增加了拥有激活函数的神经元数目,还增加了记过函数嵌套的层数。但随着隐层数目增加,网络收敛难度加大,传统BP算法很难实现。

(2)输入层节点数、输出层节点个数

输入层节点数取决于输入向量的维数、输出层节点数取决于目标结果。实际应用时,首先应将问题提炼出向量模型用于表述输入、输出。

(3)隐含层节点数

隐含层节点数的选择对网络影响很大,数目较多会带来更好的性能,但训练难度也会变大,一般采用经验公式估计节点数,例如:

a.M = 根号下(n+m)+a,n、m分别为输入层、输出层神经元个数,a是0到10之间常数

b.M = log2(n),n为输入层神经元个数 

(4)传递函数选择

一般隐含层使用Sigmoid函数,而输出层使用线性函数。如果输出层也采用Sigmoid函数,则输出结果为[0,1]或[-1,1]。

(5)训练函数选择

针对不同类型问题,选择不同训练函数。例如对于包含数百个权值的回归问题,LM收敛速度快,误差小。但LM占用内存大,模式识别问题处理能力弱,RPROP是更好的选择。(MATLAB中所有训练函数在后文列出)

(7)初始权值赋值

参数的初始值对训练过程有着重大的影响。对参数初始化的原则是:参数应该随机初始化在能让sigmoid函数在线性区域激活的值。如果参数全部都很大,那

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值