• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

MATLAB R2021b(07)

武飞扬头像
Miss Moonpence
帮助1

详细原文介绍:

神经网络入门随记 以及 matlab中神经网络工具箱的使用

关于神经网络的非常基础概念 个人笔记 不具权威性 仅供参考
欢迎指正错误 提供意见 交流讨论等

1.思路简介

我们有一个数据,称之为样本。样本有四个属性,其中三个属性已知(特征),一个属性未知(目标)。我们需要做的就是通过三个已知属性(特征)预测未知属性(目标)。

具体办法就是使用神经元的公式进行计算。三个已知属性(特征)的值是a1,a2,a3,未知属性(目标)的值是z。z可以通过公式计算出来。

这里,已知的属性称之为特征,未知的属性称之为目标。

假设特征与目标之间确实是线性关系,并且我们已经得到表示这个关系的权值w1,w2,w3。那么,我们就可以通过神经元模型预测新样本的目标。

2.权重

连接是神经元中最重要的东西。每一个连接上都有一个权重。

一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。

在神经元模型里,每个有向箭头表示的是值的加权传递。
用a表示输入,w表示权值,在连接的末端,信号的大小就变成了a*w。

3.工具箱

(1)首先是导入数据
从MATLAB左上角处选择“主页”,再选择“导入数据”。打开文件,选择所需数据(可对导入数据组更改命名),再点击右上角“导入所选内容”。

注意:输出类型选择“数值矩阵

我准备做的是一个面积运算,AB列分别是宽和高,C列为面积输出。
学新通

(2)选择工具箱
本文工具箱选用“nftool”,即神经网络拟合(neural net fitting),可在APP内选取 or 命令行输入。
接着导入数据,注意对观测值的行列选取(此处主要是行列矩阵的一个区分吧)。它默认是列,但如果是excel导入的,一般改成行,具体因样本而异。然后点击确定,准备训练。

注意:一般训练数据默认70%(据网上资料介绍7-8都差不多),太大会过拟合,太小欠拟合。
学新通
此处,层大小是指隐藏层神经元个数(Number of Hidden Neurons)
关于神经网络层数的问题,可见链接跳转知乎专栏文章

另外附:
MATLAB神经网络工具箱nntool

(3)开始训练
点击训练,稍等片刻后,看“训练结果”栏,分析相关数据。学新通
MSE:表示目标函数损失,全称检验神经网络算法的误差分析,value越低越好。
R:输出和目标之间的相关性。1表示密切关系,0表示随机关系。

补充:
损失函数(loss):用来表示预测与已知答案的差距。在训练神经网络时,通过不断改变神经网络中所有参数,使损失函数不断减小,从而训练出更高准确率的神经网络模型。常用的损失函数有均方误差(MSE),自定义和交叉熵等。

(4)训练 验证 测试

训练:432 * 0.7 = 302.4 选取302个样本
验证和测试:432 * 0.15 = 64.8 选取65个样本
此时,训练验证和测试共计432个样本,完成一个神经网络训练。

  • 训练数据集:用于模型拟合的数据样本。确定模型权值等。
  • 验证数据集:用于调整模型的超参数,为拟合后的模型提供无偏评估。如果模型配置中已包括在验证集上的调整,则该评估偏差会更大。
  • 测试数据集:为拟合后的最终模型提供无偏评估。测试已经训练好的模型的推广能力。当然,test set这并不能保证模型的正确性,他只是说相似的数据用此模型会得出相似的结果。

三者关系参考文章跳转

(5)生成代码

Ⅰ(导出模型出可生成函数代码)
学新通
生成后可查看各个性能参数。

可以保存脚本,然后从命令行运行它,以重现上次训练会话的结果。
也可以编辑脚本来自定义训练过程。
学新通
performance,误差函数,这里选用的是MSE。
ps:
如果迭代次数到达了1000,应该说明性能不是很好。在1000前停下来表示,已经运算达到了最佳值,所以自动停下。

Ⅱ 点击导出模型下拉框

这里我选择了第四个选项
学新通

命令行输入:

B_test05(x1)

输出(一共432个,太多了,截取片段):

ans =

   1.0e 04 *

  列 1 至 9

    0.0009    0.0015    0.0068    0.0910    
    0.0558    0.0518    0.0280    0.6237    0.0600

对比自己导入的输入输出数据,结果一致

下面自己输入新数据验证:
学新通
学新通
可见数值结果接近但是仍然有误差,需要改进。

4.Excel自己生成随机数值:

选中区域,输入

=RANDBTWEEN(a,b)

按下ctrl enter即可生成随机数值。

其中,a为随机数值的最小取值,b为最大。输入行查找函数时,大小写不限。

pppppps(补充几个选中区域的常用快捷键):
ctrl shift ↓ 选中一整列(列的尽头是1048576(狗头
ctrl shift → 选中右边一整行(行的尽头是XFD
↑ ← 同理

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcaiib
系列文章
更多 icon
同类精品
更多 icon
继续加载