Improvement of the neural net fitting app

3 ビュー (過去 30 日間)
Michele Carmelo Filippo Cintorino\
Michele Carmelo Filippo Cintorino\ 2020 年 2 月 7 日
Hello, I am using the neural net fitting app as I am trying to solve a fitting problem. I am using a multi-hidden layers net (6 inputs, 5 outputs). Each layers has 20 neurons (7 layers). The training algorythm is trainlm. I am not able to improve the performance (mse) as it will not go under 0.7. Any suggestions on how to solve this? I have tried changing the activation function of the layers and also the training algorythm (trainbr and trainscg) but I cannot get better results.

採用された回答

Divya Gaddipati
Divya Gaddipati 2020 年 3 月 5 日
Poor neural network performance might be because the error is not able to reach the goal. If this occurs then you can try the following:
1) Raise the error goal of the training function. While it seems that the lowest error goal is best, it can cause invalid training as well as hinder network generalization. For example, if you are using the trainlm function, the default error is 0. You may want to set the error to 1e-6 in order to make the network capable of reaching the error goal.
[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net.trainParam.goal=1e-6
2) You may want to use a different performance function. The default performance function is MSE (the mean squared error). For example, try SSE (Sum squared error performance function):
net.performFcn = 'sse';
However, the more a network is generalized the more difficult it is to achieve the lowest error. Therefore you may want to consider sacrificing some generalization and improving network performance by raising the performance ratio which lies in the range [0 1]. For more information on improving network generalization, you can refer to the following link:
3) You may want to increase the number of epochs for training in some situations. This will take a longer time to train the network but may yield more accurate results. To set the number of epochs see the following example which is an extension to the one above:
net.trainParam.epochs=1000;
Hope this helps!
  1 件のコメント
Michele Carmelo Filippo Cintorino\
Michele Carmelo Filippo Cintorino\ 2020 年 3 月 28 日
Thank you very much, I'll give it a try

サインインしてコメントする。

その他の回答 (1 件)

ABHISHEK sharma
ABHISHEK sharma 2020 年 3 月 28 日
Hey.. how are you using multilayer function (more than 2 ) in neural fitting app?(as it only allows 2 layers : one with nonlinear activation and other with linear activation).
I am unable to find my way.
Please help

カテゴリ

Help Center および File ExchangeSequence and Numeric Feature Data Workflows についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by