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

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

Info

Publication number
JP2019071119A
JP2019071119A JP2019003441A JP2019003441A JP2019071119A JP 2019071119 A JP2019071119 A JP 2019071119A JP 2019003441 A JP2019003441 A JP 2019003441A JP 2019003441 A JP2019003441 A JP 2019003441A JP 2019071119 A JP2019071119 A JP 2019071119A
Authority
JP
Japan
Prior art keywords
value
values
ising
energy
circuit
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
Application number
JP2019003441A
Other languages
English (en)
Inventor
安基 富田
Yasumoto Tomita
安基 富田
田村 泰孝
Yasutaka Tamura
泰孝 田村
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 JP2019003441A priority Critical patent/JP2019071119A/ja
Publication of JP2019071119A publication Critical patent/JP2019071119A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Feedback Control In General (AREA)

Abstract

【課題】計算時間を短縮する。【解決手段】計算回路3が、ノイズ幅が互いに異なるように設定され、複数のニューロンの間の接続状態が互いに等しいイジング装置2a1〜2aNのそれぞれの総エネルギーを表すエネルギー値を算出する。交換制御回路4は、隣接したノイズ幅の値が設定される第1のイジング装置と第2のイジング装置(たとえば、イジング装置2a1,2a2)のエネルギー値の差に基づく交換確率で、第1のイジング装置と第2のイジング装置との間で、複数のニューロンの出力値、または、ノイズ幅の値を交換する。【選択図】図1

Description

