对于想学习神经网络、机器学习的小伙伴,可以了解一下Matlab的神经网络工具箱。这个工具箱可以解决四类常见问题,并提供了一些示例数据,以及最后的结果可视化效果,可方便小伙伴对神经网络有个快速的认识和学习。
在Matlab的command窗口输入nnstart,即可调出神经网络工具箱,如下图所示,四类问题包括:
建立输入-输出的拟合关系;模式识别和分类;聚类;动态时间序列预测。
Matlab的神经网络工具箱
这里我们以第一个问题“建立输入-输出的拟合关系”为例,介绍一下这个工具箱的使用步骤。点击“Fitting app”,即可调出解决拟合问题的神经网络,默认是一个两层的神经网络,一个隐藏层和一个输出层。
解决拟合问题的神经网络
点击“Next”,到选择数据的界面。
选择数据
这里我们用它自带的示例数据,点击“Load Example Data Set”,选择Engine这组数据。这组数据的输入是Fuel rate(燃油消耗率)和Speed(车速),输出是Torque(发动机扭矩)和Nitrous oxide emissions(一氧化二氮的排放)。
训练好之后的神经网络可以根据Fuel rate(燃油消耗率)和Speed(车速),输出对应的Torque(发动机扭矩)和Nitrous oxide emissions(一氧化二氮的排放)。
Engine示例数据
选择Engine数据
选择好Engine数据后,点击Next。在训练之前,我们先要对数据进行分组,一部分用来训练连,一部分用来验证,还有一部分用来测试。将数据分为三组,也是机器学习中训练神经网络时常用的处理方式。
数据分组
这里可以选择默认的数据分组比例,点击Next,设置隐藏层的神经元数量,这里仍以默认的10为例。
设置隐藏层神经元数量
上述设置完成后,进入到神经网络的训练界面,如下图所示,这里可以选择不同的训练算法,我们以默认的为例,然后点击“Train”。
神经网络的训练界面
训练好之后,则会出现以下界面。包括神经网络的结构、设置的算法(数据分组算法、神经网络训练算法、神经网络性能指标等)、神经网络训练过程指标(迭代次数、时间等),以及训练结果的可视化。
神经网络训练完成
点击Performance,如下图所示,可看到神经网络的输出与实际输出之间的误差逐渐减小。
神经网络预测结果与实际结果之间的误差变化
点击Error histogram,如下图所示,可以查看神经网络预测结果与实际结果之间的误差分布。
神经网络预测结果与实际结果之间的误差分布
最后,我们将训练好的神经网络导出,Matlab提供了不同的格式:m-function、simulink模块以及代码生成。
导出训练好的神经网络
保存训练神经网络的结果