IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7590653推論プログラム、推論方法および情報処理装置
<>
  • 特許-推論プログラム、推論方法および情報処理装置 図1
  • 特許-推論プログラム、推論方法および情報処理装置 図2
  • 特許-推論プログラム、推論方法および情報処理装置 図3
  • 特許-推論プログラム、推論方法および情報処理装置 図4
  • 特許-推論プログラム、推論方法および情報処理装置 図5
  • 特許-推論プログラム、推論方法および情報処理装置 図6
  • 特許-推論プログラム、推論方法および情報処理装置 図7
  • 特許-推論プログラム、推論方法および情報処理装置 図8
  • 特許-推論プログラム、推論方法および情報処理装置 図9
  • 特許-推論プログラム、推論方法および情報処理装置 図10
  • 特許-推論プログラム、推論方法および情報処理装置 図11
  • 特許-推論プログラム、推論方法および情報処理装置 図12
  • 特許-推論プログラム、推論方法および情報処理装置 図13
  • 特許-推論プログラム、推論方法および情報処理装置 図14
  • 特許-推論プログラム、推論方法および情報処理装置 図15
  • 特許-推論プログラム、推論方法および情報処理装置 図16
  • 特許-推論プログラム、推論方法および情報処理装置 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-19
(45)【発行日】2024-11-27
(54)【発明の名称】推論プログラム、推論方法および情報処理装置
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241120BHJP
   G06N 3/04 20230101ALI20241120BHJP
   G06F 30/23 20200101ALI20241120BHJP
   G06F 30/10 20200101ALI20241120BHJP
   G06F 111/10 20200101ALN20241120BHJP
   G06F 119/14 20200101ALN20241120BHJP
