サロゲートモデル

サロゲートモデルは、興味のある結果を容易に測定または計算できない場合に使用される工学的手法で、代わりに結果の近似数理モデルが用いられる。ほとんどの工学設計問題では、設計目的や制約関数を設計変数の関数として評価するために実験やシミュレーションが必要。例えば、航空機の翼の最適な翼型形状を見つけるために、エンジニアは翼の周りの気流をさまざまな形状変数（長さ、曲率、材料など）に対してシミュレートする。しかし、多くの現実世界の問題では、単一のシミュレーションに数分、数時間、または数日かかることがある。その結果、設計最適化、設計空間探索、感度分析、および「What-if」分析などの日常的な作業は、数千または数百万回のシミュレーション評価を必要とするため、不可能になる。
この負担を軽減する一つの方法は、シミュレーションモデルの動作を可能な限り忠実に再現しながら、計算コストが低い近似モデル、すなわちサロゲートモデル、メタモデル、またはエミュレータを構築することである。サロゲートモデルは、データ駆動型のボトムアップアプローチを使用して構築される。シミュレーションコードの内部動作は既知である（または理解されている）と仮定されず、入力と出力の動作のみに依存する。限られた数の知的な選択によるデータポイントに対するシミュレータの応答をモデル化することでモデルが構築される。このアプローチは、行動モデリングまたはブラックボックスモデリングとしても知られているが、用語は必ずしも一貫していない。単一の設計変数しか関与しない場合、このプロセスは曲線フィッティングとして知られている。
エンジニアリング設計において実験やシミュレーションの代わりにサロゲートモデルを使用することはより一般的だが、サロゲートモデリングは、高コストな実験や関数評価が必要な他の多くの科学分野でも使用される可能性がある。

**ゴール**
サロゲートモデリングにおける科学的な課題は、可能な限り少ないシミュレーション評価を使用して、可能な限り正確なサロゲートを生成することである。このプロセスは、反復的に組み合わせることができる3つの主要なステップで構成される：- サンプル選択（逐次設計、最適実験設計（OED）、または能動学習とも呼ばれる）- サロゲートモデルの構築とモデルパラメータの最適化（つまり、バイアスと分散のトレードオフ）- サロゲートの精度の評価。
サロゲートの精度は、設計空間内のサンプル（高コストな実験やシミュレーション）の数と位置に依存する。さまざまな実験計画法（DOE）技術は、異なる誤差源、特にデータ内のノイズによる誤差や不適切なサロゲートモデルによる誤差に対応する。

**種類**
一般的なサロゲートモデリングのアプローチには以下のものがある：多項式応答曲面法、クリギング、より一般化されたベイズアプローチ、勾配強化クリギング（GEK）、動径基底関数、サポートベクターマシン、スペースマッピング、人工ニューラルネットワーク、ベイジアンネットワーク。その他の最近検討されている方法には、フーリエサロゲートモデリング  やランダムフォレストが含まれる。
一部の問題では、真の関数の性質が事前にわかっていないため、どのサロゲートモデルが最も正確であるかは明確ではない。さらに、与えられたサロゲートの精度を最も信頼性高く推定する方法についても合意が得られていない。他の多くの問題では、物理的特性が既知である。これらの場合、スペースマッピングベースのモデルなどの物理ベースのサロゲートが一般的に使用される。

**不変特性**
最近提案された比較ベースのサロゲートモデル（例えば、ランキングサポートベクターマシン）は、CMA-ESなどの進化アルゴリズムにおいて、サロゲート支援最適化手法の不変性特性の一部を保持することを可能にする：
# 関数の単調変換（スケーリング）に対する不変性
# 探索空間の直交変換（回転）に対する不変性

