UQWorld

Active Learning V1.4

Hi All,

Thanks for the uqlab software. I was just trying out the features of V1.4 ( Active Learning) with a 3dim function. I encountered some error. Appreciate any assistance on what could be wrong. Also noticed that it takes much longer time to run.

Error:
Y must be a matrix with 1 columns.

**AL.m (1.1 KB) **
uqlab
MOpts.mString = ‘1-((0.00064.X(:,1))./(X(:,2)))-((0.000016.(X(:,3).^2))./(X(:,2).^2))’;
MOpts.isVectorized = 1;
myModel = uq_createModel(MOpts);
iOpts.Marginals(1).Type = ‘Gaussian’;
iOpts.Marginals(1).Moments = [2000 400];
iOpts.Marginals(2).Type = ‘Lognormal’;
iOpts.Marginals(2).Moments = [5 0.5];
iOpts.Marginals(3).Type = ‘Gaussian’;
iOpts.Marginals(3).Moments = [500 100];
myInput=uq_createInput(iOpts);
ALROpts.Type = ‘Reliability’;
ALROpts.Method = ‘ALR’;
%X=uq_getSample(50,‘LHS’);
%G=uq_evalModel(X);
%ALROpts.ALR.IExpDesign.X = X;
%ALROpts.ALR.IExpDesign.G = G;
ALROpts.ALR.IExpDesign.N = 50;
ALROpts.ALR.IExpDesign.Sampling = ‘LHS’;
ALROpts.ALR.MaxAddedED = 300;
ALROpts.ALR.Reliability=‘MCS’;
ALROpts.ALR.Metamodel=‘PCK’;
PCKOpts.EstimMethod=‘ML’;
PCKOpts.Mode=‘Optimal’;
PCKOpts.PCE.Degree=1:20;
PCKOpts.Kriging.Optim.Method=‘HGA’;
ALROpts.ALR.PCK = PCKOpts ;
ALROpts.ALR.LearningFunction=‘CMM’;
ALROpts.ALR.Convergence=‘StopPfStab’;
myALRAnalysis = uq_createAnalysis(ALROpts);
uq_print(myALRAnalysis)
uq_display(myALRAnalysis)

Hi @aokoro ,

Thank you very much for your feedback. I have just had a look and it turns out this combination was not implemented even though the report says otherwise, sorry my bad.

When using PCK and Kriging, I would recommend still using U or EFF learning functions. If you want to use CMM, it is technically possible. You would need to make two small updates though:

  • In uq_activelearning.m, line 462 replace [xadded, idx, lf] = uq_addEDPoints(LFfunction, K, XC, gmean, MOStrategy, gs) ; with [xadded, idx, lf] = uq_addEDPoints(LFfunction, K, XC, gmean, MOStrategy, gs,X) ;
  • In uq_addEDPoints.m, line 15, replace XED = varargin{1} ;
    with XED = varargin{end} ;.

With these two updates, you will be able to run your code. I also made the update from our side, but it should be available only at the next release.

Regarding the computational time, this may be explained with the fact that we have decided to over-calibrate the reliability estimation algorithm. We have run an extensive benchmark which has shown that this is a much more robust setting. The problem you have sent is converging pretty fast though I think (you may still want to check the stopping criterion you are using to avoid premature convergence and may be also reduce the size of the initial ED). However, if you wish you can modify the reliability estimation settings to use a smaller sample size. Please have a look here to see how you could change these parameters.

Hope this helps.
Best,
Moustapha

Thank you so much for the reply. Just a follow-up question, could you point me in the direction on how to update the lines- just steps of how to get that part of uqlab to effect these changes.

Thank you sir

@aokoro,

The two files are both located in ...\YOUR_UQLAB_FOLDER\modules\uq_analysis\builtin\uq_reliability\methods\.

You can also just simply type edit uq_activelearning.m in the matlab command windon to open the first file and then scroll down to line 462 to make the modification and save. Then repeat with the other file.

Best,
Moustapha

Thank you so much sir.