비선형 최소 제곱 분의 일 권장 방법 무엇 상자 제약과, ? 상자 제약 조건을 이차적으로 만들 수 있고
이것은 이론적으로 작동합니까, 실제로 작동합니까?
(NLS +에 대한 많은 이론적 논문이있는 것처럼 보이지만 실제 관심사는 실용적입니다.
실제 또는 현실적인 테스트 사례를 통해 방법 중에서 선택하는 데 도움이됩니다.)
(전문가, "least-squares"태그를 추가하십시오?)
비선형 최소 제곱 분의 일 권장 방법 무엇 상자 제약과, ? 상자 제약 조건을 이차적으로 만들 수 있고
(전문가, "least-squares"태그를 추가하십시오?)
답변:
제약 조건을 제거하기 위해 제곱 페널티 용어를 추가하는 것은 차수 1 / 페널티 요소의 정확도 만 제공하는 간단한 접근 방식입니다. 따라서 계산 중에 페널티가 무한대로되지 않는 한 높은 정확도를 권장하지 않습니다. 그러나 높은 페널티 계수는 Hessian을 매우 열악하게 만들어 제약 조건을 명시 적으로 고려하지 않고 달성 할 수있는 총 정확도를 제한합니다.
바운드 제약 조건은 일반 제약 조건보다 처리하기 가 훨씬 쉽지만 실제로는 페널티로 변환되지 않습니다.
솔버 L-BFGS-B (약 5 차원 히스토리와 함께 사용)는 일반적으로 낮은 고차원 모두에서 제한된 제약 문제를 매우 안정적으로 빠르게 해결합니다. 하강 방법에 쉽게 걸리는 솔루션에서 멀리 떨어져있을 수있는 문제에 대한 수렴은 예외입니다.
우리는 글로벌 최적화 소프트웨어의 일환으로 매우 견고한 경계 제약 솔버가 필요했기 때문에 다양한 차원에서 매우 다양한 기능에 대한 많은 실험을 수행했으며 다양한 솔버를 사용할 수있었습니다. L-BFGS-B는 물론 일반적인 문제 해결 방법으로 다른 솔루션이 훨씬 더 나은 성능을 발휘합니다. 따라서 L-BFGS-B를 우선 추천하고 L-BFGS-B가 귀하의 특정 문제를 제대로 처리하지 못하는 경우를 대비하여 대체 기술을 시도 할 것입니다.
나는 범용 NLP 솔버 IPOPT를 사용 합니다. 내가 시도한 것 중에서 가장 강력한 솔버입니다.
매우 특별한 요구 사항이 없다면 상자 제약 조건이있는 NLS에서만 작동하는 문제 별 솔버를 주장해야 할 이유가 없습니다.
요구 사항이 변경되면 (예 : 비선형 제약 조건 추가) 문제 별 솔버에 심각한 문제가 발생할 수 있습니다. 범용 IPOPT를 사용하면 이러한 문제가 발생하지 않습니다.
IPOPT의 뛰어난 견고성을 손상시키지 않으면 서 솔루션 절차가 더 빨라질 수 있습니다. 제 생각 에는 정확한 파생 상품이 있다면 사용하십시오. 성능 문제가 입증 된 경우에만 근사치 (예 : L-BFGS)를 엉망으로 만들기 시작합니다.
R minpack.lm CRAN 패키지 상자 제약과 개의 Levenberg-마르카토 구현을 제공합니다.
일반적으로 Levenberg-Marquardt는 최소 제곱 문제에 대해 L-BFGS-B보다 훨씬 더 적합합니다. 도전적인 문제에 대해 더 많이 수렴 될 것입니다. 비선형 최소 제곱 문제에 맞게 조정되어 범용 IPOPT보다 훨씬 빠릅니다.
R 패키지는 제약 조건을 적용하기 위해 매우 간단한 프로젝션 방식을 선택합니다 ( 소스 코드 참조 ). 사용중인 LM 구현에 따라 포함하는 것이 간단 할 수 있습니다.
이제 변환 (예 : scipy에서와 같이 사인 변환)을 사용하는 것에 대한 제안은 제한되지 않은 LM 알고리즘을 제한된 알고리즘으로 변환하는 좋은 대안입니다. Jacobian이 분석적인 경우 Jacobian에 변환을 포함해야합니다.
(나중에) 상자 제약 조건을 처리하는 두 가지 솔버 :
Scipy least_squares 에는 광범위한 문서가있는 3 가지 방법이 있습니다.