최적화에 있어서 뉴턴의 방법
Newton's method in optimization
미적분학에서 뉴턴의 방법(Newton–Raphson이라고도 함)은 미분 가능한 함수 F의 근을 구하는 반복적인 방법으로, F(x) = 0의 해를 구하는 방법입니다. 이와 같이 뉴턴의 방법은 미분 가능한 함수 f의 도함수 f'에 적용하여 도함수의 근을 구할 수 있습니다(solutions에서 f'(x) = 0). 중요한 지점이라고도 합니다. 이러한 솔루션은 최소점, 최대점 또는 안장점일 수 있습니다. 중요점(수학)의 "여러 변수" 섹션과 이 문서의 "기하학적 해석" 섹션을 참조하십시오. 이것은 함수 f의 (글로벌) 최소값을 찾는 것을 목표로 하는 최적화와 관련이 있습니다.
뉴턴의 방법
최적화의 중심 문제는 기능의 최소화입니다. 먼저 단변량 함수, 즉 단일 실수 변수의 함수의 경우를 고려해 보겠습니다. 우리는 나중에 보다 일반적이고 실제적으로 유용한 다변량 사례를 고려할 것입니다.
두 배 미분 가능한 f → R {\ \ \에서 최적화 문제를 해결하려고 합니다
뉴턴의 방법은 추측(시작점) ∈ R 0}\ {R}에서 f{\displaystyle x_{*}의 ∗ {*}}로 수렴하는시퀀스 {x k} {\를 구성하여 이 문제를 해결하려고 합니다. 번째 차수의 테일러 근사 f{\ f는 반복률을 중심으로 합니다. 경의 2차 테일러 전개는
다음 반복 + 1 은 t{\에서 이러한 2차 근사를 최소화하도록 정의되며 + = x + t {\displaystyle x_{k+1} = x_{k}+t}를 설정합니다. 2차 도함수가 양수이면 2차 근사는 t의 볼록 함수이며 도함수를 0으로 설정하면 최소값을 찾을 수 있습니다. 부터
에 대한 최소값이 달성됩니다.
모든 것을 종합하면 뉴턴의 방법은 반복을 수행합니다.
기하학적 해석
뉴턴의 방법에 대한 기하학적 해석은 각 반복에서 {\x)}의 그래프에 포물선을 맞추는 것과 같고 그 점의 그래프와 같은 기울기와 곡률을 갖는 이며, 그리고 포물선의 최대 또는 최소(높은 차원에서는 안장점일 수도 있음)로 진행합니다. 아래를 참조하십시오. f{\ f 가 이차 함수일 경우, 정확한 극값은 한 단계에서 찾을 수 있습니다.
고차원
위의 반복 스킴은 도함수를 그래디언트로 으로써 d >{\ d> 차원으로 일반화할 수 있습니다(각 저자는 그래디언트에 f = ∇f() = f()∈ R d {\'(x) =\n 등 다른 표기법을 사용합니다.), 그리고 헤센 행렬의 역수를 갖는 2차 도함수의 역수( 저자들은 ″) = ∇ 2f( =H f() ∈ R × d {\ f''(x) =\n을 포함하여 헤센에 대해 다른 표기법을 사용합니다.). 따라서 반복 스킴을 구합니다.
종종 뉴턴 방법은 γ = 1 {\displaystyle \gamma =1} 대신 작은 스텝 크기 < γ ≤ 1 {\ 0<\leq 1}을 포함하도록 수정됩니다.
이것은 종종 방법의 각 단계에서 울프 조건, 즉 훨씬 단순하고 효율적인 Armijo의 조건이 만족되도록 하기 위해 수행됩니다. 1이 아닌 다른 스텝 크기의 경우 이 방법을 종종 완화 또는 감쇠 뉴턴 방법이라고 합니다.
파이썬에서의 기본 알고리즘 구현
부터 타자 치기 수입품 목록., 투플, 호출 가능 수입품 무뚝뚝한 ~하듯이 np 디프 뉴턴 경이다.(x: np.nd 배열, f: 호출 가능, 여자친구: 호출 가능, hf: 호출 가능, lr=0.01, lr_decr=0.999, 맥시미터=100, 톨=0.001) -> 투플[np.nd 배열, 목록.[np.nd 배열], 인트의]: """ 업데이트 기준을 사용하여 다차원 함수의 최소값을 찾는 뉴턴 방법을 적용합니다. k번째 반복의 경우 x_k+1 = x_k - lr * inverse(hf(x)) * gf(x)). Args: x(np.ndarray): 알고리즘이 시작되는 초기 지점을 나타내는 배열입니다. f(통화 가능): 최소화할 목적 기능입니다. gf(통화 가능): 목적 함수의 기울기입니다. hf(통화 가능): 목적 함수의 헤시안. lr(float, 옵션): 초기 학습률. 기본값은 0.01입니다. lr_decr(float, 옵션): 학습률에 대한 감쇠 계수입니다. 기본값은 0.999입니다. 최대값(int, 옵션): 최대 반복 횟수입니다. 기본값은 100입니다. tol(float, 옵션): 수렴을 결정하는 구배 표준에 대한 공차입니다. 기본값은 0.001입니다. 반환: Tuple[np.ndarray, List[np.ndarray], int]: 세 가지 요소가 있는 튜플: - 대략적인 최소점. - 최적화 중에 계산된 중간 지점(배열)의 목록입니다. - 수행된 반복 횟수입니다. 예제: # 2차원 이차함수를 정의합니다: f(x, y) = x^2 + 2y^2 defobject_function(x): 반품 x[0] ** 2 + 2 * x[1] ** 2 # 목적 함수의 구배를 정의합니다. f'(x, y) = [2x, 4y] def gradient_function(x): np.array 반환([2 * x[0], 4 * x[1]) # 목적 함수의 헤시언 정의: f''(x, y) = [[2, 0], [0, 4] defessian_function(x): np.array 반환([2, 0], [0, 4]) # 최적화를 위한 초기점 initial_point = np.array([3.0, 2.0]) # 최적화를 위해 뉴턴 방법 적용 결과, 중간_점, 반복 = 뉴턴(initial_점, 목적_함수, 구배_함수, hessian_function) """ 포인트들 = [x] 니트 = 0 구배의 = 여자친구(x) 헤센의 = hf(x) 하는 동안에 니트 < 맥시미터 그리고. np.리날그.상투적인(구배의) >= 톨: x = x - lr * np.점(np.리날그.인비 인비(헤센의), 구배의) # np.dot(m1, m2)을 사용한 행렬 곱셈 lr *= lr_decr # 학습률 업데이트: tk+1 = tk * ρ, ρ이 붕괴 요인입니다. 포인트들.보따리를 달다(x) 니트 += 1 구배의 = 여자친구(x) 헤센의 = hf(x) 돌아가다 x, 포인트들, 니트 수렴
f가 Lipschitz Hessian의 강한 볼록 함수인 경우, 이 x∗ min f (x ) {\{*}=\arg \min f (x x 0, x 1, x … x_{0}, x_{1}, {2},뉴턴 방법으로 생성된 은(는) f f}의 (필수적으로 고유한) 최소화기 x {\ x_에 2차적으로 빠르게 수렴됩니다. 그것은,
뉴턴 방향 계산
뉴턴 방향 =-( ″ (x k)) - 1 f' (x k) {\displaystyle h =-(f''(x_{k})^{-1}f'(x_{k})}를 계산하기 위해 고차원에서 헤시안의 역을 찾는 것은 값비싼 연산이 될 수 있습니다. 이러한 경우, 헤시언을 직접 뒤집는 대신 벡터 를 선형 방정식 체계의 해로 계산하는 것이 좋습니다.
다양한 인수분해 또는 반복적인 방법을 사용하여 대략적으로(그러나 매우 정확하게) 해결할 수 있습니다. 이러한 방법의 대부분은 특정 유형의 방정식에만 적용됩니다. 예를 들어, 인수분해 및 공액 구배는 ″(k) {\x_{k})}가 양의 정행렬인 경우에만 작동합니다. 이것이 한계처럼 보일 수 있지만, 종종 문제가 발생했음을 보여주는 유용한 지표가 됩니다. 예를 들어 최소화 문제에 접근하고 때 ″ k ) ''(x_{k})}가 양의 확증이 아닌 경우 반복은 최소가 아닌 안장점으로 수렴됩니다.
반면, 제한된 최적화가 수행되면(예를 들어, 라그랑주 승수를 사용하여) 문제는 안장점 찾기 중 하나가 될 수 있으며, 경우 헤시안은 무한대로 대칭되며 k + {\의 솔루션은 이에 적합한 방법으로 수행되어야 합니다. 를 들어 ⊤ {\LDL^{\top}} 변형의 촐레스키 인수분해 또는 공액 잔차법과 같습니다.
또한 다양한 준뉴턴 방법이 존재하며, 여기서 헤센(또는 그 역방향)에 대한 근사는 기울기의 변화로부터 구축됩니다.
헤시안이 가역 행렬에 가까운 경우, 반전 헤시안은 수치적으로 불안정할 수 있고 해가 발산할 수 있습니다. 이 경우 과거에 시도된 특정 해결책이 있으며, 이는 특정 문제에 대해 다양한 성공을 거두었습니다. 를 들어,″ )+ Bk {\x_{k})를 만들기 위해 보정 행렬 를 추가하여 헤시언을 수정할 수 있습니다. 양의 확정. 한 가지 접근법은 Hessian을 대각선으로 하고 를 선택하여 ″( k )+ {\x_{k})를 선택하는 것입니다.는 Hessian과 동일한 고유 벡터를 갖지만 각 음의 고유 값이 > 0 \ >0}으로 대체됩니다.
Levenberg-Marquardt 알고리즘(대략적인 Hessian을 사용하는)에서 활용되는 접근 방식은 필요에 따라 모든 반복에서 스케일을조정하여 스케일된 항등 행렬을 Hessian, I I에 추가하는 것입니다. 큰 및 작은 Hessian의 경우 반복은 계단 가 1/ {\ 1인 기울기 하강처럼 작동합니다 결과적으로 Hessian이 유용한 정보를 제공하지 않는 느리지만 더 신뢰할 수 있는 수렴이 이루어집니다.
몇가지 주의사항
뉴턴의 방법은 원래 버전에서 다음과 같은 몇 가지 주의 사항이 있습니다.
- 헤시안이 가역적이지 않으면 작동하지 않습니다. 이것은 헤센의 역수를 취하는 뉴턴의 방법에 대한 정의를 보면 분명합니다.
- 전혀 수렴하지 않을 수 있지만 1점 이상의 사이클에 진입할 수 있습니다. 뉴턴 방법의 "고장 분석" 항목을 참조하십시오.
- 로컬 최소값 대신 안장 지점으로 수렴할 수 있습니다. 이 문서의 "기하학적 해석" 섹션을 참조하십시오.
위에서 언급한 준뉴턴 방법이나 레벤버그-마르카르트 알고리즘과 같은 뉴턴 방법의 일반적인 변형에도 주의할 점이 있습니다.
예를 들어, 일반적으로 비용 함수가 (강력하게) 볼록하고 헤시안이 전역 경계이거나 립시츠 연속이어야 합니다. 예를 들어, 이는 이 기사의 "수렴" 섹션에서 언급됩니다. 언급한 방법의 원천이 되는 Levenberg-Marquardt 알고리즘에 대한 참고문헌에서 Levenberg와 Marquardt의 논문을 살펴보면, 기본적으로 Levenberg의 논문에는 이론적 분석이 없음을 알 수 있고, Marquardt의 논문은 지역적 상황을 분석할 뿐 글로벌 수렴 결과를 증명하지는 않습니다. 보다 일반적인 가정 하에서 이론적 보장이 좋고, 심층 신경망과 같은 실제적인 대규모 문제에서 구현이 가능하고 잘 작동하는 그래디언트 하강에 대한 Backtracking line search 방법과 비교할 수 있습니다.
참고 항목
- 준뉴턴법
- 경사 하강
- 가우스-뉴턴 알고리즘
- 레벤베르크-마르카르트 알고리즘
- 신뢰영역
- 최적화
- 나이더-미드 방법
- 자기 일치 함수 - 뉴턴의 방법이 매우 우수한 전역 수렴 속도를 갖는 함수.[2]: Sec.6.2
메모들
- ^ Nocedal, Jorge; Wright, Stephen J. (2006). Numerical optimization (2nd ed.). New York: Springer. p. 44. ISBN 0387303030.
- ^ Nemirovsky and Ben-Tal (2023). "Optimization III: Convex Optimization" (PDF).
참고문헌
- Avriel, Mordecai (2003). Nonlinear Programming: Analysis and Methods. Dover Publishing. ISBN 0-486-43227-0.
- Bonnans, J. Frédéric; Gilbert, J. Charles; Lemaréchal, Claude; Sagastizábal, Claudia A. (2006). Numerical optimization: Theoretical and practical aspects. Universitext (Second revised ed. of translation of 1997 French ed.). Berlin: Springer-Verlag. doi:10.1007/978-3-540-35447-5. ISBN 3-540-35445-X. MR 2265882.
- Fletcher, Roger (1987). Practical Methods of Optimization (2nd ed.). New York: John Wiley & Sons. ISBN 978-0-471-91547-8.
- Givens, Geof H.; Hoeting, Jennifer A. (2013). Computational Statistics. Hoboken, New Jersey: John Wiley & Sons. pp. 24–58. ISBN 978-0-470-53331-4.
- Nocedal, Jorge; Wright, Stephen J. (1999). Numerical Optimization. Springer-Verlag. ISBN 0-387-98793-2.
- Kovalev, Dmitry; Mishchenko, Konstantin; Richtárik, Peter (2019). "Stochastic Newton and cubic Newton methods with simple local linear-quadratic rates". arXiv:1912.01597 [cs.LG].
외부 링크
- Korenblum, Daniel (Aug 29, 2015). "Newton-Raphson visualization (1D)". Bl.ocks. ffe9653768cb80dfc0da.
