바울은 더 많은 정보가 없으면 가정없이 조언을하기가 어렵다고 말합니다.
10-20 개의 변수와 값 비싼 함수 평가를 사용하면 파생이없는 최적화 알고리즘을 권장하는 경향이 있습니다. Paul의 조언에 강력하게 동의하지 않을 것입니다. 특별한 방법을 사용하지 않는 한 일반적으로 기계 정밀도 그라디언트가 필요합니다 (예 : 기계 학습의 확률 적 그라디언트 하강은 합리적인 형태로 목표의 형태를 이용합니다) 구배 추정치).
각 준-뉴턴 단계는 다음과 같은 형식입니다.
H~( x케이) d케이= − ∇ f( x케이) ,
여기서 는 Hessian 행렬의 근사값이고, d k 는 탐색 방향이며, x k 는 현재 반복에서 결정 변수의 값이고, f 는 목적 함수이며, ∇ f 는 목표의 기울기입니다. 결정 변수는 x k + 1 = x k + α k d k 와 같이 업데이트됩니다 . 여기서 α kH~디케이엑스케이에프∇ f엑스k + 1= x케이+ α케이디케이α케이(라인 검색과 같은) 어떤 방식으로 결정된 단계 크기입니다. 정확한 기울기를 통해 Hessian의 유한 차분 근사값과 같은 것을 사용하면 잘못된 조건으로 인해 문제가 발생할 수 있지만 특정 방식으로 Hessian 근사값을 제거하면 반복이 수렴됩니다. 일반적으로 Hessian은 기울기를 사용하여 근사화됩니다 (예 : Hessian에 순위 1 업데이트가있는 BFGS 유형 방법).
유한 한 차이를 통해 Hessian과 기울기를 근사화하는 것은 여러 가지 이유로 나쁜 생각입니다.
- 그래디언트에서 오류가 발생하므로 적용하는 유사 뉴턴 방법은 노이즈 함수의 근을 찾는 것과 유사합니다
- 엔엔
- 그래디언트에 오류가 있으면 Hessian에서 더 많은 오류가 발생합니다. 이는 선형 시스템의 컨디셔닝 측면에서 큰 문제입니다.
- ... 비용이 듭니다.엔2
따라서 quasi-Newton을 한 번 잘못 반복하려면 평가 당 30 분에 최대 420 개의 함수 평가와 같은 작업을 수행하게됩니다. 즉, 각 반복마다 시간이 걸리거나 기능 평가를 위해 큰 클러스터가 필요합니다. 실제 선형 해는 20 x 20 행렬 (최대!)이되므로이를 평행화할 이유가 없습니다. 예를 들어 인접 문제를 해결하여 그라디언트 정보를 얻을 수 있다면 더 가치가있을 수 있습니다.이 경우 Nocedal & Wright와 같은 책을 보는 것이 좋습니다.
병렬로 많은 함수 평가를 수행하려는 경우, 유사-뉴턴 접근 방식을 고려하기 전에 대리 모델링 접근 방식을 보거나 세트 검색 방법을 생성해야합니다. 고전적인 리뷰 논문은 Rios와 Sahinidis 가 2012 년에 발표 한 파생물이없는 방법에 관한 기사로, 실제로는 훌륭하고 광범위하게 비교됩니다. 2009 년 More and Wild 의 벤치마킹 기사 ; Conn, Scheinberg 및 Vicente의 2009 교과서 "도함이없는 최적화 소개"; 2003 년부터 Kolda, Lewis 및 Torczon의 세트 검색 방법 생성에 대한 검토 기사 .
위에서 링크 된 바와 같이 DAKOTA 소프트웨어 패키지 는 이러한 메소드 중 일부 를 구현하며 DIRECT를 구현하는 NLOPT 및 일부 Powell 대리 모델링 메소드도 구현합니다. MCS를 살펴볼 수도 있습니다 . MATLAB으로 작성되었지만 MATLAB 구현을 선택한 언어로 이식 할 수 있습니다. DAKOTA는 본질적으로 고가의 시뮬레이션을 실행하고 최적화 알고리즘을위한 데이터를 수집하는 데 사용할 수있는 스크립트 모음이며, NLOPT에는 많은 언어로 인터페이스가 있으므로 소프트웨어 언어 선택은 소프트웨어 패키지를 사용하는 데 큰 문제가되지 않습니다. 그러나 DAKOTA는 배우는 데 시간이 걸리고 엄청나게 많은 문서가 있습니다.