브로이든-플레처-골드파브-샨노 알고리즘

Broyden–

수치적 최적화에서 브로이든-Fletcher-Goldfarb-Shanno(BFGS) 알고리즘은 구속되지 않은 비선형 최적화 문제를 해결하기 위한 반복적인 방법이다.[1]관련 다비던처럼-Fletcher-Powell 방법, BFGS는 곡률 정보로 구배전제하여 하강 방향을 결정한다.일반화된 제분법을 통해 구배 평가(또는 근사 구배 평가)에서만 얻은 손실 함수헤시안 매트릭스에 대한 근사치를 점진적으로 개선함으로써 그렇게 한다.[2]

BFGS 곡률 매트릭스의 업데이트는 매트릭스 역전이 필요하지 않으므로 연산 복잡성뉴턴의 방법에서 O ) }) {\ {O에 비해 On^2)에 또한 L-BFGS는 매우 많은 변수(예: >1000)의 문제에 특히 적합한 BFGS의 제한된 메모리 버전이다.BFGS-B 모델은 단순한 박스 구속조건을 처리한다.[3]

이 알고리즘은 찰스 조지 브로이든, 로저 플레처, 도널드 골드파브, 데이비드 섀노의 이름을 따서 지어졌다.[4][5][6][7]

이론적 근거

최적화 문제는 ( ) f을(를) 최소화하는 것이다 서 x 은(는) n 의 벡터이고, 스칼라 . 이(가) 취할 수 있는 값에는 제한이 없다.

알고리즘은 최적값 0 에 대한 초기 추정치에서 시작하여 각 단계에서 더 나은 추정치를 얻기 위해 반복적으로 진행한다.

k단계에서 검색 방향 pk 뉴턴 방정식의 아날로그 해법에 의해 주어진다.

는 반복적으로 각 단계마다 업데이트됩니다는 헤시 안 행렬, 어디에 Bk{\displaystyle B_{km그리고 4.9초 만}}은 근사치고 함수 xk에서 평가되의 ∇ f()k){\displaystyle \nabla f(\mathbf{x}_{k})}은 기울기.방향 pk고 있는 선로 검색한 다음 그 다음 요지를 찾기 xk+1 f을 최소화하면서(인데에 의해 사용된다+ p ) 스칼라 0 을(를) 위에 놓는다

업데이트에 부과된 준뉴턴 조건은

