안녕하세요. 오태호입니다.
이 글에서는 Optimization 기법중에 하나인 LBFGS Method(Limited Memory Broyden–Fletcher–Goldfarb–Shanno Method)의 수식을 다음과 같이 4개의 Part에 걸쳐서 차근차근 유도하여 LBFGS Method의 구조를 조금 깊게 살펴보도록 하겠습니다.
•
Derivation of LBFGS Part 3 - BFGS Method
BFGS Method
Quasi Newton Method중에 하나인 SR1 Method는 을 안정적으로 구할 수 없는 문제가 있습니다. 을 안정적으로 구하기 위해 SR1 Method를 조금 개량한 BFGS Method(Broyden Fletcher Goldfarb Shanno Method)를 알아보겠습니다.
SR1 Method에서는 Rank 1 Matrix ()를 사용해서 을 구했는데 BFGS Method에서는 다음과 같이 Rank 2 Matrix ()를 사용해서 을 구합니다.
, 로 설정하고 가 구체적으로 어떤 값을 가지는지 Secant Equation을 이용해서 계산해 보겠습니다.
정리하면 다음과 같습니다.
이제 여기서 구한 을 이용해서 를 구해야 합니다. 을 이용해서 를 구하기 위해 Sherman Morrison Woodbury Formula을 이용합니다.
Sherman Morrison Woodbury Formula는 다음과 같습니다.
은 다음과 같이 구합니다.
정리하면 다음과 같습니다.
SR1 Method에 있던 문제가 어떻게 개선되었는지 살펴보겠습니다.
BFGS Method에서 가 Positive Definite Matrix라는 것은 다음과 같이 확인합니다.
우선 을 적당한 Positive Definite Matrix로(예를 들어 I로) 설정합니다.
만약에 가Positive Definite Matrix라면 이 Positive Definite Matrix가 되는지 다음과 같이 확인합니다.
가 Positive Definite Matrix이므로 모든 w에 대해 다음이 성립합니다.
만약에 이 성립한다면 이 성립하면서 은 Positive Definite Matrix가 됩니다.
BFGS Method에서는, Wolfe Conditions의 Curvature Condition을 따라 Step Size 를 결정하고, Initial Inverse Hessian 이 Positive Definite Matrix이면, Inverse Hessian 는 모든 에 대해 Positive Definite Matrix가 됩니다. 자연스럽게 Hessian 도 모든 에 대해 Positive Definite Matrix가 됩니다.
SR1 Method에서는, 의 계산과정에서 이 되면, 분모가 0이 될 수가 있어서, 과 을 안정적으로 구할 수 없었습니다.
BFGS Method에서는, Wolfe Conditions의 Curvature Condition을 따라 Step Size 를 결정하면, 가 보장되어, 계산과정에서 분모가 0이 되지 않아서 안정적으로 과 을 구할 수 있습니다.
하지만 BFGS Method에는 큰 단점이 하나 있습니다. Iteration마다 를 저장해야 하는데 이것은 x이 n차원 Vector인 경우에 가 의 Matrix가 되기 때문에 n이 매우 큰 경우에 를 저장하기가 쉽지 않습니다.
Conclusion
이 글에서는 LBFGS Method를 살펴보기 위한 과정으로 BFGS Method에 대해 살펴보았습니다.
BFGS Method에는 x이 고차원인 Vector인 경우에 를 저장하기가 쉽지 않은 문제가 있습니다.
작성자
관련된 글 더 보기