상자 구속 조건이있는 비선형 최소 제곱


10

비선형 최소 제곱 분의 일 권장 방법 무엇 erri(p)2 상자 제약과, loj<=pj<=hij ? 상자 제약 조건을 이차적으로 만들 수 있고

ierri(p)2+Cjtub(pj,loj,hij)2
여기서tub(x,lo,hi) 는 \ ___ /, 모양의 "터브 함수"입니다.max(lox,0,xhi).
이것은 이론적으로 작동합니까, 실제로 작동합니까?
(NLS +에 대한 많은 이론적 논문이있는 것처럼 보이지만 실제 관심사는 실용적입니다.
실제 또는 현실적인 테스트 사례를 통해 방법 중에서 선택하는 데 도움이됩니다.)

(전문가, "least-squares"태그를 추가하십시오?)


5
엄격한 구속 조건을 페널티 함수로 바꾸는 것은 수치 최적화에서 일반적인 기술입니다. 당신이 제안하는 것이 그 대체품의 특정 형태 인 것 같습니다. 여기에서, 예를 들어, 유사한 기술에 대한 모든 읽을 수 있습니다 : stanford.edu/~boyd/cvxbook
데이비드 Ketcheson

ppi=min(max(loj,pj),hij)

답변:


11

제약 조건을 제거하기 위해 제곱 페널티 용어를 추가하는 것은 차수 1 / 페널티 요소의 정확도 만 제공하는 간단한 접근 방식입니다. 따라서 계산 중에 페널티가 무한대로되지 않는 한 높은 정확도를 권장하지 않습니다. 그러나 높은 페널티 계수는 Hessian을 매우 열악하게 만들어 제약 조건을 명시 적으로 고려하지 않고 달성 할 수있는 총 정확도를 제한합니다.

바운드 제약 조건은 일반 제약 조건보다 처리하기 가 훨씬 쉽지만 실제로는 페널티로 변환되지 않습니다.

솔버 L-BFGS-B (약 5 차원 히스토리와 함께 사용)는 일반적으로 낮은 고차원 모두에서 제한된 제약 문제를 매우 안정적으로 빠르게 해결합니다. 하강 방법에 쉽게 걸리는 솔루션에서 멀리 떨어져있을 수있는 문제에 대한 수렴은 예외입니다.

우리는 글로벌 최적화 소프트웨어의 일환으로 매우 견고한 경계 제약 솔버가 필요했기 때문에 다양한 차원에서 매우 다양한 기능에 대한 많은 실험을 수행했으며 다양한 솔버를 사용할 수있었습니다. L-BFGS-B는 물론 일반적인 문제 해결 방법으로 다른 솔루션이 훨씬 더 나은 성능을 발휘합니다. 따라서 L-BFGS-B를 우선 추천하고 L-BFGS-B가 귀하의 특정 문제를 제대로 처리하지 못하는 경우를 대비하여 대체 기술을 시도 할 것입니다.


L-BFGS는 IPOPT에서 사용할 수 있으며, 답변을 수정했습니다.
알리

5

나는 범용 NLP 솔버 IPOPT를 사용 합니다. 내가 시도한 것 중에서 가장 강력한 솔버입니다.

매우 특별한 요구 사항이 없다면 상자 제약 조건이있는 NLS에서만 작동하는 문제 별 솔버를 주장해야 할 이유가 없습니다.

요구 사항이 변경되면 (예 : 비선형 제약 조건 추가) 문제 별 솔버에 심각한 문제가 발생할 수 있습니다. 범용 IPOPT를 사용하면 이러한 문제가 발생하지 않습니다.


업데이트 : IPOPT로 L-BFGS를 시도 할 수 있습니다 ( 문서의 Quasi-Newton 참조).

IPOPT의 뛰어난 견고성을 손상시키지 않으면 서 솔루션 절차가 더 빨라질 수 있습니다. 제 생각 에는 정확한 파생 상품이 있다면 사용하십시오. 성능 문제가 입증 된 경우에만 근사치 (예 : L-BFGS)를 엉망으로 만들기 시작합니다.


나는 IPOPT가 얼마나 잘 작동하는지 모르겠지만 내리막 심플 렉스 방법을 옹호하여 비슷한 말을 상기시켜줍니다. 비선형 최소 제곱이 일반적인 문제 클래스이므로 기존 NLS 솔버 중 하나를 사용하여 완전히 거부하면 약간 의심스러워 보입니다.
Thomas Klimpel

@ThomasKlimpel 글쎄, denis는 우리에게 더 자세한 정보를 제공해야한다. 그러면 우리는 올바른 솔버를 선택하도록 도울 수있다. :) 또는 그는 스스로 확인하고 자신의 요구에 가장 적합한 것을 찾을 수 있습니다. IPOPT는 시작하기에 좋은 솔버 인 것 같습니다.
Ali

@Ali, "실제 또는 실제 테스트 사례"를 가리킬 수 있습니까?
데니스

@denis 나는 할 수는 있지만 그렇게 할 의사는 없습니다. 중요한 것은 IPOPT가 문제를 처리하는 방법 입니다. 매우 특별한 요구 사항이 없다면 잘 해결해야합니다. IPOPT에는 MATLAB, C ++, C, Fortran, R, AMPL, CUTEr에 대한 인터페이스가 있습니다. 하나의 인터페이스를 선택하고 문제와 함께 발생하는 문제를 테스트하십시오.
Ali

@Thomas Klimpel, 나는 확실하지 않다고 생각한다. 나는 거부하지 않고 패키지에 대해 묻지 않고 통찰력이나 테스트 케이스를 요구한다. 왜이 사소한 방법이 잘 작동하지 않을 수 있을까?
데니스

1

R minpack.lm CRAN 패키지 상자 제약과 개의 Levenberg-마르카토 구현을 제공합니다.

일반적으로 Levenberg-Marquardt는 최소 제곱 문제에 대해 L-BFGS-B보다 훨씬 더 적합합니다. 도전적인 문제에 대해 더 많이 수렴 될 것입니다. 비선형 최소 제곱 문제에 맞게 조정되어 범용 IPOPT보다 훨씬 빠릅니다.

R 패키지는 제약 조건을 적용하기 위해 매우 간단한 프로젝션 방식을 선택합니다 ( 소스 코드 참조 ). 사용중인 LM 구현에 따라 포함하는 것이 간단 할 수 있습니다.

이제 변환 (예 : scipy에서와 같이 사인 변환)을 사용하는 것에 대한 제안은 제한되지 않은 LM 알고리즘을 제한된 알고리즘으로 변환하는 좋은 대안입니다. Jacobian이 분석적인 경우 Jacobian에 변환을 포함해야합니다.


0

(나중에) 상자 제약 조건을 처리하는 두 가지 솔버 :

  • Scipy least_squares 에는 광범위한 문서가있는 3 가지 방법이 있습니다.

    1. 'trf': 신뢰 영역 반사
    2. 'dogbox'
    3. 'lm': 상자 제약 조건이없는 MINPACK의 레거시 래퍼입니다.
  • 케레스

1
Scipy는 Levenberg-Marquardt 알고리즘이 상자 제약 조건을 처리 할 수 ​​없다고 명시 적으로 말합니다.
22 분 26 초
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.