Failure in initial objective function evaluation. FMINCON cannot continue.

6 views (last 30 days)
Ankush Kumar Mishra
Ankush Kumar Mishra on 11 Feb 2022
Commented: Matt J on 11 Feb 2022
Attaching my code, I am just not able to understand why this is not working. Gives the error, Failure in initial objective function evaluation. FMINCON cannot continue.
function new_hyp = max_likelihood(model)
problem.f = @(x) log_likelihood([x(1:model.nv), model.hyp(end)]',model); % calling the log likelihodd function, we maximize log likelihood the find the
% problem.f = @(x) log_likelihood( model.hyp(end)',model);
A = [];
b = [];
Aeq = [];
beq = [];
% model.hyper_bound = log([0.01, 50]); % bounds of hyperparamter
model.hyper_bound = log([0.35,2.73]); % bounds of hyperparamter
lb= model.hyper_bound(1)*ones(1,model.nv);
ub= model.hyper_bound(2)*ones(1,model.nv);
% lb = [-4.60517018598809,-4.60517018598809];
% ub = [3.91202300542815,3.91202300542815];
x0 = zeros(1,model.nv);%[0,0]; %Starting point
options = optimset('Display', 'off') ;
nonlcon=[];
new_hyp = fmincon(problem.f,x0,A,b,Aeq,beq,lb,ub,nonlcon, options)'; % compuatation of hyperparameter that maximizes the log likelihood
% new_hyp = fminsearch(problem.f,x0)';
end
function [lml] = log_likelihood(hyper_param, model)
K = model.cov_model(hyper_param, model.X(1:model.n,:), model.X(1:model.n,:)) + eye(model.n)*model.noise; % Covariance matrix using squared exponential kernel for the input points
Kchol = chol(K);
ALPHA = (Kchol\(Kchol'\model.f));
lml = model.f'*ALPHA + 2*sum(log(diag(Kchol))); % computation of log likelihood ,
end
  1 Comment
Matt J
Matt J on 11 Feb 2022
Before running fmincon, did you test your objective function at x0 to see if it works? (You should always do so).

Sign in to comment.

Answers (0)

Tags

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by