Active Learning for Metamodels


I noticed that Active Learning is available as part of RBDO and as part of Reliability Analysis. Is there any way to do Active Learning independent of those? I’d like to refine the metamodels to use them in my custom frameworks. Basically I’m looking for something like:

myModel = refine(myModel, N_samples, ‘LearningFunction’, ‘U’)

Thanks for your help!

Dear Cedric

Thanks for your question. There isn’t any such function in UQLab for now because active learning in general works with specific goals. Meaning, you enrich an experimental design in a certain way to improve the accuracy of a surrogate model in a certain domain for a certain usage. For instance, for reliability analysis, it would be “around the limit state surface g(\textbf{x}) = 0”.

However, as all ingredients are available in UQLab, you can easily write your own active learning algorithm using a loop that goes through the following steps:

  • Fit a surrogate to the current data set (a.k.a. experimental design)
  • Use the surrogate for its purpose (e.g., compute a probability of failure p_f, a minimum, etc.)
  • Check if this process has converged (e.g., p_f or current minimum is stable over last iterations)
  • If notConverged, evaluate your learning function on a set of candidate points, find the best point(s) to add to ED, and go back to step 1.

Good luck!

1 Like