Básicamente piense en L-BFGS como una forma de encontrar un mínimo (local) de una función objetivo, haciendo uso de los valores de la función objetivo y el gradiente de la función objetivo. Sin embargo, ese nivel de descripción cubre muchos métodos de optimización además de L-BFGS. Puede leer más al respecto en la sección 7.2 de Nocedal y Wright "Optimización numérica, segunda edición" http://www.springer.com/us/book/9780387303031 . Se proporciona una discusión muy superficial de L-BFGS en https://en.wikipedia.org/wiki/Limited-memory_BFGS .
El método de primer orden significa que se utilizan gradientes (primeras derivadas) (y quizás valores de función objetivo), pero no Hessian (segundas derivadas). Piense, por ejemplo, en el descenso gradual y el descenso más pronunciado, entre muchos otros.
El método de segundo orden significa que se utilizan gradientes y arpillera (y tal vez valores de función objetivo). Los métodos de segundo orden pueden basarse en
Matriz de arpillera "exacta" (o diferencias finitas de gradientes), en cuyo caso se conocen como métodos de Newton o
Métodos cuasi-Newton, que se aproximan al hessiano en función de las diferencias de gradientes en varias iteraciones, imponiendo una condición "secante" (cuasi-Newton). Hay muchos métodos diferentes de Cuasi-Newton, que estiman el hessiano de diferentes maneras. Uno de los más populares es BFGS. La aproximación de Hesse BFGS puede basarse en el historial completo de gradientes, en cuyo caso se conoce como BFGS, o puede basarse solo en los gradientes m más recientes, en cuyo caso se conoce como BFGS de memoria limitada, abreviado como L-BFGS. La ventaja de L-BFGS es que solo requiere retener los gradientes m más recientes, donde m generalmente es de alrededor de 10 a 20, que es un requisito de almacenamiento mucho menor que n * (n + 1) / 2 elementos necesarios para almacenar el total (triángulo) de una estimación de Hesse, como se requiere con BFGS, donde n es la dimensión del problema. A diferencia de BFGS (completo), la estimación de Hessian nunca se forma explícitamente ni se almacena en L-BFGS (aunque algunas implementaciones de BFGS solo forman y actualizan el factor Choelsky de la aproximación de Hessian, en lugar de la propia aproximación de Hessian); más bien, los cálculos que se requerirían con la estimación del hessiano se realizan sin formarlo explícitamente. L-BFGS se usa en lugar de BFGS para problemas muy grandes (cuando n es muy grande), pero podría no funcionar tan bien como BFGS. Por lo tanto, se prefiere BFGS sobre L-BFGS cuando se pueden cumplir los requisitos de memoria de BFGS. Por otro lado, L-BFGS puede no ser mucho peor en rendimiento que BFGS. la estimación de Hessian nunca se forma o almacena explícitamente en L-BFGS (aunque algunas implementaciones de BFGS solo forman y actualizan el factor Choelsky de la aproximación de Hessian, en lugar de la aproximación de Hessian en sí); más bien, los cálculos que se requerirían con la estimación del hessiano se realizan sin formarlo explícitamente. L-BFGS se usa en lugar de BFGS para problemas muy grandes (cuando n es muy grande), pero podría no funcionar tan bien como BFGS. Por lo tanto, se prefiere BFGS sobre L-BFGS cuando se pueden cumplir los requisitos de memoria de BFGS. Por otro lado, L-BFGS puede no ser mucho peor en rendimiento que BFGS. la estimación de Hessian nunca se forma o almacena explícitamente en L-BFGS (aunque algunas implementaciones de BFGS solo forman y actualizan el factor Choelsky de la aproximación de Hessian, en lugar de la propia aproximación de Hessian); más bien, los cálculos que se requerirían con la estimación del hessiano se realizan sin formarlo explícitamente. L-BFGS se usa en lugar de BFGS para problemas muy grandes (cuando n es muy grande), pero podría no funcionar tan bien como BFGS. Por lo tanto, se prefiere BFGS sobre L-BFGS cuando se pueden cumplir los requisitos de memoria de BFGS. Por otro lado, L-BFGS puede no ser mucho peor en rendimiento que BFGS. los cálculos que se requerirían con la estimación del hessiano se realizan sin formarlo explícitamente. L-BFGS se usa en lugar de BFGS para problemas muy grandes (cuando n es muy grande), pero podría no funcionar tan bien como BFGS. Por lo tanto, se prefiere BFGS sobre L-BFGS cuando se pueden cumplir los requisitos de memoria de BFGS. Por otro lado, L-BFGS puede no ser mucho peor en rendimiento que BFGS. los cálculos que se requerirían con la estimación del hessiano se realizan sin formarlo explícitamente. L-BFGS se usa en lugar de BFGS para problemas muy grandes (cuando n es muy grande), pero podría no funcionar tan bien como BFGS. Por lo tanto, se prefiere BFGS sobre L-BFGS cuando se pueden cumplir los requisitos de memoria de BFGS. Por otro lado, L-BFGS puede no ser mucho peor en rendimiento que BFGS.
Incluso en este nivel de descripción, hay muchas variantes. Por ejemplo, los métodos pueden estar totalmente desprotegidos, en cuyo caso todo vale, y pueden no converger a nada, incluso en problemas convexos. O pueden ser salvaguardados. Los métodos protegidos generalmente se basan en regiones de confianza o búsqueda de línea, y están destinados a garantizar la convergencia a algo. Muy importante, el simple hecho de saber que un método es L-BFGS no le indica por sí mismo qué tipo de protección, si la hay, se utiliza. Es como decir que un automóvil es un sedán de 4 puertas, pero, por supuesto, no todos los sedanes de 4 puertas son iguales en rendimiento o confiabilidad. Es solo un atributo de un algoritmo de optimización.