MATLAB神经网络工具箱使用介绍
MATLAB神经网络工具箱使用介绍
本文将详细介绍MATLAB软件中神经网络拟合(Neural Net Fitting)工具箱的具体使用方法。通过本文,读者将学会如何使用该工具箱实现神经网络的回归分析。
在MATLAB人工神经网络ANN代码这篇文章中,我们介绍了MATLAB软件中神经网络(ANN)的纯代码实现;而在MATLAB软件中,其实基于神经网络拟合工具箱,就可以点点鼠标实现神经网络的回归。本文就对基于这一工具箱实现神经网络回归的具体方法加以详细讲解。
数据导入
首先导入训练数据时,需要使用几行简单的代码。这些代码主要是基于readtable()
函数,读取存储于Excel中的数据;随后,将因变量Y与自变量X提取出来备用。这里有一点需要注意:如果自变量有多个(比如这里就有data_NDVI与data_Soil两个自变量),需要将这两个自变量合并,放在一个变量X中。
clc;
close;
clear all;
point_file="E:/LST/01_Data/Analysis/Point_Field.xlsx";
data_all=readtable(point_file);
data_Y=data_all(:,3);
data_NDVI=data_all(:,4);
data_Soil=data_all(:,5);
Y=table2array(data_Y);
N=table2array(data_NDVI);
S=table2array(data_Soil);
X=[N S];
运行上述代码后,可以看到因变量Y与自变量X都准备完毕。
打开神经网络拟合工具箱
在MATLAB软件顶部菜单中,依次选择“APP”→“Neural Net Fitting”,打开神经网络拟合工具箱。
打开后的界面如下所示:
其中,如果点击上图左下角的“Neural Network Start”选项,就可以来到如下图所示的“Neural Network Start”界面。可以这么理解,“Neural Network Start”是MATLAB中神经网络工具箱的一个整体的开始界面,而这里需要用到的神经网络拟合工具箱(Neural Net Fitting)就是该开始界面下属的其中一个工具。
数据筛选
点击“Next”,可以看到数据筛选界面。该界面就是用来选择输入数据(自变量)、输出数据(因变量)的地方。无论是输入数据还是输出数据,都需要用鼠标在MATLAB软件的工作区中找到对应的变量。这也是为什么需要先执行一段代码,将数据从Excel中读取到MATLAB中的原因。
点击选择完毕数据后,需要对数据的维度进行选择。换句话说,就是输入与输出数据矩阵中,不同行代表的是不同样本,还是同一样本的不同属性(不同自变量)。
数据集划分
选择“Next”,进入验证集与测试集数据的划分界面。在这个界面中,需要对验证集与测试集数据的比例进行划分。一般情况下,在数据量比较少的情况下(少于一百万条数据),按照6:2:2的比例进行划分即可;在数据量多的情况下,则可以按照98:1:1的比例来划分。
神经网络结构配置
点击“Next”,进入神经网络结构配置界面。在神经网络拟合工具箱中,只能对神经网络的隐藏层的神经元数量进行配置,隐藏层的数量默认为1层,且不能修改。建议先按照默认的神经元数量10进行填写;等后期运行过模型几次后,根据模型的精度与运行时间,再返回这里对神经元的数量进行二次调整。
模型训练
点击“Next”,进入神经网络模型的训练界面。可以选择训练神经网络的具体算法,但一共仅仅有三个选项,包括Levenberg-Marquardt算法、Bayesian regularization算法、Scaled conjugate gradient backpropagation算法。一般情况下,应该选择第一种算法——Levenberg-Marquardt算法。选择算法完毕后,点击“Train”就可以开始训练模型。
模型训练完毕后,会弹出训练结果窗口。
且在神经网络模型的训练界面的右侧会出现精度评定指标的具体数值;数值下方的三个选项可以用来绘制拟合情况图。
如果对这个模型非常不满意,就可以多次重复训练,还可以更改隐藏层神经元数量、训练算法等进行重新建模。如果对模型大体满意,点击“Next”即可进入模型调整界面。
这个界面可以更方便地进行重复训练、修改隐藏层神经元个数、扩大或更换数据集等,从而完善模型。
如果没有问题,点击“Next”即可进入解决方案部署界面。这个界面听起来高深,其实说简单点,就是将训练好的神经网络,以不同的形式来导出。
但这个页面其实没有很大的作用——因为这里导出的并不是纯粹的神经网络MATLAB代码,而是一些和开发、部署工具有关的函数或图表;这里或许对于开发人员而言比较有用,对于只是单纯想训练一个神经网络模型的人而言,直接跳过就可以。
结果保存
点击“Next”即可进入神经网络拟合工具箱的最后一个界面——结果保存界面。
这个界面是我们训练这么久神经网络模型的最终目标。首先,“Generate Scripts”一栏可以自动生成一个MATLAB代码;有了这个代码,以后再想对这个结构的神经网络模型进行训练,就不用再在神经网络拟合工具箱中点来点去了,直接把新的输入数据、输出数据导入到代码里,修改代码中对应的参数即可。
接下来第二个方框“Save Data to Workspace”,是对本次训练神经网络模型过程中一些关键参数进行保存的选项。如果不想用代码来复现这个神经网络,而是想直接将训练好的模型保存下来,下一次直接用一两句代码调用它,那就选择在这里将神经网络模型对象保存下来就好(建议选择最后一项,即以结构体的格式保存全部的参数)。
这里需要说明保存神经网络代码和神经网络参数的区别。如果保存了神经网络的代码,今后调用这个代码,并不是直接调用训练好的神经网络模型,而是再用不同的数据,不通过这个神经网络拟合工具箱而是通过修改代码的方法,对神经网络模型进行调试,还可以修改模型的各项参数(比如隐藏层数量、神经元数量、训练算法等)。而如果保存了神经网络模型这个参数,今后再调用这个神经网络的时候,神经网络模型里的各项参数就不会再变了,就永永远远是训练好的这个参数。说得简单一点,前者是保存调试神经网络模型的代码,后者就是保存训练好的这个神经网络模型。
保存完毕后,点击“Finish”即可退出神经网络拟合工具箱。此外,如果没有保存任何神经网络代码或参数的话,系统还会很贴心地弹出一个提示框,询问是否确认退出。
至此,大功告成。