カオス数値モデルの回帰テスト


10

実際の物理システムを表す数値モデルがあり、それがカオスを示す場合(例:流体力学モデル、気候モデル)、モデルが期待どおりに動作していることをどのようにして知ることができますか?2つのモデル出力のセットを直接比較することはできません。初期条件の小さな変更でも、個々のシミュレーションの出力が劇的に変化するためです。モデルの出力を直接観測と比較することもできません。観測の初期条件を十分に詳細に知ることはできず、数値近似はいずれにせよシステム全体に伝播する小さな違いを引き起こすからです。

この質問の一部は、科学的コードの単体テストに関する David Ketchesonの質問に触発されました。私は、そのようなモデルの回帰テストをどのように実装できるかに特に興味があります。小さな初期条件の変化が大きな出力の変化につながる可能性がある場合(それでも、現実の適切な表現である場合があります)、パラメーターの変更や新しい数値ルーチンの実装による変化からこれらの変化をどのように分離できますか?

回答:


7

このような場合に比較できるのは、平均、高いモーメント、境界を横切る熱流束、その他の積分量など、ソリューションの統計です。Navier-Stokes方程式の乱流モデルについて論じている多くの論文の1つを見てください。たとえば、パワースペクトル、エンタルピー、エントロピー、エンストロフィ、およびこれまで聞いたことのない言葉のプロットが満載です。 。すべてはフローの積分量であり、他のシミュレーションや実験から計算された同じ積分量と比較されます。


あなたは良い模範紙を知っていますか?あなたの答えに良い追加になるでしょう。
naught101

私の頭から離れていません-私は乱流モデリングの人ではありません。ただし、トムヒューズによる最近のいくつかの論文から始めて、そこから作業します。
Wolfgang Bangerth

これは、動的システムのレジームを決定するために要約統計を使用する良い例だと思います:「ノイズの多い非線形生態動的システムの統計的推論」
Jugurtha

4

コードが根本的な問題の非カオス領域で実行できる場合、特に製造ソリューションの方法を使用できる非カオス領域で実行できる場合は、他の方法に興味がない場合でも、これらの領域で実行する回帰テストを作成する必要があります。 。これらのテストが失敗した場合、最新のコード変更で問題が発生したことがすぐにわかります。次に、より物理的に関連する問題に進むことができます。


気候モデル全体をこのように実行できるとは思いませんが、おそらく主要なコンポーネントは実行できると思います。スーパーユニットテストのようなもの。良いアイデア。
naught101 2012年

2
しかし、それがポイントです。回帰テストは、適切なコードカバレッジ(gcovなどはあなたの友人です)を備え、迅速に実行する必要があります。気候モデル全体を毎日の回帰テストとして実行している場合、多くの時間を浪費していると思います。
Bill Barth

私はより多くのことを考えていたと思います:最初にテストを実行し、次に(Wolfgangの回答で述べたように)一連のメトリックを格納します。次に、変更を加えてテストを再度実行し、同じメトリックを前回保存したメトリックと比較します。モデル(またはモデルのスーパーコンポーネント)を改善した場合、理論的には、メトリックはすべて改善するか、または少なくとも劇的に悪化することはありません(以前に過剰に適合していなかった場合などは、主観的に判断できます)。 。この意味でのテストははるかに定性的だと思いますが、それでもまだ非常に役立つ可能性があります。
naught101

この回答で説明したように、私はそう思います。
naught101

2

まず、質問のいくつかの異なる点に触れながら、最後の文に焦点を当てますが、私はそれがあなたが求めていることを十分に捉えていると感じています。数値ルーチンを変更する場合は、古いルーチンから新しいルーチンを検証するまで、初期条件またはシステムパラメータを変更しないでください。最も弱いレベルでは、これはソリューションのいくつかの時間平均値を比較し、それらが一致していると見なします(カオス内で一時的な動作が互いに発散した場合でも)。最も強力なレベルでは、2つのルーチンが完全な一時的な動作を再現することを期待します。これらのうちどれを採用するか、どちらを採用するかは、どのような質問をするか、およびソリューションから導き出す結論によって異なります。

モデルが「期待どおりに機能している」かどうかを知る限り、それはまったく別の問題です。これは、選択した数値ルーチンとは関係ありません。単純化した仮定からパラメーターの測定/計算まで、モデルを構築する方法は、すべての決定を問題の物理的性質に基づいて行う必要があり、できれば同様のケースで事前の作業を行う必要があります。ラボの設定で再現された単純なケースでモデルを検証できる場合がありますが、それでも簡単ではない場合があります。重要なシステムパラメータを1桁以内で決定できない場合、一時的なローカル動作で計算している細かい詳細を信頼する人はだれもいるとは期待できません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.