增加隐藏层的数量在一个函数神经网络拟合似乎改善其性能(显然没有过度拟合)

33视图(30天)
你好,
我试图解决一个运动学/动力学的数学问题,两个移动物体 监督神经网络拟合函数 fitnet
网络需要5输入和为1的输出。
对我来说第一步是定义隐藏层和中子的数量,所以我对论文做了一些研究,试图解决同样的问题通过拟合函数神经网络和感到惊讶,他们没有回答如何定义层和神经元的数量/层。每个人都说,他们使用“非正式测试”和“Try&Error-Method”和expirmented层数,直到他们发现结果不够好。
这让我好奇,所以我尝试至少某种“分析”这个问题。
我的选择策略是测试Number_of_Layers形式1到4和Number_of_Neurones从1到20。但这意味着20 ^ 4 = 168.420不同网络层/ neurons-architecture可以看。
所以我测试了所有的168.420函数拟合网络和改变神经元的数量/层为每个测试并保存RMSE从测试集。
网络的最重要的属性:
fitnet:
adaptFcn:“adaptwb”
adaptParam:(无)
derivFcn:“defaultderiv”
divideFcn:“dividerand”
divideParam: .trainRatio .valRatio .testRatio
divideMode:“样本”
initFcn:“initlay”
performFcn:mse的
performParam: .regularization .normalization
plotFcns: {“plotperform”plottrainstate ploterrhist,
plotregression, plotfit}
plotParams: {1 5 x5单元阵列参数}
trainFcn:“trainlm”
% %为每个单独的层:
initFcn:“initnw”
netInputFcn:“netsum”
transferFcn:“tansig”
我训练的网络与8322 datasamples divied如下:
网。trainRatio = 70/100;
网。valRatio = 25/100;
网。testRatio = 5/100;
我的第一个猜测是,网络性能会降低增加层数和神经元/层,但相反的情况。网络总神经元越多越好。
下面的图显示了test-set-RMSE(实线)和validation-set-RMSE(虚线)与均匀分布的神经元网络的例子
(例如:1
3 - 3
2-2-2
16-16-16-16
等……)
最有趣的部分是,网络test_RMSE最少的有4层(8 17 15 3)神经元。
然后我拍了一些其他的例子> 10在第一层神经元,< 15神经元层2和3,< 5神经元层四个。
他们都showd significanlty更好的结果比每层神经元网络与均匀分布。
我不能找到一个解释这种现象(一些神经元在第一和最后一层,中间画的许多神经元层)。
我现在很好奇是否有人解释或者至少经历了同样的现象。提前谢谢!

答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!