평가 비용이 많이 드는 매끄럽고 경계가있는 볼록하지 않은 2D 함수의 전역 최소값 찾기


17

최소의 범위를 찾고자하는 비 볼록 2D 기능이 있습니다. 이 기능은 매우 부드럽습니다. 그것을 평가하는 것은 비용이 많이 든다. 허용 가능한 오류는 각 축에서 함수 도메인의 약 3 %입니다.

NLOPT 라이브러리에서 DIRECT 알고리즘의 구현을 시도했지만 필요한 정확도에 필요한 함수 평가량 측면에서 무차별 강제 검색보다 크게 개선되지 않았으며 일부 이상 치가있었습니다.

다른 글로벌 최적화 솔버를 고려해야합니까?


그라디언트를 계산할 수 있습니까, 아니면 차이 몫으로 근사해야합니까?
Arnold Neumaier

차이 몫으로 근사해야합니다.
Victor May 5

이 경우 수치 이차 미분은 수치 적으로 매우 불안정하고 안전하게 작동하도록 튜닝하기 어렵 기 때문에 Newton의 방법은 권장 할 수 없습니다.
Arnold Neumaier

@ 빅터 5 월, 당신은 무엇으로 끝났습니까? (. 당신이 정말로 도움이 사람들이 서로 다른 알고리즘을 비교하고 조정하는 것입니다 당신과 비슷한 기능을 게시 할 수있는 경우)
데니스

@Denis, 비디오에서 객체를 추적하는 알고리즘에서 속도를 높이려고했습니다. 알고리즘의 출력은 추적 된 객체를 포함 할 각 이미지 위치에 대한 가능성 추정치입니다. 이러한 가능성 추정값이 포함 된 이미지는 내가 최적화하려는 기능입니다. 나는 몇 가지 해결 단계에서 무차별 강제로 끝났습니다. 문제의 추적 알고리즘에 대한 자세한 내용은 "적분 히스토그램을 사용한 강력한 조각 기반 추적"을 참조하십시오.
Victor May

답변:


12

@barron이 같은 것을 간접적으로 논의했지만 다른 답변과 비교하여 약간 다른 접근법을 제안하고 싶습니다.

대신 일련의 점에 그것을 평가하여 즉, 직접 기능을 최적화 A (로컬) 최적에 (희망) 수렴, 당신의 개념을 사용할 수 있다는 점 대리 모델링 이다, 설명하는 유형의 문제 (고비용, 매끄럽고 제한적이며 저 차원, 즉 20 개 미만의 미지수)에 매우 적합합니다.엑스1,엑스2,,엑스케이대리 모델링

특히, 대리 모델링 모델 기능을 설정하여 작동 당신의 진정한 기능의 F R DR . 핵심은 물론 cf를 완벽하게 나타내지는 않지만 평가하는 것이 훨씬 저렴하다는 것입니다.아르 자형아르 자형에프아르 자형아르 자형에프

따라서 일반적인 최적화 프로세스는 다음과 같습니다.

  1. 일련의 j 초기 점 x 1 , x 2 , , x j 에서 를 평가 합니다. 파생 상품은 필요하지 않습니다. 또한 이러한 지점은 검색 공간 전체에 골고루 분포되어야합니다 (예 : Latin Hypercube Sampling 또는 이와 유사한 공간 채우기 설계).에프제이엑스1,엑스2,,엑스제이
  2. 이 원래 데이터 세트를 기반으로 모델 함수 작성하십시오 . 교차 검증을 사용하여 모델의 유효성을 검사 할 수 있습니다 (예 : 원래 j 포인트 의 서브 세트 만 사용 하여 c 생성 한 후 나머지 데이터 세트를 사용하여 c 가 해당 값을 얼마나 잘 예측 하는지 확인 )제이
  3. 찾아 같은 예상 개선 (EI) 기준으로 기준을 사용하여 위치를 더 샘플 '에서 채우기'만들기 '에 샘플링하여보다 정확한 F를 . 실제로는 이론 상으로는 생각보다 훨씬 더 잘 연구되었으며 EI 기준은 매우 잘 연구되었습니다. EI 기준은 욕심 많은 기준이 아니므로 잠재적 인 최적화 근처에서 정확도를 우선시하면서 모델 정확도를 전반적으로 향상시킬 수 있습니다.에프
  4. 모델이 충분히 정확하지 않은 경우 3 단계를 반복하십시오. 그렇지 않으면 선호하는 최적화 루틴을 사용하여 의 최적 값을 찾으십시오 . 이는 평가하기에 매우 저렴합니다. 미세 메쉬에서 기능을 평가하십시오).