本発明は、情報処理装置、イジング装置及び情報処理装置の制御方法に関する。
ノイマン型コンピュータが不得意とする多変数の最適化問題を解く方法として、イジング型のエネルギー関数を用いたシミュレーテッド・アニーリングを行うイジング装置(ボルツマンマシンと呼ばれる場合もある)がある。イジング装置は、計算対象の問題を、磁性体のスピンの振る舞いを表すモデルであるイジングモデルに置き換えて計算する。
また、複数のイジング装置をハードウェアで実現して並列処理させる手法や、各イジング装置で得られる評価値の優劣比較を行い、劣勢の評価値を更新し、同じ評価値が得られたときにその評価値を最適解とする手法が提案されている。
特開平5−250346号公報 特開平8−272760号公報
C. R. Schneider and H. C. Card, "Analog CMOS Deterministic Boltzmann Circuits", Journal of Solid-State Circuits, pp.907-914, 1993 A. DeGloria et al., "Efficient Implementation of the Boltzmann Machine Algorithm", IEEE Trans of NN, pp.159-163, 1993 A. DeGloria et al., "Design and Performance Evaluation of a Parallel Architecture for the Boltzmann Machine", EuroMICRO, pp.629-636, 1994
しかし、ハードウェアで実現する従来のイジング装置でも、最適解を得るためには、逐次的な処理が多数回繰り返されるため、計算時間が長くなるという問題があった。
1つの側面では、本発明は、計算時間を短縮する情報処理装置、イジング装置及び情報処理装置の制御方法を提供することを目的とする。
1つの態様では、複数のニューロンの間の接続の強さを示す複数の重み値と、前記複数のニューロンから出力される複数の出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第1のエネルギー値を算出し、前記複数の第1のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第1の値と、閾値との比較結果に基づき、前記複数の出力値を決定し出力するニューロン回路部と、前記複数の重み値に基づく前記複数のニューロンの間の接続状態が互いに等しく、前記ノイズ値の上限と下限との幅を示すノイズ幅が互いに異なるように設定される複数のイジング装置と、前記複数の第1のエネルギー値と前記複数の出力値に基づき、前記複数のイジング装置のそれぞれの総エネルギーを表す複数の第2のエネルギー値を算出する計算回路と、前記ノイズ幅として第1の幅が設定される第1のイジング装置と、前記複数のイジング装置のうち、前記第1の幅に対して隣接する値をもつ第2の幅が前記ノイズ幅として設定される第2のイジング装置との間の前記複数の第2のエネルギー値の差に基づく交換確率で、前記第1のイジング装置と前記第2のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換する交換制御回路と、前記ノイズ幅を、前記複数のイジング装置に設定する制御装置と、を有する情報処理装置が提供される。
また、1つの態様では、複数のニューロンの間の接続の強さを示す複数の重み値と、前記複数のニューロンから出力される複数の出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第1のエネルギー値を算出し、前記複数の第1のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第1の値と閾値との比較結果に基づき、前記複数の出力値を決定し出力するニューロン回路部と、前記複数の第1のエネルギー値と前記複数の出力値に基づき、自身のイジング装置の総エネルギーを表す第2のエネルギー値を算出する計算回路と、前記自身のイジング装置に設定される、前記ノイズ値の上限と下限との幅を示すノイズ幅である第1の幅に対して、隣接する値をもつ第2の幅が前記ノイズ幅として設定される他のイジング装置から、前記第2のエネルギー値に相当する前記他のイジング装置の総エネルギーを表す第3のエネルギー値を取得し、前記第2のエネルギー値と前記第3のエネルギー値との差に基づく交換確率で、前記自身のイジング装置と前記他のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換する交換制御回路と、を有するイジング装置が提供される。
また、1つの態様では、複数のニューロンの間の接続の強さを示す複数の重み値と、前記複数のニューロンから出力される複数の出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第1のエネルギー値を算出し、前記複数の第1のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第1の値と、閾値との比較結果に基づき、前記複数の出力値を決定し出力するニューロン回路部を備え、前記複数の重み値に基づく前記複数のニューロンの間の接続状態が互いに等しい複数のイジング装置を有する情報処理装置の制御方法において、前記情報処理装置が有する制御装置が、前記ノイズ値の上限と下限との幅を示すノイズ幅が前記複数のイジング装置において互いに異なるように、前記ノイズ幅を設定し、前記情報処理装置が有する計算回路が、前記複数の第1のエネルギー値と前記複数の出力値に基づき、前記複数のイジング装置のそれぞれの総エネルギーを表す複数の第2のエネルギー値を算出し、前記情報処理装置が有する交換制御回路が、前記ノイズ幅として第1の幅が設定される第1のイジング装置と、前記複数のイジング装置のうち、前記第1の幅に対して隣接する値をもつ第2の幅が前記ノイズ幅として設定される第2のイジング装置との間の前記複数の第2のエネルギー値の差に基づく交換確率で、前記第1のイジング装置と前記第2のイジング装置との間で、前記複数の出力値、または、前記ノイズ幅を交換する、情報処理装置の制御方法が提供される。
開示の情報処理装置、イジング装置及び情報処理装置の制御方法では、計算時間を短縮できる。
第1の実施の形態の情報処理装置の一例を示す図である。 異なる温度が設定される複数のアンサンブルのノード状態の交換の様子を示す図である。 異なる温度が設定される複数のアンサンブルのエネルギー関数の様子を示す図である。 第2の実施の形態の情報処理装置の一例を示す図である。 出力値xが1となる確率P(h)の一例を示す図である。 計算回路の一例を示す図である。 交換制御回路の一例を示す図である。 フラグ生成回路の一例を示す図である。 フラグ生成回路の他の例を示す図である。 交換回路の一例を示す図である。 選択信号生成回路の入出力信号の一例の関係を示す真理値表である。 状態選択回路の入出力信号の一例の関係を示す真理値表である。 第2の実施の形態の情報処理装置の動作の一例を示すフローチャートである。(その1) 第2の実施の形態の情報処理装置の動作の一例を示すフローチャートである。(その2) 第3の実施の形態の情報処理装置の一例を示す図である。 交換制御回路の一例を示す図である。 温度生成回路の一例を示す図である。 温度生成回路の入出力信号の一例の関係を示す真理値表である。 第3の実施の形態の情報処理装置の動作の一例を示すフローチャートである。 情報処理装置の動作の一例を示すタイミングチャートである。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置の一例を示す図である。
情報処理装置1は、イジング装置2a1〜2aNと、計算回路3と、交換制御回路4と、制御装置5とを有している。制御装置5により、エネルギー関数を用いた最適化問題がイジング装置2a1〜2aNにマッピングされる。
たとえば、イジング装置2a1〜2aNのそれぞれは、1つの半導体集積回路(チップ)で実現される。
イジング装置2a1〜2aNのそれぞれは同様の要素を有している。たとえば、イジング装置2akは、ニューロン回路部10akと、制御回路10bkとを有している。
ニューロン回路部10akは、複数のニューロンの間の接続の強さを示す複数の重み値と、複数のニューロンから出力される複数の出力値とに基づき、複数のニューロンの数に対応した数の複数のエネルギー値(以下ローカルフィールド値という)を算出する。
なお、複数の重み値は、計算対象の最適化問題に応じて、たとえば、制御装置5によって設定される。複数の重み値が、制御装置5によりイジング装置2a1〜2aNに書き込まれることで、最適化問題がイジング装置2a1〜2aNにマッピングされる。
さらに、ニューロン回路部10akは、複数のローカルフィールド値のそれぞれにノイズ値を加算して得られる複数の値と、閾値との比較結果に基づき、上記複数の出力値を決定し出力する。以下では、ニューロンの数をn個とする。
図1の例では、ニューロン回路部10akは、n個のニューロンの機能を実現するn個のニューロン回路11k1,11k2,…,11knを有している。ニューロン回路11k1〜11knのそれぞれにおいて、上記のようなローカルフィールド値の算出や、ニューロンの1ビットの出力値を決定し出力する処理が行われる。また、ニューロン回路11k1〜11knは、nビットの出力値のうち何れか1ビットの出力値の変化時に更新信号を受け、更新信号に基づいてローカルフィールド値を更新する機能を有する。
制御回路10bkは、nビットの出力値のうち何れか1ビットの出力値の変化時に、変化後の出力値に基づく上記更新信号を、ニューロン回路11k1〜11knに供給する。たとえば、更新信号は、変化後の出力値や、出力値が変化したニューロンの識別情報に基づく重み値の選択信号を含む。
上記のような動作を行う制御回路10bkは、たとえば、比較回路や選択回路などで実現できる。なお、制御回路10bkは、プロセッサであってもよい。プロセッサは、たとえば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサは、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
上記のような要素を含むイジング装置2a1〜2aNは、複数の重み値に基づく複数のニューロンの間の接続状態が互いに等しい。つまり、イジング装置2a1〜2aNに含まれるニューロン回路部10a1,10a2,…,10ak,…,10aN内の複数のニューロン回路の接続状態は互いに等しい。このため、複数の重み値に基づく複数のニューロンの間の接続状態が互いに等しいイジング装置2a1〜2aNのそれぞれでは、同一の最適化問題が独立に計算される。
また、イジング装置2a1〜2aNには、ノイズ値の上限と下限との幅を示すノイズ幅が異なるように設定されている。
計算回路3は、複数のローカルフィールド値と、nビットの出力値とに基づき、イジング装置2a1〜2aNのそれぞれの総エネルギーを表す複数のエネルギー値(E1,E2,…,Ek,…,EN)を算出する。計算回路3は、たとえば、ニューロン回路11k1で得られるローカルフィールド値とニューロン回路11k1の出力値とを乗算する。計算回路3は、ニューロン回路11k2〜11knで得られるローカルフィールド値とニューロン回路11k2〜11knの出力値に対しても同様の乗算を行う。そして、計算回路3は、それらの乗算結果を積算することで、イジング装置2akのエネルギー値Ekを算出する。つまり、計算回路3は、ニューロン回路11k1〜11knで得られるローカルフィールド値と出力値の積和演算によって、エネルギー値Ekを算出する。
交換制御回路4は、後述する拡張アンサンブル法を実現するために、イジング装置2a1〜2aNのうち、ノイズ幅の値が隣接して設定されている2つのイジング装置間で、上記エネルギー値の差に基づく交換確率でnビットの出力値、またはノイズ幅を交換する。
なお、ノイズ幅は、後述する式(5)の実効温度Tに相当する。ノイズ幅を大きくすることは、実効温度Tを大きくすることに相当する。図1では、イジング装置2a1〜2aNにおいて、イジング装置2a1から順に、実効温度TとしてT,T,…,T,…,Tが設定されている例が示されている。
たとえば、T>T>…>T>…>Tであるとき、ノイズ幅として実効温度Tに相当する第1の幅が設定されているイジング装置2a1と、ノイズ幅として実効温度Tに相当する第2の幅が設定されているイジング装置2a2では、ノイズ幅の値が隣接する。そのため、交換制御回路4は、イジング装置2a1のエネルギー値E1とイジング装置2a2のエネルギー値E2との差に基づく交換確率で、イジング装置2a1,2a2のそれぞれにおけるnビットの出力値、またはそれぞれに設定されたノイズ幅を交換する。
なお、図1では、計算回路3及び交換制御回路4が、イジング装置2a1〜2aNの外部に備えられている場合が例示されているが、何れか一方または両方がイジング装置2a1〜2aN内に設けられていてもよい。
制御装置5は、互いに異なるノイズ幅を、イジング装置2a1〜2aNに設定する。制御装置5は、たとえば外部から起動信号が入力されると、実効温度TがT>T>…>T>…>Tとなるように、ノイズ幅をイジング装置2a1〜2aNに設定する。
また、制御装置5は、イジング装置2a1〜2aNの何れかからnビットの出力値の変化が収束したことを表すニューロン収束信号を受け付けると、計算処理の終了を表す終了信号を出力する。
ここで、情報処理装置1が実現する拡張アンサンブル法(交換モンテカルロ法またはアンサンブル交換法と呼ばれる場合もある)について、図2及び図3を用いて説明する。
拡張アンサンブル法は、温度の異なる複数のネットワーク(以下アンサンブルと呼ぶ)で確率的探索を行いながら、温度が隣接して設定されているアンサンブル間で各アンサンブルのエネルギーの差分に応じ、各アンサンブルのノードの状態を交換する方法である。この方法により、局所解に陥ることが防止され、より高速に最適値に収束させることが可能となる。
図2は、異なる温度が設定される複数のアンサンブルのノード状態の交換の様子を示す図である。
たとえば、図2では、複数(4つ)のアンサンブルが用意されており、各アンサンブルの温度はT1〜T4(T4>T3>T2>T1)であるとする。拡張アンサンブル法では、温度が隣接して設定されているアンサンブル同士で、所定の交換確率に基づき、ノード状態が交換される。交換確率はmin(1,R)とすることができ、Rは以下の式(1)で表される。
Figure 2019071119
なお、式(1)において、T,Tq+1は、温度が隣接して設定されているq番目のアンサンブルとq+1番目のアンサンブルにおける温度をそれぞれ表している。また、Etotal(X),Etotal(Xq+1)は、上記2つのアンサンブルのそれぞれの総エネルギーを表している。また、X,Xq+1は、それぞれ、q番目及びq+1番目のアンサンブルのノード状態をすべて含んでいるものとする。
このような交換確率では、T<Tq+1で、且つ、Etotal(X)>Etotal(Xq+1)であるとき、Rは1を超えるので、式(1)より、交換確率は1となり、ノード状態の交換が行われる。たとえば、温度がT1のアンサンブルと温度がT2のアンサンブル間では、温度がT2のアンサンブルのエネルギーが、温度がT1のアンサンブルのエネルギーよりも小さいときには、ノード状態の交換が行われる。
一方、T<Tq+1で、且つ、Etotal(X)<Etotal(Xq+1)であるとき、確率Rで、ノード状態の交換が行われる。
たとえば、温度がT1のアンサンブルと温度がT2のアンサンブル間では、温度がT2のアンサンブルのエネルギーが、温度がT1のアンサンブルのエネルギーよりも大きいときには、確率Rでノード状態の交換が行われる。
図3は、異なる温度が設定される複数のアンサンブルのエネルギー関数の様子を示す図である。なお、図3には、エネルギー関数を表す曲線((1)〜(6))が示されており、上方の曲線((1)側)ほど、下方の曲線((6)側)よりも高い温度が設定されるアンサンブルのエネルギー関数を示し、また、曲線のカーブが緩やかになっている。
たとえば、曲線(1)は、曲線(6)よりも曲線が緩やかであるために、曲線(6)の場合よりも局所解に陥りにくい。
拡張アンサンブル法では、温度が隣接して設定されているアンサンブル間でノード状態が上記のように交換される。このため、たとえば、曲線(6)のエネルギー関数となるアンサンブルのノード状態が局所解に陥っても、そのアンサンブルのノード状態を、上記の交換確率で、曲線(5)のエネルギー関数となる温度が高いアンサンブルのノード状態に遷移させることができる。これにより、簡単に局所解から脱出でき、シミュレーテッド・アニーリングよりも高速に最適値に収束させることが可能となる。
なお、上記の説明では、ノード状態を交換するとしたが、温度を交換するようにしても同様の効果が得られる。
本実施の形態の情報処理装置1では、上記のような拡張アンサンブル法をハードウェアで実現している。
上記の複数のアンサンブルは、イジング装置2a1〜2aNに相当し、ノード状態は、ニューロン回路部10a1〜10aNのそれぞれのnビットの出力値に相当する。また、温度は、実効温度T〜T(またはノイズ幅)に相当する。
また、式(6)に含まれるEtotal(X),Etotal(Xq+1)を算出するために、計算回路3は、複数のローカルフィールド値と、nビットの出力値とに基づき、イジング装置2a1〜2aNのそれぞれの総エネルギーを表す複数のエネルギー値を算出する。
交換制御回路4は、イジング装置2a1〜2aNのうち、ノイズ幅の値が隣接して設定されている2つのイジング装置間で、上記エネルギー値の差に基づく交換確率min(1,R)で、nビットの出力値、またはノイズ幅を交換する。
以上のように、本実施の形態の情報処理装置1によれば、ハードウェアで拡張アンサンブル法が実現でき、迅速に最適解を得ることが可能となる。つまり、最適化問題の計算時間を短縮できる。
また、交換確率を算出する際に用いられるエネルギー値は、各ニューロンのローカルフィールド値と出力値との積和演算で求められるので、簡単な回路構成の計算回路3でエネルギー値を算出できる。
[第2の実施の形態]
図4は、第2の実施の形態の情報処理装置の一例を示す図である。なお、図4において、図1に示した要素と同一の要素については同一符号が付されている。
情報処理装置1aは、イジング装置2b1〜2bNと、制御装置5と、ランダム信号生成回路6とを有している。なお、図4では、イジング装置2b1〜2bNにおいて、イジング装置2b1から順に、実効温度TとしてT,T,…,Tが設定されている例が示されている。以下では、T>T>…>Tであるとする。
イジング装置2b1〜2bNは、それぞれ同様の要素を成している。以下では、イジング装置2b1〜2bNのうち、イジング装置2b1を例にして説明する。
イジング装置2b1は、ニューロン回路部10a1、制御回路10b1、計算回路10c1、交換制御回路10d1を有している。また、イジング装置2b1は、図1では図示を省略したが、ノイズ発生回路10e1と、ランダム信号生成回路10f1とを有している。なお、計算回路10c1及び交換制御回路10d1は、第1の実施の形態の計算回路3及び交換制御回路4と同様の機能を有している。
ニューロン回路部10a1は、n個のニューロン回路1111〜111nを有している。図4の例では、DeGloriaアルゴリズムと呼ばれるアルゴリズムに基づく処理を行うニューロン回路1111〜111nの例が示されている。
(ニューロン回路の一例)
図4では、ニューロン回路1111〜111nのうち、ニューロン回路1111,111nが一例として示されている。ニューロン回路1111〜111nのうち、ニューロン回路1111,111n以外のニューロン回路も同様の回路となっている。
ニューロン回路1111,111nは、レジスタ20a1,20anと、選択回路21a1,21an,22a1,22anと、乗算回路23a1,23anとを有している。さらにニューロン回路1111,111nは、加算回路24a1,24anと、レジスタ25a1,25anと、加算回路26a1,26anとを有している。さらに、ニューロン回路1111,111nは、比較回路27a1,27anと、XOR(Exclusive OR)回路28a1,28anと、レジスタ29a1,29anとを有している。
レジスタ20a1は、n個の重み値W12,W13,…,W1nを格納し、レジスタ20anは、n個の重み値Wn1,Wn2,…,Wnnを格納する。
なお、上記のような重み値は、制御装置5により、計算対象の問題に応じて設定され、レジスタ20a1〜20anに記憶される。なお、上記のような重み値は、RAM(Random Access Memory)などのメモリに記憶されてもよい。
選択回路21a1は、制御回路10b1から供給される選択信号に基づき、レジスタ20a1に格納されている重み値W12〜W1nのうち1つを選択して出力する。選択回路21anは、選択信号に基づき、レジスタ20anに格納されている重み値Wn1〜Wnnのうち1つを選択して出力する。
たとえば、ニューロン回路1111の出力値が変化したとき、選択信号に基づき、ニューロン回路111nの選択回路21anは、重み値Wn1を選択する。
選択回路22a1〜22anのそれぞれは、制御回路10b1から出力される、出力値が更新されるニューロン回路の出力値の変化後の値(0か1)に基づき、1または−1を選択して出力する。変化後の値が0のときには、選択回路22a1〜22anは、−1を選択して出力し、変化後の値が1のときには、選択回路22a1〜22anは、1を選択して出力する。この理由については後述する。
乗算回路23a1は、選択回路21a1から出力される値と、選択回路22a1から出力される値との積を出力する。乗算回路23anは、選択回路21anから出力される値と、選択回路22anから出力される値との積を出力する。
加算回路24a1は、乗算回路23a1から出力される値と、レジスタ25a1に格納されている値とを加算して出力する。加算回路24anは、乗算回路23anから出力される値と、レジスタ25anに格納されている値とを加算して出力する。
レジスタ25a1は、図示しないクロック信号に同期して、加算回路24a1から出力される値を取り込む。レジスタ25anは、図示しないクロック信号に同期して、加算回路24anから出力される値を取り込む。レジスタ25a1〜25anは、たとえば、フリップフロップである。なお、初期値は後述するバイアス値である。
なお、レジスタ25a1〜25anに取り込まれた値が、前述したローカルフィールド値であり、図4では、h,hと表記されている。
加算回路26a1は、レジスタ25a1から出力される値に、ノイズ発生回路10e1から出力されるノイズ値を加算して出力する。加算回路26anは、レジスタ25anから出力される値に、ノイズ発生回路10e1から出力されるノイズ値を加算して出力する。ノイズ値の例については後述する。
なお、ノイズ発生回路10e1は、制御装置5の制御のもと、ノイズ値を出力する。また、ノイズ発生回路10e1は、たとえば、増幅回路を有している。制御装置5が増幅回路の増幅率を変化させることで、実効温度に対応するノイズ幅が制御可能である。
比較回路27a1は、加算回路26a1から出力される値が、閾値よりも大きいときには1を出力し、閾値以下のときには0を出力する。比較回路27anは、加算回路26anから出力される値が、閾値よりも大きいときには1を出力し、閾値以下のときには0を出力する。
なお、イジング装置2b1において同時に複数のニューロン回路の出力値が更新されないように、比較回路27a1〜27anは、ランダム信号生成回路10f1から出力される乱数値によって、ランダムに1つが有効になり、他は無効になる。ランダム信号生成回路10f1としては、LFSR(Linear Feedback Shift Registers)などを用いることができる。なお、ノイズ発生回路10e1も、ランダム信号生成回路10f1と同様に、たとえば、LFSRを用いて実現可能である。
XOR回路28a1は、比較回路27a1から出力される値または交換制御回路10d1から供給される値と、レジスタ29a1に格納されている値とが、一致しているときは0を出力し、異なるときは1を出力する。XOR回路28anは、比較回路27anから出力される値または交換制御回路10d1から供給される値と、レジスタ29anに格納されている値とが、一致しているときは0を出力し、異なるときは1を出力する。
図示を省略しているが、たとえば、各比較回路27a1〜27anの出力側には、交換制御回路10d1が出力するnビットの出力値X1newのうちの1ビットの値を選択するか、比較回路27a1〜27anから出力される値を選択する比較回路が設けられる。このn個の比較回路は、それぞれ、交換制御回路10d1がnビットの出力値を出力するときにはその出力値の1ビットの値を選択し、比較回路27a1〜27anの出力値の代わりに、XOR回路28a1〜28an及びレジスタ29a1〜29anに供給する。
なお、交換制御回路10d1が出力するnビットの出力値X1newは、ニューロン回路部10a1のnビットの出力値または、イジング装置2b2のニューロン回路部(図示せず)のnビットの出力値である。nビットの出力値X1newのうち、たとえば、XOR回路28a1には、1ビット目の値が供給され、XOR回路28anには、nビット目の値が供給される。
レジスタ29a1は、XOR回路28a1から出力される値が1となると、比較回路27a1または交換制御回路10d1から供給される値を取り込む。これにより、ニューロン回路1111の出力値xが変化する(更新される)。レジスタ29anは、XOR回路28anから出力される値が1となると、比較回路27anまたは交換制御回路10d1から供給される値を取り込む。これにより、ニューロン回路111nの出力値xが変化する。
以上のような、ニューロン回路1111〜111nは、イジング型のエネルギー関数の演算を比較的小規模なハードウェアで実現するものである。なお、イジング型のエネルギー関数E(x)は、たとえば、以下の式(2)で定義される。
Figure 2019071119
右辺の1項目は、全ニューロン回路から選択可能な2つのニューロン回路の全組み合わせについて、漏れと重複なく、2つのニューロン回路の出力値と重み値との積を積算したものである。なお、Wij=Wji、Wii=0である。
右辺の2項目は、全ニューロン回路のそれぞれのバイアス値と出力値との積を積算したものである。bは、i番目のニューロン回路のバイアス値を示している。
上記のようなエネルギー関数E(x)をハードウェアで表現するため、図4に示したニューロン回路1111〜111nのそれぞれは、ローカルフィールド値h〜hを演算する。たとえば、ニューロン回路1111〜111nのうち、i(1≦i≦n)番目のニューロン回路におけるローカルフィールド値hは以下の式(3)で表される。
Figure 2019071119
右辺の1項目は、i番目のニューロン回路と、イジング装置2b1内の他のニューロン回路のそれぞれとの間の接続の強さを示す複数の重み値と、ニューロン回路1111〜111nのそれぞれの出力値との積を積算したものである。
イジング装置2b1のニューロン回路1111〜111nのうち、一度に出力値が更新されるニューロン回路の数を1つとすると、そのニューロン回路の接続先では、元のローカルフィールド値に対して、その更新による変化分を加算または減算すればよい。
たとえば、i番目のニューロン回路に接続されているj(1≦j≦n)番目のニューロン回路の出力値x(0または1)が、1−xに変化したとき、i番目のニューロン回路のローカルフィールド値の変化分Δhは、以下の式(4)で表される。
Figure 2019071119
式(4)において、1−2xは、出力値xが、0から1に変化したときには、+1となり、1から0に変化したときには、−1となる。
このような1−2xの演算は、図4に示した、選択回路22a1〜22anで実現できる。
また、既述の通り、図4に示したようなニューロン回路1111〜111nでは、ローカルフィールド値h〜hにノイズ値を加えた値に対して、比較回路27a1〜27anで閾値との比較が行われる。
たとえば、比較回路27a1〜27anの出力値(ニューロン回路1111〜111nの出力値x〜x)が1となる確率が、シグモイド関数に従うようにノイズ値が加えられる。たとえば、i番目のニューロン回路の出力値xが1となる確率P(h)が、以下の式(5)の関係になるように、ノイズ値が加えられる。
Figure 2019071119
式(5)において、Tは、実効温度である。
式(5)に示すような確率P(h)を得るために、加算するノイズ値nsの確率密度関数p(ns)は、以下の式(6)のようになる。
Figure 2019071119
図5は、出力値xが1となる確率P(h)の一例を示す図である。
横軸は、ローカルフィールド値hにノイズ値nsを加算した値を示し、縦軸は、出力値xが1となる確率を示している。
波形30は、ローカルフィールド値hに、式(6)に示すような確率密度関数p(ns)に従うノイズ値nsを加算した値が、i番目のニューロン回路の比較回路に入力されたときに、出力値xが1となる確率P(h)を示す。波形31は、ローカルフィールド値hが、i番目のニューロン回路の比較回路に入力されたときに、出力値xが1となる確率P(h)を示す。
波形31に示すように、ノイズ値nsがローカルフィールド値hに加算されないときは、ローカルフィールド値hが、閾値Vth以下では、P(h)=0、閾値Vthを超えると、P(h)=1となる。
これに対して、ノイズ値nsがローカルフィールド値hに加算されるときは、波形30に示すように、シグモイド関数にしたがって確率P(h)が変化する。
以上で、ニューロン回路1111〜111nの説明を終える。
(計算回路)
図6は、計算回路の一例を示す図である。
計算回路10c1は、乗算回路40、加算回路41、レジスタ42を有する。
乗算回路40は、ニューロン回路部10a1のnビットの出力値Xのうち、i番目のビットの値である出力値xと、ニューロン回路1111〜111nのうち、i番目のニューロン回路で得られるローカルフィールド値hとの積を出力する。
加算回路41は、レジスタ42に記憶されている値と、乗算回路40から出力される値とを加算する。
レジスタ42は、図示しないクロック信号に同期して、加算回路41から出力される値を取り込み出力する。
このような計算回路10c1は、i=1〜nである出力値x及びローカルフィールド値hを取得して、上記の回路構成により、出力値x〜xと、ローカルフィールド値h〜hとの積和演算を行う。そして、計算回路10c1は、積和演算結果を、イジング装置2a1の総エネルギーを表すエネルギー値Etotal(X)として出力する。
(交換制御回路)
交換制御回路10d1は、前述した拡張アンサンブル法を実現するために、イジング装置2b1,2b2間で、上記エネルギー値の差に基づく交換確率で、nビットの出力値を交換する。
図7は、交換制御回路の一例を示す図である。
なお、図7の交換制御回路10dqは、交換制御回路10d1〜10dNのうち、イジング装置2b1〜2bNにおいて、q(1≦q≦N)番目のイジング装置に含まれている交換制御回路を示している。
交換制御回路10dqは、フラグ生成回路50,51と、AND回路52と、交換回路53とを有している。
フラグ生成回路50は、q番目のイジング装置の総エネルギーを表すエネルギー値Etotal(X)と、q番目のイジング装置よりも高い実効温度Tq+1が設定されたq+1番目のイジング装置の総エネルギーを表すエネルギー値Etotal(Xq+1)を受ける。また、フラグ生成回路50は、ランダム信号生成回路6から出力される乱数値を受ける。フラグ生成回路50は、エネルギー値Etotal(X),Etotal(Xq+1)及び乱数値に基づき、q番目のイジング装置とq+1番目のイジング装置のニューロン回路部のnビットの出力値X,Xq+1を交換するか否かを示すフラグ信号Flgdを出力する。フラグ信号Flgdが1のときは、出力値X,Xq+1を交換することを示し、フラグ信号Flgdが0のときは、出力値X,Xq+1を交換しないことを示す。
フラグ生成回路51は、q番目のイジング装置の総エネルギーを表すエネルギー値Etotal(X)と、q番目のイジング装置よりも低い実効温度Tq−1が設定されたq−1番目のイジング装置の総エネルギーを表すエネルギー値Etotal(Xq−1)を受ける。また、フラグ生成回路51は、ランダム信号生成回路6から出力される乱数値を受ける。フラグ生成回路51は、エネルギー値Etotal(X),Etotal(Xq−1)及び乱数値に基づき、q番目のイジング装置とq−1番目のイジング装置のニューロン回路部のnビットの出力値X,Xq−1を交換するか否かを示すフラグ信号Flguを出力する。フラグ信号Flguが1のときは、出力値X,Xq−1を交換することを示し、フラグ信号Flguが0のときは、出力値X,Xq−1を交換しないことを示す。
図8は、フラグ生成回路の一例を示す図である。
なお、図8では、フラグ生成回路50の一例を示している。
フラグ生成回路50として、Metropolis−Hastingsアルゴリズムと呼ばれるアルゴリズムに基づいて動作する回路を用いることができる。
フラグ生成回路50は、エネルギー比較回路60と、確率演算回路61と、確率比較回路62と、OR回路63とを有している。
エネルギー比較回路60は、エネルギー値Etotal(X),Etotal(Xq+1)を比較する。そして、エネルギー比較回路60は、エネルギー値Etotal(X)がエネルギー値Etotal(Xq+1)よりも大きい場合には1を出力し、エネルギー値Etotal(X)がエネルギー値Etotal(Xq+1)よりも小さい場合には0を出力する。
確率演算回路61は、式(1)に示した確率Rを算出する。確率演算回路61は、減算回路61a、乗算回路61b、exp計算回路61cを有している。
減算回路61aは、エネルギー値Etotal(X)とエネルギー値Etotal(Xq+1)の差を演算する。
乗算回路61bは、減算回路61aでの減算結果と定数Kとの積を出力する。定数Kは、(1/T)−(1/Tq+1)であり、たとえば、制御装置5によって予め計算され、図示しないレジスタに記憶されている。
exp計算回路61cは、乗算回路61bから出力される値のexp演算結果を確率Rとして出力する。
確率比較回路62は、確率Rと、ランダム信号生成回路6が出力する乱数値とを比較する。なお、ランダム信号生成回路6が出力する乱数値は0より大きく、1よりも小さいものとする。確率比較回路62は、乱数値が確率Rよりも大きい場合には、1を出力し、乱数値が確率Rよりも小さい場合には、0を出力する。
OR回路63は、エネルギー比較回路60から出力される値と、確率比較回路62から出力される値のOR論理演算結果を、フラグ信号Flgdとして出力する。
なお、フラグ生成回路51もフラグ生成回路50と同様の回路で実現できる。
フラグ生成回路51では、図8において、エネルギー値Etotal(X)として、エネルギー値Etotal(Xq−1)が用いられ、エネルギー値Etotal(Xq+1)として、エネルギー値Etotal(X)が用いられる。また、フラグ信号Flgdの代わりにフラグ信号Flguが出力される。
図9は、フラグ生成回路の他の例を示す図である。
図9では、図7に示したフラグ生成回路50の他の例として、Heat−Bathアルゴリズムと呼ばれるアルゴリズムに基づいて動作するフラグ生成回路50aが示されている。なお、図7に示したフラグ生成回路51についても、フラグ生成回路50aと同様の回路で実現できる。
フラグ生成回路50aは、確率演算回路71と、確率比較回路72とを有している。
確率演算回路71は、以下の式(7)で表される確率Rを算出する。確率演算回路71は、減算回路71a、乗算回路71b、exp計算回路71c、加算回路71d、除算回路71eを有している。
Figure 2019071119
減算回路71a、乗算回路71b、exp計算回路71cは、図8に示した減算回路61a、乗算回路61b,exp計算回路61cと同様の演算を行う。
加算回路71dは、exp計算回路61cでの演算結果に1を加算する。除算回路71eは、1を加算回路71dでの加算結果で割り、その結果を確率Rとして出力する。
確率比較回路72は、確率Rと、ランダム信号生成回路6が出力する乱数値とを比較する。なお、ランダム信号生成回路6が出力する乱数値は0より大きく、1よりも小さいものとする。確率比較回路72は、乱数値が確率Rよりも大きい場合には、1をフラグ信号Flgdとして出力し、乱数値が確率Rよりも小さい場合には、0をフラグ信号Flgdとして出力する。
図7の説明に戻る。
AND回路52は、フラグ生成回路50,51が出力するフラグ信号Flgd,FlguのAND論理演算結果を、調停信号Arbiとして出力する。すなわち、AND回路52は、フラグ信号Flgd,Flguがともに1の場合には、調停信号Arbiとして1を出力し、それ以外の場合には、調停信号Arbiとして0を出力する。
交換回路53は、フラグ生成回路50,51が出力するフラグ信号Flgd,Flguと、AND回路52が出力する調停信号Arbiと、q−1,q,q+1番目のイジング装置のニューロン回路部のnビットの出力値Xq−1,X,Xq+1とを受ける。交換回路53は、これらに基づき、q番目のイジング装置のニューロン回路部のnビットの新たな出力値Xqnewを出力する。
図10は、交換回路の一例を示す図である。
交換回路53は、選択信号生成回路80、状態選択回路81を有している。
選択信号生成回路80は、フラグ信号Flgd,Flguと、AND回路52が出力する調停信号Arbiとに基づき、以下の図11に示す真理値表にしたがって、選択信号Selu,Seldを出力する。
図11は、選択信号生成回路の入出力信号の一例の関係を示す真理値表である。
図11の真理値表に示されているように、選択信号生成回路80は、フラグ信号Flguの値が1、フラグ信号Flgdの値が0、調停信号Arbiの値が0のとき、選択信号Seluとして1、選択信号Seldとして0を出力する。
また、選択信号生成回路80は、フラグ信号Flguの値が0、フラグ信号Flgdの値が1、調停信号Arbiの値が0のとき、選択信号Seluとして0、選択信号Seldとして1を出力する。
また、選択信号生成回路80は、フラグ信号Flgu,Flgdの値が0、調停信号Arbiの値が0のとき、選択信号Selu,Seldとして0を出力する。
また、選択信号生成回路80は、フラグ信号Flgu,Flgdの値が1、調停信号Arbiの値が1のとき、選択信号Seluとして1、選択信号Seldとして0、または選択信号Seluとして0、選択信号Seldとして1を出力する。
状態選択回路81は、選択信号生成回路80が出力する選択信号Selu,Seldに基づき、以下の図12に示す真理値表にしたがって、q番目のイジング装置のニューロン回路部のnビットの新たな出力値Xqnewを出力する。
図12は、状態選択回路の入出力信号の一例の関係を示す真理値表である。
図12の真理値表に示されているように、状態選択回路81は、選択信号Seluの値が1、選択信号Seldの値が0のとき、出力値Xqnewとして、q−1番目のイジング装置の出力値Xq−1を出力する。このとき、q番目のイジング装置の出力値Xとq−1番目のイジング装置の出力値Xq−1との交換が行われる。
また、状態選択回路81は、選択信号Seluの値が0、選択信号Seldの値が1のとき、出力値Xqnewとして、q+1番目のイジング装置の出力値Xq+1を出力する。このとき、q番目のイジング装置の出力値Xとq+1番目のイジング装置の出力値Xq+1との交換が行われる。
また、状態選択回路81は、選択信号Selu,Seldの値が0のとき、出力値Xqnewとして、q番目のイジング装置の出力値Xを出力する。このときは、q番目のイジング装置の出力値Xとq−1番目またはq+1番目のイジング装置の出力値Xq−1,Xq+1との交換は行われない。
(第2の実施の形態の情報処理装置の動作例)
以下、制御装置5によって制御される図4の情報処理装置1aの動作の一例を、フローチャートを用いて説明する
図13及び図14は、第2の実施の形態の情報処理装置の動作の一例を示すフローチャートである。
[ステップS1] 制御装置5は、外部から起動信号を受けると、イジング装置2b1〜2bNに対して、異なる実効温度(ノイズ幅)を設定する。
[ステップS2] イジング装置2b1〜2bNのそれぞれにおけるn個のニューロン回路(たとえば、ニューロン回路1111〜111n)は、ローカルフィールド値h〜hを算出する。
[ステップS3] イジング装置2b1〜2bNのそれぞれにおけるn個のニューロン回路は、ローカルフィールド値h〜hにノイズ値を加算する。
[ステップS4] イジング装置2b1〜2bNのそれぞれに含まれるランダム信号生成回路(たとえば、ランダム信号生成回路10f1)が出力する乱数値に応じて、n個のニューロン回路の何れか1つが選択されて、その出力値の更新が許容される。そして、たとえば、イジング装置2b1〜2bNのそれぞれに含まれる制御回路(たとえば、制御回路10b1)が、ニューロン回路の選択回数を1つ増加する。
[ステップS5] イジング装置2b1〜2bNのそれぞれにおいて、選択されたニューロン回路は、自身のローカルフィールド値+ノイズ値が閾値を超えるか否かを判定する。ローカルフィールド値+ノイズ値が閾値を超えるときには、ステップS6の処理が実行され、閾値を超えない場合にはステップS7の処理が実行される。
[ステップS6] イジング装置2b1〜2bNのそれぞれに含まれる制御回路(たとえば、制御回路10b1)は、n個のニューロン回路に対して、選択されたニューロン回路の更新後の出力値と、そのニューロン回路に対応付けられた重み値の選択信号とを供給する。
[ステップS7] イジング装置2b1〜2bNのそれぞれに含まれる各制御回路(たとえば、制御回路10b1)は、選択回数が規定回数に至ったか否かを判定する。
選択回数が規定回数に至った場合には、ステップS8の処理が実行されて、規定回数に至っていない場合には、再び、ステップS2の処理が実行される。
[ステップS8] イジング装置2b1〜2bNのそれぞれにおいて、計算回路(たとえば、計算回路10c1)は、n個のニューロン回路からローカルフィールド値h〜hと、n個のニューロン回路の出力値とを取得する。そして、各計算回路は、イジング装置2b1〜2bNのそれぞれの総エネルギーを表すエネルギー値Etotal(X)〜Etotal(X)を算出する。
[ステップS9] 交換制御回路10d1〜10dNによる交換判定処理が行われる。たとえば、交換制御回路10d1は、計算回路10c1からエネルギー値Etotal(X)と、制御回路10b1からnビットの出力値Xと、を取得する。さらに、交換制御回路10d1は、イジング装置2b2の交換制御回路10d2から、イジング装置2b2の総エネルギーを表すエネルギー値Etotal(X)と、nビットの出力値Xとを取得する。そして、交換制御回路10d1は、エネルギー値Etotal(X)とエネルギー値Etotal(X)の差分をもとに算出される交換確率に基づいて、出力値Xと出力値Xとを交換するか否か判定する。
[ステップS10] 交換制御回路10d1〜10dNは、出力値X〜Xの交換を行う場合には、ステップS11の処理を実行し、交換しない場合には、ステップS12の処理を実行する。
[ステップS11] 交換制御回路10d1〜10dNは、ステップS9の処理で交換対象となった隣接するイジング装置のニューロン回路部のnビットの出力値を、自身のイジング装置のニューロン回路部のnビットの出力値と交換する。
たとえば、交換制御回路10d1,10d2は、イジング装置2b1のニューロン回路部10a1のnビットの出力値Xと、イジング装置2b2の図示しないニューロン回路部のnビットの出力値Xとを交換する。これにより、交換制御回路10d1は、出力値X1newとして、出力値Xを、ニューロン回路1111〜111nに供給する。
[ステップS12] イジング装置2b1〜2bNのそれぞれに含まれる制御回路(たとえば、制御回路10b1)は、自身のイジング装置内に含まれるニューロン回路部から、nビットの出力値を取得する。
[ステップS13] そして各制御回路は、ステップS12で取得したnビットの出力値が変化するか否かを判定する。
nビットの出力値が変化しない場合には、ステップS14の処理が実行され、nビットの出力値が変化する場合には、ステップS2からの処理が繰り返される。なお、各制御回路は、nビットの出力値が変化しない場合には、無変化回数を1つ増加する。
[ステップS14] その後、各制御回路は、nビットの出力値の無変化回数が規定回数に至ったか否かを判定する。
nビットの出力値の無変化回数が規定回数に至った場合には、各制御回路は、制御装置5に対して計算が収束した旨を通知する。これにより、制御装置5は、計算が終了した旨を示す信号を出力する。nビットの出力値の無変化回数が、規定回数に至っていない場合には、再び、ステップS2からの処理が繰り返される。
以上のように、第2の実施の形態の情報処理装置1aによれば、交換制御回路10d1〜10dNによって、交換確率(1,R)で、設定されているノイズ幅の値(実効温度)が隣接するイジング装置間でnビットの出力値の交換が行われる。これにより、ハードウェアで拡張アンサンブル法が実現でき、迅速に最適解を得ることが可能となる。つまり、最適化問題の計算時間を短縮できる。
また、交換確率を算出する際に用いられるエネルギー値は、各ニューロン回路のローカルフィールド値と出力値との積和演算で求められるので、図6に示したような簡単な回路構成の計算回路10c1でエネルギー値Etotal(X)を算出できる。
[第3の実施の形態]
図15は、第3の実施の形態の情報処理装置の一例を示す図である。なお、図15において、図4に示した情報処理装置1aと同一の要素については同一符号が付されている。
情報処理装置1bは、イジング装置2c1〜2cNと、制御装置5と、交換制御回路7とを有する。なお、図15では、イジング装置2c1〜2cNにおいて、イジング装置2c1から順に、実効温度Tの初期値としてT,T,…,Tが設定されている例が示されている。以下では、T>T>…>Tであるとする。
イジング装置2c1〜2cNは、それぞれ同様の要素を成している。以下では、イジング装置2c1〜2cNのうち、イジング装置2c1を例にして説明する。
イジング装置2c1は、図4に示したイジング装置2b1と同様に、ニューロン回路部10a1、制御回路10b1、計算回路10c1とを有しているが、交換制御回路10d1を有していない。図15の例では、交換制御回路7が、イジング装置2c1〜2cNで共有されている。ただし、交換制御回路7が、イジング装置2c1〜2cNのそれぞれに、一部またはすべてが含まれていてもよい。
(交換制御回路)
交換制御回路7は、前述した拡張アンサンブル法を実現するために、イジング装置2c1〜2cNのうち、ノイズ幅(実効温度)の値が隣接して設定されているイジング装置間で、上記エネルギー値の差に基づく交換確率で、ノイズ幅の値を交換する。
図16は、交換制御回路の一例を示す図である。
交換制御回路7は、ランダム信号生成回路90と、フラグ生成回路91a1,91a2,…,91aq,91a(q+1),…,91a(N−1)と、温度生成回路92とを有している。
ランダム信号生成回路90は、第2の実施の形態のランダム信号生成回路6と同様の機能を有しており、0よりも大きく、1よりも小さい乱数値を出力する。
フラグ生成回路91a1〜91a(N−1)は、図8,9に示した第2の実施の形態のフラグ生成回路50,50aと同様の回路で実現できる。
たとえば、フラグ生成回路91aqは、q番目のイジング装置の総エネルギーを表すエネルギー値Etotal(X)と、q+1番目のイジング装置の総エネルギーを表すエネルギー値Etotal(Xq+1)を受ける。また、フラグ生成回路91aqは、ランダム信号生成回路6から出力される乱数値を受ける。そして、フラグ生成回路91aqは、エネルギー値Etotal(X),Etotal(Xq+1)及び乱数値に基づき、q番目とq+1番目のイジング装置に設定されているノイズ幅(実効温度)を交換するか否かを示すフラグ信号Flgqを出力する。フラグ信号Flgqが1のときは、ノイズ幅を交換することを示し、フラグ信号Flgqが0のときは、ノイズ幅を交換しないことを示す。
フラグ生成回路91a(q+1)は、q+1番目のイジング装置の総エネルギーを表すエネルギー値Etotal(Xq+1)と、q+2番目のイジング装置の総エネルギーを表すエネルギー値Etotal(Xq+2)を受ける。また、フラグ生成回路91a(q+1)は、ランダム信号生成回路6から出力される乱数値を受ける。そして、フラグ生成回路91a(q+1)は、エネルギー値Etotal(Xq+1),Etotal(Xq+2)及び乱数値に基づき、q+1番目とq+2番目のイジング装置に設定されているノイズ幅を交換するか否かを示すフラグ信号Flg(q+1)を出力する。フラグ信号Flg(q+1)が1のときは、ノイズ幅を交換することを示し、フラグ信号Flg(q+1)が0のときは、ノイズ幅を交換しないことを示す。
温度生成回路92は、イジング装置2c1〜2cNに含まれるノイズ発生回路(たとえば、ノイズ発生回路10e1)の増幅回路での増幅率を制御して実効温度に対応するノイズ幅を設定する温度設定信号TS1,TS2,…,TSq,TSq+1,…,TSNを出力する。たとえば、イジング装置2c1に対するノイズ幅の設定は、温度設定信号TS1で行われ、イジング装置2c2に対するノイズ幅の設定は、温度設定信号TS2で行われる。
温度生成回路92は、まず、制御装置5が出力する起動信号を受けると、温度設定信号TS1〜TSNにより、イジング装置2c1〜2cNに含まれるノイズ発生回路に、ノイズ幅の初期値を設定する。ノイズ幅の初期値は、予め制御装置5によって設定され、温度生成回路92に格納されている。また、温度生成回路92は、フラグ生成回路91a1〜91a(N−1)が出力するフラグ信号Flg1〜Flg(N−1)に基づき、イジング装置2c1〜2cNのうち、ノイズ幅の値が隣接して設定されるイジング装置間で、そのノイズ幅の値を交換する。
図17は、温度生成回路の一例を示す図である。
温度生成回路92は、選択信号生成回路100、初期値設定回路101、1パルス生成回路102、選択回路103a1,103a2,…,103aq,103a(q+1),103aNを有している。さらに、温度生成回路92は、レジスタ104a1,104a2,…,104aq,104a(q+1),…,104aN、温度切替回路105を有している。
選択信号生成回路100は、フラグ信号Flg1〜Flg(N−1)に基づき、以下の図18に示す真理値表にしたがって、選択信号Sel1〜Sel(N−1)を出力する。
図18は、温度生成回路の入出力信号の一例の関係を示す真理値表である。
なお、真理値表に記載されている“d”は、ドントケア(0でも1でもよいこと)を示している。
図11の真理値表に示されているように、選択信号生成回路100は、フラグ信号Flg1〜Flg(N−1)の値が全て0のとき、選択信号Sel1〜SelNとして0を出力する。
また、選択信号生成回路100は、フラグ信号Flg1〜Flg(N−1)のうち、フラグ信号Flg1の値が1のとき、その他のフラグ信号の値にかかわらず、選択信号Sel1として1を出力し、他の選択信号として0を出力する。
また、選択信号生成回路100は、フラグ信号Flg1〜Flgqまでの値が0で、フラグ信号Flg(q+1)の値が1のとき、その他のフラグ信号の値にかかわらず、選択信号Sel(q+1)として1を出力し、他の選択信号として0を出力する。
初期値設定回路101は、イジング装置2b1〜2bNのそれぞれに設定する複数の異なるノイズ幅(実効温度)の初期値を保持している。初期値は、予め、制御装置5により設定され初期値設定回路101に記憶される。そして、初期値設定回路101は、初期値を設定するための温度設定信号を出力する。
1パルス生成回路102は、制御装置5が出力する起動信号を受けると、選択回路103a1〜103aNに1パルスのパルス信号を出力する。
選択回路103a1〜103aNは、パルス信号を受けている間(たとえば、パルス信号の論理レベルがH(High)レベルの間)、初期値設定回路101から出力される初期値を設定するための温度設定信号を選択して出力する。パルス信号を受けていない場合(たとえば、パルス信号の論理レベルがL(Low)レベルの間)、選択回路103a1〜103aNは、温度切替回路105が出力する温度設定信号TS1〜TSNを選択して出力する。
レジスタ104a1〜104aNは、選択回路103a1〜103aNが出力する温度設定信号を格納する。
温度切替回路105は、選択信号Sel1〜Sel(N−1)に基づき、温度設定信号TS1〜TSNを出力する。
たとえば、パルス信号の論理レベルがHレベルのとき、フラグ信号Flg1〜Flg(N−1)の値が0であるとする。このとき、選択信号Sel1〜Sel(N−1)は全て0になり、温度切替回路105は、初期値を設定するための温度設定信号TS1〜TSNを出力する。これにより、イジング装置2c1〜2cNにおいて、イジング装置2b1から順に、実効温度Tの初期値としてT,T,…,Tが設定される。
パルス信号の論理レベルがLレベルになると、温度切替回路105は、図18に示した真理値表にしたがって選択信号Sel1〜Sel(N−1)の何れかが1になると、イジング装置2c1〜2cNに設定するノイズ幅の交換を行う。
たとえば、選択信号Selqが1になると、温度切替回路105は、レジスタ104aqから出力される温度設定信号TSqを、イジング装置2c1〜2cNのうち、q+1番目のイジング装置のノイズ幅を設定するための温度設定信号TSq+1として出力する。また、温度切替回路105は、レジスタ104a(q+1)から出力される温度設定信号TSq+1を、イジング装置2c1〜2cNのうち、q番目のイジング装置のノイズ幅を設定するための温度設定信号TSq+1として出力する。これにより、q番目のイジング装置とq+1番目のイジング装置に設定されるノイズ幅が交換される。
(第3の実施の形態の情報処理装置の動作例)
以下、制御装置5によって制御される図15の情報処理装置1bの動作の一例を、フローチャートを用いて説明する。
図19は、第3の実施の形態の情報処理装置の動作の一例を示すフローチャートである。
情報処理装置1bでも、第2の実施の形態と同様に、図13,14に示したステップS1〜S8の処理が実行される。
以下、ステップS9a以降について説明する。
[ステップS9a] 交換制御回路7による交換判定処理が行われる。交換制御回路7は、イジング装置2c1〜2cNから、エネルギー値Etotal(X)〜Etotal(X)を取得する。そして、交換制御回路7は、隣接するイジング装置間のエネルギー値の差分をもとに算出される交換確率に基づいて、イジング装置2c1〜2cNのうち、隣接する2つのイジング装置に設定するノイズ幅を交換するか否か判定する。
[ステップS10a] 交換制御回路7は、設定するノイズ幅の交換を行う場合には、ステップS11aの処理を実行し、交換しない場合には、ステップS12の処理を実行する。
[ステップS11a] 交換制御回路7は、ステップS9aの処理で交換対象となった隣接する2つのイジング装置に設定するノイズ幅を交換する。
以下、第2の実施の形態と同様のステップS12〜S14が実行される。
図20は、情報処理装置の動作の一例を示すタイミングチャートである。
情報処理装置1bの電源がオンになると(タイミングt1)、制御装置5に供給されるリセット信号が解除される(タイミングt2)。
これにより、制御装置5は、パラメータ(重み値やバイアス値)や実効温度(ノイズ幅)などの初期値設定を行う(タイミングt3〜t4)。その後、制御装置5は、交換制御回路7に起動信号を送信する(起動信号の論理レベルをHレベルとする)(タイミングt5)。これにより、前述したステップS2〜S14の処理が行われる。
制御装置5は、イジング装置2c1〜2cNの何れかからnビットの出力値の変化が収束したことを表すニューロン収束信号を受けると(タイミングt6)、計算処理の終了を表す終了信号を出力し、起動信号の論理レベルをLレベルとする(タイミングt7)。
なお、第2の実施の形態の情報処理装置1aでも、全体の動作の流れは、図20に示した動作とほぼ同様となる。
以上のように、第3の実施の形態の情報処理装置1bによれば、交換制御回路7によって、交換確率(1,R)で、隣接するイジング装置間で、設定されているノイズ幅の値(実効温度)の交換が行われる。これにより、ハードウェアで拡張アンサンブル法が実現でき、迅速に最適解を得ることが可能となる。つまり、最適化問題の計算時間を短縮できる。
また、第3の実施の形態の情報処理装置1bでは、n個のニューロン回路の出力に対応したnビットの出力値を交換する第2の実施の形態の情報処理装置1aと比べて、交換する情報量を少なくすることができる。
以上、実施の形態に基づき、本発明の情報処理装置、イジング装置及び情報処理装置の制御方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
たとえば、ニューロン回路部は、図4などに示したDeGloriaアルゴリズムに基づく処理を行うものに限定されない。ニューロン回路部は、重み値と、nビットのニューロンから出力されるnビットの出力値とに基づき、各ニューロンのエネルギーを示すローカルフィールド値を算出する回路であればよい。
1 情報処理装置
2a1〜2aN イジング装置
3 計算回路
4 交換制御回路
5 制御装置
10a1〜10aN ニューロン回路部
11k1〜11kn ニューロン回路
10bk 制御回路

