该程序训练几个神经网络(隐层神经元的数量各不相同),让用户选择最好的。
该程序使用分别包含在名为Inputs1.txt和Targets1.txt文件中的输入和目标数据来训练网络。
该程序将提供的数据随机分为3部分:70%用于培训,15%用于验证,15%用于测试。用户可以在第68行到第70行中更改这个比例。
用户还可以选择使用他/她自己的测试数据:这些数据应该以Inputs2.txt和Targets2.txt相同的格式保存
当程序运行时,它会训练100个不同的网络:这些网络的隐层神经元数量不同。生成的网络保存在一个名为networks的文件夹中,与运行程序的文件夹相同。保存为net1的网络有1个隐层神经元,net2有2个,net3有3个,net4有4个,....
用户可以将第65行中的值1:100更改为他们想要的值。
训练使用Levenberg-Marquardt算法(trainlm)完成。用户可以通过更改第62行来更改他们想要的算法。
该程序还计算并将均方根误差(rmse)保存在一个名为rmse.txt的文件中。文件中的数据分为3列:第1列为隐层神经元的数量,第2列为随机15%测试数据计算的RMSE,第3列为用户自己测试数据计算的RMSE。
这个文件中的数据指导用户决定哪一个网络是最好的。具有较小rmse的网络效果更好,特别是对于基于用户自己的测试数据计算出的rmse,这超出了用于训练的数据范围。关于如何使用rmse来选择最优网络的更详细的指南载于本程序的作者所著的《MATLAB上的计算机神经网络》一书中。
引用作为
丹尼尔·奥克(2022年)。神经网络训练代码(//www.tianjin-qmedu.com/matlabcentral/fileexchange/59362-neural-network-training-code), MATLAB中央文件交换。检索.