前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【数学建模】之Matlab实现BP神经网络

【数学建模】之Matlab实现BP神经网络

作者头像
树枝990
发布2020-08-20 07:45:49
3.1K0
发布2020-08-20 07:45:49
举报
文章被收录于专栏:拇指笔记拇指笔记

点击【拇指笔记】,关注我的公众号。

STEP 1 导入数据。

可以直接导入Excel数据。

代码语言:javascript
复制
[~, ~, raw] = xlsread('C:\sz000004.xlsx','Sheet1','A2:I7');

也可以命令行创建数据,

代码语言:javascript
复制
x = [(-10:0.1:10)];y = [sin(-10:0.1:10)];

STEP 2 启动nftool工具箱

直接在APP里搜索nftool即可。

STEP 3 设置BP神经网络参数

  1. 设置训练集输入和标签变量(我这里使用的是第一步里创建的x和y变量)
  1. 设置数据类型与占比

trainning:用来训练的数据。 validtion:测量网络泛化的数据(泛化停止改善时停止训练) testing:用来测试神经网络的数据。

  1. 设置隐藏层神经单元的数量

一般来说,隐藏层神经单元()和输入层神经单元()、输出层神经单元()之间存在如下的关系。

STEP 4 训练神经网络

这里可以设置训练算法。一般选LM算法

点击进行训练神经网络

STEP 5 检查参数

训练完神经网络后会生成一张训练卡。

给出了学习周期(Epoch),训练花费的时间(Time),精度(Performance),梯度(Gradient),验证检查(Validation checks).

停止准则:在1000次训练中,如果Performance,Gradient,Mu中的一个达到了目标精度或六次训练误差都没有降低,则停止训练。

这四个进度条哪个满了,就代表根据那一准则停止训练。

STEP 6 绘制训练过程图

训练卡的下半部分是Plots区。

比如第一个,绘制最高精度出现的过程

一般来说第四个(regression)可以看出训练效果,R越接近于1,预测结果越准确。

STEP 7 导出神经网络

一般来说用第二种方式导出。

导出后得到

STEP 8 命令行调用神经网络

首先创建一组新变量x1

代码语言:javascript
复制
x1 = [(10:0.1:30)]

然后调用。

代码语言:javascript
复制
y1 = myNeuralNetworkFunction(x1)

通过神经网络预测的y1

如果神经网络预测结果出现问题,可以通过以下几种方法解决试试。

解决方案:

1.增加样本数量(我的样本数量过少,只有两百个)

2.减少神经元的数量

3.增加训练次数

STEP 9 保存

两种方法(Simple Script和Advanced Script)都可选择,前者简单,后者可拓展性强。

保存完毕后,下一次可以直接运行脚本而无需打开工具箱。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拇指笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • STEP 1 导入数据。
  • STEP 2 启动nftool工具箱
  • STEP 3 设置BP神经网络参数
  • STEP 4 训练神经网络
  • STEP 5 检查参数
  • STEP 6 绘制训练过程图
  • STEP 7 导出神经网络
  • STEP 8 命令行调用神经网络
  • STEP 9 保存
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档