Claims (7)

  1. 複数のニューロンの間の接続の強さをそれぞれ示す複数の重み値と、前記複数のニューロンから出力される出力値である複数のニューロン出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第1のエネルギー値をそれぞれ算出し、前記複数の第1のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第1の値と閾値との比較結果に基づき、前記複数のニューロン出力値を決定し出力するニューロン回路部と、
    前記複数の重み値に基づく前記複数のニューロンの間の接続状態が互いに等しく、前記ノイズ値の上限と下限との幅を示すノイズ幅が互いに異なるようにそれぞれ設定される複数のイジング装置と、
    前記複数の第1のエネルギー値と前記複数のニューロン出力値に基づき、前記複数のイジング装置の各々の総エネルギーを表す複数の第2のエネルギー値をそれぞれ算出する計算回路と、
    前記ノイズ幅として第1のノイズ幅が設定される第1のイジング装置と、前記複数のイジング装置のうち、前記第1のノイズ幅に対して隣接する値をもつ第2のノイズ幅が前記ノイズ幅として設定される第2のイジング装置との間の前記複数の第2のエネルギー値の差に基づく交換確率で、前記第1のイジング装置と前記第2のイジング装置との間で、前記複数のニューロン出力値、または、前記ノイズ幅を交換する交換制御回路と、
    を有することを特徴とする情報処理装置。
  2. 前記情報処理装置はさらに、
    前記ノイズ幅を、前記複数のイジング装置に設定する制御装置を有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記計算回路は、前記複数の第1のエネルギー値と前記複数のニューロン出力値の積和演算を行い、積和演算結果を、前記複数の第2のエネルギー値の1つとして出力することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記交換制御回路は、前記第1のノイズ幅よりも前記第2のノイズ幅が大きく、且つ、前記複数の第2のエネルギー値のうち、前記第1のイジング装置の前記総エネルギーを表す第3のエネルギー値よりも、前記第2のイジング装置の前記総エネルギーを表す第4のエネルギー値が小さい場合、前記第1のイジング装置と前記第2のイジング装置との間で、前記複数のニューロン出力値、または、前記ノイズ幅を交換することを特徴とする請求項1乃至3の何れか一項に記載の情報処理装置。
  5. 前記交換制御回路は、前記第1のノイズ幅よりも前記第2のノイズ幅が大きく、且つ、前記第4のエネルギー値が、前記第3のエネルギー値よりも大きい場合、0より大きく1より小さい範囲でランダムに変化する乱数値よりも前記交換確率が小さくなると、前記第1のイジング装置と前記第2のイジング装置との間で、前記複数のニューロン出力値、または、前記ノイズ幅を交換することを特徴とする請求項4に記載の情報処理装置。
  6. 複数のニューロンの間の接続の強さをそれぞれ示す複数の重み値と、前記複数のニューロンから出力される出力値である複数のニューロン出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第1のエネルギー値をそれぞれ算出し、前記複数の第1のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第1の値と閾値との比較結果に基づき、前記複数のニューロン出力値を決定し出力するニューロン回路部と、
    前記複数の第1のエネルギー値と前記複数のニューロン出力値に基づき、自身のイジング装置の総エネルギーを表す第2のエネルギー値を算出する計算回路と、
    前記自身のイジング装置に設定される、前記ノイズ値の上限と下限との幅を示すノイズ幅である第1のノイズ幅に対して、隣接する値をもつ第2のノイズ幅が前記ノイズ幅として設定される他のイジング装置から、前記第2のエネルギー値に相当する前記他のイジング装置の総エネルギーを表す第3のエネルギー値を取得し、前記第2のエネルギー値と前記第3のエネルギー値との差に基づく交換確率で、前記自身のイジング装置と前記他のイジング装置との間で、前記複数のニューロン出力値、または、前記ノイズ幅を交換する交換制御回路と、
    を有することを特徴とするイジング装置。
  7. 複数のニューロンの間の接続の強さをそれぞれ示す複数の重み値と、前記複数のニューロンから出力される出力値である複数のニューロン出力値とに基づき、前記複数のニューロンの数に対応した数の複数の第1のエネルギー値をそれぞれ算出し、前記複数の第1のエネルギー値のそれぞれにノイズ値を加算して得られる複数の第1の値と、閾値との比較結果に基づき、前記複数のニューロン出力値を決定し出力するニューロン回路部を備え、前記複数の重み値に基づく前記複数のニューロンの間の接続状態が互いに等しく、前記ノイズ値の上限と下限との幅を示すノイズ幅が互いに異なるように設定される複数のイジング装置を有する情報処理装置の制御方法において、
    前記情報処理装置が有する計算回路が、前記複数の第1のエネルギー値と前記複数のニューロン出力値に基づき、前記複数のイジング装置の各々の総エネルギーを表す複数の第2のエネルギー値をそれぞれ算出し、
    前記情報処理装置が有する交換制御回路が、前記ノイズ幅として第1のノイズ幅が設定される第1のイジング装置と、前記複数のイジング装置のうち、前記第1のノイズ幅に対して隣接する値をもつ第2のノイズ幅が前記ノイズ幅として設定される第2のイジング装置との間の前記複数の第2のエネルギー値の差に基づく交換確率で、前記第1のイジング装置と前記第2のイジング装置との間で、前記複数のニューロン出力値、または、前記ノイズ幅を交換する、
    ことを特徴とする情報処理装置の制御方法。
