How to develop an inverse design model using MATLAB's neural network toolbox?
Ältere Kommentare anzeigen
Hello,
I want to develop an inverse design model using MATALB's neural network toolbox. Following are the details about it.
1) Firstly I want to develop a neural network model between my inputs(X) & outputs (Y) such that.......(Y1,Y2) = f (X1,X2,X3)
2) Once above model is created with the help of that trained function "f" I want to predict X1 for new inputs such that........X1 = f_inverse (Y1,Y2,X2,X3)
Is it possible to develop such model? If yes then how it is done?
Thank you for the help.
Antworten (1)
Abhas
am 9 Jun. 2025
Yes, we can build an inverse design model in MATLAB’s Neural Network Toolbox, though it requires additional setup since MATLAB’s "fitnet" or "feedforwardnet" handle direct mapping "Y = f(X)" natively, but not inverse functions automatically.
We can achieve it in the below steps:
- Train forward model: Inputs: X = [X1, X2, X3], Targets: Y = [Y1, Y2]
net_forward = fitnet(hiddenLayerSize);
net_forward = train(net_forward, X, Y);
- Build inverse model: Prepare inverse training data: Inputs: [Y1, Y2, X2, X3], Targets: X1
net_inverse = fitnet(hiddenLayerSize);
net_inverse = train(net_inverse, [Y; X(2:3,:)], X(1,:));
- We can also use optimization to solve for X1: For new values ("Y1_new", "Y2_new", "X2_new", "X3_new"), use optimization:
objective = @(x1) norm(net_forward([x1; X2_new; X3_new]) - [Y1_new; Y2_new]);
x1_opt = fmincon(objective, initial_guess, [], [], [], [], lb, ub);
You may refer to the below resources to know more about the same:
- feedforwardnet: https://www.mathworks.com/help/deeplearning/ref/feedforwardnet.html
- fitnet: https://www.mathworks.com/help/deeplearning/ref/fitnet.html
- https://www.mathworks.com/matlabcentral/answers/460160-is-it-possible-to-perform-inverse-prediction-using-a-neural-network-using-the-matlab-deep-learning-t
I hope this resolves your query!
1 Kommentar
sk maidul
am 23 Jan. 2026
Hi, I am interested to solve the similar problem. From your answer, I am not still understanding how net_inverse is going to solve the problem. Ultimately, we want to predict [X1_new,X2_new,X3_new] based on given values of [Y1_new,Y2_new]. But your net_inverse after full training also would require X2_new, X3_new in addition to [Y1_new,Y2_new] in order to calculate X1, for example.
I hope, my question is clear to you.
Kategorien
Mehr zu Deep Learning Toolbox finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!