(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-19
(45)【発行日】2024-03-28
(54)【発明の名称】推定装置、訓練装置、方法及びプログラム
(51)【国際特許分類】
G16C 20/70 20190101AFI20240321BHJP
【FI】
G16C20/70
(21)【出願番号】P 2023527952
(86)(22)【出願日】2022-06-10
(86)【国際出願番号】 JP2022023520
(87)【国際公開番号】W WO2022260177
(87)【国際公開日】2022-12-15
【審査請求日】2023-07-12
(31)【優先権主張番号】P 2021098325
(32)【優先日】2021-06-11
(33)【優先権主張国・地域又は機関】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100120031
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100118876
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100202429
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】本木 大資
(72)【発明者】
【氏名】品川 幾
(72)【発明者】
【氏名】高本 聡
(72)【発明者】
【氏名】入口 広紀
【審査官】塩田 徳彦
(56)【参考文献】
【文献】特開2020-030638(JP,A)
【文献】特開2020-166706(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G16C 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
1又は複数のメモリと、
1又は複数のプロセッサと、
を備え、
前記1又は複数のプロセッサは、
原子系の各原子の情報を第2モデルに入力し、前記原子系に対応する第一原理計算に基づくエネルギーと前記原子系に対応する原子間ポテンシャル関数のエネルギーとの
差を推定する、
推定装置。
【請求項2】
前記各原子の情報は、少なくとも原子の3次元座標の情報または原子間の相対位置の情報を含む、
請求項1に記載の推定装置。
【請求項3】
前記1又は複数のプロセッサは、
前記原子系に対応する原子間ポテンシャル関数のエネルギーと前記
差の推定値と
から前記第一原理計算に基づくエネルギーの推定値を出力する、
請求項1に記載の推定装置。
【請求項4】
前記1又は複数のプロセッサは、
前記第一原理計算に基づくエネルギーの推定値から前記原子系に対応する力を出力する、
請求項3に記載の推定装置。
【請求項5】
前記第一原理計算に基づくエネルギーの推定値は、前記原子系に対応する原子間ポテンシャル関数のエネルギーと前記差の推定値との和である、
請求項3に記載の推定装置。
【請求項6】
前記1又は複数のプロセッサは、
前記原子系の各原子の情報から、前記原子系に対応する原子間ポテンシャル関数のエネルギーを計算する、
請求項3に記載の推定装置。
【請求項7】
前記1又は複数のプロセッサは、
前記原子系の各原子の情報を第1モデルに入力し、前記原子系に対応する原子間ポテンシャル関数のエネルギーを推定し、
前記差の推定処理として、前記原子系の各原子の情報を前記第2モデルに入力し、前記原子系に対応する第一原理計算に基づくエネルギーと前記第1モデルを用いて推定したエネルギーとの
差を推定する、
請求項1に記載の推定装置。
【請求項8】
前記1又は複数のプロセッサは、
前記第1モデルを用いて推定したエネルギーと前記第2モデルを用いて推定した
前記差と
から前記第一原理計算に基づくエネルギーの推定値を出力する、
請求項
7に記載の推定装置。
【請求項9】
前記1又は複数のプロセッサは、
前記原子系の各原子について、2原子の組合せを抽出し、前記第1モデルに入力する、
請求項
7に記載の推定装置。
【請求項10】
前記第一原理計算に基づく計算は、DFTにより行われる、
請求項1乃至
9のいずれか1項に記載の推定装置。
【請求項11】
前記原子間ポテンシャル関数は、Lennard Jonesポテンシャルである、
請求項1乃至
9のいずれか1項に記載の推定装置。
【請求項12】
前記原子間ポテンシャル関数は、2体ポテンシャル関数である、
請求項1乃至
9のいずれか1項に記載の推定装置。
【請求項13】
前記原子間ポテンシャル関数は、3体以上の原子間ポテンシャル関数である、
請求項1乃至
9のいずれか1項に記載の推定装置。
【請求項14】
請求項1乃至請求項
9のいずれか1項に記載の推定装置を用いて、前記
差を推定する方法。
【請求項15】
前記第一原理計算に基づく計算は、DFTにより行われる、
請求項
14に記載の方法。
【請求項16】
前記原子間ポテンシャル関数は、Lennard Jonesポテンシャルである、
請求項
14に記載の方法。
【請求項17】
前記原子間ポテンシャル関数は、2体ポテンシャル関数である、
請求項
14に記載の方法。
【請求項18】
前記原子間ポテンシャル関数は、3体以上の原子間ポテンシャル関数である、
請求項
14に記載の方法。
【請求項19】
1又は複数のメモリと、
1又は複数のプロセッサと、
を備え、
前記1又は複数のプロセッサは、
原子系の各原子の情報を入力すると、前記原子系に対応する第一原理計算に基づくエネルギーと前記原子系に対応する原子間ポテンシャル関数のエネルギーとの
差の推定値を出力する第2モデルを訓練する、
訓練装置。
【請求項20】
前記各原子の情報は、少なくとも原子の3次元座標の情報または原子間の相対位置の情報を含む、
請求項
19に記載の訓練装置。
【請求項21】
前記1又は複数のプロセッサは、
前記原子系の各原子の情報を入力すると、前記原子系に対応する原子間ポテンシャル関数のエネルギーの推定値を出力する第1モデルを訓練し、
前記第2モデルは、前記
差の推定値として、前記原子系に対応する第一原理計算に基づくエネルギーと前記第1モデルを用いて推定したエネルギーとの
差の推定値を出力するよう訓練されている、
請求項
19に記載の訓練装置。
【請求項22】
前記1又は複数のプロセッサは、
前記原子系の各原子について、2原子の組合せを抽出し、前記第1モデルに入力する、
請求項
21に記載の訓練装置。
【請求項23】
前記原子間ポテンシャル関数は、2体ポテンシャル関数である、
請求項
19乃至
22のいずれか1項に記載の訓練装置。
【請求項24】
前記原子間ポテンシャル関数は、3体以上の原子間ポテンシャル関数である、
請求項
19乃至
22のいずれか1項に記載の訓練装置。
【請求項25】
請求項
19乃至
22のいずれか1項に記載の訓練装置を用いて、前記第2モデルを生成する方法。
【請求項26】
1又は複数のプロセッサに、
原子系の各原子の情報を第2モデルに入力させ、前記原子系に対応する第一原理計算に基づくエネルギーと前記原子系に対応する原子間ポテンシャル関数のエネルギーとの
差を推定させる、
プログラム。
【請求項27】
1又は複数のプロセッサに
、
原子系の各原子の情報を入力すると、前記原子系に対応する第一原理計算に基づくエネルギーと
前記原子系に対応する原子間ポテンシャル関数のエネルギーとの
差の推定値を出力する第2モデルを訓練させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、推定装置、訓練装置、推定方法、訓練方法、プログラム及び非一時的コンピュータ可読媒体に関する。
【背景技術】
【0002】
原子間ポテンシャルを生成する際には、ポテンシャル関数の内部に2体ポテンシャル関数を持たせ、この2体ポテンシャルの曲線を合わせて利用することが行われている。これは、物理的な考察から2体ポテンシャルに修正項を追加することにより再現性が高い原子間ポテンシャルを生成しようとするためである。
【0003】
例えば、既存の分子動力学(MD: Molecular Dynamics)シミュレーションに用いられる原子間ポテンシャルは、2体ポテンシャル関数を含むことが多い。ニューラルネットワークモデルを訓練して、原子間ポテンシャルであるNNP(Neural Network Potential)を得る試みがなされているが、この手法においては2体ポテンシャルを用いる試みがされていない。
【先行技術文献】
【非特許文献】
【0004】
【文献】J. S. Smith, et. al., “ANI-1: An extensible neural network potential with DFT accuracy at force field computational cost,” 6 February 2017, arxiv.org, https://arxiv.org/abs/1610.08935v4
【発明の概要】
【発明が解決しようとする課題】
【0005】
そこで、本開示の一実施形態によれば、NNPの精度を向上するニューラルネットワークモデルの訓練装置を提供する。
【課題を解決するための手段】
【0006】
一実施形態によれば、推定装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、原子系の各原子の情報を第2モデルに入力し、前記原子系に対応する第一原理計算に基づくエネルギーと前記原子系に対応する原子間ポテンシャル関数のエネルギーとの差を推定する。
【図面の簡単な説明】
【0007】
【
図1】一実施形態に係る訓練装置を示すブロック図。
【
図2】一実施形態に係る訓練装置の処理を示すフローチャート。
【
図3】一実施形態に係るデータ生成、モデル生成及び推論におけるデータの流れを模式的に示す図。
【
図4】一実施形態に係る装置で生成したNNPにおいて2体ポテンシャルを推論したグラフ。
【
図5】一実施形態に係る訓練装置を示すブロック図。
【
図6】一実施形態に係る訓練装置の処理を示すフローチャート。
【
図7】一実施形態に係る推定装置を示すブロック図。
【
図8】一実施形態に係る推定装置の処理を示すフローチャート。
【
図9】一実施形態に係るデータ生成、モデル生成及び推論におけるデータの流れを模式的に示す図。
【
図10】一実施形態に係る訓練装置、推定装置のハードウェア実装例を示すブロック図。
【発明を実施するための形態】
【0008】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
【0009】
まず、本開示におけるいくつかの用語の説明をする。
【0010】
原子間ポテンシャル(原子間の相互作用ポテンシャルエネルギー)は、原子の配置からエネルギーを求める関数である。この関数は、一般的に人工的な関数である。MD(分子動力学: Molecular Dynamics)シミュレーションをする上での支配方程式に相当する関数である。原子間ポテンシャルの限定されない一例として、Lennard Jonesポテンシャルが挙げられる。
【0011】
本明細書においてNNP(Neural Network Potential)は、ニューラルネットワークによって、原子系のポテンシャル関数を近似して表現する。ニューラルネットワークは、例えばグラフを扱うGNN(Graph Neural Network)であってもよい。本明細書のNNP(モデルNN)は、エネルギーを推定したい原子系の各原子の情報が入力される入力層と、入力された情報を基に計算を行う隠れ層と、その原子系のエネルギーを出力する出力層と、を有する訓練済みニューラルネットワークである。
【0012】
ニューラルネットワークの訓練は、訓練データセットを用いて行われる。訓練データセットは、複数の原子系それぞれについて、原子系の各原子の情報と、その原子系のエネルギーの正解値とを含む。原子系のエネルギーの正解値は、その原子系について第一原理計算(例えばDFT(密度汎関数理論)に基づく計算や、HF(Hatree-Fock)法に基づく計算や、MP(Moeller-Plesset)法に基づく計算など)で計算されたエネルギーの値である。ニューラルネットワークの訓練は、訓練データセットに含まれる各原子系について、原子系の各原子の情報をニューラルネットワークに入力して出力された原子系のエネルギーの推定値とその正解値との誤差を計算し、それら誤差に基づく誤差逆伝播法によってニューラルネットワークの重みパラメータを更新する。
【0013】
NNPは、入力された原子系のエネルギーの他に、入力された原子系の各原子の電荷などの副次的な情報を出力してもよい。この場合、ニューラルネットワークの訓練データセットは、電荷に関する正解値を含み、ニューラルネットワークは、エネルギーの誤差と電荷に関する誤差に基づく誤差逆伝播法によって訓練される。NNPは、推定したエネルギーの原子の位置に対する微分値を、その原子に加わる力として計算する機能を有してもよい。また、NNPは、入力された原子系の各原子に加わる力を出力してもよい。この場合、ニューラルネットワークの訓練データセットは、各原子に加わる力に関する正解値を含み、ニューラルネットワークは、エネルギーの誤差及び/又は電荷に関する誤差と、各原子に加わる力に関する誤差に基づく誤差逆伝播法によって訓練される。
【0014】
NNPに用いるモデルNNに入力される原子の情報は、例えば、各原子の種類および位置の情報を内包する情報である。本明細書において、原子の情報を、原子に関する情報と呼ぶことがある。原子の位置の情報としては、例えば、原子の位置を座標によって直接的に示す情報や、原子間の相対位置を直接あるいは間接的に示す情報などが挙げられる。その情報は、例えば、原子間の距離、角度、二面角等によって表現される。例えば、原子の座標の情報から、2つの原子の間の距離や、3つの原子の間の角度の情報を計算し、これらを原子の位置の情報としてNNPへの入力に用いることで、回転・平行移動に対する不変性を担保することができ、NNPの精度を高めることができる。例えば、原子の情報は、位置を直接的に示す情報であっても、その位置情報から計算された情報であってもよい。また、原子の情報は、原子の種類および位置の情報の他、電荷に関する情報や結合に関する情報を含んでもよい。
【0015】
本明細書において、モデルNNは、例えば、エネルギーに関する情報を出力する。エネルギーに関する情報としては、例えば、エネルギー、エネルギーに基づいて計算される情報エネルギーに基づいて計算される情報としては、例えば、原子毎の力、応力(系全体のstress)、原子ごとのvirial、系全体のvirial等が挙げられる。NNPは、エネルギーに関する情報の他に、例えば、原子毎のcharge等のNNPを用いて計算可能な情報を出力してもよい。
【0016】
2体ポテンシャル曲線は、系に2原子のみが存在する場合における、当該2原子の距離とエネルギーとの関係を示す。
【0017】
2体ポテンシャル関数は、ポテンシャルの標識として、2体ポテンシャル曲線の和で全体のエネルギーを表現しようとするものである。一般的には、2体ポテンシャル関数のみからでは、精度よくエネルギー値等の再現をすることは困難である。上記したLennard Jonseポテンシャルも、この2体ポテンシャル関数である。
【0018】
(第1実施形態)
本実施形態においては、NNPを実現するニューラルネットワークモデルの訓練において、分子、結晶等の化合物のデータとともに、2体ポテンシャルに関する情報を訓練データとして用いるものである。
【0019】
図1は、本実施形態に係る訓練装置の一例を示すブロック図である。訓練装置1は、入力部100と、記憶部102と、訓練部104と、出力部106と、を備える。訓練装置1は、入力されるデータに基づいてモデルNNを任意の適切な機械学習手法において訓練する装置である。
【0020】
入力部100は、訓練装置1におけるデータの入力を受け付ける。入力部100は、例えば、入力インタフェースを備える。入力されるデータは、モデルNNの訓練に用いるデータである。訓練に用いるデータは、例えば、モデルNNの入出力に関する教師データの他、バリデーションに用いる検証データ等が含まれてもよい。また、入力部100は、ハイパーパラメータ、初期パラメータ等のデータの入力を受け付けてもよい。
【0021】
記憶部102は、訓練装置1の動作に必要となるデータが格納される。例えば、入力部100を介して入力されたデータは、この記憶部102に格納されてもよい。記憶部102は、
図1においては訓練装置1に含まれているが、記憶部102の少なくとも一部が外部のストレージ、ファイルサーバ等に実装されていてもよい。この場合、データが必要となるタイミングにおいて、入力部100を介してデータが入力される形態としてもよい。
【0022】
訓練部104は、モデルNNの訓練を実行する。訓練部104は、例えば、入力部100を介して入力されたデータをモデルNNに順伝播させ、出力データと教師データとを比較して誤差を算出し、この誤差を逆伝播させて、適切に勾配等の情報に基づいてモデルNNを構成するパラメータを更新する。
【0023】
出力部106は、訓練部104が訓練により最適化したパラメータ等のデータを外部、又は、記憶部102へと出力する。このように、パラメータ等の出力は、外部への出力の他に、訓練装置1の記憶部102にデータを格納する処理を含む概念であってもよい。
【0024】
モデルNNは、NNPにおいて用いられるニューラルネットワークモデルであり、例えば、量子化学計算の結果を取得できる原子間相互作用を推論するモデルである。例えば、モデルNNは、分子、結晶等の化合物、及び、環境等の情報の双方に関する原子の情報を入力すると、エネルギー及び力を出力するニューラルネットワークモデルである。NNPにおいては、例えば、エネルギー値を逆伝播することで力を取得することできる。以下、力の取得は、逆伝播により実行されてもよい。
【0025】
本明細書において、NNPに用いられるモデルNNに入力される原子の情報は、例えば、各原子の種類および位置の情報を内包するデータ等である。本明細書において、原子の情報を、原子に関する情報と呼ぶことがある。原子の情報としては、例えば、原子の種類、原子の位置に関する情報等が含まれる。原子の位置に関する情報としては、例えば、原子の座標を示す情報や、原子間の相対位置を直接あるいは間接的に示す情報などが挙げられる。その情報は、例えば、原子間の距離、角度、二面角等によって表現される。原子の位置に関する情報として、原子の座標の情報から、2つの原子の間の距離や、3つの原子の間の角度の情報を計算し、これらをNNPの入力に用いることで、回転・平行移動に対する不変性を担保することができ、NNPの精度を高めることができる。また、原子の位置に関する情報は、位置を直接的に示す情報であっても、その位置から計算された情報であってもよい。また、原子の種類、原子の位置に関する情報の他、電荷に関する情報や結合に関する情報を含んでもよい。
【0026】
また、モデルNNは、NNPの推論を実行するために適切な任意のニューラルネットワークモデルとして構成される。この構成は、例えば、畳み込み層、全結合層を含む構成であってもよいし、グラフ情報を入出力可能な層又は畳み込み層を備えていてもよいが、これらに限定されるものではなく適切なニューラルネットワークモデルとして形成されてもよい。モデルNNは、例えば、分子等の情報をグラフ情報として入力するモデルであってもよいし、グラフから変換された木の情報を入力するモデルであってもよい。
【0027】
このモデルNNは、限定されない例として、タンパク質と化合物等の結合におけるエネルギーの推論、触媒等における反応速度の推論等に用いることができる。この他にも、化合物同士のエネルギー、力等を用いる処理における推論に用いることもできる。より詳細には、モデルNNによって化合物やタンパク質等のエネルギー、力等を推論し、この値を用いて、例えばMD法の手法を用いることで、タンパク質と化合物の結合におけるエネルギーの推論、触媒等における反応速度の推論等に用いることができる。
【0028】
図2は、本実施形態に係る訓練装置1の処理の一例を示すフローチャートである。
【0029】
訓練装置1は、入力部100を介して訓練に必要となるデータを受信する(S100)。このデータは、必要に応じて記憶部102に格納されてもよい。データは、教師データとなる訓練データ、ニューラルネットワークモデルを形成するためのハイパーパラメータのデータ及び初期パラメータのデータ、バリデーションを実行するための検証データ等の訓練に必要となるデータである。この訓練データについては、後述にて詳しく説明する。
【0030】
次に、訓練部104は、入力されたデータを用いて訓練を実行する(S102)。訓練部104は、まずハイパーパラメータ等に基づいてニューラルネットワークモデル(モデルNN)を形成し、モデルNNに訓練データのうち入力データを入力して順伝播処理を実行する。順伝播処理が完了してモデルNNから出力されたデータと訓練データのうち出力データ(教師データ)との誤差から逆伝播処理を実行する。この逆伝播処理により取得された勾配情報に基づいて、訓練部104は、モデルNNの各層のパラメータを更新する。この一連の処理を、終了条件を満たすまで繰り返す。この訓練に関する処理は、一般的な任意の適切な機械学習手法により実行される。
【0031】
訓練の終了条件が終了し、パラメータの更新が完了した後、出力部106は、最適化されたパラメータを出力して処理を終了する(S104)。推定装置において、このパラメータ及びハイパーパラメータを取得してモデルNNを形成することにより、NNPに用いる推論モデルを構成することが可能となる。
【0032】
一般的にNNPにおけるニューラルネットワークモデルの訓練には、分子、結晶等の化合物に関するデータが用いられる。これらのデータは、例えば、DFT(Density Functional Theory: 密度汎関数理論)等の第一原理計算等の物理法則に基づくシミュレーションを用いて取得されたデータを用いることができる。本実施形態においては、この化合物等についてDFTによりエネルギー及び力を取得し、このデータと、入力データとの組み合わせを訓練データとして用いる。なお、DFT等の演算で取得する他に、すでに計算されている結果を格納しているデータベース等からこの訓練データを取得してもよい。
【0033】
さらに、本実施形態においては、訓練装置1は、モデルNNの訓練に2つの元素におけるエネルギー及び力の量を用いる。これらの量は、2体ポテンシャル曲線にしたがう量である。例えば、訓練装置1は、種々の距離における2つの元素の相互作用エネルギー及び力を任意の手法で算出された情報である2体ポテンシャル曲線にしたがうデータセットを訓練データとして用いる。
【0034】
この訓練データは、あらかじめ訓練装置1とは異なる訓練データ生成装置により生成されたものであってもよい。訓練データ生成装置は、第一原理計算等の物理法則に基づくシミュレーション、例えば、DFT計算に基づいて、2つの原子それぞれについてデータを取得したい元素と設定し、距離を変更しつつシミュレーションによる計算を用いて訓練に必要となるデータを取得する。すなわち、訓練データ生成装置は、2つの同じ種類又は異なる種類の元素を設定し、これら2つの元素間の距離を種々の距離に設定し、第一原理計算を用いて当該2つの元素の種々の距離におけるエネルギー及び力を取得して、訓練データを生成する。このように2体ポテンシャル曲線にしたがうデータセットを生成し、訓練に用いる。
【0035】
別の例として、2体ポテンシャルが関数として近似されている等の場合には、この関数等に基づいた元素と距離におけるポテンシャルを取得してもよい。この場合、DFT等の演算結果よりも精度は劣るかもしれないが、より高速に結果を取得することが可能となる。このため、訓練データ生成についての演算処理時間を削減することもできる。
【0036】
これらの2元素に関するデータも、上述した分子等のデータと同様に、データベース等に存在しているすでに知られているデータを用いてもよい。一方で、DFT等により計算し直すことにより、任意の距離におけるデータを生成することができるので、既知のデータを補強することもできる。また、元素の数は、限られているので、全ての元素の組み合わせについてDFT計算によりあらかじめ2体ポテンシャル曲線にしたがう訓練データを取得してもよい。このように、データの取得の密度を高めることができるので、内挿及び外挿における精度の高い推論を実現するニューラルネットワークモデルを形成することができる。
【0037】
図3は、本実施形態に係るデータ生成及び訓練の様子を概略的に示す図である。破線がデータ生成装置、点線が訓練装置、実線が推定装置を表す。データ生成装置は、第一原理計算として、例えば、DFTを用いてもよい。
【0038】
DFTを実行するソフトウェアは、VASP(登録商標)、Gaussian(登録商標)等任意のものを任意のパラメータにおいて用いることができる。例えば、このソフトウェアは、分子、結晶等の情報を取得したソフトウェアと同じものを同じパラメータにおいて用いてもよい。また、所定のソフトウェア及び所定のパラメータの組み合わせにおける推論を実現したい場合には、これらのソフトウェア及びパラメータの組み合わせでデータを生成してもよい。
【0039】
まず、一般的な手法について説明する。上述したように、一般的には、データ生成装置は、分子、結晶等の種々の状態から第一原理計算等を用いてエネルギー及び力の情報を取得する。この情報を用いて、訓練装置がモデルを訓練する。推定装置は、訓練されたモデルを用いて推論を実行する。このように訓練に使用するデータは、分子、結晶等に基づいたものであり、2原子に基づいたデータ(2体ポテンシャル曲線にしたがうデータ)は、訓練に用いられない。
【0040】
一方で本実施形態においては、データ生成装置は、分子、結晶等の種々の状態から第一原理計算を用いてエネルギー及び力の情報を取得するとともに、任意の元素の組み合わせである2原子とこの2原子の距離の情報から第一原理計算を用いて2体ポテンシャル曲線にしたがう2原子間の相互作用エネルギー等の情報を取得する。訓練装置は、分子結晶等とエネルギー等の情報と、2原子とエネルギー等の情報と、の双方を用いてモデルの訓練を実行する。そして、推定装置は、このモデルを用いて推論を実行する。このように、訓練には分子、結晶等の情報とともに、2原子に基づいたデータが用いられる。
【0041】
なお、上述したように、データ生成装置は、システム内に備えられていなくてもよく、その場合はすでにデータベース等に存在するデータを用いてもよい。
【0042】
図4は、このように生成された本実施形態に係る推定装置によるエネルギーの推定結果と、2体ポテンシャルを用いずに訓練された推定装置(比較例)によるエネルギーの推定結果を示すグラフである。2原子として、水素元素が2つある場合について、本実施形態に係る訓練装置1により訓練されたモデルNNと、比較例との推論結果を比較したグラフである。
【0043】
実線は、DFTにおいて条件をωB97XD/6-31G(d)として算出された2原子間のエネルギーを表す。○で表しているプロットは、本実施形態において訓練したモデルNNを用いてNNP演算したものである。×で表しているプロットは、比較例として2体ポテンシャルを用いずに訓練したモデルを用いてNNP演算したものである。
【0044】
このグラフに示されるように、本実施形態に係る訓練装置1により訓練されたモデルNNを用いた場合、実線に精度よく近似されていることがわかる。このことから、2体ポテンシャルの推論が、モデルNNにより高い精度で実行できていることがわかる。
【0045】
一方で、比較例においては、2体ポテンシャル曲線にしたがうデータを用いた訓練をしていないため、ニューラルネットワークモデルにおける外挿が精度よく実行できていないことがわかる。
【0046】
水素分子の結合長は、0.74Å程度であるが、比較例においては1.4Å付近にも局所安定点がある。このため、MDシミュレーション等において、本来は不安定である1.4Å程度の結合長を持つ水素分子が出現し、現実と乖離した結果が得られるという課題がある。これに対して、本実施形態によれば、2体ポテンシャルの推論が比較例と比べて高い精度で実現できる。
【0047】
以上のように、本実施形態によれば、NNPに用いるニューラルネットワークモデルの訓練において、従来から実行されているように分子、結晶等の化合物のデータを訓練データとして用いるとともに、2体ポテンシャルに基づくデータ、特に2体ポテンシャル曲線にしたがうデータを訓練データとして用いることで、2体ポテンシャルの推論のみならず、分子、結晶等の化合物のエネルギー等の推論の精度を高めることが可能となる。
【0048】
これは、2体ポテンシャルのみにおける推論だけではなく、化合物等のポテンシャルにおいては、2体ポテンシャル関数に基づいて、2体ポテンシャル曲線に起因するエネルギー等が存在するためである。このため、2原子間の相互作用エネルギー等を推論できるようにモデルNNを最適化することにより、2体ポテンシャル関数において適切に2体ポテンシャル曲線に基づいた推論結果を含むことが可能となり、2原子ではない分子、結晶等の他の化合物における反応経路を含むエネルギー等の推論の精度を高めることが可能となる。
【0049】
なお、第一原理計算としてDFTを用いて訓練データを取得する例について説明したが、訓練データの取得は、ハートリー・フォック法等の別の手法を用いることを排除するものではない。
【0050】
また、上記は、2体ポテンシャルとしたが、これは、少なくとも2体の原子間のポテンシャルと言い換えてもよい。すなわち、3体以上の原子間のポテンシャルが適切に算出されるのであれば、この3体以上の原子間のポテンシャルを訓練に用いるデータセットとして入力してもよい。このような場合には、多体間のポテンシャル関数によりフィッティングすることが可能なモデルNNの訓練を実現することができる。
【0051】
(第2実施形態)
前述の実施形態では、訓練データに2体ポテンシャルのデータを含めることを説明したが、本開示における実施形態は、これには限られない。
【0052】
図5は、第2実施形態に係る訓練装置の一例を示すブロック図である。訓練装置1は、入力部100と、記憶部102と、第1訓練部108と、第2訓練部110と、出力部106と、を備える。第1実施形態と同じ符号が付してある構成要素は、同じ動作を実行する。第1訓練部108は、第1モデルNN1を機械学習により最適化し、第2訓練部110は、第2モデルNN2を機械学習により最適化する。
【0053】
第1モデルNN1は、2原子の元素の種類及び距離が入力されると2体ポテンシャルを出力するニューラルネットワークモデルである。
【0054】
第2モデルNN2は、分子、結晶等の情報が入力されると、構成する原子間における2体ポテンシャルに関するエネルギー等が排除されたエネルギー等の情報を出力するニューラルネットワークモデルである。
【0055】
第1訓練部108は、入力部100を介して入力される、2原子の元素の種類及び距離と、2体ポテンシャル曲線にしたがうエネルギーとのデータセットを用いて、第1モデルNN1を訓練するのに適切な任意の機械学習手法で第1モデルNN1を訓練する。第1訓練部108は、第2モデルNN2の訓練が実行される前に、あらかじめ第1モデルNN1の訓練を完了する。
【0056】
第2訓練部110は、第1モデルNN1の訓練が完了している状態において、第2モデルNN2の訓練を実行する。第1訓練部108と同様に、第2モデルNN2を訓練するのに適切な任意の機械学習手法で第2モデルNN2を訓練する。
【0057】
第1モデルNN1及び第2モデルNN2は、上記のように、別々のタイミングで訓練されるとしたが、これには限られない。訓練装置1は、例えば、第1モデルNN1と、第2モデルNN2と、を同じタイミングで訓練してもよい。訓練装置1は、例えば、訓練データセットのうち2原子に関するデータを第1モデルNN1に入力し、訓練データセットのうち分子、結晶等に関するデータを第2モデルNN2に入力してもよい。そして、第1モデルNN1の出力と2体ポテンシャルとに基づいて第1モデルNN1を訓練し、これとともに、第1モデルNN1の出力と第2モデルNN2の出力の和と第一原理計算等による教師データとに基づいて第2モデルNN2を訓練してもよい。
【0058】
なお、第1モデルNN1は、必須の構成ではない。例えば、第1モデルNN1は、Lennard-Jones関数に基づいて2体ポテンシャルを求める関数で代替してもよく、その他、適切に2体ポテンシャルを算出することのできる関数、モデルを用いてもよい。これは、本実施形態に係る推定装置2に関しても同様である。
【0059】
図6は、第2実施形態に係る処理を示すフローチャートである。
【0060】
まず、訓練装置1は、入力部100を介して訓練データを取得する(S200)。訓練データは、第1モデルNN1の訓練に必要となる2原子の状態(それぞれの元素の種類と2原子間の距離)と2体ポテンシャル(エネルギー、力を含む)が紐付けられたデータ、及び、分子、結晶等の状態とエネルギー、力を含む情報が紐付けられたデータである。
【0061】
第1訓練部108は、2体ポテンシャルに関する訓練データを用いて、第1モデルNN1の訓練を実行する(S202)。第1モデルNN1は、2体ポテンシャルに関する情報を入出力するのに適したニューラルネットワークモデルである。第1訓練部108は、第1モデルNN1の訓練に適した機械学習手法により第1モデルNN1を訓練する。終了条件等も任意に決定することができる。例えば、第1訓練部108は、2原子の情報を第1モデルNN1に入力して順伝播し、出力した結果と当該2原子における2体ポテンシャルの情報との誤差を逆伝播することによりパラメータを更新する。
【0062】
第1モデルNN1の訓練が完了した後、第2訓練部110は、第2モデルNN2の訓練を実行する(S204)。第2訓練部110は、最適化された第1モデルNN1の出力データ及び分子、結晶等の訓練データを用いて第2モデルNN2を訓練する。一例として、第1モデルNN1から出力されたエネルギーと、第2モデルNN2に分子、結晶等の情報を入力して出力されたエネルギーと、の和が教師データの値(分子、結晶等の第一原理計算等による演算結果)となるように第2モデルNN2を訓練する。
【0063】
例えば、第2モデルNN2の訓練においては、第1訓練部108が分子等の情報から2原子の組み合わせ情報を抽出し、この2原子に関する2体ポテンシャルについて第1モデルNN1を順伝播することにより取得する。そして、第2訓練部110は、分子等の情報を入力して第2モデルNN2に順伝播させる。第2訓練部110は、第2モデルNN2から出力されたエネルギー等の情報においてポテンシャル関数に基づいて第1モデルNN1の出力したエネルギー等の情報を考慮して、第一原理計算による教師データとの誤差を算出して、この誤差を逆伝播することで第2モデルNN2の訓練を実行する。
【0064】
最も単純な例の1つとしては、第一原理計算により算出されたエネルギー等の量と、第1モデルNN1の出力した分子等を構成する2原子間のエネルギー等の量と、の差を教師データとして、第2訓練部110は、第2モデルNN2の訓練を実行する。この場合、第1モデルNN1に分子等を構成する全ての2原子間の組み合わせのうち、所定の距離以内に存在する2原子間に関する2体ポテンシャルを第1モデルNN1により算出して、算出されたエネルギー等の和を第一原理計算で算出されたエネルギー等から引き算して、教師データとしてもよい。所定の距離は、例えば、2原子の元素の種類により、2体ポテンシャルとしての影響を及ぼしうる距離とすることができる。
【0065】
この他にも、第1モデルNN1の出力した分子等を構成する2原子間のエネルギー等の量を、任意のポテンシャル関数に代入して、2体ポテンシャルに起因するエネルギーを除去したデータを教師データとして用いてもよい。この場合にも、上記と同様に、第1モデルNN1において、分子等の構成から所定の距離以内にある2原子の組み合わせを抽出して2体ポテンシャルを算出してもよい。そして、第2訓練部110は、ポテンシャル関数に基づいて、この2体ポテンシャルの影響を除去した分子等のエネルギーを教師データとして第2モデルNN2の訓練を実行する。
【0066】
第2モデルNN2の訓練が完了した後に、出力部106を介して第1モデルNN1及び第2モデルNN2に関するパラメータ等の情報を出力して処理を終了する(S206)。
【0067】
このように、訓練装置1は、2体ポテンシャルに関する第1モデルNN1と、分子、結晶等の化合物のポテンシャルに関する第2モデルNN2と、を訓練する。
【0068】
なお、第1モデルNN1は、あらかじめ他の訓練装置において訓練されていてもよい。この場合、訓練装置1は、第1訓練部108を備えずに、第1モデルNN1の出力結果に基づいて、第2モデルNN2を訓練してもよい。
【0069】
また、上述したように、訓練装置1は、第1モデルNN1と第2モデルNN2とを並行して訓練してもよい。この場合、S202とS204の処理は、同じタイミングにおいて実行されてもよい。
【0070】
また、上記の例では、第2モデルNN2の訓練においては、2体ポテンシャルに関するデータを用いないとしたが、これに限定されるものではない。第2訓練部110は、第2モデルNN2の訓練において、2体ポテンシャルに関する訓練データを用いてもよい。この場合、第2訓練部110は、2体ポテンシャルに関するデータ、すなわち2原子のデータが入力されると、エネルギー(及び力)が0となるように、第2モデルNN2を訓練してもよい。
【0071】
図7は、本実施形態に係る推定装置の一例を示すブロック図である。推定装置2は、入力部200と、記憶部202と、推論部204と、演算部206と、出力部208と、を備える。推定装置2は、分子、結晶等の化合物に関する情報を入力すると、エネルギー等の物理量を推定して出力する。
【0072】
推定装置2は、入力部200を介して推論に必要となるデータの入力を受け付ける。入力されたデータは、例えば、一時的に記憶部202に格納されてもよい。入力部200の具体的な動作は、訓練装置1における入力部100と同様の動作であるので、詳しい説明は省略する。
【0073】
記憶部202は、推定装置2における推定処理に必要となるデータを格納する。この記憶部202の動作も、訓練装置1における記憶部102と同様の動作であるので、詳しい説明は省略する。
【0074】
推論部204は、訓練装置1において訓練された第1モデルNN1と、第2モデルNN2とを用いて、入力された2原子、分子等の情報から、エネルギー等の量を推論する。推論部204は、入力された情報を適切に第1モデルNN1、第2モデルNN2に順伝播させて推論する。
【0075】
2原子の情報が入力された場合、推論部204は、第1モデルNN1に当該2原子の情報を入力することにより、2体ポテンシャルの推定処理を実行し、この2体ポテンシャルの推定結果を演算部206へと出力する。この場合、第2モデルNN2は、用いられなくてもよい。
【0076】
3原子以上の情報、例えば、分子、結晶等の情報が入力された場合、推論部204は、2体ポテンシャル関数を形成する2原子同士の情報を第1モデルNN1に入力するとともに、分子、結晶等の情報を第2モデルNN2に入力する。上述した訓練時と同様に、分子等の情報から所定距離以内の2原子を抽出し、この2原子に関する情報を第1モデルNN1に入力し、かつ、分子等の情報そのものを第2モデルNN2に入力し、それぞれ順伝播させる。それぞれのモデルから出力された情報は、演算部206へと出力される。
【0077】
なお、訓練において、上述に記載したように第2モデルNN2において2体ポテンシャルに関する訓練データを用いている場合には、推論部204は、第2モデルNN2に、分子等の情報とともに、抽出した2原子の情報を入力してもよい。
【0078】
演算部206は、第1モデルNN1から出力された2体ポテンシャルに関する情報と、第2モデルNN2から出力された分子等におけるポテンシャルの情報と、に基づいて、全体としてのエネルギー、力等の情報を取得する。演算部206は、訓練において第2モデルNN2の教師データとして考慮された手法と同じ手法を用いて、全エネルギー等を演算する。
【0079】
例えば、訓練において、第2モデルNN2の教師データとして第一原理計算の結果から2体ポテンシャルの結果の差分を用いた場合には、演算部206は、第1モデルNN1の出力結果と、第2のモデルNN2の出力結果との和を算出してエネルギー等の量として出力する。
【0080】
例えば、訓練において、単純な和ではないポテンシャル関数を用いた場合には、演算部206は、当該ポテンシャル関数に基づいて、第1モデルNN1からの出力と、第2モデルNN2からの出力と、を合成する演算をして、この演算結果を出力する。
【0081】
出力部208は、演算部206により演算された結果を推定結果として出力する。
【0082】
図8は、本実施形態に係る推定装置2の処理を示すフローチャートである。
【0083】
まず、推定装置2は、入力部200を介して推定の対象となる分子構造等に関するデータを取得する(S300)。
【0084】
推論部204は、入力された分子構造等のデータから、2原子に関するデータを抽出する(S302)。この処理は、例えば、全ての2原子の組み合わせを抽出する処理であってもよいし、所定距離以内にある2原子の組み合わせを抽出する処理であってもよい。
【0085】
次に、推論部204は、第1モデルNN1、第2モデルNN2にデータを順伝播させることにより、ポテンシャルの推論を実行する(S304)。推論部204は、抽出した2原子に関するデータを第1モデルNN1に入力し、分子等に関するデータを第2モデルNN2に入力し、それぞれを順伝播させる。
【0086】
これには限られず、上述したように、推論部204は、第2モデルNN2の訓練時に設計した定義にしたがったデータを第2モデルNN2に入力する。
【0087】
第1モデルNN1、及び、第2モデルNN2からの出力が取得されると、演算部206は、当該出力を適切に合成する(S306)。S304の処理と同様に、訓練時に定義された手法に基づいて、演算部206は、合成演算を実行する。
【0088】
そして、出力部208は、演算部206による合成結果をエネルギー、力等の情報として出力する(S308)。
【0089】
図9は、本実施形態におけるデータ生成装置、訓練装置及び推定装置におけるデータの流れを示す図である。
図3と同様に、破線はデータ生成装置、点線は訓練装置、実線は推定装置を示す。
【0090】
データ生成装置は、2原子の情報から、第一原理計算又はポテンシャル曲線に基づいて、エネルギー、力等の情報を取得する。また、データ生成装置は、分子、結晶等の情報から、第一原理計算等に基づいて、エネルギー、力等の情報を取得する。
【0091】
訓練装置1は、2原子の情報及び2体ポテンシャルの情報を訓練データとして第1モデルを訓練する。また、訓練装置1は、分子、結晶等の情報及び第一原理計算の出力データを訓練データとし、この訓練データと第1モデルの出力を用いて第2モデルを訓練する。
【0092】
推定装置2は、分子、結晶等の物質に関する情報から、第1モデル及び第2モデルを用いて2体ポテンシャルで表現できるエネルギー等と、2体ポテンシャルで表現できないエネルギー等と、の情報をそれぞれ推論し、この推論結果を合成してエネルギー等の値を取得して出力する。
【0093】
以上のように、本実施形態に係る訓練装置よれば、ポテンシャル関数に基づいて、2体ポテンシャルと分子等の構造、周辺の状況等におけるエネルギー等の情報を適切に反映したニューラルネットワークモデルの訓練を実行することが可能となる。また、本実施形態に係る推定装置によれば、分子等の構造、環境におけるエネルギー等を、ポテンシャル関数に基づいて2体ポテンシャルと分子等の構造に関するポテンシャルとに分離して推論し、この推論結果を適切に合成することができる。
【0094】
このような推論をすることにより、例えば、3原子間等におけるポテンシャル等を望ましく無い凝集をさせずに適切に取得することも可能となる。また、2原子における近距離時のデータを訓練データとして最適化することにより、適切な反発力、エネルギー等を考慮したポテンシャルを取得することが可能となる。例えば、訓練において、2体ポテンシャルの値を訓練対象となるモデルの教師データとすると、この領域における反発力の原因となる大きなエネルギー等の量により、全体としての学習が引っ張られてしまうことがあり、系全体としての訓練及び推論が不安定となる要因となりうる。
【0095】
本実施形態のように2体ポテンシャルにより表現できる部分(第1モデルNN1)と2体ポテンシャルでは表現できない部分(第2モデルNN2)とを別のモデルとして訓練することにより、このような訓練時及び推論時における不安定となる要素を取り除くことができる。
【0096】
以下、本開示におけるデータ生成、訓練、推定についてまとめる。
【0097】
訓練対象となる
図1のモデルNN、
図5の第1モデルNN1、第2モデルNN2は、一連の計算の定義とパラメータのセットにより構成されるモデルである。これらのモデルは、限定されない一例として、適切に解が取得できる任意のニューラルネットワークモデルであってもよい。ニューラルネットワークモデルである場合には、これらのモデルにより、推定装置におけるNNPが構成される。
【0098】
少なくとも2体ポテンシャルを推論するモデル、例えば、モデルNN、第1モデルNN1(及び第2モデルNN2を含んでもよい)の入力は、2原子におけるそれぞれの原子の元素の種類、及び、それぞれの原子の3次元座標の組の列を入力とする。訓練データは、まず、2原子を構成する元素の種類を任意に選択し、この状態で2原子の距離を変化させながらポテンシャル曲線、又は、第一原理計算によりエネルギー等の量を取得することにより生成される。そして、2原子を構成する元素の種類を適切に変化させて、種々の元素間及び種々の距離におけるポテンシャルを取得する。例えば、全ての元素の組み合わせについて、種々の距離における2体ポテンシャルの量を取得してもよい。このデータセットを第1データセットと記載する。
【0099】
少なくとも2体ポテンシャルで表現できない量を推論するモデル、例えば、モデルNN、第2モデルNN2の入力は、分子、結晶等の構造に関するデータとして、この分子等を構成する各原子の元素の種類と、当該元素の3次元座標の組の列を入力とする。訓練データは、この分子等の構造情報と、これらの分子等に対してDFT等の第一原理計算を用いて取得されたエネルギー等の量のセットにより構成される。このデータセットを第2データセットと記載する。
【0100】
第1実施形態において、訓練装置1は、第1データセット及び第2データセットを合わせたデータを訓練データとして用いて、モデルNNの訓練を実行する。
【0101】
第2実施形態において、訓練装置1は、第1データセットを訓練データとして第1モデルNN1を訓練し、第1モデルNN1の入出力データ及び第2データセットを用いて第2モデルNN2を訓練する。訓練装置1は、例えば、第2データセットにおける入力する分子等のエネルギー等から入力する分子等における2原子の組み合わせを第1モデルNN1に入力した出力値の和を減算したエネルギー等を教師データとして第2モデルNN2を訓練する。また、単純な和ではなく、ポテンシャル関数に基づいた演算を実行してもよい。
【0102】
このように、本開示においては、2体ポテンシャルのデータを明示的に訓練に用いることにより、第1実施形態では1つのモデルを、第2実施形態では2つのモデルをそれぞれ適切に訓練することが可能となる。
【0103】
上記の全ての訓練済モデルは、例えば、説明したように訓練した上で、さらに、一般的な手法により蒸留されたモデルを含む概念であってもよい。
【0104】
前述した実施形態における各装置(訓練装置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)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
【0105】
ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
【0106】
図10は、前述した実施形態における各装置(訓練装置1又は推定装置2)のハードウェア構成の一例を示すブロック図である。各装置は、一例として、プロセッサ71と、主記憶装置72(メモリ)と、補助記憶装置73(メモリ)と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
【0107】
図10のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、
図10では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(訓練装置1又は推定装置2)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
【0108】
前述した実施形態における各装置(訓練装置1又は推定装置2)の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0109】
プロセッサ71は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA又はASIC等)であってもよい。また、プロセッサ71は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ71は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ71は、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0110】
プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
【0111】
前述した実施形態における各装置(訓練装置1及び/又は推定装置2)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0112】
主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における各装置(訓練装置1又は推定装置2)において各種データを保存するための記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶部102は、主記憶装置72又は補助記憶装置73により実現されてもよい。
【0113】
記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における各装置(訓練装置1又は推定装置2)が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ))とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0114】
ネットワークインタフェース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)等がある。
【0115】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。
【0116】
外部装置9Aは、コンピュータ7とネットワークを介して接続されている装置である。外部装置9Bは、コンピュータ7と直接接続されている装置である。
【0117】
外部装置9A又は外部装置9Bは、一例として、入力装置であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ等、キーボード、マウス、又は、タッチパネル等のデバイスであり、取得した情報をコンピュータ7に与える。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の入力部とメモリとプロセッサを備えるデバイスであってもよい。
【0118】
また、外部装置9A又は外部装置9Bは、一例として、出力装置でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は、有機EL(Electro Luminescence)パネル等の表示装置であってもよいし、音声等を出力するスピーカ等であってもよい。また、パーソナルコンピュータ、タブレット端末、又は、スマートフォン等の出力部とメモリとプロセッサを備えるデバイスであってもよい。
【0119】
また、外部装置9A又は外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aは、ネットワークストレージ等であってもよく、外部装置9Bは、HDD等のストレージであってもよい。
【0120】
また、外部装置9A又は外部装置9Bは、前述した実施形態における各装置(訓練装置1又は推定装置2)の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ7は、外部装置9A又は外部装置9Bの処理結果の一部又は全部を送信又は受信してもよい。
【0121】
本明細書(請求項を含む)において、「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)以外の他の要素を加えることも含む。
【0122】
本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
【0123】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0124】
本明細書(請求項を含む)において、「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)されていればよい。
【0125】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0126】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0127】
本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0128】
本明細書(請求項を含む)において、「最大化(maximize)」等の用語が用いられる場合は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語が用いられる場合は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語が用いられる場合は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。
【0129】
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまり、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は、電子回路を含む装置等を含んでもよい。
【0130】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、数値又は数式を説明に用いている場合は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
【符号の説明】
【0131】
1: 訓練装置、
100: 入力部、
102: 記憶部、
104: 訓練部、
106: 出力部、
NN: モデル、
108: 第1訓練部、
110: 第2訓練部、
NN1: 第1モデル、
NN2: 第2モデル、
2: 推定装置、
200: 入力部、
202: 記憶部、
204: 推論部、
206: 演算部、
208: 出力部