how can I optimize a neural network with multiple outputs using the Genetic Algorithm ?

15 vues (au cours des 30 derniers jours)
Yousra TOUAMI
Yousra TOUAMI le 6 Mai 2022
Commenté : Yahya le 15 Nov 2022
Hello,
I have trained a neural network using the Neural net fitting app, my neural network have 3 inputs and 4 outputs. I want to optimize the neural network using the Genetic Algorithm but the problem is whenever I use the optimization app and include the following script I always get an error telling me that my neural network has several outputs and that the app only takes one output at a time to be able to give me the optimal conditions. ( For more info I am trying to optimize my neural network so that it gives me the optimal conditions to maximize my 4 outputs at the same time). Is there a way can change the script so that it can work with 4 outputs or is it impossible to do with the Genetic algorithm.
function y = fonc(x)
saveVarsMat = load(EA.mat');
net = saveVarsMat.net;
y = -(net(x'));

Réponses (1)

Alan Weiss
Alan Weiss le 6 Mai 2022
Generally speaking, optimization algorithms try to minimize a single scalar function of the input variables x. I don't know what your neural network is outputting that you are trying to "optimize," where I put that word in quotes because I am not sure that you are trying to minimize something.
Sometimes people want to minimize a difference between an output vector fonc(x) and a known vector known. In that case, the usual objective function is the sum of squares of differences:
f = sum((fonc(x) - known).^2);
Alan Weiss
MATLAB mathematical toolbox documentation
  4 commentaires
Yousra TOUAMI
Yousra TOUAMI le 9 Mai 2022
Excuse me sir but my previous explanation might have been confusing. In other words I am tryin to have the optimal conditions (optimal inputs) to have the highest value either in all 4 outputs (best case scenario) or at least to have the highest value for most of the outputs. And by highest value it does not necessarily mean that it will be 100% which means I can for exemple have optimal conditions that give me like 90%, 80%,87%,40% for all four outputs respectively but it will be the optimal conditions to maximize the totality of the outputs as a whole.
Alan Weiss
Alan Weiss le 10 Mai 2022
As I said before, you can look at the multiobjective solution (using gamultiobj or paretosearch) and choose the best tradeoff point on the Pareto front, where "best" means whatever you think is best. Or you can come up with a single scalar function that is "the totality of the outputs as a whole." I don't know what you mean by that, but if you can come up with a scalar mathematical expression then optimize that.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

Connectez-vous pour commenter.

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by