라인 검색에서 3 차 보간법과 2 차 보간법 결정에 도움


9

유사 뉴턴 BFGS 알고리즘의 일부로 라인 검색을 수행하고 있습니다. 라인 검색의 한 단계에서 큐빅 보간법을 사용하여 로컬 최소화기에 더 가깝게 이동합니다.

허락하다 f:RR,fC1관심있는 기능이어야합니다. 찾고 싶습니다x 그런 f(x)0.

허락하다 f(xk), f(xk), f(xk+1)f(엑스k+1)알려져있다. 또한 가정0엑스케이<엑스<엑스케이+1. 입방 다항식에 맞습니다(엑스)=엑스+엑스2+엑스+ 그래서 (0)=에프(엑스케이), '(0)=에프'(엑스케이), (엑스케이+1엑스케이)=에프(엑스케이+1)'(엑스케이+1엑스케이)=에프'(엑스케이+1).

나는 이차 방정식을 해결합니다. (1):'(엑스엑스케이)=0 내가 찾은 엑스 닫힌 양식 솔루션을 사용합니다.

위의 경우를 제외하고 대부분의 경우 잘 작동합니다. 에프(엑스)=영형(엑스2) 닫힌 양식 솔루션으로 (1) ~로 나누다 이것은 아주 가깝거나 정확하게됩니다 0.

내 해결책은 "너무 작 으면"2 차 다항식의 최소화를 위해 닫힌 형태 솔루션을 취하면됩니다. Q2(x)=bx2+cx+d 내가 이미 계수를 가지고 b,c,d 이전부터 Q(x).

내 질문은 : 입방에 대한 이차 보간을 언제 수행 해야하는지에 대한 좋은 테스트를 어떻게 고안합니까? 테스트를위한 순진한 접근a0 숫자로 인해 나빠서보고 있습니다. |a|<ϵτ 어디 ϵ 기계 정밀도이지만, 좋은 것을 결정할 수 없습니다 τ 그것은 불변의 규모입니다 f.

보너스 질문 : 계수 사용에 수치 문제가 있습니까?b,c,d, 큐빅 피팅 실패에서 계수를 계산하는 적절한 방법으로 새로운 2 차 피팅을 수행해야합니까?

설명을 위해 편집 : 내 질문에f 실제로는 일반적으로 ϕ(α)=f(x¯k+αpk¯)문학에서. 질문 형식을 단순화했습니다. 해결하려는 최적화 문제는 6 차원에서 비선형입니다. 그리고 나는 Wolfe 조건이 BFGS 라인 검색에 충분하다는 것을 잘 알고 있습니다.f(x)0; 나는 강력한 Wolfe 조건을 만족시킬 무언가를 찾고 있으며 입방 근사를 최소화하는 것이 좋은 단계입니다.

문제는 BFGS에 관한 것이 아니라 입방 계수가 2 차 근사법이 더 적합한 시점을 결정하는 방법을 결정하는 것입니다.

편집 2 : 업데이트 표기법, 방정식은 변경되지 않습니다.

답변:


4

흠 ... 3 차 보간은 라인 검색에 대해 들어 본 적이 없지만 일반적으로 과잉입니다.

문제를 올바르게 읽고 있다면 x스칼라일까요? 이 경우 BFGS가 문제를 해결하는 가장 효율적인 방법은 아닐 것입니다. Brenth의 방법과 같은 스칼라 최적화 알고리즘으로 문제를 더 빨리 해결할 수 있습니다.

BFGS에는 여러 줄 검색 알고리즘이 있습니다. 내 자신의 응용 프로그램의 경우 메모리 제한 BFGS (L-BFGS)를 사용 하면이 linesearch 가 매우 잘 작동합니다. Wolfe 조건 만 만족하면되며 정확한 최소값을 찾아서 많이 얻지 못할 수도 있습니다.

어쨌든, 실제로 귀하의 질문에 대답하기 위해 : 입방 형을 푸는 것이 NaN 또는 Inf와 같은 "나쁜"값을 얻는다면 단순히 이차 다항식으로 전환하는 것을 고려할 것입니다 ( 여기에서 수행됨 ).

나는 당신이 무엇을 의미하는지 잘 모르겠습니다. b,c,d? 3 차 적합치에 대한이 계수는 2 차 적합치와 같지 않으므로 재사용 할 수 없습니다.

마지막으로 사용하고 싶을 수도 있습니다 f(xk1) 오히려 f(x0)함수가 (아마도) 대략 입방 형이거나 2 차 법일 뿐이므로 xkxk1 서로 (및 솔루션)에 더 가까이 있어야합니다 x0.

도움이 되었기를 바랍니다.


명확성을 위해 편집되었습니다. 사용하여b,c,d"나는 입방에 맞는 것을 의미합니다 Q(x)=ax3+bx2+cx+d 그리고 그것을 발견 a0 따라서 나는 Q(x)=bx2+cx+d이미 이차 다항식입니다. 문제는 계수가b,c,d이 적합에 대해 구한 값은 보간을 수행하거나 일반적인 2 차 적합에 대한 새 계수를 다시 계산해야하는 경우에 합리적입니다.
Emily L.

아, 물론 이죠 수치 적 관점에서 계수를 사용하는 데 아무런 문제가 없습니다. 내가 중요하다고 생각하는 유일한 지점은 어쨌든 종료 할 솔루션에 매우 가깝습니다.
LKlevin

큐빅을 계산하고 "나쁜"값을 확인하여 답변에 동기를 부여 할 수 있습니까? 언제 할 때 안전한가요?a<<b 또는 a0?
Emily L.

언제 a0, b,cd대략 2 차 경우에 대한 것입니다. BFGS 라인 검색은 매우 견고하므로 완전히 정확하지 않더라도 이들을 사용하는 것이 좋습니다. Wolfe 조건을 준수하는 한 수렴됩니다. "나쁜"값은 컴퓨터가 필요한 정밀도로 정확하게 계산을 수행 할 수 있으면 모든 것이 좋습니다. 그렇게 할 수 없으면 inf와 NaN이 보이기 시작합니다.
LKlevin

4

Nocedal이 구현 한 Moré의 논문은 다음과 같습니다.

Jorge J. Moré와 David J. Thuente. 충분한 감소를 보장하는 라인 검색 알고리즘. ACM 거래 수학. 소프트웨어. 20, 3 (1994 년 9 월), 286-307. DOI http://dx.doi.org/10.1145/192115.192132 ( preprint ).


SciComp.SE에 오신 것을 환영합니다! 논문을 더 쉽게 찾을 수 있도록 게시물 형식을 지정했습니다. Nocedal의 구현에 대한 링크를 찾을 수 있다면 도움이 될 것입니다.
Christian Clason
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.