Crunch-UQ4MI/neuraluq

Forward Problems (No data is available)

Closed this issue · 10 comments

Hi @ZongrenZou
Thank you for sharing this magnificent library. I have recently seen your paper. I have a question (sorry if it has been answered in the paper because I took a rapid look at it): Can we use these proposed methods within this library for a forward problem in which the governing equations don't include any unknown parameters, and we do not have any data except ones on the boundary and initial conditions. The aim is to quantify uncertainty related to neural network hyperparameters. is it plausible through this library?
Thank you

Hi @ZongrenZou Thank you for sharing this magnificent library. I have recently seen your paper. I have a question (sorry if it has been answered in the paper because I took a rapid look at it): Can we use these proposed methods within this library for a forward problem in which the governing equations don't include any unknown parameters, and we do not have any data except ones on the boundary and initial conditions. The aim is to quantify uncertainty related to neural network hyperparameters. is it plausible through this library? Thank you

If you are talking about the common forward problems, we do have a few examples doing that using BNN and HMC. However, even though forward problems do not have unknown parameters, they tend to have residual/collocation points, on which PDEs are trained to be satisfied. As for the UQ related to neural network hyperparameters, I'm not sure if I get it. What do you mean by that? The library currently does not support sampling/training against the architectures of neural networks.

I think I asked my question vaguely and sorry for that. I will run your examples on the forward problems and soon will ask my questions (hope not to bother you much).
Thank you for your time and consideration.

Hi @ZongrenZou
I read the paper as well as the code repository, particularly the sections focusing on the forward problems. at the beginning of every sample code, you uploaded a dataset. As I am new to uncertainty quantification concepts, I have some questions in this regard:
If an ODE or PDE is defined as the following (hypothetically):
dU/dt + dU/dx + U - b = 0
(in which b is constant and known and u is unknown).

  1. x_u_train and u_train specify the values of u on BCs and ICS. right?
  2. x_f_train are collocation points. but what is f_train? (are they residuals obtained through PINN? should I solve the problem with PINN and then load the loss values associated with the PDE/ODE?)
  3. x_test are again collocation points. I think u_test are exact values of u. what are f_test? for the example mentioned above, is it exact values of b-U??
  4. my final question is, what if I don't know what is the exact answer to the equation? how can I obtain u_test corresponding to x_test?

Hi @ZongrenZou I read the paper as well as the code repository, particularly the sections focusing on the forward problems. at the beginning of every sample code, you uploaded a dataset. As I am new to uncertainty quantification concepts, I have some questions in this regard: If an ODE or PDE is defined as the following (hypothetically): dU/dt + dU/dx + U - b = 0 (in which b is constant and known and u is unknown).

  1. x_u_train and u_train specify the values of u on BCs and ICS. right?
  2. x_f_train are collocation points. but what is f_train? (are they residuals obtained through PINN? should I solve the problem with PINN and then load the loss values associated with the PDE/ODE?)
  3. x_test are again collocation points. I think u_test are exact values of u. what are f_test? for the example mentioned above, is it exact values of b-U??
  4. my final question is, what if I don't know what is the exact answer to the equation? how can I obtain u_test corresponding to x_test?

Hi,

Here are my answers:

  1. right.
  2. f usually stands for the source term or the RHS of the equation. In your example, f = 0, so f_train is all zero unless you also consider noise in f. If you consider the noise in f, meaning noisy physics, then f_train is zero + noise rather than all zero.
  3. f_test should be all zero for your example, which is the exact value of the source term/RHS.
  4. You can't really obtain the exact value of u at x_test, a.k.a. u_test. Instead, you use training data to obtain the estimate over the values and uncertainty of u_test. After the training/sampling is done, you feed x_test to the learned neural network, whose outputs are the estimate over u_test. For example, if you choose to use Bayesian neural networks and HMC, then you will obtain samples of weights and biases after the sampling procedure, which represent samples of neural networks. You feed x_test to the sampled neural networks and obtain samples of outputs, which can be used to estimate values of u_test as well as its uncertainty.

@ZongrenZou Thank you so much for your comprehensive answer.

@ZongrenZou Thank you so much for your comprehensive answer.

You are very welcome. If you want, we could set up an example together. Just let me know if you are interested.

Sure, It would be my honor. Can I email you to share the equation and work on it later on?

Sure, It would be my honor. Can I email you to share the equation and work on it later on?

Of course. Please send it to zongren_zou@brown.edu

Sure, It would be my honor. Can I email you to share the equation and work on it later on?

Of course. Please send it to zongren_zou@brown.edu

Thank you.

Dear @ZongrenZou
First of all, merry Christmas. I hope this message finds you well. I have sent you an email regarding an example to work on it. I am sorry for my belated email, I was looking for an appropriate example. I have one more question. Can we use the NeuralUQ library to solve forward coupled PDE problems with uncertainties in their boundary or initial conditions (the BCs or ICs have some stochastic terms)? (it is worth mentioning that there is no exact analytical solution as a reference