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

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

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

<>
  • 特開-推論装置 図1
  • 特開-推論装置 図2
  • 特開-推論装置 図3
  • 特開-推論装置 図4
  • 特開-推論装置 図5
  • 特開-推論装置 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024005476
(43)【公開日】2024-01-17
(54)【発明の名称】推論装置
(51)【国際特許分類】
   G16C 10/00 20190101AFI20240110BHJP
【FI】
G16C10/00
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022105666
(22)【出願日】2022-06-30
(71)【出願人】
【識別番号】515130201
【氏名又は名称】株式会社Preferred Networks
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】林 亮秀
(57)【要約】
【課題】物質の構造最適化処理において、従来に比して収束速度や頑健性を向上させる。
【解決手段】実施形態にかかる推論装置は、少なくとも1つのメモリと、少なくとも1つのプロセッサと、を備え、少なくとも1つのプロセッサは、物質の構造最適化処理の演算を第1のアルゴリズムで行い、所定の条件を満たした後、第1のアルゴリズムによる演算結果と第1のアルゴリズムとは異なる第2のアルゴリズムとを用いて、物質の構造最適化処理を実行する。
【選択図】図3
【特許請求の範囲】
【請求項1】
少なくとも1つのメモリと、
少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサは、
物質の構造最適化処理の演算を第1のアルゴリズムで行い、所定の条件を満たした後、前記第1のアルゴリズムによる演算結果と前記第1のアルゴリズムとは異なる第2のアルゴリズムとを用いて、前記物質の構造最適化処理を実行する、
推論装置。
【請求項2】
前記所定の条件は、前記物質に含まれる複数の原子が受ける力に基づいて決定される、
請求項1に記載の推論装置。
【請求項3】
前記所定の条件は、前記物質に含まれる複数の原子が受ける力のうちの最大値が所定の閾値以下になった場合である、
請求項2に記載の推論装置。
【請求項4】
前記少なくとも1つのプロセッサは、
前記第2のアルゴリズムによる演算の際、前記物質に含まれる複数の原子が受ける力のうちの最大値が所定の閾値を超えた場合には、前記第2のアルゴリズムの演算結果と前記第1のアルゴリズムとを用いて前記物質の構造最適化処理を実行する、
請求項1乃至3にそれぞれ記載の推論装置。
【請求項5】
前記所定の閾値はアルゴリズムを変更したら更新される、
請求項3に記載の推論装置。
【請求項6】
前記所定の条件は、前記物質のエネルギーに基づいて決定される、
請求項1乃至3にそれぞれ記載の推論装置。
【請求項7】
前記所定の条件は、前記エネルギーの最大値が所定の閾値以下になった場合である、
請求項6に記載の推論装置。
【請求項8】
前記少なくとも1つのプロセッサは、
前記第1のアルゴリズムをFIRE(Fast Inertial Relaxation Engine)、前記第2のアルゴリズムをLBFGS(Limited memory Broyden-Fletcher-Goldfarb-Shanno algorithm)として前記物質の構造最適化処理を実行する、
請求項1乃至3にそれぞれ記載の推論装置。
【請求項9】
前記少なくとも1つのプロセッサは、
ニューラルネットワークポテンシャルモデル、密度汎関数理論モデル、古典分子動力学ポテンシャルモデルのいずれかを用いて前記物質のエネルギーを算出し、
算出された前記エネルギーを用いて前記物質の構造最適化処理を実行する、
請求項1乃至3にそれぞれ記載の推論装置。
【請求項10】
前記第2のアルゴリズムは、前記第1のアルゴリズムよりも収束速度が速い、
請求項1乃至3にそれぞれ記載の推論装置。
【請求項11】
前記物質の構造最適化処理の演算は繰り返し実行される、
請求項1乃至3にそれぞれ記載の推論装置。
【請求項12】
前記第1のアルゴリズムの演算結果は、少なくとも前記物質の構造に関する情報である、請求項1乃至3にそれぞれ記載の推論装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、推論装置に関する。
【背景技術】
【0002】
多体の原子核・電子からなる物質の構造最適化処理では、所定の近似計算手法によって初期構造を求め、得られた初期構造を利用してエネルギーの極小構造を計算するといった手法が採用される。
【0003】
しかしながら、従来の構造最適化処理では、収束速度や頑健性に問題があった。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Erik Bitzek, Pekka Koskinen, Franz Gahler, Michael Moseler, and Peter Gumbsch “Structural Relaxation Made Simple ”Phys. Rev. Lett.97, 170201 Published 27 October 2006
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示が解決しようとする課題は、物質の構造最適化処理において、従来に比して収束速度を向上させることである。
【課題を解決するための手段】
【0006】
実施形態にかかる推論装置は、少なくとも1つのメモリと、少なくとも1つのプロセッサと、を備え、前記少なくとも1つのプロセッサは、物質の構造最適化処理の演算を第1のアルゴリズムで行い、所定の条件を満たした後、前記第1のアルゴリズムによる演算結果と前記第1のアルゴリズムとは異なる第2のアルゴリズムとを用いて、前記物質の構造最適化処理を実行する。
【図面の簡単な説明】
【0007】
図1図1は、実施形態に係る推論装置のハードウェア構成の一例を示すブロック図である。
図2図2は、実施形態に係るプロセッサにおける機能ブロックの一例を示す図である。
図3図3は、第1の実施形態に係る推論装置が実行する推論処理の流れの一例を示すフローチャートである。
図4図4は、第2の実施形態に係る推論装置が実行する推論処理の流れの一例を示すフローチャートである。
図5図5は、第3の実施形態に係る推論装置が実行する推論処理の流れの一例を示すフローチャートである。
図6図6は、第4の実施形態に係る推論装置が実行する推論処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら実施形態について詳細に説明する。
【0009】
(第1の実施形態)
図1は、第1の実施形態に係る推論装置1のハードウェア構成の一例を示すブロック図である。図1に示すように、推論装置1は、通信ネットワーク5を介して外部装置9Aと接続されてもよい。また、推論装置1は、デバイスインタフェース39を介して接続された外部装置9Bを備えてもよい。
【0010】
推論装置1は、物質に含まれる複数の原子の位置情報(三次元座標)を入力し、当該物質の三次元的な分子構造のエネルギーを出力してもよい。物質は分子に限定されず、各種結晶などであってもよい。
【0011】
また、推論装置1は、物質に含まれる各原子の位置情報と、物質のエネルギーとに基づいて、物質の構造最適化処理の繰り返し演算を実行してもよい。推論装置1は、構造最適化処理によって得られた当該物質の各原子の位置情報に基づいて、当該物質の三次元的な極小構造のエネルギーを出力してもよい。なお、推論装置1は、物質の構造最適化処理の繰り返し演算において、複数の計算アルゴリズムを、序盤や終盤等の状況に応じて切り替えて使用してもよい。推論装置1が実行する、物質の構造最適化処理の繰り返し演算を含む推論処理については、後で詳しく説明する。
【0012】
推論装置1は、コンピュータ30と、デバイスインタフェース39を介してコンピュータ30に接続された外部装置9Bと、を有してもよい。コンピュータ30は、一例として、プロセッサ31と、主記憶装置(メモリ)33と、補助記憶装置(メモリ)35と、ネットワークインタフェース37と、デバイスインタフェース39と、を備えてもよい。推論装置1は、プロセッサ31と、主記憶装置33と、補助記憶装置35と、ネットワークインタフェース37と、デバイスインタフェース39とがバス41を介して接続されたコンピュータ30として実現されてもよい。
【0013】
図1に示すコンピュータ30は、各構成要素を一つ備えているが、同じ構成要素を複数備えていてもよい。また、図1では、1台のコンピュータ30が示されているが、ソフトウェアが複数台のコンピュータにインストールされて、当該複数台のコンピュータそれぞれがソフトウェアの同一の又は異なる一部の処理を実行してもよい。この場合、コンピュータそれぞれがネットワークインタフェース37等を介して通信して処理を実行する分散コンピューティングの形態であってもよい。つまり、本実施形態における推論装置1は、1又は複数の記憶装置に記憶された命令を1台又は複数台のコンピュータが実行することで後述の各種機能を実現するシステムとして構成されてもよい。また、端末から送信された情報は、クラウド上に設けられた1台又は複数台のコンピュータで処理され、この処理結果は、外部装置9Bに相当する表示装置(表示部)などの端末に送信するような構成であってもよい。
【0014】
本実施形態における推論装置1の各種演算は、1又は複数のプロセッサを用いて、又は、ネットワークを介した複数台のコンピュータを用いて、並列処理で実行されてもよい。また、各種演算が、プロセッサ内に複数ある演算コアに振り分けられて、並列処理で実行されてもよい。また、本開示の処理、手段等の一部又は全部は、ネットワークを介してコンピュータ30と通信可能なクラウド上に設けられたプロセッサ及び記憶装置の少なくとも一方により実行されてもよい。このように、本実施形態における後述の各種は、1台又は複数台のコンピュータによる並列コンピューティングの形態であってもよい。
【0015】
プロセッサ31は、コンピュータ30の制御装置及び演算装置を含む電子回路(処理回路、Processing circuit、Processing circuitry、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、又はASIC(Application Specific Integrated Circuit)等)であってもよい。また、プロセッサ31は、専用の処理回路を含む半導体装置等であってもよい。プロセッサ31は、電子論理素子を用いた電子回路に限定されるものではなく、光論理素子を用いた光回路により実現されてもよい。また、プロセッサ31は、量子コンピューティングに基づく演算機能を含むものであってもよい。
【0016】
プロセッサ31は、コンピュータ30の内部構成の各装置等から入力されたデータやソフトウェア(プログラム)に基づいて演算処理を行い、演算結果や制御信号を各装置等に出力することができる。プロセッサ31は、コンピュータ30のOS(Operating System)や、アプリケーション等を実行することにより、コンピュータ30を構成する各構成要素を制御してもよい。
【0017】
本実施形態における推論装置1は、1又は複数のプロセッサ31により実現されてもよい。ここで、プロセッサ31は、1チップ上に配置された1又は複数の電子回路を指してもよいし、2つ以上のチップあるいは2つ以上のデバイス上に配置された1又は複数の電子回路を指してもよい。複数の電子回路を用いる場合、各電子回路は有線又は無線により通信してもよい。
【0018】
主記憶装置33は、プロセッサ31が実行する命令及び各種データ等を記憶する記憶装置であり、主記憶装置33に記憶された情報がプロセッサ31により読み出される。補助記憶装置35は、主記憶装置33以外の記憶装置である。なお、これらの記憶装置は、電子情報を格納可能な任意の電子部品を意味するものとし、半導体のメモリでもよい。半導体のメモリは、揮発性メモリ、不揮発性メモリのいずれでもよい。本実施形態に係る推論装置3において用いられる各種データを保存するための記憶装置は、主記憶装置33又は補助記憶装置35により実現されてもよく、プロセッサ31に内蔵される内蔵メモリにより実現されてもよい。例えば、本実施形態における記憶部は、主記憶装置33又は補助記憶装置35により実現されてもよい。
【0019】
記憶装置(メモリ)1つに対して、複数のプロセッサが接続(結合)されてもよいし、単数のプロセッサ31が接続されてもよい。プロセッサ1つに対して、複数の記憶装置(メモリ)が接続(結合)されてもよい。本実施形態における推論装置1が、少なくとも1つの記憶装置(メモリ)とこの少なくとも1つの記憶装置(メモリ)に接続(結合)される複数のプロセッサで構成される場合、複数のプロセッサのうち少なくとも1つのプロセッサが、少なくとも1つの記憶装置(メモリ)に接続(結合)される構成を含んでもよい。また、複数台のコンピュータに含まれる記憶装置(メモリ)とプロセッサ31とによって、この構成が実現されてもよい。さらに、記憶装置(メモリ)がプロセッサ31と一体になっている構成(例えば、L1キャッシュ、L2キャッシュを含むキャッシュメモリ)を含んでもよい。
【0020】
ネットワークインタフェース37は、無線又は有線により、通信ネットワーク5に接続するためのインタフェースである。ネットワークインタフェース37は、既存の通信規格に適合したもの等、適切なインタフェースを用いればよい。ネットワークインタフェース37により、通信ネットワーク5を介して接続された外部装置9Aと情報のやり取りが行われてもよい。なお、通信ネットワーク5は、WAN(Wide Area Network)、LAN(Local Area Network)、PAN(Personal Area Network)等の何れか、又は、それらの組み合わせであってよく、コンピュータ30と外部装置9Aとの間で情報のやり取りが行われるものであればよい。WANの一例としてインターネット等があり、LANの一例としてIEEE802.11やイーサネット(登録商標)等があり、PANの一例としてBluetooth(登録商標)やNFC(Near Field Communication)等がある。
【0021】
デバイスインタフェース39は、表示装置等の出力装置、入力装置、および外部装置9Bと直接接続するUSB(Universal Serial Bus)等のインタフェースである。なお、出力装置は、音声等を出力するスピーカなどを有していてもよい。
【0022】
外部装置9Aはコンピュータ30とネットワークを介して接続されている装置である。外部装置9Bはコンピュータ30と直接接続されている装置である。
【0023】
外部装置9A又は外部装置9Bは、一例として、入力装置(入力部)であってもよい。入力装置は、例えば、カメラ、マイクロフォン、モーションキャプチャ、各種センサ、キーボード、マウス、又はタッチパネル等のデバイスであり、取得した情報をコンピュータ30に与える。また、外部装置9A又は外部装置9Bは、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の入力部とメモリとプロセッサを備えるデバイス等であってもよい。
【0024】
また、外部装置9A又は外部装置9Bは、一例として、出力装置(出力部)でもよい。出力装置は、例えば、LCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)、PDP(Plasma Display Panel)、又は有機EL(Electro Luminescence)パネル等の表示装置(表示部)であってもよいし、音声等を出力するスピーカ等であってもよい。また、外部装置9A又は外部装置9Bは、パーソナルコンピュータ、タブレット端末、又はスマートフォン等の出力装置とメモリとプロセッサを備えるデバイス等であってもよい。
【0025】
また、外部装置9A又は外部装置9Bは、記憶装置(メモリ)であってもよい。例えば、外部装置9Aはネットワークストレージ等であってもよく、外部装置9BはHDD等のストレージであってもよい。
【0026】
また、外部装置9A又は外部装置9Bは、本実施形態における推論装置1の構成要素の一部の機能を有する装置でもよい。つまり、コンピュータ30は、外部装置9A又は外部装置9Bの処理結果の一部又は全部を、送信又は受信してもよい。
【0027】
図2は、プロセッサ31における機能ブロックの一例を示す図である。プロセッサ31は、当該プロセッサ31により実現される機能として、例えば、取得部311と、エネルギー/力計算部313と、選択部315と、構造最適化計算部317と、出力部319とを備える。取得部311と、エネルギー/力計算部313と、選択部315と、構造最適化計算部317と、出力部319とにより実現される機能は、それぞれプログラムとして、例えば、主記憶装置33または補助記憶装置35などに格納される。プロセッサ31は、主記憶装置33または補助記憶装置35などに格納されたプログラムを読み出し、実行することで、取得部311と、エネルギー/力計算部313と、選択部315と、構造最適化計算部317と、出力部319とに関する機能を実現することができる。
【0028】
取得部311は、例えばユーザからの入力に基づいて、対象となる物質について、初期値としての各原子の位置情報(三次元座標)を取得する。また、取得部311は、対象となる物質について、構造最適化計算部317による構造最適化計算(後述)によって計算された各原子の位置情報を取得してもよい。なお、初期位置としての各原子の位置情報は、任意の三次元座標であってもよい。
【0029】
エネルギー/力計算部313は、取得部311によって取得された各原子の位置情報を入力し、対象となる物質についてのエネルギー(或いは損失:Loss)を計算してもよい。エネルギー/力計算部313は、対象となる物質についてのエネルギーを各原子の位置で微分しそのノルムを計算することで(すなわちエネルギーの勾配ノルムを計算することで)、各原子が受ける力f(jは物質に含まれる各原子を識別するための添字)を計算してもよい。
【0030】
エネルギー/力計算部313は、例えば、物質に含まれる各原子の位置情報から当該物質のエネルギーを計算する。エネルギー/力計算部313は、例えば、学習済みモデルにより実現される。学習済みモデルは、例えばニューラルネットワークポテンシャル(Neural Network Potential:NNP)モデル、密度汎関数理論(Density Functional Theory:DFT)モデル、古典分子動力学ポテンシャル(以下、古典ポテンシャルと呼ぶ)モデル等を採用することができる。以下においては、説明を具体的にするため、エネルギー/力計算部313が学習済みのNNPモデルである場合を例とする。
【0031】
選択部315は、構造最適化計算部317における構造最適化計算に用いる計算アルゴリズムを選択してもよい。例えば、選択部315は、物質に含まれる各原子が受ける力に基づいて、構造最適化計算に用いる計算アルゴリズムを選択する。
【0032】
より具体的には、選択部315は、各原子が受ける力fのうちの最大値fmaxと、予め設定された閾値fthとの大小関係を判定し、判定結果に基づいて構造最適化計算に用いる計算アルゴリズムを選択してもよい。例えば、構造最適化計算部317は、物質の構造最適化処理の繰り返し演算の序盤においては第1のアルゴリズムを用いて構造最適化処理を実行する。また、構造最適化計算部317は、物質の構造最適化処理の繰り返し演算の終盤においては、第1のアルゴリズムとは異なる第2のアルゴリズムを用いて構造最適化処理を実行してもよい。
【0033】
ここで、第1のアルゴリズムは、物質の構造最適化処理の繰り返し演算の序盤において頑健性が比較的高い特性を有するものが望ましい。第1のアルゴリズムとしては、例えば、FIRE(Fast Inertial Relaxation Engine)を採用することができる。また、第2のアルゴリズムは、物質の構造最適化処理の繰り返し演算の終盤において第1のアルゴリズムよりも収束速度が速く、NAN(Not A Number)が発生しにくい特性を有するものが望ましい。第2のアルゴリズムとしては、例えば、LBFGS(Limited memory Broyden-Fletcher-Goldfarb-Shanno algorithm)を採用することができる。
【0034】
以下においては説明を具体的にするため、第1のアルゴリズムはFIREであるとし、第2のアルゴリズムはLBFGSである場合を例とする。しかしながら、当該例に限定されず、それぞれ上述した特性を有するものであれば、他の計算アルゴリズム(例えばLBFGS Line Search等)を採用することができる。
【0035】
例えば、選択部315は、fmaxとfthとを比較し、fmax>fthである場合には、構造最適化処理に用いる計算アルゴリズムとしてFIREを選択する。一方、選択部315は、fmaxとfthとを比較し、fmax≦fthである場合には、構造最適化処理に用いる計算アルゴリズムとしてLBFGSを選択してもよい。
【0036】
構造最適化計算部317は、物質の構造最適化処理において、選択部315によって選択された計算アルゴリズムを用いて物質の構造最適化処理を実行してもよい。すなわち、構造最適化計算部317は、fmax>fthである場合には、FIREを用いて各原子の座標のステップ幅を演算する構造最適化処理を繰り返し実行し、物質のエネルギーの極小構造となる各原子の位置情報を計算してもよい。一方、構造最適化計算部317は、fmaxとfthとを比較し、fmax≦fthである場合には、LBFGSを用いて各原子の座標のステップ幅を演算する構造最適化処理を繰り返し実行し、物質のエネルギーの極小構造となる各原子の位置情報を計算してもよい。
【0037】
出力部319は、構造最適化処理を含む推論処理によって得られた物質のエネルギー等を、主記憶装置33および/または補助記憶装置35に出力してもよい。また、出力部319は、推論処理によって得られた物質のエネルギー等を、通信ネットワーク5を介して外部装置9Aに出力することもできる。
【0038】
(構造最適化処理を含む推論処理)
次に、実施形態に係る推論装置1によって実現される推論処理について説明する、本推論処理は、複数の計算アルゴリズムを状況に応じて切り替えて使用する構造最適化処理を含むものである。
【0039】
図3は、本実施形態に係る推論処理の流れを示したフローチャートである。
【0040】
まず、取得部311は、ユーザが所望する物質に含まれる各原子について、初期値としての位置情報R0jを取得してもよい(ステップS1)。
【0041】
なお、ステップS1において取得される初期値R0jは、主記憶装置33または補助記憶装置35に格納された値を読み出してもよい、ネットワークインタフェース37を介して他の装置から取得する等の構成であってもよい。
【0042】
エネルギー/力計算部313は、取得部311が取得した各原子の位置情報R0jを入力し、対象とする物質のエネルギー、各原子に対応する力を計算してもよい(ステップS2)。
【0043】
構造最適化計算部317は、ステップS2においてエネルギー/力計算部313により計算されたエネルギー、各原子の位置情報R0jを用いて第1の構造最適化計算を実行し、物質のエネルギーの極小構造となる各原子の位置情報Rijを計算してもよい(ステップS3)。なお、ステップS3における第1の構造最適化計算は、第1のアルゴリズムとしてのFIREを用いて実行されてもよい。また、ステップS3における第1の構造最適化計算は、逐次的に繰り返し実行されてもよい。
【0044】
エネルギー/力計算部313は、物質のエネルギーの極小構造となる各原子の位置情報Rijを入力し、対象とする物質のエネルギーE、各原子に対応する力fijを計算してもよい(ステップS4)。
【0045】
選択部315は、各原子に対応する力fijのうちの最大値fmaxと、予め設定された閾値fthとを比較してもよい(ステップS5)。fmax>fthである場合には、選択部315は、構造最適化計算に用いる第1のアルゴリズムとしてFIREを選択し(ステップS5のNo)、第1の構造最適化計算を実行してもよい。一方、fmax≦fthである場合には、選択部315は、構造最適化計算に用いる第2のアルゴリズムとしてLBFGSを選択し、第2の構造最適化計算を実行してもよい(ステップS5のYes)。
【0046】
構造最適化計算部317は、ステップS4においてエネルギー/力計算部313により計算されたエネルギー、ステップS3において計算された各原子の位置情報Rijを用いてLBFGSによる第2の構造最適化計算を実行し、物質のエネルギーの極小構造となる各原子の位置情報Ri+1jを計算してもよい(ステップS6)。なお、ステップS6における第2の構造最適化計算は、逐次的に繰り返し実行されてもよい。
【0047】
エネルギー/力計算部313は、物質のエネルギーの極小構造となる各原子の位置情報Ri+1jを入力し、対象とする物質のエネルギーEi+1、各原子に対応する力fi+1jを計算してもよい(ステップS7)。
【0048】
選択部315は、各原子に対応する力fi+1jのうちの最大値fmaxと、予め設定された収束閾値fconとを比較してもよい(ステップS8)。fmax>fconである場合には(ステップ8のNo)、ステップS6、ステップS7の処理が再度実行されてもよい。一方、fmax≦fconである場合には(ステップ8のYes)、選択部315は、ステップS6において得られた各原子の位置情報、ステップS7において得られたエネルギーを、物質のエネルギーの極小構造に対応するものとして選択してもよい。
【0049】
出力部319は、ステップS8において選択されたエネルギー等を、推論結果として出力してもよい(ステップS9)。
【0050】
本実施形態に係る推論装置1は、少なくとも1つのメモリとしての主記憶装置33、補助記憶装置35と、少なくとも1つのプロセッサとしてのプロセッサ31とを備えてもよい。プロセッサ31は、物質の構造最適化処理の繰り返し演算の序盤においては第1のアルゴリズム(例えばFIRE)を、構造最適化処理の繰り返し演算の終盤においては第2のアルゴリズム(例えばLBFGS)をそれぞれ用いて、構造最適化処理を実行してもよい。
【0051】
従って、FIRE単独を用いて物質の構造最適化処理の繰り返し演算を実行する場合に比して、より収束速度の速い処理を実現することができる。また、LBFGS単独を用いて物質の構造最適化処理の繰り返し演算を実行する場合に比して、より頑健性の高い処理を実現することができる。
【0052】
また、プロセッサ31は、物質に含まれる複数の原子が受ける力に基づいて、例えばFIREからLBFGSへの切り替えを実行する。より具体的には、プロセッサ31は、物質に含まれる複数の原子が受ける力のうちの最大値fmaxが閾値fth以下になった場合には、FIREからLBFGSへの切り替えを自動的に実行してもよい。従って、計算アルゴリズムの切り替えを客観的な指標に基づいて実行することができ、安定した構造最適化処理を実現することができる。
【0053】
また、プロセッサ31は、NNPモデル、DFTモデル、古典ポテンシャルモデルのいずれかを用いて物質のエネルギーを算出し、算出されたエネルギーを用いて構造最適化処理を実行することができる。例えば、比較的計算負荷の高いDFTモデルを用いる場合、高速計算可能なNPPモデルを用いる場合のいずれにおいても、計算アルゴリズムの切り替えを客観的な指標に基づいて自動的に実行することができる。その結果、例えばユーザが装置に付きっきりになる必要がなく、構造最適化処理における人的負荷を軽減することができる。
【0054】
(第2の実施形態)
次に、第2の実施形態に係る推論装置1について説明する。第2の実施形態に係る推論装置1は、第2のアルゴリズムとしてのLBFGSによる第2の構造最適化計算において、原子に加わる力が所定の基準を満たす場合には、再度第1のアルゴリズムとしてのFIREによる第1の構造最適化計算に切り替えてもよい。
【0055】
ここで、所定の基準とは、例えば、第2のアルゴリズムにおける振動の発生、または振動の発生の可能性が推定される原子に加わる力fの変化(例えば上昇)である。本実施形態においては、所定の基準の例として、fmaxが予め設定された閾値fthよりも大きくなる場合(fmax>fth)を採用するものとする。
【0056】
図4は、第2の実施形態に係る推論処理の流れを示したフローチャートである。図4に示したステップS11~S17の各処理は、図3に示したステップS1~S7と同様であるので、その説明を省略する。
【0057】
選択部315は、ステップS17において得られた各原子に対応する力fijのうちの最大値fmaxと、予め設定された閾値fthとを比較してもよい(ステップS18)。fmax>fthである場合には、選択部315は、構造最適化計算に用いるアルゴリズムとしてFIREを選択してもよく(ステップS18のNo)、第1の構造最適化計算を含むステップS13~ステップS17の処理を再度実行してもよい。一方、fmax≦fthである場合には(ステップS18のYes)、処理はステップS19へ移行してもよい。なお、ステップS19、S20の各処理は、図3に示したステップS8、S9と同様であるので、その説明を省略する。
【0058】
以上述べた構成によれば、プロセッサ31は、物質に含まれる複数の原子が受ける力のうちの最大値fmaxが閾値fthを超えた場合には、第2のアルゴリズムとしてのLBFGSから第1のアルゴリズムとしてのFIREへ切り替えて構造最適化処理を実行してもよい。
【0059】
従って、例えばLBFGSにおいて局所二次近似が仮定できず振動する場合等において、再度FIREを用いた構造最適化処理を実行することができ、収束性を向上させることができる。
【0060】
(第3の実施形態)
次に、第3の実施形態に係る推論装置1について説明する。第3の実施形態に係る推論装置1は、第2のアルゴリズムとしてのLBFGSによる第2の構造最適化計算において、物質のエネルギーが所定の基準を満たす場合には、再度第1のアルゴリズムとしてのFIREによる第1の構造最適化計算に切り替えてもよい。
【0061】
ここで、所定の基準とは、例えば、第2のアルゴリズムにおける振動の発生、または振動の発生の可能性が推定されるエネルギーの値の変化(例えば上昇)である。本実施形態においては、所定の基準の例として、図3に示したエネルギーEが予め設定された閾値Ethよりも大きくなる場合(E>Eth)を採用してもよい。予め設定された閾値Ethとしては、計算済みのエネルギーEの最小値を採用してもよい。
【0062】
図5は、第3の実施形態に係る推論処理の流れを示したフローチャートである。図5に示したステップS21~S27の各処理は、図3に示したステップS1~S7と同様であるので、その説明を省略する。
【0063】
選択部315は、各原子に対応する力fijのうちの最大値fmaxと、予め設定された閾値fthとを比較するのに加えて、物質のエネルギーEと予め設定された閾値Ethとを比較してもよい(ステップS28)。fmax>fth及びE>Ethの少なくとも一方または両方に該当する場合には(ステップS28のYes)、選択部315は、構造最適化計算に用いるアルゴリズムとしてFIREを選択し、第1の構造最適化計算を含むステップS23~ステップS27の処理を再度実行してもよい。一方、fmax>fth及びE>Ethのいずれにも該当しない場合またはfmax>fth及びE>Ethのいずれか一方にしか該当しない場合には(ステップS28のNo)、処理はステップS29へ移行してもよい。
【0064】
なお、ステップS29、S30の各処理は、図3に示したステップS8、S9と同様であるので、その説明を省略する。
【0065】
以上述べた構成によれば、プロセッサ31は、所定の条件で、第2のアルゴリズムとしてのLBFGSから第1のアルゴリズムとしてのFIREへ切り替えて構造最適化処理を実行してもよい。
【0066】
従って、例えばfmax単調減少でないような地形の存在に起因しfthの付近でFIREとLBFGSとの間を行き来する振動が発生する場合において、再度FIREを用いた構造最適化処理を実行することができ、収束性を向上させることができる。
【0067】
(第4の実施形態)
次に、第4の実施形態に係る推論装置1について説明する。第4の実施形態に係る推論装置1は、第1のアルゴリズムとしてのFIREから第2のアルゴリズムとしてのLBFGSへの切り替え(すなわち、第1の構造最適化計算から第2の構造最適化計算への切り替え)の度に、切り替えの基準となるfthの値を更新(その値を小さくしていく設定をする)してもよい。
【0068】
図6は、第4の実施形態に係る推論処理の流れを示したフローチャートである。図6に示したステップS31~S35の各処理は、図3に示したステップS1~S5と同様であるので、その説明を省略する。
【0069】
max≦fthである場合、選択部315は、直前のステップS35において用いたfthの値より小さくなるようにfthの値を更新してもよい(ステップS36)。
【0070】
以降、図6に示したステップS37~S41の各処理は、図5に示したステップS26~S30と同様であるので、その説明を省略する。
【0071】
以上述べた構成によれば、プロセッサ31は、第1のアルゴリズムとしてのFIREから第2のアルゴリズムとしてのLBFGSへ切り替えを実行する度に、切り替えの基準となる閾値fthの値を下げることができる。
【0072】
従って、例えばLBFGSを用いた構造最適化計算の最初のステップでエネルギーと力の両方が上がり、計算アルゴリズムの切り替えが振動する可能性がある場合等において、閾値をfthの値を下げることにより、振動の発生を抑制することができ、収束性を向上させることができる。
【0073】
実施形態における技術的思想を推論方法で実現する場合、当該推論方法は、物質の構造最適化処理の繰り返し演算の序盤においては第1のアルゴリズムを、構造最適化処理の繰り返し演算の終盤においては第1のアルゴリズムとは異なる第2のアルゴリズムをそれぞれ用いて、構造最適化処理を実行してもよい。
【0074】
実施形態における技術的思想を決定プログラムで実現する場合、当該決定プログラムは、コンピュータに、物質の構造最適化処理の繰り返し演算の序盤においては第1のアルゴリズムを、構造最適化処理の繰り返し演算の終盤においては第1のアルゴリズムとは異なる第2のアルゴリズムをそれぞれ用いて、構造最適化処理を実行してもよい。
【0075】
例えば、複数の原子により構成される原子構造のエネルギーおよび/または力を解析する各種解析装置や解析サーバなどにおけるコンピュータに当該決定プログラムをインストールし、これらをメモリ上で展開することによっても、最適パラメータ決定処理を実現することができる。このとき、コンピュータに当該手法を実行させることのできるプログラムは、磁気ディスク(ハードディスクなど)、光ディスク(CD-ROM、DVDなど)、半導体メモリなどの記憶媒体に格納して頒布することも可能である。決定プログラムによる最適パラメータ決定処理の手順および効果は、実施形態と同様なため、説明は省略する。
【0076】
前述した実施形態における各装置の一部又は全部は、ハードウェアで構成されていてもよいし、CPU、又はGPU等が実行するソフトウェア(プログラム)の情報処理で構成されてもよい。ソフトウェアの情報処理で構成される場合には、前述した実施形態における各装置の少なくとも一部の機能を実現するソフトウェアを、フレキシブルディスク、CD-ROM(Compact Disc-Read Only Memory)、又はUSBメモリ等の非一時的な記憶媒体(非一時的なコンピュータ可読媒体)に収納し、コンピュータ30に読み込ませることにより、ソフトウェアの情報処理を実行してもよい。また、通信ネットワーク5を介して当該ソフトウェアがダウンロードされてもよい。さらに、ソフトウェアがASIC、又はFPGA等の回路に実装されることにより、情報処理がハードウェアにより実行されてもよい。
【0077】
ソフトウェアを収納する記憶媒体の種類は限定されるものではない。記憶媒体は、磁気ディスク、又は光ディスク等の着脱可能なものに限定されず、ハードディスク、又はメモリ等の固定型の記憶媒体であってもよい。また、記憶媒体は、コンピュータ内部に備えられてもよいし、コンピュータ外部に備えられてもよい。
【0078】
本明細書(請求項を含む)において、「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)以外の他の要素を加えることも含む。
【0079】
本明細書(請求項を含む)において、「データを入力として/データに基づいて/に従って/に応じて」等の表現(同様な表現を含む)が用いられる場合は、特に断りがない場合、各種データそのものを入力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を入力として用いる場合を含む。また「データに基づいて/に従って/に応じて」何らかの結果が得られる旨が記載されている場合、当該データのみに基づいて当該結果が得られる場合を含むとともに、当該データ以外の他のデータ、要因、条件、及び/又は状態等にも影響を受けて当該結果が得られる場合をも含み得る。また、「データを出力する」旨が記載されている場合、特に断りがない場合、各種データそのものを出力として用いる場合や、各種データに何らかの処理を行ったもの(例えば、ノイズ加算したもの、正規化したもの、各種データの中間表現等)を出力とする場合も含む。
【0080】
本明細書(請求項を含む)において、「接続される(connected)」及び「結合される(coupled)」との用語が用いられる場合は、直接的な接続/結合、間接的な接続/結合、電気的(electrically)な接続/結合、通信的(communicatively)な接続/結合、機能的(operatively)な接続/結合、物理的(physically)な接続/結合等のいずれをも含む非限定的な用語として意図される。当該用語は、当該用語が用いられた文脈に応じて適宜解釈されるべきであるが、意図的に或いは当然に排除されるのではない接続/結合形態は、当該用語に含まれるものして非限定的に解釈されるべきである。
【0081】
本明細書(請求項を含む)において、「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)されていればよい。
【0082】
本明細書(請求項を含む)において、含有又は所有を意味する用語(例えば、「含む(comprising/including)」及び有する「(having)等)」が用いられる場合は、当該用語の目的語により示される対象物以外の物を含有又は所有する場合を含む、open-endedな用語として意図される。これらの含有又は所有を意味する用語の目的語が数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)である場合は、当該表現は特定の数に限定されないものとして解釈されるべきである。
【0083】
本明細書(請求項を含む)において、ある箇所において「1つ又は複数(one or more)」又は「少なくとも1つ(at least one)」等の表現が用いられ、他の箇所において数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)が用いられているとしても、後者の表現が「1つ」を意味することを意図しない。一般に、数量を指定しない又は単数を示唆する表現(a又はanを冠詞とする表現)は、必ずしも特定の数に限定されないものとして解釈されるべきである。
【0084】
本明細書において、ある実施例の有する特定の構成について特定の効果(advantage/result)が得られる旨が記載されている場合、別段の理由がない限り、当該構成を有する他の1つ又は複数の実施例についても当該効果が得られると理解されるべきである。但し当該効果の有無は、一般に種々の要因、条件、及び/又は状態等に依存し、当該構成により必ず当該効果が得られるものではないと理解されるべきである。当該効果は、種々の要因、条件、及び/又は状態等が満たされたときに実施例に記載の当該構成により得られるものに過ぎず、当該構成又は類似の構成を規定したクレームに係る発明において、当該効果が必ずしも得られるものではない。
【0085】
本明細書(請求項を含む)において、「最大化(maximize)」等の用語が用いられる場合は、グローバルな最大値を求めること、グローバルな最大値の近似値を求めること、ローカルな最大値を求めること、及びローカルな最大値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最大値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最小化(minimize)」等の用語が用いられる場合は、グローバルな最小値を求めること、グローバルな最小値の近似値を求めること、ローカルな最小値を求めること、及びローカルな最小値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最小値の近似値を確率的又はヒューリスティックに求めることを含む。同様に、「最適化(optimize)」等の用語が用いられる場合は、グローバルな最適値を求めること、グローバルな最適値の近似値を求めること、ローカルな最適値を求めること、及びローカルな最適値の近似値を求めることを含み、当該用語が用いられた文脈に応じて適宜解釈されるべきである。また、これら最適値の近似値を確率的又はヒューリスティックに求めることを含む。
【0086】
本明細書(請求項を含む)において、複数のハードウェアが所定の処理を行う場合、各ハードウェアが協働して所定の処理を行ってもよいし、一部のハードウェアが所定の処理の全てを行ってもよい。また、一部のハードウェアが所定の処理の一部を行い、別のハードウェアが所定の処理の残りを行ってもよい。本明細書(請求項を含む)において、「1又は複数のハードウェアが第1の処理を行い、前記1又は複数のハードウェアが第2の処理を行う」等の表現が用いられている場合、第1の処理を行うハードウェアと第2の処理を行うハードウェアは同じものであってもよいし、異なるものであってもよい。つまりく、第1の処理を行うハードウェア及び第2の処理を行うハードウェアが、前記1又は複数のハードウェアに含まれていればよい。なお、ハードウェアは、電子回路、又は電子回路を含む装置を含んでよい。
【0087】
本明細書(請求項を含む)において、複数の記憶装置(メモリ)がデータの記憶を行う場合、複数の記憶装置(メモリ)のうち個々の記憶装置(メモリ)は、データの一部のみを記憶してもよいし、データの全体を記憶してもよい。
【0088】
以上、本開示の実施形態について詳述したが、本開示は上記した個々の実施形態に限定されるものではない。特許請求の範囲に規定された内容及びその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲において種々の追加、変更、置き換え及び部分的削除等が可能である。例えば、前述した全ての実施形態において、数値又は数式を説明に用いている場合は、一例として示したものであり、これらに限られるものではない。また、実施形態における各動作の順序は、一例として示したものであり、これらに限られるものではない。
【符号の説明】
【0089】
1 推論装置
5 通信ネットワーク
9A 外部装置
9B 外部装置
30 コンピュータ
31 プロセッサ
33 主記憶装置
35 補助記憶装置
37 ネットワークインタフェース
39 デバイスインタフェース
41 バス
311 取得部
313 エネルギー/力計算部
315 選択部
317 構造最適化計算部
319 出力部
図1
図2
図3
図4
図5
図6