How to using the Neural net fitting in MATLAB to acquire the empirical parameters?
    6 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
In my question, I used a known empirical model y=f(x,t), which contain the coefficient (assume a,b,c,d,e,f).
The value of coefficient of the empirical model is recommeded by the past researcher.
In my case, I have some experimental data y', and I want to use neural network fitting to calibrate the coefficient.
The procedure I did is 
1.Train the neural network to predict from simulated result with original coefficient:
Ouputs of the neural network: coefficient a',b',c',d',e',f'. Therefore, 6 output layer for one sample.
Inputs of the neural network: Simulated result from the original model using the original coefficient(a,b,c,d,e,f)
Here, I build some training data form original model. For one sample, it contains y and t, input layer is 2.
The training is making the lost between output of the neural network (a',b',c',d',e',f') and the original parameter is minimum.
2.Use the trained neural network to estimate the new coefficient from experimental data y'.
My question is:
for example, if I prepare 7 sample, the input form of the training data is (two layer for one sample):
t1,t2,t3,t4,t5,t6,t7
y1,y2,y3,y4,y5,y6,y7
where the output form of the training data is (six output layer for one sample)
a,b,c,d,e,f
But there is a problem that since the coefficient(a,b,c,d,e,f) is all the same value in all sample.
For one sample:
t1
y1
a,b,c,d,e,f
t2
y2
a,b,c,d,e,f
...
I think for effective data, it should be different value in each sample so that it can be trained. Is there any suggestion on how to updated the coefficient of empirical model from neural network?
Also, when I run the neural network fitting in MATLAB, the network seems like weird.

0 commentaires
Réponses (1)
  Ayush Aniket
      
 le 5 Mai 2025
        As far as I understand, you have an empirical model y = f(x, t; a, b, c, d, e, f) with known coefficients (a–f) recommended by previous research. You also have new experimental data (y'), and you want to calibrate the coefficients to better fit your experimental data using a neural network.
Since all your training samples have the same target output (the same set of coefficients for all), the network cannot learn a meaningful mapping. It will just "memorize" or output those constant coefficients, regardless of the input. This is why your network behaves "weirdly"—it cannot generalize or calibrate the coefficients because it never saw variation in the coefficients during training.
A correct appraoch for this problem would be to use optimization techniques to directly fit the coefficients to your experimental data. This is the standard and most effective way to update empirical model parameters. Refer the steps below:
%1. Define your model function 
   y = f(t, a, b, c, d, e, f)
%2. Organize your experimental data
   %t_exp Experimental t values (vector)
   %y_exp Experimental y values (vector)
%3. Use MATLAB's optimization function 
   % Define your model as an anonymous function
   model_fun = @(params, t) f(t, params(1), params(2), params(3), params(4), params(5), params(6));
   % Initial guess for parameters
   params0 = [a0, b0, c0, d0, e0, f0]; % Use known values
   % Fit the parameters
   params_fit = lsqcurvefit(model_fun, params0, t_exp, y_exp);
   % params_fit now contains the calibrated coefficients
You can read more about the lsqcurvefit function here: https://www.mathworks.com/help/optim/ug/lsqcurvefit.html
0 commentaires
Voir également
Catégories
				En savoir plus sur Deep Learning Toolbox dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!