일반적으로 이는 @barron이 제안한 것처럼 EGO (Efficient Global Optimization)가 의미하는 것입니다. 여러분의 응용 프로그램에 이것은 완벽하게 적합 해 보인다는 것을 강조하고 싶습니다. 상대적으로 적은 대한 평가를 기반으로 놀랍도록 정확한 모델을 얻은 다음 원하는 최적화 알고리즘을 사용할 수 있습니다. 흥미로운 점은 메쉬에서 c 를 평가 하고 플롯하여 일반적인 f 모양에 대한 통찰력을 얻을 수 있다는 것 입니다. 또 다른 흥미로운 점은 대부분의 대리 모델링 기법이 통계적 오류 추정치를 제공하여 불확실성 추정을 허용한다는 것입니다.에프에프

를 구성하는 방법 은 물론 공개적인 질문이지만 종종 Kriging 또는 소위 공간 매핑 모델이 사용됩니다.

물론 이것은 모두 약간의 코딩 작업이지만 많은 다른 사람들이 매우 훌륭한 구현을 수행했습니다. Matlab에서는 DACE 소프트웨어 도구 상자 DACE가 무료 라는 것을 알고 있습니다. TOMLAB은 Matlab 패키지를 제공 할 수도 있지만 비용이 많이 들지만 C ++에서도 작동하며 DACE보다 훨씬 많은 기능을 가지고 있다고 생각합니다. (참고 : 곧 출시 될 새로운 버전의 DACE 개발자 중 한 명이며 EGO에 대한 추가 지원을 제공 할 예정입니다.)

이 대략적인 개요가 도움이 되었기를 바랍니다. 더 명확하거나 누락 된 점이 있거나 질문에 대한 추가 자료를 원하는 경우 질문하십시오.


Fwiw, Google surrogate-model은 Ghent University에 Surrogate Modeling LabSurrogate Modeling , 2008 228p 0470770791을 통해 공학 설계 책을 불러옵니다. 매우 일반적인 접근 방식의 문제점은 곧 다양한 방식의 부엌 싱크대가 있다는 것입니다. 실제 테스트 기능 보다 .
데니스


3

원활한 기능을 위해서는 효율적인 글로벌 최적화 방법이 DIRECT보다 성능이 뛰어나고 훨씬 효율적이어야합니다. TOMLAB (사용하지 않은) 및 DAKOTA 에서 구현이 가능합니다. 내가 (내가 성공한)에서 사용할 수 있습니다.


1

함수가 부드럽기 때문에 뉴턴의 방법은 최소값을 찾는 데 가장 압도적으로 효율적인 방법입니다. 함수가 볼록하지 않기 때문에 Newton의 방법을 수렴하기 위해 일반적인 트릭을 적용해야합니다 (Levenberg-Marquardt 수정, 라인 검색 또는 세계화를위한 신뢰 영역). 함수의 파생물을 얻을 수 없으면 유한 차이를 통해 계산하거나 BFGS 업데이트를 사용하십시오. 문제에 지역 최소값이 두 개 이상 있다고 생각되면 무작위로 또는 무작위로 선택되지 않은 많은 지점에서 뉴턴의 방법을 시작하고 어디에서 수렴하는지 확인하십시오.


내 문제에는 실제로 지역 최소값이 있습니다. 시작점을 선택하는 방법은 무엇입니까?
Victor May 5

1
문제에 대해 아는 것이 없다면 통계 샘플링은 기본적으로 유일한 선택입니다.
Wolfgang Bangerth

@ 울프 강 : "통계 샘플링"에 접근하는 방법이 있습니까? 10, 100, ... 무작위 초기 추측을 시도해보십시오. "보다 엄격한"접근 방식이 있습니까? 비슷한 문제가 있기 때문에 묻습니다 ( scicomp.stackexchange.com/q/4708/1789 참조 )
André

그것은 당신이 기능에 대해 아는 것에 달려 있습니다. 함수에 대한 "일반 길이 척도"와 같은 것을 알고 있다면 극한의 극도가 얼마나 멀리 떨어져 있는지를 나타냅니다. 또한 시작해야 할 포인트 수와 서로 얼마나 멀리 떨어져 있어야하는지 알려줍니다.
Wolfgang Bangerth

0

평가는 비용이 많이 들기 때문에 sevaral 함수 평가를 병렬로 실행해야합니다.

코드를 살펴 보는 것이 좋습니다 . 뒤에 수학은 여기 에 설명되어 있습니다 .


1
이 코드와 기사는 귀하가 작성 했습니까? 그렇다면 대답에서 명시 적으로 그렇게 말할 수 있습니까? 또한 현재 제안 사항에 대한 설명을 제공하여 답변을 개선 할 수 있습니다.
nicoguaro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.