준뉴턴법
Quasi-Newton method준뉴턴 방법은 뉴턴의 방법의 대안으로 함수의 영점이나 국소 맥시마와 미니마를 찾는 데 사용되는 방법이다.Jacobian 또는 Hessian이 사용할 수 없거나 너무 비싸서 반복할 때마다 계산하지 못할 경우 이 매개변수를 사용할 수 있다."완전한" 뉴턴의 방법은 0을 찾기 위해 자코비안이나, 극단성을 찾기 위해 헤시안을 필요로 한다.
0 검색: 루트 찾기
Newton's method to find zeroes of a function of multiple variables is given by , where is the left inverse of t 의 Jacobian 행렬 J ( x n ) {\displaystyle J_에 대해 평가된 g {\
엄밀히 말하면, 정확한 Jacobian ( x ) 을 근사치로 대체하는 모든 방법은 준뉴턴 방법이다.[1]예를 들어 코드 방법(J ( n) 이 모든 반복에 g( ) 로 대체되는 경우)은 간단한 예다.최적화를 위해 아래에 제시된 방법은 준뉴턴 방법의 중요한 하위 분류인 세컨트 방법을 참조한다.[2]
0을 찾기 위해 개발된 방법을 사용하는 것이 항상 좋은 생각은 아니다. 극단성을 찾는데 사용되는 방법의 대다수는 사용되는 행렬이 대칭이어야 하기 때문이다.이것은 극단성을 찾는 맥락에서 유지되지만, 0을 찾을 때는 거의 유지되지 않는다.브로이든의 '좋은' 방법과 '나쁜' 방법은 0을 찾는 데도 적용할 수 있는 극단성을 찾는 데 흔히 쓰이는 두 가지 방법이다.그 밖에 사용할 수 있는 방법으로는 칼럼업데이트법, 역기둥업데이트법, 준뉴턴최소제곱법, 준뉴턴최소제곱법 등이 있다.
더 최근에 준 뉴턴 방법은 복수 결합 방정식 시스템(예: 유체-구조 상호작용 문제 또는 물리학의 상호작용 문제)의 해결책을 찾기 위해 적용되었다.그들은 (글로벌 시스템보다 더 간단한) 각 구성 시스템을 각각 분리하여 (글로벌 시스템보다) 순환적이고 반복적인 방식으로 해결함으로써 글로벌 시스템의 해결책이 발견될 때까지 해결책을 찾을 수 있도록 한다.[2][3]
극단값 검색: 최적화
스칼라 값 함수의 최소값 또는 최대값 검색은 해당 함수의 그라데이션 0에 대한 검색에 불과하다.따라서 준뉴턴 방법은 함수의 극단성을 찾기 위해 쉽게 적용할 수 있다.즉, 이(가) 의 그라데이션인 경우 벡터 값 g{\}의 0 검색은 스칼라 값 f{\ f의 검색에 해당하며 가 된다 f의 a가장 큰 차이점은 헤시안 행렬이 0을 검색할 때 자코비안 행렬과 달리 대칭 행렬이라는 점이다.최적화에 사용되는 대부분의 준뉴턴 방법은 이 속성을 이용한다.
최적화에서 준뉴턴 방법(변수금속 방법의 특수한 경우)은 함수의 국소 최대값과 최소값을 찾기 위한 알고리즘이다.준뉴턴 방법은 뉴턴이 함수의 정지점을 찾는 방법에 근거한 것으로, 경사가 0이다.뉴턴의 방법은 함수가 최적점을 중심으로 부위에서 2차적인 것으로 국소적으로 근사할 수 있다고 가정하고, 제1차 및 제2차 파생상품을 사용하여 정지점을 찾는다.더 높은 치수에서 뉴턴의 방법은 최소화할 기능의 두 번째 파생상품의 구배와 헤시안 매트릭스를 사용한다.
준 뉴턴 방법에서는 헤시안 매트릭스를 계산할 필요가 없다.헤시안은 대신 연속적인 그라데이션 벡터를 분석하여 업데이트된다.준뉴턴법은 다차원적 문제에 대한 첫 번째 파생상품의 뿌리를 찾기 위해 제2차적 방법을 일반화한 것이다.다차원에서는 세컨트 방정식이 충분히 결정되지 않으며, 준 뉴턴 방법은 일반적으로 헤시안의 현재 추정치에 간단한 하위 순위 업데이트를 추가함으로써 해결책을 제약하는 방법에 따라 다르다.
최초의 준 뉴턴 알고리즘은 윌리엄 C에 의해 제안되었다. Argonne National Laboratory에서 일하는 물리학자 Davidon.그는 1959년 최초의 준뉴턴 알고리즘인 DFP 업데이트 공식을 개발했는데, 이후 1963년 플레처와 파웰에 의해 대중화되었지만 오늘날에는 거의 사용되지 않는다.가장 일반적인 준뉴턴 알고리즘은 현재 SR1 공식('대칭 순위 1'을 위한)과 BHHHH 방법, 널리 보급된 BFGS 방법(Broyden, Fletcher, Goldfarb, Shanno, 1970년 독립적으로 제안), 저메모리 확장 L-BFGS이다.브로이든의 클래스는 DFP와 BFGS 방법의 선형 결합이다.
SR1 공식은 양의 정의를 유지하기 위해 업데이트 매트릭스를 보장하지 않으며 무기한 문제에 사용할 수 있다.브로이든의 방법은 업데이트 매트릭스가 대칭적일 것을 요구하지 않으며 (경사가 아닌) 야코비안(헤시안보다)을 업데이트함으로써 (경사가 아닌) 방정식의 일반 시스템의 뿌리를 찾는 데 사용된다.
뉴턴의 방법에 비해 준뉴턴의 방법의 주요 장점 중 하나는 헤시안 매트릭스(또는 준뉴턴 방법의 경우 그 근사치) B을(를) 반전시킬 필요가 없다는 점이다.뉴턴의 방법, 그리고 내부 포인트 방법과 같은 그 파생상품은 헤시언을 뒤집도록 요구하는데, 이는 일반적으로 선형 방정식의 시스템을 풀어서 실행되며 종종 상당한 비용이 든다.이와는 대조적으로 준뉴턴 방법은 대개 - 1의 추정치를 직접 생성한다.
뉴턴의 방법에서와 , f( x의 최소값을 찾기 위해 2차 근사치를 사용한다반복을 중심으로 한 Taylor 시리즈 ( ) f는
여기서 ( )는 그라데이션이고, 은 헤시안 행렬에 대한 근사치.[4]이 근사치의 구배( 에 대한는 다음과 같다.
그리고 이 구배를 0(최적화의 목표)으로 설정하면 뉴턴 단계가 제공된다.
Hesisian 근사 을(를) 만족하도록 선택됨
이를 제2차 방정식(경사 자체의 테일러 시리즈)이라고 한다.둘 이상의 차원 이(가) 충분히 결정되지 않음.한 차원에서는 에 대한 해결과 업데이트된 값으로 뉴턴의 단계를 적용하는 것이 제2차원의 방법과 동일하다.다양한 준 뉴턴 방법은 제2차 방정식에 대한 해법 선택에 따라 다르다(한 차원에서는 모든 변형이 동일하다).대부분의 방법(예: Broyden의 방법)은 대칭적 솔루션( = B ); furthermore, the variants listed below can be motivated by finding an update that is as close as possible to in some norm; that is, ,여기서 은 (는) 규범을 정의하는 확실한 일부 행렬이다.대략적인 초기 값 0= I 은(는) 을(를) 선택하는 일반적인 전략은 없지만 빠른 수렴을 달성하기에 충분한 경우가 많다[5] B 은 양정확해야 한다는 점에 유의하십시오.알 수 없는 은(는) 현재 근사 헤시안 매트릭스 k 를 사용하여 계산된 뉴턴의 단계를 적용하여 업데이트된다
- = - B - f( x ) 1}-1}:{-1 가Wolfe 조건을 충족하기 위해 선택됨
- + = k+ ;
- 새 지점 ( + ) 에서 계산된 그라데이션
Sherman-Morrison 공식을 사용하여 Hesian + 1 또는 B += + 1 - 1}:{-를 직접 업데이트하는 데 사용된다.
- BFGS 및 DFP 업데이트의 주요 속성은 가 양의 정의로 되어 있고, 가 Wolfe 조건을 만족시키기 위해 선택되어 있다면 + }도양의 정의로 되어 있다는 것이다.
가장 많이 사용되는 업데이트 수식은 다음과 같다.
다른 방법으로는 피어슨의 방법, 맥코믹의 방법, 파월 대칭 브로이든(PSB) 방법, 그린슈타트의 방법 등이 있다.[2]
행렬 반전과의 관계
이(가) 양-확정 B 을(를) 가진 볼록한 2차 함수인 경우 준뉴턴 방법으로 생성된 H H= - 에수렴할 것으로 예상할 수 있다최소한의 변경 업데이트에 기초한 준 뉴턴 방법의 종류는 실제로 그러하다.[6]
주목할 만한 구현
준 뉴턴 방법의 구현은 많은 프로그래밍 언어로 이용할 수 있다.주목할 만한 구현에는 다음이 포함된다.
- GNU 옥타브는 BFGS의 형태를 사용한다.
fsolve
트러스트 영역 확장이 있는 기능. - GNU 과학 도서관은 BFGS(Broyden-Fletcher-Goldfarb-Shanno) 알고리즘을 구현한다.
- 마티카에는 준뉴턴 해결사가 포함되어 있다.[7]
- NAG 라이브러리에는 준뉴턴 알고리즘을 사용하는 함수를[9] 최소화하거나 최대화하기 위한 몇 가지 루틴이[8] 포함되어 있다.
- MATLAB의 Optimization Toolbox에서는
fminunc
함수는 (다른 방법 중) BFGS 준 뉴턴 방법을 사용한다.[10]Optimization(최적화) 도구 상자의 제약된 방법 중 다수는 BFGS와 변종 L-BFGS를 사용한다.[11]< - R's
optim
범용 최적화 도구 루틴은 BFGS 방법을 사용하여method="BFGS"
.[12] - Scipy.optimize에는 fmin_bfgs가 있다.Python에 대한 SciPy 확장에서는
scipy.optimize.minimize
기능에는 BFGS 구현이 포함된다.[13]
참고 항목
참조
- ^ Broyden, C. G. (1972). "Quasi-Newton Methods". In Murray, W. (ed.). Numerical Methods for Unconstrained Optimization. London: Academic Press. pp. 87–106. ISBN 0-12-512250-0.
- ^ a b c Haelterman, Rob (2009). "Analytical study of the Least Squares Quasi-Newton method for interaction problems". PhD Thesis, Ghent University. Retrieved 2014-08-14.
- ^ Rob Haelterman, Dirk Van Eester, Daan Verleyen (2015). "Accelerating the solution of a physics model inside a tokamak using the (Inverse) Column Updating Method". Journal of Computational and Applied Mathematics. 279: 133–144. doi:10.1016/j.cam.2014.11.005.
{{cite journal}}
: CS1 maint: 작성자 매개변수 사용(링크) - ^ "Introduction to Taylor's theorem for multivariable functions - Math Insight". mathinsight.org. Retrieved November 11, 2021.
- ^ Nocedal, Jorge; Wright, Stephen J. (2006). Numerical Optimization. New York: Springer. pp. 142. ISBN 0-387-98793-2.
- ^ Robert Mansel Gower; Peter Richtarik (2015). "Randomized Quasi-Newton Updates are Linearly Convergent Matrix Inversion Algorithms". arXiv:1602.01768 [math.NA].
- ^ "Unconstrained Optimization: Methods for Local Minimization—Wolfram Language Documentation". reference.wolfram.com. Retrieved 2022-02-21.
- ^ The Numerical Algorithms Group. "Keyword Index: Quasi-Newton". NAG Library Manual, Mark 23. Retrieved 2012-02-09.
- ^ The Numerical Algorithms Group. "E04 – Minimizing or Maximizing a Function" (PDF). NAG Library Manual, Mark 23. Retrieved 2012-02-09.
- ^ "Find minimum of unconstrained multivariable function - MATLAB fminunc".
- ^ "Constrained Nonlinear Optimization Algorithms - MATLAB & Simulink". www.mathworks.com. Retrieved 2022-02-21.
- ^ "optim function - RDocumentation". www.rdocumentation.org. Retrieved 2022-02-21.
- ^ "Scipy.optimize.minimize — SciPy v1.7.1 Manual".
추가 읽기
- Bonnans, J. F.; Gilbert, J. Ch.; Lemaréchal, C.; Sagastizábal, C. A. (2006). Numerical Optimization : Theoretical and Numerical Aspects (Second ed.). Springer. ISBN 3-540-35445-X.
- Fletcher, Roger (1987), Practical methods of optimization (2nd ed.), New York: John Wiley & Sons, ISBN 978-0-471-91547-8.
- Nocedal, Jorge; Wright, Stephen J. (1999). "Quasi-Newton Methods". Numerical Optimization. New York: Springer. pp. 192–221. ISBN 0-387-98793-2.
- Press, W. H.; Teukolsky, S. A.; Vetterling, W. T.; Flannery, B. P. (2007). "Section 10.9. Quasi-Newton or Variable Metric Methods in Multidimensions". Numerical Recipes: The Art of Scientific Computing (3rd ed.). New York: Cambridge University Press. ISBN 978-0-521-88068-8.
- Scales, L. E. (1985). Introduction to Non-Linear Optimization. New York: MacMillan. pp. 84–106. ISBN 0-333-32552-4.