Main Content

헤세 행렬 출력값

fminunc 솔버 및 fmincon 솔버는 근사 헤세 행렬을 선택적 출력값으로 반환합니다.

[x,fval,exitflag,output,grad,hessian] = fminunc(fun,x0)
% or
[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)

이 항목에서는 반환된 헤세 행렬의 의미와 기대할 수 있는 정확도에 대해 설명합니다.

솔버가 입력 헤세 행렬 인수에 사용할 헤세 행렬 유형도 지정할 수 있습니다. fminunc기울기와 헤세 행렬 포함시키기 항목을 참조하십시오. fmincon입력값 헤세 행렬 항목을 참조하십시오.

fminunc 헤세 행렬

제약 조건이 없는 문제에 대한 헤세 행렬은 목적 함수 f의 2계 도함수로 구성된 행렬입니다.

Hessian Hij=2fxixj.

  • Quasi-Newton 알고리즘fminunc는 해에서 추정된 헤세 행렬을 반환합니다. fminunc는 유한 차분으로 추정값을 계산하기 때문에, 추정값이 대체로 정확합니다.

  • Trust-Region 알고리즘fminunc는 끝에서 두 번째 반복에서 헤세 행렬을 반환합니다.

    • 목적 함수에 헤세 행렬을 제공하고 HessianFcn 옵션을 'objective'로 설정할 경우 fminunc는 이 헤세 행렬을 반환합니다.

    • HessianMultiplyFcn 함수를 제공할 경우 fminuncHessianMultiplyFcn 함수에서 Hinfo 행렬을 반환합니다. 자세한 내용은 fminunc options 표의 trust-region 섹션에서 HessianMultiplyFcn를 참조하십시오.

    • 그렇지 않은 경우, fminunc는 기울기에 대한 희소 유한 차분 알고리즘에서 근삿값을 반환합니다.

    이 헤세 행렬은 끝에서 두 번째 반복에 대해 정확합니다. 하지만 끝에서 두 번째 반복이 최종점에 가깝지 않을 수 있습니다.

    trust-region 알고리즘은 효율성을 위해 끝에서 두 번째 반복에서 헤세 행렬을 반환합니다. fminunc는 내부적으로 헤세 행렬을 사용하여 그 다음 단계를 계산합니다. fminunc가 중지 조건에 이르면 다음 단계를 계산할 필요가 없으므로 헤세 행렬을 계산할 필요도 없습니다.

fmincon 헤세 행렬

제약 조건이 적용된 문제에 대한 헤세 행렬은 라그랑주 함수의 헤세 행렬입니다. 목적 함수 f, 비선형 부등식 제약 조건 벡터 c, 비선형 등식 제약 조건 벡터 ceq의 경우, 라그랑주 함수는 다음과 같습니다.

L=f+iλici+jλjceqj.

λi는 라그랑주 승수입니다. 1차 최적성 측정값라그랑주 승수 구조체 항목을 참조하십시오. 라그랑주 함수의 헤세 행렬은 다음과 같습니다.

H=2L=2f+iλi2ci+jλj2ceqj.

fmincon의 Trust Region Reflective 알고리즘, fmincon의 Active-Set 알고리즘, fmincon의 Interior Point 알고리즘에 설명되어 있듯이, fmincon에는 헤세 행렬을 위한 다양한 옵션과 함께 여러 가지 알고리즘이 있습니다.

  • active-set, sqp 또는 sqp-legacy 알고리즘fmincon은 끝에서 두 번째 반복에서 계산하는 헤세 행렬 근삿값을 반환합니다. fmincon은 반복 과정 중에 해에서 헤세 행렬의 준뉴턴 근삿값을 계산합니다. 일반적으로, 이 근삿값은 모든 성분에서 실제 헤세 행렬과 일치하지는 않으며, 특정 부분공간에서만 일치합니다. 따라서 fmincon에서 반환되는 헤세 행렬이 부정확할 수 있습니다. active-set 계산에 대한 자세한 내용은 SQP 구현 항목을 참조하십시오.

  • trust-region-reflective 알고리즘fmincon은 끝에서 두 번째 반복에서 계산하는 헤세 행렬을 반환합니다.

    • 목적 함수에 헤세 행렬을 제공하고 HessianFcn 옵션을 'objective'로 설정할 경우 fmincon는 이 헤세 행렬을 반환합니다.

    • HessianMultiplyFcn 함수를 제공할 경우 fminconHessianMultiplyFcn 함수에서 Hinfo 행렬을 반환합니다. 자세한 내용은 fmincon options에서 Trust-Region-Reflective 알고리즘을 참조하십시오.

    • 그렇지 않은 경우, fmincon은 기울기에 대한 희소 유한 차분 알고리즘에서 근삿값을 반환합니다.

    이 헤세 행렬은 끝에서 두 번째 반복에 대해 정확합니다. 하지만 끝에서 두 번째 반복이 최종점에 가깝지 않을 수 있습니다.

    trust-region-reflective 알고리즘은 효율성을 위해 끝에서 두 번째 반복에서 헤세 행렬을 반환합니다. fmincon은 내부적으로 헤세 행렬을 사용하여 그 다음 단계를 계산합니다. fmincon이 중지 조건에 이르면 다음 단계를 계산할 필요가 없으므로 헤세 행렬을 계산할 필요도 없습니다.

  • interior-point 알고리즘

    • HessianApproximation 옵션이 'lbfgs' 또는 'finite-difference'이거나 HessianMultiplyFcn 함수를 제공할 경우, fmincon은 헤세 행렬에 대해 []을 반환합니다.

    • HessianApproximation 옵션이 'bfgs'(디폴트 값)인 경우, fmincon은 최종점에서 헤세 행렬에 대한 준뉴턴 근삿값을 반환합니다. 이 헤세 행렬은 active-set 또는 sqp 알고리즘에서의 헤세 행렬과 마찬가지로 부정확할 수 있습니다.

    • HessianFcn 옵션이 함수 핸들인 경우 fmincon은 최종점에서 이 함수를 헤세 행렬로 반환합니다.

관련 항목