나는 일반적인 말로 시작할 것입니다 : 1 차 정보 (즉, 경사를 인코딩하는 그라디언트 만 사용)는 방향 정보 만 제공 할 수 있습니다 : 함수 값이 검색 방향으로 감소하지만 얼마나 오래 지속되는지는 알 수 없습니다 . 검색 방향을 따라가는 거리를 결정하려면 추가 정보 가 필요 합니다 (볼록 이차 문제에서도 일정한 스텝 길이의 그라데이션 하강은 실패 할 수 있음). 이를 위해 기본적으로 두 가지 선택이 있습니다.
- 예를 들어 그라데이션 하강 대신 Newton의 방법을 사용하여 (곡률을 인코딩하는) 2 차 정보를 사용 하십시오 (항상 단계 길이를 사용할 수 있음)1 최소화기에 충분히 가깝습니다).
- 시행 착오 (물론 Armijo와 같은 적절한 라인 검색을 사용하는 것을 의미합니다 ).
글을 쓸 때 2 차 미분에 접근 할 수없고 obejctive 함수를 평가하는 것이 매우 비싸다면, 당신의 유일한 희망은 타협하는 것입니다. 검색 만 필요 O(1) 평가 (즉, 기울기를 평가하는 데 필요한 노력의 최대 (작은) 상수 배수).
한 가지 가능성은 Barzilai--Borwein 단계 길이 를 사용하는 것입니다 (예 : Fletcher : Barzilai-Borwein 방법 참조 . 응용 프로그램을 사용한 최적화 및 제어, 235–256, Appl. Optim., 96, Springer, New York, 2005 ). 아이디어는 탐색 방향을 따라 곡률의 유한 차분 근사를 사용하여 단계 크기의 추정치를 얻는 것입니다. 구체적으로,α0>0 임의의 세트 g0:=∇f(x0) 그리고 k=0,...:
- 세트 sk=−α−1kgk 과 xk+1=xk+sk
- 평가 gk+1=∇f(xk+1) 그리고 설정 yk=gk+1−gk
- 세트 αk+1=(yk)Tyk(yk)Tsk
이 선택은 2 차 함수에 대해 (실제로 매우 빠르게) 수렴하는 것으로 표시 될 수 있지만 수렴은 모노톤 이 아닙니다 (예 : 함수 값).f(xk+1) 보다 클 수있다 f(xk)그러나 단 한 번만; Fletcher 논문에서 10 페이지의 도표를 참조하십시오. 2 차 함수가 아닌 경우에는이를 라인 검색과 결합해야하며, 이는 비단 조성을 처리하기 위해 수정해야합니다. 하나의 가능성은 선택하는 것입니다σk∈(0,α−1k) (예 : 역 추적)
f(xk−σkgk)≤maxmax(k−M,1)≤j≤kf(xj)−γσk(gk)Tgk,
어디
γ∈(0,1) 일반적인 Armijo 매개 변수이며
M 단조의 정도를 제어합니다 (예 :
M=10). 함수 값 대신 그라디언트 값을 사용하는 변형도 있지만 귀하의 경우 그라디언트가 함수보다 평가하는 데 훨씬 비싸므로 여기에서는 의미가 없습니다. (참고 : 물론 BB 스텝 길이를 맹목적으로 받아들이고 행운을 믿으려고 시도 할 수 있지만 의견에 적었을 때 견고성이 필요하다면 정말 나쁜 생각입니다.)
대안 (그리고 내 의견으로는 훨씬 더 나은) 접근법은 탐색 방향을 계산할 때 이미이 유한 차분 근사를 사용하는 것입니다. 이를 준 뉴턴 방법 이라고합니다 . 아이디어는 점진적으로 Hessian의 근사치를 작성하는 것입니다.∇2f(xk)그라디언트의 차이를 사용하여. 예를 들어H0=Id (정체성 매트릭스) k=0,… 풀다
Hksk=−gk,(1)
그리고 설정
Hk+1=Hk+(yk−Hksk)T(sk)T(sk)Tsk
와
yk 위와 같이
xk+1=xk+sk. (이를
Broyden 업데이트 라고 하며 실제로는 거의 사용되지 않습니다. 더 낫지 만 약간 더 복잡한 업데이트는
BFGS 업데이트입니다 . 자세한 내용은 Nocedal and Wright의 저서
Numerical Optimization을 참조하십시오 .) ) 이것은 각 단계에서 선형 시스템을 해결해야하지만 (귀하의 경우 초기 조건 인 알 수없는 크기의 크기이므로 그래디언트를 얻기 위해 PDE를 해결하여 노력을 지배해야합니다. 또한 업데이트 규칙이 있습니다.
역행 Hessian의 근사치 : 단일 행렬-벡터 곱만 계산하면됩니다.) b) 수렴을 보장하기 위해 여전히 라인 검색이 필요합니다.
운 좋게도 이러한 맥락에서 모든 기능 평가를 사용하는 대체 방법이 있습니다. 아이디어는Hk 대칭 및 양의 정한 (BFGS 업데이트에서 보장됨), 해결 (1) 이차 모형을 최소화하는 것과 같습니다
qk(s)=12sTHks+sTgk.
A의
신뢰 영역 방법 , 당신은 추가 제약 그것과 그렇게 할 것
∥s∥≤Δk, 어디
Δk 적절하게 선택된 신뢰 영역 반경 (단계 길이의 역할을 함)
σk). 핵심 아이디어는 이제 계산 된 단계에 따라이 반경을 적응 적으로 선택하는 것입니다. 구체적으로, 당신은 비율을 보면
ρk:=f(xk)−f(xk+sk)f(xk)−qk(sk)
함수 값의 실제 및 예측 된 감소. 만약
ρk 아주 작고 모델이 나빴고 버렸습니다
sk 그리고 다시 시도하십시오
Δk+1<Δk. 만약
ρk ~에 가깝다
1, 모델이 양호하고 설정했습니다.
xk+1=xk+sk 그리고 증가
Δk+1>Δk. 그렇지 않으면 당신은 방금 설정
xk+1=xk+sk 그리고 떠나
Δk혼자. 실제 최소화기를 계산하려면
sk 의
min∥s∥≤Δkqk(s)완전한 제한 최적화 문제를 해결하지 않아도되는 몇 가지 전략이있다. 내가 가장 좋아하는 것은
Steihaug의 잘린 CG 방법 입니다. 자세한 내용은 다시 Nocedal and Wright를 참조하십시오.