**応用**
サロゲートモデルの2つの異なる応用、すなわち設計最適化と設計空間近似（エミュレーションとも呼ばれる）の間には重要な区別がある。
サロゲートモデルベースの最適化では、利用可能な高コストな実験やシミュレーションの予算の一部を使用して初期サロゲートを構築する。残りの実験やシミュレーションは、サロゲートモデルが有望な性能を持つと予測する設計に対して実行される。このプロセスは通常、以下の探索/更新手順の形を取る。
# 初期サンプル選択（実行する実験やシミュレーション）
# サロゲートモデルの構築
# サロゲートモデルの探索（モデルは評価コストが低いため、例えば遺伝的アルゴリズムを使用して広範囲に探索できる）
# 探索によって見つかった新しい位置での実験やシミュレーションを実行し、サンプルに追加する
# 時間が尽きるか設計が「十分に良い」と判断されるまで、ステップ2から4を繰り返す
使用するサロゲートの種類と問題の複雑さによって、このプロセスは局所的最適解または大域的最適解に収束する可能性があるが、場合によっては全く収束しないこともある。
設計空間近似では、最適なパラメータベクトルを見つけることには関心がなく、むしろシステムの全体的な挙動に関心がある。ここでは、サロゲートは、設計空間全体で必要な限り基盤となるモデルを忠実に模倣するように調整される。そのようなサロゲートは、システムの全体的な挙動を理解するための有用で低コストな方法である。最適化は後処理ステップとして行われることもあるが、更新手順がないため（上記参照）、見つかった最適解を検証することはできない。

**サロゲートモデリングソフトウェア**
 Surrogate Modeling Toolbox（SMT: https://github.com/SMTorg/smt）は、サロゲートモデリング手法、サンプリング技術、およびベンチマーク関数のコレクションを含むPythonパッケージである。このパッケージは、使いやすく、追加のメソッドの実装を容易にするサロゲートモデルのライブラリを提供する。SMTは、既存のサロゲートモデリングライブラリとは異なり、勾配強化モデリングに使用されるトレーニング微分、予測微分、およびトレーニングデータに関する微分を含む、微分に重点を置いている。また、偏最小二乗法によるクリギングやエネルギー最小化スプライン補間など、他の場所では利用できない新しいサロゲートモデルも含まれている。- PythonライブラリのSAMBO Optimizationは、ツリーベースのモデルとガウス過程モデルが組み込まれた、任意のモデルでの逐次最適化をサポートする。 - Surrogates.jlはJuliaパッケージであり、ランダムフォレスト、動径基底関数法、クリギングなどのツールを提供する。

**出典**

**参考文献**
 Queipo, N.V., Haftka, R.T., Shyy, W., Goel, T., Vaidyanathan, R., Tucker, P.K. (2005), “ Surrogate-based analysis and optimization,” Progress in Aerospace Sciences, 41, 1–28.- D. Gorissen, I. Couckuyt, P. Demeester, T. Dhaene, K. Crombecq, (2010), “ A Surrogate Modeling and Adaptive Sampling Toolbox for Computer Based Design," Journal of Machine Learning Research, Vol. 11, pp. 2051−2055, July 2010.- T-Q. Pham, A. Kamusella, H. Neubert, “ Auto-Extraction of Modelica Code from Finite Element Analysis or Measurement Data," 8th International Modelica Conference, 20–22 March 2011 in Dresden.- Forrester, Alexander, Andras Sobester, and Andy Keane,  Engineering design via surrogate modelling: a practical guide, John Wiley & Sons, 2008.- Bouhlel, M. A. and Bartoli, N. and Otsmane, A. and Morlier, J. (2016) " Improving kriging surrogates of high-dimensional design models by Partial Least Squares dimension reduction", Structural and Multidisciplinary Optimization 53 (5), 935-952- Bouhlel, M. A. and Bartoli, N. and Otsmane, A. and Morlier, J. (2016) " An improved approach for estimating the hyperparameters of the kriging model for high-dimensional problems through the partial least squares method", Mathematical Problems in Engineering

**外部リンク**
  Matlab code for surrogate modelling-  Matlab SUrrogate MOdeling Toolbox – Matlab SUMO Toolbox-  Surrogate Modeling Toolbox -- Python