JP2019003441A 2019-01-11 2019-01-11 情報処理装置、イジング装置及び情報処理装置の制御方法 Pending JP2019071119A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019003441A JP2019071119A (ja) 2019-01-11 2019-01-11 情報処理装置、イジング装置及び情報処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019003441A JP2019071119A (ja) 2019-01-11 2019-01-11 情報処理装置、イジング装置及び情報処理装置の制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016131285A Division JP6468254B2 (ja) 2016-07-01 2016-07-01 情報処理装置、イジング装置及び情報処理装置の制御方法

Publications (1)

Publication Number Publication Date
JP2019071119A true JP2019071119A (ja) 2019-05-09

Family

ID=66440690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019003441A Pending JP2019071119A (ja) 2019-01-11 2019-01-11 情報処理装置、イジング装置及び情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP2019071119A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3879417A1 (en) 2020-03-11 2021-09-15 Fujitsu Limited Information processing system, information processing method, information processing program, and information processing apparatus
EP3896622A1 (en) 2020-04-13 2021-10-20 Fujitsu Limited Sampling device, sampling method, and sampling program
US11790130B2 (en) 2020-05-21 2023-10-17 Fujitsu Limited Optimization device, optimization method, and non-transitory computer-readable storage medium for storing optimization program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3879417A1 (en) 2020-03-11 2021-09-15 Fujitsu Limited Information processing system, information processing method, information processing program, and information processing apparatus
EP3896622A1 (en) 2020-04-13 2021-10-20 Fujitsu Limited Sampling device, sampling method, and sampling program
US11790130B2 (en) 2020-05-21 2023-10-17 Fujitsu Limited Optimization device, optimization method, and non-transitory computer-readable storage medium for storing optimization program

