该程序训练几个神经网络(隐藏层神经元的数量不同),并使用户选择最好的。
该程序分别使用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中央文件交换。检索.