lululxvi / deepxde

A library for scientific machine learning and physics-informed learning
https://deepxde.readthedocs.io
GNU Lesser General Public License v2.1
2.59k stars 732 forks source link

ODE Inverse problem : Wrong inferred value of parameter , though small loss #1022

Open ZSTanone opened 1 year ago

ZSTanone commented 1 year ago

Hi @lululxvi,

Thank you for your wonderful framework and documentation!

And I have used deepxde to make some simple inverse problems in odes which have 6~8 eqs.

But I meet some problems in doing a more complex invers ode model. The majority of my step are followed your SBINN paper. First I did Structural Identifiability of all parameters. image define my parameters image I did little scaling in ode image Set my model image And I also did some scaling in output_transform to ensure the output of NN in the proper magnitude image

In training NN ,I set the loss_weight to make sure each loss items in same magnitude in step 0 image image image

After training about 80k the loss is pretty small ,but the inference was wrong image image The right value should be 0.7 , 0.16, 0.63 , 5.5 respectively

However the PINN can work well when I estimate 1 or 2 parameters

I really hope you can give me suggestion about my problems. Much appreciate!!!!!

lululxvi commented 1 year ago

How about adding more state observations?

elliot-hicks commented 1 year ago

@ZSTanone I was looking at this and noticed this relationship across the targets and outputs. This might happen if your problem is defined up to an arbitrary scale (this hypothesis breaks down on the last variable, but 3/4 to 0.0001 is pretty sus): image

ZSTanone commented 1 year ago

@elliot-hicks Thank you for such a careful observation, I have some doubts about ‘your problem is defined up to an arbitrary scale’ does that mean I need to restrict the parameter search range?or I have to reduce the number of parameters to be identified?