JP6773970B2 - 情報処理装置、イジング装置及び情報処理装置の制御方法 - Google Patents

情報処理装置、イジング装置及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP6773970B2
JP6773970B2 JP2016176040A JP2016176040A JP6773970B2 JP 6773970 B2 JP6773970 B2 JP 6773970B2 JP 2016176040 A JP2016176040 A JP 2016176040A JP 2016176040 A JP2016176040 A JP 2016176040A JP 6773970 B2 JP6773970 B2 JP 6773970B2
Authority
JP
Japan
Prior art keywords
value
neuron
state
circuit
neurons
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.)
Active
Application number
JP2016176040A
Other languages
English (en)
Other versions
JP2018041351A (ja
Inventor
田村 泰孝
泰孝 田村
聡 松原
聡 松原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016176040A priority Critical patent/JP6773970B2/ja
Priority to US15/690,313 priority patent/US10762415B2/en
Publication of JP2018041351A publication Critical patent/JP2018041351A/ja
Application granted granted Critical
Publication of JP6773970B2 publication Critical patent/JP6773970B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Processing (AREA)
  • Error Detection And Correction (AREA)
  • Logic Circuits (AREA)

Description

本発明は、情報処理装置、イジング装置及び情報処理装置の制御方法に関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いたイジング装置(ボルツマンマシンと呼ばれる場合もある)を用いる方法がある。イジング装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
イジング装置は、ニューラルネットワークを用いてモデル化することもできる。その場合、イジング装置に含まれる複数のユニット(ビット)のそれぞれが、他のビットの状態と、他のビットと自身との結合の強さを示す重み値(結合係数とも呼ばれる)とに応じて0または1を状態値として出力するニューロンとして機能する。イジング装置は、たとえば、シミュレーテッド・アニーリングにより、上記のようなエネルギー関数(コスト関数、目的関数とも呼ばれる)の最小値が得られる各ニューロンの状態値の組み合わせを、解として求める。
従来、イジング装置をハードウェアで実現することによって、計算時間を短縮することが提案されている。
また、ハードウェアで実現された複数のイジング装置のそれぞれを1つのニューロンとして機能させ、並列処理させる手法がある。ただ、計算の収束性を考慮して、複数のニューロンのうち、1つだけが更新を許容される。
特開平3−100857号公報 国際公開第2014/192153号
NICHOLAS METROPOLIS, ARIANNA W. ROSENBLUTH, MARSHALL N. ROSENBLUTH, AUGUSTA H. TELLER, AND EDWARD TELLER, "Equation of State Calculations by Fast Computing Machines," THE JOURNAL OF CHEMICAL PHYSICS VOLUME 21, NUMBER 6 JUNE, 1953
複数のイジング装置のそれぞれを1つのニューロンとして機能させ、並列処理させる場合、更新を許容するニューロンをランダムに1つ選択することが考えられる。しかし、選択されたニューロンの状態が遷移するとは限らず、状態が遷移しないニューロンが多く選択される場合も考えられ、並列処理を行っても計算速度をあまり向上できないという問題があった。
1つの側面では、本発明は、計算速度を向上できる情報処理装置、イジング装置及び情報処理装置の制御方法を提供することを目的とする。
1つの実施態様では、複数のニューロンのうち第1のニューロンと結合する複数の第2のニューロンの状態を示す複数の第1の状態値のそれぞれに、前記第1のニューロンと前記複数の第2のニューロンとの結合の強さをそれぞれ示す複数の重み値のうち、対応する第1のニューロンと第2のニューロンとの間の結合の強さを示す重み値を掛けた値の総和に基づいて算出される第1のエネルギー値を、前記複数の第2のニューロンのうち状態が更新された更新ニューロンの第1の識別情報と、更新された前記更新ニューロンの状態を示す第2の状態値とに基づいて更新した第2のエネルギー値を算出する算出回路と、前記第2のエネルギー値、または、前記第1のニューロンの状態の変化時におけるニューラルネットワークのエネルギー関数の変化分と、第1のノイズ値とに基づき、前記第1のニューロンの状態を示す第3の状態値の変化が可能か否かを判定した判定結果を示す判定信号を出力する状態遷移判定回路と、をそれぞれが有し、互いに異なる第1のニューロンについての判定信号をそれぞれ出力する複数のイジング装置と、前記複数のイジング装置のそれぞれが出力する判定信号に基づき、前記複数のニューロンのうち前記第3の状態値の変化が可能と判定された第1のニューロンを選択し、選択した前記第1のニューロンの第2の識別情報を前記第1の識別情報として出力する更新ニューロン選択回路と、を有する情報処理装置が提供される。
また、1つの実施態様では、イジング装置が提供される。また、1つの実施態様では、情報処理装置の制御方法が提供される。
1つの側面では、計算速度を向上できる。
第1の実施の形態の情報処理装置の一例を示す図である。 情報処理装置の動作の一例を示すフローチャートである。 シミュレーテッド・アニーリングの様子を示す図である。 第2の実施の形態の情報処理装置の一例を示す図である。 更新ニューロン選択回路の一例を示す図である。 選択回路部の一例を示す図である。 選択回路の一例を示す図である。 生成されるindexの一例を示す図である。 選択回路部の他の例を示す図である。 第2の実施の形態の情報処理装置の一例を示す図である。 第3の実施の形態における更新ニューロン選択回路の一例を示す図である。 ニューロン状態更新回路の一例を示す図である。 ノイズ発生回路の一例を示す図である。 第4の実施の形態の情報処理装置の一例を示す図である。 状態遷移判定回路の一例を示す図である。 更新検出/インデックス選択回路の一例を示す図である。 選択回路の一例を示す図である。 FPGAの一例を示す図である。 巡回セールスマン問題の計算の収束に要するサイクル数とイジング装置の並列数との関係を示すシミュレーション結果の一例である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の情報処理装置の一例を示す図である。
情報処理装置10は、複数のイジング装置11a1,…,11ai,…,11an、更新ニューロン選択回路12、ノイズ発生回路13を有している。
イジング装置11a1〜11anは、それぞれが互いに異なるニューロンとして機能し、それぞれが互いに異なるニューロンについての状態を示す状態値(0または1)と、状態値の変化が可能か否か(状態遷移の可否)を示す判定信号とを出力する。イジング装置11a1〜11anのそれぞれは、1つの半導体集積回路(チップ)で実現されてもよいし、情報処理装置10自体を1チップで実現することもできる。
イジング装置11a1〜11anは、ニューラルネットワークのイジング型のエネルギー関数の演算を、たとえば、DeGloriaアルゴリズムと呼ばれるアルゴリズムに基づく小規模なハードウェアで行うものである。なお、イジング型のエネルギー関数E(x)(以下全エネルギーと呼ぶ場合もある)は、たとえば、以下の式(1)で定義される。
Figure 0006773970
右辺の1項目は、全ニューロンから選択可能な2つのニューロンの全組み合わせについて、漏れと重複なく、2つのニューロンの状態値と重み値との積を積算したものである。状態値xiは、識別情報(以下indexと表記する)がiのニューロンの状態値を示している。Wijは、index=iのニューロンとindex=jのニューロンとの結合の強さを示す重み値である。なお、Wij=Wji、Wii=0である。
右辺の2項目は、全ニューロンのそれぞれのバイアス値と状態値との積を積算したものである。biは、index=iのニューロンのバイアス値を示している。
上記のようなエネルギー関数E(x)をハードウェアで表現するため、図1に示したイジング装置11a1〜11anのそれぞれは、局所場(以下ローカルフィールド値という)を演算する。たとえば、index=iのニューロンのローカルフィールド値hiは以下の式(2)で表される。
Figure 0006773970
右辺の1項目は、index=iのニューロンに対して結合する全ニューロンの複数の状態値のそれぞれに、その結合の強さを示す重み値を掛けた値の総和(積算値)である。
全ニューロンのうち、一度に状態値が更新されるニューロンの数を1つとすると、状態値が更新されるニューロンの結合先では、元のローカルフィールド値に対して、その更新による変化分を加算または減算すればよい。
たとえば、index=iのニューロンと結合するindex=jのニューロンの状態値xj(0または1)が、1−xjに変化したとき、index=iのニューロンのローカルフィールド値の変化分Δhiは、以下の式(3)で表される。
Figure 0006773970
式(3)において、1−2xjは、状態値xjが、0から1に変化したときには、+1となり、状態値xjが、1から0に変化したときには、−1となる。
また、index=iのニューロンの状態値xiの変化時のエネルギー関数(全エネルギー)の変化分ΔEiは以下の式(4)で表される。
Figure 0006773970
式(4)において、δxiは、状態値xiが、0から1に変化したときには、+1となり、状態値xiが、1から0に変化したときには、−1となる変数である。そのため、ローカルフィールド値hiが、0より小さければ、状態値xiを0から1へ更新することで、全エネルギーが減少し、ローカルフィールド値hiが、0より大きければ、状態値xiを1から0へ更新することで、全エネルギーが減少する。
情報処理装置10は、エネルギー値が最小となる状態値x1〜xnの組み合わせを、解として出力するものであるが、エネルギー値が最小ではない局所解にトラップされることを防止するために、ノイズ値を用いる。すなわち、情報処理装置10は、ローカルフィールド値h1〜hnにノイズ値を加算した値が0か1かに応じて、状態値x1〜xnを更新する。
このような情報処理装置10は、たとえば、以下に示すようなハードウェアで実現できる。
図1に示すようにイジング装置11a1は、エネルギー値算出回路20a1、状態遷移判定回路20b1を有している。
エネルギー値算出回路20a1は、index=1のニューロンと結合する複数のニューロンの状態値のそれぞれに、その結合の強さを示す重み値を掛けた値の総和に基づき第1のエネルギー値を算出する。また、エネルギー値算出回路20a1は、複数のニューロンのうち状態が更新されたニューロン(以下更新ニューロンという)のindexと、更新ニューロンの更新後の状態を示す状態値とに基づき第1のエネルギー値を更新して第2のエネルギー値を算出する。第1のエネルギー値及び第2のエネルギー値は、前述のローカルフィールド値に相当する。
エネルギー値算出回路20a1は、レジスタ21a1、選択回路22a1,23a1、乗算回路24a1、加算回路25a1、レジスタ26a1を有している。
レジスタ21a1は、n個の重み値W11,W12,…,W1nを格納する。
重み値W11,W12,…,W1nは、index=1のニューロンと、他のニューロン(index=2〜nのニューロン)との結合の強さを示す。たとえば、index=1のニューロンとindex=2のニューロンとの結合がなければ、重み値W12は0、結合があれば重み値W12は1、などとなる。
なお、上記のような重み値は、情報処理装置10内の図示しない制御装置または、情報処理装置10の外部の装置により、計算対象の問題に応じて予め計算され、レジスタ21a1に格納される。なお、上記のような重み値は、RAM(Random Access Memory)などのメモリに格納されてもよい。
選択回路22a1は、更新ニューロン選択回路12が出力するindexに基づき、レジスタ21a1に格納されている重み値W11〜W1nのうち1つを選択して出力する。
たとえば、index=nが選択回路22a1に入力されたとき、選択回路22a1は、重み値W1nを選択する。
選択回路23a1は、式(3)の1−2xjの演算を実現するものであり、更新ニューロン選択回路12が選択したニューロン(状態の更新が許容されたニューロン)の更新後の状態値に基づき、1または−1を選択して出力する。更新後の状態値が0のときには、選択回路23a1は、−1を選択して出力し、更新後の値が1のときには、選択回路23a1は、1を選択して出力する。
乗算回路24a1は、選択回路22a1が出力する重み値と、選択回路23a1が出力する値との積を出力する。
加算回路25a1は、乗算回路24a1が出力する値と、レジスタ26a1に格納されている値とを加算して出力する。
レジスタ26a1は、図示しないクロック信号に同期して、加算回路25a1が出力する値を取り込む。レジスタ26a1は、たとえば、フリップフロップである。なお、レジスタ26a1に格納される値の初期値は後述するバイアス値である。
なお、レジスタ26a1に取り込まれた値が、前述したローカルフィールド値であり、図1では、h1と表記されている。
状態遷移判定回路20b1は、ローカルフィールド値h1とノイズ発生回路13から供給されるノイズ値とに基づき、自ニューロンの状態値x1を算出するとともに、自ニューロンの状態値x1の変化が可能か否かを判定し、判定結果を示す判定信号を出力する。
状態遷移判定回路20b1は、加算回路21b1、比較回路22b1、XOR(Exclusive-OR:排他的論理和)回路23b1、レジスタ24b1,25b1を有している。
加算回路21b1は、レジスタ26a1が出力するローカルフィールド値h1に、ノイズ発生回路13が出力するノイズ値を加算して出力する。
比較回路22b1は、加算回路21b1が出力する値が、閾値(たとえば、0)以上のときには0を出力し、閾値より小さいときには1を出力する。
XOR回路23b1は、比較回路22b1が出力する値と、レジスタ24b1に格納されている値とに基づき判定信号を出力する。たとえば、XOR回路23b1は、比較回路22b1が出力する値と、レジスタ24b1に格納されている値が一致しているときは判定信号として状態値が変化しない旨を示す0を出力し、異なるときは判定信号として状態値の変化が可能である旨を示す1を出力する。
レジスタ24b1は、更新ニューロン選択回路12が出力するパルス信号の論理レベルが、たとえば、H(High)レベルになると、比較回路22b1が出力する値を取り込む。これにより、イジング装置11a1が出力するindex=1のニューロンの状態値x1が更新される。
レジスタ25b1は、イジング装置11a1が出力するindex=1を保持している。なお、indexは更新ニューロン選択回路12が生成するようにしてもよい。
イジング装置11a1〜11anのうち、イジング装置11a1以外についてもイジング装置11a1と同様の回路構成となっている。
すなわち、イジング装置11aiも、エネルギー値算出回路20ai、状態遷移判定回路20biを有している。エネルギー値算出回路20aiは、エネルギー値算出回路20a1と同様に、レジスタ21ai、選択回路22ai,23ai、乗算回路24ai、加算回路25ai、レジスタ26aiを有しており、ローカルフィールド値hiを算出する。状態遷移判定回路20biは、状態遷移判定回路20b1と同様に、加算回路21bi、比較回路22bi、XOR回路23bi、レジスタ24bi,25biを有している。そして、状態遷移判定回路20biは、index=iのニューロンの状態値xiを算出するとともに、状態値xiの変化の可否を示す判定信号を出力する。
また、イジング装置11anも、エネルギー値算出回路20an、状態遷移判定回路20bnを有している。エネルギー値算出回路20anは、エネルギー値算出回路20a1と同様に、レジスタ21an、選択回路22an,23an、乗算回路24an、加算回路25an、レジスタ26anを有しており、ローカルフィールド値hnを算出する。状態遷移判定回路20bnは、状態遷移判定回路20b1と同様に、加算回路21bn、比較回路22bn、XOR回路23bn、レジスタ24bn,25bnを有している。そして、状態遷移判定回路20bnは、index=nのニューロンの状態値xnを算出するとともに、状態値xnの変化の可否を示す判定信号を出力する。
更新ニューロン選択回路12は、レジスタ24b1〜24bnが出力する状態値x1〜xnと、レジスタ25b1〜25bnに格納されているindex=1〜nを受ける。そして、更新ニューロン選択回路12は、イジング装置11a1〜11anのそれぞれの状態遷移判定回路20b1〜20bnが出力する判定信号に基づき、状態値が変化できると判定されたニューロンがある場合には、そのニューロンを1つ選択する。さらに更新ニューロン選択回路12は、選択したニューロンのindexと更新後の状態値を、エネルギー値算出回路20a1〜20anに供給するindexと、状態値として出力する。
たとえば、更新ニューロン選択回路12は、イジング装置11a1,11anから、状態値x1,xnの変化が可能である旨を示す判定信号を受け、それ以外のイジング装置からは、状態値が変化しない旨を示す判定信号を受けたとする。このとき、更新ニューロン選択回路12は、状態値x1,xnの変化が可能なindex=1,nのニューロンのうち、1つを、たとえば、乱数値に基づきランダムに選択して、そのindexと状態値とを出力する。
図1では、index=nと、状態値xnが更新ニューロン選択回路12から出力された例が示されている。このとき、更新ニューロン選択回路12は、イジング装置11anのレジスタ24bnに供給するパルス信号の論理レベルをHレベルにして、状態値xnを取り込ませる。これによって、状態値x1〜xnのうち、状態値xnが更新されることになる。
ノイズ発生回路13は、シミュレーテッド・アニーリングを行うために、ノイズ値を生成する。ノイズ発生回路13として、たとえば、LFSR(Linear Feedback Shift Registers)などを用いることができる。ノイズ値の例については後述する。
(第1の実施の形態の情報処理装置の動作例)
以下、第1の実施の形態の情報処理装置10の動作の一例を、フローチャートを用いて説明する。
図2は、情報処理装置の動作の一例を示すフローチャートである。
まず、たとえば、図示しない制御装置によって、レジスタ21a1〜21anに、計算対象の問題に応じた重み値が設定され(ステップS1)、イジング装置11a1〜11anの初期化が行われる(ステップS2)。ステップS2の処理では、たとえば、レジスタ26a1〜26anへのバイアス値の設定や、レジスタ24b1〜24bnの値のリセット(初期値設定)が行われる。
その後、制御装置の制御によりシミュレーテッド・アニーリングが実行される(ステップS3)。
シミュレーテッド・アニーリングの際、ノイズ発生回路13は、制御装置の制御のもと、ノイズ幅を徐々に小さくする。
ノイズ発生回路13は、たとえば、比較回路22b1〜22bnの出力値(状態値x1〜xn)が1となる確率が、シグモイド関数に従うようにノイズ値を発生する。たとえば、ノイズ発生回路13は、index=iのニューロンの状態xiが1となる確率値Pi(hi)が、以下の式(5)の関係になるように、ノイズ値を発生する。
Figure 0006773970
式(5)において、Tは、実効温度である。
式(5)に示すような確率値Pi(hi)を得るために、加算するノイズ値nsの確率密度関数p(ns)は、以下の式(6)のようになる。
Figure 0006773970
図3は、シミュレーテッド・アニーリングの様子を示す図である。
縦軸はエネルギーEであり、横軸は全ニューロンの出力値の組み合わせqkを示している。組み合わせqkは、“000…0”から“111…1”まである。図9では、ノイズ幅がW1、W2、W3と小さくなっていくときの、解の収束の様子が示されている。ノイズ幅を小さくしていくことは、式(6)の実効温度Tを小さくしていくことに相当する。
ノイズ幅がW1のとき、解が、局所解(エネルギーが局所的な極小値となる解)qk1,qk2,qk4,qk5となっても、エネルギーが高くなる方向に変化でき、局所解から脱出できる。ノイズ幅が、W2、W3と徐々に小さくなるにつれて、解の変化は制限されていき、最終的に、最適解(エネルギーが最小値となる解)qk3に収束する。
シミュレーテッド・アニーリングの際に、イジング装置11a1〜11anの状態遷移判定回路20b1〜20bnは、状態値が変化可能なニューロンがあるか否かを判定する(ステップS4)。状態値が変化可能なニューロンがない場合には、ステップS6の処理が行われる。
状態値が変化可能なニューロンがある場合、更新ニューロン選択回路12は、状態値が変化可能なニューロンを1つ選択し、その状態値の更新を許容する(ステップS5)。ステップS5の処理では、たとえば、状態値が変化可能なニューロンが複数ある場合、更新ニューロン選択回路12は、その1つをランダムに選択する。そして、更新ニューロン選択回路12は、選択したニューロンの状態値を出力するイジング装置のレジスタ(レジスタ24b1〜24bnの何れか)が取り込めるように、そのレジスタに供給するパルス信号の論理レベルをHレベルとする。そして、更新ニューロン選択回路12は、選択したニューロンのindexとレジスタが取り込んだ更新後(変化後)の状態値を出力する。ステップS5の処理の後、再びステップS3の処理が行われる。
状態値が変化可能なニューロンがない場合、制御装置は、n個のニューロンの状態が収束したか否かを判定する(ステップS6)。制御装置は、たとえば、n個のニューロンの状態値が一定期間変化しないときには、収束したと判定し、全ニューロンの状態値(状態値の組み合わせ)を解として出力させて(ステップS7)、処理を終了する。たとえば、n個のニューロンの状態値が一定期間内に変化したときには、ステップS3からの処理が繰り返される。
情報処理装置10は、全ニューロンの状態を、情報処理装置10の外部に出力してもよいし、情報処理装置10内の図示しないメモリに記憶してもよい。
以上のような情報処理装置10によれば、更新ニューロン選択回路12が、状態値の更新を許容するニューロンを選択する際、ノイズ値と各ニューロンのローカルフィールド値とに基づき状態値が変化できるニューロンを検出し、その1つを選択する。これにより、状態遷移が生じる確率が増し、計算速度が向上する。また、状態値が変化できるニューロンが複数ある場合には、その1つが選択され状態値の更新が許容されるため、収束性が悪化することを抑制できる。
また、あるニューロンの状態値が更新されたとき、n個のニューロンのどの状態値が変化可能かを、イジング装置11a1〜11anによって、並列同時に調べることができる。つまり、現在の状態から遷移する可能性のある複数の近傍状態について、並列同時に調べることができる。このため、イジング装置11a1〜11anの数(並列数)に応じた高速処理が可能となる。
(第2の実施の形態)
図4は、第2の実施の形態の情報処理装置の一例を示す図である。図4において、図1に示した第1の実施の形態の情報処理装置10と同一の要素については同一符号が付されている。
第2の実施の形態の情報処理装置10aのイジング装置11b1,…,11bi,…,11bnにおいて、状態遷移判定回路20c1,…,20ci,…,20cnは、第1の実施の形態における状態遷移判定回路20b1〜20bnと異なっている。状態遷移判定回路20c1〜20cnは、第1の実施の形態における状態遷移判定回路20b1〜20bnに含まれていたレジスタ25b1〜25bnがない。
その代わり、第2の実施の形態の情報処理装置10aでは、更新ニューロン選択回路12aが、indexを生成する。以下、n=1024であるときの更新ニューロン選択回路12aの回路例を説明する。
図5は、更新ニューロン選択回路の一例を示す図である。
更新ニューロン選択回路12aは、ノイズ発生回路30、選択回路部31a1,31a2,…,31a32,32、パルス信号生成回路33、選択回路34を有している。
ノイズ発生回路30は、ノイズ値として、5ビットの乱数値rd1,rd2を生成し出力する。なお、乱数値rd1,rd2のシード(初期値)は異なる。ノイズ発生回路30として、たとえば、LFSRなどを用いることができる。
選択回路部31a1〜31a32のそれぞれには、イジング装置11b1〜11bn(n=1024)が出力する1024の判定信号が32ずつ入力される。そして、選択回路部31a1〜31a32は、5ビットの乱数値rd1に基づき、32の判定信号のうち1つを選択して出力する。さらに、選択回路部31a1〜31a32は、選択した判定信号が32個のイジング装置のうち、何れから出力されたかを示す5ビットのindexを生成して出力する。
選択回路部32には、選択回路部31a1〜31a32のそれぞれが出力する判定信号と5ビットのindexとが入力される。そして、選択回路部32は、判定信号とindexと5ビットの乱数値rd2に基づき、32の判定信号のうちの1つの判定信号を選択して出力するとともに、10ビットのindexを生成して出力する。
パルス信号生成回路33は、10ビットのindexに基づき、イジング装置11b1〜11bnの状態遷移判定回路20c1〜20cnに含まれるレジスタ24b1〜24bnの1つに供給するパルス信号の論理レベルをHレベルにする。
選択回路34は、パルス信号生成回路33が出力するパルス信号に基づき、レジスタ24b1〜24bnのうちHレベルのパルス信号が供給されたレジスタが出力する状態値を選択して出力する。
図6は、選択回路部の一例を示す図である。
図6では、選択回路部31a1の例が示されている。選択回路部31a2〜31a32も選択回路部31a1と同様の回路で実現できる。
選択回路部31a1は、選択回路40a,40b,40c,40d,40eを有している。さらに、選択回路部31a1は、選択回路41a1,41a2,41a3,41a4,41a5,41a6,…,41a16,41b1,41b2,41b3,…,41b8,41c1,41c2,…,41c4,41d1,41d2,41eを有している。選択回路41a1〜41a16,41b1〜41b8,41c1〜41c4,41d1,41d2,41eは、5段にわたってツリー状に接続されている。
選択回路40aは、5ビットの乱数値rd1の1ビット目の値に基づいて、0または1を1段目の選択回路41a1〜41a16に供給する。
選択回路40bは、5ビットの乱数値rd1の2ビット目の値に基づいて、0または1を2段目の選択回路41b1〜41b8に供給する。
選択回路40cは、5ビットの乱数値rd1の3ビット目の値に基づいて、0または1を3段目の選択回路41c1〜41c4に供給する。
選択回路40dは、5ビットの乱数値rd1の4ビット目の値に基づいて、0または1を4段目の選択回路41d1,41d2に供給する。
選択回路40eは、5ビットの乱数値rd1の5ビット目の値に基づいて、0または1を5段目の選択回路41eに供給する。
1段目の選択回路41a1〜41a16のそれぞれは、イジング装置11b1〜11bnが出力する1024の判定信号のうち32の判定信号を2つずつ入力する。そして、選択回路41a1〜41a16のそれぞれは、その判定信号の値と、選択回路40aが出力する0または1の値に基づいて、2つの判定信号の何れかを選択して出力するとともに、何れの判定信号を選択したかを示す1ビットのindexを生成して出力する。
2段目の選択回路41b1〜41b8のそれぞれは、選択回路41a1〜41a16が出力する16の判定信号とindexを2つずつ入力する。そして、選択回路41b1〜41b8のそれぞれは、その判定信号の値と、選択回路40bが出力する0または1の値に基づいて、2つの判定信号の何れかを選択して出力するとともに、何れの判定信号を選択したかを示す2ビットのindexを生成して出力する。
3段目の選択回路41c1〜41c4のそれぞれは、選択回路41b1〜41b8が出力する8つの判定信号とindexを2つずつ入力する。そして、選択回路41c1〜41c4のそれぞれは、その判定信号の値と、選択回路40cが出力する0または1の値に基づいて、2つの判定信号の何れかを選択して出力するとともに、何れの判定信号を選択したかを示す3ビットのindexを生成して出力する。
4段目の選択回路41d1,41d2のそれぞれは、選択回路41c1〜41c4が出力する4つの判定信号とindexを2つずつ入力する。そして、選択回路41d1,41d2のそれぞれは、その判定信号の値と、選択回路40dが出力する0または1の値に基づいて、2つの判定信号の何れかを選択して出力するとともに、何れの判定信号を選択したかを示す4ビットのindexを生成して出力する。
5段目の選択回路41eは、選択回路41d1,41d2が出力する2つの判定信号とindexを入力する。そして、選択回路41eは、その判定信号の値と、選択回路40eが出力する0または1の値に基づいて、2つの判定信号の何れかを選択して出力するとともに、何れの判定信号を選択したかを示す5ビットのindexを生成して出力する。
図5に示した選択回路部32も、選択回路部31a1とほぼ同様の回路構成で実現できる。ただ、1段目の選択回路41a1〜41a16のそれぞれに、選択回路部31a1〜31a32が出力する32の判定信号が2つずつ入力されるとともに、選択回路部31a1〜31a32が出力する32のindex(5ビット)が2つずつ入力される。そして、各段で判定信号が選択されるとともに、indexのビットが追加され、10ビットのindexと最終的に選択された判定信号が出力される。なお、図5に示した更新ニューロン選択回路12aの例では、選択回路部32の判定信号は用いられないので、選択回路部32は、この判定信号を出力しなくてもよい。
図7は、選択回路の一例を示す図である。
図7では、図6の選択回路41b1の例が示されている。選択回路41b2〜41b8,41c1〜41c4,41d1,41d2,41eも同様の回路構成で実現できる。
選択回路41b1は、XOR回路50、OR回路51、選択回路52,53を有している。
XOR回路50は、前段の選択回路41a1,41a2が出力する判定信号を入力する。図7では、選択回路41a1が出力する判定信号をfg1、選択回路41a2が出力する判定信号をfg2と表記している。XOR回路50は、fg1,fg2の値が一致していれば0、異なっていれば1を出力する。
OR回路51は、fg1,fg2を入力し、fg1,fg2の何れか一方または両方が1ならば、判定信号(fg3と表記している)として1を出力し、fg1,fg2の両方が0ならば、fg3として0を出力する。つまり、fg3は、fg1,fg2のうち、1となる方と等しい。
選択回路52は、fg1と、選択回路40bが出力する0または1の値を入力する。そして、選択回路52は、OR回路50の出力が1のときは、fg1の値を選択して出力し、OR回路の出力が0のときは、選択回路40bが出力する値を選択して出力する。
選択回路53は、前段の選択回路41a1,41a2が出力するindexを入力する。図7では、選択回路41a1が出力するindexをid1、選択回路41a2が出力するindexをid2と表記している。選択回路53は、選択回路52の出力が1のときは、id1の値を選択して出力し、選択回路52の出力が0のときは、id2の値を選択して出力する。
選択回路53が出力するid1またはid2の値に、選択回路52の1ビットの出力を追加したもの(上位ビットに追加したもの)が、選択回路41b1が出力するindex(図7ではid3と表記している)である。
図6に示した1段目の選択回路41a1〜41a16も、図7に示した回路構成とほぼ同様の回路構成で実現できるが、選択回路53はない。
図8は、生成されるindexの一例を示す図である。
選択回路40bの出力が1のとき、図7に示した選択回路41b1において、入力される2つの判定信号(fg1,fg2)の値が同じ場合には、id3は、id1の上位ビットに新たなビット=1が追加された値となる。また、選択回路40bの出力が1で、fg1,fg2の値が異なり、fg1の値が1であるときも、id3は、id1の上位ビットに新たなビット=1が追加された値となる。また、選択回路40bの出力が1で、fg1,fg2の値が異なり、fg1の値が0であるとき、id3は、id2の上位ビットに新たなビット=0が追加された値となる。
選択回路40bの出力が0のとき、fg1,fg2の値が同じ場合には、id3は、id2の上位ビットに新たなビット=0が追加された値となる。また、選択回路40bの出力が0で、fg1,fg2の値が異なり、fg1の値が1であるとき、id3は、id1の上位ビットに新たなビット=1が追加された値となる。また、選択回路40bの出力が0で、fg1,fg2の値が異なり、fg1の値が0であるとき、id3は、id2の上位ビットに新たなビット=0が追加された値となる。
また、fg1,fg2の一方もしくは両方が1のとき、fg3は1となり、fg1,fg2の両方が0のとき、fg3は0となる。
図9は、選択回路部の他の例を示す図である。
図6に示した選択回路部31a1の代わりに、図9に示すような選択回路部31b1を用いることもできる。
選択回路部31b1の選択回路40f,40g,40h,40i,40jは、選択回路部31a1の選択回路40a〜40eと異なっている。
選択回路40fは、16ビットの乱数値rd1に基づいて、各ビットが0または1の16ビットの値を、1段目の選択回路41a1〜41a16に供給する。たとえば、16ビットの値のうち、最下位ビットの値が、選択回路41a1に供給され、最上位ビットの値が、選択回路41a16に供給される。
選択回路40gは、16ビットの乱数値rd1のうち8ビットの値に基づいて、各ビットが0または1の8ビットの値を、2段目の選択回路41b1〜41b8に供給する。たとえば、8ビットの値のうち、最下位ビットの値が、選択回路41b1に供給され、最上位ビットの値が、選択回路41b8に供給される。
選択回路40hは、16ビットの乱数値rd1のうち4ビットの値に基づいて、各ビットが0または1の4ビットの値を、3段目の選択回路41c1〜41c4に供給する。たとえば、4ビットの値のうち、最下位ビットの値が、選択回路41c1に供給され、最上位ビットの値が、選択回路41c4に供給される。
選択回路40iは、16ビットの乱数値rd1のうち2ビットの値に基づいて、各ビットが0または1の2ビットの値を、4段目の選択回路41d1,41d2に供給する。たとえば、2ビットの値のうち、最下位ビットの値が、選択回路41d1に供給され、最上位ビットの値が、選択回路41d2に供給される。
選択回路40jは、16ビットの乱数値rd1のうち1ビットの値に基づいて、0または1の1ビットの値を5段目の選択回路41eに供給する。
図6に示した選択回路部31a1では、同じ段の複数の選択回路には、乱数値rd1に基づく同じ値が供給されていたが、図9に示す選択回路部31b1のように、同じ段の複数の選択回路に乱数値rd1に基づく異なる値が供給されてもよい。
選択回路部31a2〜31a32も選択回路部31b1と同様の回路で実現できる。図5に示した選択回路部32も、選択回路部31b1とほぼ同様の回路構成で実現できる。
第2の実施の形態の情報処理装置10aのその他の構成については、第1の実施の形態の情報処理装置10と同様である。そのため、第2の実施の形態の情報処理装置10aにおいても、第1の実施の形態の情報処理装置10と同様の効果が得られる。
さらに、第2の実施の形態の情報処理装置10aでは、更新ニューロン選択回路12aがindexを生成するため、イジング装置11b1〜11bn内にindexを保持するレジスタを設けなくてもよくなる。扱うニューロン数が多くなると(nが増すと)、indexのビット数も増える。indexを保持するレジスタを設けた場合、indexのビット数の増加に伴い、レジスタ面積が増大し、チップ面積の増大につながる。情報処理装置10aでは、更新ニューロン選択回路12aが、イジング装置11b1〜11bnが出力する判定信号に基づいてindexを生成するため、indexを保持しておくレジスタが不要になり、イジング装置11b1〜11bnのチップ面積を縮小できる。
なお、図6や図9に示した各選択回路は、2つの判定信号から1つを選択するものであるが、これに限定されず、3つ以上の判定信号から1つを選択するものであってもよいし、異なる数の判定信号から1つを選択する複数種類の選択回路が混在してもよい。
(第3の実施の形態)
図10は、第3の実施の形態の情報処理装置の一例を示す図である。図10において、図1に示した第1の実施の形態の情報処理装置10と同一の要素については同一符号が付されている。
第3の実施の形態の情報処理装置10bのイジング装置11c1,…,11ci,…,11cnは、エネルギー値算出回路20d1,…,20di,…,20dn、状態遷移判定回路20e1,…,20ei,…,20enを有している。
以下イジング装置11ciのエネルギー値算出回路20di、状態遷移判定回路20eiを例にして説明する。
エネルギー値算出回路20diは、前述の式(4)で示したindex=iのニューロンの状態の変化時のニューラルネットワークの全エネルギーの変化分ΔEiを算出する。
エネルギー値算出回路20diは、図1に示したエネルギー値算出回路20aiの各要素の他、乗算回路27diと選択回路28diを有している。
乗算回路27diは、レジスタ26aiが出力するローカルフィールド値hiと選択回路28diが出力する値との積を変化分ΔEiとして出力する。
選択回路28diは、index=iのニューロンの状態の変化後の状態値xiが0のときは、1を出力し、変化後の状態値xiが1のときは−1を出力する。選択回路28diの出力は、式(4)のδxi(=1−2xi)に相当する。変化後の状態値xiは、たとえば、ニューロン状態更新回路14から供給される。
状態遷移判定回路20eiは、変化分ΔEiとノイズ値とに基づき、状態値xiが変化できるか否かを示す判定信号を出力する。
状態遷移判定回路20eiは、加算回路21eiと比較回路22eiを有する。
加算回路21eiは、乗算回路27diが出力する変化分ΔEiに、ノイズ発生回路13aが出力するノイズ値を加算して出力する。
比較回路22eiは、加算回路21eiが出力する値が、閾値(たとえば、0)以上のときには判定信号として、ニューロンの状態が変化しない旨を示す0を出力し、閾値より小さいときには判定信号として、ニューロンの状態を変化できる旨を示す1を出力する。
イジング装置11c1〜11cnのうち、イジング装置11ci以外についても同様の回路構成となっている。
すなわち、イジング装置11c1のエネルギー値算出回路20d1も、エネルギー値算出回路20diと同様に乗算回路27d1と選択回路28d1を有しており、index=1のニューロンの状態の変化時の全エネルギーの変化分ΔE1を算出する。またイジング装置11c1の状態遷移判定回路20e1も、状態遷移判定回路20eiと同様に、加算回路21e1と比較回路22e1を有しており、index=1のニューロンの状態値x1が変化できるか否かを示す判定信号を出力する。
また、イジング装置11cnのエネルギー値算出回路20dnも、エネルギー値算出回路20diと同様に乗算回路27dnと選択回路28dnを有しており、index=nのニューロンの状態の変化時の全エネルギーの変化分ΔEnを算出する。またイジング装置11cnの状態遷移判定回路20enも、状態遷移判定回路20eiと同様に、加算回路21enと比較回路22enを有しており、index=nのニューロンの状態値xnが変化できるか否かを示す判定信号を出力する。
更新ニューロン選択回路12bは、イジング装置11c1〜11cnのそれぞれの状態遷移判定回路20e1〜20enが出力する判定信号に基づき、状態値の更新を許容するニューロンのindexを生成して出力する。
図11は、第3の実施の形態における更新ニューロン選択回路の一例を示す図である。図11において、図5に示した更新ニューロン選択回路12aと同一の要素については同一符号が付されている。
図11に示す更新ニューロン選択回路12bは、図5に示した更新ニューロン選択回路12aにおけるパルス信号生成回路33と選択回路34を有さない点以外、更新ニューロン選択回路12aと同じであり、10ビットのindexを出力する。なお、選択回路部32は判定信号を出力しているが、本実施の形態でもこの判定信号は用いられないため、選択回路部32は、判定信号を出力しなくてもよい。
図10の情報処理装置10bにおいて、ニューロン状態更新回路14は、更新ニューロン選択回路12bが出力するindexを受け、そのindexで指定されるニューロンの更新後の状態値を出力する。
図12は、ニューロン状態更新回路の一例を示す図である。
ニューロン状態更新回路14は、パルス信号生成回路60、回路部61a1,61a2,…,61an、選択回路62を有している。
パルス信号生成回路60は、更新ニューロン選択回路12bが出力するindexを受けて、パルス信号p1,p2,…,pnのうち、そのindexに対応したものをHレベル(“1”)とする。
回路部61a1〜61anは、パルス信号生成回路60が出力するパルス信号p1〜pnに基づき、n個のニューロンの更新前の状態値(nbit)から、1ビットを更新した状態値を生成して出力する。
たとえば、回路部61a1は選択回路61b1、レジスタ61c1、インバータ回路61d1を有している。
選択回路61b1は、パルス信号p1が0のときは、index=1のニューロンの更新前の状態値を選択して出力し、パルス信号p1が1のときはインバータ回路61d1の出力信号を選択して出力する。
レジスタ61c1は、たとえば、フリップフロップであり、図示しないクロック信号に同期して選択回路61b1が出力する値を取り込み、その値を出力する。レジスタ61c1に格納される値の初期値は、たとえば、index=1のニューロンの状態値x1の初期値である。
インバータ回路61d1は、レジスタ61c1が出力する値を、論理レベルを反転して出力する。なお、このインバータ回路61d1の出力を、図10のイジング装置11c1の選択回路28d1の選択信号、すなわち、変化後の状態値x1として用いることができる。
このような回路部61a1では、パルス信号p1が0のときは、更新前の状態値が選択されて出力され、パルス信号p1が1のときは、更新前の状態値の論理レベルを反転した値が選択されて出力される。
回路部61a2〜61anも、回路部61a1と同様の回路構成となっている。
すなわち、回路部61a2も回路部61a1と同様に、選択回路61b2、レジスタ61c2、インバータ回路61d2を有している。そして、このような回路部61a2では、パルス信号p2が0のときは、index=2のニューロンの更新前の状態値が選択されて出力され、パルス信号p2が1のときは、更新前の状態値の論理レベルを反転した値が選択されて出力される。
また、回路部61anも回路部61a1と同様に、選択回路61bn、レジスタ61cn、インバータ回路61dnを有している。そして、このような回路部61anでは、パルス信号pnが0のときは、index=nのニューロンの更新前の状態値が選択されて出力され、パルス信号pnが1のときは、更新前の状態値の論理レベルを反転した値が選択されて出力される。
選択回路62は、更新ニューロン選択回路12bが出力するindexを受けて、回路部61a1〜61anがnビットの状態値のうち、そのindexに対応した1ビットの値を更新後の状態値として出力する。
(第3の実施の形態の情報処理装置の動作例)
第3の実施の形態の情報処理装置10bも、たとえば、図2に示した処理の流れに従って動作する。すなわち、まず、たとえば、図示しない制御装置によって、レジスタ21a1〜21anに、計算対象の問題に応じた重み値が設定され(ステップS1)、イジング装置11c1〜11cnの初期化が行われる(ステップS2)。ステップS2の処理では、たとえば、レジスタ26a1〜26anへのバイアス値の設定や、図12のニューロン状態更新回路14のレジスタ61c1〜61cnへの初期値の設定などが行われる。
その後、制御装置の制御によりシミュレーテッド・アニーリングが実行される(ステップS3)。
シミュレーテッド・アニーリングの際、ノイズ発生回路13aは、制御装置の制御のもと、ノイズ幅を徐々に小さくする。
第3の実施の形態におけるノイズ発生回路13aは、比較回路22e1〜22enの出力値が1となる確率が、たとえば、非特許文献1に記載されているようなMetropolis−Hastingsの遷移則に従うようにノイズ値を発生する。Metropolis−Hastingsの遷移則は、たとえば、物質の物性計算の際に用いられる。
Metropolis−Hastingsの確率遷移関数は、以下の式(7)で表せる。
Figure 0006773970
式(7)において、βは1/Tである。
式(7)より、比較回路22e1〜22enの出力値が1となる確率が、Metropolis−Hastingsの遷移則に従って遷移するためのノイズ値nsは、ns=F-1(x)と表せる。F-1(x)は、式(7)の逆関数であり、xは0≦x≦1の一様乱数である。
上記のようなノイズ値nsを出力するノイズ発生回路13aは、たとえば、以下のような回路構成で実現できる。
図13は、ノイズ発生回路の一例を示す図である。
ノイズ発生回路13aは、一様乱数発生回路13a1、F-1(x)出力部13a2を有する。
一様乱数発生回路13a1は、0≦x≦1の一様乱数値xを発生し出力する。
-1(x)出力部13a2は、一様乱数値xを入力し、たとえば、予めメモリなどに格納しておいたxとF-1(x)との関係を示すテーブルのデータに基づき、F-1(x)をノイズ値nsとして出力する。
図13には、ノイズ値nsが、イジング装置11ciの状態遷移判定回路20eiの加算回路21eiに入力される例が示されている。加算回路21eiは、エネルギー値算出回路20diで算出された変化分ΔEiからノイズ値nsを引いた値(変化分ΔEiにマイナスのノイズ値nsを加えた値)を、比較回路22eiに供給する。
第3の実施の形態の情報処理装置10bでは、以上のようなノイズ値nsを用いて図2のステップS3のシミュレーテッド・アニーリングが行われる。
シミュレーテッド・アニーリングの際に、状態遷移判定回路20e1〜20enは、状態値が変化できるニューロンがあるか否かを判定する(ステップS4)。状態値が変化するニューロンがない場合には、ステップS6の処理が行われる。状態値が変化するニューロンがある場合、更新ニューロン選択回路12bは、状態値が変化するニューロンを1つ選択し、その状態値の更新を許容する(ステップS5)。ステップS5の処理では、たとえば、状態値が変化するニューロンが複数ある場合、更新ニューロン選択回路12bは、図11に示したような回路で、その1つをランダムに選択し、選択したニューロンのindexを出力する。そして、ニューロン状態更新回路14は、そのindexで指定されたニューロンの更新後の状態値を出力する。ステップS5の処理の後、再びステップS3の処理が行われる。
状態値が変化するニューロンがない場合、制御装置は、n個のニューロンの状態が収束したか判定する(ステップS6)。制御装置は、たとえば、n個のニューロンの状態値が一定期間変化しないときには、収束したと判定し、全ニューロンの状態値(状態値の組み合わせ)を解として出力させて(ステップS7)、処理を終了する。たとえば、n個のニューロンの状態値が一定期間内に変化したときには、ステップS3からの処理が繰り返される。情報処理装置10bは、全ニューロンの状態を、情報処理装置10bの外部に出力してもよいし、情報処理装置10b内の図示しないメモリに記憶してもよい。
以上のような第3の実施の形態の情報処理装置10bでも第1の実施の形態の情報処理装置10と同様の効果が得られる。すなわち、更新ニューロン選択回路12bが、状態値の更新を許容するニューロンを選択する際、ノイズ値と全エネルギーの変化分とに基づき状態値が変化できるニューロンを検出し、その1つを選択する。これにより、状態遷移が生じる確率が増し、計算速度が向上する。また、状態値が変化できるニューロンが複数ある場合には、その1つが選択され状態値の更新が許容されるため、収束性が悪化することを抑制できる。
また、あるニューロンの状態値が更新されたとき、n個のニューロンのどの状態値が更新できるかを、イジング装置11c1〜11cnによって、並列同時に調べることができる。つまり、現在の状態から遷移する可能性のある複数の近傍状態について、並列同時に調べることができる。このため、イジング装置11c1〜11cnの数(並列数)に応じた高速処理が可能となる。
さらに、第3の実施の形態の情報処理装置10bは、更新ニューロン選択回路12bがindexを生成するため、第2の実施の形態の情報処理装置10aと同様にイジング装置11c1〜11cn内にindexを保持するレジスタを設けなくてもよくなる。そのため、イジング装置11c1〜11cnのチップ面積を縮小できる。
また、情報処理装置10bは、全エネルギーの変化分を算出するため、式(7)に示したような全エネルギーの変化分で表される確率遷移関数を用いるMetropolis−Hastingsの遷移則などの、より一般的な遷移則を適用できる。このため、第3の実施の形態の情報処理装置10bは、適用する遷移則を、シグモイド関数を用いた遷移則に限定することなく、様々な遷移則に柔軟に対応できる。
なお、上記では、収束性を考慮して一度に状態が更新するニューロンを1つとしたが、更新ニューロン選択回路12bは、複数のニューロンのindexを出力してもよい。この場合、現在の状態から遷移する可能性のある調べるべき複数の近傍状態がn個ではなく、N(>n)個となるため、複数のニューロンの状態が変化したときの変化分ΔEを算出するイジング装置が追加される。
(第4の実施の形態)
図14は、第4の実施の形態の情報処理装置の一例を示す図である。図14において、第3の実施の形態の情報処理装置10bと同じ要素については同一符号が付されている。
第4の実施の形態の情報処理装置10cのイジング装置11d1,…,11di,…,11dnは、第3の実施の形態のイジング装置11c1〜11cnと同様のエネルギー値算出回路20d1〜20dnを有している。イジング装置11d1〜11dnの状態遷移判定回路20f1,…,20fi,…,20fnは、第3の実施の形態のイジング装置11c1〜11cnの状態遷移判定回路20e1〜20enと異なっている。
状態遷移判定回路20f1〜20fnは、全エネルギーの変化分に基づき、index=1〜nのニューロンの状態の更新を許容する確率値を算出し、その確率値に基づき、更新できるか否かを示す判定信号を出力する。全エネルギーを低くする状態の更新ほど、更新を許容する確率値が高くなるように算出される。
たとえば、状態値xiの更新を許容する確率値Aiは、全エネルギーの変化分ΔEiと、シグモイド関数を用いて以下の式(8)で表せる。
Figure 0006773970
また、確率値Aiをn個のニューロンのそれぞれの状態の更新を許容する確率値の積算で正規化した確率値Piは、以下の式(9)で表せる。
Figure 0006773970
第4の実施の形態の情報処理装置10cにおいて、状態遷移判定回路20f1〜20fnと更新ニューロン選択回路12cは、上記のような式(9)に基づいて、確率値Piがより高くなる更新を引き起こすニューロンのindexを生成して出力する。
図15は、状態遷移判定回路の一例を示す図である。
状態遷移判定回路20f1は、確率算出部21f1、比較回路23f1、XOR回路24f1を有している。状態遷移判定回路20f2は、確率算出部21f2、加算回路22f2、比較回路23f2、XOR回路24f2を有している。状態遷移判定回路20f3は、確率算出部21f3、加算回路22f3、比較回路23f3、XOR回路24f3を有している。状態遷移判定回路20fnは、確率算出部21fn、加算回路22fn、比較回路23fn、XOR回路24fn、ノイズ発生回路25、乗算回路26を有している。図示を省略しているが、状態遷移判定回路20f1〜20fnのうち、状態遷移判定回路20f1〜20f3,20fn以外も、状態遷移判定回路20f2,20f3と同様の要素を有している。
確率算出部21fi(i=1〜n)は、変化分ΔEi(i=1〜n)に基づいて、式(8)で示したような確率値Ai(i=1〜n)を算出する。確率算出部21fiは、たとえば、予めメモリなどに格納しておいたΔEi(i=1〜n)と確率値Ai(i=1〜n)との関係を示すテーブルのデータに基づき、確率値Aiを算出(または決定)する。
加算回路22fi(i=2〜n)は、確率値Aiと確率値Ai-1との加算結果を出力する。なお、加算回路22fiは、iの値が1大きくなるごとに出力のビット幅が1増える。たとえば、加算回路22f2が16ビット固定小数点演算を行う回路である場合には、加算回路22f3は17ビット固定小数点演算を行う回路である。
比較回路23fi(i=1〜n)は、確率値Aiが乗算回路26の出力値よりも大きいときに1を出力し、それ以外のときは0を出力する。
XOR回路24i(1〜n)は、比較回路23fiと比較回路23f(i+1)の出力信号の排他的論理和を判定信号として出力する。ただし、XOR回路24fnは、比較回路23fnの出力信号と、0との排他的論理和を判定信号として出力する。
ノイズ発生回路25は、ノイズ値として0≦x≦1の一様乱数値xを生成して出力する。なお、ノイズ発生回路25は、イジング装置11dnの外にあってもよい。
乗算回路26は、加算回路22fnが出力する確率値Ai(i=1〜n)の積算値に、一様乱数値xを乗じて出力する。なお、乗算回路26として、IEEE754で規格化された単精度浮動小数点乗算回路を用いることができる。
このような状態遷移判定回路20f1〜20fnでは、加算回路22fi(i=2〜n)のiが大きくなるほど、加算回路22fiの出力値が大きくなる。そして、比較回路23f1〜23fnのうち、ある比較回路23fiよりiが大きい比較回路23f(i+1)〜23fnの出力信号が1となる。このときXOR回路24f(i−1)が出力する判定信号が1となり、それ以外の判定信号は0となる。
たとえば、比較回路23f1,23f2の出力信号が0で、比較回路23f3〜23fnの出力信号が1であるとき、XOR回路24f1,24f3〜24fnが出力する判定信号は0、XOR回路24f2が出力する判定信号は1となる。
更新ニューロン選択回路12cは、状態遷移判定回路20f1〜20fnが出力する判定信号に基づき、更新するニューロンのindexを出力する。たとえば、状態遷移判定回路20f2が出力する判定信号が1のとき、更新ニューロン選択回路12は、index=2を出力する。
(第4の実施の形態の情報処理装置の動作例)
第4の実施の形態の情報処理装置10cでも、図2に示したフローチャートに従って、重み値の設定や、初期化が行われる(ステップS1,S2)。ただし、情報処理装置10cでは、ステップS3のシミュレーテッド・アニーリングの代わりに、図示しない制御装置の制御により、ノイズ発生回路25が生成する一様乱数値xの更新が行われる。
そして、ステップS4の処理として、状態遷移判定回路20f1〜20fnは、エネルギー値算出回路20d1〜20dnが出力する変化分ΔE1〜ΔEnに基づき、状態値を更新することでエネルギーがより低くなるニューロンがあるか否かを判定する。たとえば、状態遷移判定回路20f1〜20fnが出力する判定信号が全て0であるときには、ステップS6の処理が行われる。ステップS5の処理として、状態遷移判定回路20f1〜20fnが出力する判定信号のうちの1つが1であれば、更新ニューロン選択回路12は、その判定信号を出力したイジング装置に対応したニューロンのindexを出力する。そして、ニューロン状態更新回路14は、そのindexで指定されたニューロンの更新後の状態値を出力する。このようにして情報処理装置10cは、1つのニューロンの状態の更新を許容する。
ステップS5の処理後、ステップS3からの処理が繰り返される。1となる判定信号がない場合、制御装置は、n個のニューロンの状態が収束したか判定する(ステップS6)。制御装置は、たとえば、n個のニューロンの状態値が一定期間変化しないときには、収束したと判定し、全ニューロンの状態値(状態値の組み合わせ)を解として出力させて(ステップS7)、処理を終了する。たとえば、n個のニューロンの状態値が一定期間内に変化したときには、ステップS3からの処理が繰り返される。情報処理装置10cは、全ニューロンの状態を、情報処理装置10cの外部に出力してもよいし、情報処理装置10c内の図示しないメモリに記憶してもよい。
以上のような第4の実施の形態の情報処理装置10cは、index=1〜nのニューロンのそれぞれが変化したときの、全エネルギーの変化分に基づき、index=1〜nのニューロンの状態の更新を許容する確率値を算出する。その確率値は、全エネルギーを低くする状態の更新ほど、高くなるように算出される。そして、状態遷移判定回路20f1〜20fnと更新ニューロン選択回路12cによって、その確率値が高いニューロンが選択される確率が高くなるため、計算の収束性が向上し、計算を高速化できる。
なお、状態遷移判定回路20f1〜20fnは、イジング装置11d1〜11dnの外に設けられていてもよい。
状態遷移判定回路20f1〜20fnと更新ニューロン選択回路12cとの代わりに、段階的にindexを選択していく回路(以下、更新検出/インデックス選択回路と呼ぶ)を用いることもできる。
式(8)の確率値Ai(i=1〜n)に比例した確率で、段階的にindexを選択する手順は、たとえば、以下のようになる。まず、n個のindexをメンバとするグループG0としたとき、更新検出/インデックス選択回路は、n個のindexを半分に分け2つのグループとし、一様乱数値を用いて2つのグループの一方を選択する。選択されたグループをグループG1とすると、更新検出/インデックス選択回路は、グループG1に含まれるn/2個のindexをさらに半分に分け2つのグループとし、一様乱数値を用いて2つのグループの一方を選択する。このような処理が繰り返され、最終的に1つのindexを含むグループが得られる。たとえば、n=1024のとき、最終的に得られるグループG10に含まれるindex=kが選ばれる確率値Pkは、以下の式で表せる。
Figure 0006773970
なお、上記のような選択処理は、小さいグループから行うことも可能である。以下では、2つのindexを含むグループごとに、一方のindexを選択していく更新検出/インデックス選択回路の例を説明する。
図16は、更新検出/インデックス選択回路の一例を示す図である。
更新検出/インデックス選択回路70は、ノイズ発生回路71a1,71a2,71a3,…,71am、レジスタ72a1,72a2,72a3,72a4,…,72a(n−1),72anを有している。さらに、更新検出/インデックス選択回路70は、確率算出部73a1,73a2,73a4,…,73a(n−1),73an、選択回路74a1,74a2,…,74al,75,76,77を有している。選択回路74a1〜74al,75,76,77は、m段にわたってツリー状に接続されている。
ノイズ発生回路71a1〜71amは、それぞれ異なるシード(初期値)の0≦x≦1の一様乱数値xを、各段の選択回路に供給する。たとえば、ノイズ発生回路71a1は、1段目の選択回路74a1〜74alに一様乱数値xを供給し、ノイズ発生回路71amは、m段目の選択回路77に一様乱数値xを供給する。
レジスタ72a1〜72anには、ニューロンのindex(1〜n)が格納される。確率算出部73a1〜73anは、全エネルギーの変化分ΔE1〜ΔEnに基づき、式(8)に示したような確率値Ai(i=1〜n)を算出する。
1段目の選択回路74a1〜74alは、n/2個ある。1段目の選択回路74a1〜74alは、それぞれ2つのindexと2つの確率値Ai,Ai+1を取得し、一様乱数値xに基づき、一方のindexを選択して出力するとともに、2つの確率値Ai,Ai+1を加算した加算値を出力する。
2段目には、選択回路75を含むn/4個の選択回路がある。n/4個の選択回路は、それぞれ1段目の2つの選択回路が出力する2つのindexと、2つの加算値を取得し、一様乱数値xに基づき、一方のindexを選択して出力するとともに、2つの加算値を加算した新たな加算値を出力する。
3段目には、選択回路76を含むn/8個の選択回路がある。n/8個の選択回路は、それぞれ2段目の2つの選択回路が出力する2つのindexと、2つの加算値を取得し、一様乱数値xに基づき、一方のindexを選択して出力するとともに、2つの加算値を加算した新たな加算値を出力する。
m段目には、1つの選択回路77があり、選択回路77は、m−1段目の2つの選択回路が出力する2つのindexと、2つの加算値を取得し、一様乱数値xに基づき、一方のindexを選択して出力する。
図17は、選択回路の一例を示す図である。
図17では、図16の選択回路75の例が示されている。他の選択回路も同様の回路構成で実現できる。
選択回路75は、加算回路80、乗算回路81、比較回路82,83、XOR回路84,85、インデックス選択回路86を有している。
加算回路80は、選択回路74a1が出力する加算結果sumAaと、選択回路74a2が出力する加算結果sumAbとを加算することで加算結果sumAcを出力する。
乗算回路81は、一様乱数値xと加算結果sumAcとの乗算結果を出力する。
比較回路82は、乗算回路81が出力する乗算結果よりも加算結果sumAcが大きいときに1を出力し、加算結果sumAcが乗算結果以下のときは0を出力する。
比較回路83は、乗算回路81が出力する乗算結果よりも加算結果sumAaが大きいときに1を出力し、加算結果sumAaが乗算結果以下のときは0を出力する。
XOR回路84は、比較回路82の出力信号と、0との排他的論理和を出力する。
XOR回路85は、比較回路82と比較回路83の出力信号の排他的論理和を出力する。
インデックス選択回路86は、選択回路74a1が出力するindex(図17ではindexaと表記している)と、選択回路74a2が出力するindex(図17ではindexbと表記している)とを受ける。そして、インデックス選択回路86は、XOR回路85の出力信号が1のときは、indexa、XOR回路84の出力信号が1のときは、indexbを選択して、indexcとして出力する。
このような、更新検出/インデックス選択回路70を用いた場合も、第4の実施の形態の情報処理装置10cと同様の効果が得られる。
なお、図16に示した各選択回路は、2つのindexから1つを選択するものであるが、これに限定されず、3つ以上のindexから1つを選択するものであってもよいし、異なる数のindexから1つを選択する複数種類の選択回路が混在してもよい。
以上説明してきた第1乃至第4の実施の形態の情報処理装置10,10a,10b,10cは、FPGA(Field-programmable gate array)で実現することもできる。
図18は、FPGAの一例を示す図である。
FPGA90は、処理装置(エンジン)90a、インタフェース回路90b,90cを有する。
処理装置90a内の設定メモリ(コンフィギュレーションメモリ)90a1に記憶される設定値により、処理装置90aの内部構成が定義される。設定メモリ90a1に記憶される設定値はインタフェース回路90bを介して、外部のコンピュータ91によって書き換え可能である。また、処理装置90aは、インタフェース回路90a2を有しており、インタフェース回路90b,90cと情報の送受信を行える。インタフェース回路90cは、たとえば、DDR(Double-Data-Rate)メモリなどのメモリ92との間で情報の送受信を行う。
第1乃至第4の実施の形態の情報処理装置10,10a,10b,10cは、処理装置90a内に構築することができる。
上記のような、第1乃至第4の実施の形態の情報処理装置10,10a,10b,10cを用いることで、たとえば、巡回セールスマン問題のような最適化問題を高速に計算することができる。
たとえば、第2の実施の形態の情報処理装置10aにおいて、巡回セールスマン問題の計算の収束に要するサイクル数(レジスタ26a1〜26anなどに供給されるクロック信号のサイクル数)は、イジング装置11b1〜11bnの数(並列数)に比例して少なくなる効果が得られる。
図19は、巡回セールスマン問題の計算の収束に要するサイクル数とイジング装置の並列数との関係を示すシミュレーション結果の一例である。
縦軸が、収束までのサイクル数であり、横軸が並列数である。図19では、都市数=32の巡回セールスマン問題を、第2の実施の形態の情報処理装置10aで計算したときの、収束までのサイクル数と、並列数との関係の一例が示されている。
図19に示すように並列数にほぼ比例して、収束までのサイクル数が減少していくことが分かる。
以上、実施の形態に基づき、本発明の情報処理装置、イジング装置及び情報処理装置の制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
10 情報処理装置
11a1〜11an イジング装置
12 更新ニューロン選択回路
13 ノイズ発生回路
20a1〜20an エネルギー値算出回路
20b1〜20bn 状態遷移判定回路
21a1〜21an,26a1〜26an,24b1〜24bn,25b1〜25bn レジスタ
22a1〜22an,23a1〜23an 選択回路
22b1〜22bn 比較回路
23b1〜23bn XOR回路
24a1〜24an 乗算回路
25a1〜25an,21b1〜21bn 加算回路

Claims (8)

  1. 複数のニューロンのうち第1のニューロンと結合する複数の第2のニューロンの状態を示す複数の第1の状態値のそれぞれに、前記第1のニューロンと前記複数の第2のニューロンとの結合の強さをそれぞれ示す複数の重み値のうち、対応する第1のニューロンと第2のニューロンとの間の結合の強さを示す重み値を掛けた値の総和に基づいて算出される第1のエネルギー値を、前記複数の第2のニューロンのうち状態が更新された更新ニューロンの第1の識別情報と、更新された前記更新ニューロンの状態を示す第2の状態値とに基づいて更新した第2のエネルギー値を算出する算出回路と、
    前記第2のエネルギー値、または、前記第1のニューロンの状態の変化時におけるニューラルネットワークのエネルギー関数の変化分と、第1のノイズ値とに基づき、前記第1のニューロンの状態を示す第3の状態値の変化が可能か否かを判定した判定結果を示す判定信号を出力する状態遷移判定回路と、
    をそれぞれが有し、互いに異なる第1のニューロンについての判定信号をそれぞれ出力する複数のイジング装置と、
    前記複数のイジング装置のそれぞれが出力する判定信号に基づき、前記複数のニューロンのうち前記第3の状態値の変化が可能と判定された第1のニューロンを選択し、選択した前記第1のニューロンの第2の識別情報を前記第1の識別情報として出力する更新ニューロン選択回路と、
    を有する情報処理装置。
  2. 前記状態遷移判定回路は、前記第2のエネルギー値と前記第1のノイズ値との加算結果と、閾値との比較結果の変化に基づき、前記第3の状態値の変化が可能か否かを判定する、請求項1に記載の情報処理装置。
  3. 前記状態遷移判定回路は、前記ニューラルネットワークのエネルギー関数の変化分と前記第1のノイズ値との加算結果と、閾値との比較結果の変化に基づき、前記第3の状態値の変化が可能か否かを判定する、請求項1に記載の情報処理装置。
  4. 前記更新ニューロン選択回路は、前記第3の状態値の変化が可能と判定された第1のニューロンが複数ある場合、第2のノイズ値に基づいて、複数の第1のニューロンの何れか1つを選択し、選択した何れか1つの前記第1のニューロンの第2の識別情報を、前記第1の識別情報として出力する、請求項1乃至3の何れか一項に記載の情報処理装置。
  5. 前記更新ニューロン選択回路は、複数段にわたってツリー状に接続された複数の選択回路を有し、
    前記複数の選択回路のうち、1段目の複数の第1の選択回路のそれぞれは、前記複数のイジング装置のそれぞれが出力する前記判定信号を、2以上の数ずつ入力して、入力された2以上の判定信号のうち、前記第2のノイズ値に基づいて選択した判定信号に対応する前記第2の識別情報を生成し、
    前記複数の選択回路のうち、2段目以降の複数の第2の選択回路は、前記複数の第1の選択回路または前段の複数の第3の選択回路が選択した判定信号と、前記第2の識別情報とを、2以上の数ずつ入力し、入力された2以上の判定信号と2以上の第2の識別信号とのうち、前記第2のノイズ値に基づいて何れかの判定信号と何れかの第2の識別情報とを選択し、
    前記複数の第2の選択回路のうち、最後段の第3の選択回路が選択した第2の識別情報が、前記第1の識別情報である、請求項4に記載の情報処理装置。
  6. 前記状態遷移判定回路は、前記ニューラルネットワークのエネルギー関数の変化分に基づき、前記第1のニューロンの状態の更新を許容する確率値を算出し、前記第1のノイズ値と前記確率値とに基づき前記判定信号を出力する、請求項1に記載の情報処理装置。
  7. 複数のニューロンのうち第1のニューロンと結合する複数の第2のニューロンの状態を示す複数の第1の状態値のそれぞれに、前記第1のニューロンと前記複数の第2のニューロンとの結合の強さをそれぞれ示す複数の重み値のうち、対応する第1のニューロンと第2のニューロンとの間の結合の強さを示す重み値を掛けた値の総和に基づいて算出される第1のエネルギー値を、前記複数の第2のニューロンのうち状態が更新された更新ニューロンの第1の識別情報と、更新された前記更新ニューロンの状態を示す第2の状態値とに基づいて更新した第2のエネルギー値を算出する算出回路と、
    前記第2のエネルギー値、または、前記第1のニューロンの状態の変化時におけるニューラルネットワークのエネルギー関数の変化分と、ノイズ値とに基づき、前記第1のニューロンの状態を示す第3の状態値の変化が可能か否かを判定した判定結果を示す判定信号を出力する状態遷移判定回路と、
    を有するイジング装置。
  8. 複数のニューロンのうち第1のニューロンと結合する複数の第2のニューロンの状態を示す複数の第1の状態値のそれぞれに、前記第1のニューロンと前記複数の第2のニューロンとの結合の強さをそれぞれ示す複数の重み値のうち、対応する第1のニューロンと第2のニューロンとの間の結合の強さを示す重み値を掛けた値の総和に基づいて算出される第1のエネルギー値を、前記複数の第2のニューロンのうち状態が更新された更新ニューロンの第1の識別情報と、更新された前記更新ニューロンの状態を示す第2の状態値とに基づいて更新した第2のエネルギー値を算出する算出回路と、前記第2のエネルギー値、または、前記第1のニューロンの状態の変化時におけるニューラルネットワークのエネルギー関数の変化分と、ノイズ値とに基づき、前記第1のニューロンの状態を示す第3の状態値の変化が可能か否かを判定した判定結果を示す判定信号を出力する状態遷移判定回路と、をそれぞれが有し、互いに異なる第1のニューロンについての判定信号をそれぞれ出力する複数のイジング装置に対して、
    更新ニューロン選択回路が、前記複数のイジング装置のそれぞれが出力する判定信号に基づき、前記複数のニューロンのうち前記第3の状態値の変化が可能と判定された第1のニューロンを選択し、選択した前記第1のニューロンの第2の識別情報を前記第1の識別情報として供給する、
    情報処理装置の制御方法。
JP2016176040A 2016-09-09 2016-09-09 情報処理装置、イジング装置及び情報処理装置の制御方法 Active JP6773970B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016176040A JP6773970B2 (ja) 2016-09-09 2016-09-09 情報処理装置、イジング装置及び情報処理装置の制御方法
US15/690,313 US10762415B2 (en) 2016-09-09 2017-08-30 Information processing apparatus, Ising unit, and information processing apparatus control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016176040A JP6773970B2 (ja) 2016-09-09 2016-09-09 情報処理装置、イジング装置及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2018041351A JP2018041351A (ja) 2018-03-15
JP6773970B2 true JP6773970B2 (ja) 2020-10-21

Family

ID=61560646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016176040A Active JP6773970B2 (ja) 2016-09-09 2016-09-09 情報処理装置、イジング装置及び情報処理装置の制御方法

Country Status (2)

Country Link
US (1) US10762415B2 (ja)
JP (1) JP6773970B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11562211B2 (en) * 2020-04-15 2023-01-24 Fujitsu Limited System local field matrix updates

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6979331B2 (ja) * 2017-10-30 2021-12-15 株式会社日立製作所 情報処理装置および情報処理方法
JP7068575B2 (ja) * 2018-02-06 2022-05-17 富士通株式会社 最適化システム、最適化装置及び最適化システムの制御方法
JP7071638B2 (ja) * 2018-07-31 2022-05-19 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
JP7100254B2 (ja) * 2018-08-10 2022-07-13 富士通株式会社 最適化システム、最適化システムの制御方法及び最適化システムの制御プログラム
JP7093009B2 (ja) 2018-08-30 2022-06-29 富士通株式会社 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
EP3852028A4 (en) * 2018-09-14 2021-10-06 Fujitsu Limited OPTIMIZATION DEVICE, CONTROL METHOD FOR OPTIMIZATION DEVICE AND CONTROL PROGRAM FOR OPTIMIZATION DEVICE
CA3109737C (en) 2018-09-14 2023-08-29 Fujitsu Limited Optimization device and method of controlling optimization device
JP7100257B2 (ja) * 2018-10-04 2022-07-13 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7193707B2 (ja) * 2018-10-11 2022-12-21 富士通株式会社 最適化装置、最適化装置の制御方法、サンプリング装置およびサンプリング装置の制御方法
JP7137064B2 (ja) * 2018-10-19 2022-09-14 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7193708B2 (ja) 2018-10-19 2022-12-21 富士通株式会社 最適化装置及び最適化装置の制御方法
US11080365B2 (en) 2018-10-31 2021-08-03 Fujitsu Limited Solving lattice problems using annealing
US11163532B2 (en) 2019-01-18 2021-11-02 Fujitsu Limited Solving multivariate quadratic problems using digital or quantum annealing
JP7197789B2 (ja) 2019-03-01 2022-12-28 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7185140B2 (ja) 2019-04-11 2022-12-07 富士通株式会社 最適化装置及び最適化装置の制御方法
JP7208529B2 (ja) * 2019-05-29 2023-01-19 富士通株式会社 最適化装置及び最適化方法
JP7323777B2 (ja) 2019-06-18 2023-08-09 富士通株式会社 最適化装置および最適化方法
JP7239826B2 (ja) 2019-06-18 2023-03-15 富士通株式会社 サンプリング装置およびサンプリング方法
JP7410394B2 (ja) 2020-03-26 2024-01-10 富士通株式会社 最適化装置及び最適化方法
JP7410395B2 (ja) * 2020-03-26 2024-01-10 富士通株式会社 最適化装置及び最適化方法
JP7424493B2 (ja) * 2020-07-07 2024-01-30 日本電気株式会社 情報処理装置および情報処理方法
JP7468663B2 (ja) * 2020-07-30 2024-04-16 日本電気株式会社 最適化装置、最適化方法および最適化プログラム
US20230376569A1 (en) 2022-05-23 2023-11-23 Fujitsu Limited Analysis of clustered data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0378115B1 (en) * 1989-01-06 1998-09-30 Hitachi, Ltd. Neural computer
JPH03100857A (ja) * 1989-09-14 1991-04-25 Toshiba Corp 神経回路網処理装置
JPH0634248B2 (ja) * 1989-12-16 1994-05-02 三菱電機株式会社 半導体神経回路網
JPH0652132A (ja) * 1992-07-28 1994-02-25 Mitsubishi Electric Corp 並列演算半導体集積回路装置およびそれを用いたシステム
JP3168779B2 (ja) * 1992-08-06 2001-05-21 セイコーエプソン株式会社 音声認識装置及び方法
US9633715B2 (en) 2013-05-31 2017-04-25 Hitachi, Ltd. Semiconductor device capable of attaining ground state in an ising model
JP5864684B1 (ja) * 2014-08-29 2016-02-17 株式会社日立製作所 半導体装置
CN105488565A (zh) * 2015-11-17 2016-04-13 中国科学院计算技术研究所 加速深度神经网络算法的加速芯片的运算装置及方法
US11238337B2 (en) * 2016-08-22 2022-02-01 Applied Brain Research Inc. Methods and systems for implementing dynamic neural networks

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11562211B2 (en) * 2020-04-15 2023-01-24 Fujitsu Limited System local field matrix updates

Also Published As

Publication number Publication date
US20180075342A1 (en) 2018-03-15
US10762415B2 (en) 2020-09-01
JP2018041351A (ja) 2018-03-15

Similar Documents

Publication Publication Date Title
JP6773970B2 (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
US11741362B2 (en) Training neural networks using mixed precision computations
JP7323777B2 (ja) 最適化装置および最適化方法
CN105224984B (zh) 一种基于深度神经网络的数据类别识别方法及装置
CN105654176B (zh) 神经网络系统及神经网络系统的训练装置和方法
JP2017224227A (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
JP7093009B2 (ja) 最適化装置、最適化装置の制御方法及び最適化装置の制御プログラム
TWI717646B (zh) 在類神經網路中產生隨機性
US8572004B2 (en) Space solution search
JP7410395B2 (ja) 最適化装置及び最適化方法
US20190138922A1 (en) Apparatus and methods for forward propagation in neural networks supporting discrete data
CA3131476A1 (en) Hybrid quantum computation architecture for solving quadratic unconstrained binary optimization problems
JP7137064B2 (ja) 最適化装置及び最適化装置の制御方法
JP2019016129A (ja) 最適化装置及び最適化装置の制御方法
CN113168310A (zh) 用于转换数字的硬件模块
CN115437795A (zh) 一种异构gpu集群负载感知的显存重计算优化方法及系统
Ezadi et al. Artificial neural network approach for solving fuzzy fractional order initial value problems under gH‐differentiability
JP2019200657A (ja) 演算装置及び演算装置の制御方法
KR20190118766A (ko) 추론을 위한 제한된 볼츠만 머신 구축 방법 및 추론을 위한 제한된 볼츠만 머신을 탑재한 컴퓨터 장치
JP7438544B2 (ja) ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
US20190073584A1 (en) Apparatus and methods for forward propagation in neural networks supporting discrete data
WO2021038216A1 (en) Data processing
CN117152335B (zh) 一种用于训练体渲染模型、体渲染的方法及装置
Prasad et al. Modelling the XOR/XNOR Boolean functions complexity using neural network
JPH05128285A (ja) ニユーロプロセツサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190611

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190613

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200914

R150 Certificate of patent or registration of utility model

Ref document number: 6773970

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150