最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

ヘッシアン出力

返されるヘッシアン

ソルバー fmincon および fminunc は、オプションの出力として、次のような近似ヘッシアンを返します。

[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)

本節では、返されるヘッシアンの意味と期待できる精度について説明します。

ソルバーが入力引数として使用するヘッシアンの種類を指定することもできます。fmincon については、入力としてのヘッシアンを参照してください。fminunc については、勾配とヘッシアンを含めるを参照してください。

fminunc ヘッシアン

制約のない問題のヘッシアンは、目的関数 f の 2 次導関数の行列です。

Hessian Hij=2fxixj.

  • 準ニュートン アルゴリズム - fminunc は解において推定ヘッセ行列を返します。fminunc は有限差分法によって推定値を計算するため、その推定値は概して正確です。

  • 信頼領域アルゴリズム - fminunc は最後から 2 番目の反復においてヘッセ行列を返します。

    • 目的関数にヘッシアンを提供し、HessianFcn オプションを 'objective' に設定した場合、fminunc はこのヘッシアンを返します。

    • HessianMultiplyFcn 関数を提供した場合は、fminuncHessianMultiplyFcn 関数から Hinfo 行列を返します。詳細は、fminuncoptions の表内、trust-region の節にある HessianMultiplyFcn を参照してください。

    • 上記以外の場合では、fminunc は、勾配に関してスパース有限差分法アルゴリズムから近似値を返します。

    このヘッシアンは最後から 2 つ目の反復に対して正確です。ただし、最後から 2 つ目の反復は最終点に近くないかもしれません。

    trust-region アルゴリズムが最後から 2 つ目の点でこのヘッシアンを返すのは効率の理由によります。fminunc はこのヘッシアンを内部的に使用して次のステップを計算します。fminunc が停止状態に達すると次のステップを計算する必要がないので、このヘッシアンを計算しません。

fmincon ヘッシアン

制約のある問題のヘッシアンは、ラグランジュ関数のヘッシアンです。目的関数 f、非線形不等式制約ベクトル c、および非線形等式制約ベクトル ceq の場合、ラグランジュ関数は次のようになります。

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

λi はラグランジュ乗数です。1 次の最適性の尺度およびラグランジュ乗数構造体を参照してください。ラグランジュ関数のヘッシアンは以下のようになります。

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

fmincon は 4 つのアルゴリズムをもっており、fmincon の信頼領域 Reflective 法アルゴリズムfmincon アクティブ セット アルゴリズム、およびfmincon の内点法アルゴリズムで説明しているようにヘッシアンに関していくつかのオプションがあります。fmincon は、ヘッシアンに対して以下を返します。

  • "active-set または sqp アルゴリズム" - fmincon は最後から 2 番目の反復において計算したヘッセ近似を返します。fmincon はその反復の過程において、解におけるヘッセ行列の準ニュートン近似を計算します。この近似は、一般的にすべての成分の真のヘッシアンには一致しませんが、ある特定の部分空間では一致します。したがって、fmincon が返すヘッシアンは不正確である可能性があります。active-set 計算の詳細は、SQP 法の実装を参照してください。

  • trust-region-reflectiveアルゴリズム - fmincon は最後から 2 つ目の反復において計算したヘッシアンを返します。

    • 目的関数にヘッシアンを提供し、HessianFcn オプションを 'objective' に設定した場合、fmincon はこのヘッシアンを返します。

    • HessianMultiplyFcn 関数を提供した場合は、fminconHessianMultiplyFcn 関数から Hinfo 行列を返します。詳細は、fminconoptions、「信頼領域 Reflective 法アルゴリズム」を参照してください。

    • 上記以外の場合では、fmincon は、勾配に関してスパース有限差分法アルゴリズムから近似値を返します。

    このヘッシアンは最後から 2 つ目の反復に対して正確です。ただし、最後から 2 つ目の反復は最終点に近くないかもしれません。

    trust-region-reflective アルゴリズムが最後から 2 つ目の点でこのヘッシアンを返すのは効率の理由によります。fmincon はこのヘッシアンを内部的に使用して次のステップを計算します。fmincon が停止状態に達すると次のステップを計算する必要がないので、このヘッシアンを計算しません。

  • interior-point アルゴリズム

    • HessianApproximation オプションが 'lbfgs' または 'finite-difference' である場合、またはヘッセ乗算関数 (HessianMultiplyFcn) を提供した場合は、fmincon はヘッシアンに対して [] を返します。

    • HessianApproximation オプションが 'bfgs' (既定の設定) の場合、fmincon は最終点においてヘッシアンに対して準ニュートン近似値を返します。active-set または sqp アルゴリズムが返すヘッシアンの場合と同様に、このヘッシアンは不正確である場合があります。

    • HessianFcn オプションが関数ハンドルである場合、fmincon は最終点において、この関数をヘッシアンとして返します。

関連するトピック