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

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

▶ 株式会社カルマリオンの特許一覧

特開2025-108260情報処理装置、情報処理方法、及びプログラム
<>
  • 特開-情報処理装置、情報処理方法、及びプログラム 図1
  • 特開-情報処理装置、情報処理方法、及びプログラム 図2
  • 特開-情報処理装置、情報処理方法、及びプログラム 図3
  • 特開-情報処理装置、情報処理方法、及びプログラム 図4
  • 特開-情報処理装置、情報処理方法、及びプログラム 図5
  • 特開-情報処理装置、情報処理方法、及びプログラム 図6
  • 特開-情報処理装置、情報処理方法、及びプログラム 図7
  • 特開-情報処理装置、情報処理方法、及びプログラム 図8
  • 特開-情報処理装置、情報処理方法、及びプログラム 図9
  • 特開-情報処理装置、情報処理方法、及びプログラム 図10
  • 特開-情報処理装置、情報処理方法、及びプログラム 図11
  • 特開-情報処理装置、情報処理方法、及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025108260
(43)【公開日】2025-07-23
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
   G06F 17/10 20060101AFI20250715BHJP
   G06N 7/00 20230101ALI20250715BHJP
   G06Q 10/04 20230101ALI20250715BHJP
【FI】
G06F17/10 Z
G06N7/00
G06Q10/04
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2024002073
(22)【出願日】2024-01-10
(11)【特許番号】
(45)【特許公報発行日】2024-12-25
(71)【出願人】
【識別番号】524014020
【氏名又は名称】株式会社カルマリオン
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】吉竹 純基
【テーマコード(参考)】
5B056
【Fターム(参考)】
5B056BB95
(57)【要約】
【課題】自動微分を用いた計算手法において、計算コストを抑制する
【解決手段】情報処理装置(1)は、1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得部(21)と、前記対象関数の微分係数を計算する計算部(26)とを備え、前記計算部による前記微分係数の計算処理には、第1の処理と、第2の処理と、が含まれ、前記計算部による前記微分係数の計算処理には反復処理が含まれており、前記第1の処理は前記反復処理の一部を含み、前記第2の処理は前記反復処理の前記一部以外の部分を含み、前記計算部による前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれている。
【選択図】図1
【特許請求の範囲】
【請求項1】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得部と、
前記対象関数の微分係数を計算する計算部と、
を備え、
前記計算部による前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記計算部による前記微分係数の計算処理には反復処理が含まれており、
前記第1の処理は前記反復処理の一部を含み、
前記第2の処理は前記反復処理の前記一部以外の部分を含み、
前記計算部による前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれている
情報処理装置。
【請求項2】
前記対象関数は、
前記1又は複数のパラメータの部分集合と、
前記1又は複数のパラメータを引数とする1又は複数の状態変数と
を引数とし、
前記反復処理は、
前記1又は複数の状態変数の更新処理を含み、
前記第3の処理は、
自動微分を用いて、前記対象関数の微分係数を計算する処理を含む
請求項1に記載の情報処理装置。
【請求項3】
前記第3の処理は、
リバースモードの自動微分を用いて、前記対象関数の微分係数を計算する処理を含む
請求項2に記載の情報処理装置。
【請求項4】
前記第1の処理、前記第2の処理、および前記第3の処理の少なくともいずれかには、
前記1又は複数の状態変数の少なくとも何れかに関する収束判定処理、及び
前記対象関数の微分係数に関する収束判定処理
の少なくとも何れかが含まれる
請求項3に記載の情報処理装置。
【請求項5】
前記第3の処理において、チェックポイントにおいて記録された前記第2の処理の計算過程の情報を用いる
請求項3に記載の情報処理装置。
【請求項6】
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新するパラメータ更新部をさらに備える
請求項1から5の何れか1項に記載の情報処理装置。
【請求項7】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得ステップと、
前記対象関数の微分係数を計算する計算ステップと、
を含み、
前記計算ステップによる前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記計算ステップによる前記微分係数の計算処理には反復処理が含まれており、
前記第1の処理は前記反復処理の一部を含み、
前記第2の処理は前記反復処理の前記一部以外の部分を含み、
前記計算ステップによる前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれている
情報処理方法。
【請求項8】
請求項1に記載の情報処理装置としてコンピュータを機能させるためのプログラムであって、前記取得部、及び前記計算部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
物質系等の対象とするシステムを記述するパラメータの最適化等の解析を行う技術が知られている。例えば、特許文献1は、量子力学的計算に基づいて物質を設計するための技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2016-69302号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述のような解析手法の一つとして、自動微分を用いた手法も知られている。自動微分を用いることにより、解析の精度の向上を図ることが出来る一方、より低い計算コストで自動微分を実行できることが望ましい。本発明の一態様は、自動微分を用いた計算手法において、計算コストを抑制することができる技術を実現することを目的とする。
【課題を解決するための手段】
【0005】
上記の課題を解決するために、本発明の一態様に係る情報処理装置は、1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得部と、前記対象関数の微分係数を計算する計算部とを備え、前記計算部による前記微分係数の計算処理には、第1の処理と、第2の処理と、が含まれ、前記計算部による前記微分係数の計算処理には反復処理が含まれており、前記第1の処理は前記反復処理の一部を含み、前記第2の処理は前記反復処理の前記一部以外の部分を含み、前記計算部による前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれている。
【0006】
上記の課題を解決するために、本発明の一態様に係る情報処理方法は、1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得ステップと、前記対象関数の微分係数を計算する計算ステップとを含み、前記計算ステップによる前記微分係数の計算処理には、第1の処理と、第2の処理とが含まれ、前記計算ステップによる前記微分係数の計算処理には反復処理が含まれており、前記第1の処理は前記反復処理の一部を含み、前記第2の処理は前記反復処理の前記一部以外の部分を含み、前記計算ステップによる前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれている。
【0007】
本発明の各態様に係る情報処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを前記情報処理装置が備える各部(ソフトウェア要素)として動作させることにより前記情報処理装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【0008】
本発明の一態様によれば、自動微分を用いた計算手法において、計算コストを抑制することができる。
【図面の簡単な説明】
【0009】
図1】本発明の実施形態に係る情報処理装置の構成を示すブロック図である。
図2】本発明の実施形態に係る情報処理の流れを示すフロー図である。
図3】本発明の実施形態に係る情報処理の流れを示すフロー図である。
図4】本発明の実施形態に係る情報処理の流れを示すフロー図である。
図5】本発明の実施形態のベースとなる情報処理の流れを示すフロー図である。
図6】本発明の実施形態のベースとなる情報処理の流れを示すフロー図である。
図7】本発明の実施形態に係る情報処理の流れを示すフロー図である。
図8】本発明の実施形態に係る情報処理装置の構成を示すブロック図である。
図9】本発明の実施形態に係る情報処理の流れを示すフロー図である。
図10】本発明の実施形態に係る情報処理の流れを示すフロー図である。
図11】本発明の実施形態に係る情報処理装置の構成を示すブロック図である。
図12】本発明の実施形態に係る情報処理の流れを示すフロー図である。
【発明を実施するための形態】
【0010】
(各本実施形態に係る情報処理の概要)
まず、本明細書に記載の各実施形態に係る情報処理の概要について説明する。本明細書に記載の各実施形態に係る情報処理装置、及び情報処理方法は、一例として、所望の性能や物性を有するシステムまたは物質を設計(逆設計ともいう)するために用いることができる。通常のシミュレーションでは、例えば、パラメータpとして、原子の配置、半導体の不純物分布、製造条件等を設定し、当該パラメータに応じて定まる超伝導転移温度、電圧電流特性、欠陥密度等の性能又は物性に関する目的関数を計算するが、本明細書に記載の各実施形態に係る情報処理装置及び情報処理方法は、所望の超伝導転移温度、所望の電圧電流特性、所望の欠陥密度等を有するように、原子の配置、半導体の不純物分布、製造条件等のパラメータpを設計(逆設計)するという問題に好適に用いることができる。また、別の例では、対象とするシステムに関する限られた測定結果から、当該対象とシステムを記述するパラメータを推定することに用いることができる。
【0011】
換言すれば、本明細書に記載の各実施形態に係る情報処理装置及び情報処理方法は、上述のような逆設計等において、性能又は物性に関する目的関数を最大化または最小化するパラメータpを見つけるという問題に好適に適用することができる。このような問題を解くためには、目的関数のpに関する微分が分かると有用だが、pが高次元の場合、目的関数のpに関する微分を全て求めるのは計算コストを要するという課題がある。本明細書に記載の各実施形態に係る情報処理装置及び情報処理方法では、目的関数のpに関する微分を反復法により計算する場合に、計算コストを低減することができる。
【0012】
本開示の情報処理装置及び情報処理方法では、より具体的には、
・少なくとも1つのパラメータp(aは当該少なくとも1つのパラメータを列挙するインデックス)の集合Pと、
・集合Pの部分集合であるQと、
少なくとも1つの状態変数x(bは当該少なくとも1つのパラメータを列挙するインデックス)の集合である状態変数Xと、
・関数F(Q,X)と
を考える。以下ではPまたはQのことを単にパラメータとも呼ぶ。また、Xのことを単に状態変数ともよぶ。また、パラメータPの値に基づいて定まる状態変数Xの値であるXANS(P)を考える。以下、XANS(P)を単にX(P)とも書く。集合Qが空集合でない場合は、関数Fは集合Pに含まれるパラメータpのいずれかに陽に依存する場合に対応する。このような関数Fを、1又は複数のパラメータ(p)を直接的に引数として含む対象関数(F)と表現することもある。一方、集合Qが空集合の場合は、関数Fは集合Pに含まれるパラメータpのいずれにも陽には依存しない場合に対応する。このような関数Fを、1又は複数のパラメータ(p)を間接的に引数として含む対象関数(F)と表現することもある。また、F(Q,X)は、xのうちの少なくともいずれかに依存していればよい。例えば、Fはxのうちいずれか自体であってもよい。
【0013】
このように、前記対象関数(F)は、前記1又は複数のパラメータの部分集合(Q)と、前記1又は複数のパラメータを引数とする1又は複数の状態変数(X(P))とを引数とする関数であると表現することができる。なお、上述した状態変数xは物理的な状態に関するものでなくてもよい。
【0014】
本明細書に係る情報処理装置及び情報処理方法では、一例として、F(Q,XANS (P))の各pに関する導関数∂F(Q,XANS (P))/∂pの値を数値的に求める。F(Q,XANS (P))の具体的な形は、情報処理装置及び情報処理方法の対象に依存する。
【0015】
ANS(P)はPに含まれないパラメータにも依存していてもよいが、以下では表記の簡潔さのため、Pに含まれないパラメータへのXANS の依存性は明示的には書かないことがある。また、関数FはPに含まれないパラメータにも依存していてよいが、以下では表記の簡潔さのため、Pに含まれないパラメータへの関数Fの依存性は明示的には書かないことがある。
【0016】
ANS(P)は情報処理装置及び情報処理方法の対象に基づいて定まる。XANS(P)はPの陰関数であってもよく、XANS(P)の数値解を求めるための反復計算方法が分かっていればよい。例えば、ある適当な初期条件Xから出発してX=φ(P,Xi-1)の計算を繰り返すことでXの収束値としてXANS(P)の数値解が得られることが期待される関数φが分かっていればよい。また、関数φは固定されたものではなくてもよく、反復に応じて変わる関数φであって、X=φ(P,Xi-1)の計算を繰り返すことでXの収束値としてXANS(P)の数値解が得られることが期待される関数であってもよい。また、状態変数の値Xに含まれる各状態変数xの値をx(i,b)と書く。
【0017】
φは、必ずXANS(P)の数値解が得られるものでなくてもよく、例えば、ある初期条件Xに対しては当該繰り返しの計算でXANS(P)の数値解が得られないようなものでもよい。例えば、φは、X=φ(P,X)が複数の解を持ち、XANS(P)は当該複数の解のうちの一つであって、ある初期条件Xからスタートして当該繰り返しの計算を行った場合にX=φ(P,X)の複数の解のうちXANS(P)とは異なる解に対応する数値解が得られる、というものであってもよい。その場合、例えば、複数の初期値から出発して計算を行うことで、XANS(P)の数値解が得られる。
【0018】
〔実施形態1〕
続いて、本発明の一実施形態について、詳細に説明する。
【0019】
(情報処理装置1の構成)
図1は本実施の形態の情報処理装置1の構成を示すブロック図である。図1に示すように、情報処理装置1は、制御部2と、記憶部3と、入出力部4と、を有する。
【0020】
(記憶部3)
記憶部3には、制御部2によって参照される各種のデータや情報、及び制御部2によって導出された各種のデータや情報が格納されている。一例として、図1に示すように、記憶部3には、パラメータP、計算過程情報CP、閾値Cth、反復回数mが格納されている。
【0021】
ここで、パラメータPは、一例として、上述した少なくとも1つのパラメータp(ここでaは当該少なくとも1つのパラメータに付されたインデックス)の集合Pのことを指す。計算過程情報CPは、一例として、制御部2が実行する各種の計算過程に関する情報であり、一例として後述する自動微分において用いられる情報が含まれる。閾値Cthは、一例として、収束条件が満たされるか否かを判定する判定処理において参照される閾値である。反復回数mは、一例として、制御部2による対象の計算の反復回数を規定する値である。記憶部3に記憶された各種のデータや情報に関するより具体的な説明は後述する。
【0022】
(入出力部4)
入出力部4は、一例として、キーボード、マウス、ディスプレイ、プリンタ、タッチパネル等の入出力装置の少なくとも何れかを備えて構成される。或いは、入出力部4には、キーボード、マウス、ディスプレイ、プリンタ、タッチパネル等の入出力機器が接続される構成としてもよい。当該構成の場合、入出力部4は、接続された入力機器から情報処理装置1に対する各種の情報の入力を受け付ける。また、入出力部4は、制御部2の制御により、接続された出力機器に各種の情報を出力する。入出力部4としては、例えばUSB(Universal Serial Bus)などのインタフェースが挙げられる。
【0023】
(制御部2)
図1に示すように、制御部2は、初期値決定部21と、状態更新部22と、終了判定部23と、関数値計算部24と、微分値計算部26と、終了判定部28と、を有する。
【0024】
初期値決定部21は状態変数Xの初期値Xを定める。初期値決定部21は例えば初期値Xをあらかじめ定められた値に設定してもよいし、乱数を用いて初期値Xを定めてもよい。初期値決定部21は、初期値Xを、入出力部4を介して外部から入力された値に設定してもよい。初期値決定部21は、1又は複数のパラメータ(p)を直接的又は間接的に引数として含む対象関数(F)の値の計算に関する初期値(一例として対象関数Fの引数であるXの初期値X)を取得する取得部であると表現してもよい。
【0025】
状態更新部22は状態変数Xを更新する。一例として、状態更新部22は、X=φ(P,Xi-1)により、新しい状態変数Xの値であるXを求める。状態更新部22による処理の詳細については後述する。
【0026】
終了判定部23は、対象の計算の反復を終了するか否かを判定する。終了判定部23による処理の詳細については後述する。
【0027】
関数値計算部24は、対象の関数の値を計算する。一例として、関数値計算部24は、関数Fの値F(Q,Xn+m)を計算する。関数値計算部24による処理の詳細については後述する。
【0028】
微分値計算部26は、対象関数(F)の微分係数を計算する計算部として機能する。微分値計算部26は、一例として、図1に示すように、逆伝搬計算部252と計算過程記録部253とを有する。微分値計算部26による処理の詳細については後述する。
【0029】
終了判定部28は、対象の処理が予め定められた回数実行されたかを判定する。終了判定部28による処理の詳細については後述する。
【0030】
<情報処理装置1による処理の流れ>
以下では、情報処理装置1による処理の流れについて説明する。情報処理装置1は、概要として、
・収束解計算ステップ(ステップS1とも呼ぶ)
・微分係数計算ステップ(ステップS2とも呼ぶ)
を実行する。なお、ステップS1およびステップS2の全体を微分係数の計算処理と呼ぶこともある。ここで、当該微分係数の計算処理には、一例として反復処理が含まれる。ステップS1は第1の処理とも呼称され、後述するように、一例として、前記反復処理の一部を含む。一方、ステップS2のうち後述するステップS211およびステップS212は第2の処理とも呼称され、後述するように、前記反復処理の前記一部以外の部分を含む。ステップS2のうち後述するステップS213を第2の処理に含めてもよい。また、後述するように、前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理が含まれている。「前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理」のことを第3の処理とも呼称する。
【0031】
また、後述するように、前記反復処理は、1又は複数の状態変数(X)の更新処理を含み、前記第3の処理は、自動微分を用いて、対象関数(F)の微分係数を計算する処理を含む。更に、本実施形態に係る処理では、前記第3の処理は、後述するように、リバースモードの自動微分を用いて、対象関数(F)の微分係数を計算する処理を含む。
【0032】
(ステップS1)
収束解計算ステップ(ステップS1)は、一例として、図3に示すようにステップS11~S13を含んでいる。
【0033】
(ステップS11)
ステップS11において、初期値決定部21は状態変数Xの初期値Xを定める。初期値Xは入出力部4を介して外部から入力されてもよい。
【0034】
(ステップS12)
次に、ステップS12において、状態更新部22は状態変数Xを更新する。つまり、X=φ(P,Xi-1)により、新しい状態変数Xの値であるXを求める。ここでiはステップS12を何度目に実行しているかに対応する。例えば、最初にステップS12が実行される場合、状態更新部22はX=φ(P,X)によりXを求める。
【0035】
(ステップS13)
次に、ステップS13において、終了判定部23は、ステップS12の計算の反復を終了するかを判定する。本実施の形態では、終了判定部23は、直前のステップS12において得られたXが収束条件を満たしているかを判定する。換言すれば、終了判定部23は、前記1又は複数の状態変数の少なくとも何れかに関する収束判定処理を実行する。当該Xが収束条件を満たしていない場合、ステップS12が再度実行される。当該Xが収束条件を満たしている場合、ステップS1は終了し、ステップS2が実行される。ステップS13において用いられる収束条件については後述する。
【0036】
以降、Xが収束条件を満たしていると判定された際のiをnとも書く。
【0037】
(付記事項:ステップS13における収束判定)
が収束条件を満たしているかを終了判定部23が判定する方法は特に制限されず、情報処理方法の目的に応じた方法であってよい。終了判定部23は、例えば、Xi-1とXに依存する関数Cの値C(Xi-1,X)と閾値Cthとに基づいて、C(Xi-1,X)<Cthが満たされた場合にXが収束条件を満たしていると判定し、そうでない場合にはXが収束条件を満たしていないと判定する。関数Cは、X、X、・・・、Xi-2のいずれかひとつまたは複数に依存していてもよい。関数CはXのみに依存しX、X、・・・、Xi-1には依存していなくてもよい。これらの状態変数の値は、必要に応じて、計算過程で、記憶部3が記憶する計算過程情報CPに追加される。
【0038】
終了判定部23は、例えば、ステップS12において新たに得られたXと、そのひとつ前のステップS12の実行において得られたXi-1を用いて、収束を判定する。例えば、終了判定部23は、あらかじめ定められている閾値Cthを用いて|X-Xi-1|<Cthとなった場合にXが収束条件を満たしていると判定し、そうでない場合にXが収束条件を満たしていないと判定する。ここで、|X-Xi-1|=(Σ(x(i,b)-x(i-1,b)0.5である。
【0039】
関数CがX、X、・・・、Xi-1には依存しない場合、終了判定部23は、例えば、C(X)<Cthが満たされる場合にXが収束条件を満たしていると判定し、そうでない場合にXが収束条件を満たしていないと判定する。例えば、C(X)の値が0になるような状態変数Xを反復法により求める場合に、このような収束判定を行ってもよい。
【0040】
(ステップS2)
以上説明したようにステップS1が実行され、ステップS1の終了後、ステップS2(微分係数計算ステップ)が行われる。図4はステップS2を示すフローチャートである。図4に示すように、ステップS2は、ステップS211、ステップS212、ステップS213、およびステップS214を有する。なお、これらのステップS211~S213の全部又は一部は、上述した第2の処理の一例を構成している。また、ステップS214は、上述した第3の処理の一例として捉えることもできる。
【0041】
(ステップS211)
ステップS211において、状態更新部22は、Xn+k=φ(P,Xn+k-1)により、Xn+kを求める。ここでkはステップS211が何度目に実行されているかに対応する。例えば、最初にステップS211が実行される場合には、状態更新部22は、Xn+1=φ(P,X)により、Xn+1を求める。但し、Xは、ステップS1で得られたXである。
【0042】
ステップS211において、微分値計算部26の計算過程記録部253は、ステップS211において状態更新部22が行う計算に関して、リバースモードの自動微分を行うのに必要な情報を計算過程情報CPに追加する。リバースモードの自動微分を行うのに必要な情報は、例えば計算グラフの形で記録されてもよいし、各Xn+kがチェックポイントの情報として記録され、後述するステップS214において逆伝搬の計算を行う際に、必要に応じてXn+kを用いて計算グラフが構成されてもよい。換言すれば、上述した第3の処理において、チェックポイントにおいて記録された前記第2の処理の計算過程の情報を用いる。一例として、計算過程情報CPに含まれる情報のうち、チェックポイントにおいて記録された前記第2の処理の計算過程の情報を、上述した第3の処理において用いればよい。なお、本出願の各実施形態において、「リバースモードの自動微分を行う」とは、微分の値の逆伝搬の計算を行うことを指し、元となる順方向の計算および微分の値の逆伝搬の計算のために必要な計算過程の記録は含まない。
【0043】
(ステップS212)
ステップS212において、終了判定部28は、ステップS211があらかじめ定められた回数実行されたかを判定する。ステップS211があらかじめ定められた回数実行された場合、ステップS213が実行される。ステップS211があらかじめ定められた回数実行されてはいない場合、再度ステップS211が実行される。ステップS211が実行されるあらかじめ定められた回数をmとすると、ステップS211がm回実行されることでXn+mが得られる。mが定められる方法は、例えば以下の通りである。
【0044】
反復回数mは、例えば、ステップS1の実行前に、情報処理方法の対象に対する考察に基づいて定められてもよい。例えば、収束解の近傍におけるφによるXの収束の仕方が分かっている場合、当該収束の仕方に基づいてmを定めてよい。例えば、Xが1次収束より速く収束すると分かっている場合、例えば2次収束すると分かっている場合において、m=1であってよい。
【0045】
また、反復回数mは、例えば、ステップS1の実行前に、テスト計算に基づいて定められてもよい。例えば、Pに含まれる各pに関するFの微分係数を複数のPの値において求める場合に、代表的なPの値においてステップS2における反復回数mの好ましい値を求め、反復回数mの当該好ましい値を、複数のPの値における計算において用いてもよい。
【0046】
また、反復回数mは、例えば、ステップS1において得られるXの収束の仕方に基づいて定められてもよい。例えば、ステップS1においてXが1未満の値であるパラメータλを用いて|X-Xi-1|<λ|Xi-1-Xi-2|となるような収束の仕方をしている場合に、λ(λのm乗)が十分小さくなるように、もしくはλが目的とする値より小さくなるように、mを定めてもよい。この場合、例えば、制御部2が反復回数決定部(図示せず)を備え、反復回数決定部が反復回数mを決定する。ステップS1においてXが1未満の値であるλを用いて|X-Xi-1|<λ|Xi-1-Xi-2|となるような収束の仕方をしていることは、iがnに近い場合のXのふるまいから判断されてもよい。
【0047】
(ステップS213)
ステップS213では、関数値計算部24は関数Fの値F(Q,Xn+m)を計算する。ステップS213において、微分値計算部26の計算過程記録部253は、ステップS213において関数値計算部24が行う計算に関して、リバースモードの自動微分を行うために必要な情報を記録する。当該情報は記憶部3が記録する計算過程情報CPに含まれる。
【0048】
ステップS214において、微分値計算部26の逆伝搬計算部252は、記憶部3に記録されている計算過程情報CPに基づいて、反復法によりXからXn+mを求めさらに関数Fの値F(Q,Xn+m)を求める計算に対応する、微分の値の逆伝搬の計算を行う。これにより∂F(Q,Y(n,m)(P))/∂pが得られる。
ここで、Pに関する依存性を明示するために、新たにY(n,m)(P)を導入した。Y(i,0)(P)は、Y(i,0)=X(P)であるような、Pに依存しない定数である。また(i,k)(P)は、Y(i,0)から出発してk回φを適用したことで得られる状態変数である。例えば、Y(i,1)(P)=φ(P,Y(i,0))である。Pと異なるパラメータの値P’に対してはY(i,1)(P’)=φ(P’,Y(i,0))であるが、この場合も右辺のY(i,0)はY(i,0)=X(P)である。Y(i,k)(P)=Xi+k(P)であるが、Pと異なるパラメータの値P’およびk>0に対して一般にY(i,k)(P’)≠Xi+k(P’)である。
【0049】
このように、ステップS2では、ステップS211からステップS213で行われる、反復法によりXからXn+mを求め、さらに関数Fの値F(Q,Xn+m)を求める計算に対し、リバースモードの自動微分が適用される。これにより、Pに含まれる各pに対し、∂F(Q,XANS(P))/∂pの数値的な値として、∂F(Q,Y(n,m)(P))/∂pが得られる。
【0050】
本実施の形態において、ステップS1の計算をステップS2の前に行っていることで、例えば、ステップS2における反復回数mを小さくでき、Fの各pに関する微分係数を求めるための自動微分の計算コストを低減できる。この効果は、ステップS1での反復回数nのステップS2での反復回数mに対する比n/mが大きい場合に大きい。
【0051】
ステップS2においてリバースモードの自動微分が用いられることで、pの数が多い場合でも、計算コストを抑えて∂F(Q,Y(n,m)(P))/∂pを計算することができる。
【0052】
以上説明したように、本実施形態に係る情報処理装置1及び情報処理方法では、
・1又は複数のパラメータ(p)を直接的又は間接的に引数として含む対象関数(F)の値の計算に関する初期値を取得し、
・前記対象関数(F)の微分係数を計算し、
・前記微分係数の計算処理には、
第1の処理(例えば、ステップS1)と、
第2の処理(例えば、ステップS211,S212)と、
が含まれている。また、
・前記微分係数の計算処理には反復処理が含まれており、
前記第1の処理は前記反復処理の一部を含み、
前記第2の処理は前記反復処理の前記一部以外の部分を含み、
前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理である第3の処理が含まれている
という構成が採用されている。このため、上記の構成によれば、対象関数(F)の各パラメータ(p)に関する微分係数を求めるための計算において、自動微分を用いることによって微分計算の精度を高く保ちつつ、計算コストを低減することができる。
【0053】
また、上述したように前記第2の反復処理は、逆伝搬の自動微分を用いて、対象関数(F)の微分係数を計算する処理を含んでいる。このため、計算コストをより好適に低減することができる。
(実施形態1の付記事項)
実施形態1において説明した各処理、及び後述する各実施形態において説明する各処理は、以下に説明する比較例をベースとした処理であると捉えることもできる。図5は当該比較例に係る情報処理方法を示すフローチャートである。
【0054】
当該比較例に係る情報処理方法は、ステップS1010、ステップS1020、およびステップS1030を有する。
【0055】
(ステップS1010)
まず、ステップS1010を行う。図6は、ステップS1010に含まれる各処理の流れを示すフロー図である。図6に示されるように、ステップS1010は、ステップS1011からステップS1013を有する。
【0056】
(ステップS1011)
ステップS1011において、状態変数Xの初期値Xが定められる。
【0057】
(ステップS1012)
次に、ステップS1012において、X=φ(P,Xi-1)により、状態変数の新しい値Xが求められる。ここでiはステップS1012を何度目に実行しているかに対応する。例えば、最初にステップS1012を実行する場合、X=φ(P,X)によりXが求められる。
【0058】
(ステップS1013)
次に、ステップS1013において、Xが収束条件を満たしているかが判定される。Xが収束条件を満たしていないと判定された場合、ステップS1013が再度実行される。Xが収束条件を満たしていると判定された場合、ステップS1012が実行される。
【0059】
ステップS1013における収束条件は、例えば、XとXi-1とがどの程度異なっているか、に関するものであり、例えば、他の実施の形態で説明するものと同様である。
【0060】
ステップS1013においてXが収束条件を満たしていると判定された場合、XANS(P)の数値解としてXnが得られていることになる。ただし、ここで、nは、Xが収束条件を満たしていると判定された際のiである。Xから出発してφをn回適用して得られるXnはPに依存するので、Pに対する依存性を明示するために、X(P)とも書く。
【0061】
(ステップS1020)
が収束条件を満たしていると判定された場合、次に、ステップS1020において、F(Q,X)を計算する。
【0062】
(ステップS1030)
次に、ステップS1030において、ステップS1010およびステップS1020の計算に対応する、Fの微分の値の逆伝搬の計算を行う。これにより、∂F(Q,X(P))/∂pが求まる。
【0063】
このように、ステップS1010およびステップS1020の計算に対し自動微分を適用することで、Pに含まれる各pに関するF(Q,XANS(P))の微分係数∂F(Q,XANS(P))/∂pの数値解として、∂F(Q,X(P))/∂pが求まる。上記の説明ではリバースモードの自動微分により∂F(Q,X(P))/∂pを求めたが、フォワードモードの自動微分が用いられてもよい。
【0064】
フォワードモードの自動微分が用いられる場合、例えば、非実部を複数有する拡張された2重数を用いてステップS1010とステップS1020との計算を1度行うことで、各pについての微分係数∂F(Q,XANS(P))/∂pを計算してもよい。
【0065】
リバースモードの自動微分を用いる場合、微分係数の逆伝搬の計算を行うことで、各pについて、微分係数∂F(Q,XANS(P))/∂pをまとめて計算できる。
【0066】
〔実施形態2〕
続いて、本発明の他の実施形態である実施形態2について、詳細に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0067】
本実施形態に係る情報処理装置は、上述した実施形態1に係る情報処理装置1が備える微分値計算部26に代えて、微分値計算部25を備えている。本実施形態に係る情報処理装置の他の構成は、上述した実施形態1に係る情報処理装置1と同様である。
【0068】
(微分値計算部25)
微分値計算部25は、一例として、順伝搬計算部251を備えている。微分値計算部25の順伝搬計算部251は、状態更新部22が行う計算に対応する、微分の値の順伝搬の計算を行う。微分値計算部25による処理の詳細については後述する。
【0069】
<本実施形態に係る情報処理装置による処理の流れ>
以下では、本実施形態に係る情報処理装置による処理の流れについて説明する。本実施形態に係る情報処理装置は、概要としては、実施形態1に係る情報処理装置1と同様に、
・収束解計算ステップ(ステップS1、第1の処理とも呼ぶ)
・微分係数計算ステップ(ステップS2b)
を実行する。
【0070】
ステップS2bは後述のようにステップS201、ステップS202およびステップS203を有する。ステップS201およびステップS202で行われる処理のうちの一部は第2の処理とも呼ばれる。ステップS201およびステップS203において順伝搬計算部251が行う処理は第3の処理に含まれる処理の一例である。
【0071】
(ステップS1)
本実施形態に係るステップS1については、実施形態1に係る情報処理装置1が実行するステップS1と同様であるので説明を省略する。
【0072】
(ステップS2b)
ステップS1の終了後、ステップS2bが行われる。本実施形態に係るステップS2bは、一例として、以下に説明するステップS201、ステップS202およびステップS203を有する。
【0073】
(ステップS201)
ステップS201において、状態更新部22は、Xn+k=φ(P,Xn+k-1)により、Xn+kを求める。ここでkはステップS201が何度目に実行されているかに対応する。例えば、最初にステップS201が実行される場合には、状態更新部22は、Xn+1=φ(P,X)により、Xn+1を求める。但し、Xは、ステップS1で得られたXである。
【0074】
ステップS201において、微分値計算部25の順伝搬計算部251は、ステップS201において状態更新部22が行う計算に対応する、微分の値の順伝搬(フォワードモード)の計算を行う。
【0075】
(ステップS202)
続いて、ステップS202において、終了判定部28は、ステップS201があらかじめ定められた回数実行されたかを判定する。ステップS201があらかじめ定められた回数実行された場合、ステップS203が実行される。ステップS201があらかじめ定められた回数実行されてはいない場合、再度ステップS201が実行される。ステップS201が実行されるあらかじめ定められた回数をmとすると、ステップS201がm回実行されることでXn+mが得られる。
【0076】
(ステップS203)
続いて、ステップS203では、関数値計算部24は関数Fの値F(Q,Xn+m)を計算する。
【0077】
ステップS203において、微分値計算部25の順伝搬計算部251は、ステップS203において関数値計算部24が行う計算に対応する、微分の値の順伝搬の計算を行う。
【0078】
ステップS2bで行われる、反復法によりXからXn+mを求めさらに目的関数の値F(Q,Xn+m)を求める計算に対し、フォワードモードの自動微分が適用されることで、Pに含まれる各pに対し、Fのpに関する微分係数∂F(Q,XANS(P))/∂pの数値的な値として、∂F(Q, Y(n,m)(P))/∂pが得られる。ここで、Y(n,m)(P)は、実施形態1で導入したY(n,m)(P)と同様である。
【0079】
ステップS2bの終了後、本実施形態に係る情報処理装置は、例えば、入出力部4を介して、各pに関する∂F(Q, Y(n,m)(P))/∂pを外部に出力する。
【0080】
本実施の形態のようにフォワードモードの自動微分を用いる場合、Fの各pに関する微分係数を求めるためには、例えば、pの数におよそ比例して計算コストがかかる。本実施の形態において、Fの各pに関する微分係数を求めるための自動微分は、ステップS1に対しては適用されない。ステップS1を行っていることで、例えば、ステップS2bにおける反復回数mを小さくでき、Fの各pに関する微分係数を求めるための自動微分の計算コストを比較例の場合と比べ低減できる。この効果は、ステップS1での反復回数nのステップS2bでの反復回数mに対する比n/mが大きい場合に大きい。なお、反復回数mの設定の仕方は、一例として実施形態1において説明した処理と同様であるのでここでは説明を省略する。
【0081】
本実施形態に係る情報処理装置及び情報処理方法によっても対象関数(F)の各パラメータ(p)に関する微分係数を求めるための計算において、自動微分を用いることによって微分計算の精度を高く保ちつつ、計算コストを低減することができる。
【0082】
〔実施形態3〕
続いて、本発明の他の実施形態である実施形態3について、詳細に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0083】
本実施形態に係る情報処理装置は、上述した実施形態2に係る情報処理装置が備える終了判定部28に代えて、終了判定部29を備えている。また、本実施形態に係る情報処理装置の記憶部3は、実施形態2における反復回数mの代わりに閾値Cth2を記憶している。本実施形態に係る情報処理装置の他の構成は、上述した実施形態2に係る情報処理装置と同様である。
【0084】
(終了判定部29)
終了判定部29は、対象の処理が収束条件を満たしているかを判定する。終了判定部29による処理の詳細については後述する。
【0085】
<本実施形態に係る情報処理装置による処理の流れ>
以下では、本実施形態に係る情報処理装置による処理の流れについて説明する。本実施形態に係る情報処理装置は、概要としては、実施形態2に係る情報処理装置2と同様に、
・収束解計算ステップ(ステップS1、第1の処理とも呼ぶ)
・微分係数計算ステップ(ステップS2cとも呼ぶ)
を実行する。
ステップS2cは後述のようにステップS201、ステップS203およびステップS205を有する。ステップS2cで行われる処理のうちの一部は第2の処理とも呼ばれる。ステップS201およびステップS203において順伝搬計算部251が行う処理は第3の処理に含まれる処理の一例である。
【0086】
(ステップS1)
本実施形態に係るステップS1については、実施形態1に係る情報処理装置1が実行するステップS1と同様であるので説明を省略する。
【0087】
(ステップS2c)
ステップS1の終了後、ステップS2cが行われる。本実施形態に係るステップS2cは、一例として、以下に説明するステップS201、ステップS203、およびステップS205を有する。
【0088】
(ステップS201)
ステップS201において、状態更新部22は、Xn+k=φ(P,Xn+k-1)により、Xn+kを求める。ここでkはステップS201が何度目に実行されているかに対応する。例えば、最初にステップS201が実行される場合には、状態更新部22は、Xn+1=φ(P,X)により、Xn+1を求める。但し、Xは、ステップS1で得られたXである。ステップS201において、微分値計算部25の順伝搬計算部251は、ステップS201において状態更新部22が行う計算に対応する、微分の値の順伝搬の計算を行う。
【0089】
(ステップS203)
続いて、ステップS203では、関数値計算部24は関数Fの値F(Q,Xn+k)を計算する。
【0090】
ステップS203において、微分値計算部25の順伝搬計算部251は、ステップS203において関数値計算部24が行う計算に対応する、微分の値の順伝搬の計算を行う。
【0091】
ステップS201を繰り返し実行してXを元にしてXn+kを求め、ステップS203において関数Fの値F(Q,Xn+k)を計算する、という計算に対してフォワードモードの自動微分を適用することで、パラメータpそれぞれに関する微分係数∂F(Q, Y(n,k)(P))/∂pが求まる。ここで、Y(n,k)は、実施形態1で導入したYと同様である。
【0092】
(ステップS205)
次に、ステップS205において、終了判定部29は、∂F(Q, Y(n,k)(P))/∂pが収束条件を満たしているかを判定する。換言すれば、終了判定部29は、対象関数(F)の微分係数に関する収束判定処理を実行する。∂F(Q, Y(n,k)(P))/∂pが収束条件を満たしていると判定された場合、ステップS2cが終了する。この場合、収束条件を満たしていると判定された∂F(Q, Y(n,k)(P))/∂pが∂F(Q, XANS(P))/∂pの数値解である。∂F(Q, Y(n,k)(P))/∂pが収束条件を満たしていないと判定された場合、再度ステップS201が実行される。
【0093】
ステップS205において∂F(Q, Y(n,k)(P))/∂pが収束しているかを終了判定部29が判定する方法は、目的に応じて適宜定められてよい。例えば、g(k,a)=∂F(Q, Y(n,k)(P))/∂pとして、(Σ(g(k,a)-g(k-1,a)0.5<Cth2が満たされている場合に、∂F(Q, Y(n,k)(P))/∂pが収束していると判定され、その他の場合に、∂F(Q, Y(n,k)(P))/∂pが収束していないと判定される。
【0094】
本実施形態に係る情報処理装置及び情報処理方法によっても対象関数(F)の各パラメータ(p)に関する微分係数を求めるための計算において、自動微分を用いることによって微分計算の精度を高く保ちつつ、計算コストを低減することができる。
【0095】
〔実施形態4〕
続いて、本発明の他の実施形態である実施形態4について、詳細に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0096】
本実施形態に係る情報処理装置は、上述した実施形態1に係る情報処理装置1が備える終了判定部28に代えて、終了判定部29を備えている。また、本実施形態に係る情報処理装置の記憶部3は、実施形態1における反復回数mの代わりに閾値Cth2を記憶している。本実施形態に係る情報処理装置の他の構成は、上述した実施形態1に係る情報処理装置1と同様である。
【0097】
(終了判定部29)
終了判定部29は、対象の処理が収束条件を満たしているかを判定する。終了判定部29による処理の詳細については後述する。
【0098】
<本実施形態に係る情報処理装置による処理の流れ>
以下では、本実施形態に係る情報処理装置による処理の流れについて説明する。本実施形態に係る情報処理装置は、概要としては、実施形態1に係る情報処理装置1と同様に、
・収束解計算ステップ(ステップS1、第1の処理とも呼ぶ)
・微分係数計算ステップ(ステップS2d)
を実行する。
【0099】
ステップS2dは後述のようにステップS211、ステップS213、ステップS214、およびステップS205を有する。S211およびステップS213は第2の処理とも呼ばれる。ステップS214、およびステップS205は第3の処理に含まれる処理の一例である。
【0100】
(ステップS1)
本実施形態に係るステップS1については、実施形態1に係る情報処理装置1が実行するステップS1と同様であるので説明を省略する。
【0101】
(ステップS2d)
ステップS1の終了後、ステップS2dが行われる。本実施形態に係るステップS2dは、一例として、以下に説明するステップS211、ステップS213、ステップS214、およびステップS205を有する。
【0102】
(ステップS211)
ステップS211において、状態更新部22は、Xn+k=φ(P,Xn+k-1)により、Xn+kを求める。ステップS211において、微分値計算部26の計算過程記録部253は、ステップS211において状態更新部22が行う計算に関して、リバースモードの自動微分を行うのに必要な情報を計算過程情報CPに追加する。
【0103】
(ステップS213)
続いて、ステップS213では、関数値計算部24は関数Fの値F(Q,Xn+k)を計算する。ステップS213において、微分値計算部26の計算過程記録部253は、ステップS213において関数値計算部24が行う計算に関して、リバースモードの自動微分を行うのに必要な情報を計算過程情報CPに追加する。
【0104】
(ステップS214)
続いて、ステップS214において、微分値計算部26の逆伝搬計算部252は、記憶部3に記録されている計算過程情報CPに基づいて、逆伝搬の計算を行う。これにより∂F(Q, Y(n,k)(P))/∂pが得られる。逆伝搬計算部252は、例えば、ステップS214を行う毎に、Xから出発して反復計算によりXn+kを求めその後F(Q,Xn+k)を求める、という計算の全体に対応する逆伝搬の計算を行う。
【0105】
(ステップS205)
続いて、ステップS205において、終了判定部29は、∂F(Q,Y(n,k)(P))/∂pが収束条件を満たしているかを判定する。換言すれば、終了判定部29は、対象関数(F)の微分係数に関する収束判定処理を実行する。∂F(Q,Y(n,k)(P))/∂pが収束条件を満たしていると判定された場合、ステップS2dが終了する。この場合、収束条件を満たしていると判定された∂F(Q,Y(n,k)(P))/∂pが∂F(Q,XANS(P))/∂pの数値解である。∂F(Q,Y(n,k)(P))/∂pが収束条件を満たしていないと判定された場合、再度ステップS211が実行される。ステップS205において、∂F(Q,Y(n,k)(P))/∂pが収束条件を満たしているかを終了判定部29が判定する方法は、例えば実施の形態3で説明された方法と同様である。
【0106】
本実施形態に係る情報処理装置及び情報処理方法によっても対象関数(F)の各パラメータ(p)に関する微分係数を求めるための計算において、自動微分を用いることによって微分計算の精度を高く保ちつつ、計算コストを低減することができる。
【0107】
また、上述したように前記第3の処理は、リバースモードの自動微分を用いて、対象関数(F)の微分係数を計算する処理を含んでいる。このため、計算コストをより好適に低減することができる。
【0108】
〔実施形態5〕
続いて、本発明の他の実施形態である実施形態5について、詳細に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0109】
本実施形態に係る情報処理装置は、上述した実施形態2に係る情報処理装置と同様である。
【0110】
<本実施形態に係る情報処理装置による処理の流れ>
以下では、本実施形態に係る情報処理装置による処理の流れについて説明する。本実施形態に係る情報処理装置は、概要としては、実施形態2に係る情報処理装置2と同様に、
・収束解計算ステップ(ステップS1とも呼ぶ)
・微分係数計算ステップ(ステップS2eとも呼ぶ)
を実行する。
【0111】
(ステップS1)
本実施形態に係るステップS1については、実施形態1に係る情報処理装置1が実行するステップS1と同様であるので説明を省略する。
【0112】
(ステップS2e)
ステップS1の終了後、ステップS2eが行われる。本実施形態に係るステップS2eは、一例として、以下に説明するステップS201e、ステップS202、およびステップS203を有する。
【0113】
(ステップS201e)
ステップS201eにおいて、状態更新部22は、Xn-m+k=φ(P,Xn-m+k-1)により、Xn-m+kを求める。ここでkはステップS201eが何度目に実行されているかに対応する。例えば、最初にステップS201eが実行される場合には、状態更新部22は、Xn-m+1=φ(P,Xn-m)により、Xn-m+1を求める。但し、Xn-mは、ステップS1で得られたXn-mであり、i=n-mの場合のXである。また、mは、記憶部3に格納されている反復回数mである。
【0114】
ステップS1が終わるまでnの値はわからず、n-mの値もわからない。そのため、例えば、ステップS1において、ステップS12を実行する毎に得られる各Xが、計算過程情報CPに追加され、ステップS201eでは計算過程情報CPに格納されているXn-mが用いられる。もしくは、ステップS2eの実行前に、ステップS1を最初から途中まで再実行し、Xn-mを再度計算してもよい。この場合、記憶部3は各Xを記憶しなくてもよい。
【0115】
ステップS201eにおいて、微分値計算部25の順伝搬計算部251は、ステップS201eにおいて状態更新部22が行う計算に対応する、微分の値の順伝搬の計算を行う。
【0116】
(ステップS202)
続いて、ステップS202において、終了判定部28は、ステップS201eがあらかじめ定められた回数実行されたかを判定する。ステップS201eがあらかじめ定められた回数実行された場合、ステップS203が実行される。ステップS201eがあらかじめ定められた回数実行されてはいない場合、再度ステップS201eが実行される。ステップS201eが実行されるあらかじめ定められた回数をmとすると、ステップS201eがm回実行されることで再度Xが得られる。
【0117】
(ステップS203)
続いて、ステップS203では、関数値計算部24は関数Fの値F(Q,Xn)を計算する。ステップS203において、微分値計算部25の順伝搬計算部251は、ステップS203において関数値計算部24が行う計算に対応する、微分の値の順伝搬の計算を行う。
【0118】
以上により、Pに含まれる各pに対し、Fのpに関する微分係数∂F(Q,XANS(P))/∂pの数値的な値として、∂F(Q,Y(n-m,m)(P))/∂pが得られる。なお、ステップS2eにおける反復回数mは、例えば、実施の形態1の場合と同様に定められる。また、反復回数mは、m<nを満たすように定められる。これにより、比較例の場合と比べ、自動微分により∂F(Q,Y(n-m,m)(P))/∂pを求めるためのコストを低減できる。ステップS1で行われた処理のうち、Xから出発しφを繰り返し適用しXn-mを求めるまでの処理は第1の処理とも呼ばれる。ステップS1で行われた処理のうちXn-mからXを求めるまでの処理、または、ステップS201eの処理のうちの一部は第2の処理とも呼ばれる。ステップS201eにおいて順伝搬計算部251が行う処理は第3の処理に含まれる処理の一例である。
【0119】
本実施形態に係る情報処理装置及び情報処理方法によっても対象関数(F)の各パラメータ(p)に関する微分係数を求めるための計算において、自動微分を用いることによって微分計算の精度を高く保ちつつ、計算コストを低減することができる。
【0120】
〔実施形態6〕
続いて、本発明の他の実施形態である実施形態6について、詳細に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0121】
本実施形態に係る情報処理装置は、上述した実施形態1に係る情報処理装置1と同様である。
【0122】
<本実施形態に係る情報処理装置による処理の流れ>
以下では、本実施形態に係る情報処理装置による処理の流れについて説明する。本実施形態に係る情報処理装置は、概要としては、実施形態1に係る情報処理装置1と同様に、
・収束解計算ステップ(ステップS3とも呼ぶ)
・微分係数計算ステップ(ステップS4とも呼ぶ)
を実行する。
【0123】
(ステップS3)
ステップS3は、一例として、図7に示すようにステップS31、ステップS32、およびステップS33を有する。
【0124】
(ステップS31)
ステップS31において、初期値決定部21は状態変数Xの初期値Xを定める。
【0125】
(ステップS32)
次に、ステップS32において、状態更新部22は状態変数Xを更新する。つまり、X=φ(P,Xi-1)により、新しい状態変数Xの値であるXを求める。ここでiはステップS32を何度目に実行しているかに対応する。例えば、最初にステップS32が実行される場合、状態更新部22はX=φ(P,X)によりXを求める。
【0126】
ステップS32において、計算過程記録部253は、ステップS32において状態更新部22が行う計算に関して、リバースモードの自動微分を行うのに必要な情報を記録する。リバースモードの自動微分を行うのに必要な情報は、例えば計算グラフの形で記録されてもよいし、各Xがチェックポイントの情報として記録され、後述するステップS414において逆伝搬の計算を行う際に、必要に応じてXを用いて計算グラフが構成されてもよい。
【0127】
(ステップS33)
次に、ステップS33において、終了判定部23は、ステップS32の計算の反復を終了するかを判定する。ステップS33において終了判定部23がステップS32の計算の反復を終了するかを判定する方法は、実施の形態1の場合と同様であってよい。
【0128】
(ステップS4)
本実施形態に係るステップS4は、一例として、以下に説明するステップS413およびステップS414を有する。
【0129】
(ステップS413)
ステップS413では、関数値計算部24は関数Fの値F(Q,Xn)を計算する。ステップS413において、微分値計算部26の計算過程記録部253は、ステップS213において関数値計算部24が行う計算に関して、リバースモードの自動微分を行うのに必要な情報を計算過程情報CPに追加する。
【0130】
(ステップS414)
続いて、ステップS414において、微分値計算部26の逆伝搬計算部252は、記憶部3に記録されている計算過程情報CPに基づいて、n-m+1回目からn回目までのステップS32の計算およびステップS413の計算に対応する逆伝搬の計算を行う。これにより∂F(Q,Y(n-m,m)(P))/∂pが得られる。
【0131】
ステップS4におけるmは、例えば、実施の形態5のステップS2eにおけるmと同様に定められる。また、反復回数mは、m<nを満たすように定められる。これにより、比較例の場合と比べ、自動微分により∂F(Q,Y(n-m,m)(P))/∂pを求めるためのコストを低減できる。また、リバースモードの自動微分を用いることにより、pの数が多い場合にも、コストを抑えて各pに対し∂F(Q,Y(n-m,m)(P))/∂pを求めることができる。ステップS3で行われた処理のうち、Xから出発しφを繰り返し適用しXn-mを求めるまでの処理は第1の処理とも呼ばれる。ステップS3で行われた処理のうちXn-mからXを求めるまでの処理は第2の処理とも呼ばれる。ステップS413を第2の処理に含めてもよい。ステップS414は第3の処理とも呼ばれる。
【0132】
本実施形態に係る情報処理装置及び情報処理方法によっても対象関数(F)の各パラメータ(p)に関する微分係数を求めるための計算において、自動微分を用いることによって微分計算の精度を高く保ちつつ、計算コストを低減することができる。
【0133】
また、上述したように前記第3の処理は、リバースモードの自動微分を用いて、対象関数(F)の微分係数を計算する処理を含んでいる。このため、計算コストをより好適に低減することができる。
【0134】
〔実施形態7〕
続いて、本発明の他の実施形態である実施形態7について、詳細に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0135】
本実施形態に係る情報処理装置は、実施形態2の情報処理装置が備える各構成に加え、終了判定部29を更に備えている。また、本実施形態に係る情報処理装置の記憶部3は、反復回数mの代わりに閾値Cth2を記憶している。本実施形態に係る情報処理装置の他の構成は実施形態2に係る情報処理装置と同様である。
【0136】
<本実施形態に係る情報処理装置による処理の流れ>
以下では、本実施形態に係る情報処理装置による処理の流れについて説明する。本実施形態に係る情報処理装置は、概要としては、実施形態2に係る情報処理装置と同様に、
・収束解計算ステップ(ステップS1とも呼ぶ)
・微分係数計算ステップ(ステップS2gとも呼ぶ)
を実行する。
【0137】
(ステップS1)
本実施形態に係るステップS1については、実施形態1に係る情報処理装置1が実行するステップS1と同様であるので説明を省略する。
【0138】
(ステップS2g)
ステップS1の終了後、ステップS2gが行われる。本実施形態に係るステップS2gは、以下に説明するステップS200g、ステップS201g、ステップS202、ステップS203、およびステップS205gを有する。
【0139】
(ステップS200g)
ステップS200gにおいて、微分係数の計算のための初期状態が設定される。ステップS200gがk回目に実行される場合、Xn-kが微分係数の計算のための初期状態として設定される。
【0140】
(ステップS201g)
ステップS201gにおいて、状態更新部22はXn-k+s=φ(P,Xn-k+s-1)により、状態変数Xの新しい値であるXn-k+sを求める。ここで、sは、最後に実行されたステップS200gの後にステップS201gが何回実行されたかに対応する。
【0141】
ステップS201gにおいて、順伝搬計算部251は、ステップS201gにおいて状態更新部22が行う計算に対応する、微分の値の順伝搬の計算を行う。
【0142】
(ステップS202)
続いて、ステップS202において、終了判定部28は、ステップS200gの後にステップS201gがk回実行されたかを判定する。ステップS200gの後にステップS201gがk回実行された場合、ステップS203が実行される。ステップS201gがステップS200gの後にk回実行されてはいない場合、再度ステップS201gが実行される。ステップS200gの後にステップS201gがk回実行されることにより、Xn-kからXが再度求められ、対応する順伝搬の計算が行われる。
【0143】
(ステップS203)
続いて、ステップS203では、関数値計算部24は関数Fの値F(Q,Xn)を計算する。ステップS203において、順伝搬計算部251は、ステップS203において関数値計算部24が行う計算に対応する、微分の値の順伝搬の計算を行う。これにより、Fの各pに関する微分係数∂F(Q,XANS(P))/∂pの数値的な値の候補として、∂F(Q,Y(n-k,k)(P))/∂pが得られる。
【0144】
(ステップS205g)
次に、ステップS205gにおいて、終了判定部29は、∂F(Q,Y(n-k,k)(P))/∂pが収束条件を満たしているかを判定する。換言すれば、終了判定部29は、対象関数(F)の微分に関する収束判定処理を実行する。∂F(Q,Y(n-k,k)(P))/∂pが収束条件を満たしていると判定された場合、ステップS2gが終了する。この場合、収束条件を満たしていると判定された∂F(Q,Y(n-k,k)(P))/∂pが∂F(Q,XANS(P))/∂pの数値解である。∂F(Q,Y(n-k,k)(P))/∂pが収束条件を満たしていないと判定された場合、再度ステップS200gが実行される。
【0145】
ステップS205gにおいて∂F(Q,Y(n-k,k)(P))/∂pが収束条件を満たしているかを判定する方法は、目的に応じて適宜定められてよい。例えば、g(n-k,a)=∂F(Q,Y(n-k,k)(P))/∂pとして、(Σ(g(n-k,k)-g(n-k+1,k+1)0.5<Cth2が満たされている場合に、∂F(Q,Y(n-k,k)(P))/∂pが収束していると判定され、その他の場合に、∂F(Q,Y(n-k,k)(P))/∂pが収束していないと判定される。
【0146】
ステップS205gにおいて∂F(Q, Y(n-k,k)(P))/∂pが収束条件を満たしていると判定された際のkをmとおく。mはnと比べ小さいことが期待される。mがnと比べ小さい場合、比較例の場合と比べ、計算コストを抑えて、∂F(Q,XANS(P))/∂pの数値解を求めることができる。ステップS1で行われた処理のうち、Xから出発しφを繰り返し適用しXn-mを求めるまでの処理は第1の処理とも呼ばれる。ステップS1で行われた処理のうちXn-mからXを求めるまでの処理、または、ステップS2gの処理のうちの一部は第2の処理とも呼ばれる。ステップS2gにおいて順伝搬計算部251が行う処理は第3の処理に含まれる処理の一例である。
【0147】
本実施形態に係る情報処理装置及び情報処理方法によっても対象関数(F)の各パラメータ(p)に関する微分係数を求めるための計算において、自動微分を用いることによって微分計算の精度を高く保ちつつ、計算コストを低減することができる。
【0148】
〔実施形態8〕
続いて、本発明の他の実施形態である実施形態8について、詳細に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0149】
図8は本実施の形態の情報処理装置1hの構成を示すブロック図である。情報処理装置1hの構成は実施の形態4に係る情報処理装置の構成と同様である。
【0150】
<本実施形態に係る情報処理装置による処理の流れ>
以下では、本実施形態に係る情報処理装置による処理の流れについて説明する。図9は本実施の形態の情報処理方法を示すフローチャートである。本実施形態に係る情報処理装置は、概要としては、図9に示すように、実施形態1に係る情報処理装置と同様に、
・収束解計算ステップ(ステップS3とも呼ぶ)
・微分係数計算ステップ(ステップS4hとも呼ぶ)
を実行する。
【0151】
(ステップS3)
ステップS3は実施の形態6のステップS3と同様であるためここでは説明を省略する。
【0152】
(ステップS4h)
ステップS4hは、図10に示されるように、ステップS413、ステップS414h、およびステップS415を有する。
【0153】
(ステップS413)
ステップS413は実施の形態6のステップS413と同様である。
【0154】
(ステップS414h)
続いて、ステップS414hにおいて、逆伝搬計算部252は、微分の値に関する逆伝搬の計算を行う。当該逆伝搬の計算は、ステップS3およびステップS413において計算過程情報CPに追加された計算過程の情報に基づいて、行われる。
【0155】
ステップS414hがk回目に実行される場合、Xn-kから出発してφをk回作用させることでXnを求め、F(Q,Xn)を計算する、という計算に関する逆伝搬の計算を行うことで、∂F(Q,XANS(P))/∂pの数値的な値の候補として、∂F(Q,Y(n-k,k)(P))/∂pが得られる。なお、Xn-kから出発してφをk回作用させることでXnを求めるという計算はステップS3で行われた計算の一部である。
【0156】
ステップS414hがk回目に実行される場合、ステップS414fがk-1回目に実行された際の計算結果を利用することができ、例えば、ステップS414fがk-1回目に実行された際の計算から追加的な計算が必要な部分だけ計算を行えばよい。
【0157】
(ステップS415)
続いて、ステップS415において、終了判定部29は、∂F(Q,Y(n-k,k)(P))/∂pが収束条件を満たしているかを判定する。換言すれば、終了判定部29は、対象関数(F)の微分に関する収束判定処理を実行する。ステップS415において収束条件を満たしているかを判定する方法は例えば実施の形態7のステップS205gと同様である。
【0158】
ステップS415において∂F(Q,Y(n-k,k)(P))/∂pが収束条件を満たしていると判定された場合、ステップS4hは終了する。ステップS415において∂F(Q,Y(n-k,k)(P))/∂pが収束条件を満たしていないと判定された場合、再度S414hが実行される。
【0159】
ステップS415において∂F(Q,Y(n-k,k)(P))/∂pが収束条件を満たしていると判定された際のkをmとおく。mはnと比べ小さいことが期待される。mがnと比べ小さい場合、比較例の場合と比べ、計算コストを抑えて、∂F(Q,XANS(P))/∂pの数値解を求めることができる。ステップS3で行われた処理のうち、Xから出発しφを繰り返し適用しXn-mを求めるまでの処理は第1の処理とも呼ばれる。ステップS3で行われた処理のうちXn-mからXを求めるまでの処理は第2の処理とも呼ばれる。ステップS413を第2の処理に含めてもよい。ステップS414hおよびステップS415は第3の処理とも呼ばれる。このように、本実施の形態において、第3の処理は、第2の処理を含む処理に対する自動微分の計算処理および対象関数Fの微分係数に関する収束判定処理を含む。
【0160】
本実施形態に係る情報処理装置及び情報処理方法によっても対象関数(F)の各パラメータ(p)に関する微分係数を求めるための計算において、自動微分を用いることによって微分計算の精度を高く保ちつつ、計算コストを低減することができる。
【0161】
また、上述したように前記第3の処理は、リバースモードの自動微分を用いて、対象関数(F)の微分係数を計算する処理を含んでいる。このため、計算コストをより好適に低減することができる。
〔実施形態9〕
実施の形態1から実施の形態8では、X=φ(P,Xi-1)によりXi-1からXを求めた。収束性を加速または改善する等の目的で、公知の方法が採用されてよく、例えば新しい状態変数を求めるために、ミキシングが用いられてもよい。
【0162】
例えば、シンプルミキシングが用いられる場合は以下のとおりである。X’=φ(P,Xi-1)とし、X’に含まれる各状態変数をx’とした場合に、あらかじめ定められたαを用いて、各bに関し、x(i,b)=αx’(i,b)+(1-α)x(i-1,b)により、Xに含まれる各状態変数x(i,b)が定められる。ここで、αは例えば0以上1以下の重み係数である。換言すれば、各実施形態に記載の情報処理方法において、
・状態変数Xi-1から、X’=φ(P,Xi-1)によって新たな状態変数を導出し、
・当該新たな状態変数X’と、(元の)状態変数Xi-1との平均又は加重平均によって状態変数Xを導出してもよい。なお、本実施形態において、シンプルミキシングではなく、アンダーソンミキシング、ブロイデンミキシング等が用いられてもよい。
【0163】
〔実施形態10〕
実施の形態1から9では、情報処理装置はpに関するFの一次微分の値を求めたが、2次以上の微分の値をさらに求めてもよい。換言すれば、各実施形態において説明した第2の反復処理は、自動微分を用いて対象関数(F)に関する2階以上の微分の値を計算する処理を含んでいてもよい。例えば、各a0および各a1に関して∂F/∂pa0∂pa1を求めてもよい。ここで、a0およびa1はPに含まれるパラメータを列挙するインデックスである。
【0164】
〔実施形態11〕
実施の形態1から9では、情報処理装置はpに関するFの微分の値を求めたが
本実施の形態では、実施の形態1から10の情報処理方法の適用対象について説明する。
【0165】
<適用対象1>
実施の形態1から10の情報処理方法は、例えば、第一原理電子状態計算に適用される。第一原理電子状態計算においては、以下に示される式で表されるハミルトニアンに基づき、電子状態を計算する。
【数1】
上記(式1)において、Hは第一原理ハミルトニアン、Ψは波動関数、Tは運動エネルギー、Vは原子と電子の間のポテンシャル、Uは電子間相互作用、Eはエネルギーを表す。r、rは電子位置である。ハミルトニアンの原子位置への依存性はV(r)の関数形に含まれている。
【0166】
第一原理電子状態計算においては、例えば、ハートリーフォック近似法または密度汎関数法を用いて、電子状態の更新を反復的に行い、基底状態または有限温度における電子状態を計算する。この場合、状態変数Xは、例えば、電子状態を指定する変数の集合である。状態変数Xは、原子位置を指定する変数を含んでいてもよい。φは、ハートリーフォック近似法または密度藩関数法において基底状態または有限温度における電子状態を求めるために電子状態を更新する関数である。
【0167】
(式1)に示される式には外場に対応する項は示されていないが、例えば外場として磁場、電場、電磁波、音波、および圧力のいずれかまたは複数が印加されていてもよい。pは例えば、当該印加される外場を記述するパラメータである。pは例えば温度であってもよい。また、原子位置が状態変数Xではなくパラメータとして位置づけられていてもよい。
【0168】
関数Fは、例えば、超伝導転移温度、超伝導ギャップ、熱電効率、太陽光発電効率、及び外場(例えば、磁場、電場、電磁波、音波、圧力)に対する線形または非線形の応答(例えば、ホール係数)のいずれかに対応する。記憶部3には、電子状態に基づいて関数Fの値を計算するための式が格納されている。
【0169】
<適用対象2>
上記(式1)に示される第一原理ハミルトニアンの代わりに、例えば以下に示されるタイトバインディングモデルのハミルトニアンを考えてもよい。
【数2】
上記(式2)に示される式の右辺において、第1項は電子のホッピング、第2項は電子間相互作用、第3項はフォノン分散、第4項は電子フォノン相互作用を表す。(式2)に示される式は、右辺第2項以外がゼロの場合の一例として、量子スピン系を記述している場合を含む。
【0170】
(式2)に示されるハミルトニアンにおける基底状態または有限温度の状態を計算するために、例えば、ハートリー近似またはハートリーフォック近似法を用いて、電子状態の更新を反復的に行い、基底状態または有限温度における電子状態を計算する。この場合、状態変数Xは、例えば、電子状態を指定する変数の集合である。φは、ハートリー近似またはハートリーフォック近似法に基づいて電子状態を更新する関数である。
【0171】
(式2)に示されるハミルトニアンにおける基底状態または有限温度の状態を計算するために、例えば、ランチョス法を用いて、電子状態の更新を反復的に行い、基底状態または有限温度における電子状態を計算する。この場合、状態変数Xは、例えば、電子状態を指定する変数の集合である。φは例えば、ランチョス法に基づいて電子状態を更新する関数である。
【0172】
例えば、(式2)に示される式のt、V、ω、およびg(添え字は省略した)のそれぞれまたはこれらのうちの一部が、pに対応する。関数Fの例は<適用対象1>で述べたものと同様である。
【0173】
ランチョス法に基づいて有限温度の計算をする場合、ある初期条件から出発して反復計算によりXを複数求める、ということを複数の初期条件に対し行い、各Xに基づいて計算した物理量の平均を取ることで、考察対象の物理系の物理量の期待値が計算される。関数Fは、このように、それぞれが反復計算により求められる複数のXに基づいて計算されるものであってもよい。
【0174】
<適用対象3>
以下の式は古典スピン間の相互作用を示すハミルトニアンを示す式である。
【数3】
上記(式3)の右辺において、S、Sは古典スピンを表すベクトルである。各Sを例えば極座標で指定する変数がxに対応する。例えば、各Sが与えられている場合に、Σj≠iijを最小化するように新たに各Sを定める、という操作がφに対応する。例えば、Jijのそれぞれがpに対応する。(式3)に示される項に加え外部磁場を考慮してもよく、pは例えば外部磁場を表すパラメータであってもよい。Fは例えば磁化または磁気感受率に対応する。
【0175】
<適用対象4>
φは例えば、互いに相互作用する複数のシステムを合わせて解析する弱連成解析において自己無撞着方程式を解くためのものであってもよい。また、当該弱連成解析において対象とする複数のシステムは、互いに物理的に異なる対象を表すシステムであってもよいし、同じ物理的対象の異なる性質を表すものであってもよい。
【0176】
当該弱連成解析は例えば、構造物の解析と流体の解析とを合わせて解析するものである。与えられた構造物の状態のもとで流体の解析を行って新しい流体の状態を求め、当該新しい流体の状態の下で新しい構造物の状態を求める。このように新しい流体の状態と新しい構造物の状態を求める関数がφに対応する。これを繰り返すことで、互いに相互作用する構造物と流体の状態が求まる。パラメータpは例えば構造物の性質、例えば強度、を表すパラメータである。状態変数xは構造物の状態および流体の状態を表す変数である。関数Fは例えば構造物の変位量に対応する。
【0177】
〔実施形態12〕
続いて、本発明の他の実施形態である実施形態12について、詳細に説明する。なお、説明の便宜上、上記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を繰り返さない。
【0178】
図11は本実施の形態の情報処理装置100を示す図である。図11に示されるように、情報処理装置100は、情報処理装置1、制御部5、記憶部6、および入出力部7を有する。
【0179】
(制御部5)
制御部5は、初期値設定部51、パラメータ更新部52、および終了判定部53を有する。ここで、初期値設定部51は、一例として、初期値設定部51はパラメータPの初期値を設定する。パラメータ更新部52は、一例として、パラメータPを更新する。終了判定部53は、一例として、パラメータPの更新を終了するかどうかを判定する。制御部5が備える各部による具体的な処理については後述する。
【0180】
(記憶部6、入出力部7)
記憶部6には、一例として、情報処理装置1の記憶部3と同様のデータ及び情報が格納されている。入出力部7は、一例として、情報処理装置1の入出力部4と同様の構成である。
【0181】
なお、情報処理装置100は、情報処理装置1の代わりに、実施の形態2~10のいずれかで説明された情報処理装置を備えていてもよい。
【0182】
<本実施形態に係る情報処理装置による処理の流れ>
実施の形態1から11では、各pに関する関数Fの微分の値を計算した。本実施の形態では、各pに関する関数Fの微分の値を用いて、パラメータPの最適化を行う。例えば、関数Fを極大化(または最大化)もしくは極小化(または最小化)するようなパラメータPを求める。図12は本実施の形態の情報処理方法を示すフローチャートである。図12に示すように、本実施形態に係る情報処理方法はステップS5~S8を有している。
【0183】
(ステップS5)
まず、ステップS5において、初期値設定部51はパラメータPの初期値Pを設定する。パラメータPは例えばランダムに与えられてもよいし、入出力部を介して外部から入力されてもよい。
【0184】
(ステップS6)
次に、ステップS6において、情報処理装置1は各pに関する関数Fの微分の値を計算する。
【0185】
(ステップS7)
次に、ステップS7において、パラメータ更新部52は、ステップS6において計算された各pに関する関数Fの微分の値に基づいて、パラメータPを更新する。パラメータ更新部52は例えば最急降下法により、パラメータPを更新する。ステップS6において情報処理装置1が各pに関する関数Fのヘシアンを計算し、ステップS7においてパラメータ更新部52がニュートン法によりパラメータPを更新してもよい。i回目にステップS7を実行する際に得られるパラメータPの値を以下Pと書く。また、Pに含まれるパラメータの値をp(i,a)と書く。なお、ステップS7では、準ニュートン法または共役勾配法が用いられてもよい。
【0186】
(ステップS8)
次に、ステップS8において、終了判定部53はパラメータPの更新を終了するかどうかを判定する。パラメータPの更新を終了するかどうかを判定する条件は、例えば、あらかじめ定められた回数ステップS7を行ったか、もしくはパラメータPが収束条件を満たしているかどうか、に関する条件である。例えば、(Σ(p(i,a)-p(i-1,a)0.5<Cth3(ここでCth3は閾値)が満たされている場合に、パラメータPが収束条件を満たしていると判定され、その他の場合にパラメータPが収束条件を満たしていないと判定される。パラメータPが収束条件を満たしている場合、処理が終了し、そうでない場合、ステップS6に戻る。ステップS8では、パラメータPが収束条件を満たしているかどうかを判定する代わりに、例えば、ステップS6で得られた関数Fの微分の値のノルムがあらかじめ定められた閾値より小さいかどうかを判定してもよい。
【0187】
以上のように、本実施の形態の情報処理装置は、前記対象関数の前記微分係数を用いて前記1又は複数のパラメータ(p)を更新するパラメータ更新部52を備える。そして、本実施の形態の情報処理装置は、当該パラメータ更新部52及び終了判定部53による処理により、前記対象関数Fの値を極大化(または最大化)または極小化(最小化)するよう前記1又は複数のパラメータを最適化する。本実施の形態の情報処理装置は、例えば、前記対象関数Fの値が目的の値になるように前記1又は複数のパラメータを最適化してもよい。また、本実施の形態の情報処理装置は、例えば、前記対象関数の前記微分係数を用いて、前記対象関数とは別の関数Gの値を極大化(または最大化)または極小化(または最小化)するように、もしくは関数Gの値が目的の値となるように、前記1又は複数のパラメータを最適化してもよい。関数Gの微分の値は例えば、実施の形態1から11のいずれかで説明した方法で計算された関数Fの微分の値を用いて計算される。関数Gは例えば、関数Fとは別の関数Hと関数Fとの和であり、その場合、関数Gの微分の値は関数Fの微分の値と関数Hの微分の値の和として計算される。関数Hの微分は実施の形態1から11のいずれかで説明した方法で計算されてもよいし、別の方法で計算されてもよい。
【0188】
〔ソフトウェアによる実現例〕
各実施形態に係る情報処理装置(以下、「装置」と呼ぶ)の機能は、当該装置としてコンピュータを機能させるためのプログラムであって、当該装置の各制御ブロック(特に制御部に含まれる各部)としてコンピュータを機能させるためのプログラムにより実現することができる。
【0189】
この場合、上記装置は、上記プログラムを実行するためのハードウェアとして、少なくとも1つの制御装置(例えばプロセッサ)と少なくとも1つの記憶装置(例えばメモリ)を有するコンピュータを備えている。この制御装置と記憶装置により上記プログラムを実行することにより、上記各実施形態で説明した各機能が実現される。
【0190】
上記プログラムは、一時的ではなく、コンピュータ読み取り可能な、1または複数の記録媒体に記録されていてもよい。この記録媒体は、上記装置が備えていてもよいし、備えていなくてもよい。後者の場合、上記プログラムは、有線または無線の任意の伝送媒体を介して上記装置に供給されてもよい。
【0191】
また、上記各制御ブロックの機能の一部または全部は、論理回路により実現することも可能である。例えば、上記各制御ブロックとして機能する論理回路が形成された集積回路も本発明の範疇に含まれる。この他にも、例えば量子コンピュータにより上記各制御ブロックの機能を実現することも可能である。
【0192】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【符号の説明】
【0193】
1,1h,100 ・・・情報処理装置
2,2d,5 ・・・制御部
21 ・・・初期状態決定部(取得部)
22 ・・・状態更新部
23 ・・・終了判定部
24 ・・・関数値計算部
26 ・・・微分値計算部(計算部)
28 ・・・終了判定部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【手続補正書】
【提出日】2024-06-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得部と、
前記対象関数の微分係数を計算する制御部と、
を備え、
前記制御部による前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記制御部による前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記制御部による前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれており、
前記対象関数は、
前記1又は複数のパラメータの部分集合と、
前記1又は複数のパラメータを引数とする1又は複数の状態変数と
を引数とし、
前記第1の反復処理は、
前記1又は複数の状態変数の更新処理を含み、
前記制御部は前記第1の反復処理により前記1又は複数のパラメータを引数とする前記1又は複数の状態変数の数値解を求め、
前記第3の処理は、
前記対象関数の前記1又は複数のパラメータに関する微分係数であって、前記対象関数が前記1又は複数の状態変数を介して前記1又は複数のパラメータに依存する寄与を含む微分係数を、自動微分を用いて計算する処理を含む
情報処理装置。
【請求項2】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得部と、
前記対象関数の微分係数を計算する制御部と、
を備え、
前記制御部による前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記制御部による前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記制御部による前記微分係数の計算処理には、第3の処理が含まれており、
前記第3の処理は、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理であって、前記第1の反復処理において複数回反復される処理のうちの1回または複数回を含みかつ少なくとも1回を含まない処理に対して適用される自動微分を用いて前記対象関数の微分係数を計算する処理を含む
情報処理装置。
【請求項3】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得部と、
前記対象関数の微分係数を計算する制御部と、
を備え、
前記制御部による前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記制御部による前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記制御部による前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれており、
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新するパラメータ更新部をさらに備え、
前記制御部は、第2の反復処理を行い、
前記第2の反復処理においては、
前記第1の反復処理と、
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新する処理と
を含む処理が反復される
情報処理装置。
【請求項4】
前記対象関数は、
前記1又は複数のパラメータの部分集合と、
前記1又は複数のパラメータを引数とする1又は複数の状態変数と
を引数とし、
前記第1の反復処理は、
前記1又は複数の状態変数の更新処理を含み、
前記制御部は前記第1の反復処理により前記1又は複数のパラメータを引数とする前記1又は複数の状態変数の数値解を求め、
前記第3の処理は、
前記対象関数の前記1又は複数のパラメータに関する微分係数であって、前記対象関数が前記1又は複数の状態変数を介して前記1又は複数のパラメータに依存する寄与を含む微分係数を、自動微分を用いて計算する処理を含み、
前記自動微分は、前記第1の反復処理において複数回反復される処理のうちの1回または複数回を含みかつ少なくとも1回を含まない処理に対して適用される
請求項3に記載の情報処理装置。
【請求項5】
前記対象関数はハミルトニアンにより記述される系に関する対象関数である
請求項1から4の何れか1項に記載の情報処理装置。
【請求項6】
前記第3の処理は、
リバースモードの自動微分を用いて、前記対象関数の微分係数を計算する処理を含む
請求項1から4の何れか1項に記載の情報処理装置。
【請求項7】
前記第1の処理、前記第2の処理、および前記第3の処理の少なくともいずれかには、
前記1又は複数の状態変数の少なくとも何れかに関する収束判定処理、及び
前記対象関数の微分係数に関する収束判定処理
の少なくとも何れかが含まれる
請求項6に記載の情報処理装置。
【請求項8】
前記第3の処理において、チェックポイントにおいて記録された前記第2の処理の計算過程の情報を用いる
請求項6に記載の情報処理装置。
【請求項9】
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新するパラメータ更新部をさらに備える
請求項1から3の何れか1項に記載の情報処理装置。
【請求項10】
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新するパラメー
タ更新部をさらに備え、
前記制御部は第2の反復処理を行い、
前記第2の反復処理においては、
前記第1の反復処理と、
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新する処理と
を含む処理が反復される、
請求項1または2に記載の情報処理装置。
【請求項11】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得ステップと、
前記対象関数の微分係数を計算する計算ステップと、
を含み、
前記計算ステップによる前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記計算ステップによる前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記計算ステップによる前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれており、
前記対象関数は、
前記1又は複数のパラメータの部分集合と、
前記1又は複数のパラメータを引数とする1又は複数の状態変数と
を引数とし、
前記第1の反復処理は、
前記1又は複数の状態変数の更新処理を含み、
前記計算ステップでは前記第1の反復処理により前記1又は複数のパラメータを引数とする前記1又は複数の状態変数の数値解を求め、
前記第3の処理は、
前記対象関数の前記1又は複数のパラメータに関する微分係数であって、前記対象関数が前記1又は複数の状態変数を介して前記1又は複数のパラメータに依存する寄与を含む微分係数を、自動微分を用いて計算する処理を含む情報処理方法。
【請求項12】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得ステップと、
前記対象関数の微分係数を計算する計算ステップと、
を含み、
前記計算ステップによる前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記計算ステップによる前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記計算ステップにおける前記微分係数の計算処理には、第3の処理が含まれており、
前記第3の処理は、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理であって、前記第1の反復処理において複数回反復される処理のうちの1回または複数回を含みかつ少なくとも1回を含まない処理に対して適用される自動微分を用いて前記対象関数の微分係数を計算する処理を含む情報処理方法。
【請求項13】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得ステップと、
前記対象関数の微分係数を計算する計算ステップと、
を含み、
前記計算ステップによる前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記計算ステップによる前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記計算ステップによる前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれており、
前記計算ステップでは、第2の反復処理を行い、
前記第2の反復処理においては、
前記第1の反復処理と、
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新する処理と
を含む処理が反復される
情報処理方法。
【請求項14】
請求項1から4の何れか1項に記載の情報処理装置としてコンピュータを機能させるためのプログラムであって、前記取得部、及び前記制御部としてコンピュータを機能させるためのプログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0053
【補正方法】変更
【補正の内容】
【0053】
また、上述したように前記第2の処理は、逆伝搬の自動微分を用いて、対象関数(F)の微分係数を計算する処理を含んでいる。このため、計算コストをより好適に低減することができる。
(実施形態1の付記事項)
実施形態1において説明した各処理、及び後述する各実施形態において説明する各処理は、以下に説明する比較例をベースとした処理であると捉えることもできる。図5は当該比較例に係る情報処理方法を示すフローチャートである。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0163
【補正方法】変更
【補正の内容】
【0163】
〔実施形態10〕
実施の形態1から9では、情報処理装置はpに関するFの一次微分の値を求めたが、2次以上の微分の値をさらに求めてもよい。換言すれば、各実施形態において説明した第2の処理は、自動微分を用いて対象関数(F)に関する2階以上の微分の値を計算する処理を含んでいてもよい。例えば、各a0および各a1に関して∂F/∂pa0∂pa1を求めてもよい。ここで、a0およびa1はPに含まれるパラメータを列挙するインデックスである。
【手続補正書】
【提出日】2024-10-03
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得部と、
前記対象関数の微分係数を計算する制御部と、
を備え、
前記制御部による前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記制御部による前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記制御部による前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれており、
前記対象関数は、
前記1又は複数のパラメータの部分集合と、
前記1又は複数のパラメータを引数とする1又は複数の状態変数と
を引数とし、
前記第1の反復処理は、
前記1又は複数の状態変数の更新処理を含み、
前記制御部は前記第1の反復処理により前記1又は複数のパラメータを引数とする前記1又は複数の状態変数の数値解を求め、
前記第3の処理は、
前記対象関数の前記1又は複数のパラメータに関する微分係数であって、前記対象関数が前記1又は複数の状態変数を介して前記1又は複数のパラメータに依存する寄与を含む微分係数を、自動微分を用いて計算する処理を含み、
前記第1の処理は前記第1の反復処理において反復される処理のうちの1回目を含み、
前記第1の反復処理は自己無撞着方程式の解を求める反復処理である
情報処理装置。
【請求項2】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得部と、
前記対象関数の微分係数を計算する制御部と、
を備え、
前記制御部による前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記制御部による前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記制御部による前記微分係数の計算処理には、第3の処理が含まれており、
前記第3の処理は、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理であって、前記第1の反復処理において複数回反復される処理のうちの1回または複数回を含みかつ少なくとも1回を含まない処理に対して適用される自動微分を用いて前記対象関数の微分係数を計算する処理を含み、
前記第1の処理は前記第1の反復処理において反復される処理のうちの1回目を含み、
前記第1の反復処理は自己無撞着方程式の解を求める反復処理である
情報処理装置。
【請求項3】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得部と、
前記対象関数の微分係数を計算する制御部と、
を備え、
前記制御部による前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記制御部による前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記制御部による前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれており、
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新するパラメータ更新部をさらに備え、
前記制御部は、第2の反復処理を行い、
前記第2の反復処理においては、
前記第1の反復処理と、
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新する処理と
を含む処理が反復され
前記第1の処理は前記第1の反復処理において反復される処理のうちの1回目を含み、
前記第1の反復処理は自己無撞着方程式の解を求める反復処理である
情報処理装置。
【請求項4】
前記対象関数は、
前記1又は複数のパラメータの部分集合と、
前記1又は複数のパラメータを引数とする1又は複数の状態変数と
を引数とし、
前記第1の反復処理は、
前記1又は複数の状態変数の更新処理を含み、
前記制御部は前記第1の反復処理により前記1又は複数のパラメータを引数とする前記1又は複数の状態変数の数値解を求め、
前記第3の処理は、
前記対象関数の前記1又は複数のパラメータに関する微分係数であって、前記対象関数が前記1又は複数の状態変数を介して前記1又は複数のパラメータに依存する寄与を含む微分係数を、自動微分を用いて計算する処理を含み、
前記自動微分は、前記第1の反復処理において複数回反復される処理のうちの1回または複数回を含みかつ少なくとも1回を含まない処理に対して適用される
請求項3に記載の情報処理装置。
【請求項5】
前記対象関数はハミルトニアンにより記述される系に関する対象関数である
請求項1から4の何れか1項に記載の情報処理装置。
【請求項6】
前記第3の処理は、
リバースモードの自動微分を用いて、前記対象関数の微分係数を計算する処理を含む
請求項1から4の何れか1項に記載の情報処理装置。
【請求項7】
前記第1の処理、前記第2の処理、および前記第3の処理の少なくともいずれかには、
前記1又は複数の状態変数の少なくとも何れかに関する収束判定処理、及び
前記対象関数の微分係数に関する収束判定処理
の少なくとも何れかが含まれる
請求項6に記載の情報処理装置。
【請求項8】
前記第3の処理において、チェックポイントにおいて記録された前記第2の処理の計算過程の情報を用いる
請求項6に記載の情報処理装置。
【請求項9】
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新するパラメータ更新部をさらに備える
請求項1から3の何れか1項に記載の情報処理装置。
【請求項10】
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新するパラメータ更新部をさらに備え、
前記制御部は第2の反復処理を行い、
前記第2の反復処理においては、
前記第1の反復処理と、
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新する処理とを含む処理が反復される、
請求項1または2に記載の情報処理装置。
【請求項11】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得ステップと、
前記対象関数の微分係数を計算する計算ステップと、
を含み、
前記計算ステップによる前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記計算ステップによる前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記計算ステップによる前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれており、
前記対象関数は、
前記1又は複数のパラメータの部分集合と、
前記1又は複数のパラメータを引数とする1又は複数の状態変数と
を引数とし、
前記第1の反復処理は、
前記1又は複数の状態変数の更新処理を含み、
前記計算ステップでは前記第1の反復処理により前記1又は複数のパラメータを引数とする前記1又は複数の状態変数の数値解を求め、
前記第3の処理は、
前記対象関数の前記1又は複数のパラメータに関する微分係数であって、前記対象関数が前記1又は複数の状態変数を介して前記1又は複数のパラメータに依存する寄与を含む微分係数を、自動微分を用いて計算する処理を含み、
前記第1の処理は前記第1の反復処理において反復される処理のうちの1回目を含み、
前記第1の反復処理は自己無撞着方程式の解を求める反復処理である
情報処理方法。
【請求項12】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得ステップと、
前記対象関数の微分係数を計算する計算ステップと、
を含み、
前記計算ステップによる前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記計算ステップによる前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記計算ステップにおける前記微分係数の計算処理には、第3の処理が含まれており、
前記第3の処理は、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理であって、前記第1の反復処理において複数回反復される処理のうちの1回または複数回を含みかつ少なくとも1回を含まない処理に対して適用される自動微分を用いて前記対象関数の微分係数を計算する処理を含み、
前記第1の処理は前記第1の反復処理において反復される処理のうちの1回目を含み、
前記第1の反復処理は自己無撞着方程式の解を求める反復処理である
情報処理方法。
【請求項13】
1又は複数のパラメータを直接的又は間接的に引数として含む対象関数の値の計算に関する初期値を取得する取得ステップと、
前記対象関数の微分係数を計算する計算ステップと、
を含み、
前記計算ステップによる前記微分係数の計算処理には、
第1の処理と、
第2の処理と、
が含まれ、
前記計算ステップによる前記微分係数の計算処理には第1の反復処理が含まれており、
前記第1の処理は前記第1の反復処理の一部を含み、
前記第2の処理は前記第1の反復処理の前記一部以外の部分を含み、
前記計算ステップによる前記微分係数の計算処理には、前記第1の処理を含まず前記第2の処理を含む処理に対する自動微分の計算処理を含む第3の処理が含まれており、
前記計算ステップでは、第2の反復処理を行い、
前記第2の反復処理においては、
前記第1の反復処理と、
前記対象関数の前記微分係数を用いて前記1又は複数のパラメータを更新する処理とを含む処理が反復され
前記第1の処理は前記第1の反復処理において反復される処理のうちの1回目を含み、
前記第1の反復処理は自己無撞着方程式の解を求める反復処理である
情報処理方法。
【請求項14】
請求項1から4の何れか1項に記載の情報処理装置としてコンピュータを機能させるためのプログラムであって、前記取得部、及び前記制御部としてコンピュータを機能させるためのプログラム。