Let and , then satisfies = 이것이 제2차 방정식이다.만약 전국 곡률 상태여서 km그리고 4.9초 만 ⊤ y k>0{\displaystyle \mathbf{s}_{k}^{\top}\mathbf{y}_{k}>. 0}일 경우 Bk+1{\displaystyle B_{k+1}에}은}skm그리고 4.9초 만 T{\displaystyle \mathbf{s}_{k}^{T}을 정할 방정식 pre-multiplying으로 확인해야 할 수 있는 긍정적인 확실한,. 만족해야 한다.func강하게 볼록하지 않은 상태에서 조건을 명시적으로 적용해야 한다.

+ 지점의 전체 헤시안 행렬을 + 1 로 계산하도록 요구하는 대신, 단계 k에서의 대략적인 헤시안 행렬은 다음 두 개의 행렬을 추가하여 업데이트된다

모두 대칭적인 순위 1 행렬이지만, 그 합계는 순위 2 업데이트 행렬이다.BFGS와 DFP 업데이트 매트릭스는 모두 2위 매트릭스에 의해 이전 매트릭스와 다르다.또 다른 간단한 순위 1 방법은 대칭 순위 1 방법으로 알려져 있는데, 이것은 양의 확정성을 보장하지 않는다.In order to maintain the symmetry and positive definiteness of , the update form can be chosen as . Imposing the secant condition, . Choosing and , we can obtain:[8]

Finally, we substitute and into and get the update equation of :

알고리즘.

초기 추측 대략적인 헤시안 B 0{\B_}}에서 k 이(가) 솔루션으로 수렴되면서 다음 단계가 반복된다.

  1. = - f ( x k {\B_k} _{k} _{ f를 풀어서 방향 {을 얻으십시오
  2. 1차원 최적화(라인 검색)를 수행하여 첫 번째 단계에서 찾은 방향으로 허용 가능한 단계화 α k {\displaystyle \alpha _{k}.If an exact line search is performed, then . In practice, an inexact line search usually suffices, with an acceptable satisfying Wolfe conditions.
  3. k= p 을(를) 설정하고 + 1= +
  4. = f( + 1) - ( x ) mathbf {
  5. B_

( ) 은(는) 최소화할 목표 함수를 의미한다.수렴은 gradient의 f( x f을(를) 관찰하여 확인할 수 있다 = 로 초기화된 경우 첫번째 단계는 gradient down과 동일하지만 더 많은 단계들이다. 에 의해 더 정제된 것으로,헤시안 근사값이다.

알고리즘의 첫 번째 단계는 B {k의 역순을 이용하여 수행되는데 이 매트릭스 B k {\displaystyle B_}}를 알고리즘의 5단계에 적용하면 효율적으로 얻을 수 있어 다음과 같은 장점이 있다.

This can be computed efficiently without temporary matrices, recognizing that is symmetric, and that and 은(는) 다음과 같은 확장을 사용하는 스칼라이다.

통계적 추정 문제(최대우도 또는 베이지안 추론 등)에서는 최종 헤시안 행렬의[citation needed] 역행으로부터 해법에 대한 신뢰 구간이나 신뢰 구간을 추정할 수 있다.그러나 이러한 수량은 기술적으로 참 헤시안 행렬에 의해 정의되며, BFGS 근사치는 참 헤시안 행렬에 수렴되지 않을 수 있다.[9]

주목할 만한 구현

  • 대규모 비선형 최적화 소프트웨어 Artelys Nitro는 무엇보다도 BFGS와 L-BFGS 알고리즘을 구현한다.
  • GSL은 BFGS를 gsl_multimina_fdfminimizer_vector_bfgs2로 구현한다.[10]
  • MATLAB Optimization Toolbox에서 fminunc 함수는[11] 문제 크기를 "중규모"로 설정할 때 입방선 검색과 함께 BFGS를 사용한다.[12]
  • R에서 BFGS 알고리즘(및 박스 구속조건을 허용하는 L-BFGS-B 버전)은 기본 함수 최적화의 옵션으로 구현된다().[13]
  • SciPy에서 scipy.optimize.fmin_bfgs 함수는 BFGS를 구현한다.[14]또한 파라미터 L을 매우 큰 숫자로 설정하여 L-BFGS 알고리즘 중 어떤 것을 사용하여 BFGS를 실행할 수도 있다.

참고 항목

참조

  1. ^ Fletcher, Roger (1987), Practical Methods of Optimization (2nd ed.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8
  2. ^ Dennis, J. E., Jr.; Schnabel, Robert B. (1983), "Secant Methods for Unconstrained Minimization", Numerical Methods for Unconstrained Optimization and Nonlinear Equations, Englewood Cliffs, NJ: Prentice-Hall, pp. 194–215, ISBN 0-13-627216-9
  3. ^ Byrd, Richard H.; Lu, Peihuang; Nocedal, Jorge; Zhu, Ciyou (1995), "A Limited Memory Algorithm for Bound Constrained Optimization", SIAM Journal on Scientific Computing, 16 (5): 1190–1208, CiteSeerX 10.1.1.645.5814, doi:10.1137/0916069
  4. ^ Broyden, C. G. (1970), "The convergence of a class of double-rank minimization algorithms", Journal of the Institute of Mathematics and Its Applications, 6: 76–90, doi:10.1093/imamat/6.1.76
  5. ^ Fletcher, R. (1970), "A New Approach to Variable Metric Algorithms", Computer Journal, 13 (3): 317–322, doi:10.1093/comjnl/13.3.317
  6. ^ Goldfarb, D. (1970), "A Family of Variable Metric Updates Derived by Variational Means", Mathematics of Computation, 24 (109): 23–26, doi:10.1090/S0025-5718-1970-0258249-6
  7. ^ Shanno, David F. (July 1970), "Conditioning of quasi-Newton methods for function minimization", Mathematics of Computation, 24 (111): 647–656, doi:10.1090/S0025-5718-1970-0274029-X, MR 0274029
  8. ^ Fletcher, Roger (1987), Practical methods of optimization (2nd ed.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8
  9. ^ Ge, Ren-pu; Powell, M. J. D. (1983). "The Convergence of Variable Metric Matrices in Unconstrained Optimization". Mathematical Programming. 27 (2). 123. doi:10.1007/BF02591941. S2CID 8113073.
  10. ^ "GNU Scientific Library — GSL 2.6 documentation". www.gnu.org. Retrieved 2020-11-22.
  11. ^ "Find minimum of unconstrained multivariable function - MATLAB fminunc". www.mathworks.com. Retrieved 2020-11-22.
  12. ^ "Unconstrained Nonlinear Optimization :: Optimization Algorithms and Examples (Optimization Toolbox™)". 2010-10-28. Archived from the original on 2010-10-28. Retrieved 2020-11-22.
  13. ^ "R: General-purpose Optimization". stat.ethz.ch. Retrieved 2020-11-22.
  14. ^ "scipy.optimize.fmin_bfgs — SciPy v1.5.4 Reference Guide". docs.scipy.org. Retrieved 2020-11-22.

추가 읽기