How to develop an inverse design model using MATLAB's neural network toolbox?

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)

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:
  1. feedforwardnet: https://www.mathworks.com/help/deeplearning/ref/feedforwardnet.html
  2. fitnet: https://www.mathworks.com/help/deeplearning/ref/fitnet.html
  3. 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

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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Deep Learning Toolbox finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 8 Nov. 2019

Kommentiert:

am 23 Jan. 2026

Community Treasure Hunt

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

Start Hunting!

Translated by