(57)【特許請求の範囲】
【請求項１】
複数の重み付け入力信号を加算する加算器と、前記加算器の出力信号と閾値信号とを比較して２値の出力信号を出力する比較ユニットとをそれぞれ有し、前記２値の出力信号をそれぞれ出力する複数の回路ユニットと、
一対の前記回路ユニットのうち第１の回路ユニットの出力信号を重みに基づいて重み付けをして前記重み付け入力信号を生成し、前記一対の回路ユニットのうち第２の回路ユニットに入力する複数のデジタル演算器とを有し、
前記比較ユニットは、
熱雑音と基準電圧とを比較して２値のデジタルランダム信号を出力する第１比較器と、
前記デジタルランダム信号をアナログランダム信号に変換するとともに、前記アナログランダム信号の大きさを可変させる第１のDA変換器と、
前記アナログランダム信号を前記閾値信号として入力し、前記閾値信号と前記加算器の出力信号とを比較し所定の確率関数で前記２値の出力信号を生成する第２比較器とを有する、ボルツマンマシン。
【請求項２】
前記アナログランダム信号の振幅を順次小さくしながら、前記複数の回路ユニットを所定回数ランダムに動作させる、請求項１に記載のボルツマンマシン。
【請求項３】
前記第１比較器は、第１クロックに同期して比較動作を行い前記２値のデジタルランダム信号を出力する、請求項１に記載のボルツマンマシン。
【請求項４】
前記第１のDA変換器は、前記デジタルランダム信号に基づいて前記アナログランダム信号の符号を制御し、大きさ制御信号に基づいて前記アナログランダム信号の振幅を可変させる、請求項１に記載のボルツマンマシン。
【請求項５】
前記第１のDA変換器は、前記大きさ制御信号に対応する個数の容量素子の第１端子に、前記デジタルランダム信号に基づく正の基準電圧または負の基準電圧のいずれかを印加するスイッチを有し、前記容量素子の共通に接続された第２端子に前記アナログランダム信号を生成する、請求項４に記載のボルツマンマシン。
【請求項６】
前記第２比較器は、第２クロックに同期して比較動作を行い前記２値の出力信号を出力する、請求項１に記載のボルツマンマシン。
【請求項７】
前記複数の比較ユニットのそれぞれは、前記第１比較器と、前記第１比較器の前記２値のデジタルランダム信号を入力する前記第１のDA変換器とを複数組有し、前記複数の第１のDA変換器には共通の前記大きさ制御信号が入力され、前記複数の第１のDA変換器のアナログランダム信号が加算されて前記第２比較器に入力される、請求項４に記載のボルツマンマシン。
【請求項８】
複数の重み付け入力信号を加算する加算器と、前記加算器の出力信号と閾値信号とを比較して２値の出力信号を出力する比較ユニットとをそれぞれ有し、前記２値の出力信号をそれぞれ出力する複数の回路ユニットと、一対の前記回路ユニットのうち第１の回路ユニットの出力信号を重みに基づいて重み付けをして前記重み付け入力信号を生成し、前記一対の回路ユニットのうち第２の回路ユニットに入力する複数のデジタル演算器とを有するボルツマンマシンの制御方法において、
前記比較ユニットが有する第１比較器が、熱雑音と基準電圧とを比較して２値のデジタルランダム信号を出力し、
前記比較ユニットが有する第１のDA変換器が、前記デジタルランダム信号をアナログランダム信号に変換するとともに、前記アナログランダム信号の大きさを可変させ、
前記比較ユニットが有する第２比較器が、前記アナログランダム信号を前記閾値信号として入力し、前記閾値信号と前記加算器の出力信号とを比較し所定の確率関数で前記２値の出力信号を生成する、ボルツマンマシンの制御方法。
【請求項９】
プログラムの命令を実行する演算処理装置と、
前記演算処理装置からの実行依頼に応じて動作する演算回路部とを有し、
前記演算回路部は、
複数の重み付け入力信号を加算する加算器と、前記加算器の出力信号と閾値信号とを比較して２値の出力信号を出力する比較ユニットとをそれぞれ有し、前記２値の出力信号をそれぞれ出力する複数の回路ユニットと、
一対の前記回路ユニットのうち第１の回路ユニットの出力信号を重みに基づいて重み付けをして前記重み付け入力信号を生成し、前記一対の回路ユニットのうち第２の回路ユニットに入力する複数のデジタル演算器とを有し、
前記比較ユニットは、
熱雑音と基準電圧とを比較して２値のデジタルランダム信号を出力する第１比較器と、
前記デジタルランダム信号をアナログランダム信号に変換するとともに、前記アナログランダム信号の大きさを可変させる第１のDA変換器と、
前記アナログランダム信号を前記閾値信号として入力し、前記閾値信号と前記加算器の出力信号とを比較し所定の確率関数で前記２値の出力信号を生成する第２比較器とを有する、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ボルツマンマシン、ボルツマンマシンの制御方法及びボルツマンマシンを有する情報処理装置に関する。
【背景技術】
【０００２】
ニューラルネットワークの一つであるボルツマンマシンは、多変数の最適化問題やパターン認識などを高速で処理することができると期待されている。ボルツマンマシンの概念は、ネットワークの構成を熱力学的系と等価とし、エネルギー状態がボルツマン分布に従い、十分な時間が経過した時に熱平衡状態に達することを保証することに基づく。
【０００３】
ボルツマンマシンでは、確率的に最適解を求める演算器であり、それぞれスピン状態を有する複数の格子点と格子点間のリンクを有するイジングモデルが知られている。例えば、以下の特許文献１、２などである。イジングモデルは、２つの配位状態をとる格子点から構成され、最隣接する格子点のみの相互作用を考慮する格子模型である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２−２７４９３号公報
【特許文献２】特開平４−１８６６１号公報
【特許文献３】特開２０１４−９６７６９号公報
【特許文献４】特開２０１３−１４３６２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ボルツマンマシンでは、解が局所的な極小値に陥ることを防止するために、各格子（ユニット）が＋１を出力する確率を温度パラメータによって変化させるシミュレーテッドアニーリングという手法が用いられる。
【０００６】
従来のボルツマンマシンは、上記の確率を変えるためにランダムノイズ発生器でノイズを発生し、その発生したノイズの振幅を増幅器で変化させて各格子（ユニット）の出力値を生成する。これにより、各格子（ユニット）が＋１を出力する確率を温度パラメータによって変化させる。しかしながら、ランダムノイズ発生器は回路規模が大きく、発生するノイズの大きさがランダムであるのでノイズの振幅を適切に変化させることは困難である。
【０００７】
そこで、開示の一形態の目的は、ランダムノイズの振幅の変化を容易に行うことができるボルツマンマシン、ボルツマンマシンの制御方法、及びボルツマンマシンを有する情報処理装置を提供することにある。
【課題を解決するための手段】
【０００８】
開示の一形態は、複数の重み付け入力信号を加算する加算器と、前記加算器の出力信号と閾値信号とを比較して２値の出力信号を出力する比較ユニットとをそれぞれ有し、前記２値の出力信号をそれぞれ出力する複数の回路ユニットと、
一対の前記回路ユニットのうち第１の回路ユニットの出力信号を重みに基づいて重み付けをして前記重み付け入力信号を生成し、前記一対の回路ユニットのうち第２の回路ユニットに入力する複数のデジタル演算器とを有し、
前記比較ユニットは、
熱雑音と基準電圧とを比較して２値のデジタルランダム信号を出力する第１比較器と、
前記デジタルランダム信号をアナログランダム信号に変換するとともに、前記アナログランダム信号の大きさを可変させる第１のDA変換器と、
前記アナログランダム信号を前記閾値信号として入力し、前記閾値信号と前記加算器の出力信号とを比較し所定の確率関数で前記２値の出力信号を生成する第２比較器とを有する、ボルツマンマシンである。
【発明の効果】
【０００９】
上記の一形態によれば、小規模な回路でランダムノイズの振幅を可変させることができる。
【図面の簡単な説明】
【００１０】
【図１】イジングモデルの例を示す図である。
【図２】３つの格子点の無向グラフのイジングモデルとそれに対応するネットワーク回路を示す図である。
【図３】ボルツマンマシンのアニーリングを説明する図である。
【図４】シグモイド関数を示す図である。
【図５】本実施の形態におけるイジングモデルの演算回路を示す図である。
【図６】比較器の回路の一例とその動作を示す図である。
【図７】比較器（比較ユニット）dnの構成を示す図である。
【図８】第１比較器の動作の信号波形を示す図である。
【図９】第１のDA変換器dndacのサンプリング動作を示す図である。
【図１０】第１のDA変換器dndacのホールド動作を示す図である。
【図１１】第１のDA変換器dndac内の制御回路１０の動作の論理値表を示す図である。
【図１２】第１のDA変換器dndacと第２比較器dn2の動作の信号波形を示す図である。
【図１３】第２比較器の出力関数を説明する図である
【図１４】第２の実施の形態における比較回路（比較ユニット）の構成を示す図である。
【図１５】第２の実施の形態における比較回路（比較ユニット）の信号波形を示す図である。
【図１６】デジタルランダム信号生成器と第１DA変換器の組数が１、２、３の場合の第２比較器の出力関数を示す図である。
【図１７】本実施の形態におけるボルツマンマシンの動作を示すフローチャート図である。
【図１８】ボルツマンマシンの実行工程S4の詳細を示すフローチャート図である。
【図１９】本実施の形態におけるボルツマンマシンの実行の３つのフェーズを示す図である。
【図２０】ボルツマンマシンを有する情報処理装置を示す図である。
【発明を実施するための形態】
【００１１】
図１は、イジングモデルの例を示す図である。図１には、磁性体のスピンの振る舞いを表すモデルの構成例と、そのネットワークが持つエネルギーと各スピンの組み合わせパターンとの関係を示すグラフとが示される。
【００１２】
図１のイジングモデルは、磁性体のスピンの振る舞いを表すモデルであり、２つの配位状態をとる９つの格子点で構成される。各格子点がとる２つの配位状態をスピンq、最隣接する格子点間の相互作用係数、つまり結合の重みをｗ、外部磁場係数、つまり外部から各格子点に与えられる磁場の力をbとすると、そのネットワークが持つエネルギーの式は、次の数１のとおりと定義される。
【００１３】
【数１】
0006524933.tif 000002
【００１４】
ここで、スピンqの値はスピンの向きにより上方向なら＋１、下方向なら−１であり、ある格子点のスピンqiは、最隣接する格子点のスピンqjを相互作用係数wijの重みで相互作用を受ける。また、数１において<i,j>は、i,jの組み合わせを意味し、例えば<1,2>と<2,1>は重複しない。
【００１５】
図１のグラフは、横軸を各スピンの組み合わせパターン、縦軸をネットワークのエネルギーEとし、エネルギーが最小になる点（Solution）が最適な状態を示す。エネルギーが最小となる点のスピンのパターンを計測することで最適解を得ることができる。
【００１６】
次に、上記の数１に示した式をネットワークのエネルギーと定義した場合のエネルギーが最小となる点の最適解を求める方法について説明する。
【００１７】
図２は、３つの格子点の無向グラフのイジングモデルとそれに対応するネットワーク回路を示す図である。説明を簡単にするために、図２に示す３つの格子点（ノード）と相互作用（リンク）とを有するモデルを考える。
【００１８】
ノードiはスピン状態qiとバイアスbi（qi,bi）を有し、i=1,2,3である。リンクはウエイトwを有し、無向モデルであるためノードiとノードjを接続するリンクのウエイトはwijであり、自身へのリンクウエイトwiiはwii=0である。そして、リンクiがリンクjへ作用する重みwijとリンクjがリンクiへ作用する重みwjiとは同一である。
【００１９】
ここで、上記の数１のとおりネットワークが持つエネルギーを定義する。そして、図２の３つの格子点モデルについて数１のエネルギーEについて解くと、次の通りである。
【００２０】
【数２】
0006524933.tif 000003
【００２１】
そして、ノード１のスピンq1のみが反転して新たなスピンq’1（=-q1）に変化した場合の新たなネットワークが持つエネルギーE’は、次の通りである。
【００２２】
【数３】
0006524933.tif 000004
【００２３】
従って、ノード１のスピンq1のみが反転して新たなスピンq’1（=-q1）に変化した際のエネルギーの変化量ΔE= E’-Eは、q’1=-q1に基づいて展開すると下記の通りになる。
【００２４】
【数４】
0006524933.tif 000005
【００２５】
上記数４の式をq1=qiと一般化すると、次の通りになる。
【００２６】
【数５】
0006524933.tif 000006
【００２７】
数５のエネルギーの変化量ΔEの式から、あるノードiの新たなスピン状態q’iと元のスピン状態で求められたΣjwijqj+biの符号が一致していればネットワークのエネルギーが減少したということができる。このことから、あるノードiの新たなスピン状態q’iと元のスピン状態で求められたΣjwijqj+biの符号が一致するような演算回路を構成することで、ネットワークのエネルギーEを徐々に減少させやがてΔE＝０の最小値にすることができる。そして、そのエネルギーEを最小値にする時の各ノードのスピンqiの組み合わせパターンが求めようとするモデルの最適解である。
【００２８】
図２には、３つのノードのモデルについて、上記のネットワークエネルギーEを減少させる演算回路が示されている。この演算回路では、３つのノードそれぞれを、最隣接ノードのスピンqをノード間の相互作用係数wで重み付けして加算する加算器a1,a2,a3と、加算器の出力z1,z2,z3とバイアスb1,b2,b3の値（正確にはバイアスの符号を反転した値）とをそれぞれ比較してスピンqを出力する比較器d1,d2,d3とで構成する。また、各比較器d1,d2,d3は異なるクロックで動作する。
【００２９】
例えば、ノード１の加算器d1では、次の加算演算が行われる。
【００３０】
【数６】
0006524933.tif 000007
【００３１】
よって、各ノードの加算器は、一般的に次の加算演算が行われることになる。
【００３２】
【数７】
0006524933.tif 000008
【００３３】
そして、演算回路の比較器diは、加算結果ziとバイアスbiの符号を反転した-biの値とを比較し、＋１または−１の比較結果q’iを出力する。つまり、以下のとおりである。
zi > -bi ならばq’i=+１を出力し
zi < -bi ならばq’i=-１を出力する。
【００３４】
上記の不等式を変形すると、比較器の動作は次の通りとなる。
zi+bi > 0ならばq’i=+１を出力し
zi+bi < 0ならばq’i=-１を出力する。
【００３５】
左辺は、数７によれば次の通りである。
zi+bi =Σjwijqj+bi
よって、結局、演算回路の比較器diは、次の比較演算を行うことになる。
Σjwijqj+bi> 0ならばq’i=+１を出力し
Σjwijqj+bi< 0ならばq’i=-１を出力する。
【００３６】
つまり、比較器diは、エネルギー変化ΔEが減少する条件である、q’iとΣjwijqj+biの符号が一致することを実現していることを意味するので、図２の演算回路によりネットワークのエネルギーEの最小値（ΔE=0になる状態）の状態を求めることができる。すなわち、比較器diの動作とエネルギーEの変化は次の通りである。
比較器diは、
Σjwijqj+bi> 0ならばq’i=+１を出力するので、両符号は正で一致し、エネルギーは減少し
Σjwijqj+b’i < 0ならばq’i=-１を出力するので、両符号は負で一致し、エネルギーは減少し、
ΔE = Σjwijqj+b’i = 0になるまで演算を繰り返すとエネルギーEは最小値に達する。または、演算を繰り返すことでΔEは０に近づきエネルギーEは最小値に近い値に達する。
【００３７】
したがって、図２の演算回路において、あるノードのスピンqの状態を反転する動作がランダムに繰り返されれば、やがて、エネルギーの変化量がΔE=0に近づきエネルギーEが最小値に近い値の状態にたどりつくことができる。
【００３８】
但し、スピンq’iが確定的に決まってしまうと局所解から抜け出せない。そこで、スピンq’iを確率的に決めるような動作を比較器diに導入することで、比較器diがエネルギーを増加するように動作することができるようにし、局所解から抜け出して最小値に近い極小値（最適解）に達することができるようにする。この確率的な程度が大きい状態から小さい状態に推移するアニーリング法を利用することで、エネルギーを最小値に近い極小値に達するように導くことができる。
【００３９】
具体的には、後述するとおり、閾値-biにノイズを加えることで、比較器diに
Σjwijqj+bi> 0だがq’i=-１を出力し、
Σjwijqj+bi< 0だがq’i=+１を出力する
動作をさせることで、エネルギーEを増加させる。
【００４０】
つまり、３つのノードの比較器diをランダムな順番でそれぞれ動作させると、Σjwijqj+biとq’iが同じ符号になる動作が行われるたびにエネルギーEが減少する。但し、閾値-biにノイズを加えることで、比較器diが誤動作を行い、エネルギーEを増加させる。このエネルギーの増加をもたらす動作により、エネルギーが局所解から抜け出すことを可能にする。
【００４１】
図３は、ボルツマンマシンのアニーリングを説明する図である。エネルギーEが最小になる最適解に導く方法として、アニーリング（金属工学でいう焼きなましという方法）で解を求める方法がある。焼きなましは、本来、金属やガラスを適当な温度に熱してから、ゆっくりと冷却することで内部歪みの除去を行う。熱が高いと原子はエネルギーの高い状態をうろつくが、ゆっくりと冷却することによって、初期状態よりもエネルギーがさらに低くなるよう移動し、結晶が安定する。
【００４２】
図３の横軸はスピンqの組み合わせパターンに対応し、縦軸はエネルギーEに対応する。そして、曲線はネットワークのエネルギーEで、点MINが最小エネルギーを示し最適解である。点MIN以外の極小値は、エネルギーの局所的な極小値であり局所解を示す。通常、最急降下法などではエネルギーが高い方向には移動しないので、一度局所解に陥ると抜け出せない。しかし、ボルツマンマシンは、熱ノイズを加えることで確率的にある程度エネルギーが高くなる方向にも変化できる。
【００４３】
図３では、この変化できるエネルギー範囲をevarで示す。この変化できるエネルギー範囲evarは概念的に示すものであり、エネルギーEを示す曲線と直接の関係はない。図３中、（ａ）のように温度が高いと熱ノイズが大きいため変化できるエネルギー範囲evarが最大になり最適解MINを含み、局所解はもちろん最適解MINからでも脱出ができる。温度を少し冷やして熱ノイズを中程度にすると、（ｂ）のように変化できるエネルギー範囲evarが中程度になり最適解MINを含まず、最適解MINからは脱出できないが、他の局所解からは脱出ができる。この状態を続けていくと、どんどん最適解MINに達成する確率が大きくなる。さらに温度を冷やして熱ノイズを最小にすると、（ｃ）のように変化できるエネルギー範囲evarが最小になりエネルギーの遷移は行われなくなる。
【００４４】
したがって、図２の演算回路において、あるノードのスピンqの状態を反転する動作をランダムに繰り返しながら、比較器d1,d2,d3の確率的な動作の程度を徐々に小さくすると、所定の繰り返し回数の後には、ネットワークのエネルギーEが最小値の最適解MIN（または最小値に近い値の準最適解）に達していることが期待できる。この確率的に決める程度の制御を、比較器diの出力関数であるシグモイド関数の傾きを熱ノイズの大きさにより制御することで実現する。
【００４５】
図４は、シグモイド関数を示す図である。横軸が入力x(比較器diの入力z)に、縦軸が比較器diの出力qが＋１になる確率f（x）に対応する。比較器の入力xが閾値０（ここでは閾値b＝０）と比較されて出力qが＋１になる確率f(x)は、入力xが閾値０より大きくなると１．０に近づき、閾値０より小さくなると０．０に近づくことを示している。この関数f（x）がシグモイド関数である。この閾値０は比較器diの閾値bに対応する。
【００４６】
シグモイド関数はアニーリングの特性を表すのによく用いられる。上記のとおり、比較器diがある入力xを入力し、各閾値b(図４ではb＝０)を超えた時、ある確率f（x）で＋１を出力する。この関数f（x）は図４に示されていて、ここで、xは入力値、Tは温度パラメータを示す。
【００４７】
図４には温度Tが0.5、１、２の３つのグラフが示されている。温度がT=2と大きいと、関数f（x）の傾きは緩やかで、入力xが閾値0より離れても出力が＋１になる確率はゆっくりと増加または減少する。この状態が前述の(a)に対応する。温度Tを冷やす、すなわち小さくしていくと、関数f（x）の傾きは急になっていき、入力xが閾値0より離れるとすぐに出力が＋１になる確率が1.0または0.0に張り付くようになる。これは前述の(b)または(c)を示す。このようにシグモイド関数f（x）の特性の変更を回路上で実現させることで、アニーリングを可能にする。
【００４８】
［本実施の形態］
以下、本実施の形態のイジングモデルの演算回路について説明する。図５は、本実施の形態におけるイジングモデルの演算回路を示す図である。図５の演算回路は、図２に示した３つのノードのモデルに対する演算回路を一般化した構成を有する。つまり、図１のようなノード１からノードｎまでのイジングモデルに対応する演算回路である。ただし、図５にはノード１とｎが示され、残りのノードの構成は省略されている。
【００４９】
ノードND_1の回路ユニットは、ノードND_1に相互作用を及ぼす最隣接ノードのスピンqiに対応する重みwi1を乗じたqi*wi1を加算するデジタル加算器a1と、デジタル加算器のデジタル出力Z1dをDA変換するDA変換器c1と、アナログ出力Z1を閾値b1と比較してスピンq1を出力する比較器d1とを有する。閾値b1を０と仮定すると、スピンq1は＋１または−１のいずれかをとる。ノードND_nの回路ユニットもノードND_1と同様に、デジタル加算器anと、DA変換器cnと、比較器（比較ユニット）dnとを有する。
【００５０】
そして、演算回路は、各ノードの出力であるスピンqiに対応する重みwijを乗算するデジタル演算器eij（図５にはe1n, en1が示される）を有する。
【００５１】
図５には、ノードND_nの比較器（または比較ユニット）dnの詳細な構成が示される。比較器（または比較ユニット）dnは、第１比較器dn1と、第１のDA変換器dndacと、第２比較器dn2とを有する。第１比較器dn1は、熱雑音Voiと基準電圧Vnbとを比較して２値のデジタルランダム信号(Vdran)を出力する。第１のDA変換器dndacは、デジタルランダム信号Vdranをアナログランダム信号Veに変換するとともに、アナログランダム信号Veの大きさを振幅制御信号Nvarに基づいて可変させる。第２比較器dn2は、アナログランダム信号Veを閾値信号bnに加算して入力し、閾値信号Vo(=bn+Ve)とデジタル加算器anの出力信号znとを比較し所定の確率関数で２値の出力信号qnを生成する。
【００５２】
第１比較器dn1の正入力には定電圧Vnb（＝GND）が入力され、負入力には、抵抗素子Rnoiで発生した熱ノイズによるノイズ電圧Vnoiが入力される。容量Cnoiは例えば負入力端子の寄生容量である。また、振幅制御信号Nvarはmビットのデジタル振幅制御信号である。そして、第２比較器dn2の正入力にはデジタル加算器anのデジタル出力zndを第２のDA変換器c1で変換したアナログ出力znが入力され、負入力には閾値信号Vo=bn+Veが入力される。
【００５３】
図６は、比較器の回路の一例とその動作を示す図である。図６には、左側に第１比較器dn1や第２比較器dn2の回路例が示される。この比較器は、クロックCKに同期して動作するダイナミックラッチコンパレータである。クロックCKはスイッチSW14のゲートに供給され、反転クロックXCKは、スイッチSW10,SW11,SW12,SW13の制御端子に供給され、いずれのスイッチもクロックまたは反転クロックがHレベルでONし、LレベルでOFFする。
【００５４】
比較器は、正入力信号IPがゲートに供給されるNMOSトランジスタN5と、負入力信号IMがゲートに供給されるNMOSトランジスタN6とを有し、それらのトランジスタN5,N6の共通のソースSSとグランドGNDとの間にスイッチSW14を有する。さらに、比較器は、トランジスタN5,N6のドレインDN,DPと電源電圧VDDとの間に、PMOS,NMOSトランジスタ対P1,N3とP2,N4とを有し、これらのトランジスタ対P1,N3とP2,N4のゲートとドレインは、互いに交差接続され、ラッチ回路を構成する。そして、トランジスタ対P1,N3とP2,N4のドレインは、負出力ONと正出力OPにそれぞれ接続される。
【００５５】
比較器は、クロックCK=L, XCK=HでスイッチSW10,SW11,SW12,SW13がON, SW14がOFFとなりリセットされる。リセット状態では、ドレインノードDN,DPが電源電圧VDDに、出力端子ON,OPも電源電圧VDDにされる。そして、クロックCK=H, XVK=LでスイッチSW10,SW11,SW12,SW13がOFF, SW14がONとなり、入力トランジスタ対N5,N6が入力信号対OP,IMを比較し、IP>IMの場合にトランジスタN5がN6より強く導通し、ドレインノードはDNの低下がDPの低下より大きくDN<DPとなる。そして、この状態をトランジスタ対P1,N3とP2,N4のラッチ回路がラッチし、出力信号対はON<OPとなる。IP<IMの場合は、上記と逆の動作になる。
【００５６】
図６の比較回路はあくまでも一例であり、他の構成の比較回路でもよい。
【００５７】
図７は、比較器（比較ユニット）dnの構成を示す図である。図５の比較器の構成と同じであるが、図７の例では、第１比較器dn1にはクロックCK1が供給され、第２比較器dn2にはクロックCK2が供給され、DA変換器dndacに、振幅制御信号Dvarに加えて、サンプルクロックCKsamと、正と負の基準電圧+Vref, -Vrefが入力される。また、DA変換器dndacは容量素子を利用する容量DACであり、振幅制御信号Dvarにより容量素子の容量値が可変され、アナログ出力信号Veの振幅が可変される。
【００５８】
次に、第１比較器dn1による熱ノイズに基づいてランダムデジタル信号Vdranを生成する動作について説明する。
【００５９】
図８は、第１比較器の動作の信号波形を示す図である。第１比較器dn1の負入力に接続された抵抗Rnoiの半導体領域に熱ノイズが発生すると、寄生容量Cnoiに電荷が流れ込み熱ノイズ電圧Vnoiが上下に変動する。つまり、抵抗Rnoiと容量Cnoiとで熱ノイズ発生回路が構成される。そして、熱ノイズはランダムな時間に発生するため、熱ノイズ電圧Vnoiはランダムに上下に変動する。
【００６０】
第１比較器には第１クロックCK1が入力され、第１比較器dn1は、第１クロックCK1の立ち上がりエッジで、熱ノイズ電圧Vnoiと定電圧Vnbとの比較結果を＋１（Vnb>Vnoi）または−１（Vnb<Vnoi）をとるランダムデジタル信号Vdranとして出力する。このようにランダムデジタル信号Vdranは＋１または−１の符号であり、ランダムに変化する符号ノイズである。上記のとおり、第１比較器は、微弱なアナログランダム雑音Vnoiをデジタルランダム信号Vdranに変換する。
【００６１】
図９、図１０は、第１のDA変換器dndacのサンプリング動作とホールド動作を示す図である。図１１は、第１のDA変換器dndac内の制御回路１０の動作の論理値表を示す図である。また、図１２は、第１のDA変換器dndacと第２比較器dn2の動作の信号波形を示す図である。
【００６２】
図９、図１０に示された第２のDA変換器dndacは、アナログランダム信号Veが生成されるノードに一方の電極が接続されるｍ個の容量1C（正確には容量1Cのキャパシタ、以下単に容量1Cと称する。）と、各容量1Cの他方の電極にそれぞれ接続されるスイッチSW_1〜SW_mとを有する。スイッチSW_1〜SW_mはそれぞれ、ｍビットの制御信号p[m]に基づいて、各容量1Cの他方の電極に、基準電圧+Vref, -Vref, またはグランド電圧０Voltのいずれかのノードを接続する。制御回路１０は、ノイズの振幅を制御するmビットの振幅制御信号Dvar[m]と、デジタルランダム信号Vdranと、サンプルクロックCKsamを入力し、スイッチSW_1〜SW_mそれぞれの制御信号p[m]を生成する。図中、容量Ccは、第２比較器dn2の入力端子容量であり、その容量値は容量1Cに比較すると微小である。
【００６３】
図９に示すとおり、サンプルクロックCKsamがCKsam=1のサンプルモードのとき、スイッチSW1の制御信号psamがpsam=1となり、スイッチSW1をオンにして閾値電圧bnを全容量1Cにサンプリングする。制御回路１０は、CKsam=1に同期して、スイッチSW_1〜SW_mがグランド０に接続するようmビットの制御信号p[m]を制御する。これにより、全容量1Cに閾値電圧bnが印加されその電圧がサンプリングされる。サンプル期間では第２比較器の入力電圧Voは、Vo=bnである。
【００６４】
次に、図１０に示すとおり、サンプルクロックCKsamがCKsam=0のホールドモードのとき、スイッチSW1の制御信号psamがpsam=0となり、スイッチSW1をオフにして、アナログランダム信号Veが出力されるノードまたは第２比較器dn2の入力電圧Voのノードは、フローティング状態になる。
【００６５】
制御回路１０は、図１１の論理値表に示されるとおり、mビット目の振幅制御信号Nvar[m]が1のとき、ランダムデジタル信号Vdranが＋１または−１になることに基づいて、スイッチSW_mが正の基準電圧+Vrefまたは負の基準電圧-Vrefに接続するように、制御信号p[m]を制御する。すなわち、振幅制御信号Nvar[m]が1のとき、スイッチSW_mは、ランダムデジタル信号がVdran=+1なら正の基準電圧+Vrefに接続し、Vdran=-1なら負の基準電圧-Vrefに接続する。
【００６６】
一方、制御回路１０は、mビット目の振幅制御信号Nvar[m]が０のとき、ランダムデジタル信号Vdranが＋１または−１にかかわらず、スイッチSW_mが０Vのノードに接続するように、制御信号p[m]を制御する。
【００６７】
したがって、mビットの振幅制御信号Nvarのk個が１になると、スイッチSW_1〜SW_mのうちk個のスイッチが、正の基準電圧+Vrefまたは負の基準電圧-Vrefに接続する。その結果、DA変換器dndacの出力（または第２比較器の閾値入力）Voは、閾値電圧bnに変動幅±Veを加算した以下の電圧になる。
Vo = bn±Ve
Ve = {kC/(mC+Cc)}Vref
ここで、kはNvarの１の数、mは容量1Cの数である。
【００６８】
そして、入力端子容量Ccは微小であるので無視すると、出力Voは次の通りとなる。
Vo = bn±(k/m)*Vref
Ve = (k/m)*Vref
つまり、出力Voは、閾値bnにランダムデジタル信号Vdranの符号を有する変動値±Veを加算した電圧であり、その変動幅（振幅）は、基準電圧Vrefを振幅制御信号Nvarの１の数（k個）で乗算した（k倍）電圧幅になる。したがって、第１のDA変換器dndacは、熱ノイズに基づいて生成されたランダムデジタル信号Vdranをアナログランダム信号Veに変換する。そして、そのアナログランダム信号Veの振幅は、振幅制御信号Vvarにより可変させることができる。
【００６９】
図１２に示されるとおり、第２比較器dn2は、第２クロックCK2に同期して、デジタル加算器anのデジタル出力zndから変換されたアナログ出力znを、所定の振幅のノイズが重畳された入力電圧Vo=bn±Veと比較し、zn>Voなら出力qnを＋１に、zn<Voなら出力qnを−１にする。一方、第１のDA変換器dndacは、サンプルクロックCKsamがCKsam=1のときVo=bnを生成し、CKsam=0のときVo=bn±Veを生成する。
【００７０】
したがって、図１２に示されるとおり、サンプルクロックがCKsam=0のホールドモード中に第２クロックCK2が０から１に立ち上がるようにすれば、第２比較器dn2は、アナログ入力znを閾値入力信号Vo=bn±Veと比較する。そして、閾値入力信号Voは、基準となる閾値電圧bnに、デジタルランダム信号Vdranによる符号と、振幅制御信号Nvarによる振幅を有するランダムな変動成分Veを加算したアナログランダム信号である。第２比較器dn2は、zn>Vo=bn±Veなら出力qnを＋１にし、zn<Vo=bn±Veなら出力qnを−１にする。
【００７１】
図１２に示されるように、アナログ入力znがzn_2の電圧の場合（|Ve|>|Zn|の場合）は、比較結果qnは、アナログランダム信号VoがVo=bn+Veなら,出力qnをqn=-１にし、Vo=bn-Veなら、qn=+1にする。つまり、|Ve|>|Zn|であれば、デジタルランダム信号Vdranに基づいて変動成分Veが＋になるか−になるかによって、第２比較器dn2の出力qnが−１、＋１になり、その確率は５０％である。
【００７２】
一方、アナログ入力znがzn_1の電圧の場合（|Ve|<|Zn|の場合）は、比較結果qnは、変動成分Veが＋または−にかかわらず、出力qnはqn=+1になる。逆に、アナログ入力znがzn_3の電圧の場合（|Ve|<|Zn|の場合）は、比較結果qnは、変動成分Veが＋または−にかかわらず、出力qnはqn=-1になる。つまり、|Ve|<|Zn|であれば、変動成分Veが＋になるか−になるかにかかわらず、第２比較器dn2の出力qnが＋１か−１のどちらかになり、その確率は１００％である。この意味するところは、次のとおりである。
【００７３】
図１３は、第２比較器の出力関数を説明する図である。図１３の３つのグラフは、横軸がアナログ入力znに、縦軸が比較器の出力qnがqn=+1になる確率に対応する。図１３（ａ）は、一般的な比較器が入力電圧znを閾値電圧bn(=0v)と比較した場合の、入力電圧znに対する出力qn=+1になる確率を示す。この場合、zn>bnであれば、出力がqn=+1になる確率は1.0（100%）であり、zn<bnであれば、出力がqn=+1になる確率は0.0（0%）であり、zn=bnであれば、出力がqn=+1になる確率は0.5（50%）である。
【００７４】
一方、図１３（ｂ）は、上記の第２比較器dn2が入力znをアナログランダム信号Vo=bn±Veと比較した場合の、入力電圧znに対する比較器の出力がqn=+1になる確率を示す。この場合、zn>bn+Veであれば、出力がqn=+1になる確率は1.0（100%）であり、zn<bn-Veであれば、出力がqn=+1になる確率は0.0（0%）である。つまり、|zn|>|Ve|の場合、出力がqn=+1になる確率は1.0(100%)または0.0（0%）である。しかし、|zn|<|Ve|であれば、出力がqn=+1になる確率は0.5（50%）である。つまり、50%の確率で出力はqn=+1,-1にそれぞれなる。
【００７５】
図１３（ｃ）は、第２比較器dn2の振幅制御信号Nvarの値を減じた場合の出力関数（破線）を示す。Nvarを減じると変動成分Veが小さくなる。その結果、出力がqn=+1になる確率が0.5（50%）の範囲が、実線で示す-Ve1から+Ve1から、破線で示す-Ve2〜+Ve2に狭くなる。つまり、出力がqn=+1になる確率が0.5（50%）の範囲を振幅制御信号Nvarによって任意に変更することができる。
【００７６】
図４に示した３種類のシグモイド関数のうち、図１３の（ａ）は図４のT=0.5のシグモイド関数に、（ｂ）は図４のT=2のシグモイド関数に、（ｃ）の破線は図４のT=1のシグモイド関数に、それぞれ対応する。したがって、第２比較器dn2の出力関数は、振幅制御信号Nvarを可変させることで、図４のような異なる特性のシグモイド関数に設定することができることを意味する。
【００７７】
［第２の実施の形態］
図１４は、第２の実施の形態における比較回路（比較ユニット）の構成を示す図である。また、図１５は、第２の実施の形態における比較回路（比較ユニット）の信号波形を示す図である。第２の実施の形態における比較回路（比較ユニット）dnは、熱ノイズ生成回路（Rnoi, Cnoi）と第１比較回路dn1を有するデジタルランダム信号生成器DRANと、デジタルランダム信号Vdranをアナログランダム信号Veに変換しその振幅を可変させる第１DA変換器dadacとを複数組（n組）有する。第１DA変換器dadac_1〜dadac_nには共通の振幅制御信号Nvarが入力される。そして、n組の第１DA変換器dadac_1〜dadac_nの出力であるn個のアナログランダム信号（電圧）Veは、閾値信号bnに加算される。
【００７８】
n組のデジタルランダム信号生成器DRAN_1〜DRAN_nは、それぞれのデジタルランダム信号Vdranを互いに独立して生成する。その結果、n組のデジタルランダム信号Vdran[n]の組合せは2n種類あり、n組のアナログランダム信号Veの電圧レベルは、Vdran[n]が+1が０個(-1がn個)から+1がn個（-1が０個）までのn+1種類になりうる。つまり、n個のアナログランダム信号Veはn+1種類の電圧レベルを生成し、且つ、n+1種類の電圧レベルは、振幅制御信号Nvarにより可変させることが可能である。そして、n個のアナログランダム信号Veによるn+1種類の電圧レベルが、閾値信号bnの電圧に加算される。
【００７９】
図１５の信号波形は、７組のデジタルランダム信号生成器と第１DA変換器の例であり、８種類の電圧レベル（４種類の負電圧と４種類の正電圧）に対応するアナログランダム信号|Ve_1|〜|Ve_4|が示されている。この８種類の電圧レベルは、７つのデジタルランダム信号Vdranの次の８種類の組合せに対応する。
(-1,-1,-1,-1,-1,-1,-1)=-Ve_4
(+1,-1,-1,-1,-1,-1,-1)=-Ve_3
(+1,+1,-1,-1,-1,-1,-1)=-Ve_2
(+1,+1,+1,-1,-1,-1,-1)=-Ve_1
(+1,+1,+1,+1,-1,-1,-1)=+Ve_1
(+1,+1,+1,+1,+1,-1,-1)=+Ve_2
(+1,+1,+1,+1,+1,+1,-1)=+Ve_3
(+1,+1,+1,+1,+1,+1,+1)=+Ve_4
【００８０】
図１６は、デジタルランダム信号生成器と第１DA変換器の組数が１、２、３の場合の第２比較器の出力関数を示す図である。
【００８１】
（ａ）１組の場合、デジタルランダム信号Vdranは-1,+1の２種類であり、アナログランダム信号は-Ve, +Veの2種類である。したがって、入力znがzn<-Veで出力qnがqn=+1になる確率は0.0, -Ve<zn<+Veでの確率は0.5, +Ve<znでの確率は1.0である。
【００８２】
（ｂ）２組の場合、２個のデジタルランダム信号Vdranの組合せは(-1,-1),(+1,-1),(-1,+1),(+1,+1)の22=４種類で、アナログランダム信号は-2Ve,0,+2Veの３種類である。したがって、入力znがzn<-2Veで出力qnがqn=+1になる確率は0.0, -2Ve<zn<0での確率は0.25(=1/4), z=0での確率は0.5, 0<zn<+2Veでの確率は0.75(=3/4), +2Ve<znでの確率は1.0である。
【００８３】
（ｃ）３組の場合、３個のデジタルランダム信号Vdranの組合せは23=８種類で、アナログランダム信号は-3Ve,-Ve, +Ve,+3Veの４種類である。したがって、入力znがzn<-3Veで出力qnがqn=+1になる確率は0.0, -3Ve<zn<-Veでの確率は0.125(=1/8), -Ve<zn<+Veでの確率は0.5(=4/8), +Ve<zn<+3Veでの確率は0.875(=7/8), +3Ve<znでの確率は1.0である。
【００８４】
上記のとおり、第２の実施の形態によれば、デジタルランダム信号生成器と第１DA変換器の組数を増やすことで、第２比較器の出力関数の波形をなだらかにして、より自然なシグモイド関数に近い波形にすることができる。
【００８５】
［ボルツマンマシンのアニーリング動作］
上記のボルツマンマシンは、熱ノイズに基づいてノイズの符号をランダムに変更するデジタルランダム信号Vdranを生成し、第１のDA変換器dndacがデジタルランダム信号をアナログランダム信号+Ve又は-Veに変換し且つその振幅を振幅制御信号Nvarにより可変させ、第２比較器dn2が入力znを基準の閾値信号bnにアナログランダム信号±Veを加算した閾値Vo=bn±Veと比較して出力qn(+1 or -1)を生成する。また、第２の実施の形態のようにデジタルランダム信号生成器と第1DA変換器の組数を複数にする場合は、アナログランダム信号の種類を増やして、第２比較器dn2の出力関数の波形をより自然なシグモイド関数に近づける。
【００８６】
本実施の形態では、ボルツマンマシンの実行を繰り返す過程で、振幅制御信号Nvarを最大値から最小値に変更させて第２比較器dn2の閾値のノイズレベル±Veの振幅を最大値から最小値に変更する。これにより、熱ノイズのレベルを順次低下させてネットワークのエネルギーが最小値の最適解を達成できる確率を高くする。
【００８７】
図１７は、本実施の形態におけるボルツマンマシンの動作を示すフローチャート図である。図５のボルツマンマシンにおいて、まず、重みwxyの初期値をモデルの固定値に設定し（S1）、各ノードのスピンqiを適当な値（+1 or -1）に設定する（S2）。そして、アナログランダム信号±Veの振幅制御信号Nvarを最大値に設定する（S3）。この状態で、任意の回数ボルツマンマシンを実行する（S4）。
【００８８】
図１８は、ボルツマンマシンの実行工程S4の詳細を示すフローチャート図である。ボルツマンマシンの実行は、動作対象のノードをランダムに決定し（S41）、決定したノードの比較器（比較ユニット）diを動作させて、現在の全ノードの出力q1〜qnに対するデジタル加算器aiのアナログ出力ziから新たな出力q’iを生成する（S42）。この結果、全ノードの出力q1〜qnは異なる組合せに更新され、各ノードのデジタル加算器a1〜anが新たな出力q1〜qnに対応する加算値z1d〜zndを生成する。さらに、出力q1〜qnの新たな組合せに対するネットワークのエネルギー値は別の値に遷移する。
【００８９】
この遷移では、第２比較器が以下のように動作する。
Σjwijqj-(bi±Ve) > 0ならばq’i=+１を出力し
Σjwijqj-(bi±Ve) < 0ならばq’i=-１を出力する。
そして、第２比較器の動作は、出力qiの符号が反転する場合と、反転しない場合があり、反転する場合はネットワークのエネルギー値Eが減少する。さらに、閾値にノイズが加えられることで、本来なら出力qiの符号が反転する動作でも、符号が反転しないことがあり、その場合はネットワークのエネルギー値Eが増加する。この第２比較器のノイズに起因する誤った動作により、局所解の極小値から抜け出せるエネルギー値の出力qiの組み合わせに遷移することができる。なお、上記のボルツマンマシンの実行中において、ネットワークのエネルギー値の計算は通常行わない。
【００９０】
そして、ボルツマンマシンの実行回数をM回、アニーリングのノイズレベルの低下回数を３回とすると、例えば、実行回数がM/3回に達するまで、動作対象のノードをランダムに決定すること（S41）と、決定したノードの比較器diを動作させて新たな出力q’iを生成すること（S42）とを繰り返す。ここで、ノードの比較ユニットである比較器diを動作させるとは、具体的に、比較ユニットdi内の第２比較器di2をクロックCK2に同期して比較動作を実行させることである。比較ユニットdi内の第1比較器di1は、工程S42の動作タイミングとは独立したクロックCK1で比較動作を行い、デジタルランダム信号Vdranを継続して生成する。
【００９１】
図１７に戻り、振幅制御信号Nvarの値を任意の値だけ減少させ（S5）、全実行回数がM回に達しない間（S6のNO）、上記の工程S4,S5を繰り返す。つまり、振幅制御信号Nvarの値を任意の値だけ減少させ、第２比較器di2の閾値電圧Vo=bi±Veのノイズ振幅Veを大きさを減少させて、再度、M/3回工程S4を実行する。
【００９２】
全実行回数がM回に達すると（S6のYES）、つまり振幅制御信号Nvarが終了値である最小値になると、ボルツマンマシンの実行を終了し、データ解析処理を行う（S7）。データ解析処理では、ボルツマンマシンのネットワークのエネルギーEを演算し、適宜メモリに記録する。
【００９３】
エネルギーEが最小値である最適値に達していなければ（または最適値に近い値まで低下していなければ）、実行回数を増加したり、振幅制御信号Nvarを低下する幅を小さくしたりして、再度図１７のフローチャートを実行する。エネルギーEが最適値に達していれば（または最適値に近い値まで低下していれば）、ボルツマンマシンの実行を終了する。参考までに、ボルツマンマシンの実行回数を無限大にすれば、理論的にはエネルギーEは最小値（最適値）に達する。
【００９４】
図１９は、本実施の形態におけるボルツマンマシンの実行の３つのフェーズを示す図である。左側のグラフは、図３と同じである。それに対して、右側のグラフは、本実施の形態の第２比較器di2のシグモイド関数とノードND_iでのデジタル加算器aiの出力ziの範囲を示す。シグモイド関数は、図１６の（ｃ）の３組のデジタルランダム信号生成器と第１DA変換器の場合に対応する。したがって、シグモイド関数は、アナログランダム信号の電圧-3Ve, -Ve, +Ve, +3Veで異なる確率になる。
【００９５】
図１９の（ａ）の状態では、ノイズの振幅が最大値でありシグモイド関数の特性が非常になだらかであり、デジタル加算器aiの出力ziの範囲内では、第２比較器の出力qiが＋１をとる確率は、0.5である。その結果、第２比較器は0.5の確率で誤った出力qiを生成し、ネットワークのエネルギーが局所的な極小値にとどまることを回避でき、最適値に向かうことができる。
【００９６】
図１９の（ｂ）の状態では、ノイズの振幅が中程度でありシグモイド関数の特性がやや急峻になり、デジタル加算器aiの出力ziの範囲内では、第２比較器の出力qiが＋１をとる確率は、0.125, 0.5, 0.825のいずれかである。その結果、第２比較器は0.125, 0.5, 0.825の確率で誤った出力qiを生成することがあり、ネットワークのエネルギーが局所的な極小値にとどまることを回避できる。
【００９７】
図１９の（ｃ）の状態では、ノイズの振幅が最小でありシグモイド関数の特性が非常に急峻になり、デジタル加算器aiの出力ziの範囲内では、第２比較器の出力qiが＋１をとる確率は、0.0 0.125, 0.5, 0.825, 1.0のいずれかである。その結果、第２比較器が誤った出力qiを生成する確率が低下し、ネットワークのエネルギーが極小値にとどまりやすくなる。
【００９８】
このように、振幅制御信号Nvarを最大値から最小値に可変させることで、ボルツマンマシンをアニーリングしながら実行することができる。
【００９９】
［ボルツマンマシンを有する情報処理装置］
図２０は、ボルツマンマシンを有する情報処理装置を示す図である。情報処理装置はコンピュータであり、プロセッサCPUと、メモリRAMと、ボルツマンマシンである演算回路部２０と、インターフェースIFと、ハードディスク等の補助記憶装置２１と、ディスプレイやキーボードなどの入出力装置２２と、ネットワークインターフェース２３と、それらを接続するバス２４を有する。
【０１００】
演算回路部２０は、例えば、図５の複数ノードの回路部と、ノード間の複数のデジタル演算器とを有するネットワーク回路である。プロセッサCPUが補助記憶装置２１内のプログラムを実行中に最適解を求める必要が発生すると、プロセッサがプログラムを実行して最適解を求めるのではなく、演算回路部２０を実行して最適解を取得する。
【０１０１】
以上、本実施の形態におけるボルツマンマシンは、小さな回路規模で熱ノイズからデジタルランダム信号を生成し、デジタルランダム信号に応じてノイズの符号を決定し振幅制御信号Nvarによりノイズの振幅を可変させてノイズ信号を生成する。したがって、小さな回路規模でノイズ信号を生成しそのノイズ振幅を容易に可変させるので、ボルツマンマシンのアニーリング制御を行うことができる。
【０１０２】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１０３】
（付記１）
複数の重み付け入力信号を加算する加算器と、前記加算器の出力信号と閾値信号とを比較して２値の出力信号を出力する比較ユニットとをそれぞれ有し、前記２値の出力信号をそれぞれ出力する複数の回路ユニットと、
一対の前記回路ユニットのうち第１の回路ユニットの出力信号を重みに基づいて重み付けをして前記重み付け入力信号を生成し、前記一対の回路ユニットのうち第２の回路ユニットに入力する複数のデジタル演算器とを有し、
前記比較ユニットは、
熱雑音と基準電圧とを比較して２値のデジタルランダム信号を出力する第１比較器と、
前記デジタルランダム信号をアナログランダム信号に変換するとともに、前記アナログランダム信号の大きさを可変させる第１のDA変換器と、
前記アナログランダム信号を前記閾値信号として入力し、前記閾値信号と前記加算器の出力信号とを比較し所定の確率関数で前記２値の出力信号を生成する第２比較器とを有する、ボルツマンマシン。
【０１０４】
（付記２）
前記アナログランダム信号の振幅を順次小さくしながら、前記複数の回路ユニットを所定回数ランダムに動作させる、付記１に記載のボルツマンマシン。
【０１０５】
（付記３）
前記第１比較器は、第１クロックに同期して比較動作を行い前記２値のデジタルランダム信号を出力する、付記１に記載のボルツマンマシン。
【０１０６】
（付記４）
前記第１のDA変換器は、前記デジタルランダム信号に基づいて前記アナログランダム信号の符号を制御し、大きさ制御信号に基づいて前記アナログランダム信号の振幅を可変させる、付記１に記載のボルツマンマシン。
【０１０７】
（付記５）
前記第１のDA変換器は、前記大きさ制御信号に対応する個数の容量素子の第１端子に、前記デジタルランダム信号に基づく正の基準電圧または負の基準電圧のいずれかを印加するスイッチを有し、前記容量素子の共通に接続された第２端子に前記アナログランダム信号を生成する、付記４に記載のボルツマンマシン。
【０１０８】
（付記６）
前記第２比較器は、第２クロックに同期して比較動作を行い前記２値の出力信号を出力する、付記１に記載のボルツマンマシン。
【０１０９】
（付記７）
前記複数の比較ユニットのそれぞれは、前記第１比較器と、前記第１比較器の前記２値のデジタルランダム信号を入力する前記第１のDA変換器とを複数組有し、前記複数の第１のDA変換器には共通の前記大きさ制御信号が入力され、前記複数の第１のDA変換器のアナログランダム信号が加算されて前記第２比較器に入力される、付記４に記載のボルツマンマシン。
【０１１０】
（付記８)
前記加算器の出力信号はデジタル出力信号であり、
前記複数の回路ユニットはそれぞれ、前記加算器のデジタル出力信号をアナログ出力信号に変換する第２のDA変換器を有し、
前記比較ユニットは、前記アナログ出力信号と前記閾値信号とを比較する、付記１に記載のボルツマンマシン。
【０１１１】
（付記９）
複数の重み付け入力信号を加算する加算器と、前記加算器の出力信号と閾値信号とを比較して２値の出力信号を出力する比較ユニットとをそれぞれ有し、前記２値の出力信号をそれぞれ出力する複数の回路ユニットと、一対の前記回路ユニットのうち第１の回路ユニットの出力信号を重みに基づいて重み付けをして前記重み付け入力信号を生成し、前記一対の回路ユニットのうち第２の回路ユニットに入力する複数のデジタル演算器とを有するボルツマンマシンの制御方法において、
前記比較ユニットが有する第１比較器が、熱雑音と基準電圧とを比較して２値のデジタルランダム信号を出力し、
前記比較ユニットが有する第１のDA変換器が、前記デジタルランダム信号をアナログランダム信号に変換するとともに、前記アナログランダム信号の大きさを可変させ、
前記比較ユニットが有する第２比較器が、前記アナログランダム信号を前記閾値信号として入力し、前記閾値信号と前記加算器の出力信号とを比較し所定の確率関数で前記２値の出力信号を生成する、ボルツマンマシンの制御方法。
【０１１２】
（付記１０）
プログラムの命令を実行する演算処理装置と、
前記演算処理装置からの実行依頼に応じて動作する演算回路部とを有し、
前記演算回路部は、
複数の重み付け入力信号を加算する加算器と、前記加算器の出力信号と閾値信号とを比較して２値の出力信号を出力する比較ユニットとをそれぞれ有し、前記２値の出力信号をそれぞれ出力する複数の回路ユニットと、
一対の前記回路ユニットのうち第１の回路ユニットの出力信号を重みに基づいて重み付けをして前記重み付け入力信号を生成し、前記一対の回路ユニットのうち第２の回路ユニットに入力する複数のデジタル演算器とを有し、
前記比較ユニットは、
熱雑音と基準電圧とを比較して２値のデジタルランダム信号を出力する第１比較器と、
前記デジタルランダム信号をアナログランダム信号に変換するとともに、前記アナログランダム信号の大きさを可変させる第１のDA変換器と、
前記アナログランダム信号を前記閾値信号として入力し、前記閾値信号と前記加算器の出力信号とを比較し所定の確率関数で前記２値の出力信号を生成する第２比較器とを有する、情報処理装置。
【０１１３】
（付記１１）
前記演算回路部は、前記アナログランダム信号の振幅を順次小さくしながら、前記複数の回路ユニットを所定回数ランダムに動作させる、付記１０に記載の情報処理装置。
【符号の説明】
【０１１４】
ND_n：ノード、回路ユニット
e1n, en1：デジタル演算器
an：デジタル加算器
cn：第２のDAC
dn：比較ユニット
dn1：第１比較器
dndac：第１のDAC
dn2：第２比較器
Vdran：ランダムデジタル信号
zn：加算値
qn：２値の出力信号
【図１】
0006524933.tif 000009
【図２】
0006524933.tif 000010
【図３】
0006524933.tif 000011
【図４】
0006524933.tif 000012
【図５】
0006524933.tif 000013
【図６】
0006524933.tif 000014
【図７】
0006524933.tif 000015
【図８】
0006524933.tif 000016
【図９】
0006524933.tif 000017
【図１０】
0006524933.tif 000018
【図１１】
0006524933.tif 000019
【図１２】
0006524933.tif 000020
【図１３】
0006524933.tif 000021
【図１４】
0006524933.tif 000022
【図１５】
0006524933.tif 000023
【図１６】
0006524933.tif 000024
【図１７】
0006524933.tif 000025
【図１８】
0006524933.tif 000026
【図１９】
0006524933.tif 000027
【図２０】
0006524933.tif 000028