(57)【要約】 【課題】入力パラメータの次元数が多い場合でも、簡易かつ迅速に最適な入力パラメータを設定する。【解決手段】最適化装置は、所定の次元数の入力パラメータに基づいて実験又はシミュレーションを行った結果を示す出力データを取得する出力データ取得部と、入力パラメータと、対応する出力データとを組にして記憶する入出力データ記憶部と、出力データの評価値を算出する評価値算出部と、入力パラメータの次元数を変更した変換パラメータを生成する入力パラメータ変換部と、変換パラメータと対応する評価値との組に基づいて、次の入力パラメータを決定する次入力パラメータ決定部と、所定の条件を満たすまで、出力データ取得部、入出力データ記憶部、評価値算出部、入力パラメータ変換部、及び次入力パラメータ決定部の処理を繰り返す反復判定部と、を備える。【選択図】図１
2020027370.tif 000002
【特許請求の範囲】
【請求項１】
所定の次元数の入力パラメータに基づいて実験又はシミュレーションを行った結果を示す出力データを取得する出力データ取得部と、
前記入力パラメータと、対応する前記出力データとを組にして記憶する入出力データ記憶部と、
前記出力データの評価値を算出する評価値算出部と、
前記入力パラメータの次元数を変更した変換パラメータを生成する入力パラメータ変換部と、
前記変換パラメータと対応する前記評価値との組に基づいて、次の入力パラメータを決定する次入力パラメータ決定部と、
所定の条件を満たすまで、前記出力データ取得部、前記入出力データ記憶部、前記評価値算出部、前記入力パラメータ変換部、及び前記次入力パラメータ決定部の処理を繰り返す反復判定部と、を備える、最適化装置。
【請求項２】
前記入力パラメータ変換部は、前記入力パラメータの次元数を減らした前記変換パラメータを生成する、請求項１に記載の最適化装置。
【請求項３】
前記所定の条件を満たしたときの実験又はシミュレーションで利用した入力パラメータを、最適な入力パラメータとして出力する最適入力パラメータ出力部を備える、請求項１に記載の最適化装置。
【請求項４】
前記入力パラメータ変換部は、前記出力データ取得部が取得する出力データのうち、一部の出力データを予測するための所定の関数に前記入力パラメータを代入して得られた前記関数の出力データを前記変換パラメータとする、請求項１乃至３のいずれか一項に記載の最適化装置。
【請求項５】
前記次入力パラメータ決定部は、
前記変換パラメータから獲得関数を算出する獲得関数算出部と、
前記獲得関数が最大になるように前記次の入力パラメータを決定する獲得関数最大化部と、
を有する請求項１乃至４のいずれか一項に記載の最適化装置。
【請求項６】
前記次入力パラメータ決定部は、
前記変換パラメータと対応する前記評価値の平均値との関係式、及び前記変換パラメータと対応する前記評価値の分散との関係式に基づいて獲得関数を算出する獲得関数算出部と、
前記獲得関数が最大になるように前記次の入力パラメータを決定する獲得関数最大化部と、を有する請求項１乃至４のいずれか一項に記載の最適化装置。
【請求項７】
前記変換パラメータと前記評価値との対応関係を可視化する可視化部を備える、請求項１乃至６のいずれか一項に記載の最適化装置。
【請求項８】
前記可視化部は、前記変換パラメータの各数値ごとに、対応する前記評価値をプロットしたプロット図を生成する、請求項７に記載の最適化装置。
【請求項９】
前記可視化部は、前記変換パラメータと前記評価値との対応関係を表す関係式を図示する、請求項７に記載の最適化装置。
【請求項１０】
前記評価値算出部は、
理想の実験結果又はシミュレーション結果を含む理想データを記憶する理想出力記憶部と、
前記出力データと前記理想データとの誤差を前記評価値として算出する誤差算出部と、を有する、請求項１乃至９のいずれか一項に記載の最適化装置。
【請求項１１】
前記評価値算出部は、
前記出力データが欠損しているか否かを判定する欠損判定部と、
ある入力パラメータに対応する出力データが欠損していると判定された場合には、出力データが欠損していない他の入力パラメータに対応する評価値に基づいて、前記ある入力パラメータに対応する評価値を置換する評価値置換部と、を有する、請求項１乃至１０のいずれか一項に記載の最適化装置。
【請求項１２】
前記評価値置換部は、前記ある入力パラメータに対応する出力データが欠損していると判定された場合には、最大化したい評価値を前記他の入力パラメータの評価値の最小値に置換するか、又は最小化したい評価値を前記他の入力パラメータの評価値の最大値に置換する、請求項１１に記載の最適化装置。
【請求項１３】
入力パラメータに基づいてシミュレーションを実行して、シミュレーション結果を示す出力データを出力するシミュレータと、
前記入力パラメータを最適化する最適化装置と、を備えるシミュレーションシステムであって、
前記最適化装置は、
所定の次元数の入力パラメータに基づいて前記シミュレータにてシミュレーションを行った結果を示す出力データを取得する出力データ取得部と、
前記入力パラメータと、対応する前記出力データとを組にして記憶する入出力データ記憶部と、
前記出力データの評価値を算出する評価値算出部と、
前記入力パラメータの次元数を変更した変換パラメータを生成する入力パラメータ変換部と、
前記変換パラメータと対応する前記評価値との組に基づいて、次の入力パラメータを決定する次入力パラメータ決定部と、
所定の条件を満たすまで、前記出力データ取得部、前記入出力データ記憶部、前記評価値算出部、前記入力パラメータ変換部、及び前記次入力パラメータ決定部の処理を繰り返す反復判定部と、を備える、シミュレーションシステム。
【請求項１４】
コンピュータは、
所定の次元数の入力パラメータに基づいて実験又はシミュレーションを行った結果を示す出力データを取得するステップと、
前記入力パラメータと、対応する前記出力データとを組にして記憶するステップと、
前記出力データの評価値を算出するステップと、
前記入力パラメータの次元数を変更した変換パラメータを生成する入力パラメータ変換部と、
前記変換パラメータと対応する前記評価値との組に基づいて、次の入力パラメータを決定するステップと、を備え、
所定の条件を満たすまで、前記出力データを取得するステップと、前記記憶するステップと、前記評価値を算出するステップと、前記変換パラメータを生成するステップと、前記次の入力パラメータを決定するステップと、を繰り返す、最適化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、最適化装置、シミュレーションシステム及び最適化方法に関する。
【背景技術】
【０００２】
シミュレータが種々の目的で利用されている。複雑な事象の動作をシミュレータで模擬的に実行させるには、数多くの入力パラメータをシミュレータに入力する必要がある。入力パラメータの値を変えると、シミュレーション結果も変わるため、現実の事象の動作に見合った最適な入力パラメータを検索する手法が提案されている。
【０００３】
しかしながら、この種の従来の手法では、入力パラメータの数(次元数とも呼ぶ)が少ない場合には、公知の最適化アルゴリズムで最適な入力パラメータを設定できるものの、入力パラメータの数が多くなると、現実的な時間内に最適な入力パラメータを設定できないおそれがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−７３３６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、入力パラメータの次元数が多い場合でも、簡易かつ迅速に最適な入力パラメータを設定できる最適化装置、シミュレーションシステム及び最適化方法を提供するものである。
【課題を解決するための手段】
【０００６】
本実施形態によれば、所定の次元数の入力パラメータに基づいて実験又はシミュレーションを行った結果を示す出力データを取得する出力データ取得部と、
前記入力パラメータと、対応する前記出力データとを組にして記憶する入出力データ記憶部と、
前記出力データの評価値を算出する評価値算出部と、
前記入力パラメータの次元数を変更した変換パラメータを生成する入力パラメータ変換部と、
前記変換パラメータと対応する前記評価値との組に基づいて、次の入力パラメータを決定する次入力パラメータ決定部と、
所定の条件を満たすまで、前記出力データ取得部、前記入出力データ記憶部、前記評価値算出部、前記入力パラメータ変換部、及び前記次入力パラメータ決定部の処理を繰り返す反復判定部と、を備える、最適化装置が提供される。
【図面の簡単な説明】
【０００７】
【図１】一実施形態による最適化装置を備えたシミュレーションシステムの概略構成を示すブロック図。
【図２】(ａ)は入力パラメータの一例を示す図、(ｂ)は出力データの一例を示す図。
【図３】入出力データ記憶部に記憶されるデータの一例を示す図。
【図４】入力パラメータと対応する変換パラメータとを組にして同一行に並べた一例を示す図。
【図５】シミュレーションシステムの処理動作の一例を示すフローチャート。
【図６】第２の実施形態による最適化装置の概略構成を示すブロック図。
【図７】変換項目入力部が入力した変換項目の一例を示す図。
【図８】第４の実施形態による最適化装置の概略構成を示すブロック図。
【図９】変換パラメータ可視化部による可視化の第１例を示す図。
【図１０】変換パラメータ可視化部による可視化の第２例を示す図。
【図１１】第５の実施形態による最適化装置を備えたシミュレーションシステム２のブロック図。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、最適化装置及びシミュレーションシステム内の特徴的な構成および動作を主に説明するが、最適化装置及びシミュレーションシステムには以下の説明で省略した構成および動作が存在しうる。
【０００９】
図１は一実施形態による最適化装置１を備えたシミュレーションシステム２の概略構成を示すブロック図である。図１のシミュレーションシステム２は、最適化装置１とシミュレータ３とを備えている。シミュレータ３は、入力パラメータに基づいてシミュレーションを実行して、シミュレーション結果を示す出力データを出力する。最適化装置１は、シミュレータ３に入力（設定）する入力パラメータを最適化する。
【００１０】
図１のシミュレーションシステム２は、１台又は複数台のコンピュータで構成することができる。この場合、コンピュータは、最適化装置１の処理動作を行うプログラムと、シミュレータ３の処理動作を行うプログラムとを実行する。あるいは、最適化装置１とシミュレータ３の少なくとも一部の処理動作を専用のハードウェア(例えば、信号処理プロセッサ等の半導体装置など)で実行してもよい。
【００１１】
なお、図１の最適化装置１は、必ずしもシミュレータ３に接続する必要はない。例えば、シミュレータ３の代わりに、各種の実験を行う実験装置とともに図１の最適化装置１を用いてもよい。すなわち、図１の最適化装置１は、シミュレーションシステム２に内蔵されるとは限らない。
【００１２】
図１の最適化装置１は、出力データ取得部４と、入出力データ記憶部５と、評価値算出部６と、入力パラメータ変換部７と、次入力パラメータ決定部８と、反復判定部９と、変換次元数入力部１０とを有する。
【００１３】
出力データ取得部４は、所定の次元数の入力パラメータに基づいて、実験又はシミュレーションを行った結果を示す出力データを取得する。本明細書では、実験で用いられる、あるいはシミュレータ３に入力される、複数の入力パラメータがあることを前提としており、入力パラメータの数（項目数）を次元数と呼ぶ。出力データ取得部４は、シミュレータ３にてシミュレーションを行った結果を示す出力データを取得するだけでなく、実験結果を示す出力データを取得してもよい。以下では、シミュレータ３からの出力データを取得して、シミュレータ３への次入力パラメータを決定する処理について主に説明するが、シミュレータ３の代わりに実験装置からの出力データを取得して、実験装置への次入力パラメータを決定することも可能である。
【００１４】
入出力データ記憶部５は、入力パラメータと対応する出力データとを組にして記憶する。図２(ａ)は入力パラメータの一例を示す図である。図２(ａ)の例では、入力パラメータは５０個の項目ｘ１、ｘ２、…、ｘ５０からなり、各項目はそれぞれ個別の値を有する。各項目の値は、連続値、離散値、又はカテゴリ変数でもよい。入力パラメータの各項目は、温度や圧力等の物理的なパラメータでもよいし、処理時間や処理条件などの実験に関するパラメータでもよい。入力パラメータの項目数や項目の内容は任意である。
【００１５】
図２(ｂ)は出力データの一例を示す図である。図２(ｂ)の例では、出力データが１０個の項目ｙ１、ｙ２、…、ｙ１０からなり、各項目はそれぞれ個別の値を有する。出力データは、入力パラメータを用いて実験を行った結果、又は入力パラメータをシミュレータ３に入力してシミュレーションを行った結果を示している。より具体的には、出力データは、実験に用いた各種センサの検出データでもよいし、実験結果やシミュレーション結果の物理的な特性値や測定値でもよい。
【００１６】
図３は入出力データ記憶部５に記憶されるデータの一例を示す図である。図３の例では、図２(ａ)の入力パラメータと、対応する図２(ｂ)の出力データとを組にして、入出力データ記憶部５に記憶している。
【００１７】
評価値算出部６は、出力データの評価値を算出する。評価値は、入力パラメータに対して１次元の値である。評価値は、実験又はシミュレーションの結果として得られた出力データのうちの一つでもよいし、実験又はシミュレーションの結果として得られた複数の出力データを合成して演算した値でもよい。例えば、実験又はシミュレーションの結果として得られた出力データと、理想的な出力データとの差分を評価値としてもよいし、実験又はシミュレーションの結果として得られた複数の出力データの和や積を評価値としてもよい。
【００１８】
入力パラメータ変換部７は、入力パラメータの次元数を変更した変換パラメータを生成する。次元数の変更とは、次元数を減らすことであってもよい。例えば、入力パラメータ変換部７は、ｘ＝(ｘ１、ｘ２、…、ｘ５０)の５０次元の入力パラメータｘを、ｚ＝(ｚ１、ｚ２、…、ｚ５)の５次元の変換パラメータｚに変換する。変換パラメータｚの次元数は、変換次元数入力部１０にて入力された次元数によって決定される。変換次元数入力部１０は、最適化装置１の処理中に、変換次元数を変更してもよい。あるいは、変換次元数入力部１０は、最適装置の処理中には、いったん入力した変換次元数を変更できないようにしてもよい。変換次元数の最適化が進むにつれて徐々に変換次元数を大きくしていくように、予め計画してもよい。
【００１９】
入力パラメータから変換パラメータへの変換処理は、以下の(１)式の関数φ(ｘ)で表される。
ｚ＝φ(ｘ)    …(１)
【００２０】
関数φ(ｘ)は、例えば主成分分析(ＰＣＡ：Principal Component Analysis)を行って求めてもよい。あるいは、ランダム行列Ａを用いて、ｚ＝Ａｘにて変換パラメータを計算してもよい。あるいは、多次元尺度構成法や自己組織化マップを用いて入力パラメータを変換パラメータに変換してもよい。あるいは、上述した複数の手法を任意に組み合わせて、入力パラメータを変換パラメータに変換してもよい。
【００２１】
図４は入力パラメータと対応する変換パラメータとを組にして同一行に並べた一例を示す図である。図４では、５０次元の入力パラメータｘ＝(ｘ１、ｘ２、…、ｘ５０)を、５次元の変換パラメータｚ＝(ｚ１、ｚ２、…、ｚ５)に変換する例を示している。図４の各データは、入出力データ記憶部５、あるいは入出力データ記憶部５とは別個に設けられる不図示の記憶部に記憶してもよい。
【００２２】
次入力パラメータ決定部８は、上述した変換パラメータと対応する評価値との組に基づいて、実験で用いられる又はシミュレータ３に入力される次の入力パラメータを決定する。
【００２３】
例えば、変換パラメータと対応する評価値との組に基づいて、ブラックボックス最適化手法を用いて、次の変換パラメータを決定してもよい。採用する最適化手法は、遺伝的アルゴリズムでもよいし、進化戦略や共分散行列適応進化戦略(ＣＭＡ−ＥＳ：Covariance Matrix Adaptation Evolution Strategy)でもよい。また、ベイズ最適化を用いて、次の変換パラメータを決定してもよい。
【００２４】
その後、変換の逆関数φ-1(ｚ)を用いて、次の変換パラメータｚから、次の入力パラメータｘ＝φ-1(ｚ)を計算する。入力パラメータから変換パラメータへの変換φ(ｘ)では、次元数を小さくしているため、変換の逆関数φ-1(ｚ)では、次元数を小さくした分の自由度がある。これに関しては、残りの自由度はランダムに決定してもよい。あるいは、現時点の評価値が最も大きい(又は小さい)入力パラメータとの距離が最小になるように、残りの自由度を決定してもよい。決定した次の入力パラメータは、ディスプレイに表示してもよいし、通信機器を用いて実験装置あるいはシミュレータ３に直接出力してもよい。
【００２５】
反復判定部９は、所定の条件を満たすまで、出力データ取得部４、入出力データ記憶部５、評価値算出部６、入力パラメータ変換部７、及び次入力パラメータ決定部８の処理を繰り返す。所定の条件を満たすとは、例えば、実験又はシミュレーションの回数が閾値を超えた場合でもよいし、実験又はシミュレーションの開始からの経過時間が閾値を超えた場合でもよいし、評価値が閾値を上回った(又は下回った)場合でもよい。あるいは、これらを組み合わせた条件でもよい。
【００２６】
図５はシミュレーションシステム２の処理動作の一例を示すフローチャートである。まず、入力パラメータをシミュレータ３に入力して、シミュレーションを実行する(ステップＳ１)。このステップＳ１では、ラテン方格やソボル列を用いて入力パラメータを決定してもよい。
【００２７】
次に、出力データ取得部４にて、シミュレータ３のシミュレーション結果を示す出力データを取得し、取得した出力データを入出力データ記憶部５に記憶する(ステップＳ２)。次に、反復判定部９にて、所定の条件を満たしたか否かを判定する(ステップＳ３)。所定の条件を満たしたと判定されると、最適な入力パラメータを算出して(ステップＳ４)、その最適な入力パラメータを出力する(ステップＳ５)。ステップＳ４では、例えば、評価値算出部６で算出された評価値が最大(又は最小)になるときの入力パラメータを最適な入力パラメータとしてもよい。このように、図１の最適化装置１は、最適な入力パラメータを出力する最適入力パラメータ出力部を備えていてもよい。
【００２８】
ステップＳ３で所定の条件を満たしていないと判定されると、入力パラメータ変換部７にて、入力パラメータを変換パラメータに変換する(ステップＳ６)。具体的には、入力パラメータよりも次元数の小さい変換パラメータに変換する。
【００２９】
次に、次入力パラメータ決定部８にて、変換パラメータと対応する評価値との組に基づいて次入力パラメータを決定する(ステップＳ７〜Ｓ９)。例えば、ベイス最適化を用いる場合には、まずガウス過程によって変換パラメータと対応する評価値との関係を推定する(ステップＳ７)。次に、ステップＳ７の推定結果に基づいて獲得関数を算出する(ステップＳ８)。最後に、獲得関数が最大となるような次入力データを決定する(ステップＳ９)。その後、反復判定部９は、所定の条件を満たすまで、ステップＳ１以降の処理を繰り返す。
【００３０】
このように、第１の実施形態では、入力パラメータの次元数を減らした変換パラメータを生成し、変換パラメータと対応する評価値とに基づいて次の入力パラメータを決定して、所定の条件を満たすまで、シミュレーションの実行と、変換パラメータの生成と、次の入力パラメータの決定とを繰り返すため、少ないシミュレーション回数で、シミュレーション用の最適な入力パラメータを設定できる。
【００３１】
(第２の実施形態)
図６は第２の実施形態による最適化装置１の概略構成を示すブロック図である。図６の最適化装置１は、図１の変換次元数入力部１０の代わりに、変換項目入力部１１を備えている他は、図１の最適化装置１と共通する。
【００３２】
変換項目入力部１１は、シミュレータ３から出力される出力データの項目名のうち、任意の項目名を変換項目として入力する。変換項目入力部１１は、出力データの任意の項目名を直接入力してもよいし、出力データの項目名のリストから任意の項目を選択してもよい。また、変換項目入力部１１は、最適化装置１の処理中に、変換項目を変更してもよい。あるいは、変換項目入力部１１は、最適装置の処理中には、いったん入力した変換項目を変更できないようにしてもよい。変換項目を最適化が進むにつれて徐々に増やしてしていくように、予め計画してもよい。
【００３３】
図７は変換項目入力部１１が入力した変換項目の一例を示す図である。図７の例では、シミュレータ３の出力データがｙ１、ｙ２、…、ｙ１０の計１０個の項目を有する場合に、そのうちの５個ｙ３、ｙ４、ｙ６、ｙ７、ｙ９を変換項目として選択する例を示している。変換項目入力部１１が入力した変換項目の数は、変換次元数に等しい。
【００３４】
入力パラメータ変換部７は、入出力データ記憶部５に記憶された入力パラメータを、変換項目入力部１１が入力した変換項目に基づいて変換パラメータに変換する。図７の例の場合、変換項目入力部１１が入力した変換項目ｙ'＝(ｙ３、ｙ４、ｙ６、ｙ７、ｙ９)を予測する回帰式ｙ'＝φ(ｘ)を求め、この回帰結果ｚ＝φ(ｘ)を変換パラメータとする。すなわち、入出力データからｙ'とφ(ｘ)の組を計算し、ｙ'とφ(ｘ)との誤差が小さくなるφ(ｘ)を求める。
【００３５】
例えば、ｙ'とφ(ｘ)の誤差の二乗平方和を算出し、算出した二重平方和が最小になるφ(ｘ)を求めてもよい。回帰手法は、線形回帰やLasso回帰、エラスティックネット回帰、ランダムフォレスト回帰などを用いてもよい。入力パラメータ変換部７の変換手法は、実験やシミュレーションを行うたびに変えてもよいし、変換手法を固定化してもよい。また、実験やシミュレーションを所定回数行うたびに、入力パラメータ変換部７の変換手法を変えてもよい。
【００３６】
なお、図１の変換次元数入力部１０と、図６の変換項目入力部１１の双方を最適化装置１内に設けても良い。この場合、変換次元数入力部１０が入力した変換次元数と、変換項目入力部１１が入力した変換項目の数とが一致する場合には、入力パラメータ変換部７は、図１及び図６の最適化装置１内の入力パラメータ変換部７と同様の処理を行う。変換次元数入力部１０が入力した変換次元数と、変換項目入力部１１が入力した変換項目の数とが一致しない場合には、エラーを出力してもよい。
【００３７】
また、変換次元数入力部１０が入力した変換次元数が、変換項目入力部１１が入力した変換項目よりも小さい場合、入力パラメータ変換部７は、変換項目入力部１１が入力した変換項目のうち、変換次元数と等しい数の変換項目を選択してもよい。この場合、入力パラメータ変換部７は、この選択された変換項目を予測するような回帰を求め、この回帰結果を変換パラメータとする。例えば、変換項目がｙ３、ｙ４、ｙ６、ｙ７、ｙ９の５つであり、変換次元数が３の場合、選択された変換項目は、例えばｙ３、ｙ４、ｙ９の３つである。変換項目の中から変換次元数と等しい数だけ項目を選択する際には、ランダムに選択してもよいし、あるいは選択される変換項目間の相関が小さくなるように選択してもよい。
【００３８】
また、変換次元数入力部１０が入力した変換次元数が、変換項目入力部１１が入力した変換項目よりも大きい場合、入力パラメータ変換部７は、その変換次元数と変換項目数の差の分だけ、変換項目入力部１１が入力しなかった出力データの項目から、新たな項目を選択してもよい。この場合、入力パラメータ変換部７は、選択された出力データの新たな項目と、変換項目入力部１１が入力した変換項目とを予測するような回帰を求め、この回帰結果を変換パラメータとする。例えば、出力データの項目がｙ１、…、ｙ１０であり、変換項目がｙ３、ｙ４、ｙ６、ｙ７、ｙ９の５つ、変換次元数が７の場合、変換項目以外の出力データ項目ｙ１、ｙ２、ｙ５、ｙ８、ｙ１０の中から、変換次元数と変換項目の数の差である２項目を選択する。例えば、選択された出力データ項目はｙ１、ｙ５の２つであり、これと変換項目をあわせたｙ１、ｙ３、ｙ４、ｙ５、ｙ６、ｙ７、ｙ９の７項目を予測する回帰を求める。この出力データ項目の選択はランダムに行ってもよいし、あるいは変換項目との相関が小さい出力データ項目を選択してもよい。
【００３９】
また、変換次元数入力部１０が入力した変換次元数が、変換項目入力部１１が入力した変換項目よりも大きい場合、入力パラメータ変換部７は、変換項目の数の分の変換パラメータを回帰結果を用いて変換し、残りの変換次元数と変換項目数の差の分だけ、別の方法で変換パラメータを変換してもよい。例えば、変換項目がｙ３、ｙ４、ｙ６、ｙ７、ｙ９の５つ、変換次元数が７、変換パラメータがｚ１、…、ｚ７の場合、ｚ１、…、ｚ５は、選択された出力データｙ'＝(ｙ３、ｙ４、ｙ６、ｙ７、ｙ８)を予測するような回帰ｙ'＝φ(ｘ)を求め、この回帰結果φ(ｘ)である。一方で、ｚ６とｚ７は回帰とは別の手法φ' (ｘ)を用いて求めてもよい。φ'は、例えば主成分分解(ＰＣＡ)を用いて求めてもよい。あるいは、ランダム行列Ａを用いてｚ＝Ａｘと変換してもよい。また、多次元尺度構成法や自己組織化マップを用いて変換を行ってもよい。あるいは、すでに計算ずみの変換パラメータｚ１、…、ｚ５との相関が小さくなるように(あるいはｚ１、…、ｚ５と直交するように)、残りの変換パラメータを計算してもよい。
【００４０】
このように、第２の実施形態では、変換次元数入力部１０の代わりに、変換項目入力部１１を備えているため、入力パラメータを変換パラメータに変換するための出力データの項目を直接指定でき、変換パラメータへの変換処理を迅速に行うことができる。
【００４１】
（第３の実施形態）
次入力パラメータ決定部８は、出力結果推定機能と、獲得関数算出機能と、獲得関数最大化機能とを有する。
【００４２】
出力結果推定機能は、変換パラメータと対応する評価値との組に基づいて、変換パラメータｚに対して、ベイズルールにより計算される評価値ｙの事後確率ｐ(ｙ｜ｚ)を推定する。
獲得関数算出機能は、ベイズルールにより計算される事後確率に基づいて獲得関数を算出する。獲得関数は、例えばＰＩ(Probability of Improvement)を用いてもよいし、ＥＩ(Expected Improvement, 期待改善量方策)を用いてもよい。あるいはＵＣＢ(Upper Confidence Bound)やＴＳ (Thompson Sampling)、 ＥＳ(Entropy Search)、ＭＩ(Mutual Information)を用いてもよい。例えばＰＩの場合、獲得関数αn(ｚ)は、任意の定数τnを用いて、以下の（１）式にて計算する。
【数１】
2020027370.tif 000003
【００４３】
獲得関数最大化機能は、獲得関数が最大となる次入力パラメータを算出する機能である。例えば、獲得関数が最大となる変換パラメータｚn+1＝ａｒｇｍａｘzαｎ(ｚ)を求め、変換φの逆関数φ-1(ｚ)を用いて、次入力パラメータをｘn+1＝φ-1(ｚn+1)と計算してもよい。変換では次元数を小さくしているため、変換の逆関数では、次元数を小さくした分の自由度がある。これに関しては残りの自由度はランダムに決定してもよい。あるいは、現時点の評価値が最も大きい(小さい)入力パラメータとの距離が最小となるように、残りの自由度を決定してもよい。あるいは、獲得関数をαn(φ(ｘ))というように入力パラメータｘの関数と考えて、獲得関数が最大となる入力パラメータｘn+1＝ａｒｇｍａｘｘαn(φ(ｘ))を直接計算してもよい。この方法では、逆変換φ-1(ｚ)を必要としないため、逆変換を計算できない変換φも用いることが可能である。この獲得関数の最大化は、任意の最適化方法を用いてもよい。例えば、全探索やランダム探索、グリッドサーチや勾配法、Ｌ−ＢＦＧＳ、ＤＩＲＥＣＴ、ＣＭＡ−ＥＳや多スタート局所法を用いてもよい。
【００４４】
（第４の実施形態）
第４の実施形態は、ベイズ最適化により次の入力パラメータを決定するものである。第４の実施形態による最適化装置１の概略構成は、図１と同様であるため、ブロック構成の説明を割愛する。
【００４５】
第４の実施形態による次入力パラメータ決定部８は、出力結果推定機能と、獲得関数算出機能と、獲得関数最大化機能とを有する。
【００４６】
出力結果推定機能は、変換パラメータと対応する評価値との組に基づいて、変換パラメータの平均値、評価値の平均値、変換パラメータの分散、及び評価値の分散の関係式を推定する。平均値と分散の関係式の推定方法は、ガウス過程回帰を用いてもよいし、ランダムフォレスト回帰を用いてもよい。例えば、ガウス過程回帰の場合、ｉ番目の実験の変換パラメータをｚi、評価値をｙiとする。また、評価値の平均値ベクトルをｍi＝μ0(ｚi)、ｚiとｚjの共分散をＫi,j＝ｋ(ｚi，ｚj)とする。ここで、μ0(ｚi)は任意の関数であり、ｋ(ｚi，ｚj)は任意のカーネル関数である。カーネル関数は例えば指数二乗カーネルやマターンカーネル、線形カーネルでもよい。
【００４７】
このとき、変換パラメータｚと、評価値ｙの平均値との関係式μn(ｚ)は、μn(ｚ)＝μ0(ｚ)＋ｋ(ｚ)T (Ｋ＋σ2Ｉ)-1 (ｙ−ｍ)である。ここで、ｋi(ｚ)＝ｋ(ｚ，ｚi)であり、σ2は任意の定数である。また、変換パラメータｚと、評価値ｙの分散との関係式σn2(ｚ)は、σn2 (ｚ)＝ｋ(ｚ，ｚ)−ｋ(ｚ)T (Ｋ＋σ2Ｉ)-1 ｋ(ｚ)である。
【００４８】
獲得関数算出機能は、平均値の関係式と分散との関係式に基づいて獲得関数を算出する。獲得関数は、例えばＰＩ(Probability of Improvement)を用いてもよいし、ＥＩ(Expected Improvement, 期待改善量方策)を用いてもよい。あるいはＵＣＢ(Upper Confidence Bound)やＴＳ (Thompson Sampling)、 ＥＳ(Entropy Search)、ＭＩ(Mutual Information)を用いてもよい。例えばＵＣＢの場合、獲得関数αn(ｚ)は任意の定数βnを用いて、αn(ｚ)＝μn(ｚ)＋βnσn(ｚ)と計算する。
【００４９】
獲得関数最大化機能は、獲得関数が最大となる次入力パラメータを算出する機能である。例えば、獲得関数が最大となる変換パラメータｚn+1＝ａｒｇｍａｘzαｎ(ｚ)を求め、変換φの逆関数φ-1(ｚ)を用いて、次入力パラメータをｘn+1＝φ-1(ｚn+1)と計算してもよい。変換では次元数を小さくしているため、変換の逆関数では、次元数を小さくした分の自由度がある。これに関しては残りの自由度はランダムに決定してもよい。あるいは、現時点の評価値が最も大きい(小さい)入力パラメータとの距離が最小となるように、残りの自由度を決定してもよい。あるいは、獲得関数をαn(φ(ｘ))というように入力パラメータｘの関数と考えて、獲得関数が最大となる入力パラメータｘn+1＝ａｒｇｍａｘｘαn(φ(ｘ))を直接計算してもよい。この方法では、逆変換φ-1(ｚ)を必要としないため、逆変換を計算できない変換φも用いることが可能である。この獲得関数の最大化は、任意の最適化方法を用いてもよい。例えば、全探索やランダム探索、グリッドサーチや勾配法、Ｌ−ＢＦＧＳ、ＤＩＲＥＣＴ、ＣＭＡ−ＥＳや多スタート局所法を用いてもよい。
【００５０】
このように、第４の実施形態では、ベイズ最適化を行うにあたって、入力パラメータの次元数を減らした変換パラメータに変換し、変換パラメータと評価値とに基づいて、次の入力パラメータを算出するため、入力パラメータの次元数にかかわらず、入力パラメータの最適化処理を迅速に行うことができる。
【００５１】
（第５の実施形態）
第５の実施形態は、変換パラメータを可視化するものである。
【００５２】
図８は第５の実施形態による最適化装置１の概略構成を示すブロック図である。図８の最適化装置１は、図１の構成に加えて、変換パラメータ可視化部１２を備えている。変換パラメータ可視化部１２は、変換パラメータと対応する評価値との組のデータ点と、変換パラメータと対応する評価値との推定関係式との少なくとも一方を可視化する。
【００５３】
図９は変換パラメータ可視化部１２による可視化の第１例を示す図である。図９の横軸は変換パラメータの一項目の数値であり、縦軸は評価値である。図９の各プロットは、変換パラメータの一項目についての各数値と対応する評価値との関係を示している。入力パラメータの各項目についての各数値と対応する評価値との関係をプロットすると、プロットが二次元座標面上にほぼ均等にばらついてしまい、最適解か否かを判断するのが困難である。
【００５４】
これに対して、図９のプロットは、二次元座標面の特定箇所に集中して存在する。このため、プロットがより集中している箇所の変換パラメータと評価値に基づいて、次の入力パラメータを決定することで、入力パラメータの最適化を迅速に行うことができる。
【００５５】
図１０は変換パラメータ可視化部１２による可視化の第２例を示す図である。図１０の横軸と縦軸は図９と同様である。図１０の曲線ｃｂ１は平均値μn(ｚ)、曲線ｃｂ２が標準偏差（分散の平方根）σn(ｚ)、曲線ｃｂ３が獲得関数ａn(ｚ)を表している。各曲線上のプロットは、獲得関数が最大となる変換パラメータｚn+1＝ａｒｇｍａｘzａn(ｚ)を表している。プロットｐ１、ｐ２、ｐ３はそれぞれ、変換パラメータｚn+1での評価値の平均値μn(ｚn+1)、標準偏差σn(ｚn+1)、獲得関数ａn(ｚn+1)を表している。
【００５６】
このように、第５の実施形態では、変換パラメータと対応する評価値との関係を可視化するため、入力パラメータを最適化できているか否かを視覚的に把握できる。
【００５７】
（第６の実施形態）
第６の実施形態は、入力パラメータを用いて実験又はシミュレーションを行った場合に失敗データが得られた場合の取扱に関する。
【００５８】
図１１は第６の実施形態による最適化装置１を備えたシミュレーションシステム２のブロック図である。図１１のシミュレーションシステム２は、最適化装置１内の評価値算出部６の内部構成が図１とは異なっており、それ以外は図１と同様に構成されている。
【００５９】
図１１の評価値算出部６は、理想出力データ記憶部６ａと、誤差算出部６ｂと、評価値置換部６ｃとを有する。理想出力データ記憶部６ａは、理想の実験又はシミュレーション出力結果を記憶する。例えば、出力データの項目がｙ１、ｙ２、…、ｙ１０の場合に、理想の出力結果はこれら１０個の項目に対応する１０個の値でもよいし、一部の項目の値でもよい。
【００６０】
誤差算出部６ｂは、実験又はシミュレーションの出力データと、理想の出力結果との誤差を評価値として算出する。例えば、実験あるいはシミュレーションで得られたｉ番目の項目の出力データをｙiとし、ｉ番目の項目の理想の出力結果をｙiバー（本明細書では、記号の上に横線のあるものを「記号バー」と表記する）とすると、誤差ｙは、以下の（２）式で表される。
【数２】
2020027370.tif 000004
【００６１】
ここで、||  ||は、（３）式に示すＬpノルムでもよいし、（４）式に示す無限大ノルムでもよい。
【数３】
2020027370.tif 000005
【数４】
2020027370.tif 000006
【００６２】
評価値置換部６ｃは、実験又はシミュレーションが失敗する場合を考慮に入れて、評価値を置換してもよい。ここで、失敗とは、ある入力パラメータに対して出力データの一部が欠損してしまうことである。例えば実験の生成物ができず、結果として出力データの一部が欠損してしまったり、あるいはシミュレーションのバグで結果が返ってこないことなどが失敗である。もしくは、実験結果が想定を超えて、測定ができずに出力データが欠けてしまう場合なども失敗である。出力データが欠損しているため、評価値も欠損値となってしまう入力パラメータが存在する。評価値置換部６ｃは、このような評価値が欠損である入力パラメータに対応する評価値を、欠損でない他の実験の評価値の最大値あるいは最小値で置き換えてもよい。すなわち、欠損値でないｎ番目の実験の評価値をｙnとすると、ｍｉｎnｙn又はｍａｘnｙnを用いて、欠損である入力パラメータに対応する評価値の代わりとしてもよい。
【００６３】
例えば、評価値置換部６ｃは、実験又はシミュレーションが失敗した入力パラメータに対する評価値を最大化したい場合は、この場合の評価値を、実験又はシミュレーションが失敗していない他の入力パラメータの評価値の最小値に置換する。同様に、実験又はシミュレーションが失敗した入力パラメータに対する評価値を最小化したい場合は、この場合の評価値を、実験又はシミュレーションが失敗していない他の入力パラメータの評価値の最大値に置換する。
【００６４】
このように、第６の実施形態では、ある入力パラメータに対する実験又はシミュレーションが失敗した場合の評価値を、実験又はシミュレーションが失敗していない他の入力パラメータの評価値に基づいて置換するため、何らかの事情で実験又はシミュレーションが失敗したとしても、不適切な評価値に基づいて入力パラメータの最適化を行うおそれがなくなる。
【００６５】
上述した第１〜第６の実施形態による最適化装置１は、種々の事象の実験やシミュレーションに適用可能である。第１〜第６の実施形態による最適化装置１の具体的な一例として、半導体装置の形状が予め定めた形状となるように、入力パラメータを最適化することが考えられる。最近の半導体装置は、温度や材料等の成膜条件を細かく制御して、多数の膜を積層し、その後にリソグラフィ等で所望の形状に加工することが多い。最終的に得られる半導体装置の形状が所望の形状か否かを評価するために、第１〜第６の実施形態による最適化装置１を利用することができる。この場合、入力パラメータは、上述した成膜条件である。入力パラメータには、成膜温度や材料、成膜時間等の複数の項目を含んでおり、これら項目を調整することで、最終的に得られる半導体装置の形状が変化する。よって、上述した最適化装置１を用いれば、半導体装置が所望の形状となるように、最適な入力パラメータを選定できる。
【００６６】
上述した各実施形態で説明した最適化装置１及びシミュレーションシステム２の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、最適化装置１及びシミュレーションシステム２の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００６７】
また、最適化装置１及びシミュレーションシステム２の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【符号の説明】
【００６８】
１  最適化装置、２  シミュレーションシステム、３  シミュレータ、４  出力データ取得部、５  入出力データ記憶部、６  評価値算出部、７  入出力パラメータ変換部、８  次入力パラメータ決定部、９  反復判定部、１０  変換次元数入力部、１１  変換項目入力部、１２  変換パラメータ可視化部
【図１】
2020027370.tif 000007
【図２】
2020027370.tif 000008
【図３】
2020027370.tif 000009
【図４】
2020027370.tif 000010
【図５】
2020027370.tif 000011
【図６】
2020027370.tif 000012
【図７】
2020027370.tif 000013
【図８】
2020027370.tif 000014
【図９】
2020027370.tif 000015
【図１０】
2020027370.tif 000016
【図１１】
2020027370.tif 000017