Similar Documents

Publication Publication Date Title
JP6468254B2 (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6465092B2 (ja) 最適化装置及び最適化装置の制御方法
JP2019071119A (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6659957B2 (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
JP6623947B2 (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
Okuyama et al. An Ising computer based on simulated quantum annealing by path integral Monte Carlo method
US10891542B2 (en) Ising device and control method thereof
JP2018041351A (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
US20190286981A1 (en) Optimization apparatus and method for controlling thereof
JP7410395B2 (ja) 最適化装置及び最適化方法
JP6923790B2 (ja) 最適化装置及び最適化装置の制御方法
TW201931104A (zh) 在類神經網路中產生隨機性
Kumar et al. Machine learning based Modeling Attacks on a Configurable PUF
JP2018010474A (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
Arka et al. DARe: DropLayer-aware manycore ReRAM architecture for training graph neural networks
JP2006072891A (ja) セルオートマトンに基づく、制御可能な周期を有する擬似乱数シーケンスの生成方法および装置
JP7256378B2 (ja) 最適化システムおよび最適化システムの制御方法
CA3108047C (en) Optimization device and method for executing annealing processes and replica exchange
Caron et al. FPGA implementation of a spiking neural network for pattern matching
Kotoulas et al. 1-d cellular automaton for pseudorandom number generation and its reconfigurable hardware implementation
Sekanina et al. Two-step evolution of polymorphic circuits for image multi-filtering
Pundir et al. A novel hybrid delay based physical unclonable function immune to machine learning attacks
Ganorkar et al. Soft computing algorithms and implementation on FPGA-A review
JP2019071113A (ja) イジング装置及びイジング装置の制御方法
JP2019087273A (ja) 最適化装置及び最適化装置の制御方法