【FI】
G06N20/00
G06N3/04 100
G06F30/23
G06F30/10 200
G06F111:10
G06F119:14
【請求項の数】 6
(21)【出願番号】P 2021063522
(22)【出願日】2021-04-02
(65)【公開番号】P2022158542
(43)【公開日】2022-10-17
【審査請求日】2023-12-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】ハデルバシュ アミル
(72)【発明者】
【氏名】白幡 晃一
【審査官】大倉 崚吾
(56)【参考文献】
【文献】米国特許出願公開第2018/0286120(US,A1)
【文献】特開2013-178599(JP,A)
【文献】山口太一 ほか,"ニューラルネットワークによるフィレット部の応力予測",計算工学講演会論文集,Vol. 23,2018年,G-03-03
【文献】小杉範仁 ほか,"解説7 AIを活用した流体解析シミュレーション技術の開発 ~流体解析のプリ・プロセスから最適設計まで~",機械設計,Vol. 62,No. 8,日刊工業新聞社,2018年07月10日,p. 42-46
【文献】堀江正信 ほか,"グラフニューラルネットワークを用いたメッシュベース数値解析の汎用的な学習",計算工学講演会論文集,Vol. 25,2020年,B-05-03
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
G06F 30/10
G06F 30/23
G06F 111/10
G06F 119/14
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
複数の節点および節点間のエッジを含むメッシュデータから一部のエッジを除去して前記メッシュデータの特徴を判定する第1の学習済みモデルを用いて、第2のメッシュデータから、前記第2のメッシュデータよりエッジが少ない第1のメッシュデータを生成し、
前記第1のメッシュデータを用いてシミュレーションを実行して、前記第1のメッシュデータが示す物体の物理量を示す第1のシミュレーション結果データを生成し、
第2の学習済みモデルを用いて、前記第1のメッシュデータおよび前記第1のシミュレーション結果データから、前記第2のメッシュデータを用いて前記シミュレーションを実行した場合に対応する第2のシミュレーション結果データを推論する、
処理を実行させる推論プログラム。
【請求項2】
前記第1の学習済みモデルは、エッジ数を段階的に減少させる複数のプーリング層を含む畳み込みニューラルネットワークであり、前記第1のメッシュデータは、前記複数のプーリング層のうちの1つのプーリング層の出力に基づいて生成される、
請求項1記載の推論プログラム。
【請求項3】
前記第1の学習済みモデルは、前記メッシュデータが示す物体のクラスを判定するクラス判定モデルであり、前記第1のメッシュデータは、前記第2のメッシュデータのクラス判定の際に前記第1の学習済みモデルから中間データを抽出することで生成される、
請求項1記載の推論プログラム。
【請求項4】
前記第2のメッシュデータは、フィレットを示す微細メッシュデータであり、前記第1のメッシュデータは、前記フィレットより鋭利な鋭利角を示す粗メッシュデータであり、
前記第2の学習済みモデルは、前記鋭利角の形状に応じた第1のパラメータと、前記鋭利角に生じる第1の応力に応じた第2のパラメータと、前記フィレットの形状に応じた第3のパラメータとから、前記フィレットに生じる第2の応力を推論する、
請求項1記載の推論プログラム。
【請求項5】
コンピュータが、
複数の節点および節点間のエッジを含むメッシュデータから一部のエッジを除去して前記メッシュデータの特徴を判定する第1の学習済みモデルを用いて、第2のメッシュデータから、前記第2のメッシュデータよりエッジが少ない第1のメッシュデータを生成し、
前記第1のメッシュデータを用いてシミュレーションを実行して、前記第1のメッシュデータが示す物体の物理量を示す第1のシミュレーション結果データを生成し、
第2の学習済みモデルを用いて、前記第1のメッシュデータおよび前記第1のシミュレーション結果データから、前記第2のメッシュデータを用いて前記シミュレーションを実行した場合に対応する第2のシミュレーション結果データを推論する、
推論方法。
【請求項6】
複数の節点および節点間のエッジを含むメッシュデータから一部のエッジを除去して前記メッシュデータの特徴を判定する第1の学習済みモデルを記憶する記憶部と、
前記第1の学習済みモデルを用いて、第2のメッシュデータから、前記第2のメッシュデータよりエッジが少ない第1のメッシュデータを生成し、前記第1のメッシュデータを用いてシミュレーションを実行して、前記第1のメッシュデータが示す物体の物理量を示す第1のシミュレーション結果データを生成し、第2の学習済みモデルを用いて、前記第1のメッシュデータおよび前記第1のシミュレーション結果データから、前記第2のメッシュデータを用いて前記シミュレーションを実行した場合に対応する第2のシミュレーション結果データを推論する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は推論プログラム、推論方法および情報処理装置に関する。
【背景技術】
【0002】
物体の形状から物体の物理的特性を解析するシミュレーションが行われている。シミュレーションには、応力や変位量を算出する構造解析、流速や流体密度を算出する流体解析、電流や磁力を算出する電磁界解析などが含まれる。シミュレーションは、物体の形状を示す形状データとして、離散的な節点と節点間を接続するエッジとを含むメッシュデータを使用することがある。また、シミュレーションは、有限要素法(FEM:Finite Element Method)などの数値解析法を用いて、物理現象を表す支配方程式の解を近似的に求めることがある。例えば、数値解析法は、節点に変数を割り当て、節点間の関係を示す係数行列を生成し、反復法により連立方程式の近似解を求める。
【0003】
なお、高解像度のメッシュモデルに含まれる頂点ペアを統合して、有限要素解析に適した低解像度のメッシュモデルを生成する解像度制御システムが提案されている。また、ニューラルネットワークを用いて、メッシュモデルに含まれる三角メッシュをグループ分けし、ある三角メッシュの修正を同一グループの他の三角メッシュにも反映させるメッシュ修正装置が提案されている。また、代表形状モデルとメッシュの粗密を示すパラメータとから応答曲面を生成するメッシュ生成装置が提案されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2005-242647号公報
【文献】特開2006-318232号公報
【文献】特開2011-243016号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
要素領域が多い微細メッシュデータ(Fine Mesh Data)を使用することで、シミュレーションは高精度な解析結果を生成することができる一方、計算量が大きく実行時間が長くなる。そこで、要素領域が少ない粗メッシュデータ(Coarse Mesh Data)を使用してシミュレーションを実行し、粗シミュレーション結果から、微細メッシュデータを使用した場合の微細シミュレーション結果を推論するという方法が考えられる。推論には、ニューラルネットワークなど、機械学習によって生成される学習済みモデルが使用されてもよい。
【0006】
ただし、シミュレーションを行うにあたり、微細メッシュデータはユーザによって作成済みであるものの、微細メッシュデータに対応する粗メッシュデータは作成されていないことがある。例えば、ユーザが工業部品を設計してその物理的性質をシミュレーションにより確認するとき、微細メッシュモデルに相当する設計データは作成済みである一方、粗メッシュモデルは作成されていないことがある。
【0007】
そのため、粗メッシュモデルを作成する負担が発生し、シミュレーション結果の推論を高速に実行できないことがある。そこで、1つの側面では、本発明は、シミュレーション結果の推論を高速に実行できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、コンピュータに以下の処理を実行させる推論プログラムが提供される。複数の節点および節点間のエッジを含むメッシュデータから一部のエッジを除去してメッシュデータの特徴を判定する第1の学習済みモデルを用いて、第2のメッシュデータから、第2のメッシュデータよりエッジが少ない第1のメッシュデータを生成する。第1のメッシュデータを用いてシミュレーションを実行して、第1のメッシュデータが示す物体の物理量を示す第1のシミュレーション結果データを生成する。第2の学習済みモデルを用いて、第1のメッシュデータおよび第1のシミュレーション結果データから、第2のメッシュデータを用いてシミュレーションを実行した場合に対応する第2のシミュレーション結果データを推論する。
【0009】
また、1つの態様では、コンピュータが実行する推論方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0010】
1つの側面では、シミュレーション結果の推論を高速に実行することができる。
【図面の簡単な説明】
【0011】
図1】第1の実施の形態の情報処理装置を説明するための図である。
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
図3】ニューラルネットワークを用いた応力予測の例を示す図である。
図4】微細メッシュモデルおよび粗メッシュモデルの例を示す図である。
図5】ニューラルネットワークの構造例を示す図である。
図6】コーナーおよびフィレットのパラメータ例を示す図である。
図7】応力予測の速度倍率の例を示すグラフである。
図8】ニューラルネットワークを用いた応力予測の第2の例を示す図である。
図9】グラフ畳み込みニューラルネットワークの構造例を示す図である。
図10】グラフ畳み込みニューラルネットワークの入出力例を示す図である。
図11】メッシュモデルに対する段階的なプーリングの例を示す図である。
図12】エッジ特徴量のパラメータ例を示す図である。
図13】プーリングによるエッジ除去の例を示す図である。
図14】情報処理装置の機能例を示すブロック図である。
図15】メッシュデータおよび訓練データの構造例を示す図である。
図16】機械学習の手順例を示すフローチャートである。
図17】応力シミュレーションの手順例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0013】
図1は、第1の実施の形態の情報処理装置を説明するための図である。
情報処理装置10は、物体の形状から物体の物理的特性を解析するシミュレーションを実行する。シミュレーションは、応力や変位量を算出する構造解析でもよいし、流速や流体密度を算出する流体解析でもよいし、電流や磁力を算出する電磁界解析でもよい。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータ、解析装置またはシミュレーション装置と呼ばれてもよい。
【0014】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリに記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0015】
記憶部11は、学習済みモデル13,14およびメッシュデータ16を記憶する。
学習済みモデル13は、メッシュデータの特徴を判定する判定モデルである。メッシュデータは、物体の形状を示す形状データであり、複数の節点(ノード)と節点間を接続する複数のエッジ(辺)とを含む。メッシュデータがグラフデータと呼ばれてもよい。学習済みモデル13は、メッシュデータから一部のエッジを除去して簡略化することで、メッシュデータの特徴を判定する。例えば、学習済みモデル13は、メッシュデータが示す物体の種別(クラス)を判定する。学習済みモデル13は、機械学習を通じて生成される。
【0016】
学習済みモデル13は、ニューラルネットワークであってもよく、メッシュデータに対して畳み込み演算を行うグラフ畳み込みニューラルネットワークでもよい。例えば、学習済みモデル13は、各エッジの特徴量を隣接エッジとの位置関係に基づいて算出する畳み込み演算と、各エッジの特徴量に基づいて一部のエッジを除去するプーリング演算と、を1回以上実行する。また、学習済みモデル13は、エッジ数を段階的に減少させる複数のプーリング層を含んでもよい。例えば、学習済みモデル13は、畳み込み演算を行う畳み込み層とプーリング演算を行うプーリング層との組を、特定の個数だけ含む。
【0017】
学習済みモデル14は、メッシュデータが示す物体の物理量を推論する推論モデルである。構造解析の場合、物理量は、例えば、物体の角や穴のように大きい応力が発生しやすいクリティカルな部位における応力または変位量である。学習済みモデル14は、機械学習を通じて生成される。学習済みモデル14は、ニューラルネットワークでもよい。
【0018】
学習済みモデル14は、例えば、エッジが少ない粗メッシュデータが示す形状に関するパラメータと、粗メッシュデータの上で算出される物理量に関するパラメータとから、エッジが多い微細メッシュデータの上で算出される物理量を推論する。学習済みモデル14は、粗いシミュレーション結果データを高精度なシミュレーション結果データに変換する変換モデルであると言うこともできる。学習済みモデル14は、例えば、少ないエッジで表現された鋭利角の形状に関するパラメータと、鋭利角に生じる応力に関するパラメータとから、フィレットに生じる応力を推論する。
【0019】
メッシュデータ16は、後述するメッシュデータ15よりもエッジが多い微細メッシュデータである。メッシュデータ16は、例えば、頂点をもたないように角を丸めたフィレットを含む。フィレットの形状には、鋭利角の形状よりも多くのエッジが使用される。メッシュデータ16は、工業部品の設計データから生成されてもよく、メッシュ生成ソフトウェアによってCAD(Computer Aided Design)データから生成されてもよい。
【0020】
処理部12は、学習済みモデル13,14を利用することで、メッシュデータ16に対するシミュレーションを直接実行せずに、メッシュデータ16に対応するシミュレーション結果データ18を推論する。シミュレーション結果データ18は、メッシュデータ16が示す物体の物理量を含み、例えば、フィレットにおける応力を含む。シミュレーションは、有限要素法などの数値解析法を実行してもよい。例えば、シミュレーションは、節点に変数を割り当て、節点間の関係を示す係数行列を生成し、行列演算を反復的に行う反復法によって連立方程式の近似解を算出する。
【0021】
まず、処理部12は、学習済みモデル13を用いて、メッシュデータ16から、メッシュデータ16よりエッジが少ないメッシュデータ15を生成する。エッジが減少することで、フィレットの形状が、フィレットよりも鋭利な鋭利角の形状に変換されることがある。このとき、処理部12は、メッシュデータ16の特徴を判定させることで、学習済みモデル13の内部で生成される中間データを抽出してもよい。また、処理部12は、学習済みモデル13に含まれるプーリング層の出力を抽出してもよい。処理部12は、複数のプーリング層のうちの途中のプーリング層の出力を抽出してもよい。例えば、処理部12は、4個のプーリング層のうちの2番目または3番目のプーリング層の出力を抽出する。
【0022】
メッシュデータ15が生成されると、処理部12は、メッシュデータ15を用いて有限要素法などのシミュレーションを実行して、メッシュデータ15に対応するシミュレーション結果データ17を生成する。シミュレーション結果データ17は、メッシュデータ15が示す物体の物理量を含み、例えば、鋭利角における応力を含む。メッシュデータ16に対するシミュレーションと比べてメッシュデータ15に対するシミュレーションの方が、エッジが少ないため、計算量が小さく実行時間が短くなる。
【0023】
そして、処理部12は、学習済みモデル14を用いて、メッシュデータ15およびシミュレーション結果データ17から、シミュレーション結果データ18を推論する。例えば、処理部12は、メッシュデータ15に応じたパラメータとシミュレーション結果データ17に応じたパラメータとを含む入力データを生成し、学習済みモデル14に入力データを入力し、学習済みモデル14が出力する推論値を取得する。
【0024】
以上説明したように、第1の実施の形態の情報処理装置10は、一部のエッジを除去してメッシュデータの特徴を判定する学習済みモデル13を利用して、エッジの多いメッシュデータ16をエッジの少ないメッシュデータ15に変換する。情報処理装置10は、メッシュデータ15を用いてシミュレーションを行う。そして、情報処理装置10は、メッシュデータ15とメッシュデータ15に対応するシミュレーション結果データ17とから、メッシュデータ16に対応するシミュレーション結果データ18を推論する。
【0025】
これにより、情報処理装置10は、微細なメッシュデータ16に対応する高精度のシミュレーション結果データ18を生成することができる。また、粗なメッシュデータ15を用いたシミュレーションは、微細なメッシュデータ16を用いたシミュレーションよりも計算量が小さく高速である。よって、高精度のシミュレーション結果データ18を得るための計算量が削減されて実行時間が短縮される。
【0026】
また、情報処理装置10は、微細なメッシュデータ16に対応する粗なメッシュデータ15を、学習済みモデル13を利用して自動的に生成する。よって、メッシュデータ16とは別にメッシュデータ15を作成する負担が軽減され、情報処理装置10は、シミュレーション結果データ18の推論を高速に実行することができる。例えば、ユーザが工業部品の形状を設計しているとき、情報処理装置10は、設計データが存在すればシミュレーション結果データ18の推論を実行することができる。
【0027】
また、学習済みモデル13は、メッシュデータの特徴を判定するために、特徴との関連が小さいエッジを除去するように学習されている。よって、学習済みモデル13を利用して生成されるメッシュデータ15は、メッシュデータ16の本質的特徴を保存した良好な粗メッシュモデルである。その結果、シミュレーション結果データ17の精度が向上し、シミュレーション結果データ18の推論精度が向上する。
【0028】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、有限要素法による構造解析シミュレーションを実行し、物体の形状に応じた応力を算出する。また、情報処理装置100は、機械学習を利用して、高精度なシミュレーション結果を予測する。情報処理装置100は、例えば、工業部品の設計に利用される。情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100が、コンピュータ、解析装置、シミュレーション装置、設計装置または機械学習装置と呼ばれてもよい。
【0029】
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0030】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータの少なくとも一部をRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0031】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
【0032】
HDD103は、OS(Operating System)、ミドルウェア、アプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0033】
GPU104は、CPU101と連携して画像処理を行う。また、GPU104は、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。なお、情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
【0034】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0035】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0036】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0037】
通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0038】
次に、構造解析シミュレーションの流れについて説明する。
図3は、ニューラルネットワークを用いた応力予測の例を示す図である。
第2の実施の形態は、応力を高精度に算出する部位として工業部品の角を想定する。角度が0度と180度の間であり頂点をもつ鋭利角は、「コーナー」と呼ばれることがある。コーナーを含む工業部品に外部から力が加わると、特定の部分の応力が他の部分よりも顕著に大きくなる応力集中が発生することがある。そこで、工業部品の設計にあたり、応力集中を緩和するため、角の形状をコーナーではなくフィレットにすることがある。フィレットは、頂点をもたず一定の曲率半径の曲線をもつ滑らかな角である。フィレット付近の応力は、コーナーよりも小さくなることが期待される。
【0039】
フィレットの応力を算出する1つの方法として、フィレットの形状を高精度に表した微細メッシュモデル31を作成し、微細メッシュモデル31を用いて有限要素法シミュレーションを実行する方法もある。メッシュモデルは、物体の形状をメッシュで表す形状モデルであり、離散的な複数の節点と節点間を接続する複数のエッジとを含む。メッシュモデルでは、物体の存在する空間が、節点およびエッジによって囲まれた小領域である要素に分割される。第2の実施の形態では、要素の面は三角形である。通常、設計中の工業部品についてはCADデータが存在する。そこで、情報処理装置100は、例えば、メッシュ生成ソフトウェアを用いてCADデータから微細メッシュモデル31を生成する。
【0040】
しかし、節点やエッジが多い微細メッシュモデル31を用いた有限要素法シミュレーションは、計算量が大きく実行時間が長いことがある。そこで、情報処理装置100は、微細メッシュモデル31を用いた有限要素法シミュレーションに代えて、粗メッシュモデル32を用いた有限要素法シミュレーションを実行する。
【0041】
まず、微細メッシュモデル31に対応する粗メッシュモデル32が作成される。粗メッシュモデル32は、微細メッシュモデル31よりも少ない節点やエッジをもつ。そのため、粗メッシュモデル32の形状の表現精度は、微細メッシュモデル31よりも低い。結果として、粗メッシュモデル32は、フィレットの曲線を十分に再現することが難しく、角の形状をフィレットではなくコーナーとして表現することがある。
【0042】
情報処理装置100は、粗メッシュモデル32を用いて有限要素法シミュレーションを実行し、粗シミュレーション結果33を生成する。例えば、情報処理装置100は、粗メッシュモデル32の節点に変数を割り当て、構造力学の物理法則を示す支配方程式に基づいて、節点間の関係を示す係数行列を生成する。情報処理装置100は、係数行列を用いて反復法より連立方程式の近似解を求める。粗シミュレーション結果33は、角の形状がコーナーである場合のコーナー付近の応力を含む。
【0043】
情報処理装置100は、機械学習によって予め生成されたニューラルネットワーク140の入力データを生成する。入力データは、粗シミュレーション結果33が示す応力に関する特徴量と、粗メッシュモデル32が示すコーナー形状に関する特徴量と、微細メッシュモデル31が示すフィレット形状に関する特徴量とを含むテンソルである。ニューラルネットワーク140は、フィレット付近の応力を予測する。これにより、フィレットの応力の予測値を含む微細シミュレーション結果34が生成される。
【0044】
微細シミュレーション結果34が示す応力は、微細メッシュモデル31を用いて有限要素法シミュレーションを実行した場合に算出される応力に相当する。よって、微細シミュレーション結果34の精度は、粗シミュレーション結果33よりも高い。一方、粗メッシュモデル32を用いた有限要素法シミュレーションの計算量は、微細メッシュモデル31よりも小さい。また、ニューラルネットワーク140による予測の計算量は十分に小さい。よって、構造解析シミュレーションの実行時間が短縮される。
【0045】
ここで、高精度な応力は、角のように応力集中が発生しやすいクリティカルな部位に絞って算出されてもよい。クリティカルな部位以外の応力については、粗メッシュモデル32から算出される応力が採用されてもよい。そこで、情報処理装置100は、粗メッシュモデル32を用いて物体全体の応力分布を算出し、物体全体のうちコーナーの応力を、ニューラルネットワーク140を用いてフィレットの応力に変換する。ニューラルネットワーク140は、フィレット毎に応力の予測値を算出する。
【0046】
図4は、微細メッシュモデルおよび粗メッシュモデルの例を示す図である。
微細メッシュモデル35は、前述の微細メッシュモデル31に対応する。粗メッシュモデル36は、前述の粗メッシュモデル32に対応する。微細メッシュモデル35および粗メッシュモデル36は、同一の工業部品の形状を表す。また、微細メッシュモデル35および粗メッシュモデル36では、要素の面は全て三角形である。
【0047】
この工業部品は、2個の穴および1個の切り欠きをもつ。また、この工業部品は、部材の外側の角度が0度より大きく180度より小さい角を10個もつ。これら10個の角のうち、1個の角が45度、1個の角が60度、6個の角が90度、1個の角が120度、1個の角が150度である。微細メッシュモデル35では角の形状はフィレットである。粗メッシュモデル36では角の形状はコーナーである。このため、微細メッシュモデル35の方が粗メッシュモデル36よりも、角付近の節点およびエッジの数が顕著に多い。
【0048】
図5は、ニューラルネットワークの構造例を示す図である。
ニューラルネットワーク140は、入力層141、隠れ層142および出力層143を含む。隠れ層142は、入力層141と出力層143の間に位置する。入力層141は、4個のノードを含む。隠れ層142は、10個のノードを含む。出力層143は、1個のノードを含む。入力層141の各ノードは、隠れ層142の10個のノードとエッジで接続される。隠れ層142の各ノードは、出力層143のノードと接続される。
【0049】
入力層141の4個のノードは、コーナー角度41、メッシュサイズ42、フィレット半径43および応力比44に対応する。出力層の1個のノードは、フィレット応力45に対応する。コーナー角度41、メッシュサイズ42、フィレット半径43および応力比44は、説明変数に相当する入力データである。フィレット応力45は、目的変数に相当する出力データである。ニューラルネットワーク140を生成する機械学習では、出力されるフィレット応力45と、正解のフィレット応力を示す教師データとが比較される。
【0050】
コーナー角度41は、粗メッシュモデル32に含まれる1個のコーナーの角度である。メッシュサイズ42は、上記コーナー付近の粗メッシュモデル32におけるメッシュの大きさである。フィレット半径43は、上記コーナーに対応する微細メッシュモデル31に含まれるフィレットの曲率半径である。応力比44は、上記コーナーの頂点を挟んで異なる方向に働く応力の大きさの比である。例えば、応力比44は、コーナー付近の横方向の応力の大きさと、頂点を挟んだ反対側における縦方向の応力の大きさとの比である。
【0051】
コーナー角度41およびメッシュサイズ42は、粗メッシュモデル32の特徴量に相当する。フィレット半径43は、微細メッシュモデル31の特徴量に相当する。応力比44は、粗シミュレーション結果33の特徴量に相当する。フィレット応力45は、上記コーナーに対応するフィレットにおける応力の予測値である。
【0052】
ニューラルネットワーク140に含まれるエッジには重みが付与される。出力データの生成では、あるノードの出力値とエッジの重みとの積が、エッジに沿って後段のノードに送信される。後段のノードは、受信された積の合計を所定の活性化関数に入力して、自身の出力値を算出する。このように、入力層141から出力層143に向かう順方向のフォワード処理によって、入力データから出力データが生成される。
【0053】
機械学習は、エッジの重みを誤差逆伝播法によって決定する。誤差逆伝播法は、ニューラルネットワーク140の出力と教師データとの間の誤差を評価し、各エッジの重みを微少量だけ変化させたときの誤差の変化量を示す誤差勾配を算出する。誤差逆伝播法は、算出された誤差勾配と所定の学習率とに基づいて、各エッジの重みを更新する。出力層143から入力層141に向かう逆方向のバックワード処理によって、エッジの重みが順に更新される。すなわち、誤差情報がフォワード処理とは逆方向に伝播する。
【0054】
情報処理装置100は、入力データと教師データとを含む訓練データを生成し、生成された訓練データを用いてニューラルネットワーク140の重みを決定する。訓練データを生成するために、情報処理装置100は、コーナー角度41、メッシュサイズ42、フィレット半径43および応力比44それぞれの候補値を列挙する。情報処理装置100は、コーナー角度41、メッシュサイズ42、フィレット半径43および応力比44の組み合わせパターンが異なる複数のシミュレーション条件を生成する。情報処理装置100は、シミュレーション条件毎に当該条件を満たす微細メッシュモデルのサンプルを生成して有限要素法シミュレーションを実行し、フィレット応力45の正解を算出する。
【0055】
図6は、コーナーおよびフィレットのパラメータ例を示す図である。
メッシュモデル37は、1個のコーナーまたはフィレットを示すサンプルである。左辺の長さが50ミリメートル、下辺の長さが50ミリメートル、上辺の長さが20ミリメートル、右辺の長さが20ミリメートルである。上辺とコーナー頂点の間の長さが30ミリメートル、右辺とコーナー頂点の間の長さが30ミリメートルである。
【0056】
コーナー角度41の候補値は、30度、60度、90度、120度および150度である。メッシュサイズ42の候補値は、1ミリメートル、2ミリメートル、3ミリメートル、4ミリメートルおよび5ミリメートルである。メッシュサイズ42は、例えば、要素の一辺の長さに相当する。フィレット半径43の候補値は、0.1ミリメートル、0.2ミリメートル、0.3ミリメートル、0.4ミリメートルおよび0.5ミリメートルである。フィレット半径43が大きいほど、角の曲線が緩やかになる。
【0057】
応力比44の候補値は、1対0、1対0.25、1対0.5、1対0.75および1対1である。応力比44は、角に付加される力のパターンを示す負荷条件である。一般に、応力比44は、角を挟んだ異なる辺の2点における節点ミーゼス応力(Nodal Mises Stress)S,Sのうち、大きい方の値に対する小さい方の値の比率である。第2の実施の形態では、応力比44はF1/F2と規定される。F1は、角の右側において上辺から下辺に向かって生じる力である。F2は、角の上側において右辺から左辺に向かって生じる力であり、F1と垂直である。また、物体の弾性を示す材質パラメータとして、ヤング率(Young Modulus)が70000、ポアソン比(Poisson Ratio)が0.3に設定される。
【0058】
このように、情報処理装置100は、訓練データの生成にあたって、コーナー角度41、メッシュサイズ42、フィレット半径43および応力比44それぞれについて5個の候補値を設定する。情報処理装置100は、これら候補値の組み合わせパターンを網羅的に生成することで、625個のシミュレーション条件を生成する。情報処理装置100は、625個のシミュレーション条件それぞれに従って、微細メッシュモデルの有限要素法シミュレーションを実行し、正解のフィレット応力を算出する。ただし、有限要素法シミュレーションを用いる代わりに、部品を試作してフィレット応力を測定してもよい。
【0059】
情報処理装置100は、生成された訓練データに基づいて機械学習によりニューラルネットワーク140を生成する。ニューラルネットワーク140を用いて微細シミュレーション結果34を予測することで、構造解析シミュレーションが高速化される。
【0060】
図7は、応力予測の速度倍率の例を示すグラフである。
グラフ91の横軸は、粗メッシュモデルのメッシュサイズを表す。グラフ91の縦軸は、速度倍率を表す。速度倍率の分子は、微細メッシュモデルを用いた有限要素法シミュレーションの実行時間である。速度倍率の分母は、粗メッシュモデルを用いた有限要素法シミュレーションの実行時間と、ニューラルネットワーク140によるフィレット応力予測の実行時間の合計である。速度倍率が大きいほど、実行時間の低減効果が大きい。
【0061】
グラフ91に示すように、メッシュサイズが1ミリメートルの場合の速度倍率は、約1.7倍である。メッシュサイズが2ミリメートルの場合の速度倍率は、約1.8倍である。メッシュサイズが3ミリメートルの場合の速度倍率は、約1.9倍である。メッシュサイズが4ミリメートルの場合の速度倍率は、約2.2倍である。メッシュサイズが5ミリメートルの場合の速度倍率は、2.88倍である。このように、ニューラルネットワーク140を利用するフィレット応力予測は、有限要素法シミュレーションのみを用いる数値解析法よりも高速である。また、メッシュサイズが大きいほど高速化の効果が大きい。
【0062】
次に、粗メッシュモデル32の作成について説明する。
図8は、ニューラルネットワークを用いた応力予測の第2の例を示す図である。
微細メッシュモデル31が先に存在する場合、微細メッシュモデル31に基づいて粗メッシュモデル32が作成される。ただし、ユーザが手作業で粗メッシュモデル32を作成することは負担が大きい。特に、工業部品に多数のフィレットが含まれる場合、各フィレットをコーナーに修正する修正作業の負担が大きい。また、微細メッシュモデル31に対応する粗メッシュモデル32のメッシュパターンは、微細メッシュモデル31から自明であるとは限らない。よって、粗メッシュモデル32の品質が低くなるリスクがある。
【0063】
そこで、情報処理装置100は、グラフ畳み込みニューラルネットワーク150を用いて、微細メッシュモデル31から粗メッシュモデル32を自動的に生成する。グラフ畳み込みニューラルネットワーク150は、機械学習で生成される畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)である。畳み込みニューラルネットワークは、積和演算の一種である畳み込み演算を行う多層ニューラルネットワークである。
【0064】
ただし、グラフ畳み込みニューラルネットワーク150は、一般的な畳み込みニューラルネットワークと異なり、画像データの代わりにメッシュデータを扱う。一般的な畳み込みニューラルネットワークは、格子状に並んだ画素の特徴量を画素間の隣接関係に応じて算出する。一方、グラフ畳み込みニューラルネットワーク150は、メッシュモデルに含まれるエッジの特徴量をエッジ間の接続関係に応じて算出する。グラフ畳み込みニューラルネットワーク150が、メッシュ畳み込みニューラルネットワークと呼ばれてもよい。
【0065】
情報処理装置100は、微細メッシュモデル31に含まれるエッジの情報をグラフ畳み込みニューラルネットワーク150に入力する。グラフ畳み込みニューラルネットワーク150は、各エッジの特徴量を算出し、エッジ特徴量に基づいて一部のエッジを除去する。グラフ畳み込みニューラルネットワーク150は、残ったエッジの特徴量から、微細メッシュモデル31が示す物体のクラス(種別)を判定する。情報処理装置100は、グラフ畳み込みニューラルネットワーク150から、クラス判定の途中で生成された中間データを抽出することで、粗メッシュモデル32を生成する。
【0066】
グラフ畳み込みニューラルネットワーク150を用いて生成される粗メッシュモデル32は、微細メッシュモデル31の本質的特徴を表す重要なエッジを含む。例えば、情報処理装置100は、25724個の要素を含む微細メッシュモデル31から、8626個の要素を含む粗メッシュモデル32を生成する。
【0067】
図9は、グラフ畳み込みニューラルネットワークの構造例を示す図である。
グラフ畳み込みニューラルネットワーク150は、4個の畳み込み層151-1~151-4と、4個のプーリング層152-1~152-4と、2個の全結合層153-1,153-2とを含む。畳み込み層151-1の次段にプーリング層152-1がある。プーリング層152-1の次段に畳み込み層151-2がある。畳み込み層151-2の次段にプーリング層152-2がある。プーリング層152-2の次段に畳み込み層151-3がある。畳み込み層151-3の次段にプーリング層152-3がある。プーリング層152-3の次段に畳み込み層151-4がある。畳み込み層151-4の次段にプーリング層152-4がある。プーリング層152-4の次段に全結合層153-1がある。全結合層153-1の次段に全結合層153-2がある。
【0068】
グラフ畳み込みニューラルネットワーク150は、連結された750個のエッジを1つのバッチとして処理する。グラフ畳み込みニューラルネットワーク150は、750個のエッジの初期の特徴量を受け付ける。各エッジ特徴量は、5次元のベクトルである。また、グラフ畳み込みニューラルネットワーク150は、入力データが示す物体のクラスを示すクラスベクトルを出力する。クラスベクトルは、30次元のベクトルである。クラスベクトルの1つの次元は1つのクラスに対応する。クラスベクトルは、入力データの示す物体が、30個のクラスそれぞれに属する確率を列挙したものである。クラスベクトルは、最大確率をもつクラスに入力データが分類されることを示している。
【0069】
畳み込み層151-1~151-4は、畳み込み演算によって各エッジの特徴量を更新する。あるエッジの特徴量は、そのエッジに隣接する隣接エッジの特徴量を反映するように更新される。畳み込み層151-1~151-4の前後でエッジ数は変化しない。
【0070】
プーリング層152-1~152-4は、プーリング演算によって一部のエッジを除去する。プーリング層152-1~152-4は、前段の畳み込み層によって算出されたエッジ特徴量に基づいて重要性の低いエッジを判定し、重要性の低いエッジを除去する。除去されるエッジの数は、機械学習の前に与えられるハイパーパラメータである。あるエッジが除去されると、当該エッジの両端にある節点が統合される。また、当該エッジに隣接する隣接エッジの特徴量が更新される。
【0071】
畳み込み層151-1は、750個分のエッジ特徴量を出力する。プーリング層152-1は、750個のエッジの中から150個のエッジを除去し、600個分のエッジ特徴量を出力する。畳み込み層151-2は、600個分のエッジ特徴量を出力する。プーリング層152-2は、600個のエッジの中から150個のエッジを除去し、450個分のエッジ特徴量を出力する。畳み込み層151-3は、450個分のエッジ特徴量を出力する。プーリング層152-3は、450個のエッジの中から150個のエッジを除去し、300個分のエッジ特徴量を出力する。畳み込み層151-4は、300個分のエッジ特徴量を出力する。プーリング層152-4は、300個のエッジの中から120個のエッジを除去し、180個分のエッジ特徴量を出力する。
【0072】
全結合層153-1は、180個分のエッジ特徴量から、次元数が30より大きいベクトルを生成する。全結合層153-2は、全結合層153-1が出力するベクトルから、30次元のクラスベクトルを生成し、クラスベクトルを出力する。
【0073】
ただし、情報処理装置100は、構造解析シミュレーションにおいて、グラフ畳み込みニューラルネットワーク150が出力するクラスベクトルそのものは使用しない。情報処理装置100は、微細メッシュモデル31をグラフ畳み込みニューラルネットワーク150に入力し、プーリング層152-2の出力を抽出する。プーリング層152-2の出力は、750個のエッジのうちクラス判定にとって重要性の高い450個のエッジを示す情報である。情報処理装置100は、プーリング層152-2の出力が示すエッジの集合を、粗メッシュモデル32として生成する。
【0074】
なお、第2の実施の形態ではプーリング層の個数が4個であるが、プーリング層の個数を変更することも可能である。また、第2の実施の形態では、情報処理装置100は2番目のプーリング層の出力を抽出しているが、3番目のプーリング層など他のプーリング層の出力を抽出してもよい。使用するプーリング層は、グラフ畳み込みニューラルネットワーク150の機械学習の際に決定されてもよいし、粗シミュレーション結果33を生成する際に選択されてもよい。使用するプーリング層は、ユーザから指定されてもよい。
【0075】
図10は、グラフ畳み込みニューラルネットワークの入出力例を示す図である。
情報処理装置100は、ニューラルネットワーク140用の訓練データとは別に、グラフ畳み込みニューラルネットワーク150用の訓練データを生成して機械学習を行う。訓練データは、教師ラベルが付されたメッシュモデルのサンプルから生成される。各サンプルは、30個のクラスのうちの何れか1つのクラスに属する物体の形状を表す。教師ラベルは、物体の属する正解クラスを示す。
【0076】
例えば、メッシュモデル51,52,53は、メッシュモデルのサンプルである。メッシュモデル51は、犬の形状を表しており、クラスが犬であることを示す教師ラベルが付されている。メッシュモデル52は、猫の形状を表しており、クラスが猫であることを示す教師ラベルが付されている。メッシュモデル53は、ラップトップ型コンピュータの形状を表しており、クラスがラップトップであることを示す教師ラベルが付されている。
【0077】
情報処理装置100は、メッシュモデル51からエッジを抽出して入力データを生成すると共に、犬に対応する次元のみが1であり他の次元が0である教師データ54を生成する。同様に、情報処理装置100は、メッシュモデル52からエッジを抽出して入力データを生成すると共に、猫に対応する次元のみが1であり他の次元が0である教師データ55を生成する。また、情報処理装置100は、メッシュモデル53からエッジを抽出して入力データを生成すると共に、ラップトップに対応する次元のみが1であり他の次元が0である教師データ56を生成する。
【0078】
機械学習では、情報処理装置100は、前述のニューラルネットワーク140と同様の誤差伝播法を実行する。情報処理装置100は、メッシュモデル51に対応する入力データをグラフ畳み込みニューラルネットワーク150に入力し、その出力と教師データ54との誤差を評価して、グラフ畳み込みニューラルネットワーク150の重みを更新する。誤差は、例えば、2個のベクトルの間のユークリッド距離である。
【0079】
また、情報処理装置100は、メッシュモデル52に対応する入力データをグラフ畳み込みニューラルネットワーク150に入力し、その出力と教師データ55との誤差を評価して、グラフ畳み込みニューラルネットワーク150の重みを更新する。また、情報処理装置100は、メッシュモデル53に対応する入力データをグラフ畳み込みニューラルネットワーク150に入力し、その出力と教師データ56との誤差を評価して、グラフ畳み込みニューラルネットワーク150の重みを更新する。
【0080】
図11は、メッシュモデルに対する段階的なプーリングの例を示す図である。
上記のグラフ畳み込みニューラルネットワーク150によれば、プーリング層152-1~152-4を通じて、微細メッシュモデル31が段階的に簡略化される。情報処理装置100は、プーリング層152-1~152-4の中の適切なプーリング層の出力を抽出することで、有限要素法シミュレーションに適した粗メッシュモデル32を取得する。情報処理装置100は、最終的な出力であるクラスベクトルを無視してよい。
【0081】
例えば、情報処理装置100は、メッシュモデル61をグラフ畳み込みニューラルネットワーク150に入力する。すると、プーリング層152-1の出力からメッシュモデル62が得られる。メッシュモデル62は、メッシュモデル61と比べてエッジが少なく簡略化されている。また、プーリング層152-2の出力からメッシュモデル63が得られる。メッシュモデル63は、メッシュモデル62と比べて更にエッジが少なく簡略化されている。また、プーリング層152-3の出力からメッシュモデル64が得られる。メッシュモデル64は、メッシュモデル63と比べて更にエッジが少なく簡略化されている。また、プーリング層152-4の出力からメッシュモデル65が得られる。メッシュモデル65は、メッシュモデル64と比べて更にエッジが少なく簡略化されている。
【0082】
グラフ畳み込みニューラルネットワーク150を生成する機械学習の際に、ユーザは、プーリング層152-1~152-4の出力を確認して、適切なプーリング層を選択するようにしてもよい。また、ユーザは、有限要素法シミュレーションを試行し、その実行時間と粗シミュレーション結果33の精度を考慮してプーリング層を選択してもよい。
【0083】
次に、グラフ畳み込みニューラルネットワーク150の畳み込み演算(メッシュ畳み込み演算)およびプーリング演算(メッシュプーリング演算)について説明する。メッシュ畳み込み演算およびメッシュプーリング演算については、例えば、下記の文献にも記載されている。Rana Hanocka, Amir Hertz, Noa Fish, Raja Giryes, Shachar Fleishman and Daniel Cohen-Or, "MeshCNN: A Network with an Edge", ACM Transactions on Graphics, Volume 38, Issue 4, Article No. 90, July 2019。
【0084】
図12は、エッジ特徴量のパラメータ例を示す図である。
まず、情報処理装置100は、入力メッシュモデルに含まれる各エッジの特徴量(初期のエッジ特徴量)を算出する。エッジ70は、節点71と節点72とを接続するエッジである。エッジ70は、節点71,72,73によって形成される三角形の面に属する。また、エッジ70は、節点71,72,74によって形成される三角形の面にも属する。このように、1個のエッジは2個の面に属している。
【0085】
情報処理装置100は、エッジ70に対応するエッジ特徴量(Edge Feature)eを算出する。エッジ特徴量eは、5次元のベクトルである。第1次元は、エッジ70が属する2個の面の間の角度である二面角(Dihedral Angle)を示す。第2次元は、一方の面の頂点の内角(Inner Angle)を示す。例えば、第2次元は、節点74の内角である。第3次元は、他方の面の頂点の内角を示す。例えば、第3次元は、節点73の内角である。
【0086】
第4次元は、一方の面の底辺と高さの比であるエッジ長比(Edge Length Ratio)、すなわち、エッジ70の長さと一方の面の頂点(例えば、節点74)からエッジ70に下ろした垂線の長さとの間の比率である。第5次元は、他方の面の底辺と高さの比であるエッジ長比、すなわち、エッジ70の長さと他方の面の頂点(例えば、節点73)からエッジ70に下ろした垂線の長さとの間の比率である。
【0087】
畳み込み層151-1~151-4は、残存しているエッジ毎に、メッシュ畳み込み演算を行ってエッジ特徴量を更新する。メッシュ畳み込み演算には、着目するエッジが属する2個の面に含まれる他の4個のエッジである隣接エッジのエッジ特徴量が使用される。よって、5個のエッジのエッジ特徴量が1セットとして処理される。
【0088】
以下では、代表して畳み込み層151-1の処理について説明する。上記のエッジ特徴量の定義に従い、畳み込み層151-1は、エッジ70のエッジ特徴量eを取得する。また、畳み込み層151-1は、節点72,73間の隣接エッジのエッジ特徴量aと、節点71,73間の隣接エッジのエッジ特徴量bと、節点71,74間の隣接エッジのエッジ特徴量cと、節点72,74間の隣接エッジのエッジ特徴量dとを取得する。
【0089】
ここで、4個の隣接エッジの順序は、エッジ70を基準にして左回りとして規定される。ただし、メッシュモデル上では2個の面の優先順位が一意に決まらないため、4個のエッジ特徴量の順序として(a,b,c,d)と(c,d,a,b)の2通りが有り得る。そこで、メッシュ畳み込み演算の不変性を保証するため、畳み込み層151-1は、数式(1)に示すようにエッジ特徴量a,b,c,dをエッジ特徴量e,e,e,eに変換する。エッジ特徴量e,e,e,eは対称性をもっている。
【0090】
【数1】
【0091】
畳み込み層151-1は、エッジ70のエッジ特徴量eおよび4個の隣接エッジのエッジ特徴量e,e,e,eに基づいて、数式(2)に示すようにエッジ特徴量eを更新する。数式(2)のk,k,k,k,kは、機械学習によって決定されるカーネル係数であり、5個のエッジ特徴量の重みを示す。なお、エッジ特徴量e,e,e,e,eは5次元のベクトルである。カーネル係数k,k,k,k,kは、5個の次元の間で共通であってもよいし、次元毎に異なってもよい。
【0092】
【数2】
【0093】
上記のメッシュ畳み込み演算は、行列演算として実装され得る。例えば、畳み込み層151-1は、サイズがN×N×5のテンソルを生成する。Nは各エッジ特徴量の次元数であり、N=5である。Nは1回のメッシュ畳み込み演算で着目するエッジの個数であり、例えば、N=1である。最後の「5」は、着目するエッジと隣接エッジの合計数を意味する。また、畳み込み層151-1は、カーネル係数を並べたカーネル行列を保持する。畳み込み層151-1は、上記のテンソルとカーネル行列との間で、ドット積(Dot Product)としてのGeMM(General Matrix Multiplication)を実行する。なお、カーネル行列を複数用意することで、エッジ毎に複数のエッジ特徴量が算出され得る。
【0094】
図13は、プーリングによるエッジ除去の例を示す図である。
プーリング層152-1~152-4は、それぞれ前段の畳み込み層で算出されたエッジ特徴量に基づいて、特定の個数(例えば、150個)のエッジを除去する。以下では、代表してプーリング層152-1の処理について説明する。
【0095】
プーリング層152-1は、エッジ毎にエッジ特徴量のL2ノルムを算出する。L2ノルムは、ベクトル空間の原点であるゼロベクトルからのユークリッド距離を示す二乗和平方根である。プーリング層152-1は、L2ノルムが小さい方から優先的に特定の個数のエッジを選択する。ここで選択されるエッジは、重要度が低いエッジである。プーリング層152-1は、選択されたエッジを除去し、当該エッジの両端の節点を1つに統合する。統合後の節点の位置は、例えば、両端の節点の位置の中間である。これに伴い、4個の隣接エッジのうちの2個の隣接エッジが消滅する。プーリング層152-1は、残った2個の隣接エッジのエッジ特徴量を更新する。
【0096】
例えば、エッジ81,82,83が1つの面を形成し、エッジ81,84,85が1つの面を形成している場合を考える。エッジ81は前述のエッジ70に相当し、エッジ特徴量eをもつ。エッジ82はエッジ特徴量aをもち、エッジ83はエッジ特徴量bをもち、エッジ84はエッジ特徴量cをもち、エッジ85はエッジ特徴量dをもつ。
【0097】
エッジ特徴量eのL2ノルムが最小である場合、プーリング層152-1は、エッジ81を除去する。すると、エッジ82,83がエッジ86に統合され、エッジ84,85がエッジ87に統合される。このように、重要度の低い1個のエッジが選択されると、5個のエッジが2個のエッジに統合され、2個の面が消滅する。
【0098】
プーリング層152-1は、エッジ86のエッジ特徴量pと、エッジ87のエッジ特徴量qとを算出する。エッジ特徴量pは、1個の面を形成するエッジ81,82,83のエッジ特徴量e,a,bの平均ベクトルである。エッジ特徴量qは、1個の面を形成するエッジ81,84,85のエッジ特徴量e,c,dの平均ベクトルである。
【0099】
なお、プーリング層152-1は、入力メッシュモデル全体における節点の分布またはエッジの分布を考慮して、除去するエッジを選択するようにしてもよい。例えば、プーリング層152-1は、入力メッシュモデルの中から、節点の密度またはエッジの密度が閾値を超える領域を検出する。プーリング層152-1は、検出された領域の中から、L2ノルムが最小のエッジを選択して除去する。この場合、プーリング層152-1は、密度が低い領域に含まれるエッジは、L2ノルムが小さくても除去しなくてよい。
【0100】
次に、情報処理装置100の機能および処理手順について説明する。なお、第2の実施の形態の情報処理装置100は機械学習と応力予測の両方を実行しているが、異なる情報処理装置が機械学習と応力予測を実行することも可能である。この場合、一方の情報処理装置から他方の情報処理装置に学習モデルが送信される。
【0101】
図14は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、メッシュ記憶部121、サンプル結果記憶部122および学習モデル記憶部123を有する。これらの記憶部は、例えば、RAM102またはHDD103を用いて実装される。また、情報処理装置100は、グラフCNN学習部124、NN学習部125、粗メッシュ生成部126、有限要素法実行部127および応力予測部128を有する。これらの処理部は、例えば、CPU101またはGPU104と、プログラムとを用いて実装される。
【0102】
メッシュ記憶部121は、メッシュモデルを記憶する。記憶されるメッシュモデルには、グラフ畳み込みニューラルネットワーク150の機械学習に使用されるサンプルが含まれる。また、記憶されるメッシュモデルには、ニューラルネットワーク140の教師データを生成するために使用されるサンプルが含まれる。また、記憶されるメッシュモデルには、応力予測の対象の微細メッシュモデル31が含まれる。
【0103】
サンプル結果記憶部122は、ニューラルネットワーク140の機械学習に使用される有限要素法シミュレーションの結果を記憶する。記憶されるシミュレーション結果には、微細メッシュモデルのサンプルから生成された微細シミュレーション結果が含まれる。学習モデル記憶部123は、機械学習によって生成されたニューラルネットワーク140およびグラフ畳み込みニューラルネットワーク150を記憶する。
【0104】
グラフCNN学習部124は、メッシュ記憶部121からメッシュモデル51,52,53などのサンプルを読み出し、訓練データを生成する。グラフCNN学習部124は、生成された訓練データを用いて、誤差逆伝播法によりグラフ畳み込みニューラルネットワーク150を生成する。グラフCNN学習部124は、生成されたグラフ畳み込みニューラルネットワーク150を学習モデル記憶部123に保存する。
【0105】
NN学習部125は、サンプル結果記憶部122からサンプルのシミュレーション結果を読み出し、訓練データを生成する。NN学習部125は、生成された訓練データを用いて、誤差逆伝播法によってニューラルネットワーク140を生成する。NN学習部125は、生成されたニューラルネットワーク140を学習モデル記憶部123に保存する。
【0106】
粗メッシュ生成部126は、メッシュ記憶部121から微細メッシュモデル31を読み出し、学習モデル記憶部123からグラフ畳み込みニューラルネットワーク150を読み出す。粗メッシュ生成部126は、微細メッシュモデル31から入力データを生成して、グラフ畳み込みニューラルネットワーク150に入力する。粗メッシュ生成部126は、プーリング層152-2の出力を抽出して粗メッシュモデル32を生成する。
【0107】
有限要素法実行部127は、機械学習にあたり、メッシュ記憶部121から微細メッシュモデルのサンプルを読み出す。有限要素法実行部127は、サンプルに対して反復法としての数値解析法を実行する。有限要素法実行部127は、算出された応力を示す微細シミュレーション結果を生成し、サンプル結果記憶部122に保存する。
【0108】
また、有限要素法実行部127は、応力予測にあたり、粗メッシュ生成部126から粗メッシュモデル32を受信する。有限要素法実行部127は、粗メッシュモデル32に対して反復法としての数値解析法を実行する。有限要素法実行部127は、算出された応力を示す粗シミュレーション結果33を生成し、応力予測部128に送信する。
【0109】
応力予測部128は、学習モデル記憶部123からニューラルネットワーク140を読み出し、有限要素法実行部127から粗シミュレーション結果33を受信する。応力予測部128は、粗シミュレーション結果33を用いて入力データを生成してニューラルネットワーク140に入力し、応力の予測値を示す微細シミュレーション結果34を生成する。応力予測部128は、微細シミュレーション結果34を出力する。応力予測部128は、微細シミュレーション結果34をHDD103に保存してもよいし、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
【0110】
図15は、メッシュデータおよび訓練データの構造例を示す図である。
メッシュ記憶部121は、メッシュモデル毎に節点テーブル131および面テーブル132を記憶する。節点テーブル131は、複数の節点それぞれについて、節点を識別する節点IDと、節点の位置を示す三次元座標とを含む。面テーブル132は、複数の面それぞれについて、面を識別する面IDと、面を形成する3つの節点の節点IDとを含む。
【0111】
グラフCNN学習部124は、訓練データテーブル133を生成する。訓練データテーブル133は、750個のエッジのエッジ特徴量とクラスベクトルとをそれぞれ含む複数のレコードを含む。750個のエッジ特徴量は、説明変数および入力データに相当する。クラスベクトルは、目的変数および教師データに相当する。各エッジ特徴量は、二面角、内角1、内角2、エッジ長比1およびエッジ長比2を含む5次元のベクトルである。クラスベクトルは、何れか1つの次元のみ「1」である30次元のベクトルである。
【0112】
NN学習部125は、訓練データテーブル134を生成する。訓練データテーブル134は、コーナー角度、メッシュサイズ、フィレット半径、応力比およびフィレット応力をそれぞれ含む複数のレコードを含む。コーナー角度、メッシュサイズ、フィレット半径および応力比は、説明変数および入力データに相当する。フィレット応力は、目的変数および教師データに相当する。コーナー角度、メッシュサイズ、フィレット半径および応力比は、625通りのシミュレーション条件としてユーザから与えられる。フィレット応力は、有限要素法実行部127において算出される。
【0113】
図16は、機械学習の手順例を示すフローチャートである。
(S10)グラフCNN学習部124は、微細メッシュモデルのサンプルからエッジを抽出し、着目するエッジと4個の隣接エッジとの関係から、各エッジのエッジ特徴量を算出する。グラフCNN学習部124は、連結された所定個数のエッジのエッジ特徴量を含む入力データを生成する。また、グラフCNN学習部124は、微細メッシュモデルのサンプルに付されたラベルから、教師データとしてのクラスベクトルを生成する。グラフCNN学習部124は、入力データと教師データとを対応付けた訓練データを生成する。
【0114】
(S11)グラフCNN学習部124は、ステップS10で生成された訓練データを用いて、誤差逆伝播法によってグラフ畳み込みニューラルネットワーク150を生成する。
(S12)有限要素法実行部127は、前述の625通りのシミュレーション条件それぞれについて、当該シミュレーション条件を満たす微細メッシュモデルのサンプルを取得し、有限要素法シミュレーションを実行して微細シミュレーション結果を生成する。
【0115】
(S13)NN学習部125は、微細メッシュモデルのサンプルの中からフィレットを抽出する。フィレットは、ユーザによって指定されてもよい。また、NN学習部125は、パターンマッチングによってフィレットを検出してもよい。
【0116】
(S14)NN学習部125は、ステップS12のシミュレーション条件から、各フィレットのパラメータを示す入力データを生成する。また、NN学習部125は、ステップS12で算出されたフィレット応力を示す教師データを生成する。NN学習部125は、入力データと教師データとを対応付けた訓練データを生成する。
【0117】
(S15)NN学習部125は、ステップS14で生成された訓練データを用いて、誤差逆伝播法によってニューラルネットワーク140を生成する。
(S16)有限要素法実行部127は、ステップS11で生成されたグラフ畳み込みニューラルネットワーク150を保存する。NN学習部125は、ステップS15で生成されたニューラルネットワーク140を保存する。
【0118】
図17は、応力シミュレーションの手順例を示すフローチャートである。
(S20)粗メッシュ生成部126は、シミュレーション対象の微細メッシュモデル31を取得し、微細メッシュモデル31からエッジを抽出し、着目するエッジと4個の隣接エッジとの関係から、各エッジのエッジ特徴量を算出する。粗メッシュ生成部126は、連結された所定個数のエッジのエッジ特徴量を含む入力データを生成する。
【0119】
(S21)粗メッシュ生成部126は、グラフ畳み込みニューラルネットワーク150に入力データを入力する。粗メッシュ生成部126は、グラフ畳み込みニューラルネットワーク150の中のプーリング層152-2の出力を抽出し、プーリング層152-2が出力したエッジを示す粗メッシュモデル32を生成する。
【0120】
(S22)有限要素法実行部127は、粗メッシュモデル32に対して有限要素法シミュレーションを実行し、粗シミュレーション結果33を生成する。
(S23)応力予測部128は、粗メッシュモデル32の中からコーナーを抽出する。コーナーは、ユーザによって指定されてもよい。また、応力予測部128は、パターンマッチングによってコーナーを検出してもよい。
【0121】
(S24)応力予測部128は、粗メッシュモデル32が示すコーナー角度41およびメッシュサイズ42と、微細メッシュモデル31が示すフィレット半径43と、粗シミュレーション結果33が示す応力比44とを含む入力データを生成する。
【0122】
(S25)応力予測部128は、ニューラルネットワーク140にステップS24の入力データを入力して、フィレット応力45を予測する。応力予測部128は、予測されたフィレット応力45を含む微細シミュレーション結果34を生成する。
【0123】
(S26)応力予測部128は、微細シミュレーション結果34を出力する。例えば、応力予測部128は、微細シミュレーション結果34をHDD103などの不揮発性ストレージに保存する。また、例えば、応力予測部128は、微細シミュレーション結果34を表示装置111に表示する。また、例えば、応力予測部128は、微細シミュレーション結果34を他の情報処理装置に送信する。
【0124】
以上説明したように、第2の実施の形態の情報処理装置100は、フィレットを示す微細メッシュモデル31から、フィレット応力を示す微細シミュレーション結果34を生成して出力する。よって、工業部品の設計にとって有用な情報が提供される。また、情報処理装置100は、微細メッシュモデル31に対応する粗メッシュモデル32から、有限要素法シミュレーションによって粗シミュレーション結果33を生成し、粗シミュレーション結果33から、微細シミュレーション結果34を予測する。よって、微細メッシュモデル31から、有限要素法シミュレーションによって微細シミュレーション結果34を直接生成する場合と比べて、計算量が減少し実行時間が短縮される。
【0125】
また、情報処理装置100は、粗メッシュモデル32を、グラフ畳み込みニューラルネットワーク150を利用して微細メッシュモデル31から自動的に生成する。よって、微細メッシュモデル31とは別に粗メッシュモデル32を作成するユーザの負担が軽減され、構造解析シミュレーションが効率化される。
【0126】
また、情報処理装置100は、粗メッシュモデル32を、グラフ畳み込みニューラルネットワーク150に含まれる途中のプーリング層の出力に基づいて生成する。ここで、グラフ畳み込みニューラルネットワーク150は、重要度の低いエッジを複数のプーリング層によって段階的に除去するように学習されている。よって、微細メッシュモデル31の本質的特徴が保存された高品質な粗メッシュモデル32が生成される。その結果、粗シミュレーション結果33および微細シミュレーション結果34の精度が向上する。
【符号の説明】
【0127】
10 情報処理装置
11 記憶部
12 処理部
13,14 学習済みモデル
15,16 メッシュデータ
17,18 シミュレーション結果データ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17