JP2021170330A - システムのローカルフィールド行列の更新 - Google Patents
システムのローカルフィールド行列の更新 Download PDFInfo
- Publication number
- JP2021170330A JP2021170330A JP2021064945A JP2021064945A JP2021170330A JP 2021170330 A JP2021170330 A JP 2021170330A JP 2021064945 A JP2021064945 A JP 2021064945A JP 2021064945 A JP2021064945 A JP 2021064945A JP 2021170330 A JP2021170330 A JP 2021170330A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- variables
- local field
- optimization problem
- updating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 380
- 238000005457 optimization Methods 0.000 claims abstract description 95
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000008859 change Effects 0.000 claims abstract description 39
- 230000003993 interaction Effects 0.000 claims abstract description 19
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000013528 artificial neural network Methods 0.000 claims description 9
- 238000007792 addition Methods 0.000 description 52
- 210000002569 neuron Anatomy 0.000 description 29
- 238000012545 processing Methods 0.000 description 18
- 239000013598 vector Substances 0.000 description 17
- 238000013500 data storage Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 9
- 238000011969 continuous reassessment method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000000137 annealing Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000005366 Ising model Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000005496 tempering Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003467 diminishing effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/061—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Neurology (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Operations Research (AREA)
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Supply And Distribution Of Alternating Current (AREA)
Abstract
【課題】多項式時間において最適化問題を解くためのアルゴリズムを提供する。【解決手段】方法は、システムに関連付けられた最適化問題に関連する第1行列を取得するステップと、最適化問題に関連付けられた第2行列を取得するステップと、変数それぞれの重みにより影響される前記システムの変数同士の相互作用を示すローカルフィールド行列を取得するステップと、最適化問題を解く間のシステムの1つ以上の変数の状態変化に応答して、ローカルフィールド行列を更新するステップと、更新されたローカルフィールド行列に基づきシステムのエネルギ値を更新するステップと、エネルギ値に基づき最適化問題の解を決定するステップと、を含む。【選択図】図3
Description
本願明細書で議論される実施形態は、システムのローカルフィールド行列の更新に関する。
組合せ最適化問題は、しばしば、NP困難(NP-hard)又はNP完全(NP-complete)問題のようなNP問題(非決定性多項式時間問題、Nondeterministic Polynomial time Problems)として分類される。多項式時間においてこのような問題を解くための既知のアルゴリズムは存在しない。このような組合せ最適化問題は、レイアウト設計のビアの数の最小化、株式投資からの利益の最大化、航空機路線の経路決定、及び無線センサネットワーク、のような多数のアプリケーションにおいて現れ得る。
本願明細書で請求される主題は、任意の欠点を解決する実施形態又は上述のような環境でのみ動作する実施形態に限定されない。むしろ、この背景技術は、本願明細書に記載の幾つかの実施形態が実施され得る一例である技術領域を説明するためにのみ提供される。
一実施形態の一態様によると、動作は、システムに関連付けられた最適化問題に関連する第1行列を取得するステップと、前記最適化問題に関連付けられた第2行列を取得するステップと、を含んでよい。前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に与えられる対応する重みに関連してよい。ここで、前記対応する重みは、前記それぞれの変数と1つ以上の他の変数との間の関係に関連してよい。当該動作は、変数それぞれの重みにより影響される前記システムの変数同士の相互作用を示すローカルフィールド行列を取得するステップを含んでよい。前記相互作用は、前記最適化問題を解く間の、前記変数の状態の変化に関連してよい。前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記動作は、前記ローカルフィールド行列を更新するステップを含んでよい。前記ローカルフィールド行列を更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含んでよい。当該動作は、前記更新されたローカルフィールド行列に基づき前記システムのエネルギ値を更新するステップと、前記エネルギ値に基づき前記最適化問題の解を決定するステップと、を含んでよい。
実施形態の目的及び利点は、請求項において特に指摘される要素、特徴、及び組み合わせにより少なくとも実現され達成される。
前述の一般的説明及び以下の詳細な説明は両方とも例として与えられ、説明のためであり、請求される本発明の限定ではない。
例示的な実施形態は、以下の添付の図面の使用を通じて更なる特殊性及び詳細事項により記載され説明される。
組合せ最適化問題は、システムのエネルギ又はコスト関数の最大又は最小値を決定するために使用される、あるクラスの最適化問題を含んでよい。例えば、組合せ最適化問題は、特に、回路レイアウト設計のビアの数を最小化するため、株式利益を最大化するため、航空路線の経路決定及びスケジューリングを最適化するため、無線センサネットワークの構成のため、に使用されてよい。
幾つかの例では、最適化問題を解くために、イジングモデル(Ising Model)が使用されてよい。特に、イジングモデルのイジングエネルギ(「energy」)は、特定の最適化問題に対応する特定のシステムの状態空間全体の表現であってよい。エネルギの最小値を決定する最小化技術、又はエネルギの最大値を決定する最大化技術が、最適化問題を解くために使用されてよい。例えば、決定された最小又は最大エネルギに対応する特定のシステムの状態は、特定の最適化問題の解として使用されてよい。最小エネルギ又は最大エネルギを決定することの言及は、システムの絶対最小エネルギ又は絶対最大エネルギを決定することに限定されない。むしろ、最小エネルギ又は最大エネルギを決定することの言及は、システムのエネルギに関して最小化又は最大化動作を実行することを含んでよく、このような動作の出力が、対応する最適化問題の解として使用される。
後述するように、特定のシステムの変数の状態が変化するときの、特定のシステムのエネルギの変化量を示すために、ローカルフィールド行列が使用されてよい。ローカルフィールド行列は、変数のうちの1つ以上の状態の変化に関して変数それぞれの重みにより影響されるような、特定のシステムの変数同士の相互作用に基づく値を含む。後に詳細に議論されるように、本開示の1つ以上の実施形態によると、特定の技術は、メモリ要件及び/又は処理要件を低減する方法で、対応する最適化問題を解く間に、ローカルフィールド行列及び/又はシステムのエネルギを決定し更新するために使用されてよい。例えば、上述のように、ローカルフィールド行列は、特定のシステムの変数に対応する重みに基づいてよい。更に、エネルギは、重みに基づいてよい。以下に詳細に説明するように、ローカルフィールド行列及び/又はエネルギは、最適化問題を解く間に関連する重みの値を決定することにより、最適化問題を解く間に更新されてよい。重みの決定は、従って、重みの値を含む重み行列を保存して、次にローカルフィールド行列及び/又はエネルギの更新のために重みにアクセスするのではなく、適切にリアルタイムに行われてよい。
重み行列は非常に大きな行列であり得るので、重み行列の記憶を回避する能力は、大幅なメモリの節約を提供し得る。代わりに、後述するように、非常に小さな行列は格納されてよく、それらの対応する値は、重み値を決定するために使用されてよい。このように、最適化問題を解く際に使用されるメモリ量が削減され得る。追加又は代替として、幾つかの実施形態では、低減される記憶要件は、記憶の全部を単一の処理チップ上で(例えば、チップのキャッシュを介して)実行可能にし得る。これは、オフチップに格納され得るメモリへの呼び出しを削減し又は回避することにより、最適化問題を解く処理速度を向上し得る。従って、最適化問題を解く際に使用されるコンピューティングシステムは、最適化問題を解くことに関する該システムのメモリ要件を低減することにより、向上され得る。
本開示の実施形態は、添付の図面を参照して説明される。
図1Aは、本開示に記載される少なくとも1つの実施形態に従い構成される、最適化問題を解くよう構成される例示的な環境100を示す図である。環境100は、システム106のシステム更新104を更新し及び出力するよう構成されるエネルギ決定エンジン102(エネルギエンジン102)を含んでよい。これら又は他の実施形態では、環境100は、システム更新104に基づきローカルフィールド行列110(LFM(local field matrix)110)を更新するよう構成されるローカルフィールド行列エンジン108(LFMエンジン104)を含んでよい。
システム106は、解かれ得る最適化問題の任意の適切な表現を含んでよい。例えば、幾つかの実施形態では、システム106は、変数のセットを含み得る状態ベクトルXを含んでよく、該変数は、それぞれ、最適化問題に関連する特性を表してよい。状態ベクトルXは、従って、システム106の異なる状態を表してよい。例えば、第1状態ベクトルX1は、変数の各々が第1値を有し、システム106の第1状態を表してよい。第2状態ベクトルX2は、変数の各々が第2値を有し、システム106の第2状態を表してよいこれら又は他の実施形態では、状態ベクトルX1とX2との間の差は、異なる値を有するX1及びX2の両者の中の1つの対応する変数のみから、異なる値を有するX1及びX2の中のあらゆる変数へ、のどこであってもよい。
例として、システム106は、任意の適切な数のノード(「ニューロン」とも呼ばれる)を含んでよいニューラルネットワークであってよい。これら又は他の実施形態では、システム106の状態ベクトルXは、ニューラルネットワークのニューロンの各々の状態を表してよい。例えば、各ニューロンは、「0」又は「1」の値を有し得るビットであってよく、状態ベクトルXは、ニューラルネットワークの各ニューロンについて「1」値又は「0」値を有してよい。これら又は他の実施形態では、ニューラルネットワークは、任意の適切な方法で、1つ以上の異なる種類の最適化問題を解くよう構成されてよい。
幾つかの実施形態では、システム106のニューラルネットワークは、ボルツマンマシン(Boltzmann machine)として構成されてよい。これら又は他の実施形態では、ボルツマンマシンは、ボルツマンマシンのニューロンがクラスタにグループ化され得るクラスタ型ボルツマンマシン(clustered Boltzmann machine (CBM))として構成されてよい。クラスタは、同じクラスタ内にニューロン間の接続が存在しないように(例えば、1つのクラスタのニューロン間の重みは「0」であってよい)、形成されてよい。これら又は他の実施形態では、CBMは、任意の所与のクラスタの中の「n」個のニューロンがアクティブである(例えば「1」の値を有する)at−most−n制約を有するよう構成されてよい。例えば、CBMは、常にクラスタ内のニューロンのうちの正確に1個がアクティブであり、該クラスタ内の残りのニューロンがインアクティブ(「0」のビット値を有する)でなければならない、exactly−1(ワンホット符号化(1-hot encoding))制約を有してよい。使用され得る例示的なクラスタ化は、状態行列Xの行及び列に関する行クラスタ化及び/又は列クラスタ化である。これら又は他の実施形態では、クラスタはクロスクラスタ(cross cluster)を形成するよう結合されてよい。例えば、行クラスタは、列クラスタと結合されて、クロスクラスタを形成してよい。exactly−1制約を有するこのようなクロスクラスタ構成は、状態行列Xの各行及び各列の中で1つのニューロンだけがアクティブであるよう、状態行列Xを制約してよい。
幾つかの実施形態では、状態行列Xは、クラスタ化を用いてサイズを削減されてよい。例えば、exactly−1制約を有する所与のクラスタ(特定の行)では、1つのニューロンだけがアクティブであってよく、従ってクラスタの全てのニューロンの状態を示す値を各応するのではなく、代わりに、クラスタ内のどのニューロンがアクティブであるかを示す単一のインデックス値が格納されてよい。このような例では、状態行列Xは、状態ベクトルXにより表されてよい。
追加又は代替として、システム106は、システム106に対応する最適化問題のイジングエネルギを表すために最適化問題にマッピングされるイジングモデルを含んでよい。例えば、2値状態を有する変数を有するシステムのイジングエネルギは、次式(1)により表されてよい。
上式(1)、xiは、対応する状態行列Xを表す状態ベクトルXのi番目の変数であり、0又は1であり得る。xjは、状態ベクトルXのj番目の変数であり、0又は1であり得る。wijは、Xのi番目の変数とj番目の変数の間の接続(connection)である。biは、i番目の要素に関連付けられたバイアス(bias)である。
エネルギエンジン102は、コンピューティングシステムが一緒に記載される動作のうちの1つ以上を実行できるようにするよう構成されるコード及びルーチンを含んでよい。追加又は代替として、エネルギエンジン102は、任意の数のプロセッサ、(例えば、1つ以上の動作を実行する又は実行を制御する)マイクロプロセッサ、FPGA(field-programmable gate array)、又はASIC(application-specific integrated circuit)、又はそれらのうちの2つ以上の任意の適切な組合せを含むハードウェアを用いて実装されてよい。
代替として又は累加で、エネルギエンジン102は、ハードウェア及びソフトウェアの組み合わせを用いて実装されてよい。本開示では、エネルギエンジン102により実行されるとして記載される動作は、エネルギエンジン102が対応するシステムに実行するよう指示し得る動作を含んでよい。
幾つかの実施形態では、エネルギエンジン102は、状態ベクトルXの1つ以上の変数に対して提案される変化をランダムに(例えば、確率的処理により)生成するよう構成されてよい。例えば、幾つかの実施形態では、exactly−1制約を有するCBMでは、提案される変化は、非アクティブなニューロンをアクティブになるよう変化すること、及びその結果、アクティブなニューロンを非アクティブに変化すること、を含んでよい。従って、2つの変化(例えば、ビットフリップ)は、任意の所与のクラスタに関して生じてよい。追加又は代替として、結合された行クラスタ及び結合された列クラスタ構成のような、exactly−1制約を有するクロスクラスタ構成では、特定の行の中のニューロンの状態を変化することが、変化したニューロンの属する列にも影響するので、提案される変化は、4ビットフリップを含んでよい。
幾つかの実施形態では、特定のクラスタについて特定の変化を受け入れるかどうかに関する決定は、任意の適切な確率関数に基づいてよい。これら又は他の実施形態では、確率関数は、特定の変化により引き起こされ得るシステムエネルギの変化に基づいてよい。幾つかの実施形態では、システムエネルギの変化は、LFM110を用いて決定されてよい。
LFM110は、変数の状態の変化に関する変数それぞれの重みにより影響されるとき、システム106の変数同士の相互作用を示してよい。例えば、LFM110のシステム106の変数の値は、式(2)で以下のように表される。
式(2)で、hi(x)は、ローカルフィールド行列Hのi番目の変数のローカルフィールド値であり、ローカルフィールド行列Hのi番目の変数は、対応する状態行列Xのi番目の変数に対応する。xjは、状態ベクトルXのj番目の変数であり、0又は1であり得る。wijは、Xのi番目の変数とj番目の変数との間の接続重みである。biは、i番目に関連付けられたバイアスである。
上述のように、幾つかの実施形態では、提案された変化に関するシステムエネルギの変化は、LFM110に基づいてよい。例えば、(例えば、CBMの行クラスタについて)非クロスクラスタ化CBMのシステムエネルギの変化は、式(3)で以下のように決定されてよい。
式(3)で、kは、対応する状態ベクトルXRCによりインデックス付けされるとき、状態行列Xの所与の行を表す。hk,j及びhk,iは、提案される変化に含まれるニューロンに対応する。式(3)で、hk,jは、xk,jをアクティブにし及びxk,iを非アクティブにし得る提案されるスワップの前に非アクティブであるニューロンxk,jに対応するローカルフィールド行列値であり、hk,iは、アクティブであるニューロンxk,iに対応するローカルフィールド行列値である。
式(4)で、k及びk’は、対応する状態ベクトルXXCによりインデックス付けされるとき、状態行列Xの行を表す。l及びl’は、それぞれ、状態ベクトルXXCの中の行k及びk’の中のアクティブなニューロンのインデックスを表す。hk,l、hk’,l’、hk,l’、及びhk’,lは、上述と同様の提案される変化に含まれるニューロンに対応する。wk,l,k’,l’及びwk,l’,k’,lは、提案される変化に関する問題のニューロンに対応し得る重みに対応する。以下に更に詳細に説明するように、幾つかの実施形態では、エネルギエンジン102は、式(4)の中のwk,l,k’,l’及びwk,l’,k’,lの値を、第1行列112及び第2行列114に基づき、例えば後述する式(13)及び(14)のうちの1つ以上を用いて決定するよう構成されてよい。
上述のように、1つ以上の変数に対する提案される変化を受け入れるかどうかの確率は、提案される変化に応答して生じ得るシステムエネルギの変化に基づいてよい。例えば、エネルギの変化が上述の式(3)に基づき決定される(例えば、CBMの行クラスタについて)非クロスクラスタ化CBMのシステムの提案される変化の受け入れ確率は、式(5)で以下のように決定されてよい。
式(5)で、ΔERC(XRC,k)は、式(3)から決定されたエネルギ変化であってよく、tは、変化を行うか否かに影響を与えるために使用され得るスケーリング係数であってよい。例えば、tは、レプリカ交換(「並列焼き戻し(パラレルテンパリング、parallel tempering)」とも呼ばれる)のようなシミュレートされた又はデジタル焼きなまし(アニーリング)処理を実行するときのスケーリング係数として使用される「温度(temperature)」であってよい。
別の例では、エネルギの変化が上述の式(4)に基づき決定される(例えば、CBMの行/列クロスクラスタについて)クロスクラスタ化CBMのシステムの提案される変化の受け入れ確率は、式(6)で以下のように決定されてよい。
式(6)で、ΔERC(XXC,k,k’)は、式(4)から決定されたエネルギ変化であってよく、tは、式(5)に関して上述したようなスケーリング係数であってよい。
エネルギエンジン102は、システム更新104を出力してよい。システム更新104は、1つ以上の提案される変化を受け入れることに応答して生じ得るシステム106に対する更新を含んでよい。
幾つかの実施形態では、エネルギエンジン102は、焼きなましシステム(例えば、デジタル焼きなましシステム又は量子焼きなましシステム)に含まれ又はその部分であってよい。これら又は他の実施形態では、エネルギエンジン102は、システム106に関してマルコフチェーンモンテカルロ(Markov Chain Monte Carlo (MCMC))処理を実行するよう構成されてよい。例えば、エネルギエンジン102は、システム106のエネルギを最小化し得る状態ベクトルXminを発見するためにレプリカ交換を実行するよう構成されてよい。別の例では、エネルギエンジン102は、システム106のエネルギを最大化し得る状態ベクトルXmaxを発見するためにレプリカ交換を実行するよう構成されてよい。レプリカ交換は、システム106のM個のコピーを同時に、しかし、システム106のコピーの実行中にシステムに変化が生じるかどうかに影響する異なるスケーリング係数で、実行することを含んでよい。従って、幾つかの実施形態では、エネルギエンジン102は、異なる温度レベルでシステム106の複数のレプリカに関して上述の更新動作を実行してよい。
LFMエンジン108は、システム更新104の中で反映されてよいシステム106の更新に基づき、LFM110を更新するよう構成されてよい。追加又は代替として、LFMエンジン108は、対応する最適化問題の解法の初期化により、システム106に基づきLFM110を初めに生成するよう構成されてよい。
上述の式(2)により示されるように、LFM110の値は、状態行列Xの値、及びシステム106の変数同士の接続重みに基づいてよい。システム106の接続重みは、第1行列112及び第2行列114に対応してよい。
第1行列112及び第2行列114は、それぞれ、システム106の変数同士の重みを生成し得る対応する最適化問題の特長を表し得る行列であってよい。例えば、二次割り当て問題(Quadratic Assignment Problem (QAP))では、第1行列112は対応するフロー(flow)行列であってよく、第2行列は対応する距離(distance)行列であってよい。第1行列112及び第2行列114は、QAPのフロー及び距離行列と同様の方法で使用されてよい任意の他の適用可能な問題の任意の他の適切な行列に対応してよい。
LFMエンジン108は、LFM110を更新するために使用され得る重みの値を決定するために、第1行列112及び第2行列114を使用するよう構成されてよい。幾つかの実施形態では、LFMエンジン108は、新しいシステム更新104が生じる度に、進行中に及び動的にこの決定を行ってよい。LFMエンジン108は、既に格納された重みの全部を含む格納された重み行列にアクセスする代わりに、進行中にこの動的方法で重みを取得するために、第1行列112及び第2行列114を使用するよう構成されてよい。
幾つかの実施形態では、第1行列112及び第2行列114の転置行列は、重みを取得するために使用されてよい。例えば、第1行列112及び/又は第2行列114が非対称である例では、第1行列112及び第2行列114の転置行列は、更に詳細に後述するように、重みを決定するために使用されてよい。これら又は他の実施形態では、第1行列112及び第2行列114が対称である例では、これらの行列の転置行列が使用されない又は必要でなくてよい。
重み行列の代わりに、第1行列112及び第2行列114を使用することは、環境100の記憶及び/又は性能特性を向上し得る。例えば、重み行列の要素の数は、通常、第1行列112及び第2行列114の要素の数より遙かに桁が多い。例えば、重み行列はn4個の要素を有してよく、第1行列112及び第2行列114は、それぞれn2個の要素を有してよく、従ってそれらの結合は2n2個の要素を有してよい。従って、重み行列を格納するのではなく、重みを決定するために第1行列112及び第2行列114を使用することは、有意なメモリの節約をもたらし得る。例えば、第1行列112及び第2行列114は、コンピュータ可読記憶媒体116(computer-readable storage media、「CRM116」)に格納されてよく、重み値を追跡するために使用され得る重み行列より遙かに少ない記憶空間(例えば、99%少ない)を占有してよい。
第1行列112及び第2行列114の転置行列が使用され格納され得る例でも、メモリ節約は依然として実質的に十分であり得る。例えば、このようなシナリオで格納される要素の総数は4n2であってよく、これは、nのサイズに依存して、依然としてn4より有意に小さくなり得る。
幾つかの実施形態では、記憶の節約は、LFMエンジン108及びCRM116が同じチップ上に存在できるようにしてよい。これは、第1行列112及び第2行列114に関してCRM116に格納されたデータのフェッチ時間を削減することにより、処理速度を向上し得る。従って、幾つかの実施形態では、第1行列112及び第2行列114を格納したLFMエンジン108及びCRM116は、同じチップ上に存在してよい。追加又は代替として、第1行列112及び第2行列114を格納したLFMエンジン108及びCRM116は、異なるチップ上に存在してよい。
更に、LFMエンジン108がソフトウェア命令として実装される例では、LFMエンジン108は、第1行列112及び第2行列114と同じCRM116上に格納されてもよい。追加又は代替として、LFMエンジン108がソフトウェア命令として実装される例では、LFMエンジン108は、第1行列112及び第2行列114と異なるCRM116上に格納されてもよい。
幾つかの実施形態では、LFMエ110は、第1行列112及び第2行列114と同じCRM116上に格納されてもよい。これら又は他の実施形態では、結合された、LFM110、第1行列112、及び第2行列114は、依然として、重み行列より遙かに小さな量のメモリ空間を占有してよい。
追加又は代替として、LFMエ110は、第1行列112及び第2行列114と異なるCRM116上に格納されてよい。これら又は他の実施形態では、LFM110、第1行列112、第2行列114、LFMエンジン108、及びエネルギエンジン102は、1つ以上のCRMの任意の適切な構成に関して一緒に又は単独で格納されてよい。
上述のように、LFMエンジン108は、システム更新104の中で更新される変数に対応する重みを決定するために、第1行列112及び第2行列114を用いてLFM110を更新するよう構成されてよい。これらの又は他の実施形態では、決定された重みは、LFM110を更新するために使用されてよい。
例えば、第1行列112及び第2行列114は、それぞれ対称なフロー行列「F」及び距離行列「D」であってよい。更に、システム106は、行/列クロスクラスタ化ボルツマンマシンを含んでよく、システム更新104は、システム106の特定の行「r」及び特定の列「c」に対する変化を含んでよい。このような例では、サブ重み行列「wr,c」は、それぞれ、式(7)に従い以下のようにシステム106の特定の行「r」及び特定の列「c」に対応する、行列「F」及び「D」の行「Fr,*」及び「Dc,*」のテンソル積を決定することにより決定されてよい。
式(8)で、次式
から決定された値は、LFM110を更新するために、hi,*の値に加算されてよい。更に、k及びk’は、状態変化に対応する状態行列Xの行を表す。l及びl’は、それぞれ、行k及びk’の中の変化した変数のインデックスを表す。
幾つかの実施形態では、LFMエンジン108は、個々の乗算演算を実行するよう構成されてよく、LFM110の問題の対応する4個の変数を順に更新する。例えば、図1Bは、行/列クロスクラスタ化ボルツマンマシンのシステム更新104の部分として、ニューロン(アルゴリズム150では「ビット」とも呼ばれる)xk,l及びxk’,l’が非アクティブになっており、ニューロンxk’,l及びxk,l’がアクティブになっている例で、LFM110を順に更新するために使用され得る例示的なアルゴリズム150を示す。アルゴリズム150は、xk,l及びxk’,l’、並びにxk’,l及びxk,l’に対応するLFM110の要素を順番に更新するよう構成される。アルゴリズム150は、ソフトウェア及び/又はハードウェアの任意の適切な実装を用いて実装されてよい。
例えば、図1Bは、アルゴリズム150を実施するよう構成されるLFMエンジン108の例示的なハードウェア実装152も示す。実装152では、全部の要素が同じチップ上に格納されてよい。実装152は、幾つかの実施形態における図2のコンピューティングシステム202の例示的な実装であってよく、又はその1つ以上の要素を含んでよい。追加又は代替として、実装152は、幾つかの実施形態における処理機能のうちの1つ以上を実行するために、GPU(graphics processing unit)及び/又はFPGA(field programmable gate array)を使用してよい。
更に、LFM110は、「H」により表されてよく、第1行列112及び第2行列114は、それぞれ「F」及び「D」により表されてよい。追加で、図示の例では、「H」、「F」、及び「D」は、実装152のオンチップメモリ154に格納されてよい。「F」行列は、「DIM×DIM」行列であってよく、実装152のDim−To−1 MUX156は、アルゴリズム150の演算を実行する際に、「F」の関連部分を選択するよう構成されてよい。更に、実装152は、アルゴリズム150の現在実実行中の演算に関連付けられた「F」及び「D」の個々の要素の各々に関してアルゴリズム150の関連する乗算及び加算演算を実行するよう構成される算術要素158を含んでよい。
例えば、算術要素158は、アルゴリズム150の行「1」及び「2」の以下の演算を順に実行してよい:
次に、算術要素158は、アルゴリズム150の行「3」及び「4」の以下の演算を実行してよい:
次に、算術要素158は、アルゴリズム150の行「53」及び「6」の以下の演算を実行してよい:
次に、算術要素158は、アルゴリズム150の行「7」及び「8」の以下の演算を実行してよい:
追加又は代替として、LFMエンジン108は、問題の4個の変数に関して、式(8)の更新演算のうちの2つ以上を同時に実行するよう構成されてよい。例えば、図1Cは、行/列クロスクラスタ化ボルツマンマシンのシステム更新104の部分として、xk,l及びxk’,l’が非アクティブになっており、ニューロンxk’,l及びxk,l’がアクティブになっていることに関して、LFM110を更新するために使用され得る別の例示的なアルゴリズム160を示す。アルゴリズム160は、xk,l及びxk’,l’の非アクティブ化に基づき、xk,l及びxk’,l’に対応するLFM110の要素をほぼ同時に更新するよう構成される。アルゴリズム160は、また、xk’,l及びxk,l’のアクティブ化に基づき、xk’,l及びxk,l’に対応する要素をほぼ同時に更新するよう構成される。このように、アルゴリズム160は、アルゴリズム150より約2倍速くなり得る。アルゴリズム160は、ソフトウェア及び/又はハードウェアの任意の適切な実装を用いて実装されてよい。
例えば、図1Cは、アルゴリズム160を実施するよう構成されるLFMエンジン108の例示的なハードウェア実装162も示す。実装162では、全部の要素が同じチップ上に格納されてよい。実装162は、幾つかの実施形態における図2のコンピューティングシステム202の例示的な実装であってよく、又はその1つ以上の要素を含んでよい。追加又は代替として、実装162は、幾つかの実施形態における処理機能のうちの1つ以上を実行するために、GPU(graphics processing unit)及び/又はFPGA(field programmable gate array)を使用してよい。
更に、LFM110は、「H」により表されてよく、第1行列112及び第2行列114は、それぞれ「F」及び「D」により表されてよい。追加で、図示の例では、「H」、「F」、及び「D」は、実装162のオンチップメモリ164に格納されてよい。「F」行列は、「DIM×DIM」行列であってよく、実装162のDim−To−1 MUX166は、アルゴリズム160の演算を実行する際に、「F」の関連部分を選択するよう構成されてよい。
更に、実装162は、「F」及び「D」の対応する要素に関してアルゴリズム160の行「1」及び「2」の乗算及び加算演算を実行するよう構成される算術要素168aを含んでよい。追加又は代替として、実装162は、「F」及び「D」の対応する要素に関してアルゴリズム160の行「3」及び「4」の関連する乗算及び加算演算を実行するよう構成される算術要素168bを含んでよい。これら又は他の実施形態では、実装162は、「F」の適切な値が適切なときに算術要素168aへ送信されるように構成されるシフトレジスタ165を含んでよい。
別の例として、図1Dは、行/列クロスクラスタ化ボルツマンマシンのシステム更新104の部分として、xk,l及びxk’,l’が非アクティブになっており、ニューロンxk’,l及びxk,l’がアクティブになっていることに関して、LFM110を更新するために使用され得る別の例示的なアルゴリズム170を示す。アルゴリズム170は、xk,l及びxk’,l’、並びにxk’,l及びxk,l’に対応するLFM110の要素を実質的に同じに更新するよう構成される。このように、アルゴリズム170は、アルゴリズム160の約2倍の速さであってよく、アルゴリズム150より約4倍速くなり得る。アルゴリズム170は、ソフトウェア及び/又はハードウェアの任意の適切な実装を用いて実装されてよい。
例えば、図1Dは、アルゴリズム170を実施するよう構成されるLFMエンジン108の例示的なハードウェア実装172も示す。実装172では、全部の要素が同じチップ上に格納されてよい。実装172は、幾つかの実施形態における図2のコンピューティングシステム202の例示的な実装であってよく、又はその1つ以上の要素を含んでよい。追加又は代替として、実装172は、幾つかの実施形態における処理機能のうちの1つ以上を実行するために、GPU(graphics processing unit)及び/又はFPGA(field programmable gate array)を使用してよい。
更に、LFM110は、「H」により表されてよく、第1行列112及び第2行列114は、それぞれ「F」及び「D」により表されてよい。追加で、図示の例では、「H」、「F」、及び「D」は、実装172のオンチップメモリ174に格納されてよい。「F」行列は、「DIM×DIM」行列であってよく、実装172のDim−To−1 MUX176は、アルゴリズム170の演算を実行する際に、「F」の関連部分を選択するよう構成されてよい。
更に、実装172は、算術要素178a、算術要素178b、算術要素178c、及び算術要素178dを含んでよい。算術要素178aは、「F」及び「D」の対応する要素に関してアルゴリズム170の行「2」の以下の乗算及び加算演算を実行するよう構成されてよい。
算術要素178bは、「F」及び「D」の対応する要素に関してアルゴリズム170の行「3」の以下の乗算及び加算演算を実行するよう構成されてよい。
算術要素178cは、「F」及び「D」の対応する要素に関してアルゴリズム170の行「2」の以下の乗算及び加算演算を実行するよう構成されてよい。
算術要素178dは、「F」及び「D」の対応する要素に関してアルゴリズム170の行「3」の以下の乗算及び加算演算を実行するよう構成されてよい。
これら又は他の実施形態では、実装172は、「F」の適切な値が適切なときに算術要素178b及び178dへ送信されるように構成されるシフトレジスタ175aを含んでよい。これら又は他の実施形態では、実装172は、「D」の適切な値が適切なときに算術要素178a及び178bへ送信されるように構成されるシフトレジスタ175bを含んでよい。
図1Eは、行/列クロスクラスタ化ボルツマンマシンのシステム更新104の部分として、xk,l及びxk’,l’が非アクティブになっており、ニューロンxk’,l及びxk,l’がアクティブになっていることに関して、式(9)に基づきLFM110を更新するために使用され得る別の例示的なアルゴリズム180を示す。アルゴリズム180は、xk,l及びxk’,l’、並びにxk’,l及びxk,l’に対応するLFM110の要素を実質的に同じに更新するよう構成される。このように、アルゴリズム180は、アルゴリズム160の約2倍の速さであってよく、アルゴリズム150より約4倍速くなり得る。アルゴリズム180は、ソフトウェア及び/又はハードウェアの任意の適切な実装を用いて実装されてよい。
例えば、図1Eは、アルゴリズム180を実施するよう構成されるLFMエンジン108の例示的なハードウェア実装182も示す。実装182では、全部の要素が同じチップ上に格納されてよい。実装182は、幾つかの実施形態における図2のコンピューティングシステム202の例示的な実装であってよく、又はその1つ以上の要素を含んでよい。追加又は代替として、実装182は、幾つかの実施形態における処理機能のうちの1つ以上を実行するために、GPU(graphics processing unit)及び/又はFPGA(field programmable gate array)を使用してよい。
更に、LFM110は、「H」により表されてよく、第1行列112及び第2行列114は、それぞれ「F」及び「D」により表されてよい。追加で、図示の例では、「H」、「F」、及び「D」は、実装182のオンチップメモリ184に格納されてよい。更に、実装182では、「F」及び「D」は、アルゴリズム180の実行速度を向上するのを助けるために、2回格納されてよい。「F」及び「D」行列は、それぞれ「DIM×DIM」行列であってよい。実装182のDim−To−1 MUX186a及び186bは、アルゴリズム180の動作を実行する際に、「F」及び「D」の関連部分を選択するよう構成されてよい。
更に、実装182は、算術要素188a、算術要素算術要素188b、及び算術要素188cを含んでよい。算術要素188aは、「Fdiff」を取得するために「F」の対応する要素に関してアルゴリズム180の行「3」の以下の加算演算を実行するよう構成されてよい。
算術要素188bは、「D」の対応する要素に関してアルゴリズム180の行「1」の以下の加算演算を実行するよう構成されてよく、
次式を得る。
算術要素188cは、算術要素188a及び188bにより提供された結果に関して、アルゴリズム180の行「4」の以下の乗算及び加算演算を実行するよう構成されてよい。
図1Fは、アルゴリズム180を実施するよう構成されるLFMエンジン108の例示的なハードウェア実装192も示す。実装192では、全部の要素が同じチップ上に格納されてよい。実装192は、幾つかの実施形態における図2のコンピューティングシステム202の例示的な実装であってよく、又はその1つ以上の要素を含んでよい。追加又は代替として、実装192は、幾つかの実施形態における処理機能のうちの1つ以上を実行するために、GPU(graphics processing unit)及び/又はFPGA(field programmable gate array)を使用してよい。
更に、LFM110は、「H」により表されてよく、第1行列112及び第2行列114は、それぞれ「F」及び「D」により表されてよい。追加で、図示の例では、「H」、「F」、及び「D」は、実装192のオンチップメモリ194に格納されてよい。「F」行列は、「DIM×DIM」行列であってよい。実装182のDim−To−1 MUX196は、アルゴリズム180の動作を実行する際に、「F」の関連部分を選択するよう構成されてよい。
更に、実装182は、算術要素198a、算術要素算術要素198b、及び算術要素198cを含んでよい。算術要素198aは、「F」の対応する要素に関してアルゴリズム180の行「3」の以下の加算演算を実行するよう構成されてよい。
算術要素198bは、「D」の対応する要素に関してアルゴリズム180の行「1」の以下の加算演算を実行するよう構成されてよい。
算術要素198cは、算術要素198a及び198bにより提供された結果に関して、アルゴリズム180の行「4」の以下の乗算及び加算演算を実行するよう構成されてよい。
これら又は他の実施形態では、実装192は、「F」の適切な値が適切なときに算術要素198aへ送信されるように構成されるシフトレジスタ195aを含んでよい。これら又は他の実施形態では、実装192は、「D」の適切な値が適切なときに算術要素198bへ送信されるように構成されるシフトレジスタ195bを含んでよい。
図1Aを参照すると、幾つかの実施形態では、第1行列112及び/又は第2行列114は非対称であってよい。これら又は他の実施形態では、1つ以上の前処理演算が、非対称行列に対して実行されてよく、該非対称行列を対称にする。追加又は代替として、このような例のうちの幾つかでは(例えば、前処理が実行されない例、又は非対称行列を対称にできない例)、LFM110を更新するための重みの決定は、転置された第1行列112及び/又は転置された第2行列114に基づいてよい。
例えば、第1行列112及び第2行列114は、それぞれ非対称なフロー行列「F」及び距離行列「D」であってよい。このような例では、サブ重み行列「wr,c」は、上述のように行列「F」及び「D」の行「Fr,*」及び「Dc,*」のテンソル積を決定することにより、それぞれ行列「F」及び「D」の転置行列「FT」及び「DT」のテンソル積
も考慮して、以下の式(7)に従い、それぞれ決定されてよい。
追加又は代替として、式(2)及び(10a)に基づき、システム更新104(「hi,*」)に対応するLFM110の部分
は、このような非対称の場合に以下のキャッシュ局所性を向上し得る以下の式(11)に従い変更されてよい。
幾つかの実施形態では、1つ以上の変数は、図1B〜1Fに関して上述したアルゴリズム及び/又はハードウェア実装のために、非対称行列に関して実行され得る追加された演算に対応するために、生成されてよい。例えば、転置された「F」及び「D」行列も、オンチップメモリに格納されてよい。更に、1つ以上の算術要素、MUX、及び/又はレジスタは、実行され得る追加の演算に対応するために使用されてよい。追加又は代替として、式(11)の1つ以上の演算は、順に実行されてよい。これら又は他の実施形態では、式(11)の1つ以上の演算のうちの2つ以上は、一緒に実行されてよい。追加又は代替として、式(11)の演算は、全部実質的に同時に実行されてよい。
更新されたLFM110は、幾つかの実施形態では、上述したように新しいシステム更新104を生成するために、エネルギエンジン102により使用されてよい。例えば、エネルギエンジン102は、上述の式(3)又は式(4)に基づき、LFM110の更新された値を用いてシステム106のエネルギ値を更新してよい。これら又は他の実施形態では、エネルギエンジン102は、第1行列112及び第2行列114に基づき、次式の値を決定するよう構成されてよい。
エネルギエンジン102は、次に、上述の式(5)又は式(6)を用いて、システム106に対する提案された変化を受け入れるか否かを決定するために、更新したエネルギ値を使用してよい。LFMエンジン108は、次に、上述と同様に、ここでも、新しいシステム更新104に基づきLFM110を更新してよい。幾つかの実施形態では、このような演算は、システム106に関連付けられた最適化問題に対する解が取得されるまで、繰り返し実行されてよい。例えば、演算は、システム106の状態が最大又は最小イジングエネルギに関連付けられるまで、実行されてよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく図1A〜1Fに対して行われてよい。例えば、図1B〜1Fに関して説明したアルゴリズム及び実装は単なる例であり、限定ではない。更に、互いに別個であるとして図示され説明されたが、エネルギエンジン102及びLFMエンジン108は、幾つかの実施形態では、結合されてよい。追加又は代替として、エネルギエンジン102及び/又はLFMエンジン108により実行されるとして説明された演算は、本願明細書に説明されるものと正確に同じでなくてよい任意の適用可能な実装により実行されてよい。更に、環境100は、図示され本開示で説明されるよりも多数又は少数の要素を含んでよい。更に、特定の装置又はシステムの中の要素の特定の構成、関連付け、又は包含は、特定の実装に依存して変化し得る。
図2は、本開示の少なくとも1つの実施形態による、本願明細書で説明された1つ以上の演算を実行するよう構成される例示的なコンピューティングシステム202のブロック図を示す。例えば、コンピューティングシステム202は、幾つかの実施形態では、図1Aのエネルギエンジン102及び/又はLFM108に関連付けられた1つ以上の演算を実装する又は指示するよう構成されてよい。幾つかの実施形態では、コンピューティングシステム202は、焼きなまし(アニーリング)システムに含まれ又はその部分であってよい。コンピューティングシステム202は、プロセッサ250、メモリ252、及びデータ記憶装置254を含んでよい。プロセッサ250、メモリ252、及びデータ記憶装置254は、通信可能に結合されてよい。
通常、プロセッサ250は、種々のコンピュータハードウェア又はソフトウェアモジュールを含む、任意の適切な専用又は汎用コンピュータ、コンピューティングエンティティ、又は処理装置を含んでよく、任意の適切なコンピュータ可読記憶媒体に格納された命令を実行するよう構成されてよい。例えば、プロセッサ250は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィック処理ユニット(GPU)、又はプログラム命令を解釈し及び/又は実行し及び/又はデータを処理するよう構成される任意の他のデジタル若しくはアナログ回路を含んでよい。図2には単一のプロセッサとして示されるが、プロセッサ250は、個々に又は集合的に本開示に記載の任意の数の動作を実行する又は実行を指示するよう構成される任意の数のプロセッサを含んでよい。さらに、プロセッサのうちの1つ以上は、異なるサーバのような1つ以上の異なる電子装置上に存在してよい。
幾つかの実施形態では、プロセッサ250は、プログラム命令を解釈し及び/又は実行し、及び/又はメモリ252、データ記憶装置254、又はメモリ252及びデータ記憶装置254に格納されたデータを処理するよう構成されてよい。幾つかの実施形態では、プロセッサ250は、プログラム命令をデータ記憶装置254からフェッチし、プログラム命令をメモリ252にロードしてよい。プログラム命令がメモリ252にロードされた後に、プロセッサ250は、プログラム命令を実行してよい。例えば、幾つかの実施形態では、図1Aのエネルギエンジン102及び/又はLFMエンジン108は、メモリ252にロードされプロセッサ250により実行され得るプログラム命令であってよいソフトウェアモジュールであってよい。
メモリ252及びデータ記憶装置254は、格納されたコンピュータ実行可能命令又はデータ構造を運ぶ又は有するコンピュータ可読記憶媒体を含んでよい。このようなコンピュータ可読記憶媒体は、プロセッサ250のような汎用又は専用コンピュータによりアクセスされ得る任意の市販の非一時的媒体を含んでよい。例として、限定ではなく、このようなコンピュータ可読記憶媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消去可能なプログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク読み出し専用メモリ(CD−ROM)、又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置、フラッシュメモリ素子(例えば、個体メモリ装置)、又はコンピュータ実行可能命令若しくはデータ構造の形式で特定のプログラムコードを運ぶ又は格納するために使用され得る且つ汎用又は専用コンピュータによりアクセスされ得る任意の他の非一時的記憶媒体、を含む有形又は非一時的コンピュータ可読媒体を含んでよい。これら及び他の実施形態では、本開示で説明されるような用語「非一時的」は、Federal Circuit decision of In re Nuijten, 500 F.3d 1346 (Fed. Cir. 2007)における特許可能な主題の範囲に含まれない一時的媒体の種類のみを除外するものと考えられるべきである。
上記の組み合わせも、コンピュータ可読記憶媒体の範囲に含まれてよい。コンピュータ実行可能命令は、例えば、プロセッサ250に特定動作または一群の動作を実行させるよう構成される命令及びデータを含んでよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなくコンピューティングシステム202に対して行われてよい。例えば、幾つかの実施形態では、コンピューティングシステム202は、明示され又は記載されないことのある任意の数の他のコンポーネントを含んでよい。追加又は代替として、コンピューティングシステム202は、より少ない要素を含んでよく、又は異なるように構成されてよい。例えば、メモリ252及び/又はデータ記憶装置254は、省略されてよく、又は同じコンピュータ可読記憶媒体の部分であってよい。更に、本開示におけるハードウェア又はハードウェアにより実行される動作についての言及は、コンピューティングシステム202の要素のうちの1つ以上の任意の適切な動作、構成、又は結合を表してよい。
図3は、本開示に記載される少なくとも1つの実施形態による、最適化問題を解く例示的な方法300のフローチャートを示す。方法300の動作は、任意の適切なシステム、機器、又は装置により実行されてよい。例えば、図1Aのエネルギエンジン102及び/又はLFMエンジン108、又は図2のコンピューティングシステム202は、方法300に関連付けられた動作のうちの1つ以上を実行してよい。別個のブロックにより示したが、方法300のブロックのうちの1つ以上に関連するステップ及び動作は、特定の実装に依存して、追加ブロックに分けられ、少ないブロックに結合され、又は削除されてよい。
ブロック302で、システムに関連付けられた最適化問題に関連する第1行列が取得されてよい。第1行列を取得するステップは、コンピュータ可読媒体に格納された第1行列にアクセスするステップを含んでよい。追加又は代替として、第1行列を取得するステップは、コンピュータ可読媒体に第1行列を格納するステップを含んでよい。
図1Aの第1行列112は、第1行列の一例であってよい。幾つかの実施形態では、最適化問題は、二次割り当て問題であってよく、第1行列は、二次割り当て問題の距離行列であってよい。幾つかの実施形態では、第1行列は対称であってよい。追加又は代替として、第1行列は非対称であってよい。第1行列が非対称である幾つかの例では、1つ以上の適用可能な動作が、第1行列に対して実行されてよく、該第1行列を対称にする。
幾つかの実施形態では、第1行列は、方法300の動作を実行するよう構成されるプロセッサを含むチップのローカルメモリに格納されてよい。追加又は代替として、第1行列は、方法300の動作を実行するよう構成されるプロセッサと同じチップに存在しないメモリ又はデータ記憶装置に格納されてよい。
幾つかの実施形態では、第1行列の転置行列である転置された第1行列が取得されてよい。例えば、第1行列が非対称である例で、転置された第1行列が取得されてよい。幾つかの例では、転置された第1行列は、既に生成されていてよく、アクセス又は格納されてよい。追加又は代替として、転置された第1行列は、第1行列に関して適用可能な転置操作を実行することにより生成されてよい。
幾つかの実施形態では、転置された第2行列は、方法300の動作を実行するよう構成されるプロセッサを含むチップのローカルメモリに格納されてよい。追加又は代替として、転置された第2行列は、方法300の動作を実行するよう構成されるプロセッサと同じチップに存在しないメモリ又はデータ記憶装置に格納されてよい。
ブロック304で、最適化問題に関連する第2行列が取得されてよい。第2行列を取得するステップは、コンピュータ可読媒体に格納された第2行列にアクセスするステップを含んでよい。追加又は代替として、第2行列を取得するステップは、コンピュータ可読媒体に第2行列を格納するステップを含んでよい。
図1Aの第2行列114は、第21行列の一例であってよい。幾つかの実施形態では、最適化問題は、二次割り当て問題であってよく、第2行列は、二次割り当て問題のフロー行列であってよい。幾つかの実施形態では、第2行列は対称であってよい。追加又は代替として、第2行列は非対称であってよい。第1行列が非対称である幾つかの例では、1つ以上の適用可能な動作が、第1行列に対して実行されてよく、該第1行列を対称にする。
幾つかの実施形態では、第2行列は、方法300の動作を実行するよう構成されるプロセッサを含むチップのローカルメモリに格納されてよい。追加又は代替として、第2行列は、方法300の動作を実行するよう構成されるプロセッサと同じチップに存在しないメモリ又はデータ記憶装置に格納されてよい。
幾つかの実施形態では、第2行列の転置行列である転置された第2行列が取得されてよい。例えば、第2行列が非対称である例で、転置された第2行列が取得されてよい。幾つかの例では、転置された第2行列は、既に生成されていてよく、アクセス又は格納されてよい。追加又は代替として、転置された第2行列は、第2行列に関して適用可能な転置操作を実行することにより生成されてよい。
幾つかの実施形態では、転置された第2行列は、方法300の動作を実行するよう構成されるプロセッサを含むチップのローカルメモリに格納されてよい。追加又は代替として、転置された第2行列は、方法300の動作を実行するよう構成されるプロセッサと同じチップに存在しないメモリ又はデータ記憶装置に格納されてよい。
第1行列及び第2行列は、システムのそれぞれの変数に与えられる対応する重みに関連してよい。ここで、対応する重みは、それぞれの変数とシステムの1つ以上の他の変数との間の関係に関連してよい。システムは、最適化問題を解くために使用され得る及び/又は最適化問題に対応し得る任意の適用可能なシステムを含んでよい。図1Aのシステム106は、システムの一例である。
ブロック306で、最適化問題に関連するローカルフィールド行列が取得されてよい。ローカルフィールド行列は、それぞれの重みにより影響されるシステムの変数同士の相互作用を示す行列であってよい。ここで、相互作用は、最適化問題を解く間の変数の状態の変化に関連する。図1AのLFM110は、取得され得るローカルフィールド行列の一例である。
ローカルフィールド行列を取得するステップは、コンピュータ可読媒体に格納されたローカルフィールド行列にアクセスするステップを含んでよい。追加又は代替として、ローカルフィールド行列を取得するステップは、コンピュータ可読媒体にローカルフィールド行列を格納するステップを含んでよい。幾つかの実施形態では、ローカルフィールド行列を取得するステップは、システムの状態変数行列に基づき、及び第1行列及び第2行列に基づき、ローカルフィールド行列を生成するステップを含んでよい。追加又は代替として、ローカルフィールド行列は、第1転置行列及び/又は第2転置行列に基づき生成されてよい。例えば、ローカルフィールド行列は、図1Aに関して上述した、式(2)及び式(7)〜(11)のうちの1つ以上に基づき生成されてよい。
ブロック308で、ローカルフィールド行列が更新されてよい。幾つかの実施形態では、ローカルフィールド行列は、最適化問題を解く間のシステムの1つ以上の変数の状態変化に応答して更新されてよい。上述のように、状態変化は、システムに関して決定され得るエネルギ値に基づき受け入れられてよい。
ローカルフィールド行列を更新するステップは、更新される1つ以上の変数に対応するローカルフィールド行列の第3部分に対応する、第1行列の第1部分及び第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含んでよい。これら又は他の実施形態では、更新するステップは、(例えば、第1行列及び/又は第2行列が非対称である例では)転置された第1行列及び/又は転置された第2行列に関して1つ以上の算術演算を実行するステップを含んでよい。
例えば、ローカルフィールド行列は、幾つかの実施形態では、図1A〜1Fに関して上述したような第1行列の第1部分と第2行列の第1部分との間の差に関して、1つ以上のテンソル積演算を実行することにより更新されてよい。追加又は代替として、図1A〜1Fに関しても上述したように、算術演算は、転置された第1行列及び/又は転置された第2行列に関する1つ以上のテンソル積演算を含んでよい。
上述のように、更新するステップは、第1行列及び第2行列に基づき(幾つかの例では、転置された第1行列及び転置された第2行列に基づき)、重みを動的に決定することにより、実行されてよい。従って、グローバル重み行列の記憶は省略されてよい。上述したように、グローバル重み行列の記憶を省略することは、最適化問題を解く際に使用され得るメモリリソースの量を削減し得る。更に、上述したように、メモリリソースの量の削減は、最適化問題を解く際に使用される情報のオンチップ記憶を可能にすることにより、最適化問題を解くための時間量も削減し得る。
ブロック310で、システムのエネルギ値は、更新されたローカルフィールド行列に基づき更新されてよい。例えば、システムのエネルギ値は、上述の式(3)又は式(4)に基づき、ローカルフィールド行列の更新された値を用いて更新されてよい。
ブロック312で、最適化問題に対する解は、エネルギ値に基づき決定されてよい。例えば、システムが更新されてよく、その結果、システムの状態が最大又は最小イジングエネルギを有するエネルギ値に関連付けられるまで、反復的方法で任意の回数だけ、ローカルフィールド行列が更新されてよい。このような状況におけるシステム状態は、最適化問題に対する解として使用されてよい。
変更、追加、又は省略が、本開示の範囲から逸脱することなく方法300に対して行われてよい。例えば、方法300の動作は、異なる順序で実施されてよい。追加又は代替として、2以上の動作が同時に実行されてよい。さらに、概説された工程及び動作は例として提供されたものであり、工程及び動作の幾つかは、開示した実施形態の本質を減じることなく、任意であり、少ない工程及び動作に結合され、又は追加の工程及び動作に拡張されてよい。
本開示で使用されるとき、用語「モジュール」又は「コンポーネント」は、モジュール又はコンポーネントの動作を実行するよう構成される特定ハードウェア実装、及び/又は、コンピューティングシステムの汎用ハードウェア(例えば、コンピュータ可読媒体、処理装置、等)により格納され及び/又は実行され得るソフトウェアオブジェクト又はソフトウェアルーチンを表してよい。幾つかの実施形態では、本明細書に記載されたものと異なるコンポーネント、モジュール、エンジン、及びサービスが、コンピューティングシステム上で実行するオブジェクト又はプロセス(例えば、別個のスレッド)として実装されてよい。本明細書に記載されたシステム及び方法のうちの一部は、概して(汎用ハードウェアに格納される及び/又はそれにより実行される)ソフトウェアで実装されるとして記載されたが、専用ハードウェア実装又はソフトウェア及び専用ハードウェア実装の組み合わせも、可能であり想定される。この記載において、「コンピューティングエンティティ」は、本開示において前述した任意のコンピューティングシステム、又はコンピューティングシステム上で実行する任意のモジュール若しくはモジュールの組み合わせであってよい。
本開示で及び特に添付の特許請求の範囲(例えば、添付の請求項本体)で使用される用語は、通常、「広義」の用語として意図される(例えば、用語「含む」は「含むが、これに限定されない」と解釈されるべきであり、用語「有する」は「有するが、これに限定されない」と解釈されるべきである、等)。
さらに、特定数の導入された請求項の列挙が意図される場合、このような意図は、請求項中に明示的に示され、このような列挙のない場合、このような意図は存在しない。例えば、理解の支援として、以下の添付の請求項は、請求項の列挙を導入するために、導入フレーズ「少なくとも1つ」及び「1つ以上」の使用を含み得る。しかしながら、このようなフレーズの使用は、同じ請求項が導入フレーズ「1つ以上」又は「少なくとも1つ」及び不定冠詞「a」又は「an」を含むときでも(例えば、「a」及び/又は「an」は「少なくとも1つ」又は「1つ以上」を意味すると解釈されるべきである)、不定冠詞「a」又は「an」による請求項の列挙の導入が、このような導入された請求項の列挙を含む任意の特定の請求項を、1つのこのような列挙のみを含む実施形態に限定することを意味すると考えられるべきではない。つまり、同じことが、請求項の列挙を導入するために使用される定冠詞の使用にも当てはまる。
さらに、特定数の導入された請求項の列挙が明示的に記載される場合、当業者は、このような列挙が、少なくとも列挙された数を意味すると解釈されるべきであることを理解する(例えば、他の修飾のない「2つの列挙」の記載は、少なくとも2つの列挙、又は2以上の列挙を意味する)。さらに、「A、B、及びC等のうちの少なくとも1つ」又は「A、B、及びC等のうちの1つ以上」又は「A、B、又はC等のうちの少なくとも1つ」又は「A、B、又はC等のうちの1つ以上」と同様の記載が使用される例では、通常、このような構成は、A単独で、B単独で、C単独で、A及びBを一緒に、A及びCを一緒に、B及びCを一緒に、又はA、B、及びCを一緒に、等を含むことを意図する。更に、用語「及び/又は」の使用は、この方法で解釈されることが意図される。
さらに、2以上の選択的な用語を表す任意の離接的な語又はフレーズは、説明、請求項、又は図面にあるかにかかわらず、用語のうちの1つ、用語のうちのいずれか、又は両方の用語を含む可能性を想定すると理解されるべきである。例えば、フレーズ「A又はB」は、用語「及び/又は」が他の場所で使用される場合でも、「A」又は「B」又は「A及びB」の可能性を含むと理解されるべきである。
本開示に記載された全ての例及び条件付き言語は、読者が本開示及び本開示が技術を更に発展させることに貢献する概念を理解するのを支援する教示目的を意図しており、そのような具体的に列挙された例及び条件に限定されないと解釈されるべきである。本開示の実施形態は詳細に記載されたが、本開示の精神及び範囲から逸脱することなく、これらに種々の変更、代替、及び選択が行われ得る。
以上の実施形態に加えて、更に以下の付記を開示する。
(付記1)
方法であって、
システムに関連する最適化問題に関連付けられた第1行列を取得するステップと、
前記最適化問題に関連付けられた第2行列を取得するステップであって、前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に対して与えられた対応する重みに関連し、前記対応する重みは前記それぞれの変数と1つ以上の他の変数との間の関係に関連する、ステップと、
それぞれの重みに影響される前記システムの前記変数同士の相互作用を示すローカルフィールド行列を取得するステップであって、前記相互作用は、前記最適化問題を解く間の前記変数の状態の変化に関連する、ステップと、
前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記ローカルフィールド行列を更新するステップであって、前記更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含む、ステップと、
前記更新されたローカルフィールド行列に基づき、エネルギ値を更新するステップと、
前記エネルギ値に基づき、前記最適化問題の解を決定するステップと、
を含む方法。
(付記2)
前記最適化問題は二次割り当て問題であり、前記第1行列は前記二次割り当て問題の距離行列であり、前記第2行列は前記二次割り当て問題のフロー行列である、付記1に記載の方法。
(付記3)
前記第1行列及び第2行列は対称的であり、前記ローカルフィールド行列を更新するステップは、前記1つ以上の算術演算として、前記第1行列の前記第1部分と前記第2行列の前記第2部分との間の差に関してテンソル積演算を実行するステップを含む、付記1に記載の方法。
(付記4)
前記第1行列及び第2行列は非対称的であり、前記ローカルフィールド行列を更新するステップは、転置された第1行列および転置された第2行列に関して1つ以上の算術演算を実行するステップを含む、付記1に記載の方法。
(付記5)
前記最適化問題を解く間に前記重みのグローバル重み行列を格納することを省略するとともに、前記第1行列、前記第2行列、及び前記ローカルフィールド行列を格納するステップを更に含む、付記1に記載の方法。
(付記6)
前記システムは、ボルツマンマシンとして構成されるニューラルネットワークである、付記1に記載の方法。
(付記7)
前記1つ以上の変数の前記状態変化は、前記エネルギ値に基づき受け入れられる、付記1に記載の方法。
(付記8)
命令を格納するよう構成される1つ以上の非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されることに応答して、システムに動作を実行させ、前記動作は、
システムに関連する最適化問題に関連付けられた第1行列を取得するステップと、
前記最適化問題に関連付けられた第2行列を取得するステップであって、前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に対して与えられた対応する重みに関連し、前記対応する重みは前記それぞれの変数と1つ以上の他の変数との間の関係に関連する、ステップと、
それぞれの重みに影響される前記システムの前記変数同士の相互作用を示すローカルフィールド行列を取得するステップであって、前記相互作用は、前記最適化問題を解く間の前記変数の状態の変化に関連する、ステップと、
前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記ローカルフィールド行列を更新するステップであって、前記更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含む、ステップと、
前記更新されたローカルフィールド行列に基づき、エネルギ値を更新するステップと、
前記エネルギ値に基づき、前記最適化問題の解を決定するステップと、
を含む、1つ以上の非一時的コンピュータ可読記憶媒体。
(付記9)
前記最適化問題は二次割り当て問題であり、前記第1行列は前記二次割り当て問題の距離行列であり、前記第2行列は前記二次割り当て問題のフロー行列である、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記10)
前記第1行列及び第2行列は対称的であり、前記ローカルフィールド行列を更新するステップは、前記1つ以上の算術演算として、前記第1行列の前記第1部分と前記第2行列の前記第2部分との間の差に関してテンソル積演算を実行するステップを含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記11)
前記第1行列及び第2行列は非対称的であり、前記ローカルフィールド行列を更新するステップは、転置された第1行列および転置された第2行列に関して1つ以上の算術演算を実行するステップを含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記12)
前記動作は、前記最適化問題を解く間に前記重みのグローバル重み行列を格納することを省略するとともに、前記第1行列、前記第2行列、及び前記ローカルフィールド行列を格納するステップを更に含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記13)
前記システムは、ボルツマンマシンとして構成されるニューラルネットワークである、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記14)
前記1つ以上の変数の前記状態変化は、前記エネルギ値に基づき受け入れられる、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記15)
動作を実行するよう構成されるハードウェアを含むシステムであって、前記動作は、
システムに関連する最適化問題に関連付けられた第1行列を取得するステップと、
前記最適化問題に関連付けられた第2行列を取得するステップであって、前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に対して与えられた対応する重みに関連し、前記対応する重みは前記それぞれの変数と1つ以上の他の変数との間の関係に関連する、ステップと、
それぞれの重みに影響される前記システムの前記変数同士の相互作用を示すローカルフィールド行列を取得するステップであって、前記相互作用は、前記最適化問題を解く間の前記変数の状態の変化に関連する、ステップと、
前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記ローカルフィールド行列を更新するステップであって、前記更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含む、ステップと、
前記更新されたローカルフィールド行列に基づき、エネルギ値を更新するステップと、
前記エネルギ値に基づき、前記最適化問題の解を決定するステップと、
を含むシステム。
(付記16)
前記最適化問題は二次割り当て問題であり、前記第1行列は前記二次割り当て問題の距離行列であり、前記第2行列は前記二次割り当て問題のフロー行列である、付記15に記載のシステム。
(付記17)
前記第1行列及び第2行列は対称的であり、前記ローカルフィールド行列を更新するステップは、前記1つ以上の算術演算として、前記第1行列の前記第1部分と前記第2行列の前記第2部分との間の差に関してテンソル積演算を実行するステップを含む、付記15に記載のシステム。
(付記18)
前記第1行列及び第2行列は非対称的であり、前記ローカルフィールド行列を更新するステップは、転置された第1行列および転置された第2行列に関して1つ以上の算術演算を実行するステップを含む、付記15に記載のシステム。
(付記19)
前記動作は、前記最適化問題を解く間に前記重みのグローバル重み行列を格納することを省略するとともに、前記第1行列、前記第2行列、及び前記ローカルフィールド行列を格納するステップを更に含む、付記15に記載のシステム。
(付記20)
前記1つ以上の変数の前記状態変化は、前記エネルギ値に基づき受け入れられる、付記15に記載のシステム。
(付記1)
方法であって、
システムに関連する最適化問題に関連付けられた第1行列を取得するステップと、
前記最適化問題に関連付けられた第2行列を取得するステップであって、前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に対して与えられた対応する重みに関連し、前記対応する重みは前記それぞれの変数と1つ以上の他の変数との間の関係に関連する、ステップと、
それぞれの重みに影響される前記システムの前記変数同士の相互作用を示すローカルフィールド行列を取得するステップであって、前記相互作用は、前記最適化問題を解く間の前記変数の状態の変化に関連する、ステップと、
前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記ローカルフィールド行列を更新するステップであって、前記更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含む、ステップと、
前記更新されたローカルフィールド行列に基づき、エネルギ値を更新するステップと、
前記エネルギ値に基づき、前記最適化問題の解を決定するステップと、
を含む方法。
(付記2)
前記最適化問題は二次割り当て問題であり、前記第1行列は前記二次割り当て問題の距離行列であり、前記第2行列は前記二次割り当て問題のフロー行列である、付記1に記載の方法。
(付記3)
前記第1行列及び第2行列は対称的であり、前記ローカルフィールド行列を更新するステップは、前記1つ以上の算術演算として、前記第1行列の前記第1部分と前記第2行列の前記第2部分との間の差に関してテンソル積演算を実行するステップを含む、付記1に記載の方法。
(付記4)
前記第1行列及び第2行列は非対称的であり、前記ローカルフィールド行列を更新するステップは、転置された第1行列および転置された第2行列に関して1つ以上の算術演算を実行するステップを含む、付記1に記載の方法。
(付記5)
前記最適化問題を解く間に前記重みのグローバル重み行列を格納することを省略するとともに、前記第1行列、前記第2行列、及び前記ローカルフィールド行列を格納するステップを更に含む、付記1に記載の方法。
(付記6)
前記システムは、ボルツマンマシンとして構成されるニューラルネットワークである、付記1に記載の方法。
(付記7)
前記1つ以上の変数の前記状態変化は、前記エネルギ値に基づき受け入れられる、付記1に記載の方法。
(付記8)
命令を格納するよう構成される1つ以上の非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されることに応答して、システムに動作を実行させ、前記動作は、
システムに関連する最適化問題に関連付けられた第1行列を取得するステップと、
前記最適化問題に関連付けられた第2行列を取得するステップであって、前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に対して与えられた対応する重みに関連し、前記対応する重みは前記それぞれの変数と1つ以上の他の変数との間の関係に関連する、ステップと、
それぞれの重みに影響される前記システムの前記変数同士の相互作用を示すローカルフィールド行列を取得するステップであって、前記相互作用は、前記最適化問題を解く間の前記変数の状態の変化に関連する、ステップと、
前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記ローカルフィールド行列を更新するステップであって、前記更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含む、ステップと、
前記更新されたローカルフィールド行列に基づき、エネルギ値を更新するステップと、
前記エネルギ値に基づき、前記最適化問題の解を決定するステップと、
を含む、1つ以上の非一時的コンピュータ可読記憶媒体。
(付記9)
前記最適化問題は二次割り当て問題であり、前記第1行列は前記二次割り当て問題の距離行列であり、前記第2行列は前記二次割り当て問題のフロー行列である、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記10)
前記第1行列及び第2行列は対称的であり、前記ローカルフィールド行列を更新するステップは、前記1つ以上の算術演算として、前記第1行列の前記第1部分と前記第2行列の前記第2部分との間の差に関してテンソル積演算を実行するステップを含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記11)
前記第1行列及び第2行列は非対称的であり、前記ローカルフィールド行列を更新するステップは、転置された第1行列および転置された第2行列に関して1つ以上の算術演算を実行するステップを含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記12)
前記動作は、前記最適化問題を解く間に前記重みのグローバル重み行列を格納することを省略するとともに、前記第1行列、前記第2行列、及び前記ローカルフィールド行列を格納するステップを更に含む、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記13)
前記システムは、ボルツマンマシンとして構成されるニューラルネットワークである、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記14)
前記1つ以上の変数の前記状態変化は、前記エネルギ値に基づき受け入れられる、付記8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
(付記15)
動作を実行するよう構成されるハードウェアを含むシステムであって、前記動作は、
システムに関連する最適化問題に関連付けられた第1行列を取得するステップと、
前記最適化問題に関連付けられた第2行列を取得するステップであって、前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に対して与えられた対応する重みに関連し、前記対応する重みは前記それぞれの変数と1つ以上の他の変数との間の関係に関連する、ステップと、
それぞれの重みに影響される前記システムの前記変数同士の相互作用を示すローカルフィールド行列を取得するステップであって、前記相互作用は、前記最適化問題を解く間の前記変数の状態の変化に関連する、ステップと、
前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記ローカルフィールド行列を更新するステップであって、前記更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含む、ステップと、
前記更新されたローカルフィールド行列に基づき、エネルギ値を更新するステップと、
前記エネルギ値に基づき、前記最適化問題の解を決定するステップと、
を含むシステム。
(付記16)
前記最適化問題は二次割り当て問題であり、前記第1行列は前記二次割り当て問題の距離行列であり、前記第2行列は前記二次割り当て問題のフロー行列である、付記15に記載のシステム。
(付記17)
前記第1行列及び第2行列は対称的であり、前記ローカルフィールド行列を更新するステップは、前記1つ以上の算術演算として、前記第1行列の前記第1部分と前記第2行列の前記第2部分との間の差に関してテンソル積演算を実行するステップを含む、付記15に記載のシステム。
(付記18)
前記第1行列及び第2行列は非対称的であり、前記ローカルフィールド行列を更新するステップは、転置された第1行列および転置された第2行列に関して1つ以上の算術演算を実行するステップを含む、付記15に記載のシステム。
(付記19)
前記動作は、前記最適化問題を解く間に前記重みのグローバル重み行列を格納することを省略するとともに、前記第1行列、前記第2行列、及び前記ローカルフィールド行列を格納するステップを更に含む、付記15に記載のシステム。
(付記20)
前記1つ以上の変数の前記状態変化は、前記エネルギ値に基づき受け入れられる、付記15に記載のシステム。
106 システム
102 エネルギエンジン
110 ローカルフィールド行列
104 システム更新
112 第1行列
114 第2行列
108 ローカルフィールド行列エンジン
102 エネルギエンジン
110 ローカルフィールド行列
104 システム更新
112 第1行列
114 第2行列
108 ローカルフィールド行列エンジン
Claims (20)
- 方法であって、
システムに関連する最適化問題に関連付けられた第1行列を取得するステップと、
前記最適化問題に関連付けられた第2行列を取得するステップであって、前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に対して与えられた対応する重みに関連し、前記対応する重みは前記それぞれの変数と1つ以上の他の変数との間の関係に関連する、ステップと、
それぞれの重みに影響される前記システムの前記変数同士の相互作用を示すローカルフィールド行列を取得するステップであって、前記相互作用は、前記最適化問題を解く間の前記変数の状態の変化に関連する、ステップと、
前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記ローカルフィールド行列を更新するステップであって、前記更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含む、ステップと、
前記更新されたローカルフィールド行列に基づき、エネルギ値を更新するステップと、
前記エネルギ値に基づき、前記最適化問題の解を決定するステップと、
を含む方法。 - 前記最適化問題は二次割り当て問題であり、前記第1行列は前記二次割り当て問題の距離行列であり、前記第2行列は前記二次割り当て問題のフロー行列である、請求項1に記載の方法。
- 前記第1行列及び第2行列は対称的であり、前記ローカルフィールド行列を更新するステップは、前記1つ以上の算術演算として、前記第1行列の前記第1部分と前記第2行列の前記第2部分との間の差に関してテンソル積演算を実行するステップを含む、請求項1に記載の方法。
- 前記第1行列及び第2行列は非対称的であり、前記ローカルフィールド行列を更新するステップは、転置された第1行列および転置された第2行列に関して1つ以上の算術演算を実行するステップを含む、請求項1に記載の方法。
- 前記最適化問題を解く間に前記重みのグローバル重み行列を格納することを省略するとともに、前記第1行列、前記第2行列、及び前記ローカルフィールド行列を格納するステップを更に含む、請求項1に記載の方法。
- 前記システムは、ボルツマンマシンとして構成されるニューラルネットワークである、請求項1に記載の方法。
- 前記1つ以上の変数の前記状態変化は、前記エネルギ値に基づき受け入れられる、請求項1に記載の方法。
- 命令を格納するよう構成される1つ以上の非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されることに応答して、システムに動作を実行させ、前記動作は、
システムに関連する最適化問題に関連付けられた第1行列を取得するステップと、
前記最適化問題に関連付けられた第2行列を取得するステップであって、前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に対して与えられた対応する重みに関連し、前記対応する重みは前記それぞれの変数と1つ以上の他の変数との間の関係に関連する、ステップと、
それぞれの重みに影響される前記システムの前記変数同士の相互作用を示すローカルフィールド行列を取得するステップであって、前記相互作用は、前記最適化問題を解く間の前記変数の状態の変化に関連する、ステップと、
前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記ローカルフィールド行列を更新するステップであって、前記更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含む、ステップと、
前記更新されたローカルフィールド行列に基づき、エネルギ値を更新するステップと、
前記エネルギ値に基づき、前記最適化問題の解を決定するステップと、
を含む、1つ以上の非一時的コンピュータ可読記憶媒体。 - 前記最適化問題は二次割り当て問題であり、前記第1行列は前記二次割り当て問題の距離行列であり、前記第2行列は前記二次割り当て問題のフロー行列である、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
- 前記第1行列及び第2行列は対称的であり、前記ローカルフィールド行列を更新するステップは、前記1つ以上の算術演算として、前記第1行列の前記第1部分と前記第2行列の前記第2部分との間の差に関してテンソル積演算を実行するステップを含む、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
- 前記第1行列及び第2行列は非対称的であり、前記ローカルフィールド行列を更新するステップは、転置された第1行列および転置された第2行列に関して1つ以上の算術演算を実行するステップを含む、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
- 前記動作は、前記最適化問題を解く間に前記重みのグローバル重み行列を格納することを省略するとともに、前記第1行列、前記第2行列、及び前記ローカルフィールド行列を格納するステップを更に含む、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
- 前記システムは、ボルツマンマシンとして構成されるニューラルネットワークである、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
- 前記1つ以上の変数の前記状態変化は、前記エネルギ値に基づき受け入れられる、請求項8に記載の1つ以上の非一時的コンピュータ可読記憶媒体。
- 動作を実行するよう構成されるハードウェアを含むシステムであって、前記動作は、
システムに関連する最適化問題に関連付けられた第1行列を取得するステップと、
前記最適化問題に関連付けられた第2行列を取得するステップであって、前記第1行列及び前記第2行列は、前記システムのそれぞれの変数に対して与えられた対応する重みに関連し、前記対応する重みは前記それぞれの変数と1つ以上の他の変数との間の関係に関連する、ステップと、
それぞれの重みに影響される前記システムの前記変数同士の相互作用を示すローカルフィールド行列を取得するステップであって、前記相互作用は、前記最適化問題を解く間の前記変数の状態の変化に関連する、ステップと、
前記最適化問題を解く間の前記システムの1つ以上の変数の状態変化に応答して、前記ローカルフィールド行列を更新するステップであって、前記更新するステップは、前記1つ以上の変数に対応する前記ローカルフィールド行列の第3部分に対応する、前記第1行列の第1部分及び前記第2行列の第2部分に関して、1つ以上の算術演算を実行するステップを含む、ステップと、
前記更新されたローカルフィールド行列に基づき、エネルギ値を更新するステップと、
前記エネルギ値に基づき、前記最適化問題の解を決定するステップと、
を含むシステム。 - 前記最適化問題は二次割り当て問題であり、前記第1行列は前記二次割り当て問題の距離行列であり、前記第2行列は前記二次割り当て問題のフロー行列である、請求項15に記載のシステム。
- 前記第1行列及び第2行列は対称的であり、前記ローカルフィールド行列を更新するステップは、前記1つ以上の算術演算として、前記第1行列の前記第1部分と前記第2行列の前記第2部分との間の差に関してテンソル積演算を実行するステップを含む、請求項15に記載のシステム。
- 前記第1行列及び第2行列は非対称的であり、前記ローカルフィールド行列を更新するステップは、転置された第1行列および転置された第2行列に関して1つ以上の算術演算を実行するステップを含む、請求項15に記載のシステム。
- 前記動作は、前記最適化問題を解く間に前記重みのグローバル重み行列を格納することを省略するとともに、前記第1行列、前記第2行列、及び前記ローカルフィールド行列を格納するステップを更に含む、請求項15に記載のシステム。
- 前記1つ以上の変数の前記状態変化は、前記エネルギ値に基づき受け入れられる、請求項15に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/849,887 US11562211B2 (en) | 2020-04-15 | 2020-04-15 | System local field matrix updates |
US16/849887 | 2020-04-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021170330A true JP2021170330A (ja) | 2021-10-28 |
Family
ID=74586868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021064945A Pending JP2021170330A (ja) | 2020-04-15 | 2021-04-06 | システムのローカルフィールド行列の更新 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11562211B2 (ja) |
EP (1) | EP3896585A1 (ja) |
JP (1) | JP2021170330A (ja) |
CN (1) | CN113536222A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11562211B2 (en) * | 2020-04-15 | 2023-01-24 | Fujitsu Limited | System local field matrix updates |
US20220414184A1 (en) | 2021-06-18 | 2022-12-29 | Fujitsu Limited | Data processing apparatus and data processing method |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2224256A1 (en) * | 2009-02-25 | 2010-09-01 | C.R.F. Società Consortile per Azioni | Reliability estimate of an apparatus |
US9501747B2 (en) * | 2012-12-18 | 2016-11-22 | D-Wave Systems Inc. | Systems and methods that formulate embeddings of problems for solving by a quantum processor |
CN108369668B (zh) * | 2015-10-16 | 2022-05-31 | D-波系统公司 | 用于创建和使用量子玻尔兹曼机的系统和方法 |
JP6773970B2 (ja) * | 2016-09-09 | 2020-10-21 | 富士通株式会社 | 情報処理装置、イジング装置及び情報処理装置の制御方法 |
US10248906B2 (en) * | 2016-12-28 | 2019-04-02 | Intel Corporation | Neuromorphic circuits for storing and generating connectivity information |
US20190391807A1 (en) | 2018-06-20 | 2019-12-26 | Fujitsu Limited | Computer-readable recording medium storing optimization problem computing program and optimization problem computing system |
JP7071638B2 (ja) * | 2018-07-31 | 2022-05-19 | 富士通株式会社 | 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム |
JP7111966B2 (ja) * | 2018-09-03 | 2022-08-03 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
JP7197789B2 (ja) * | 2019-03-01 | 2022-12-28 | 富士通株式会社 | 最適化装置及び最適化装置の制御方法 |
JP7256378B2 (ja) * | 2019-04-10 | 2023-04-12 | 富士通株式会社 | 最適化システムおよび最適化システムの制御方法 |
US11562211B2 (en) * | 2020-04-15 | 2023-01-24 | Fujitsu Limited | System local field matrix updates |
-
2020
- 2020-04-15 US US16/849,887 patent/US11562211B2/en active Active
-
2021
- 2021-02-10 EP EP21156231.9A patent/EP3896585A1/en active Pending
- 2021-03-24 CN CN202110314454.6A patent/CN113536222A/zh active Pending
- 2021-04-06 JP JP2021064945A patent/JP2021170330A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3896585A1 (en) | 2021-10-20 |
CN113536222A (zh) | 2021-10-22 |
US11562211B2 (en) | 2023-01-24 |
US20210326679A1 (en) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593623B2 (en) | Spiking neural network accelerator using external memory | |
KR101959376B1 (ko) | 멀티 코어 최적화된 순환 신경망을 위한 시스템 및 방법 | |
US8131660B2 (en) | Reconfigurable hardware accelerator for boolean satisfiability solver | |
JP5865456B1 (ja) | 半導体装置 | |
Fidjeland et al. | Accelerated simulation of spiking neural networks using GPUs | |
US11366998B2 (en) | Neuromorphic accelerator multitasking | |
JP2016051349A (ja) | 半導体装置 | |
US20190188569A1 (en) | Parallel Forward and Backward Propagation | |
US11663452B2 (en) | Processor array for processing sparse binary neural networks | |
JP2021170330A (ja) | システムのローカルフィールド行列の更新 | |
Han et al. | A novel ReRAM-based processing-in-memory architecture for graph traversal | |
Mandal et al. | COIN: Communication-aware in-memory acceleration for graph convolutional networks | |
Jin et al. | GPUSGD: A GPU‐accelerated stochastic gradient descent algorithm for matrix factorization | |
CN108805277A (zh) | 基于多fpga的深度信念网络加速平台及其设计方法 | |
Zou et al. | Massively simulating adiabatic bifurcations with FPGA to solve combinatorial optimization | |
Zhao et al. | Distributed optimization of graph convolutional network using subgraph variance | |
US20210150323A1 (en) | Methods and apparatus to implement a neural network | |
US11070205B1 (en) | Glitch-free multiplexer | |
Zhou et al. | Hygraph: Accelerating graph processing with hybrid memory-centric computing | |
US11544189B2 (en) | System and method for memory management | |
Lin et al. | Accelerating GNN training on cpu multi-FPGA heterogeneous platform | |
JP2016066378A (ja) | 半導体装置および情報処理方法 | |
US20210232366A1 (en) | Dynamic directional rounding | |
US11900239B2 (en) | Systems and methods for accelerating sparse neural network execution | |
Chang et al. | Guest editorial: IEEE transactions on computers special section on emerging non-volatile memory technologies: From devices to architectures and systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240111 |