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

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

▶ 株式会社Preferred Networksの特許一覧

特許7403032訓練装置、推定装置、訓練方法、推定方法及びプログラム
<>
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図1
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図2
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図3
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図4
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図5
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図6
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図7
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図8
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図9
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図10
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図11
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図12
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図13
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図14
  • 特許-訓練装置、推定装置、訓練方法、推定方法及びプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-13
(45)【発行日】2023-12-21
(54)【発明の名称】訓練装置、推定装置、訓練方法、推定方法及びプログラム
(51)【国際特許分類】
   G16C 20/70 20190101AFI20231214BHJP
【FI】
G16C20/70
【請求項の数】 42
(21)【出願番号】P 2023527953
(86)(22)【出願日】2022-06-10
(86)【国際出願番号】 JP2022023521
(87)【国際公開番号】W WO2022260178
(87)【国際公開日】2022-12-15
【審査請求日】2023-07-06
(31)【優先権主張番号】P 2021098292
(32)【優先日】2021-06-11
(33)【優先権主張国・地域又は機関】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】高本 聡
(72)【発明者】
【氏名】品川 幾
【審査官】塩田 徳彦
(56)【参考文献】
【文献】国際公開第2021/054402(WO,A1)
【文献】特開平05-089074(JP,A)
【文献】国際公開第2011/021279(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G16C 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
1又は複数のプロセッサ、を備え、
前記1又は複数のプロセッサは、
原子構造に関する情報と、原子シミュレーションのラベル情報とに基づいて、ニューラルネットワークモデルから出力を取得し、
前記ニューラルネットワークモデルは、前記ラベル情報に対応する前記原子シミュレーションにより生成される、前記原子構造に対するシミュレーション結果を推論するように訓練されている、
推定装置。
【請求項2】
前記1又は複数のプロセッサは、
前記原子構造に関する情報と、前記ラベル情報とを前記ニューラルネットワークモデルに入力することによって、前記出力を取得する、
請求項1に記載の推定装置。
【請求項3】
前記ニューラルネットワークモデルは、複数の出力を生成する構成であって、
前記1又は複数のプロセッサは、
前記ラベル情報に基づいて、前記ニューラルネットワークモデルの前記複数の出力のいずれかを選択することによって前記出力を取得する、
請求項1に記載の推定装置。
【請求項4】
前記1又は複数のプロセッサは、
前記原子構造に関する情報を、前記ラベル情報に基づいて決定される第1ニューラルネットワークモデルに入力し、
前記第1ニューラルネットワークモデルからの出力を、前記ニューラルネットワークモデルに入力することによって、前記出力を取得する、
請求項1に記載の推定装置。
【請求項5】
前記ラベル情報は、少なくとも、
前記原子シミュレーションに用いるソフトウェア、
前記原子シミュレーションに用いる計算手法、
前記原子シミュレーションに用いる関数、
前記原子シミュレーションに用いるパラメータ、
前記原子シミュレーションに用いる計算条件、又は、
前記原子シミュレーションに用いる演算モード
のいずれかの情報を含む、
請求項1から請求項4のいずれかに記載の推定装置。
【請求項6】
前記ニューラルネットワークモデルからの出力は、少なくとも、エネルギー又は力のいずれかの情報を含む、
請求項1から請求項4のいずれかに記載の推定装置。
【請求項7】
前記ニューラルネットワークモデルは、NNP(Neural Network Potential)に係るモデルである、
請求項1から請求項4のいずれかに記載の推定装置。
【請求項8】
前記原子シミュレーションは、第一原理計算を用いて実行される、
請求項1から請求項4のいずれかに記載の推定装置。
【請求項9】
前記原子シミュレーションは、DFT(Density Function Theory)計算を用いて実行される、
請求項1から請求項4のいずれかに記載の推定装置。
【請求項10】
前記ラベル情報は、少なくとも、汎関数又は基底関数のいずれかの情報を含む、
請求項9に記載の推定装置。
【請求項11】
前記ラベル情報は、少なくとも、前記DFT計算の第1条件又は前記DFT計算の第2条件のいずれかの情報を含み、
前記第1条件は、周期境界条件において前記第2条件より精度が高い前記DFT計算を実行可能な条件であり、
前記第2条件は、自由境界条件において前記第1条件より精度が高い前記DFT計算を実行可能な条件である、
請求項9に記載の推定装置。
【請求項12】
前記原子シミュレーションは、少なくとも、
異なる2以上のソフトウェアを用いて実行されるシミュレーション、
異なる2以上の計算手法を用いて実行されるシミュレーション、
異なる2以上の関数を用いて実行されるシミュレーション、
異なる2以上のパラメータを用いて実行されるシミュレーション、
異なる2以上の計算条件を用いて実行されるシミュレーション、又は
異なる2以上の演算モードを用いて実行されるシミュレーション、
のいずれかである、
請求項1から請求項4のいずれかに記載の推定装置。
【請求項13】
1又は複数のプロセッサ、を備え、
前記1又は複数のプロセッサは、
第1原子構造に関する情報と、原子シミュレーションの第1ラベル情報とに基づいて、ニューラルネットワークモデルから第1出力を取得し、
前記第1出力と、前記第1ラベル情報に対応する前記原子シミュレーションにより生成される前記第1原子構造に対する第1シミュレーション結果と、の第1誤差を算出し、
第2原子構造に関する情報と、前記原子シミュレーションの第2ラベル情報とに基づいて、前記ニューラルネットワークモデルから第2出力を取得し、
前記第2出力と、前記第2ラベル情報に対応する前記原子シミュレーションにより生成される前記第2原子構造に対する第2シミュレーション結果と、の第2誤差を算出し、
前記第1誤差と、前記第2誤差と、に基づいて、前記ニューラルネットワークモデルのパラメータを更新する、
訓練装置。
【請求項14】
前記1又は複数のプロセッサは、
前記第1原子構造に関する情報と、前記第1ラベル情報とを前記ニューラルネットワークモデルに入力することによって、前記第1出力を取得し、
前記第2原子構造に関する情報と、前記第2ラベル情報とを前記ニューラルネットワークモデルに入力することによって、前記第2出力を取得する、
請求項13に記載の訓練装置。
【請求項15】
前記ニューラルネットワークモデルは、前記第1ラベル情報に対する出力及び前記第2ラベル情報に対する出力を生成するよう構成され、
前記1又は複数のプロセッサは、
前記第1ラベル情報に基づいて、前記第1ラベル情報に対する出力を前記第1出力として取得し、
前記第2ラベル情報に基づいて、前記第2ラベル情報に対する出力を前記第2出力として取得する、
請求項13に記載の訓練装置。
【請求項16】
前記1又は複数のプロセッサは、
前記第1原子構造に関する情報を、前記第1ラベル情報に基づいて決定される第1ニューラルネットワークモデルに入力し、
前記第1ニューラルネットワークモデルからの出力を、前記ニューラルネットワークモデルに入力することによって、前記第1出力を取得し、
前記第2原子構造に関する情報を、前記第2ラベル情報に基づいて決定される第2ニューラルネットワークモデルに入力し、
前記第2ニューラルネットワークモデルからの出力を、前記ニューラルネットワークモデルに入力することによって、前記第2出力を取得し、
前記第1誤差と、前記第2誤差と、に基づいて、前記第1ニューラルネットワークモデルのパラメータ及び前記第2ニューラルネットワークモデルのパラメータを更新する、
請求項13に記載の訓練装置。
【請求項17】
前記第1原子構造と前記第2原子構造は、同一又は略同一の原子構造を含む、
請求項13から請求項16のいずれかに記載の訓練装置。
【請求項18】
前記原子シミュレーションは、異なる2以上のソフトウェアを用いて実行されるものであり、
前記第1ラベル情報に対応する前記原子シミュレーション及び前記第2ラベル情報に対応する前記原子シミュレーションは、同一又は異なるソフトウェアを用いて実行される、
請求項13から請求項16のいずれかに記載の訓練装置。
【請求項19】
前記原子シミュレーションは、少なくとも、
異なる2以上のソフトウェアを用いて実行されるシミュレーション、
異なる2以上の計算手法を用いて実行されるシミュレーション、
異なる2以上の関数を用いて実行されるシミュレーション、
異なる2以上のパラメータを用いて実行されるシミュレーション、
異なる2以上の計算条件を用いて実行されるシミュレーション、又は
異なる2以上の演算モードを用いて実行されるシミュレーション、
のいずれかである、
請求項13から請求項16のいずれかに記載の訓練装置。
【請求項20】
前記第1ラベル情報は、少なくとも、
前記原子シミュレーションに用いる第1ソフトウェア、
前記原子シミュレーションに用いる第1計算手法、
前記原子シミュレーションに用いる第1関数、
前記原子シミュレーションに用いる第1パラメータ、
前記原子シミュレーションに用いる第1計算条件、又は、
前記原子シミュレーションに用いる第1演算モードのいずれかの情報を含み、
前記第2ラベル情報は、少なくとも、
前記原子シミュレーションに用いる第2ソフトウェア、
前記原子シミュレーションに用いる第2計算手法、
前記原子シミュレーションに用いる第2関数、
前記原子シミュレーションに用いる第2パラメータ、
前記原子シミュレーションに用いる第2計算条件、又は、
前記原子シミュレーションに用いる第2演算モードのいずれかの情報を含む、
請求項13から請求項16のいずれかに記載の訓練装置。
【請求項21】
前記ニューラルネットワークモデルからの出力は、少なくとも、エネルギー又は力のいずれかの情報を含む、
請求項13から請求項16のいずれかに記載の訓練装置。
【請求項22】
前記ニューラルネットワークモデルは、NNPに係るモデルである、
請求項13から請求項16のいずれかに記載の訓練装置。
【請求項23】
前記原子シミュレーションは、第一原理計算を用いて実行される、
請求項13から請求項16のいずれかに記載の訓練装置。
【請求項24】
前記原子シミュレーションは、DFT計算を用いて実行される、
請求項13から請求項16のいずれかに記載の訓練装置。
【請求項25】
前記第1ラベル情報は、少なくとも、第1汎関数又は第1基底関数のいずれかの情報を含み、
前記第2ラベル情報は、少なくとも、第2汎関数又は第2基底関数のいずれかの情報を含む、
請求項24に記載の訓練装置。
【請求項26】
前記第1ラベル情報は、前記DFT計算の第1条件の情報を含み、
前記第2ラベル情報は、前記DFT計算の第2条件の情報を含み、
前記第1条件は、周期境界条件において前記第2条件より精度が高い前記DFT計算を実行可能な条件であり、
前記第2条件は、自由境界条件において前記第1条件より精度が高い前記DFT計算を実行可能な条件である、
請求項24に記載の訓練装置。
【請求項27】
請求項13から請求項16のいずれかに記載の訓練装置を用いて、前記ニューラルネットワークモデルを生成する、
モデル生成方法。
【請求項28】
1又は複数のプロセッサにより、
原子構造に関する情報と、原子シミュレーションのラベル情報とに基づいて、ニューラルネットワークモデルから出力を取得する、
方法であって、
前記ニューラルネットワークモデルは、前記ラベル情報に対応する前記原子シミュレーションにより生成される、前記原子構造に対するシミュレーション結果を推論するように訓練されている、
推定方法。
【請求項29】
前記1又は複数のプロセッサにより、
前記原子構造に関する情報と、前記ラベル情報とを前記ニューラルネットワークモデルに入力することによって、前記出力を取得する、
請求項28に記載の推定方法。
【請求項30】
前記ニューラルネットワークモデルは、複数の出力を生成する構成であって、
前記1又は複数のプロセッサによって、
前記ラベル情報に基づいて、前記ニューラルネットワークモデルの前記複数の出力のいずれかを選択することによって前記出力を取得する、
請求項28に記載の推定装置。
【請求項31】
前記1又は複数のプロセッサによって、
前記原子構造に関する情報を、前記ラベル情報に基づいて決定される第1ニューラルネットワークモデルに入力し、
前記第1ニューラルネットワークモデルからの出力を、前記ニューラルネットワークモデルに入力することによって、前記出力を取得する、
請求項28に記載の推定装置。
【請求項32】
前記ラベル情報は、少なくとも、
前記原子シミュレーションに用いるソフトウェア、
前記原子シミュレーションに用いる計算手法、
前記原子シミュレーションに用いる関数、
前記原子シミュレーションに用いるパラメータ、
前記原子シミュレーションに用いる計算条件、又は、
前記原子シミュレーションに用いる演算モード
のいずれかの情報を含む、
請求項28から請求項31のいずれかに記載の推定装置。
【請求項33】
前記ニューラルネットワークモデルからの出力は、少なくとも、エネルギー又は力のいずれかの情報を含む、
請求項28から請求項31のいずれかに記載の推定装置。
【請求項34】
前記ニューラルネットワークモデルは、NNP(Neural Network Potential)に係るモデルである、
請求項28から請求項31のいずれかに記載の推定装置。
【請求項35】
前記原子シミュレーションは、第一原理計算を用いて実行される、
請求項28から請求項31のいずれかに記載の推定装置。
【請求項36】
前記原子シミュレーションは、DFT(Density Function Theory)計算を用いて実行される、
請求項28から請求項31のいずれかに記載の推定装置。
【請求項37】
前記ラベル情報は、少なくとも、汎関数又は基底関数のいずれかの情報を含む、
請求項36に記載の推定装置。
【請求項38】
前記ラベル情報は、少なくとも、前記DFT計算の第1条件又は前記DFT計算の第2条件のいずれかの情報を含み、
前記第1条件は、周期境界条件において前記第2条件より精度が高い前記DFT計算を実行可能な条件であり、
前記第2条件は、自由境界条件において前記第1条件より精度が高い前記DFT計算を実行可能な条件である、
請求項36に記載の推定装置。
【請求項39】
前記原子シミュレーションは、少なくとも、
異なる2以上のソフトウェアを用いて実行されるシミュレーション、
異なる2以上の計算手法を用いて実行されるシミュレーション、
異なる2以上の関数を用いて実行されるシミュレーション、
異なる2以上のパラメータを用いて実行されるシミュレーション、
異なる2以上の計算条件を用いて実行されるシミュレーション、又は
異なる2以上の演算モードを用いて実行されるシミュレーション、
のいずれかである、
請求項28から請求項31のいずれかに記載の推定装置。
【請求項40】
1又は複数のプロセッサにより、
第1原子構造に関する情報と、原子シミュレーションの第1ラベル情報とに基づいて、ニューラルネットワークモデルから第1出力を取得し、
前記第1出力と、前記第1ラベル情報に対応する前記原子シミュレーションにより生成される前記第1原子構造に対する第1シミュレーション結果と、の第1誤差を算出し、
第2原子構造に関する情報と、前記原子シミュレーションの第2ラベル情報とに基づいて、前記ニューラルネットワークモデルから第2出力を取得し、
前記第2出力と、前記第2ラベル情報に対応する前記原子シミュレーションにより生成される前記第2原子構造に対する第2シミュレーション結果と、の第2誤差を算出し、
前記第1誤差と、前記第2誤差と、に基づいて、前記ニューラルネットワークモデルのパラメータを更新する、
訓練方法。
【請求項41】
1又は複数のプロセッサに、
原子構造に関する情報と、原子シミュレーションのラベル情報とに基づいて、ニューラルネットワークモデルから出力を取得する、
方法を実行させるプログラムであって、
前記ニューラルネットワークモデルは、前記ラベル情報に対応する前記原子シミュレーションにより生成される、前記原子構造に対するシミュレーション結果を推論するように訓練されている、
プログラム。
【請求項42】
1又は複数のプロセッサに、
第1原子構造に関する情報と、原子シミュレーションの第1ラベル情報とに基づいて、ニューラルネットワークモデルから第1出力を取得し、
前記第1出力と、前記第1ラベル情報に対応する前記原子シミュレーションにより生成される前記第1原子構造に対する第1シミュレーション結果と、第1誤差を算出し、
第2原子構造に関する情報と、前記原子シミュレーションの第2ラベル情報とに基づいて、前記ニューラルネットワークモデルから第2出力を取得し、
前記第2出力と、前記第2ラベル情報に対応する前記原子シミュレーションにより生成される前記第2原子構造に対する第2シミュレーション結果と、第2誤差を算出し、
前記第1誤差と、前記第2誤差と、に基づいて、前記ニューラルネットワークモデルのパラメータを更新する、
方法を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、訓練装置、推定装置、訓練方法、推定方法及びプログラムに関する。
【背景技術】
【0002】
原子シミュレーションである第一原理計算を用いて、物質のある環境下におけるエネルギー等を算出することが広く行われている。この第一原理計算は、シュレーディンガー方程式に基づき電子系のエネルギー等の物性を計算するため、比較的高い信頼性と解釈性を有する。一方で、第一原理計算は逐次的に収束計算を行うなどの理由から計算時間が掛かり、網羅的な材料探索等には適用が困難である。これに対して、近年、深層学習といった機械学習の手法を用いた物質の物性予測モデルの開発が広く行われている。この物性予測モデルの1つとして、NNP(Neural Network Potential)が挙げられる。
【0003】
このモデルの最適化においては、教師あり学習が用いられることが多い。教師データとして、すでに取得されている第一原理計算の結果、例えば、ウェブ上に公開されているデータベース等から取得した情報を用いることができる。しかしながら、第一原理計算等の量子演算は、それぞれの手法、パラメータに基づいた近似計算で実現されるため、使用する手法、当該手法において用いるパラメータ等により結果が異なる。
【0004】
このため、例えば、特定の第一原理計算手法について特定のパラメータにより取得された教師データを用いてNNPを訓練したとしても、条件を変えてしまうことにより推論の精度がよくないことがある。また、複数の第一原理計算手法において複数のパラメータの組み合わせにより取得された入力データ及び出力データのセットを教師データとしてNNPの訓練を実行すると、教師データが一貫しないデータであるため、訓練の精度を向上させることができないという問題がある。
【先行技術文献】
【非特許文献】
【0005】
【文献】G. Kresse, et. al., “VASP the GUIDE,” October 29, 2018, https://cms.mpi.univie.ac.at/vasp/vasp.pdf
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示の実施形態は、ニューラルネットワークモデルを用いてシミュレーションの結果を適切に推論する推定装置、及び、この推定装置に用いられる訓練済みモデルを訓練する訓練装置が提供する。
【課題を解決するための手段】
【0007】
一実施形態によれば、訓練装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、第1原子構造に関する情報と第1条件に関する第1ラベル情報とに基づいて、ニューラルネットワークモデルから第1出力を取得し、前記第1出力と、前記第1条件に基づく原子シミュレーションに基づいて生成される前記第1原子構造に対する第1シミュレーション結果と、の差分である第1差分情報を算出し、第2原子構造に関する情報と第2条件を含む第2ラベル情報とに基づいて、前記ニューラルネットワークモデルから第2出力を取得し、前記第2出力と、前記第2条件に基づく前記原子シミュレーションに基づいて生成される前記第2原子構造に対する第2シミュレーション結果と、の差分である第2差分情報を算出し、前記第1差分情報と、前記第2差分情報と、に基づいて、前記ニューラルネットワークモデルのパラメータを更新する、ように構成される。
【図面の簡単な説明】
【0008】
図1】一実施形態に係る推定装置を模式的に示すブロック図。
図2】一実施形態に係る推定装置における訓練済みモデルの入出力を模式的に示す図。
図3】一実施形態に係る推定装置の処理を示すフローチャート。
図4】一実施形態に係る訓練装置を模式的に示すブロック図。
図5】一実施形態に係る訓練装置におけるモデルの訓練を模式的に示す図。
図6】一実施形態に係る訓練装置の処理を示すフローチャート。
図7】一実施形態に係るモデルを模式的に示す図。
図8】一実施形態に係るモデルを模式的に示す図。
図9】一実施形態に係るモデルを模式的に示す図。
図10】一実施形態に係る訓練装置の処理を示すフローチャート。
図11】一実施形態に係る推定装置の処理を示すフローチャート。
図12】一実施形態に係るモデルを模式的に示す図。
図13】一実施形態に係る訓練装置の処理を示すフローチャート。
図14】一実施形態に係る推定装置の処理を示すフローチャート。
図15】一実施形態に係る推定装置又は訓練装置のハードウェア実装例を示す図。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
【0010】
(第1実施形態)
まず、本開示におけるいくつかの用語の説明をする。
【0011】
原子間ポテンシャル(原子間の相互作用ポテンシャルエネルギー)は、原子の配置からエネルギーを求める関数である。この関数は、一般的に人工的な関数である。MD(分子動力学: Molecular Dynamics)シミュレーションをする上での支配方程式に相当する関数である。原子間ポテンシャルの限定されない一例として、Lennard Jonesポテンシャルが挙げられる。
【0012】
NNP(Neural Network Potential)は、原子間ポテンシャルをニューラルネットワークモデルにより表したものである。
【0013】
2体ポテンシャル曲線は、系に2原子のみが存在する場合における、当該2原子の距離とエネルギーとの関係を示す。
【0014】
DFT(Density Function Theory: 密度汎関数理論)は、シュレーディンガー方程式にしたがい原子の構造に対応する物理状態を計算する手法である。このDFTは、計算負荷が極めて高い一方で精度の高い結果を取得することが可能である。NNPの訓練時には、例えば、DFTに基づいた演算により、訓練データが作成される。
【0015】
シュレーディンガー方程式は、特殊な場合を除き、厳密な解を求めるのが困難である。このため、DFTは、シュレーディンガー方程式を数値的に解析して近似計算により解を取得する。DFTにおける近似計算の手法は、複数あり、そのそれぞれにおいて適した状況があるため、実用上は、様々な近似手法が用いられる。近似手法によっては、異なる計算結果が取得される可能性が高い。この近似計算アルゴリズムは、精度をどこまで厳密にとるか、特定の現象を考慮するのかどうか、又は、汎関数(経験的な関数)に何を使用するか等により選択される。
【0016】
DFTの演算を行うためのソフトウェアとして、VASP(登録商標)、Gaussian(登録商標)等が挙げられる。これらは使用している近似アルゴリズムが異なる。例えば、VASPは、周期境界条件に対して精度が高く、Gaussianは、自由境界条件に対して精度が高いとされる。周期境界条件とは、結晶のように無限(十分大きな範囲)に続く構造であり、自由境界条件は、真空中に分子が孤立しているような構造である。上記の例であれば、結晶等について演算を実行したい場合にはVASPを用い、分子等の孤立した構造について演算を実行したい場合には、Gaussianが用いられることが望ましい。
【0017】
いくつかの実施形態において、第一原理計算においてDFTを用い、このDFTとしてVASP及びGaussianを用いる例について説明するが、本開示の内容は、これらに限定されるものではなく、種々の手法に応用できるものである。また、取得するシミュレーション結果として、ポテンシャル情報(エネルギー、力等に関する情報)を用いて説明するが、他のアルゴリズムによる他の情報であっても同様に実現することができる。
【0018】
(推定装置)
図1は、一実施形態に係る推定装置を模式的に示すブロック図である。推定装置1は、入力部100と、記憶部102と、推論部104と、出力部106と、を備える。この推定装置1は、化合物及び環境等の原子構造を入力すると、ポテンシャルに関する情報を出力するNNPに基づいた推論を実行する装置である。
【0019】
入力部100は、推定装置1におけるデータの入力を受け付けるインタフェースである。推定装置1は、この入力部100を介してポテンシャル情報を取得したい化合物の情報等(以下、原子構造と記載する)を取得する。原子構造は、一例として、原子の種類および位置に関する情報を含んでもよい。原子の位置に関する情報としては、原子の位置を座標によって直接的に示す情報や、原子間の相対位置を直接的に又は間接的に示す情報などが挙げられる。また、原子の位置に関する情報は、原子間の距離、角度、二面角等によって原子間の位置関係を表現する情報であってもよい。原子構造は、さらに、境界条件に関する情報を含んでもよい。また、推定装置1は、この入力部100を介してポテンシャル情報を取得するためのアルゴリズムを利用しているソフトウェア、さらには、当該ソフトウェアを用いる場合のパラメータの値に関する情報(以下、ラベル情報と記載する)を入力することもできる。
【0020】
記憶部102は、推定装置1の処理に必要となる各種データを格納する。例えば、記憶部102は、入力部100から入力された化合物に関する情報を一時的に格納してもよいし、また、訓練済みモデルを実装するためのハイパーパラメータ、パラメータ等を格納してもよい。
【0021】
推論部104は、入力部100を介して入力された原子構造及びラベル情報をモデルNNに入力することで、当該ラベル情報に基づいて計算された原子構造に関するポテンシャル情報を取得する。推論部104は、必要に応じて、入力部100から入力されたデータ形式を、モデルNNの入力層に入力するためのデータ形式へと変換してもよい。
【0022】
モデルNNは、訓練済みのニューラルネットワークモデルであり、例えば、NNPにおけるポテンシャルを取得するために用いられるモデルである。モデルNNを形成するための情報は、記憶部102に格納され、推論の実行時にモデルNNが形成されてもよい。モデルNNは、本形態の入出力が適切に可能である任意のニューラルネットワークモデルであってもよく、例えば、畳み込み層、全結合層を含むニューラルネットワークモデルであってもよいし、MLP(Multi-Layer Perceptron)を含むニューラルネットワークモデルであってもよい。また、グラフを扱えるニューラルネットワークモデルであってもよい。
【0023】
出力部106は、推論部104がモデルNNを用いて推論した結果を外部又は記憶部102へと出力する。
【0024】
この推定装置1における入出力のデータの一例について説明する。
【0025】
図2は、一実施形態に係る推定装置1のモデルNNにおける入出力データを模式的に示す図である。例えば、モデルNNは、入力層に原子構造とラベル情報が入力され、この入力データを順伝播し、出力層からエネルギーを出力する。この図においては、モデルNNは、1層の中間層を備えているが、多層であってもよい。例えば、ディープラーニングで訓練した多数の層を備える構成であってもよい。
【0026】
推定装置1の推論部104は、モデルNNから出力されたエネルギーを、原子構造として入力されている位置情報を用いて位置微分する(位置に対する勾配を求める)ことにより、力に関する情報を取得してもよい。例えば、入力する原子構造における位置情報を微小位置ずらしてモデルNNからの出力を取得することにより、微分情報を取得することが可能となる。また、エネルギーをモデルNNに逆伝播させることで力に関する情報を取得してもよい。
【0027】
このモデルNNは、後述する訓練装置により訓練されるため、原子構造及びラベル情報を含む入力データを入力することにより、ラベル情報に基づいたエネルギー等を出力する。すなわち、ある原子構造に対して、どのアルゴリズム(ソフトウェア)についてどのようなパラメータを用いてエネルギーを算出するかを指定することにより、ユーザが望んでいるアルゴリズム、パラメータにおける推論値を出力層から出力することができる。
【0028】
なお、ユーザが指定することなく、推論部104が原子構造等の条件に基づいて、適切なアルゴリズム、パラメータ等をラベル情報としてモデルNNに入力し、望ましい、例えば、精度が高い結果を出力する形態としてもよい。また、ユーザがラベル情報を指定している場合においても、推論部104がより精度が高くなると判定したラベル情報を選択し、ユーザが指定した結果と、推論部104が選択した結果とを併せて出力する形態としてもよい。精度が高い結果には、周期境界条件ではVASPに関するラベルが付与され、自由境界条件ではGaussianに関するラベルが付与される例があるが、これらの例に限定されるものではない。
【0029】
また、訓練時に、モデルNNとは別に、原子構造とラベル情報とを紐付けるニューラルネットワークモデルを訓練しておいてもよい。このニューラルネットワークモデルは、例えば、原子構造を入力するとラベル情報を出力するモデルである。このニューラルネットワークモデルは、例えば、訓練データセットにおいて類似する原子構造に対して多く付加されているラベル情報を出力することができる。推論部104は、このニューラルネットワークモデルに原子構造を入力し、ラベル情報を取得し、原子構造と出力されたラベル情報とをモデルNNに入力してもよい。
【0030】
また、前段落の記載からわかるように、ニューラルネットワークモデルを形成するのではなく、原子構造に対して何らかの統計情報を取得し、この統計情報に基づいて、ルールベースでラベル情報が付加されるものであってもよい。
【0031】
上記のいずれの場合においても、推論部104がラベル情報を決定する場合には、推定装置1は、選択したラベル情報をポテンシャル情報とともに出力してもよい。
【0032】
入力データの構成についてもモデルNNの構成とともに、後述にて詳しく説明する。
【0033】
図3は、一実施形態に係る推定装置1の処理を示すフローチャートである。
【0034】
推定装置1は、入力部100を介して、原子構造及び当該原子構造に対して適用するアルゴリズムの情報等を含むラベル構造のデータを受け付ける(S100)。必要があれば、推定装置1は、入力されたデータを記憶部102に格納する。
【0035】
推論部104は、上記の原子構造及びラベル情報を含む入力データを、モデルNNに入力して、順伝播させる(S102)。入力データがモデルNNの入力に適した形式ではない場合には、推論部104は、入力データをモデルNNの入力に適した形式へと変換し、モデルNNに入力する。
【0036】
推論部104は、順伝播させた結果をモデルNNから取得する(S104)。この順伝播した結果は、取得したポテンシャル情報を含むデータである。
【0037】
出力部106を介して、推定装置1は、推論部104が取得したポテンシャル情報を出力する(S106)。
【0038】
以上のように、本実施形態に係る推定装置を用いることで、ソフトウェアを指定した第一原理計算におけるポテンシャル情報を取得することが可能となる。この結果、種々の構造に対して、種々のアルゴリズムを用いた結果を推定することが可能となる。さらに、ソフトウェアにおけるパラメータを異なるものとした推定をすることをも可能となる。例えば、DFTでは適切に近似解を取得できないような場合であっても、本実施形態に係る推定装置によれば、適切に近似解を取得することができ、汎化性能、又は、ロバスト性の高いポテンシャル情報を取得することが可能となる。
【0039】
(訓練装置)
図4は、一実施形態に係る訓練装置を模式的に示すブロック図である。訓練装置2は、入力部200と、記憶部202と、訓練部204と、出力部206と、を備える。この訓練装置2は、化合物及び環境等の原子構造を入力すると、ポテンシャル情報を出力するNNPに基づいて推論を実行する装置である。また、上記の推定装置1におけるモデルNNの入力データと同様に、NNPの推論におけるソフトウェアに関する情報が併せて入力できるように訓練を実行する。
【0040】
入力部200は、訓練装置2におけるデータの入力を受け付けるインタフェースである。訓練装置2は、この入力部200を介して原子構造とラベル情報及び当該原子構造と、ラベル構造に基づいて計算されているポテンシャル情報と、の情報を含む訓練データ(教師データ)を入力データとして受け付ける。
【0041】
記憶部202は、訓練装置2の処理に必要となる各種データを格納する。例えば、記憶部202は、入力部200から入力された原子構造及びラベル情報と、ポテンシャル情報と、の組み合わせを記憶し、訓練において使用してもよい。また、訓練中におけるパラメータ等を格納してもよい。訓練装置2においては、訓練に用いるデータは、一般的に膨大な量となるので、記憶部202は、訓練装置2の他の構成要素が備えられる筐体と同じ筐体に備えられている必要は無い。例えば、記憶部202の少なくとも一部は、通信経路を介したファイルサーバに備えられていてもよい。この場合、ファイルサーバ等からのデータの取得は、入力部200を介して実行されてもよい。
【0042】
訓練部204は、訓練データである原子構造及びラベル情報をニューラルネットワークモデルであるモデルNNに入力し、出力データを取得する。訓練部204は、この原子構造及びラベル情報に紐付けられているポテンシャル情報と、モデルNNの出力データとを比較して誤差を算出し、この誤差に基づいてパラメータを更新する。この訓練は、特に限定されるものではなく、一般的な機械学習手法、ディープラーニング手法を用いて実行されてもよい。例えば、訓練部204は、出力された誤差を逆伝播し、逆伝播された誤差に基づいてモデルNNを構成する層間の重み付け行列等の勾配を算出し、この勾配を用いてパラメータを更新してもよい。
【0043】
出力部206は、訓練部204が訓練により最適化したモデルNNに関するパラメータ等を外部、又は、記憶部202へと出力する。
【0044】
上述の推定装置1において、モデルNNは、原子構造及びラベル情報に基づいて、ポテンシャル情報を出力する必要がある。このため、訓練装置2は、ラベル情報に含まれるアルゴリズム(ソフトウェア)及び演算パラメータの情報に基づいて原子構造から算出されるポテンシャル情報を出力するようにモデルNNを訓練する。
【0045】
図5は、訓練装置2におけるモデルNNの訓練の一例を模式的に示す図である。訓練部204は、入力されたデータセットのうち、原子構造及びラベル情報に関するデータをモデルNNに入力する。モデルNNから出力されたエネルギー等のポテンシャル情報と、それぞれの出力に対応する入力データに基づいて所定の演算手法により取得されたエネルギー等のポテンシャル情報との誤差を算出する。そして、訓練部204は、この誤差を用いてモデルNNのパラメータ等を更新することで、訓練を実行する。
【0046】
ラベル情報は、上述したように、原子構造からエネルギー等のポテンシャル求めるために用いたソフトウェア及び当該ソフトウェアにおいてポテンシャル情報を求めるために用いた演算パラメータ等の情報を少なくとも含む。訓練データは、原子構造とラベル情報とを含むデータであり、一般的な機械学習と同様に、適切に多くの量のデータが必要となる。
【0047】
本実施形態に係る訓練装置2においては、異なるドメインに属するデータ、すなわち、異なるラベル情報を有する複数のデータが訓練データとして準備されることが望ましい。また、同一のラベル情報において、種々の原子構造に関するデータがあるとより望ましい。
【0048】
訓練装置2は、これらの訓練データをラベル情報ごとに区別してモデルNNの訓練をするのではなく、訓練データをラベル情報に拘わらず混合した状態で訓練を実行する。例えば、機械学習の手法としてミニバッチ処理による訓練を実行する場合には、訓練装置2は、好ましくはバッチ内において異なるラベル情報を有するデータを用いて訓練をする。
【0049】
ただし、同一のラベル情報のみの訓練データを用いた訓練の実行の一切を排除するものではない。例えば、訓練装置2における訓練において、最終的に異なるラベル情報を用いたパラメータの更新がされるのであれば同一のラベル情報のみを有するミニバッチが存在していてもよい。
【0050】
また、異なるラベル情報同士において、共通する原子構造と、当該共通する原子構造に対するそれぞれのラベル情報におけるエネルギー等の値がデータとして備えられていることが望ましい。例えば、近似手法が異なっていたとしても、異なるラベル情報間の出力データには、線形又は非線形の関連性があることが推測される。
【0051】
異なるラベル情報において、共通する原子構造に関するデータが存在しない場合には、ニューラルネットワークモデルは、それぞれのラベル情報において取得されている訓練データに合致するように訓練が実行され、共通する原子構造に対する各ラベル情報の中間的な情報に対して、適切な訓練及び推論を実行できない可能性がある。
【0052】
これに対応するために、異なるラベル情報に対して、同一の原子構造、又は、同一の環境に属する原子構造についてのエネルギー等のデータを含む訓練データを用いることが望ましい。このように同一の原子構造等を有する訓練データを用いることにより、上記の線形又は非線形の関連性が訓練において反映される。この結果、ラベル情報に対して同様の環境にある原子構造がない場合であっても、他のラベル情報に同様の原子構造のデータが訓練データとして存在していた場合には、適切な推論処理を実行することが可能となる。
【0053】
以上のように、本実施形態では、同一の原子構造、又は、同一とみなすことができる原子構造(略同一の原子構造)を含めた訓練データを用いて訓練を実行することにより、モデルNNを用いた推論の精度を向上させることができる。
【0054】
同一の原子構造とは、限定されない一例として、同じ物質の原子構造のことであり、略同一の原子構造とは、限定されない一例として、同じ分子量、原子数、異なる原子における同じ原子配置、といったように、物質としては異なるが、構成に類似点が見られるような物質同士の原子配置のことである。また、結晶と離れた位置に分子がある場合と言った場合には、分子と分子、又は、結晶と分子の距離、姿勢が異なるといった場合も、略同一の原子構造としてもよい。
【0055】
原子構造からエネルギーを求める場合の具体例を挙げて説明する。第1ソフトウェアをVASPとし、第2ソフトウェアをGaussianとする。第1条件をVASPに適切なパラメータを適用した条件、第2条件をGaussianに適切なパラメータを適用した条件とする。第1ラベル情報は、第1条件を含む情報であり、第2ラベル情報は、第2条件を含む情報である。
【0056】
VASPは、第一原理計算であるDFTを用いるソフトウェアであり、原子構造の境界条件として結晶のような構造を表すのに適している周期境界条件を設定する場合に精度が高い。このため、結晶のような物質に対して適切なエネルギーを算出することができる。
【0057】
一方、Gaussianは、第一原理計算であるDFTを用いるソフトウェアであり、原子構造の境界条件として真空中の分子等の孤立した構造を表すのに適している自由境界条件を設定する場合に精度が高い。このため、分子のような物質に対して適切なエネルギーを算出することができる。
【0058】
このため、訓練データとして、第1条件で取得した種々の結晶構造に関するエネルギーの情報、及び、第2条件で取得した種々の分子構造に関するエネルギーのデータを精度の高いデータとして収集することが可能である。
【0059】
一方で、本実施形態においては、これらの原子構造の中間領域となる構造についてもVASP、Gaussianの双方でラベル情報に基づいたパラメータ設定で取得する。この中間のデータとは、例えば、分子の原子構造において、空間のユニットサイズを~10Å程度として設定した分子を示す原子構造、空間のユニットサイズを十分に大きくとって結晶の表面から十分に離れた位置に存在する分子と当該結晶構造とを示す原子構造、又は、原子の個数が数百に及ぶ自由境界条件を有する原子構造等のVASP、Gaussianのいずれにおいても、近似計算においてある程度の精度の結果が得られる領域のデータを取得する。このように、同じ(又は略同じ)原子構造において、ラベル情報が異なる訓練データを取得することが可能となる。
【0060】
このように、第1条件及び第2条件において共通の原子構造を用いることで、第1条件及び第2条件の関連性を訓練装置2によりモデルNNに訓練させる。この訓練結果により、第1条件及び第2条件の間の関連性がモデルNNに組み込まれるので、例えば、第1条件において、「第2条件で計算するのに適した原子構造」についてのエネルギー等の量を推論することのできるモデルNNの訓練をすることができる。
【0061】
なお、上記においては、ポテンシャル情報を取得するためにVASP、Gaussianを挙げたが、使用するソフトウェアは、これに限定されるものではない。異なるアルゴリズムを用いて近似計算するソフトウェアであればよく、例えば、GAMESS、WIEN2k、PHASE、CASTEP、Quantum Espresso等の他のソフトウェアを用いてもよい。さらに、DFTを用いるソフトウェアではなく、他の手法を用いて第一原理計算を実現できるソフトウェアであってもよい。例えば、Hartree-Fock法、MP2法等に基づいた演算を実行するソフトウェアであってもよい。さらにまた、第一原理計算ではなく、シミュレーション結果を取得するための別の原子シミュレーションを実行するソフトウェアであってもよい。
【0062】
これらの場合においても、使用するソフトウェア及びパラメータの組み合わせにおいて、同じ(又は略同じ)原子構造の訓練データを取得することが望ましい。
【0063】
まとめると、訓練装置2は、第1原子構造に関するデータと第1条件を含む第1ラベル情報とをモデルNNに入力して出力された第1結果、及び、第1原子構造に対する第1条件(第1ソフトウェア(第1アルゴリズムを用いてもよい)におけるあるパラメータ)において近似計算された第1シミュレーション結果、の第1誤差を算出して、この第1誤差をモデルNNの訓練に用いる。
【0064】
同様に、訓練装置2は、第2原子構造に関するデータと第2条件を含む第2ラベル情報とをモデルNNに入力して出力された第2結果、及び、第2原子構造に対する第2条件(第2ソフトウェア(第2アルゴリズムを用いてもよい)におけるあるパラメータ)において近似計算された第2シミュレーション結果、の第2誤差を算出して、この第2誤差をモデルNNの訓練に用いる。
【0065】
なお、第1ソフトウェアにおいて第1アルゴリズムを用いるものと、第1ソフトウェアにおいて第2アルゴリズムを用いるものとを別々の条件とすることもできる。
【0066】
第1条件に含まれる第1ソフトウェア及び第2条件に含まれる第2ソフトウェアは、同じ種類のポテンシャル情報を取得できるソフトウェアである。例えば、これらのソフトウェアは、第一原理計算によりポテンシャル(エネルギー)を算出するソフトウェアである。また、この第一原理計算には、DFTが用いられてもよい。さらに、これらのソフトウェアにより、物質に関する力の情報を取得してもよい。訓練部204は、モデルNNから出力されたエネルギーの値を位置微分することで、力の情報をさらに取得してもよく、この情報を用いてパラメータの更新を実行してもよい。
【0067】
例えば、第1条件は、周期境界条件を用いる場合に、第2条件よりも精度が高い演算が実行できる条件であってもよい。また、第2条件は、自由境界条件を用いる場合に、第1条件よりも精度が高い演算が実行できる条件であってもよい。これらを満たす限定されない一例として、第1条件において用いる第1ソフトウェアは、VASPであり、第2条件において用いる第2ソフトウェアは、Gaussianであってもよい。
【0068】
訓練データには、第1ラベル情報に対する複数の第1原子構造及び第1原子構造に対応する第1シミュレーション結果のデータセットと、第2ラベル情報に対する複数の第2原子構造及び第2原子構造に対応する第2シミュレーション結果のデータセットが含まれていることが望ましい。さらに、第1原子構造のデータセットと、第2原子構造のデータセットには、同一又は略同一(原子構造に関しての同じドメインに属するデータ)の原子構造が含まれていることが望ましい。もちろん、同一又は略同一の原子構造に対する第1シミュレーション結果と、第2シミュレーション結果とは、異なるアルゴリズム、パラメータで演算された結果であるので、異なるエネルギー値を示してもよい。
【0069】
別の例として、第1ソフトウェア、第2ソフトウェアがいずれもVASPであり、第1条件、第2条件として、別の計算手法、あるいは、パラメータが用いられてもよい。また、第1条件と第2条件とでソフトウェアは同一で、計算手法とパラメータの両方が異なっていてもよい。
【0070】
すなわち、ラベル情報は、計算手法、当該計算手法に用いる関数、及び、当該計算手法におけるパラメータ等について種々の情報を含むことができる。この情報に基づいてシミュレーションを実行して訓練に用いるデータセットを生成してもよい。限定されない例として、異なるソフトウェアによる異なる計算条件若しくは同じ計算条件、又は、同じソフトウェアによる異なる計算条件若しくは同じ計算条件、等を、シミュレーションが実行可能な範囲で任意な組み合わせで実行してデータセットを生成してもよい。このようなデータセットを用いることで、ラベル情報を付加した入力に対してより精度が高いモデルの訓練を実現することができる。
【0071】
訓練装置2は、このような情報を含む訓練データによりモデルNNの訓練を実行することにより、汎化性能を向上させたモデルNNの最適化を実現することができる。
【0072】
なお、上記においては、第1~と、第2~としたが、もちろん、第3~、第4~等があってもよい。これらの数は、限定されるものではない。また、第3~、第4~等についても上記と同様な関連性が保証されることが望ましい。例えば、条件は第1条件と第2条件の2つの条件に限定されず、3つ以上の条件があってもよい。ラベル情報も第1ラベル情報と第2ラベル情報の2つのラベル情報に限定されず、3つ以上のラベル情報があってもよい。原子構造も第1原子構造と第2原子構造の2つの原子構造に限定されず、3つ以上の原子構造があってもよい。シミュレーション結果も第1シミュレーション結果と第2シミュレーション結果の2つのシミュレーション結果に限定されず、3つ以上のシミュレーション結果があってもよい。これらの情報に基づいて、上記と同様な方法によりニューラルネットワークモデルを訓練してもよい。
【0073】
図6は、一実施形態に係る訓練装置の処理を示すフローチャートである。
【0074】
訓練装置2は、入力部200を介して訓練データを受け付ける(S200)。
【0075】
訓練部204は、入力された訓練データのうち、原子構造に関するデータと、ラベル情報に関するデータと、をモデルNNに入力して、順伝播させる(S202)。入力データがモデルNNの入力に適した形式ではない場合には、訓練部204は、入力データをモデルNNの入力に適した形式へと変換し、モデルNNに入力する。
【0076】
訓練部204は、順伝播させた結果をモデルNNから取得する(S204)。この順伝播した結果は、ポテンシャル情報として取得したい情報を含むデータである。
【0077】
訓練部204は、モデルNNから取得した情報と、モデルNNに入力したデータに対応するポテンシャル情報と、を比較して、誤差を算出する(S206)。
【0078】
訓練部204は、誤差に基づいて、モデルNNのパラメータを更新する(S208)。訓練部204は、例えば、誤差逆伝播法により勾配に基づいて、モデルNNのパラメータを更新する。
【0079】
訓練部204は、あらかじめ設定されている終了条件に基づいて、訓練が終了したか否かを判定する(S210)。終了条件は、一般的な機械学習手法の終了条件と同等であってもよい。
【0080】
訓練の終了条件を満たしていない場合(S210: NO)、S202からの処理を繰り返す。必要であれば、モデルNNに入力する訓練データを変えて、S202からの処理を繰り返す。
【0081】
訓練の終了条件お満たしている場合(S210: YES)、モデルNNのパラメータ等、モデルNNの構築に必要となる訓練済みのデータを適切に出力して処理を終了する(S212)。
【0082】
このように、このモデルNNは、第1原子構造に関する情報と第1ラベル情報とが入力されると、第1原子構造に関する情報と、第1条件に関する第1ラベル情報とをニューラルネットワークモデルに入力した第1出力(例えば、第一原理計算による結果)を取得し、第2原子構造に関する情報と第2ラベル情報とが入力されると、第2出力(例えば、第一原理計算による結果)を取得するニューラルネットワークモデルとして訓練され、推定装置1において用いられる。
【0083】
以上のように、本実施形態に係る訓練装置をもちいることで、ソフトウェア、演算パラメータ等を考慮した推論が実現できるニューラルネットワークモデルの訓練を行うことが可能となる。この訓練装置により訓練された訓練済みモデルは、ソフトウェア、演算パラメータに対する汎化性能を向上した推論をすることができる。
【0084】
例えば、一般的にはVASPで演算するドメインと、Gaussianで演算するドメインとは異なるものであるが、このように訓練されたモデルを用いることにより、VASPで演算した方がよいドメインにおいてGaussianで演算した結果を取得する、といったことができる。例えば、分子のエネルギー取得に適したGaussianを用いた結晶のエネルギーを推論するモデルを生成することができる。
【0085】
このモデルを上述した推定装置1におけるモデルNNとして用いることにより、ユーザは、ソフトウェア及び演算パラメータを指定した上でのエネルギー等のポテンシャル情報を取得することが可能となる。例えば、分子ドメインと結晶ドメインとでエネルギー値の比較をしたい場合に、異なる近似計算手法を用いた結果ではなく、擬似的に同じ近似計算手法を用いた結果において比較する、といったことが実現可能となる。
【0086】
次に、本実施形態におけるニューラルネットワークモデルの入力データについて限定されないいくつかの例を挙げて説明する。本実施形態に係る推定装置1及び訓練装置2においては、モデルNNに入力するデータは、原子構造と、ラベル情報と、を備える。
【0087】
原子構造は、一例として、境界条件に関する情報と、構成する原子に関する情報と、を含む。境界条件に関するベクトルをB、構成する原子に関するベクトルをAとおく。この場合、原子構造を示すベクトルCは、BとAを連結(concatenate)した
C = [B, A]
と表してもよい。
【0088】
境界条件に関する情報は、自由境界条件と、周期境界条件と、を示す情報である。また、周期境界条件である場合には、原子構造を示すユニットの大きさを示す情報が含まれる。例えば、境界条件に関する情報は、以下のように表すことができる。
B = [Btype, Bx, By, Bz]
【0089】
Btypeは、自由境界条件か、周期境界条件か、を示すバイナリ値である。Bx、By、Bzは、周期境界条件である場合のユニットサイズを、3軸を用いて表すものである。例えば、自由境界条件である場合、Btype = 0、周期境界条件である場合、Btype = 1とする。そして、周期境界条件である場合には、ユニットサイズをBx、By、Bzに指定する。訓練においてノイズを避けるため、自由境界条件の場合には、Bx、By、Bzのいずれをも0にする設定としてもよい。この他、推論部104、訓練部204において、Btype(自由境界条件指定の場合は0)と、Bx、By、Bzとのそれぞれの積を、モデルNNに入力してもよい。
【0090】
また、Btypeを用いずに、
B = [Bx, By, Bz]
とし、自由境界条件を指定する場合には、Bx = By = Bz = 0とし、周期境界条件を指定する場合には、ユニットサイズをBx、By、Bzとする形態であってもよい。Bx、By、Bzの単位は、Åであってもよい。例えば、原点を設定し、当該原点から、x軸方向にBx、y軸方向にBy、z軸方向にBzの長さをユニットサイズとして指定する。原子の位置情報も、この原点に対する位置情報(座標情報)として指定することができる。
【0091】
また、ベクトルBには、ユニットの形状を示すパラメータが備えられてもよい。ベクトルBは、例えば、3軸の角度を示す3要素をさらに備えてもよいし、この他の形状に関する要素をさらに備えてもよい。
【0092】
構成する原子に関する情報は、構成する原子の種類とそれぞれの位置情報とをセットとし、物質を構成する原子ごとに設定される。例えば、原子Atom1、Atom2、・・・、AtomNがある場合には以下のように表すことができる。
A = [Atom1t, Atom1x, Atom1y, Atom1z, Atom2t, Atom2x, Atom2y, Atom2z, ..., AtomNt, AtomNx, AtomNy, AtomNz]
【0093】
AtomXtは、AtomXの原子の種類を示す。原子の種類は、例えば、水素原子なら1、炭素原子なら6のように、原子番号で示されてもよい。
【0094】
AtomXx、AtomXy、AtomXzは、それぞれAtomXが存在する位置を示す。上述したように、この位置は、原点からÅを単位とした座標で示されてもよいし、他の基本単位を用いた座標で示されてもよいし、また、これらの記述に限定されるものではない。
【0095】
原子がN個の場合には、上記のAtomXt、AtomXx、AtomXy、AtomXzの情報をN個連結したベクトルをAとする。
【0096】
すなわち、原子構造を示すベクトルCは、以下のように表される。
C = [Btype, Bx, By, Bz, Atom1t, Atom1x, Atom1y, Atom1z, Atom2t, Atom2x, Atom2y, Atom2z, ..., AtomNt, AtomNx, AtomNy, AtomNz]
この他、原子の個数を指定する変数が含まれていてもよい。
【0097】
次に、ラベル情報を示すベクトルLについて説明する。ラベル情報は、例えば、推定装置1において推定したい、又は、訓練装置2において訓練データを取得するために用いたソフトウェア及び当該ソフトウェアにおいて使用するパラメータを含む。ここで、ソフトウェアと記載しているが、これは、アルゴリズム、と読み替えてもよい。ソフトウェアを示すベクトル(又はスカラー)をSとし、パラメータを示すベクトルをPとする。ラベル情報Lは、SとPを連結し、以下のように定義してもよい。
L = [S, P]
【0098】
Sは、例えば、VASPを用いる場合は1、Gaussianを用いる場合は2、と表されるスカラーとしてもよい。この場合、推論においては、VASPとGaussianの中間の仮想の近似演算器1.5等を指定することもできる。別の例として、3以上のソフトウェアを用いる場合には、3、4、・・・等として指定することができる。
【0099】
また、ベクトル表現としての別の例として、
S = [V, G]
等とし、使用するソフトウェアがVASPならS = [1, 0]、GaussianならS = [0, 1]といったワンホットベクトル形式とすることもできる。さらに多くのソフトウェアを訓練/推論において用いる場合には、ワンホットベクトルを長くすることで対応することができる。
【0100】
Pは、それぞれのソフトウェアにおいて用いるパラメータを指定するベクトルで表現される。例えば、Pは、M個のパラメータ情報を用いる場合に、以下のように表すことができる。
P = [Param1, Param2, ..., ParamM]
ベクトルの各要素は、離散値(整数値を含む)、トグル値、連続値のいずれの表現であってもよい。
【0101】
それぞれのパラメータが離散値で表される場合には、
P = [Param1_1, Param1_2, ..., Param1_i, Parm2_1, ..., Param2_j, ..., ParamM_1, ..., ParamM_k]
としてワンホットベクトルで表すこともできる。
【0102】
また、
P = [Param1, Param2_1, ..., Param2_j, ..., ParamM]
といったように、一部をワンホットベクトルで表す形式であってもよい。
【0103】
ラベル情報の具体的な例として、以下のような演算モードを考える。モードは、簡単な例として、{ソフトウェア、交換相関汎関数、基底関数、DFT+U使用あり/なし}として表すことができるものとする。
モード1: {Gaussian, ωB97XD, 6-31G(d), なし}
モード2: {VASP, PBE, 平面波, あり}
モード3: {VASP, PBE, 平面波, なし}
モード4: {VASP, rPBE, 平面波, なし}
【0104】
このようなモード設定(ラベル情報)である場合、Lは、4つの要素を有するベクトル(ソフトウェアを示すスカラーとパラメータを示す3次元ベクトル)で表すことができる。もちろん、上述したように、任意の要素をワンホットベクトルで表現したものであってもよい。
【0105】
例えば、ソフトウェア情報は、VASPを1、Gaussianを2とする。パラメータ情報において、交換相関汎関数は、ωB97XDを1、PBEを2、rPBEを3とし、基底関数は、6-31G(d)を1、平面波を2、DFT+Uは、DFT+Uを用いる場合を1、用いない場合を0とする。このように定義すると、各モードは、以下のように書き換えられる。
モード1: L = [2, 1, 1, 0]
モード2: L = [1, 2, 2, 1]
モード3: L = [1, 2, 2, 0]
モード4: L = [1, 3, 2, 0]
【0106】
なお、DFT+Uは、連続値で指定することもできる。この場合、0であれば、DFT+Uを使用しない、0以外であれば、DFT+Uに関するパラメータを示す連続値、としてもよい。
【0107】
上記のモードは、例えば、ソフトウェアをワンホットベクトルで記述する場合には、以下のように書き換えられる。
モード1: L = [0, 1, 1, 1, 0]
モード2: L = [1, 0, 2, 2, 1]
モード3: L = [1, 0, 2, 2, 0]
モード4: L = [1, 0, 3, 2, 0]
【0108】
上記に挙げたようなパラメータの例及び各種表現方法は、一例としてあげたものであり、本開示における技術範囲を限定するものではない。種々の発展的な任意な次元であるベクトル、マトリクス、又は、テンソルの表現方法を用いることができる。
【0109】
訓練装置2は、上記のように定義される原子構造及びラベル情報をモデルNNに入力して出力を取得し、この取得した出力と訓練データにおけるポテンシャル情報とを比較してモデルNNのパラメータを更新する。
【0110】
そして、推定装置1は、このように訓練されたモデルNNを用いてラベル情報(例えば、上記のモード)と、原子構造とを入力することで、ラベル情報に基づいた演算を行ったポテンシャル情報を取得することができる。
【0111】
なお、入出力のインタフェースとしては、推定装置1は、上記に示したようなモードに関する情報をユーザに選択させる形式としてもよい。この場合、ユーザは、ポテンシャル情報を取得したい原子構造を入力し、モードを選択することで、選択したモードにおける演算を行った原子構造に対応するポテンシャル情報を取得することができる。
【0112】
なお、本実施形態におけるラベル情報は、少なくとも、原子シミュレーションにおける各種計算条件、計算手法(計算アルゴリズム)、計算に用いるソフトウェア、又は、ソフトウェアにおける各種パラメータのいずれか1つに関する情報を含んでいればよい。また、原子シミュレーションの第1条件及び第2条件として、上述したラベル情報のうち少なくとも1つが異なる条件であってもよい。また、本実施形態では、原子シミュレーションの一例として、第一原理計算を示したが、他の手法を用いてシミュレーション結果を取得するものであってもよい。半経験的分子軌道法やフラグメント分子軌道法などを用いて原子シミュレーションを実行し、シミュレーション結果を取得するものであってもよい。
【0113】
本実施形態によれば、ラベル情報を付加した原子構造に対して、適切にラベル情報に基づいた原子構造のポテンシャル情報を取得することが可能なモデルを生成及びこのモデルを用いた推論を実現することができる。DFT計算においては、同じ原子構造に対しても、計算条件により精度が異なることがある。本実施形態に係る訓練及び推論によれば、ドメインに拘わらず計算手法を指定して訓練及び推論をすることが可能である。このため、本実施形態に係るモデルを用いたNNPによれば、適切なドメインにおいて適切な計算条件による結果を取得することが可能となる。さらに、計算条件に対して適切な(精度が高い)ドメインではない場合であっても、他の計算条件と当該計算条件との差を補正するような訓練をすることができる。このため、本実施形態に係る訓練及び推論は、NNPに用いるモデルに適用することで、種々の計算条件に対する種々のドメインに属する原子構造のポテンシャル情報を適切に推論することが可能となる。
【0114】
より具体的には、DFT計算の結果は、同一入力に対するソフトウェア、パラメータ等により出力にずれを有する傾向にある。一方で、DFT計算の結果自体は、一般的に、一意に定まるため、NNPモデルの訓練においては、このずれが訓練に影響を及ぼす。例えば、同じドメインに属する原子構造において、計算結果がソフトウェアにより異なり、この結果自体にはノイズが存在しないため、同じ原子構造に対して複数の正解を有する教師データを用いて訓練することとなる。このため、ラベルなしの状態においては、モデルの訓練が安定しない。
【0115】
これに対して、本実施形態のように、ラベル情報を付与して訓練を実行することにより、複数のソフトウェアの結果のずれを、モデルが明確に区別して学習することができる。このため、上述したように、本実施形態に係る訓練及び推論は、NNPにおいて大きな効果を有する。さらに、計算手法及び原子構造についてのデータセットのバリエーションを追加することにより、汎化性能の向上を図ることができる。
【0116】
(第2実施形態)
第1実施形態では、モデルNNの入力層において原子構造及びラベル情報を入力する形態であったが、このような形態には限られない。
【0117】
図7は、本実施形態に係るモデルNNの一例を示す図である。この図7に示すように、モデルNNは、原子構造を入力層において入力する一方で、ラベル情報を任意の中間層から入力する構成であってもよい。ラベル情報には、適切なバイアスが掛けられてもよく、このバイアスも層間の重みと同様に訓練装置2により訓練されてもよい。
【0118】
図8は、本実施形態に係るモデルNNの別の一例を示す図である。この図8に示すように、モデルNNは、原子構造を入力層において入力する一方で、ラベル情報を出力層から入力する構成であってもよい。この場合もラベル情報に適切なバイアスが掛けられてもよい。
【0119】
モデルNNが図7及び図8の構成の場合には、図6におけるS202において、原子構造を順伝播するとともに、適切な中間層、又は、出力層でラベル情報を入力することにより訓練を実行することができる。
【0120】
図9は、本実施形態に係るモデルNNの別の一例を示す図である。図9に示すモデルNNは、原子構造を入力すると、複数のラベル情報に対応する出力を出力層から出力する形態である。
【0121】
訓練装置2は、例えば、原子構造を入力すると、出力層において、ラベル情報に対応したノードからポテンシャル情報を出力するように訓練する。他のノードからの出力は、例えば、訓練においては無視する。
【0122】
同一の原子構造に対して、異なるラベル情報において収集されたポテンシャル情報が訓練情報として存在している場合には、ラベル情報に対応するノードごとにモデルNNからの出力とラベル情報に対応するポテンシャル情報(教師データ)とを比較して、この比較結果に基づいてモデルNNのパラメータを更新する。
【0123】
図10は、図9の構成における訓練装置2の訓練の処理を示すフローチャートである。図6と同じ符号の処理は、同じ処理を示す。
【0124】
データセットが入力されると、訓練部204は、原子構造に関する情報をモデルNNの入力層に入力する(S302)。訓練部204は、モデルNNにおいて順伝播を実行し、出力層から複数のラベル情報に対応する順伝播結果を取得する(S204)。
【0125】
訓練部204は、出力結果のうち、訓練に用いたデータセットにおけるラベル情報に対応する出力値を取得し、当該ラベル情報に対応する出力値と、ポテンシャル情報との誤差を算出する(S306)。
【0126】
そして、訓練部204は、この誤差に基づいて、モデルNN2のパラメータを更新する(S208)。この場合、出力層から複数のラベル情報に対応するポテンシャル情報が出力されるが、入力した原子構造に関するラベル情報が存在しない場合には、対応する出力層のノードからは逆伝播処理が実行されなくてもよい。また、入力した原子構造に関して複数のラベル情報が存在する場合には、それぞれのラベル情報に対応する出力層のノードから逆伝播を実行してもよい。
【0127】
図11は、図9の構成における推定装置1の推定の処理を示すフローチャートである。図3と同じ符号の処理は、同じ処理を示す。
【0128】
推論部104は、原子構造をモデルNNの入力層に入力する(S402)。
【0129】
推論部104は、モデルNNを順伝播させることにより、複数のラベル情報に対応するポテンシャル情報を取得する。推論部104は、これら複数のポテンシャル情報から、指定されたラベル情報に関するポテンシャル情報を取得し(S404)、出力する(S106)。
【0130】
この場合、推定装置1は、上記のようにラベル情報が入力されて、当該ラベル情報に基づいた出力をしてもよい。別の例として、推定装置1は、ラベル情報に関する入力を受け付けても受け付けなくてもよく、出力部106を介して、複数のラベル情報に関するポテンシャル情報を出力してもよい。
【0131】
このモデルNNは、第1条件に対する出力及び第2条件に対する出力を生成するように構成される。そして、第1ラベル情報に基づいて、第1条件に対する第1出力をし、第2条件に対する第2出力をするように、訓練され、推定装置1において用いられる。
【0132】
このように訓練されたモデルNNを用いることで、推定装置1は、原子構造を入力すると、出力層のノードから、ノードに対応するラベル情報に基づいて演算されたポテンシャル情報の推論結果を取得することが可能となる。ラベル情報は、例えば、前述の実施形態で定義したものと同様のモードを定義することで設定してもよい。このような形態とすれば、すでに存在する訓練済みモデルに対して、ラベル情報を増やして再訓練を実行する場合、拡張が他の形態よりも容易となる。
【0133】
以上のように、モデルNNの入出力、特にラベル情報を入力するノード又はレイヤは、適切に変更することが可能となる。
【0134】
なお、本実施形態においても前述の実施形態と同様に、第1~、第2~を用いて説明したが、もちろん第3~、第4~等が存在していてもよい。これらの複数の条件に基づいて訓練及び推論を実行することができる。これは、以下に示す第3実施形態についても同様である。
【0135】
(第3実施形態)
原子構造をラベル情報に基づいて、共通の中間表現へと変換し、この中間表現をモデルNNに入力する態様としてもよい。
【0136】
図12は、本実施形態に係るモデルを模式的に示す図である。この図12に示すように、原子構造をまずエンコーダに入力し、このエンコーダの出力を中間表現へと変換する。この中間表現をモデルNNに入力する形態としてもよい。エンコーダは、適切な変換を実現できるのであれば、任意のニューラルネットワークモデルとすることができる。
【0137】
訓練装置2は、ラベル情報ごと、例えば、ソフトウェアごと、又は、モードごと、といった粒度でエンコーダを定義してもよい。訓練部204は、ラベル情報に基づいて原子構造を入力するエンコーダを指定し、当該指定したエンコーダに原子構造を入力する。そして、このエンコーダからの出力をモデルNNへと入力し、前述の各実施形態と同様にモデルNNの訓練を実行する。本実施形態においては、モデルNNの訓練とともに、エンコーダの訓練も行う。すなわち、訓練部204は、モデルNNの出力に基づいて誤差逆伝播により入力層までのパラメータを更新し、この入力層に逆伝播された勾配情報を用いて引き続きエンコーダのパラメータの更新を実行する。このように、訓練が繰り返される。
【0138】
このように、ラベル情報ごとに同一又は異なるエンコーダと、1つのモデルNNが訓練される。
【0139】
推定装置1においては、このようにして訓練された複数のエンコーダ及び1つのモデルNNを用いる。推定装置1の推論部104は、原子構造とラベル情報が入力されると、まず、中間表現へと変換するエンコーダをラベル情報に基づいて選択し、原子構造を中間表現へと変換する。
【0140】
続いて、推論部104は、この中間表現をモデルNNに入力し、順伝播することで、ポテンシャル情報を推論する。この推論は、前段のエンコーダにおいてラベル情報を考慮した中間表現が取得できているため、適切にラベル情報に基づいた演算結果として、原子構造からポテンシャル情報を取得することを可能とする。
【0141】
図13は、図12の構成における訓練装置2の訓練の処理を示すフローチャートである。図6と同じ符号は、特に記載が無い限り同じ処理を示す。
【0142】
訓練部204は、入力データを取得した後、原子構造に関するデータをラベル情報に基づいたエンコーダに入力して、エンコーダからの出力を取得する(S502)。エンコーダからの出力は、例えば、原子構造をラベル情報に基づいて次元圧縮(次元削減)された変数であってもよい。
【0143】
訓練部204は、ラベル情報により選択されたエンコーダの出力をモデルNNに入力し、モデルNNからの出力を取得する(S504)。S206の処理の後、訓練部204は、モデルNNからの出力とポテンシャル情報との誤差を逆伝播して、モデルNN、及び、ラベル情報に基づいて選択されたエンコーダのパラメータを更新する(S208)。
【0144】
訓練が終了条件を満たすまで(S210: NO)、S502~S208の処理が繰り返され、訓練が終了すると(S210: YES)、訓練装置2は、エンコーダ及びモデルNN2に関する情報を出力して(S512)処理を終了する。
【0145】
図14は、図12の構成における推定装置1の訓練の処理を示すフローチャートである。図3と同じ符号は、同じ処理を示す。
【0146】
推論部104は、入力データを、ラベル情報に基づいたエンコーダを選択し、当該エンコーダに入力して、エンコーダからの出力を取得する(S602)。
【0147】
続いて、推論部104は、エンコーダの出力をモデルNNに入力し、ポテンシャル情報を取得する(S604)。推定装置1は、このポテンシャル情報を出力する。
【0148】
このように、複数のエンコーダ及びモデルNNは、第1原子構造に関する情報を第1ラベル情報に基づいて決定されるエンコーダ(第1ニューラルネットワークモデル)に入力し、この出力をモデルNNに入力して第1出力を取得し、第2原子構造に関する情報を、第2ラベル情報に基づいて決定されるエンコーダ(第2ニューラルネットワークモデル)に入力し、この出力をモデルNNに入力して第2出力を取得するように訓練され、推定装置1において用いられる。
【0149】
なお、図に示すように、ラベル情報の全てをエンコーダの選択に用いなくてもよい。すなわち、ラベル情報の一部(例えば、ソフトウェア)の情報を用いてエンコーダを選択し、残りのラベル情報(例えば、演算パラメータ)の情報を、原子構造とともに指定されたエンコーダに入力することにより訓練を実行してもよい。この場合、エンコーダに入力するラベル情報が選択されるエンコーダにより変わる場合がある。この結果、エンコーダの入力において余分なノードを削除することも可能であり、エンコーダから中間表現への変換、すなわち、原子構造へのラベル情報の付与をより適切に実現することもできる。
【0150】
以上のように、本実施形態によれば、モデルNNに入力するための共通の中間表現を用いることで、適切にラベル情報が反映されたポテンシャル情報を取得するモデルを訓練し、また、このモデルを用いた推論を実現することが可能となる。
【0151】
図9の場合と同様に、このようなニューラルネットワークモデルの構成とすることで、訓練済みのモデルNNに対して、ラベル情報を増やすと言った再訓練をする場合に、拡張性を向上することができる。
【0152】
上記の全ての訓練済モデルは、例えば、説明したように訓練した上で、さらに、一般的な手法により蒸留されたモデルを含む概念であってもよい。
【0153】
前述した実施形態における各装置(推定装置1又は訓練装置2)の一部又は全部は、ハードウェアで構成されていてもよいし、CPU(Central Processing Unit)、又はGPU(Graphics Processing Unit)等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、フレキシブルディスク、CD-ROM(Compact Disc-Read Only Memory)又はUSB(Universal Serial Bus)メモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータに読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワークを介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアがASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
【0154】
ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
【0155】
図15は、前述した実施形態における各装置(推定装置1又は訓練装置2)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ71と、主記憶装置72(メモリ)と、補助記憶装置73(メモリ)と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
【0156】
図15のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図15では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(推定装置1又は訓練装置2)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
【0157】
前述した実施形態における各装置(推定装置1又は訓練装置2)の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0158】
プロセッサ71は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA又はASIC等)であってもよい。また、プロセッサ71は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ71は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ71は、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0159】
プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
【0160】
前述した実施形態における各装置(推定装置1又は訓練装置2)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0161】
主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における各装置(推定装置1又は訓練装置2)において各種データを保存するための記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶部102は、主記憶装置72又は補助記憶装置73により実現されてもよい。
【0162】
記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における各装置(推定装置1又は訓練装置2)が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ))とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0163】
ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク8は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等のいずれか、又は、それらの組み合わせであってよく、コンピュータ7と外部装置9Aとの間で情報のやりとりが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
【0164】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。
【0165】
外部装置9Aは、コンピュータ7とネットワークを介して接続されている装置である。外部装置9Bは、コンピュータ7と直接接続されている装置である。
【0166】
外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ等、キーボード、マウス、又は、タッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
【0167】
また、外部装置9A又は外部装置9Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
【0168】
また、外部装置9A又は外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aは、ネットワークストレージ等であってもよく、外部装置9Bは、HDD等のストレージであってもよい。
【0169】
また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(推定装置1又は訓練装置2)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bの処理結果の一部又は全部を送信又は受信してもよい。
【0170】
本明細書(請求項を含む)において、「a、b及びcの少なくとも1つ(一方)」又は「a、b又はcの少なくとも1つ(一方)」の表現(同様な表現を含む)が用いられる場合は、a、b、c、a-b、a-c、b-c、又は、a-b-cのいずれかを含む。また、a-a、a-b-b、a-a-b-b-c-c等のように、いずれかの要素について複数のインスタンスを含んでもよい。さらに、a-b-c-dのようにdを有する等、列挙された要素(a、b及びc)以外の他の要素を加えることも含む。
【0171】
本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
【0172】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0173】
本明細書(請求項を含む)において、「AがBするよう構成される(A configured to B)」との表現が用いられる場合は、要素Aの物理的構造が、動作Bを実行可能な構成を有するとともに、要素Aの恒常的(permanent)又は一時的(temporary)な設定(setting/configuration)が、動作Bを実際に実行するように設定(configured/set)されていることを含んでよい。例えば、要素Aが汎用プロセッサである場合、当該プロセッサが動作Bを実行可能なハードウェア構成を有するとともに、恒常的(permanent)又は一時的(temporary)なプログラム(命令)の設定により、動作Bを実際に実行するように設定(configured)されていればよい。また、要素Aが専用プロセッサ又は専用演算回路等である場合、制御用命令及びデータが実際に付属しているか否かとは無関係に、当該プロセッサの回路的構造が動作Bを実際に実行するように構築(implemented)されていればよい。
【0174】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0175】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0176】
本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0177】
本明細書(請求項を含む)において、「最大化(maximize)」等の用語が用いられる場合は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語が用いられる場合は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語が用いられる場合は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。
【0178】
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は、電子回路を含む装置等を含んでもよい。
【0179】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、数値又は数式を説明に用いている場合は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
【符号の説明】
【0180】
1: 推定装置、
100: 入力部、
102: 記憶部、
104: 推論部、
106: 出力部、
NN: モデル、
2: 訓練装置、
200: 入力部、
202: 記憶部、
204: 訓練部、
206: 出力部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15