最適化アルゴリズムによって得られた結果を適切に解釈し、その品質を評価することは欠かせない要素です。ここでは、計算結果の分析における主要な側面について説明します。
7.1 収束基準
収束基準は必然的にルーチンごとに異なります。これは、場合によってはチェックすべきより多くの情報が利用可能であり(例えば、ヘッシアン行列が正定値かどうか)、また異なる問題カテゴリーに対して異なるチェックを行う必要があるためです(例えば、制約付き最小化では、試行解が実行可能かどうかを確認する必要があります)。それにもかかわらず、様々な基準の根本的な原則は同じです。非数学的な用語で表現すると、以下のようになります:
- 点列\(\{x^{(k)}\}\)は収束しているか?
- 関数値の列\(\{f^{(k)}\}\)は収束しているか?
- 解に対する必要十分条件は満たされているか?
点列が収束しているかどうかの判断は、必然的に推測的なものとなります。現在のルーチンで使用される基準は、2つの連続する反復間での相対的な変化が、ある規定された量よりも小さくなった場合に収束したと仮定するものです。基準(iii)が最も信頼性が高いのですが、必要な全ての情報が利用可能でない場合があるため、条件を完全にチェックできないことがしばしばあります。
7.2 結果のチェック
非線形最適化アルゴリズムによって得られた解の質については、手法が失敗しないという保証がないため、事前にほとんど指針を示すことができません。そのため、ルーチンが成功を報告した場合でも、常に計算された解をチェックする必要があります。ルーチンが成功を報告しない場合でも、しばしば「解」が見つかっていることがあります。この一見矛盾した状況の理由は、ルーチンが解の精度を評価する必要があるためです。この評価は厳密なプロセスではなく、結果として過度に悲観的になる可能性があります。どの「解」も一般に厳密解の近似に過ぎず、指定した精度が厳しすぎる可能性があります。
さらなる確認として、収束テストがほぼ満たされているか、または十分条件のいくつかがほぼ満たされているかをチェックすることができます。ルーチンが「成功」の要件が厳しすぎるために非ゼロのifail値を返したと考えられる場合、収束許容度を増やして再実行する価値があるかもしれません。
制約付き問題の場合、返された解が実行可能であるか、またはほぼ実行可能であるかをチェックしてください。そうでない場合、返された解は適切な解ではありません。
解への信頼度は、解への異なる初期近似でソルバーを再実行することで高めることができます。詳細については、Gill et al. (1981)のセクション8.3を参照してください。
7.3 進行状況のモニタリング
NAGの多くのソルバーには最小化プロセスの進行状況をモニタリングする機能があり、これらの利用をお勧めします。モニタリング情報は、満足のいく解が得られたかどうかの評価や、最小化問題の難しさ、ソルバーの対処能力の問題を示唆する上で非常に有用です。関数の挙動、推定された解、および一次導関数は、解の受容可能性や、正常終了しなかった場合の対処方法を決定する際に役立ちます。
7.4 最小二乗解の信頼区間
最小二乗問題の解の信頼性を評価するためには、信頼区間の計算が重要です。これは、推定されたパラメータの誤差範囲を把握し、解の精度を評価するためです。非線形最小二乗問題のパラメータ推定値が得られた場合、パラメータやフィッティング関数の分散を推定する必要があることがあります。これらの分散は、解における目的関数\(f(x)\)のヘッシアンを使って計算できます。
多くの最小二乗問題では、解におけるヘッシアンは\(G = 2J^T J\)で適切に近似されます(セクション5.3参照)。ヤコビアン\(J\)またはその因子分解は、全ての包括的な最小二乗ソルバーによって返されます。また、e04ycf 推定回帰係数の分散共分散行列の要素値の推定を使用して、\(G = 2J^T J\)が適切な近似である場合、ほとんどの非線形最小二乗ソルバーの使用後にパラメータの分散を推定できます。
\(H\)を\(G\)の逆行列とし、\(S\)を解\(\bar{x}\)で計算された二乗和とします。\(i\)番目のパラメータ\(x_i\)の分散の不偏推定量は
\(\text{var}\,\bar{x}_i = \frac{2S}{m-n} H_{ii}\)
であり、\(\bar{x}_i\)と\(\bar{x}_j\)の共分散の不偏推定量は
\(\text{covar}(\bar{x}_i, \bar{x}_j) = \frac{2S}{m-n} H_{ij}\)
です。
\(x^*\)が真の解である場合、\(\bar{x}\)に対する\(100(1-\beta)\%\)信頼区間は
\(\bar{x}_i - \sqrt{\text{var}\,\bar{x}_i} \cdot t(1-\beta/2, m-n) < x_i^* < \bar{x}_i + \sqrt{\text{var}\,\bar{x}_i} \cdot t(1-\beta/2, m-n), \quad i = 1, 2, \ldots, n\)
ここで、\(t(1-\beta/2, m-n)\)は自由度\(m-n\)のt分布の\(100(1-\beta)/2\)パーセント点です。
大多数の問題では、残差\(r_i\)(\(i = 1, 2, \ldots, m\))には、独立変数\(z\)の\(m\)個の異なる値に対して計算されたモデル関数\(\phi(z, x)\)の値と、これらの点での対応する観測値との差が含まれています。最小化プロセスは、フィッティング関数\(\phi(z, x)\)のパラメータまたは定数\(x\)を決定します。独立変数\(z\)の任意の値\(\bar{z}\)に対して、\(\phi\)の分散の不偏推定量は
\(\text{var}\,\phi = \frac{2S}{m-n} \sum_{i=1}^n \sum_{j=1}^n [\frac{\partial \phi}{\partial x_i}]_{\bar{z}} [\frac{\partial \phi}{\partial x_j}]_{\bar{z}} H_{ij}\)
です。
点\(\bar{z}\)における\(f\)の\(100(1-\beta)\%\)信頼区間は
\(\phi(\bar{z}, \bar{x}) - \sqrt{\text{var}\,\phi} \cdot t(\beta/2, m-n) < \phi(\bar{z}, x^*) < \phi(\bar{z}, \bar{x}) + \sqrt{\text{var}\,\phi} \cdot t(\beta/2, m-n)\)
です。
最小二乗解の分析についての詳細は、Bard (1974)およびWolberg (1967)を参照してください。