Multivariate minimization

Fabrice Rossi rossi@ufrmd.dauphine.fr
Tue Aug 26 12:09:00 GMT 2003


Hi Przem

The vector BFGS is indeed one of the best methods for high dimensions. 
The current implementation is basic but should work. I've used it for 
neural network learning with more than 2000 parameters.

Concerning the Hessian matrix, the problem with the vector BFGS is that 
(as implied by the name) it does not manipulate a matrix (in the BFGS, 
the matrix is an approximation of the inverse of the Hessian). The way 
this is done is simply to replace the matrix of the full BFGS by the 
identity matrix, which is not what you are looking for, I guess ;-) Byt 
the way, the name vector BFGS is my invention. The canonical name is 
limited memory BFGS.

Implementing a full BFGS is not that difficult, especially if you start 
with the vector BFGS code. BUT the running cost will become tremendous 
as vector operations will be replaced by matrix operations. Moreover, 
you will end up with an approximation of the inverse of the hessian.

Did you try a very simple numerical approximation of the Hessian by 
finite difference? This is easy to program and with smooth functions, it 
works rather well (mainly because you know the exact value of the gradient).

Good luck.

Fabrice

Przemyslaw Sliwa wrote:
> Dear friends,
> 
> I have some questions regarding the multivariate minimisation routines.
> I have t0 minimise a highly non-linear function depending on several
> variables (about 5000). I want to use the vector BFGS method because I
> have heard it is the best method for high dimensions. Is it correct???
> 
> Secondly I have some design problems. The direction matrix in the BFGS
> method is an approximation of the Hessian matrix (matrix of second
> derivatives). At the optimum this approximation equals to the true
> Hessian. I am using the routine to maximise the loglikelihood function and
> I have to approximate the Hessisn, which is a task of estimating 12502500
> distinct elements of the Hessian. Therefore I would like to ask if it is
> not possible to return somehow the approximation of the Hessian at the end
> of the optimisation procedure?? This would save a lot of time and energy.
> 
> The NAG procedures have an option which allows the user to return the
> approximation of the Hessian.
> 
> My problem is that the estimation at the end of the optimisation is
> sometimes not positive (negative when minimising) definite due to the
> numerical accuracy. The BFGS method uses an approximation which is always
> positive definite.
> 
> Thanks four your help,
> 
> Przem
> 
> 
> 



More information about the Gsl-discuss mailing list