(57)【要約】【課題】有体物を設計するコンピュータの処理負荷を低減すること。【解決手段】一実施形態に係る設計システムは、少なくとも一つのプロセッサを備える。該少なくとも一つのプロセッサは、有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行する。そして、該少なくとも一つのプロセッサは、予め定められた強化学習の終了条件が満たされたことに応答して、強化学習により得られた計算モデルを、有体物の構造を設計するための学習済みモデルとして取得する。【選択図】図２
2020035325.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのプロセッサを備え、
前記少なくとも一つのプロセッサが、
有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行し、
予め定められた前記強化学習の終了条件が満たされたことに応答して、前記強化学習により得られた前記計算モデルを、前記有体物の構造を設計するための学習済みモデルとして取得する、
設計システム。
【請求項２】
前記少なくとも一つのプロセッサが、前記複数の初期データのそれぞれについて、前記計算モデルの入力データの少なくとも一部を変更しながら前記強化学習を繰り返す、
請求項１に記載の設計システム。
【請求項３】
前記入力データの少なくとも一部の変更が、前記入力データの少なくとも一部をランダムに変更する処理を含む、
請求項２に記載の設計システム。
【請求項４】
前記入力データの少なくとも一部の変更が、前回の前記強化学習の出力データに基づいて前記入力データの少なくとも一部を変更する処理を含む、
請求項２または３に記載の設計システム。
【請求項５】
前記有体物が、建造物の少なくとも一部、構造物の少なくとも一部、および移動体の少なくとも一部の中から選択される、
請求項１〜４のいずれか一項に記載の設計システム。
【請求項６】
前記少なくとも一つのプロセッサが、前記有体物の構造を示す入力データを前記学習済みモデルに入力することで前記有体物の設計データを出力する、
請求項１〜５のいずれか一項に記載の設計システム。
【請求項７】
有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行するステップと、
予め定められた前記強化学習の終了条件が満たされたことに応答して、前記強化学習により得られた前記計算モデルを、前記有体物の構造を設計するための学習済みモデルとして取得するステップと
を含む学習済みモデル生成方法。
【請求項８】
有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行するステップと、
予め定められた前記強化学習の終了条件が満たされたことに応答して、前記強化学習により得られた前記計算モデルを、前記有体物の構造を設計するための学習済みモデルとして取得するステップと
をコンピュータに実行させる設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の一側面は設計システム、学習済みモデル生成方法、および設計プログラムに関する。
【背景技術】
【０００２】
従来から、コンピュータを用いて有体物を設計する手法が知られている。例えば、特許文献１には、多層フィードフォワード型ニューラルネットワークのデータで、タイヤの設計パラメータとタイヤ性能との非線形な対応を関係付ける変換系を構成する、空気入りタイヤの設計方法が記載されている。特許文献２には、回転方向毎にフィードバック制御を行い、逆運動モデルの構築、および運転中の更新を可能とする多自由度超音波モータの回転位置制御方法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−００９８３８号公報
【特許文献２】特許４２０９２９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術では、或る有体物について汎用性の高い計算モデルを得ることが非常に困難である。具体的には、特定の条件下（例えば、風速、温度、振動入力などの、有体物以外からの条件）では良好な解を導出できる計算モデルが、別の条件下では良好な解を得ることができない。そのため、有体物に求められる条件に合わせて最初から計算モデルを構築し直す必要があり、これはコンピュータの処理負荷を増大させることになる。そこで、有体物を設計するコンピュータの処理負荷を低減することが望まれている。
【課題を解決するための手段】
【０００５】
本発明の一側面に係る設計システムは、少なくとも一つのプロセッサを備え、少なくとも一つのプロセッサが、有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行し、予め定められた強化学習の終了条件が満たされたことに応答して、強化学習により得られた計算モデルを、有体物の構造を設計するための学習済みモデルとして取得する。
【０００６】
本発明の一側面に係る学習済みモデル生成方法は、有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行するステップと、予め定められた強化学習の終了条件が満たされたことに応答して、強化学習により得られた計算モデルを、有体物の構造を設計するための学習済みモデルとして取得するステップとを含む。
【０００７】
本発明の一側面に係る設計プログラムは、有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行するステップと、予め定められた強化学習の終了条件が満たされたことに応答して、強化学習により得られた計算モデルを、有体物の構造を設計するための学習済みモデルとして取得するステップとをコンピュータに実行させる。
【０００８】
このような側面においては、複数の初期データを用いて強化学習を繰り返すことで学習済みモデルが得られる。この学習済みモデルは様々な初期データを処理することで得られるので、様々な条件に対応することが可能である。すなわち、様々な条件のそれぞれの下での有体物の設計を一つの学習済みモデルで済ませることができる。個々の条件について計算モデルを最初から構築する必要がなくなるので、計算モデルの構築に要するコンピュータの処理量が減少する。したがって、有体物を設計するコンピュータの処理負荷を低減することができる。
【０００９】
他の側面に係る設計システムでは、少なくとも一つのプロセッサが、複数の初期データのそれぞれについて、計算モデルの入力データの少なくとも一部を変更しながら強化学習を繰り返してもよい。設計システムが一つの初期データに対して自動的に入力データを変更しながら強化学習を繰り返すので、予め用意する初期データの量を低減することができる。
【００１０】
他の側面に係る設計システムでは、入力データの少なくとも一部の変更が、入力データの少なくとも一部をランダムに変更する処理を含んでもよい。入力データをランダムに変更することで、様々な条件に対応する学習済みモデルを生成することができる。
【００１１】
他の側面に係る設計システムでは、入力データの少なくとも一部の変更が、前回の強化学習の出力データに基づいて入力データの少なくとも一部を変更する処理を含んでもよい。強化学習の結果に基づいて次の入力データを設定することで、学習済みモデルを効率的に生成することができる。
【００１２】
他の側面に係る設計システムでは、有体物が、建造物の少なくとも一部、構造物の少なくとも一部、および移動体の少なくとも一部の中から選択されてもよい。この場合には、建造物、構造物、または移動体を設計する際のコンピュータの処理負荷を低減することができる。
【００１３】
他の側面に係る設計システムでは、少なくとも一つのプロセッサが、有体物の構造を示す入力データを学習済みモデルに入力することで有体物の設計データを出力してもよい。この場合には、コンピュータの処理負荷を低減しつつ有体物を設計することができる。
【発明の効果】
【００１４】
本発明の一側面によれば、有体物を設計するコンピュータの処理負荷を低減することができる。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係る設計システムで用いられるコンピュータのハードウェア構成の一例を示す図である。
【図２】実施形態に係る設計システムの機能構成の一例を示す図である。
【図３】実施形態に係る設計システムの学習処理を示すフローチャートである。
【図４】実施形態に係る設計システムの最適化処理を示すフローチャートである。
【図５】第２実施形態における強化学習の一例を示すグラフである。
【図６】第３実施形態に係る設計システムを説明するための図である。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照しながら本発明の実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【００１７】
［システムの概要］
本開示に係る設計システムは、有体物を設計するコンピュータシステムである。より具体的には、設計システムは有体物の構造を設計する。有体物とは、物理的に空間の一部を占め、かつ形状を有する物をいう。例えば、有体物は、人為的に製造または建造される任意の物、すなわち任意の人工物であり得る。有体物は動産でも不動産でもよい。有体物は、建物などの建造物でもよいし、橋などの構造物でもよい。あるいは、有体物は、バイク、自転車、電車、水上航走体、水中航走体、飛行体などの移動体でもよい。有体物は、建造物の少なくとも一部、構造物の少なくとも一部、または移動体の少なくとも一部でもよい。したがって、例えば、有体物は移動体を構成する装置または部品でもよい。もちろん、有体物はこれらの例に限定されない。構造とは、有体物を構成する諸要素の組合せ方のことをいう。構造を規定する諸要素の例として、形状、寸法、配置、および材料が挙げられるが、構造を規定する要素はこれらに限定されない。設計とは、有体物を具現化するための準備のことをいう。典型的には、設計の成果物の例として、意図する有体物の構造を示す設計図、仕様書、および模型が得られる。
【００１８】
設計システムは強化学習を利用する。強化学習とは、与えられた情報に基づいて反復的に学習することで法則またはルールを自律的に見つけ出す機械学習の一種である。強化学習では、環境内のエージェントが、現在の状態を観測して、取るべき行動を決定する。エージェントは行動を選択することで環境から報酬を得ることができる。エージェントは、一連の行動を通じて、報酬が最も多く得られるような方策を学習する。エージェントは学習を積み重ねることで、最適解を出力することが可能になる。ここで、最適解とは、最適であると推定される解のことをいい、現実に最適な解であるとは限らないことに留意されたい。
【００１９】
設計システムは、学習を積み重ねたエージェントを含む計算モデルを生成し、この計算モデルを学習済みモデルとして取得することができる。これは学習フェーズに相当する。学習済みモデルは、有体物の構造を設計するために最適であると推定される計算モデルであり、“現実に最適である計算モデル”とは限らないことに留意されたい。計算モデルはアルゴリズムおよびデータ構造を用いて構築することができる。例えば、計算モデルは、人間の脳神経系の仕組みを模した情報処理のモデルであるニューラルネットワークを含んで構築されてもよい。
【００２０】
設計システムは、学習済みモデルを用いて入力データを処理することで、最適な設計データを出力することもできる。これは最適化フェーズに相当する。上述したように、最適な設計データは現実に最適であるとは限らない。
【００２１】
計算モデルおよび学習済みモデルの双方について、入力データおよび出力データの構成は何ら限定されない。例えば、入力データおよび出力データのいずれも、１以上のパラメータで構成されるベクトルで表すことができる。入力データは、計算モデルの外部から入力されてもよく、本開示ではこれを初期データともいう。あるいは、入力データは、計算モデルにより設定されてもよい。
【００２２】
エージェントが様々な状態下で学習を積み重ねれば、様々な条件下で最適解を出力することが可能になる。したがって、設計システムは、様々な設計条件に対応可能な学習済みモデルを生成することができる。これは、その学習済みモデルを様々な設計条件下で使い回すことができることを意味する。条件が少し変わっても計算モデルを作り直す必要がなくなるので、計算モデルの構築に要するコンピュータの処理量が減少する。したがって、有体物を設計するコンピュータの処理負荷を低減することができる。遺伝的アルゴリズムなどの従来技術で有体物の構造を設計する場合には、設計の条件が変わる度に計算モデルを最初から構築する必要がある。したがって、従来技術ではコンピュータの処理負荷が増大し、設計者の負担も大きい。本開示に係る設計システムは、従来技術と比べて、コンピュータの処理負荷と設計者の負担とを低減できるという有利な技術的効果を有する。
【００２３】
学習済みモデルはコンピュータシステム間で移植可能である。したがって、或るコンピュータシステムで生成された学習済みモデルを、別のコンピュータシステムで用いることができる。もちろん、一つのコンピュータシステムが学習済みモデルの生成および利用の双方を実行してもよい。すなわち、設計システムは、学習フェーズおよび設計フェーズの双方を実行してもよいし、学習フェーズおよび設計フェーズのいずれか一方を実行しなくてもよい。
【００２４】
［第１実施形態］
図１〜図４を参照しながら、上記の設計システムの一般的な構成および動作の一例を第１実施形態として説明する。図１は、第１実施形態に係る設計システム１を構成するコンピュータ１００の一般的なハードウェア構成を示す図である。図２は設計システム１の機能構成の一例を示す図である。図３は、設計システム１の学習処理の一例を示すフローチャートである。図４は、設計システム１の最適化処理の一例を示すフローチャートである。図３および図４はそれぞれ、学習フェーズおよび最適化フェーズに対応する。
【００２５】
図１に示すように、コンピュータ１００はプロセッサ１０１、主記憶部１０２、補助記憶部１０３、通信制御部１０４、入力装置１０５、および出力装置１０６を備えてもよい。プロセッサ１０１はオペレーティングシステムおよびアプリケーション・プログラムを実行する。主記憶部１０２は例えばＲＯＭおよびＲＡＭで構成される。補助記憶部１０３は例えばハードディスクまたはフラッシュメモリで構成され、一般に主記憶部１０２よりも大量のデータを記憶する。通信制御部１０４は例えばネットワークカードまたは無線通信モジュールで構成される。入力装置１０５は例えばキーボード、マウス、タッチパネルなどで構成される。出力装置１０６は例えばモニタおよびスピーカで構成される。
【００２６】
設計システム１の各機能要素は、補助記憶部１０３に予め記憶される設計プログラム１１０により実現される。プロセッサ１０１または主記憶部１０２の上に設計プログラム１１０を読み込ませてその設計プログラム１１０を実行させることで実現される。プロセッサ１０１はその設計プログラム１１０に従って、通信制御部１０４、入力装置１０５、または出力装置１０６を動作させ、主記憶部１０２または補助記憶部１０３におけるデータの読み出しおよび書き込みを行う。処理に必要なデータまたはデータベースは主記憶部１０２または補助記憶部１０３内に格納される。
【００２７】
設計プログラム１１０は、例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、設計プログラム１１０は、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【００２８】
設計システム１は１台のコンピュータ１００で構成されてもよいし、複数台のコンピュータ１００で構成されてもよい。複数台のコンピュータ１００を用いる場合には、これらのコンピュータ１００がインターネットやイントラネットなどの通信ネットワークを介して接続されることで、論理的に一つの設計システム１が構築される。
【００２９】
本実施形態では、設計システム１は、有体物の構造を設計するための学習済みモデルを生成する第１システム１０と、その学習済みモデルを用いて最適な設計データを出力する第２システム２０とを備える。第１システム１０は、強化学習を実行することで学習済みモデルを生成および取得する学習部１１を機能要素として備える。第２システム２０は、その学習済みモデルを用いて入力データから最適な設計データを算出する最適化部２１を機能要素として備える。
【００３０】
上述したように、学習済みモデルはコンピュータシステム間で移植可能である。したがって、本実施形態のように、第１システム１０で生成された計算モデルを、別のコンピュータシステムである第２システム２０で用いることができる。もちろん、設計システムを第１システム１０と第２システム２０とに分けることは必須ではない。
【００３１】
図３を参照しながら、学習済みモデルの生成方法の一例をする。この例では、強化学習のために計算モデルに入力されるデータを、変数ｉおよびｎを用いて、入力ベクトルｘｉ（ｎ）で示す。この入力ベクトルｘｉ（ｎ）は、有体物の構造を示すデータであり、入力データの一例である。変数ｉは初期ベクトルを区別するための値であり、１から始まる値であるとする。ここで、初期ベクトルは、強化学習のために計算モデルの外部で用意される入力データであり、初期データの一例である。一方、変数ｎは、一つの初期ベクトルに基づく学習の繰り返し回数を示す値である。任意の変数ｉについて、ｘｉ（０）は初期ベクトルを示す。一方、ｘｉ（１）、ｘｉ（２）などは、計算モデルの内部で前回の入力ベクトルｘｉ（ｎ−１）から変更された新たな入力ベクトルを示す。入力ベクトルｘｉ（ｎ）のデータ構造は限定されず、最終的に得ようとする設計データのデータ構造に基づいて任意に設定されてよい。例えば、入力ベクトルｘｉ（ｎ）は１以上のパラメータを含んでもよい。入力ベクトルｘｉ（ｎ）は、有体物の構造を示すパラメータに加えて、有体物を取り巻く環境に関する環境条件を示すパラメータを含んでもよい。環境条件の例として流速、気温、圧力などが挙げられるが、環境条件を構成する要素は任意に選択されてよい。入力ベクトルに環境条件を含めることで、様々な環境条件に適用可能な学習済みモデルを生成することができる。
【００３２】
学習部１１は、ステップＳ１１でｉ番目の初期ベクトルｘｉ（０）を設定する。初期ベクトルの設定方法は限定されない。例えば、学習部１１はランダムに初期ベクトルｘｉ（０）を設定してもよい。あるいは、学習部１１は外部から提供される入力ベクトルをそのまま初期ベクトルｘｉ（０）として設定してもよい。例えば、学習部１１は、設計システム１のユーザにより入力されたデータを初期ベクトルｘｉ（０）として設定してもよい。あるいは、学習部１１は、データベースなどの任意の記憶部から読み出したデータを初期ベクトルｘｉ（０）として設定してもよい。
【００３３】
ステップＳ１２では、学習部１１は初期ベクトルｘｉ（０）に基づいて性能値ｆｉ（０）を求める。この性能値ｆｉ（０）はエージェントに対する報酬を決定するために用いることができる。性能値のデータ構造は限定されず、入力ベクトルに対応して任意に設定されてよい。例えば、性能値は１以上のパラメータを含んでもよい。報酬を決定するために性能値ｆｉ（０）を用いることは必須ではないので、このステップＳ１２は省略されてもよい。
【００３４】
その後、学習部１１は、初期ベクトルｘｉ（０）について、計算モデルの入力データの少なくとも一部を変更しながら強化学習を繰り返す。例えば、学習部１１は、初期ベクトルｘｉ（０）を徐々に変化させながら、予め定められた回数だけ強化学習を繰り返し実行する。ただし、学習部１１は、或る一つの初期ベクトルｘｉ（０）で設定された環境条件については、変数ｉの値が同じである複数の入力ベクトルｘｉ（ｎ）の間で変化させない。この繰り返し処理をステップＳ１３〜Ｓ１６として説明する。繰り返し回数は任意に設定されてよく、例えば２０でもよいし５０でもよい。本実施形態ではこの繰り返し回数をＭで表す。
【００３５】
ステップＳ１３では、学習部１１は入力ベクトルｘｉ（ｎ）に対する強化学習を実行することで出力ベクトルを算出する。ステップＳ１２の直後は、学習部１１は初期ベクトルｘｉ（０）に対する強化学習を実行する。出力ベクトルは、エージェントが取るべき行動を示すデータであり、出力データの一例である。出力ベクトルのデータ構造は限定されず、入力ベクトルに対応して任意に設定されてよい。
【００３６】
ステップＳ１４では、学習部１１はその出力ベクトルに基づいて次の入力ベクトルｘｉ（ｎ＋１）を設定する。前回の入力ベクトルがｘｉ（０）であれば、学習部１１は入力ベクトルｘｉ（１）を設定する。次の入力ベクトルの設定方法は限定されない。例えば、学習部１１は前回の入力ベクトルｘｉ（ｎ）の少なくとも一部を変更することで次の入力ベクトルｘｉ（ｎ＋１）を設定してもよい。例えば、学習部１１は、前回の強化学習の出力ベクトルに基づいて、前回の入力ベクトルｘｉ（ｎ）の少なくとも一部をランダムに変更することで次の入力ベクトルｘｉ（ｎ＋１）を設定してもよい。あるいは、例えば、学習部１１はその出力ベクトルに基づいて、前回の入力ベクトルｘｉ（ｎ）の少なくとも一部を、予め定められた数値範囲内でランダムに変更することで次の入力ベクトルｘｉ（ｎ＋１）を設定してもよい。
【００３７】
ステップＳ１５では、学習部１１は入力ベクトルｘｉ（ｎ＋１）に基づいて性能値ｆｉ（ｎ＋１）を求め、この性能値ｆｉ（ｎ＋１）に基づいて、エージェントに付与する報酬を決定する。学習部１１はその決定に基づいてエージェントに報酬を付与する。ステップＳ１５で実行される報酬の決定および付与は任意のタイミングで実行されてよい。学習部１１は、一つの初期データに基づくＭ回の繰り返し処理の間に、任意のタイミングで報酬を付与してよい。例えば、学習部１１はＭ回の繰り返し処理の間に、毎回、報酬を付与してもよいし、Ｍ回目の処理でのみ報酬を付与してもよい。報酬の決定方法および具体的な値は限定されない。例えば、学習部１１は、ｆｉ（Ｍ）＞ｆｉ（０）である場合に報酬を＋１に設定し、それ以外の場合に報酬を０に設定してもよい。あるいは、学習部１１は、ｆｉ（ｎ）＞ｆｉ（ｎ−１）である場合に報酬を＋１に設定し、ｆｉ（ｎ）＜ｆｉ（ｎ−１）の場合に報酬を−１に設定してもよい。報酬の値は性能値に基づいて算出されてもよい。
【００３８】
ステップＳ１６で示すように、ステップＳ１３〜Ｓ１５の処理はＭ回繰り返して実行される。
【００３９】
ステップＳ１７では、学習部１１は終了条件を満たすか否かを判定する。この終了条件は、強化学習を終了して学習済みモデルを取得するための条件である。終了条件は任意に設定されてよい。例えば、学習部１１は、性能値ｆｉ（Ｍ）が予め定められた基準を満たした場合に強化学習を終了してもよい。あるいは、学習部１１は、予め定められた個数の初期データを処理し終えた場合に強化学習を終了してもよい。ここで、予め用意される初期データの個数は何ら限定されず、例えば１００００でもよい。いずれにしても、終了条件が満たされるということは、該終了条件を満たす設計データが得られたことに対応し得る。終了条件を満たす設計データは、例えば、最後に処理された入力ベクトルで示されてもよい。
【００４０】
終了条件を満たさない場合には、処理はステップＳ１８に進む。学習部１１は変数ｉをインクリメントし、ステップＳ１１に戻って次の初期ベクトルｘｉ（ｎ）を設定する。そして、学習部１１はステップＳ１２以降の処理を再び実行する。
【００４１】
終了条件を満たす場合には、処理はステップＳ１９に進む。ステップＳ１９では、学習部１１は、強化学習された計算モデルを学習済みモデルとして取得する。この処理は、学習済みモデルが生成されたことを意味する。学習部１１はその学習済みモデルを出力する。学習済みモデルの出力方法は限定されない。例えば、学習部１１は学習済みモデルを、メモリ、データベースなどの記憶装置に格納してもよいし、他のコンピュータシステムに送信してもよい。
【００４２】
図４を参照しながら、学習済みモデルを用いた最適化方法の一例を説明する。この例では、最適な設計データを得るための入力ベクトルを、変数ｎを用いてｘ（ｎ）で示す。この入力ベクトルｘ（ｎ）は、有体物の構造を示すデータである。入力ベクトルｘ（ｎ）のデータ構造は、学習部１１による強化学習で用いられる入力ベクトルｘｉ（ｎ）と同じである。
【００４３】
ステップＳ２１では、最適化部２１は入力ベクトルｘ（０）を受け付ける。入力ベクトルｘ（０）の入手方法は限定されない。例えば、最適化部２１は、設計システム１のユーザにより入力されたデータを入力ベクトルｘ（０）として受け付けてもよい。あるいは、最適化部２１は、データベースなどの任意の記憶部から読み出したデータを入力ベクトルｘ（０）として受け付けてもよい。
【００４４】
ステップＳ２２では、最適化部２１は入力ベクトルｘ（ｎ）を学習済みモデルに入力することで出力ベクトルを算出する。ステップＳ２１の直後は、最適化部２１は入力ベクトルｘ（０）を入力する。出力ベクトルのデータ構造は、学習部１１による強化学習で計算モデルから得られる出力ベクトルと同じである。
【００４５】
ステップＳ２３では、最適化部２１はその出力ベクトルに基づいて次の入力ベクトルｘ（ｎ＋１）を設定する。
【００４６】
ステップＳ２４では、最適化部２１はその入力ベクトルｘ（ｎ＋１）に基づいて性能値ｆ（ｎ＋１）を求める。この処理は省略されてもよい。
【００４７】
ステップＳ２５では、最適化部２１は終了条件を満たすか否かを判定する。この終了条件は、最適な設計データを出力するための条件である。この終了条件は、学習済みモデルを生成するために用いられた終了条件に対応するように設定されてもよい。あるいは、終了条件は性能値が満たすべき基準で定義されてもよい。あるいは、終了条件はステップＳ２２〜Ｓ２４の繰り返し回数で定義されてもよい。
【００４８】
終了条件を満たさない場合には、最適化部２１はステップＳ２２以降の処理を再び実行する。一方、終了条件を満たす場合には、処理はステップＳ２６に進む。ステップＳ２６では、最適化部２１が、学習済みモデルによって最後に処理された入力ベクトル、すなわち、終了条件を満たす入力ベクトルを設計データとして出力する。設計データの出力方法は限定されない。例えば、最適化部２１は設計データを、メモリ、データベースなどの記憶装置に格納してもよいし、他のコンピュータシステムに送信してもよいし、モニタ上に表示してもよい。設計データは有体物の構造を設計するために用いられる。
【００４９】
［第２実施形態］
図３および図４を再び参照しながら、第１実施形態で説明した設計システム１の動作の適用例を第２実施形態として説明する。本実施形態では、有体物の構造の例として飛行体の翼の形状を示す。すなわち、本実施形態では、設計システム１は翼の形状を設計するための学習済みモデルを取得する。さらに、設計システム１は、その学習済みモデルを用いて、用意された入力データから翼の形状に関する設計データを出力する。
【００５０】
本実施形態では、翼の形状を示す設計データは、ｐ（ｎ），ｑ（ｎ），ｒ（ｎ），ｓ（ｎ），ｔ（ｎ），ｕ（ｎ）という６個のパラメータで構成されるものとする。すなわち、ｘ（ｎ）＝（ｐ（ｎ），ｑ（ｎ），ｒ（ｎ），ｓ（ｎ），ｔ（ｎ），ｕ（ｎ））である。この６個のパラメータの初期値は、従来から高性能であると認められている７種類の翼Ｗａ，Ｗｂ，Ｗｃ，Ｗｄ，Ｗｅ，Ｗｆ，Ｗｇの形状を用いて決めることができる。翼Ｗａと翼Ｗｂとの形状の差をｚｂとすると、変数ｐを用いて新しい形状Ｗｎｅｗを作成することができる。この新しい形状は、Ｗｎｅｗ＝Ｗａ＋ｐｚｂで表される。この式で用いられるｐがパラメータｐ（ｎ）に対応する。同様に、翼Ｗａと翼Ｗｃとの形状の差をｚｃとすると、変数ｑを用いて新しい形状Ｗｎｅｗを作成することができる。この新しい形状は、Ｗｎｅｗ＝Ｗａ＋ｑｚｃで表される。この式で用いられるｑがパラメータｑ（ｎ）に対応する。同様に、翼Ｗａと他の４種類の翼Ｗｄ，Ｗｅ，Ｗｆ，Ｗｇとの差に基づいて、パラメータｒ，ｓ，ｔ，ｕが得られる。これら６個のパラメータは翼の長さおよび厚さを示す。
【００５１】
図３を参照しながら学習部１１での処理を説明する。ステップＳ１１では、学習部１１はｉ番目の初期ベクトルｘｉ（０）＝（ｐｉ（０），ｑｉ（０），ｒｉ（０），ｓｉ（０），ｔｉ（０），ｕｉ（０））を設定する。ステップＳ１２では、学習部１１は入力ベクトルｘｉ（０）に基づいて性能値ｆｉ（０）を求める。ただし、ステップＳ１２は省略されてもよい。
【００５２】
その後、学習部１１は入力データを少しずつ変えながら強化学習を繰り返す。ステップＳ１３では、学習部１１は入力ベクトルｘｉ（ｎ）に対する強化学習を実行することで出力ベクトルを算出する。本実施形態では、計算モデルを構成するニューラルネットワークの出力層は、６個のパラメータに対応する６個のノードで構成される。それぞれのノードは、対応するパラメータを変更するか否かを示す値を出力する。ステップＳ１４では、学習部１１はその出力ベクトルに基づいて次の入力ベクトルｘｉ（ｎ＋１）を設定する。具体的には、学習部１１は、６個のパラメータのうち、変更すると判定されたパラメータを、任意の方法で変更する。ステップＳ１５では、学習部１１は入力ベクトルｘｉ（ｎ＋１）に基づいて性能値ｆｉ（ｎ＋１）を求め、この性能値ｆｉ（ｎ＋１）に基づいて、エージェントに付与する報酬を決定する。このステップＳ１５は省略可能である。ステップＳ１６で示すように、ステップＳ１３〜Ｓ１５の処理はＭ回繰り返して実行される。
【００５３】
ステップＳ１７において、学習部１１は終了条件を満たすか否かを判定する。終了条件を満たさない場合には、処理はステップＳ１８を経てステップＳ１１に戻る。一方、終了条件を満たす場合には、学習部１１は学習済みモデルを取得する。終了条件が、１万個の初期ベクトルｘｉ（０）を処理することである場合には、学習部１１は、初期ベクトルｘ１００００（０）を用いて一連の強化学習を実行した後に学習済みモデルを取得する。
【００５４】
図５は第２実施形態における強化学習の一例を示すグラフである。グラフの横軸は空力性能を示し、縦軸は振動性能を示す。空力性能および振動性能は性能値の例である。グラフでは、空力性能は左に行くほど良好であり、振動性能は上に行くほど良好である。グラフ中の結果２０１〜２０５のそれぞれは、一つの初期データに基づいて強化学習をＭ回繰り返した際の処理結果を示す。
【００５５】
学習を開始して間もない時点では、結果２０１，２０２，２０３に示すように、振動性能および空力性能はＭ回の学習を実行してもほとんど変わらない。しかし、エージェントが報酬を得ながら学習を積み重ねていくと、結果２０４，２０５に示すように、エージェントは初期データから最適解を得ることが可能になる。
【００５６】
エージェントが最適解に至る過程は、報酬を付与する方法によって変わり得る。例えば、結果２０４は、振動性能を下げることなく空力性能を上げることができた場合には、空力性能の上昇分の報酬を付与する、という制約の下で、強化学習が行われた場合の一例を示す。一方、結果２０５は、振動性能が閾値以上であり且つ空力性能を上げることができた場合には、空力性能の上昇分の報酬を付与する、という制約の下で、強化学習が行われた場合の一例を示す。図５は、結果２０５に対応する閾値を線２１０で示す。
【００５７】
図４を参照しながら最適化部２１での処理を説明する。ステップＳ２１では、最適化部２１は初期ベクトルｘ（０）＝（ｐ（０），ｑ（０），ｒ（０），ｓ（０），ｔ（０），ｕ（０））を設定する。ステップＳ２２では、最適化部２１は入力ベクトルｘ（ｎ）を学習済みモデルに入力することで出力ベクトルを算出する。ステップＳ２１の直後は、最適化部２１は初期ベクトルｘ（０）を学習済みモデルに入力する。ステップＳ２３では、最適化部２１はその出力ベクトルに基づいて次の入力ベクトルｘ（ｎ＋１）を設定する。ステップＳ２４では、最適化部２１はその入力ベクトルｘ（ｎ＋１）に基づいて性能値ｆ（ｎ＋１）を求める。上述したように、ステップＳ２４は省略されてもよい。
【００５８】
ステップＳ２５では、最適化部２１は終了条件を満たすか否かを判定する。終了条件を満たさない場合には、最適化部２１はステップＳ２２以降の処理を繰り返す。終了条件を満たす場合には、処理はステップＳ２６に進み、最適化部２１は設計データを出力する。この結果、設計システム１のユーザは、翼の最適な形状を得ることができる。
【００５９】
［第３実施形態］
図３および図４を再び参照しながら、第１実施形態で説明した設計システム１の動作の別の適用例を第３実施形態として説明する。本実施形態で、有体物の構造の例として飛行体の翼の迎角を示す。すなわち、設計システム１は翼の迎角を設計するための学習済みモデルを取得する。さらに、設計システム１は、その学習済みモデルを用いて、用意された入力データから翼の迎角に関する設計データを出力する。
【００６０】
本実施形態での設計システム１の目的は、翼の形状ｙとレイノルズ数Ｒｅとが与えられた上で、最適な迎角αを求めることである。迎角αは｛０，１，２，…，３９｝の中から選ばれるものとする。最適な迎角αは、抵抗係数ＣＤに対する揚力係数ＣＬの比ＣＬ／ＣＤを最大にする値である。本実施形態ではその比ＣＬ／ＣＤを性能値ｆとして用いる。
【００６１】
本実施形態では、計算モデルの入力データは、ｋ−ε乱流モデルを用いた２次元定常状態非圧縮性流体解析（ｔｗｏ−ｄｉｍｅｎｓｉｏｎａｌ  ｓｔｅａｄｙ−ｓｔａｔｅ  ｉｎｃｏｍｐｒｅｓｓｉｂｌｅ  ｆｌｏｗ  ａｎａｌｙｓｉｓ）の実行結果である、正規化されたカラー等高線画像（ｃｏｌｏｒ  ｃｏｎｔｏｕｒ  ｉｍａｇｅ）である。この画像は４００（ピクセル）×４００（ピクセル）であり、個々の画素値、すなわち個々のＲＧＢ値は気流の情報を含む。強化学習のために計算モデルに入力されるそれぞれのカラー等高線画像は、翼の形状ｙ、レイノルズ数Ｒｅ、および初期迎角のそれぞれをランダムに設定して上記の流体解析を実行することで得ることができる。
【００６２】
図６は、本実施形態で用いられる計算モデルの一例を示す。本実施形態での計算モデルは、カラー等高線画像３１０を受け付ける深層ニューラルネットワーク３００を含む。この深層ニューラルネットワーク３００は、畳み込み層（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｌａｙｅｒ）およびプーリング層（ｐｏｏｌｉｎｇ  ｌａｙｅｒ）の二つのセットと、その二つのセットに続く三つの全結合層（ｆｕｌｌｙ  ｃｏｎｎｅｃｔｅｄ  ｌａｙｅｒ）とを含む。図６では、全結合層を「ＦＣ」で示す。「ＦＣ」の後に続く数字は一つの層を構成するノードの個数を示す。深層ニューラルネットワーク３００は、迎角を１°上げるかそれとも１°下げるかという結果を出力する。
【００６３】
図３を参照しながら学習部１１での処理を説明する。ステップＳ１１では、学習部１１はｉ番目の初期ベクトルｘ１（０）を設定する。この初期ベクトルｘ１（０）はカラー等高線画像を構成する全画素のＲＧＢ値を示す。迎角αおよび比ＣＬ／ＣＤは計算モデルに与えられず、これは、学習部１１が画像のみを用いて学習済みモデルを取得できることを意味する。ステップＳ１２では、学習部１１は入力ベクトルｘｉ（０）に基づいて性能値ｆｉ（０）を求める。ただし、ステップＳ１２は省略されてもよい。
【００６４】
その後、学習部１１は入力データを少しずつ変えながら強化学習を繰り返す。ステップＳ１３では、学習部１１は入力ベクトルｘｉ（ｎ）に対する強化学習を実行することで出力ベクトルを算出する。本実施形態では、計算モデルを構成するニューラルネットワークの出力層は、迎角を上げるか下げるかを示す２個のノードで構成される。ステップＳ１４では、学習部１１はその出力ベクトルに基づいて次の入力ベクトルｘｉ（ｎ＋１）を設定する。具体的には、学習部１１はその出力ベクトルに基づく数値解析を実行することで新たなカラー等高線画像を生成し、該新たなカラー等高線画像を構成する全画素のＲＧＢ値を示す次の入力ベクトルｘｉ（ｎ＋１）を設定する。ステップＳ１５では、学習部１１は入力ベクトルｘｉ（ｎ＋１）に基づいて性能値ｆｉ（ｎ＋１）を求め、この性能値ｆｉ（ｎ＋１）に基づいて、エージェントに付与する報酬を決定する。例えば、学習部１１はｆｉ（ｎ＋１）とｆｉ（０）との比較に基づいて報酬を決定してもよい。このステップＳ１５は省略可能である。
【００６５】
ステップＳ１６で示すように、ステップＳ１３〜Ｓ１５の処理はＭ回繰り返して実行される。
【００６６】
ステップＳ１７において、学習部１１は終了条件を満たすか否かを判定する。本実施形態での終了条件は、例えば、直近の二つの入力ベクトルが同じであること、すなわち、ｘｉ（ｎ）＝ｘｉ（ｎ−１）であってもよい。終了条件を満たさない場合には、処理はステップＳ１８を経てステップＳ１１に戻る。一方、終了条件を満たす場合には、学習部１１は学習済みモデルを取得する。
【００６７】
図４を参照しながら最適化部２１での処理を説明する。ステップＳ２１では、最適化部２１は、カラー等高線画像で表される初期ベクトルｘ（０）を設定する。ステップＳ２２では、最適化部２１は入力ベクトルｘ（ｎ）を学習済みモデルに入力することで出力ベクトルを算出する。ステップＳ２１の直後は、最適化部２１は初期ベクトルｘ（０）を学習済みモデルに入力する。ステップＳ２３では、最適化部２１はその出力ベクトルに基づいて次の入力ベクトルｘ（ｎ＋１）を設定する。ステップＳ２４では、最適化部２１はその入力ベクトルｘ（ｎ＋１）に基づいて性能値ｆ（ｎ＋１）を求める。上述したように、ステップＳ２４は省略されてもよい。
【００６８】
ステップＳ２５では、最適化部２１は終了条件を満たすか否かを判定する。終了条件は、例えば、直近の二つの入力ベクトルが同じであること、すなわち、ｘ（ｎ）＝ｘ（ｎ−１）であってもよい。終了条件を満たさない場合には、最適化部２１はステップＳ２２以降の処理を繰り返す。終了条件を満たす場合には、処理はステップＳ２６に進み、最適化部２１は設計データを出力する。この結果、設計システム１のユーザは、翼の最適な迎角を得ることができる。
【００６９】
［効果］
以上説明したように、本発明の一側面に係る設計システムは、少なくとも一つのプロセッサを備え、少なくとも一つのプロセッサが、有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行し、予め定められた強化学習の終了条件が満たされたことに応答して、強化学習により得られた計算モデルを、有体物の構造を設計するための学習済みモデルとして取得する。
【００７０】
本発明の一側面に係る学習済みモデル生成方法は、有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行するステップと、予め定められた強化学習の終了条件が満たされたことに応答して、強化学習により得られた計算モデルを、有体物の構造を設計するための学習済みモデルとして取得するステップとを含む。
【００７１】
本発明の一側面に係る設計プログラムは、有体物の構造を示す複数の初期データのそれぞれを計算モデルに入力して強化学習を繰り返し実行するステップと、予め定められた強化学習の終了条件が満たされたことに応答して、強化学習により得られた計算モデルを、有体物の構造を設計するための学習済みモデルとして取得するステップとをコンピュータに実行させる。
【００７２】
このような側面においては、複数の初期データを用いて強化学習を繰り返すことで学習済みモデルが得られる。この学習済みモデルは様々な初期データを処理することで得られるので、様々な条件に対応することが可能である。すなわち、様々な条件のそれぞれの下での有体物の設計を一つの学習済みモデルで済ませることができる。個々の条件について計算モデルを最初から構築する必要がなくなるので、計算モデルの構築に要するコンピュータの処理量が減少する。したがって、有体物を設計するコンピュータの処理負荷を低減することができる。
【００７３】
他の側面に係る設計システムでは、少なくとも一つのプロセッサが、複数の初期データのそれぞれについて、計算モデルの入力データの少なくとも一部を変更しながら強化学習を繰り返してもよい。設計システムが一つの初期データに対して自動的に入力データを変更しながら強化学習を繰り返すので、予め用意する初期データの量を低減することができる。したがって、初期データを記憶するためのメモリの容量を節約することが可能である。
【００７４】
他の側面に係る設計システムでは、入力データの少なくとも一部の変更が、入力データの少なくとも一部をランダムに変更する処理を含んでもよい。入力データをランダムに変更することで、様々な条件に対応する学習済みモデルを生成することができる。
【００７５】
他の側面に係る設計システムでは、入力データの少なくとも一部の変更が、前回の強化学習の出力データに基づいて入力データの少なくとも一部を変更する処理を含んでもよい。強化学習の結果に基づいて次の入力データを設定することで、学習済みモデルを効率的に生成することができる。
【００７６】
他の側面に係る設計システムでは、有体物が、建造物の少なくとも一部、構造物の少なくとも一部、および移動体の少なくとも一部の中から選択されてもよい。この場合には、建造物、構造物、または移動体を設計する際のコンピュータの処理負荷を低減することができる。
【００７７】
他の側面に係る設計システムでは、少なくとも一つのプロセッサが、有体物の構造を示す入力データを学習済みモデルに入力することで有体物の設計データを出力してもよい。この場合には、コンピュータの処理負荷を低減しつつ有体物を設計することができる。
【００７８】
［変形例］
以上、本発明をその実施形態および実施例に基づいて詳細に説明した。しかし、本発明は上記の実施形態および実施例に限定されるものではない。本発明は、その要旨を逸脱しない範囲で様々な変形が可能である。
【００７９】
第２および第３実施形態では有体物の例として飛行体の翼を示すが、上述したように、有体物は限定されない。例えば、設計システム１は、移動体のエンジンを設計するための学習済みモデルを生成してもよい。より具体的には、設計システム１は、車両の過給機を設計するための学習済みモデルを生成することが可能であり、例えば、ハウジングの寸法、羽根角の寸法などを設計するための学習済みモデルを生成できる。
【００８０】
上記実施形態では設計システム１が学習部１１および最適化部２１を備えるが、学習部１１および最適化部２１のいずれか一方が省略されてもよい。
【００８１】
少なくとも一つのプロセッサにより実行される学習済みモデル生成方法の処理手順は上記実施形態での例に限定されない。また、少なくとも一つのプロセッサにより実行される最適化方法の処理手順も上記実施形態での例に限定されない。例えば、上述したステップの一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の２以上のステップが組み合わされてもよいし、ステップの一部が修正又は削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【００８２】
設計システム内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。このような基準の選択は、二つの数値の大小関係を比較する処理についての技術的意義を変更するものではない。
【産業上の利用可能性】
【００８３】
本発明の一側面によれば、有体物を設計するコンピュータの処理負荷を低減することができる。
【符号の説明】
【００８４】
１  設計システム
１００  コンピュータ
１０１  プロセッサ
１１０  設計プログラム
１０  第１システム
１１  学習部
２０  第２システム
２１  最適化部
【図１】
2020035325.tif 000003
【図２】
2020035325.tif 000004
【図３】
2020035325.tif 000005
【図４】
2020035325.tif 000006
【図５】
2020035325.tif 000007
【図６】
2020035325.tif 000008