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

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

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

特開2024-56017推定装置、訓練装置、推定方法及び訓練方法
<>
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図1
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図2
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図3
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図4
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図5
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図6
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図7
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図8
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図9
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図10
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図11
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図12
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図13
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図14
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図15
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図16
  • 特開-推定装置、訓練装置、推定方法及び訓練方法 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024056017
(43)【公開日】2024-04-19
(54)【発明の名称】推定装置、訓練装置、推定方法及び訓練方法
(51)【国際特許分類】
   G06N 5/04 20230101AFI20240412BHJP
   G06N 3/0455 20230101ALI20240412BHJP
   G06F 18/21 20230101ALI20240412BHJP
【FI】
G06N5/04
G06N3/0455
G06F18/21
【審査請求】有
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2024034182
(22)【出願日】2024-03-06
(62)【分割の表示】P 2021546951の分割
【原出願日】2020-09-17
(31)【優先権主張番号】P 2019172034
(32)【優先日】2019-09-20
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】100120031
【弁理士】
【氏名又は名称】宮嶋 学
(74)【代理人】
【識別番号】100118876
【弁理士】
【氏名又は名称】鈴木 順生
(74)【代理人】
【識別番号】100202429
【弁理士】
【氏名又は名称】石原 信人
(72)【発明者】
【氏名】本木 大資
(57)【要約】
【課題】物質系のエネルギー予測モデルを構築する。
【解決手段】推定装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、原子に関するベクトルから潜在空間における原子の特徴を抽出する第1ネットワークに、前記原子に関するベクトルを入力し、前記第1ネットワークを介して、潜在空間における原子の特徴を推定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
1又は複数のメモリと、
1又は複数のプロセッサと、
を備え、
前記1又は複数のプロセッサは、
原子に関するベクトルから潜在空間における原子の特徴を抽出する第1ネットワークに、前記原子に関するベクトルを入力し、
前記第1ネットワークを介して、潜在空間における原子の特徴を推定する、
推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、推定装置、訓練装置、推定方法及び訓練方法に関する。
【背景技術】
【0002】
DFT(密度汎関数理論:Density Functional Theory)等の第一原理計算のような量子化学計算は、化学的な背景から電子系のエネルギー等の物性を計算するため、比較的信頼性と解釈性が高い。その反面、計算時間がかかり、網羅的な材料探索には適用が困難であり、発見された材料の特性を理解するための解析に用いられているのが現状である。これに対して、近年深層学習技術を用いた物質の物性予測モデル開発が急速に発展している。
【0003】
しかしながら、上述したように、DFTでは計算時間が長い。一方で、深層学習技術を用いたモデルでは、物性値の予測は可能であるが、既存の座標入力が可能なモデルでは、原子の種類を増やすのが困難であり、また、分子、結晶等の異なる状態やその共存状態を同時に扱うことが困難であった。
【発明の開示】
【0004】
一実施形態は、物質系の物性値推定の精度を向上した推定装置、方法、及び、その訓練装置、方法を提供する。
【0005】
一実施形態によれば、推定装置は、1又は複数のメモリと、1又は複数のプロセッサと、を備える。前記1又は複数のプロセッサは、原子に関するベクトルから潜在空間における原子の特徴を抽出する第1ネットワークに、前記原子に関するベクトルを入力し、前記第1ネットワークを介して、潜在空間における原子の特徴を推定する。
【図面の簡単な説明】
【0006】
図1】一実施形態に係る推定装置の模式的なブロック図。
図2】一実施形態に係る原子特徴取得部の模式的な図。
図3】一実施形態に係る分子等の座標設定の一例を示す図。
図4】一実施形態に係る分子等のグラフデータ取得の一例を示す図。
図5】一実施形態に係るグラフデータの一例を示す図。
図6】一実施形態に係る推定装置の処理を示すフローチャート。
図7】一実施形態に係る訓練装置の模式的なブロック図。
図8】一実施形態に係る原子特徴取得部の訓練における構成の模式的な図。
図9】一実施形態に係る物性値の教師データの一例を示す図。
図10】一実施形態に係る原子の物性値を訓練した様子を示す図。
図11】一実施形態に係る構造特徴抽出部の模式的なブロック図。
図12】一実施形態に係る全体的な訓練の処理を示すフローチャート。
図13】一実施形態に係る第1ネットワークの訓練の処理を示すフローチャート。
図14】一実施形態に係る第1ネットワークの出力による物性値の例を示す図。
図15】一実施形態に係る第2、第3、第4ネットワークの訓練の処理を示すフローチャート。
図16】一実施形態に係る物性値の出力の例を示す図。
図17】一実施形態に係る推定装置又は訓練装置の実装例。
【発明を実施するための形態】
【0007】
以下、図面を参照して本発明の実施形態について説明する。図面及び実施形態の説明は一例として示すものであり、本発明を限定するものではない。
【0008】
[推定装置]
図1は、本実施形態に係る推定装置1の機能を示すブロック図である。本実施形態の推定装置1は、原子の種類等の情報と座標の情報、及び、境界条件の情報から分子等(以下、単原子分子、分子、結晶を含むものを分子等と記載する)である推定対象の物性値を推定して出力する。この推定装置1は、入力部10と、記憶部12と、原子特徴取得部14と、入力情報構成部16と、構造特徴抽出部18と、物性値予測部20と、出力部22と、を備える。
【0009】
推定装置1は、入力部10を介して分子等である推定対象情報である原子の種類及び座標と、境界条件等、必要な情報が入力される。本実施形態では、例えば、原子の種類、座標、境界条件の情報が入力されるものとして説明するが、これには限られず物性値を推定したい物質の構造が定義されるような情報であればよい。
【0010】
原子の座標は、例えば、絶対空間等における原子の3次元座標である。例えば、並進不変、回転不変な座標系を用いた座標系における座標であってもよい。これには限られず、推定対象となる分子等の物体における原子の構造が適切に表現できる座標系をもちいた座標であればよい。この原子の座標を入力することにより、分子等においてどのような相対的な位置に存在するかを定義することができる。
【0011】
境界条件とは、例えば、結晶である推定対象についての物性値を取得したい場合に、単位格子又は単位格子を繰り返し配置したスーパーセル内の原子の座標を入力とするが、この場合に、入力原子が真空との境界面となる場合、となりに同じ原子配置が繰り返される場合等を設定する。例えば、触媒となる結晶に分子を近づける場合に、分子と接する結晶面は、真空との境界であり、それ以外は結晶構造が連続しているという境界条件を仮定してもよい。このように、推定装置1は、分子に関する物性値だけではなく、結晶に関する物性、結晶と分子の両方が関係する物性値等を推定することも可能である。
【0012】
記憶部12は、推定に必要となる情報を記憶する。例えば、入力部10を介して入力された推定に用いるデータが記憶部12に一時的に記憶されてもよい。また、各部において必要となるパラメータ、例えば、各部に備えられるニューラルネットワークを形成するために必要なパラメータ等が格納されてもよい。また、推定装置1がソフトウェアによる情報処理がハードウェア資源をもちいて具体的に実現される場合には、このソフトウェアに必要となるプログラム、実行ファイル等が格納されていてもよい。
【0013】
原子特徴取得部14は、原子の特徴を示す量を生成する。原子の特徴を示す量は、例えば、1次元のベクトル形式で表現されてもよい。原子特徴取得部14は、例えば、原子を示すワンホットベクトルを入力すると潜在空間のベクトルへと変換するMLP(Multilayer Perceptron)等のニューラルネットワーク(第1ネットワーク)を備え、この潜在空間のベクトルを原子の特徴として出力する。
【0014】
この他、原子特徴取得部14は、ワンホットベクトルではなく、原子を示す、テンソル、ベクトル等他の情報が入力されるものであってもよい。これらのワンホットベクトル、テンソル、ベクトル等の他の情報は、例えば、着目する原子を表す符号、又は、これに類する情報である。この場合、ニューラルネットワークの入力層がワンホットベクトルを用いるものとは異なる次元を有する層として形成されてもよい。
【0015】
原子特徴取得部14は、推定ごとに特徴を生成してもよいし、別の例としては、推定した結果を記憶部12に格納しておいてもよい。例えば、水素原子、炭素原子、酸素原子等の頻繁に用いられるものについては記憶部12に特徴を格納しておき、他の原子については、推定ごとに特徴を生成してもよい。
【0016】
入力情報構成部16は、入力された原子座標、境界条件及び原子特徴取得部14により生成された原子の特徴又はそれに類する原子を区別する特徴が入力されると、分子等の構造をグラフの形式に変換し、構造特徴抽出部18に備えられるグラフを処理するネットワークの入力に適合させる。
【0017】
構造特徴抽出部18は、入力情報構成部16が生成したグラフの情報から、構造に関する特徴を抽出する。この構造特徴抽出部18は、例えば、GNN(グラフニューラルネットワーク:Graph Neural Network)、GCN(グラフ畳み込みネットワーク:Graph Convolutional Network)等のようなグラフベースのニューラルネットワークを備える。
【0018】
物性値予測部20は、構造特徴抽出部18が抽出した分子等の推定対象の構造の特徴から、物性値を予測して出力する。この物性値予測部20は、例えば、MLP等のニューラルネットワークを備える。取得したい物性値により備えられるニューラルネットワークの特性等が異なる場合がある。そのため異なるニューラルネットワークを複数用意しておき、取得したい物性値にあわせていずれかを選択するものであってもよい。
【0019】
出力部22は、推定された物性値を出力する。ここで、出力とは、インタフェースを介して推定装置1の外部へと出力すること、及び、記憶部12等、推定装置1の内部に出力することの双方を含む概念である。
【0020】
各構成についてより詳細に説明する。
【0021】
(原子特徴取得部14)
原子特徴取得部14は、上述したように、例えば、原子を示すワンホットベクトルを入力すると、潜在空間のベクトルを出力するニューラルネットワークを備える。原子を示すワンホットベクトルは、例えば、原子核情報についての情報を示すワンホットベクトルである。より具体的には、例えば、陽子数、中性子数、電子数をワンホットベクトルに変換したものである。例えば、陽子数と、中性子数とが入力されることにより、同位体についても特徴取得の対象とすることもできる。例えば、陽子数と、電子数とが入力されることにより、イオンについても特徴取得の対象とすることもできる。
【0022】
入力するデータは、上記以外の情報が含まれていてもよい。例えば、原子番号、周期表中の族、周期、ブロック、同位体間における半減期等の情報を、上記のワンホットベクトルに加えて入力として備えてもよい。また、ワンホットベクトルと別の入力とを、原子特徴取得部14においてワンホットベクトルとして結合する態様であってもよい。例えば、離散値がワンホットベクトルに格納され、連続値がその量を表す量(スカラー、ベクトル、テンソル等)を上記の入力として追加されてもよい。
【0023】
ワンホットベクトルは、ユーザが別途生成してもよい。別の例としては、原子名、原子番号その他の原子を示すID等を入力とし、原子特徴取得部14においてこれらの情報からデータベース等を参照することによりワンホットベクトルを生成するワンホットベクトル生成部を別途備えていてもよい。なお、連続値も入力として付与する場合には、ワンホットベクトルとは別のベクトルを生成する、入力ベクトル生成部をさらに備えていてもよい。
【0024】
原子特徴取得部14に備えられるニューラルネットワーク(第1ネットワーク)は、例えば、エンコーダとデコーダを形成するニューラルネットワークにより訓練されたモデルのエンコーダ部分であってもよい。エンコーダ、デコーダは、例えば、VAE(Variational Autoencoder)と同様にエンコーダの出力に分散を持たせるVariational Encoder Decoderにより構成されてもよい。Variational Encoder Decoderを用いた場合の例について以下説明するが、Variational Encoder Decoderには限られず、原子の特徴に対する潜在空間におけるベクトル、すなわち特徴量を適切に取得できるニューラルネットワーク等のモデルであればよい。
【0025】
図2は、原子特徴取得部14の概念を示す図である。原子特徴取得部14は、例えば、ワンホットベクトル生成部140と、エンコーダ142と、を備える。エンコーダ142及び後述するデコーダは、上述のVariational Encoder Decoderによるネットワークの一部の構成である。なお、エンコーダ142が示されているが、特徴量を出力するための他のネットワーク、演算器等がエンコーダ142の後に挿入されていてもよい。
【0026】
ワンホットベクトル生成部140は、原子を示す変数からワンホットベクトルを生成する。ワンホットベクトル生成部140は、例えば、陽子数等のワンホットベクトルに変換する値が入力された場合には、入力されたデータを用いてワンホットベクトルを生成する。
【0027】
入力されたデータが原子番号、原子名等の間接的な値である場合には、ワンホットベクトル生成部140は、例えば、推定装置1の内部又は外部のデータベース等から、陽子数等の値を取得してワンホットベクトルを生成する。このように、ワンホットベクトル生成部140は、入力データに基づいて、適切な処理を行う。
【0028】
このように、ワンホットベクトル生成部140は、ワンホットベクトルへと変換する入力情報が直接入力された場合には、当該変数のそれぞれをワンホットベクトルに適合した形式に変換し、ワンホットベクトルを生成する。一方で、ワンホットベクトル生成部140は、原子番号のみが入力される、といった場合には、当該入力されたデータからワンホットベクトルの変換に必要となるデータを自動的に取得し、取得したデータに基づいてワンホットベクトルを生成してもよい。
【0029】
なお、上述において、入力においてはワンホットベクトルを利用する旨を記載したが、これは一例として記載したものであり、本実施形態は、この態様に限られるものではない。例えば、ワンホットベクトルを利用しないベクトル、マトリクス、テンソル等を入力とすることも可能である。
【0030】
なお、記憶部12にワンホットベクトルが格納されている場合には、記憶部12から取得してもよいし、ユーザがワンホットベクトルを別途準備して推定装置1に入力する場合には、ワンホットベクトル生成部140は、必須の構成ではない。
【0031】
ワンホットベクトルは、エンコーダ142に入力される。エンコーダ142は、入力されたワンホットベクトルから原子の特徴となるベクトルの平均値を示すベクトルzμと、ベクトルzμの分散を示すベクトルσ2と、を出力する。この出力結果からサンプリングされたものがベクトルzであり。例えば、訓練時には、このベクトルzμから原子の特徴を再構成する。
【0032】
原子特徴取得部14は、この生成されたベクトルzμを入力情報構成部16へと出力する。なお、VAEの一手法として用いられるReparametrization trickを用いることも可能であり、この場合、ランダム値のベクトルεを用いて、以下のようにベクトルzを求めてもよい。なお、記号odot(丸の中に点)は、ベクトルの要素ごとの積を示す。
【数1】
【0033】
別の例として、分散を有しないzを原子の特徴として出力してもよい。
【0034】
後述するように、第1ネットワークは、原子のワンホットベクトル等を入力すると、特徴を抽出するエンコーダと、当該特徴から物性値を出力するデコーダと、を備えるネットワークとして訓練される。適切に訓練された原子特徴取得部14を用いることにより、分子等の物性値予測に必要な情報をユーザが選択することなくネットワークにより抽出することが可能となる。
【0035】
このようなエンコーダとデコーダを用いることで、物性値を直接入力する場合と比較して全ての原子に対して必要となる物性値が不明であっても利用できる点においてより多くの情報を活用でき、有利となる。さらに、連続的な潜在空間内にマッピングされるため、性質の近い原子は潜在空間内において近くに、性質が異なる原子はより遠くに転写されるため、その間の原子の内挿が可能となる。そのため、全ての原子を学習データに含めなくても原子間の内挿により結果を出力することが可能であるし、一部の原子に対する学習データが十分でない場合にも精度の高い物性値を出力可能な特徴を生成することができる。
【0036】
このように、原子特徴取得部14は、例えば、原子ごとの物性値をデコードできる特徴が抽出可能なニューラルネットワーク(第1ネットワーク)を備えて構成される。第1ネットワークのエンコーダを介することにより、例えば、102~オーダーのワンホットベクトルの次元から、16次元程度の特徴量ベクトルへと変換することも可能である。このように、第1ネットワークは、入力次元よりも出力次元が小さいニューラルネットワークを備えて構成される。
【0037】
(入力情報構成部16)
入力情報構成部16は、入力されたデータ及び原子特徴取得部14が生成したデータに基づいて、分子等における原子配置、接続に関するグラフを生成する。入力情報構成部16は、入力する分子等の構造と併せて境界条件を考慮し、隣接原子の有無を判断し、隣接原子がある場合にはその座標を決定する。
【0038】
入力情報構成部16は、例えば、単分子である場合には、隣接原子として入力に示された原子座標を利用してグラフを生成する。結晶の場合には、例えば、単位格子内の原子は、入力された原子座標から座標を決定し、単位格子の外郭に位置する原子は、単位格子の繰り返しパターンから外側の隣接原子の座標を決定する。結晶において界面が存在する場合には、例えば、界面側には繰り返しパターンを適用せずに隣接原子を決定する。
【0039】
図3は、本実施形態に係る座標設定の例を示す図である。例えば、分子Mのみのグラフを生成する場合、分子Mを構成する3つの原子の種類とそれぞれの相対座標からグラフを生成する。
【0040】
例えば、繰り返しを有し、界面Iが存在する結晶のみのグラフを生成する場合、結晶の単位格子Cを右側への繰り返しC1、左側への繰り返しC2、下側への繰り返しC3、左下側への繰り返しC4、右下側への繰り返しC5、・・・、を想定して各原子の隣接原子を想定してグラフを生成する。図において、点線が界面Iを示し、破線で示した単位格子が入力された結晶の構造を示し、一点鎖線で示した領域が結晶の単位格子Cの繰り返しを想定した領域を示す。すなわち、界面Iを超えない範囲で結晶を構成する各原子の隣接原子を想定してグラフを生成する。
【0041】
触媒等のように、結晶に対して分子が作用する場合の物性値を推定したい場合には、分子Mと、上記の結晶の界面Iを考慮した繰り返しを想定して、分子を構成する各原子からの隣接原子、及び、結晶を構成する格原子からの隣接原子の座標を算出し、グラフを生成する。
【0042】
なお、入力するグラフの大きさには制限があるため、例えば、分子Mが中心に来るように界面I、単位格子C及び単位格子Cの繰り返しを設定してもよい。すなわち、単位格子Cの繰り返しを適切なだけ実行して座標を取得してグラフを生成してもよい。グラフを生成するために、例えば、分子Mに一番近い単位格子Cを中心にして、界面を超えない範囲においてグラフで表現できる原子数を超えないように単位格子Cの上下左右への繰り返しを想定し、それぞれの隣接原子の座標を取得する。
【0043】
図3においては、分子Mが1つに対して界面Iを有する結晶の単位格子Cの1つが入力されるものとしたが、これには限られない。例えば、分子Mが複数あってもよいし、複数の結晶が存在していてもよい。
【0044】
また、入力情報構成部16は、上記により構成された2原子間の距離、及び、3原子においてある原子を頂点とした場合に為す角度を算出してもよい。この距離及び角度は、各原子の相対座標に基づいて算出する。角度は、例えば、ベクトルの内積や余弦定理を用いて取得する。例えば、全ての原子の組み合わせについて算出してもよいし、入力情報構成部16がカットオフ半径Rcを決定し、原子ごとにカットオフ半径Rc内にある他の原子を探索して、このカットオフ半径Rc内に存在する原子の組み合わせについて算出してもよい。
【0045】
構成される原子のそれぞれにインデクスを付与し、このインデクスの組み合わせと併せて記憶部12にこれらの算出した結果を格納してもよい。算出する場合、構造特徴抽出部18において、これらの値を使用するタイミングで記憶部12から読み出してもよいし、入力情報構成部16から構造特徴抽出部18へとこれらの値を出力してもよい。
【0046】
また、理解のために2次元に示しているが、もちろん3次元空間に分子等が存在するものである。このため、繰り返しの条件は、図面の手前側及び奥手側にも適用される場合がある。
【0047】
入力情報構成部16は、このように、入力された分子等の情報及び原子特徴取得部14が生成した各原子の特徴から、ニューラルネットワークの入力となるグラフを生成する。
【0048】
(構造特徴抽出部18)
本実施形態の構造特徴抽出部18は、上述したように、グラフ情報を入力すると、そのグラフの構造に関する特徴を出力するニューラルネットワークを備える。ここで、入力するグラフの特徴として、角度情報を含んでもよい。
【0049】
構造特徴抽出部18は、例えば、入力するグラフにおける同種原子の置換、入力構造の並進、回転、に対して不変な出力を維持するように設計されている。これらは、現実の物質の物性がこれらの量に依存しないことに起因する。例えば、下記のように隣接原子及び3原子間の角度を定義することにより、これらの条件を満たすようにグラフの情報を入力することが可能となる。
【0050】
まず、例えば、構造特徴抽出部18は、最大隣接原子数Nnとカットオフ半径Rcを決定し、着目している原子A(着目原子)に対する隣接原子を取得する。カットオフ半径Rcを設定することにより、互いに及ぼす影響が無視できる程度に小さい原子を排除するとともに、隣接原子として抽出される原子が多くなりすぎないようにすることができる。また、グラフコンボリューションを複数回行うことにより、カットオフ半径外にある原子の影響も取り込むことが可能となる。
【0051】
隣接原子数が最大隣接原子数Nnに満たない場合には、ダミーとして原子Aと同じ種類の原子がカットオフ半径Rcよりも十分に遠いところにランダムに配置する。隣接原子数が最大隣接原子数Nnよりも多くなる場合には、例えば、原子Aからの距離が近い順にNn個の原子を選択して隣接原子の候補とする。このような隣接原子を考慮すると、3原子の組み合わせは、NnC2通りとなる。例えば、Nn=12とすると、12C2 = 66通りとなる。
【0052】
カットオフ半径Rcは、再現したい物理現象の相互作用距離と関係する。結晶等の密に詰まった系の場合は、カットオフ半径Rcとして4 ~ 8 × 10-8 cmを用いれば多くの場合、十分な精度を確保することが可能となる。一方、結晶表面と分子、又は、分子間等の相互作用を考慮する場合には、その2つは構造的に接続がないため、グラフコンボリューションを繰り返しても遠くの原子の影響を考慮することができないため、カットオフ半径が直接的な最大の相互作用距離となる。この場合でも、カットオフ半径Rcとして8 × 10-8 cm~を考慮し、初期形状をその距離から開始することにより適用することが可能となる。
【0053】
最大隣接原子数Nnは、計算効率の観点から12程度を選択するが、これに限られるものではない。Nn個の隣接原子に選択されなかったカットオフ半径Rc内の原子についても、グラフコンボリューションを繰り返すことにより、その影響を考慮することが可能である。
【0054】
1つの着目原子に対して、例えば、当該原子の特徴、隣接する2原子の特徴、当該原子と隣接する2原子との距離、及び、当該原子を中心として隣接する2原子のなす角の値を結合(concatenate)したものを入力のワンセットとする。この原子の特徴をノードの特徴、距離と角度をエッジの特徴とする。エッジの特徴については、取得した数値をそのまま使用することもできるが、所定の処理を行ってもよい。例えば、特定の幅にビニングして使用してもよいし、さらに、ガウシアンフィルターを適用してもよい。
【0055】
図4は、グラフのデータの取り方の一例を説明するための図である。着目する原子を原子Aとして考える。図3と同様に2次元に示しているが、より正確には、3次元空間に原子が存在している。以下の説明においては、原子Aに対して隣接原子の候補が原子B、C、D、E、Fであると仮定するが、この原子の数は、Nnにより決定され、隣接原子の候補は、分子等の構造、及び、存在している状態により変化するものであるので、これに限られるものではない。例えば、さらに、原子G、H、・・・等が存在している場合には、Nnを超えない範囲で同様に下記の特徴抽出等が実行される。
【0056】
原子Aから点線矢印で示すのがカットオフ半径Rcである。原子Aからカットオフ半径Rcの範囲を示すのが点線で示された円の範囲である。原子Aの隣接原子は、この点線の円内で探索する。最大隣接原子数Nnが5以上であれば、原子Aの隣接原子は、原子B、C、D、E、Fの5つが確定される。このように、構造式として接続されている原子同士の他、カットオフ半径Rcにより形成される範囲内における構造式においては接続されていない原子同士についてもエッジのデータを生成する。
【0057】
構造特徴抽出部18は、原子Aを頂点とした角度データを取得するために、原子の組み合わせを抽出する。以下、原子A、B、Cの組み合わせをA-B-Cと記載する。原子Aに対する組み合わせは、A-B-C、A-B-D、A-B-E、A-B-F、A-C-D、A-C-E、A-C-F、A-D-E、A-D-F、A-E-Fの5C2=10通りとなる。構造特徴抽出部18は、例えば、このそれぞれにインデクスを付与してもよい。インデクスは、原子Aのみに着目したものであってもよく、複数の原子、又は、全ての原子に着目したものを考慮して一意的に付与されてもよい。このようにインデクスを付与することにより、着目原子と隣接原子との組み合わせを一意的に指定することが可能となる。
【0058】
A-B-Cの組み合わせのインデクスが、例えば0であるとする。隣接原子の組み合わせが原子Bと原子Cであるグラフデータ、すなわち、インデクス0のグラフデータは、原子Bと原子Cについてそれぞれ生成される。
【0059】
例えば、着目原子である原子Aに対して、原子Bを第1隣接原子とし、原子Cを第2隣接原子とする。第1隣接原子に関するデータとして、構造特徴抽出部18は、原子Aの特徴、原子Bの特徴、原子A、B間の距離、原子B、A、Cの為す角度の情報を結合する。第2隣接原子に関するデータとして、原子Aの特徴、原子Cの特徴、原子A、B間の距離、原子C、A、Bの為す角度の情報を結合する。
【0060】
原子間の距離及び3原子の為す角度は、入力情報構成部16が算出したものを用いてもよいし、入力情報構成部16がこれらを算出していない場合には、構造特徴抽出部18が算出してもよい。距離及び角度の算出は、入力情報構成部16において説明したものと同等の方法を用いることができる。また、原子数が所定数よりも多い場合には、構造特徴抽出部18において算出し、原子数が所定数よりも少ない場合には、入力情報構成部16において算出する等、動的に算出するタイミングを変更してもよい。この場合、メモリ、プロセッサ等のリソースの状態に基づいて、いずれで算出するかを決定してもよい。
【0061】
以下、原子Aに着目する場合の原子Aの特徴を原子Aのノード特徴と記載する。上記の場合、原子Aのノード特徴のデータは冗長であるので、まとめて保持してもよい。例えば、インデクス0のグラフデータは、原子Aのノード特徴、原子Bの特徴、原子A、B間の距離、原子B、A、Cの角度、原子Cの特徴、原子A、C間の距離、原子C、A、Bの角度、の情報を備えて構成されてもよい。
【0062】
原子A、B間の距離、原子B、A、Cの角度をまとめて原子Bのエッジ特徴、同様に、原子A、C間の距離、原子C、A、Bの角度をまとめて原子Cのエッジ特徴と記載する。エッジ特徴は、角度情報が含まれることから、組み合わせの相手となる原子により異なる量である。例えば、原子Aに対して、隣接原子がB、Cである場合の原子Bのエッジ特徴と、隣接原子がB、Dである場合の原子Bのエッジ特徴とは、異なる値を有する。
【0063】
構造特徴抽出部18は、全ての原子について、隣接原子の2原子の全ての組み合わせのデータを上述した原子Aについてのグラフデータと同じように生成する。
【0064】
図5は、構造特徴抽出部18により生成されたグラフデータの一例を示す。
【0065】
第1の原子または着目原子である原子Aのノード特徴に対して、原子Aからカットオフ半径Rc内に存在する隣接原子の組み合わせについてそれぞれの原子の特徴とエッジ特徴が生成される。図中の横のつながりは、例えば、インデクスにより紐付けられていてもよい。第1の着目原子である原子Aの隣接原子を選択して特徴を取得したのと同様に、原子B、C、・・・、についても、第2、第3、それ以上の着目原子としてそれぞれ第2、第3、それ以上の隣接原子の組み合わせについて特徴を取得する。
【0066】
このように、全ての原子についてノード特徴、並びに、隣接原子に関する原子の特徴及びエッジ特徴を取得する。この結果、着目原子の特徴は、(n_site, site_dim)のテンソル、隣接原子の特徴は、(n_site, site_dim, n_nbr_comb, 2)のテンソル、エッジ特徴は、(n_site, edge_dim, n_nbr_comb, 2)のテンソルとなる。なお、n_siteは原子数、site_dimは原子の特徴を示すベクトルの次元、n_nbr_combは着目原子に対する隣接原子の組み合わせ数(=NnC2)、edge_dimはエッジ特徴の次元である。隣接原子の特徴及びエッジ特徴は、それぞれ着目原子に対して2つの隣接原子を選択してそれぞれの隣接原子について得られることから、それぞれ、(n_site, site_dim, n_nbr_comb)、(n_site, edge_dim, n_nbr_comb)の2倍の次元を有するテンソルとなる。
【0067】
構造特徴抽出部18は、これらのデータを入力すると、原子の特徴と、エッジの特徴とを更新して出力するニューラルネットワークを備える。すなわち、構造特徴抽出部18は、グラフに関するデータを取得するグラフデータ取得部と、このグラフに関するデータを入力すると更新するニューラルネットワークと、を備える。このニューラルネットワークは、入力データである(n_site, site_dim + edge_dim + site_dim, n_nbr_comb, 2)の次元を有するデータから、(n_site, site_dim)次元のノード特徴を出力する第2ネットワークと、(n_site, edge_dim, n_nbr_comb, 2)次元のエッジ特徴を出力する第3ネットワークを備える。
【0068】
第2ネットワークは、着目原子に対する2原子分の隣接原子の特徴を備えるテンソルを入力すると(n_site, site_dim, n_nbr_comb, 1)次元のテンソルへと次元を減らすネットワークと、着目原子に対する次元が減らされた隣接原子の特徴を備えるテンソルを入力すると(n_site, site_dim, 1, 1)次元のテンソルへと次元を減らすネットワークと、を備える。
【0069】
第2ネットワークの一段目のネットワークは、着目原子である原子Aについての原子B、Cを隣接原子とした場合のそれぞれの隣接原子に対する特徴を、着目原子である原子Aについての隣接原子B、Cの組み合わせについての特徴へと変換する。このネットワークにより、隣接原子の組み合わせの特徴を抽出することが可能となる。第1の着目原子である原子Aについて、全ての隣接原子の組み合わせについてこの特徴へと変換する。さらに、第2の着目原子である原子B、・・・について、同じように全ての隣接原子の組み合わせについて特徴を変換する。このネットワークにより、隣接原子の特徴を示すテンソルは、(n_site, site_dim, n_nbr_comb, 2)次元から(n_site, site_dim, n_nbr_comb, 1)次元へと変換される。
【0070】
第2ネットワークの二段目のネットワークは、原子Aについての原子B、Cの組み合わせ、原子B、Dの組み合わせ、・・・、原子E、Fの組み合わせから、隣接原子の特徴を備えた原子Aのノード特徴を抽出する。このネットワークにより、着目原子に対する隣接原子の組み合わせを考慮したノード特徴を抽出することが可能となる。さらに、原子B、・・・について、同じように全ての隣接原子の組み合わせを考慮したノード特徴を抽出する。このネットワークにより、二段目のネットワークの出力は、(n_site, site_dim, n_nbr_comb, 1)次元からノード特徴の次元と同等の次元である(n_site, site_dim, 1, 1)次元へと変換される。
【0071】
本実施形態の構造特徴抽出部18は、第2ネットワークの出力に基づいて、ノード特徴を更新する。例えば、第2ネットワークの出力と、ノード特徴とを加算して、tanh()等の活性化関数を介して、更新されたノード特徴(以下、更新ノード特徴と記載する)を取得する。また、この処理は、構造特徴抽出部18に第2ネットワークとは別個に備えられている必要はなく、第2ネットワークの出力側の層として、この加算及び活性化関数処理を備えていてもよい。また、第2ネットワークは、後述の第3ネットワークと同様に、最終的に取得した物性値に対して不要となりうる情報を削減することができる。
【0072】
第3ネットワークは、エッジ特徴を入力すると、更新されたエッジ特徴(以下、更新エッジ特徴と記載する)を出力するネットワークである。第3ネットワークは、(n_site, edge_dim, n_nbr_comb, 2)次元のテンソルを(n_site, edge_dim, n_nbr_comb, 2)次元のテンソルへと変換する。例えば、ゲート等を用いることにより、最終的に取得したい物性値に対して不要である情報を削減する。後述の訓練装置により、パラメータが訓練されることにより、この機能を有する第3ネットワークが生成される。第3ネットワークは、上記に加え、さらに、同じ入出力次元を有するネットワークを二段目として備えていてもよい。
【0073】
本実施形態の構造特徴抽出部18は、第3ネットワークの出力に基づいて、エッジ特徴を更新する。例えば、第3ネットワークの出力と、エッジ特徴とを加算して、tanh()等の活性化関数を介して、更新エッジ特徴を取得する。また、同じエッジに対する特徴が複数個抽出された場合には、これらの平均値を算出して1つのエッジ特徴としてもよい。これら処理は、構造特徴抽出部18に第3ネットワークとは別個に備えられている必要はなく、第3ネットワークの出力側の層として、この加算及び活性化関数処理を備えていてもよい。
【0074】
第2ネットワーク、第3ネットワークの各ネットワークは、例えば、畳み込み層、バッチ正規化、プーリング、ゲート処理、活性化関数等を適切に用いたニューラルネットワークにより形成されてもよい。上記には限られず、MLP等により形成されてもよい。また例えば、入力テンソルの各要素を2乗したテンソルをさらに入力可能な入力層を有するネットワークであってもよい。
【0075】
また、別の例として、第2ネットワーク、第3ネットワークは、別個に形成されるネットワークではなく、1のネットワークとして形成されてもよい。この場合、ノード特徴、隣接原子の特徴、エッジ特徴を入力すると、上記の例にしたがって、更新ノード特徴とエッジ特徴とを出力するネットワークとして形成される。
【0076】
構造特徴抽出部18は、このように、入力情報構成部16が構成した入力情報に基づいて、隣接原子を考慮したグラフのノード及びエッジに関するデータを生成し、生成したこれらのデータを更新して、各原子のノード特徴及びエッジ特徴を更新する。更新ノード特徴は、隣接原子を考慮されたノード特徴である。更新エッジ特徴は、生成したエッジ特徴から取得したい物性値に関して余分な情報となり得る情報を削除したエッジ特徴である。
【0077】
(物性値予測部20)
本実施形態の物性値予測部20は、上述したように、分子等の構造に関する特徴、例えば、更新ノード特徴及び更新エッジ特徴を入力すると、物性値を予測して出力するMLP等のニューラルネットワーク(第4ネットワーク)を備える。更新ノード特徴及び更新エッジ特徴は、そのまま入力されるだけではなく、後述するように求めたい物性値に対応して加工して入力されてもよい。
【0078】
この物性値予測に用いるネットワークは、例えば、予測したい物性の性質により変更されてもよい。例えば、エネルギーを取得したい場合には、同一の第4ネットワークにノードごと特徴を入力し、取得された出力を各原子のエネルギーとして、その合計値を全エネルギー値として出力する。
【0079】
所定の原子間の特性を予測する場合には、更新エッジ特徴を第4ネットワークに入力し、取得したい物性値を予測する。
【0080】
入力全体から決定される物性値を予測する場合には、更新ノード特徴の平均、合計等を算出し、この算出された値を第4ネットワークに入力して物性値を予測する。
【0081】
このように、第4ネットワークは、取得したい物性値に対して異なるネットワークとして構成されてもよい。この場合、第2ネットワーク及び第3ネットワークの少なくとも1つは、当該物性値を取得するのに使用される特徴量を抽出するニューラルネットワークとして形成されてもよい。
【0082】
別の例として、第4ネットワークは、その出力として複数の物性値を同じタイミングで出力するニューラルネットワークとして形成してもよい。この場合、第2ネットワーク及び第3ネットワークの少なくとも1つは、複数の物性値を取得するのに使用される特徴量を抽出するニューラルネットワークとして形成されてもよい。
【0083】
このように、第2ネットワーク、第3ネットワーク、第4ネットワークは、取得したい物性値によりパラメータ、及び、層の形状等が異なるニューラルネットワークとして形成され、それぞれの物性値に基づいて訓練されてもよい。
【0084】
物性値予測部20は、第4ネットワークからの出力について取得したい物性値に基づいて適切に処理し、出力する。例えば、全体のエネルギーを求める場合に、各原子についてエネルギーを第4ネットワークにより取得した場合は、これらのエネルギーを合計して出力する。他の例の場合であっても、同様に、第4ネットワークが出力した値に対して、取得したい物性値に適切な処理を実行し、出力値とする。
【0085】
出力部22を介して、この物性値予測部20が出力した量を、推定装置1の外部又は内部へと出力する。
【0086】
図6は、本実施形態に係る推定装置1の処理の流れを示すフローチャートである。このフローチャートを用いて推定装置1の全体的な処理について説明する。各ステップの詳細な説明は、上述の記載による。
【0087】
まず、本実施形態の推定装置1は、入力部10を介してデータの入力を受け付ける(S100)。入力される情報は、分子等の境界条件、分子等の構造情報、及び、分子等を構成する原子の情報である。分子等の境界条件及び分子等の構造情報は、例えば、原子の相対座標により指定されてもよい。
【0088】
次に、原子特徴取得部14は、入力された分子等に用いられる原子の情報から、分子等を構成する各原子の特徴を生成する(S102)。上述したように、あらかじめ原子特徴取得部14により種々の原子の特徴を生成しておき、記憶部12等に格納しておいてもよい。この場合、用いられる原子の種類に基づいて、記憶部12から読み出してもよい。原子特徴取得部14は、自身に備えられる訓練済のニューラルネットワークに原子の情報を入力することにより、原子の特徴を取得する。
【0089】
次に、入力情報構成部16は、入力された境界条件、座標、及び、原子の特徴から、分子等のグラフ情報を生成するための情報を構成する(S104)。例えば、図3に示される例のように、入力情報構成部16は、分子等の構造を記述した情報を生成する。
【0090】
次に、構造特徴抽出部18は、構造の特徴を抽出する(S106)。構造の特徴の抽出は、分子等の各原子についてのノード特徴及びエッジ特徴の生成処理、及び、ノード特徴及びエッジ特徴の更新処理の2つの処理により実行される。エッジ特徴には着目原子を頂点とした2つの隣接原子が為す角の情報が含まれる。生成されたノード特徴とエッジ特徴は、それぞれ訓練済のニューラルネットワークを介して、更新ノード特徴と更新エッジ特徴として抽出される。
【0091】
次に、物性値予測部20は、更新ノード特徴及び更新エッジ特徴から、物性値を予測する(S108)。物性値予測部20は、訓練済のニューラルネットワークを介して更新ノード特徴及び更新エッジ特徴から情報を出力し、この出力した情報に基づいて物性値を予測する。
【0092】
次に、推定装置1は、出力部22を介して推定装置1の外部又は内部に推定された物性値を出力する(S110)。この結果、潜在空間における原子の特徴に関する情報及び分子等において境界条件を考慮した隣接原子間における角度情報、を備えた情報に基づいて、物性値を推定して出力することが可能となる。
【0093】
以上のように、本実施形態によれば、境界条件、分子等における原子の配置、抽出された原子の特徴に基づいて、原子の特徴を含むノード特徴及び2つの隣接原子との為す角度情報を含むエッジ特徴、を備えるグラフデータを用い、隣接原子の特徴を含む更新ノード特徴及びエッジ特徴を抽出し、この抽出結果を用いて物性値を推定することにより、精度の高い物性値の推定をすることが可能となる。このように原子の特徴を抽出することから、原子の種類を増やす場合にも、容易に同じ推定装置1を適用することができる。
【0094】
なお、本実施形態では、それぞれ微分可能な演算を組み合わせて出力を得ている。つまり、出力された推定結果から各原子の情報に遡ることができる。例えば、入力構造における全エネルギーPを推定した場合、推定された全エネルギーPにおいて、入力座標の微分を算出することにより、各原子に作用する力を計算することができる。この微分は、ニューラルネットワークを用いていること、また、後述するように、他の演算も微分可能な演算で実行されていることから、問題なく実行することができる。このように各原子に作用する力を取得することにより、この力を用いた構造緩和等を高速で行うことが可能となる。また例えば、座標を入力としてエネルギーを計算し、N階の自動微分によりDFT計算を代替することが可能となる。また、同様に、ハミルトニアン等に表される微分演算も推定装置1の出力から容易に取得することが可能であり、様々な物性の解析をより高速に実行することもできる。
【0095】
この推定装置1を用いることにより、例えば、所望の物性値を有する材料の探索を、様々な分子等、より詳しくは、様々な構造を有する分子等、様々な原子を備える分子等について実行することが可能となる。例えば、ある化合物に対する反応性の高い触媒等を探索することもできる。
【0096】
[訓練装置]
本実施形態に係る訓練装置は、前述の推定装置1を訓練する。特に、推定装置1のうち、原子特徴取得部14、構造特徴抽出部18、及び、物性値予測部20にそれぞれ備えられるニューラルネットワークの訓練を行う。
なお、本明細書において、訓練とは、ニューラルネットワーク等の構造を有し入力に対して適切な出力が可能なモデルを生成することを指す。
【0097】
図7は、本実施形態に係る訓練装置2のブロック図の一例である。訓練装置2は、推定装置1に備えられる原子特徴取得部14、入力情報構成部16、構造特徴抽出部18、物性値予測部20に加え、誤差算出部24と、パラメータ更新部26と、を備える。入力部10、記憶部12、出力部22は、推定装置1と共通したものであってもよいし、訓練装置2に固有のものであってもよい。推定装置1と同じ構成であるものについては、詳細な説明は省略する。
【0098】
実線で示した流れは、順伝播についての処理であり、破線で示した流れは、逆伝播についての処理である。
【0099】
訓練装置2は、入力部10を介して訓練データが入力される。訓練データは、入力データ及び教師データとなる出力データである。
【0100】
誤差算出部24は、原子特徴取得部14、構造特徴抽出部18、物性値予測部20における教師データと各ニューラルネットワークからの出力との誤差を算出する。各ニューラルネットワークに対する誤差の算出方法は、同じ演算であるとは限られず、各更新対象となるパラメータ、又は、ネットワーク構成に基づいて適切に選択されてもよい。
【0101】
パラメータ更新部26は、誤差算出部24が算出した誤差に基づいて、各ニューラルネットワークにおいて誤差を逆伝播し、ニューラルネットワークのパラメータを更新する。パラメータ更新部26は、全てのニューラルネットワークを通して教師データとの比較を行ってもよいし、ニューラルネットワークごとに教師データを用いてパラメータの更新をしてもよい。
【0102】
上述した推定装置1の各モジュールは、それぞれ微分可能な演算により形成することが可能である。このため、物性値予測部20から構造特徴抽出部18、入力情報構成部16、原子特徴取得部14の順番に勾配を算出することが可能であり、ニューラルネットワーク以外の箇所においても誤差を適切に逆伝播することができる。
【0103】
例えば、物性値として全エネルギーを推定したい場合において、(xi, yi, zi)をi番目の原子の座標(相対座標)、Aを原子の特徴として、全エネルギーP = Σi Fi(xi, yi, zi, Ai)と表すことができる。この場合、dP / dxi等の微分値を全ての原子において定義できるため、出力から入力における原子の特徴の算出までを誤差逆伝播することが可能となる。
【0104】
また、別の例として、各モジュールを個々に最適化してもよい。例えば、原子特徴取得部14に備えられる第1ネットワークは、原子の識別子と、物性値を用いてワンホットベクトルから物性値が抽出できるようなニューラルネットワークを最適化することにより生成することもできる。以下、それぞれのネットワークの最適化について説明する。
【0105】
(原子特徴取得部14)
原子特徴取得部14の第1ネットワークは、例えば、原子の識別子等又はワンホットベクトルを入力すると、特性値を出力するように訓練することも可能である。このニューラルネットワークは、上述したように、例えば、VAEに基づくVariational Encoder Decoderを利用するものであってもよい。
【0106】
図8は、第1ネットワークの訓練に用いるネットワークの形成例である。例えば、第1ネットワーク146は、エンコーダ142と、デコーダ144とを備えるVariational Encoder Decoderのエンコーダ142部分を用いてもよい。
【0107】
エンコーダ142は、原子の種類ごとに潜在空間における特徴を出力するニューラルネットワークであり、推定装置1において使用される第1ネットワークである。
【0108】
デコーダ144は、エンコーダ142が出力した潜在空間におけるベクトルを入力すると、物性値を出力するニューラルネットワークである。このように、エンコーダ142の後にデコーダ144を接続させて教師あり学習を行うことにより、エンコーダ142の訓練を実行することが可能となる。
【0109】
第1ネットワーク146には、上述したように、原子の性質を表すワンホットベクトルが入力される。これは、上述と同様に、原子番号、原子名等、又は、それぞれの原子の性質を示す値を入力すると、ワンホットベクトルを生成するワンホットベクトル生成部140を備えていてもよい。
【0110】
教師データとして用いられるデータは、例えば、種々の物性値である。この物性値は、例えば、理科年表等により取得してもよい。
【0111】
図9は、物性値の一例を示す表である。例えば、この表に記載されている原子の性質がデコーダ144の出力の教師データとして用いられる。
【0112】
表において括弧付きのものは、括弧内に記載されている手法により求められたものである。また、イオン半径については、1番目の配位から4番目の配位を用いている。具体的な例としては、酸素であれば、順番に、配位が2、3、4、6のイオン半径を表す。
【0113】
図8に記載のエンコーダ142とデコーダ144を備えるニューラルネットワークに、原子を示すワンホットベクトルを入力すると、例えば、図9に示す性質が出力されるように最適化を行う。この最適化は、誤差算出部24が出力値と教師データとのロスを算出し、パラメータ更新部26がこのロスに基づいて逆伝播を実行し、勾配を求めてパラメータを更新する。最適化を行うことにより、エンコーダ142がワンホットベクトルから潜在空間におけるベクトルを出力するネットワークとして機能し、デコーダ144がこの潜在空間のベクトルから物性値を出力するネットワークとして機能する。
【0114】
パラメータの更新は、例えば、Variational Encoder Decoderを用いる。上述したように、Reparametrization trickの手法を用いてもよい。
【0115】
最適化が終了した後に、エンコーダ142を形成するニューラルネットワークを第1ネットワーク146とし、このエンコーダ142についてのパラメータを取得する。出力される値は、例えば、図8に示すzμのベクトルでもよいし、分散σ2を考慮した値であってもよい。また、別の例としては、zμ及びσ2の双方を出力して、推定装置1の構造特徴抽出部18に、zμとσ2の双方が入力されるようにしてもよい。乱数を用いる場合には、逆伝播可能な処理となるように、例えば、固定の乱数テーブルを用いる等してもよい。
【0116】
なお、図9の表に示されている原子の物性値は、一例であり、これら全ての物性値を使う必要はなく、また、この表に示されている以外の物性値を用いてもよい。
【0117】
種々の物性値を用いる場合、原子の種類によっては、所定の物性値が存在しない場合がある。例えば、水素原子であれば、第2イオン化エネルギーは、存在しない。このような場合には、例えば、この値が存在しないものとしてネットワークの最適化を実行してもよい。このように、存在しない値がある場合であっても、物性値を出力するニューラルネットワークを生成することは可能である。このように、全ての物性値を入力できない場合であっても、本実施形態に係る原子特徴取得部14により原子の特徴を生成することができる。
【0118】
さらに、このように第1ネットワーク146を生成することにより、ワンホットベクトルが連続的な空間内にマッピングされるため、性質の近い原子は潜在空間において近くに、性質が著しく異なる原子は、潜在空間において遠くに転写される。このため、その間の原子については、性質が教師データには存在しない場合であっても内挿することにより結果を出力することができる。また、一部の原子について学習データが十分でない場合にも、特徴を推定することが可能となる。
【0119】
このように抽出された原子特徴ベクトルを推定装置1に入力することもできる。推定装置1の訓練時に一部の原子において学習データ量が十分でなく、又は、欠けている場合でも、原子間特徴の内挿により推定を実行することが可能となる。また、訓練に必要なデータ量の低減も図ることができる。
【0120】
図10は、このエンコーダ142により抽出された特徴がデコーダ144でデコードされたいくつかの例を示す。実線は、教師データの値を示し、原子番号に対して分散を持って示されるのが、デコーダ144の出力値である。ばらつきは、エンコーダ142により出力された特徴と分散に基づいて、特徴ベクトルに対して分散を持たせてデコーダ144に入力した出力値を示している。
【0121】
上から順番に、Pyykkoの手法を用いた共有半径、UFFを用いたファンデルワールス半径、第2イオン化エネルギーの例を示している。横軸は原子番号であり、縦軸がそれぞれに適した単位で表されている。
【0122】
共有半径のグラフから、教師データに対してよい値が出力されていることが分かる。
【0123】
ファンデルワールス半径及び第2イオン化エネルギーにおいても、教師データに対してよい値が出力されていることが分かる。原子番号が100を超えたあたりからは、値が外れてしまうが、これは、現在教師データとして取得できていない値であるため、教師データが無い状態で訓練を行っているためである。そのため、データのばらつきが大きくなるが、ある程度の値は出力される。また、上述したように、水素原子の第2イオン化エネルギーは存在しないが、内挿された値として出力されていることが分かる。
【0124】
このように、デコーダ144の出力に対して教師データを用いることにより、エンコーダ142において潜在空間内において特徴量が精度よく取得できていることが分かる。
【0125】
(構造特徴抽出部18)
次に、構造特徴抽出部18の第2ネットワークと第3ネットワークの訓練について説明する。
【0126】
図11は、構造特徴抽出部18のニューラルネットワークに係る箇所を抽出した図である。本実施形態の構造特徴抽出部18は、グラフデータ抽出部180と、第2ネットワーク182と、第3ネットワーク184と、を備える。
【0127】
グラフデータ抽出部180は、入力された分子等の構造についてのデータから、ノード特徴、エッジ特徴といったグラフデータを抽出する。この抽出は、逆変換が可能なルールベースの手法により実行される場合には、訓練を行う必要はない。
【0128】
尤も、グラフデータの抽出にもニューラルネットワークを用いてもよく、この場合、第2ネットワーク182及び第3ネットワーク184、そして、物性値予測部20の第4ネットワークも含めたネットワークとして併せて訓練することも可能である。
【0129】
第2ネットワーク182は、グラフデータ抽出部180が出力した着目原子の特徴(ノード特徴)と、隣接原子の特徴とが入力されると、ノード特徴を更新して出力する。この更新には、例えば、畳み込み層、バッチ正規化、ゲートとその他のデータに分けて活性化関数、プーリング、バッチ正規化を順番に適用して(n_site, site_dim, n_nbr_comb, 2)次元から(n_site, site_dim, n_nbr_comb, 1)次元のテンソルへと変換し、次に、畳み込み層、バッチ正規化、ゲートとその他のデータに分けて活性化関数、プーリング、バッチ正規化を順番に適用して(n_site, site_dim, n_nbr_comb, 1)次元から(n_site, site_dim, 1, 1)次元へと変換し、最後に入力されたノード特徴と、この出力との和を算出して活性化関数を介してノード特徴を更新するニューラルネットワークにより形成されてもよい。
【0130】
第3ネットワーク184は、グラフデータ抽出部180が出力した隣接原子の特徴と、エッジ特徴とが入力されると、エッジ特徴を更新して出力する。この更新には、例えば、畳み込み層、バッチ正規化、ゲートとその他のデータに分けて活性化関数、プーリング、バッチ正規化を順番に適用して変換し、次に、畳み込み層、バッチ正規化、ゲートとその他のデータに分けて活性化関数、プーリング、バッチ正規化を順番に適用して変換し、最後に入力されたエッジ特徴と、この出力との和を算出して活性化関数を介してエッジ特徴を更新するニューラルネットワークにより形成されてもよい。エッジ特徴に関しては、例えば、入力と同じ(n_site, site_dim, n_nbr_comb, 2)次元のテンソルが出力される。
【0131】
このように形成されたニューラルネットワークは、各層における処理が微分可能な処理であるので、出力から入力へと誤差逆伝播を実行することができる。なお、上述のネットワーク構成は一例として示したものであり、これには限られず適切に隣接原子の特徴を反映したノード特徴へと更新できる構成であり、各層の演算が実質的に微分可能である構成であればどのような構成であってもよい。実質的に微分可能であるとは、微分可能である場合に加え、近似的に微分可能である場合を含むことを言う。
【0132】
誤差算出部24は、物性値予測部20からパラメータ更新部26により逆伝播された更新ノード特徴と、第2ネットワーク182が出力した更新ノード特徴と、に基づいて、誤差を算出する。この誤差を用いて、パラメータ更新部26が第2ネットワーク182のパラメータを更新する。
【0133】
同様に、誤差算出部24は、物性値予測部20からパラメータ更新部26により逆伝播された更新エッジ特徴と、第3ネットワーク184が出力した更新エッジ特徴と、に基づいて、誤差を算出する。この誤差を用いて、パラメータ更新部26が第3ネットワーク184のパラメータを更新する。
【0134】
このように、構造特徴抽出部18に備えられるニューラルネットワークは、物性値予測部20に備えられるニューラルネットワークのパラメータの訓練と併せて訓練が実行される。
【0135】
(物性値予測部20)
物性値予測部20に備えられる第4ネットワークは、構造特徴抽出部18が出力した更新ノード特徴と、更新エッジ特徴と、を入力すると、物性値を出力する。第4ネットワークは、例えば、MLP等の構造を備える。
【0136】
第4ネットワークは、通常のMLP等の訓練と同様の手法で訓練することができる。用いられるロスは、例えば、絶対値平均誤差(MAE:Mean Absolute Error)、二乗平均誤差(MSE:Mean Square Error)等を用いる。この誤差を、上述したように、構造特徴抽出部18の入力まで逆伝播することにより、第2ネットワーク、第3ネットワーク、及び、第4ネットワークの訓練を実行する。
【0137】
第4ネットワークは、取得(出力)したい物性値により異なる形態であってもよい。すなわち、求めたい物性値に基づいて、第2ネットワーク、第3ネットワーク及び第4ネットワークの出力値は、異なるものであってもよい。このため、取得したい物性値に基づいて、第4ネットワークを、適切に得られる形態としてもよく、訓練してもよい。
【0138】
この場合、第2ネットワーク及び第3ネットワークのパラメータは、既に他の物性値を求めるために訓練又は最適化されたパラメータを初期値として用いてもよい。また、第4ネットワークとして出力したい物性値を複数設定してもよく、この場合、複数の物性値を教師データとして同時に使用して訓練を実行してもよい。
【0139】
別の例として、原子特徴取得部14まで逆伝播することにより、第1ネットワークも併せて訓練してもよい。さらに、第1ネットワークは、訓練の最初から第4ネットワークまでの他のネットワークと組み合わせて訓練するのではなく、あらかじめ上述した原子特徴取得部14の訓練手法(例えば、Reparametrization trickを用いたVariational Encoder Decoder)で訓練をしておき、その後、第4ネットワークから第3ネットワーク、第2ネットワークを経て第1ネットワークまで逆伝播をすることにより、転移学習をしてもよい。これにより、求めたい推定結果を得られる推定装置を容易に得ることができる。
【0140】
なお、このように求められたニューラルネットワークを備える推定装置1は、出力から入力への逆伝播が可能である。すなわち、出力データを入力の変数で微分できることが可能である。このことから、例えば、第4ネットワークにより出力された物性値が、入力する原子の座標を変化させることにより、どのように変化するかを知ることも可能である。例えば、出力の物性値がポテンシャルである場合、位置微分は、各原子に働く力である。これを用いて入力した推定対象の構造のエネルギーを最小化する最適化をすることもできる。
【0141】
以上に説明した各ニューラルネットワークの訓練は、詳細は上述したとおりに訓練されるが、全体的な訓練としては、一般的に知られている訓練手法を用いてよい。例えば、ロス関数、バッチ規格化、訓練終了条件、活性化関数、最適化手法、バッチ学習・ミニバッチ学習・オンライン学習等の学習手法は、適切な物であればどのようなものも用いてもよい。
【0142】
図12は、全体的な訓練の処理を示すフローチャートである。
【0143】
訓練装置2は、まず、第1ネットワークを訓練する(S200)。
【0144】
続いて、訓練装置2は、第2ネットワーク、第3ネットワーク及び第4ネットワークを訓練する(S210)。なお、このタイミングにおいて、上述したように、第1ネットワークまで訓練してもよい。
【0145】
訓練が終了した場合、訓練装置2は、出力部22を介し、訓練済みの各ネットワークのパラメータを出力する。ここで、パラメータの出力とは、訓練装置2の外部へのパラメータの出力にあわせて、訓練装置2内の記憶部12へパラメータを格納する等、内部への出力をも包含する概念である。
【0146】
図13は、第1ネットワークの訓練(図12のS200)の処理を示すフローチャートである。
【0147】
まず、訓練装置2は、入力部10を介して訓練に使用するデータの入力を受け付ける(S2000)。入力されたデータは、必要に応じて、例えば、記憶部12に格納される。第1ネットワークの訓練に必要となるデータは、原子に対応するベクトル、本実施形態においてはワンホットベクトルの生成に必要な情報と、当該原子に対応する原子の性質を示す量(例えば、原子の物質量)である。原子の性質を示す量は、例えば、図9に示すものである。また、原子に対応するワンホットベクトルそのものが入力されてもよい。
【0148】
次に、訓練装置2は、ワンホットベクトルを生成する(S2002)。S2000においてワンホットベクトルが入力される場合には、この処理は必須ではない。それ以外の場合は、例えば、陽子数といったワンホットベクトルに変換される情報に基づいて、原子に対応するワンホットベクトルを生成する。
【0149】
次に、訓練装置2は、生成された、又は、入力されたワンホットベクトルを図8に示すニューラルネットワークに順伝播させる(S2004)。原子に対応するワンホットベクトルが、エンコーダ142、デコーダ144を介して物性値へと変換される。
【0150】
次に、誤差算出部24は、デコーダ144から出力された物性値と、理科年表等から取得した物性値との誤差を算出する(S2006)。
【0151】
次に、パラメータ更新部26は、算出した誤差を逆伝播し、パラメータを更新する(S2008)。誤差逆伝播は、ワンホットベクトル、すなわち、エンコーダの入力まで実行される。
【0152】
次に、パラメータ更新部26は、訓練が終了したか否かを判断する(S2010)。この判断は、所定の訓練の終了条件、例えば、所定エポック数終了、所定アキュラシー確保、等により判断される。なお、訓練は、バッチ学習でもよいし、ミニバッチ学習でもよいし、これらに限られるものではない。
【0153】
訓練が終了していない場合(S2010:NO)、S2004からS2008までの処理を繰り返す。ミニバッチ学習の場合は、用いるデータを変更して繰り返してもよい。
【0154】
訓練が終了している場合(S2010:YES)、訓練装置2は、出力部22を介してパラメータを出力し(S2012)、処理を終了する。なお、出力は、エンコーダ142に関するパラメータ、すなわち、第1ネットワーク146に関するパラメータだけでもよいし、デコーダ144のパラメータも併せて出力してもよい。この第1ネットワークにより、10オーダーの次元を有するワンホットベクトルから、例えば、16次元と言った潜在空間内の特徴を示すベクトルへと変換される。
【0155】
図14は、入力として、本実施形態に係る第1ネットワークの出力を用いて訓練した構造特徴抽出部18及び物性値予測部20による分子等のエネルギーの推定結果と、入力として、比較例(CGCNN:Crystal Graph Convolutional Networks、https://arxiv.org/abs/1710.10324v2)の原子特徴に関する出力を用いて訓練した本実施形態に係る構造特徴抽出部18及び物性値予測部20による同じ分子等のエネルギーの推定結果と、を示す図である。
【0156】
左の図が比較例によるもので、右の図が本実施形態の第1ネットワークによるものである。これらグラフは、横軸にDFTにより求められた値、縦軸にそれぞれの手法により推定された値を示している。すなわち、左下から右上へと向かう対角線上に全ての値が存在するのが理想的であり、ばらつきが多いほど精度がよくないことを示す。
【0157】
これらの図から、比較例と比べると、対角線からのばらつきが小さく、より精度の高い物性値を出力、すなわち、より精度の高い原子の特徴(潜在空間におけるベクトル)が取得できていることが分かる。それぞれのMAEは、本実施形態によるものが0.031、比較例によるものが0.045である。
【0158】
次に、第2ネットワークから第4ネットワークの訓練についての処理の一例を説明する。図15は、第2ネットワーク、第3ネットワーク及び第4ネットワークの訓練の処理(図12のS210)の一例を示すフローチャートである。
【0159】
まず、訓練装置2は、原子の特徴を取得する(S2100)。この取得は、第1ネットワークにより都度求めてもよいし、あらかじめ第1ネットワークにより推定された原子ごとの特徴を記憶部12に格納しておき、このデータを読み出してもよい。
【0160】
次に、訓練装置2は、構造特徴抽出部18のグラフデータ抽出部180を介して原子の特徴をグラフデータへと変換し、このグラフデータを第2ネットワーク、第3ネットワークへと入力する。順伝播して取得された更新ノード特徴、更新エッジ特徴を、必要であれば加工して第4ネットワークに入力することにより、第4ネットワークを順伝播させる(S2102)。
【0161】
次に、誤差算出部24は、第4ネットワークの出力と、教師データとの誤差を算出する(S2104)。
【0162】
次に、パラメータ更新部26は、誤差算出部24が算出した誤差を逆伝播してパラメータを更新する(S2106)。
【0163】
次に、パラメータ更新部26は、訓練が終了したか否かを判断し(S2108)、終了していない場合(S2108:NO)には、S2102からS2106の処理を繰り返し、終了している場合には、最適化されたパラメータを出力して(S2110)処理を終了する。
【0164】
転移学習を用いて第1ネットワークを訓練する場合、図13の処理の後、図15の処理を行う。図15の処理を行う際に、S2100において取得するデータを、ワンホットベクトルのデータとする。そして、S2102において、第1ネットワーク、第2ネットワーク、第3ネットワーク及び第4ネットワークを順伝播させる。必要な処理、例えば、入力情報構成部16により実行される処理も適切に実行される。そして、S2104、S2106の処理を実行し、パラメータを最適化する。入力側での更新には、ワンホットベクトルと、逆伝播された誤差を用いる。このように、第1ネットワークを再度学習することにより、最終的に取得したい物性値に基づいて、第1ネットワークにおいて取得する潜在空間のベクトルを最適化することもできる。
【0165】
図16は、本実施形態により推定された値と前述の比較例とにより推定された値とをいくつかの物性値において求めた例を示す。左側が比較例であり、右側が本実施形態によるものである。横軸、縦軸については、図14と同様である。
【0166】
この図から分かるように、比較例に比べて、本実施形態によるものは、値のばらつきが小さくなっており、DFTの結果に近い物性値の推定ができていることが分かる。
【0167】
以上のように、本実施形態に係る訓練装置2によれば、原子としての性質(物性値)の特徴を低い次元のベクトルとして取得することができ、さらに、この取得した原子の特徴を、角度情報が含まれるグラフデータへと変換してニューラルネットワークの入力にすることにより、機械学習による分子等の物性値の精度の高い推定を行うことができる。
【0168】
この訓練においては、特徴抽出、物性値予測のアーキテクチャが共通であるため、原子の種類を増やす場合に、学習データの量を低減することができる。また、原子座標と各原子の隣接原子座標を入力データに含めればよいため、分子、結晶等の様々な形態にあわせて適用することが可能となる。
【0169】
このような訓練装置2により訓練された推定装置1によれば、分子、結晶、分子と分子、分子と結晶、結晶界面等の任意の原子配置を入力とした系のエネルギー等の物性値を高速で推定することができる。また、この物性値は、位置微分をすることができるので、各原子に働く力等を簡単に算出することが可能となる。例えば、エネルギーであれば、これまで第一原理計算を用いた種々の物性値計算においても莫大な計算時間が必要であったが、このエネルギーの計算を訓練済のネットワークを順伝播させることにより高速に行うことが可能となる。
【0170】
この結果、例えば、エネルギーを最小化するように構造の最適化が可能であるとともに、シミュレーションツールと連携させることにより、このエネルギーや微分した力を元に、種々の物質の性質計算を高速化することができる。また、例えば、原子の配置を変えた分子等に関しては、再度複雑なエネルギー計算をすることなく、入力の座標を変更して推定装置1に入力するだけ、高速にエネルギーを推定することが可能になる。この結果、シミュレーションによる広範囲での材料探索を容易に行うことができる。
【0171】
前述した実施形態における各装置(推定装置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)等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
【0172】
ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
【0173】
図17は、前述した実施形態における各装置(推定装置1又は訓練装置2)のハードウェア構成の一例を示すブロック図である。各装置は、プロセッサ71と、主記憶装置72と、補助記憶装置73と、ネットワークインタフェース74と、デバイスインタフェース75と、を備え、これらがバス76を介して接続されたコンピュータ7として実現されてもよい。
【0174】
図17のコンピュータ7は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図17では、1台のコンピュータ7が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース74等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、前述した実施形態における各装置(推定装置1又は訓練装置2)は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで機能を実現するシステムとして構成されてもよい。また、端末から送信された情報をクラウド上に設けられた1台又は複数台のコンピュータで処理し、この処理結果を端末に送信するような構成であってもよい。
【0175】
前述した実施形態における各装置(推定装置1又は訓練装置2)の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ7と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、前述した実施形態における各装置は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0176】
プロセッサ71は、コンピュータの制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU、GPU、FPGA又はASIC等)であってもよい。また、プロセッサ71は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ71は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ71は、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0177】
プロセッサ71は、コンピュータ7の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ71は、コンピュータ7のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ7を構成する各構成要素を制御してもよい。
【0178】
前述した実施形態における各装置(推定装置1及び/又は訓練装置2)は、1又は複数のプロセッサ71により実現されてもよい。ここで、プロセッサ71は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいはデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0179】
主記憶装置72は、プロセッサ71が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置72に記憶された情報がプロセッサ71により読み出される。補助記憶装置73は、主記憶装置72以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。前述した実施形態における各装置(推定装置1又は訓練装置2)において各種データを保存するための記憶装置は、主記憶装置72又は補助記憶装置73により実現されてもよく、プロセッサ71に内蔵される内蔵メモリにより実現されてもよい。例えば、前述した実施形態における記憶部12は、主記憶装置72又は補助記憶装置73に実装されてもよい。
【0180】
記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサが接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。前述した実施形態における各装置(推定装置1又は訓練装置2)が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ))とプロセッサによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサと一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0181】
ネットワークインタフェース74は、無線又は有線により、通信ネットワーク8に接続するためのインタフェースである。ネットワークインタフェース74は、既存の通信規格に適合したものを用いればよい。ネットワークインタフェース74により、通信ネットワーク8を介して接続された外部装置9Aと情報のやり取りが行われてもよい。
【0182】
外部装置9Aは、例えば、カメラ、モーションキャプチャ、出力先デバイス、外部のセンサ、又は入力元デバイス等が含まれる。外部装置9Aとして、外部の記憶装置(メモリ)、例えば、ネットワークストレージ等を備えてもよい。また、外部装置9Aは、前述した実施形態における各装置(推定装置1又は訓練装置2)の構成要素の一部の機能を有する装置でもよい。そして、コンピュータ7は、処理結果の一部又は全部を、クラウドサービスのように通信ネットワーク8を介して受信してもよいし、コンピュータ7の外部へと送信してもよい。
【0183】
デバイスインタフェース75は、外部装置9Bと直接接続するUSB等のインタフェースである。外部装置9Bは、外部記憶媒体でもよいし、記憶装置(メモリ)でもよい。前述した実施形態における記憶部12は、外部装置9Bにより実現されてもよい。
【0184】
外部装置9Bは出力装置でもよい。出力装置は、例えば、画像を表示するための表示装置でもよいし、音声等を出力する装置等でもよい。例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、有機EL(Electro Luminescence)パネル、スピーカ、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の出力先デバイス等があるが、これらに限られるものではない。また、外部装置9Bは入力装置でもよい。入力装置は、キーボード、マウス、タッチパネル、又はマイクロフォン等のデバイスを備え、これらのデバイスにより入力された情報をコンピュータ7に与える。
【0185】
本明細書(請求項を含む)において、「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)以外の他の要素を加えることも含む。
【0186】
本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
【0187】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0188】
本明細書(請求項を含む)において、「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)されていればよい。
【0189】
また、本明細書(請求項を含む)において、同種の複数個のハードウェアが所定の処理を実行する場合、複数個のハードウェアのうち個々のハードウェアは、所定の処理の一部のみを行ってもよく、所定の処理のすべてを行ってもよく、場合によっては所定の処理を行わなくてもよい。つまり、「1または複数の所定のハードウェアが第1の処理を行い、前記ハードウェアが第2の処理を行う」と記載されている場合には、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものでもよいし、異なるものであってもよい。
【0190】
例えば、本明細書(請求項を含む)において、複数のプロセッサが複数の処理を行う場合、複数のプロセッサのうち個々のプロセッサは、複数の処理の一部のみを行ってもよく、複数の処理のすべてを行ってもよく、場合によっては複数の処理をいずれも行わなくてもよい。
【0191】
また例えば、本明細書(請求項を含む)において、複数のメモリがデータの記憶を行う場合、複数のメモリのうち個々のメモリは、データの一部のみを記憶してもよく、データの全体を記憶してもよく、場合によってはいずれのデータも記憶していなくてもよい。
【0192】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0193】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0194】
本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0195】
本明細書(請求項を含む)において、「最大化(maximize)」等の用語は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。
【0196】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、説明に用いた数値は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
【0197】
例えば、前述の実施形態においては、原子の特徴を用いて特性値を推定しているが、さらに、系の温度、圧力、系全体の電荷、系全体のスピン等の情報を考慮してもよい。このような情報は、例えば、各ノードと接続されるスーパーノードとして入力されてもよい。この場合、スーパーノードを入力できるニューラルネットワークを形成することにより、さらに、温度等の情報を考慮したエネルギー値等を出力させることが可能となる。
【0198】
(付記)
前述の各実施形態は、例えば、プログラムを用いると以下のように示すことができる。
(1)
1又は複数のプロセッサに実行させると、
原子に関するベクトルから潜在空間における原子の特徴を抽出する第1ネットワークに、前記ベクトルを入力し、
前記第1ネットワークを介して、潜在空間における原子の特徴を推定する、
プログラム。
(2)
1又は複数のプロセッサに実行させると、
入力された原子の座標、原子の特徴、及び、境界条件に基づいて、対象の原子の構造を構成し、
前記構造に基づいて、原子同士の距離、及び、3原子の為す角度、を取得し、
前記原子の特徴をノード特徴、前記距離及び前記角度をエッジ特徴として、前記ノード特徴及び前記エッジ特徴を更新し、前記ノード特徴及び前記エッジ特徴を推定する、
プログラム。
(3)
前記1又は複数のプロセッサに実行させると、
請求項1から請求項7のいずれかに記載の前記第1ネットワークに、対象に含まれる原子の性質を示すベクトルを入力して、潜在空間における原子の特徴を抽出し、
原子の座標、抽出された前記潜在空間における原子の特徴、及び、境界条件に基づいて、前記対象の原子の構造を構成し、
請求項10から請求項12のいずれかに記載の前記第2ネットワークに、前記原子の特徴及び前記構造に基づいたノード特徴を入力して、前記更新ノード特徴を取得し、
請求項13から請求項16のいずれかに記載の前記第3ネットワークに、前期原子の特徴及び前記構造に基づいたエッジ特徴を入力して、前記更新エッジ特徴を取得し、
ノードの特徴及びエッジの特徴から物性値を推定する第4ネットワークに、取得した前記更新ノード特徴及び前記更新エッジ特徴を入力して、前記対象の物性値を推定する、
プログラム。
(4)
1又は複数のプロセッサに実行させると、
原子に関するベクトルから潜在空間における原子の特徴を抽出する第1ネットワークに原子に関するベクトルを入力し、
前記潜在空間における原子の特徴を入力すると原子の物性値を出力するデコーダに前記潜在空間における原子の特徴を入力して、原子の特性値を推定し、
前記1又は複数のプロセッサが、推定された原子の特性値と、教師データとの誤差を算出し、
算出した誤差を逆伝播して、前記第1ネットワーク及び前記デコーダを更新し、
前記第1ネットワークのパラメータを出力する、
プログラム。
(5)
1又は複数のプロセッサに実行させると、入力された原子の座標、原子の特徴、及び、境界条件に基づいて、対象の原子の構造を構成し、
前記構造に基づいて、原子同士の距離、及び、3原子の為す角度、を取得し、
前記原子の特徴をノード特徴として、更新ノード特徴を取得する、第2ネットワーク、及び、前記距離及び前記角度をエッジ特徴として、更新エッジ特徴を取得する、第3ネットワークに、前記原子の特徴、前記距離、及び、前記角度に基づいた情報を入力し、
前記更新ノード特徴及び前記更新エッジ特徴に基づいて、誤差を算出し、
算出した誤差を逆伝播して、前記第2ネットワーク及び前記第3ネットワークを更新する、
プログラム。
(6)
1又は複数のプロセッサにより実行させると、原子に関するベクトルから潜在空間における原子の特徴を抽出する第1ネットワークに、対象に含まれる原子の性質を示すベクトルを入力して、潜在空間における原子の特徴を抽出し、
原子の座標、抽出された前記潜在空間における原子の特徴、及び、境界条件に基づいて、前記対象の原子の構造を構成し、
前記構造に基づいて、原子同士の距離、及び、3原子の為す角度、を取得し、
前記原子の特徴をノード特徴として、更新ノード特徴を取得する、第2ネットワークに、前記原子の特徴及び前記構造に基づいたノード特徴を入力して、前記更新ノード特徴を取得し、
前記距離及び前記角度をエッジ特徴として、更新エッジ特徴を取得する、第3ネットワークに、前期原子の特徴及び前記構造に基づいたエッジ特徴を入力して、前記更新エッジ特徴を取得し、
ノードの特徴及びエッジの特徴から物性値を推定する第4ネットワークに、取得した前記更新ノード特徴及び前記更新エッジ特徴を入力して、前記対象の物性値を推定し、
推定した前記対象の物性値と、教師データと、から誤差を算出し、
算出した誤差を、前記第4ネットワーク、前記第3ネットワーク、前記第2ネットワーク及び前記第1ネットワークに逆伝播し、前記第4ネットワーク、前記第3ネットワーク、前記第2ネットワーク及び前記第1ネットワークを更新する、
プログラム。
(7)
(1)~(6)に記載のプログラムは、それぞれ、非一時的なコンピュータ可読媒体に記憶されてもよく、当該非一時的なコンピュータ可読媒体に格納されている(1)~(6)に記載の1以上のプログラムを読み出すことにより、1又は複数のプロセッサに、(1)~(6)に記載の方法を実行するように構成されてもよい。
【符号の説明】
【0199】
1:推定装置、
10:入力部、
12:記憶部、
14:原子特徴取得部、
140:ワンホットベクトル生成部、
142:エンコーダ、
144:デコーダ、
146:第1ネットワーク、
16:入力情報構成部、
18:構造特徴抽出部、
180:グラフデータ抽出部、
182:第2ネットワーク、
184:第3ネットワーク、
20:物性値予測部、
22:出力部、
2:訓練装置、
24:誤差算出部、
26:パラメータ更新部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17