이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
최적화 옵션 설정하기
옵션을 설정하는 방법
optimset
함수로 options
구조체를 만들어 최적화 파라미터를 지정할 수 있습니다. 그런 다음 options
를 최적화 함수에 대한 입력값으로 전달할 수 있습니다. 예를 들어, 다음 구문을 사용하여 fminbnd
를 호출하거나
x = fminbnd(fun,x1,x2,options)
다음 구문을 사용하여 fminsearch
를 호출할 수 있습니다.
x = fminsearch(fun,x0,options)
그리고, Display
옵션을 'iter'
로 설정하여 매 반복 시 알고리즘의 출력값이 표시되도록 할 수 있습니다.
options = optimset('Display','iter');
옵션 표
옵션 | 설명 | 솔버 |
---|---|---|
| 화면에 중간 단계를 표시할지 여부를 지정하는 플래그입니다.
| fminbnd , fminsearch , fzero , lsqnonneg |
| 목적 함수 값이 유효한지 여부를 확인합니다.
| fminbnd , fminsearch , fzero |
| 허용되는 최대 함수 실행 횟수입니다. 디폴트 값은 | fminbnd , fminsearch |
| 허용되는 최대 반복 횟수입니다. 디폴트 값은 | fminbnd , fminsearch |
| 솔버의 반복에 대한 정보를 표시합니다. 디폴트 값은 | fminbnd , fminsearch , fzero |
| 솔버의 반복에 대한 정보를 플로팅합니다. 디폴트 값은 | fminbnd , fminsearch , fzero |
| 함수 값에 대한 중지 허용오차입니다. 디폴트 값은 | fminsearch |
| x에 대한 중지 허용오차입니다. 디폴트 값은 | fminbnd , fminsearch , fzero , lsqnonneg |
허용오차와 중지 조건
최적화에서의 반복 횟수는 솔버의 중지 조건에 따라 달라집니다. 이러한 조건에는 사용자가 설정할 수 있는 여러 허용오차가 포함됩니다. 일반적으로, 허용오차는 이 값을 넘는 경우 솔버의 반복이 중지되는 임계값입니다.
팁
보통, TolFun
과 TolX
허용오차는 eps
보다 매우 높게, 그리고 1e-14
보다 대체적으로 높게 설정합니다. 허용오차를 작게 설정하면 정확한 결과를 얻지 못할 수도 있습니다. 대신, 솔버가 수렴된 때를 인식하지 못하고 무의미한 반복을 계속할 수 있습니다. 허용오차 값이 eps
보다 작으면 사실상 중지 조건이 비활성화됩니다. TolX
의 디폴트 값으로 eps
를 사용하는 fzero
에는 이 팁이 적용되지 않습니다.
TolX
는 스텝 크기, 즉 (xi – xi+1)의 노름의 하한을 의미합니다. 솔버가TolX
보다 작은 스텝을 수행하려고 하면 반복이 중지됩니다. 솔버는 일반적으로TolX
를 상대적 한도로 사용합니다. 즉, |(xi – xi+1)|이TolX
*(1 + |xi|) 또는 유사한 상대적 측정값보다 작을 때 반복이 중지됩니다.TolFun
은 스텝 간 목적 함수 값의 변위의 하한입니다. |f(xi) – f(xi+1)| <TolFun
이면 반복이 중지됩니다. 솔버는 일반적으로TolFun
를 상대적 한도로 사용합니다. 즉, |f(xi) – f(xi+1)|이TolFun
(1 + |f(xi)|) 또는 유사한 상대적 측정값보다 작을 때 반복이 중지됩니다.MaxIter
는 솔버 반복 횟수의 한도입니다.MaxFunEvals
는 함수 실행 횟수의 한도입니다.
참고
다른 솔버와 달리, fminsearch
는 TolFun
과 TolX
가 모두 충족되는 경우 중지됩니다.
output 구조체
output
구조체에는 함수 실행 횟수, 반복 횟수, 그리고 알고리즘이 포함됩니다. 이 구조체는 다음과 같이 fminbnd
, fminsearch
, fzero
중 하나에 네 번째 출력 인수를 제공할 때 나타납니다.
[x,fval,exitflag,output] = fminbnd(@humps,0.3,1);
각 솔버의 output
구조체에 대한 자세한 내용은 함수 도움말 페이지에 나와 있습니다.
output
구조체는 optimset
에서 선택하는 옵션이 아닙니다. fminbnd
, fminsearch
, fzero
에서 사용할 수 있는 출력값 선택 사항입니다.