JP6471629B2 - ボルツマンマシン回路 - Google Patents

ボルツマンマシン回路 Download PDF

Info

Publication number
JP6471629B2
JP6471629B2 JP2015131035A JP2015131035A JP6471629B2 JP 6471629 B2 JP6471629 B2 JP 6471629B2 JP 2015131035 A JP2015131035 A JP 2015131035A JP 2015131035 A JP2015131035 A JP 2015131035A JP 6471629 B2 JP6471629 B2 JP 6471629B2
Authority
JP
Japan
Prior art keywords
circuit
value
transistors
digital
transistor
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
JP2015131035A
Other languages
English (en)
Other versions
JP2017016302A (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 JP2015131035A priority Critical patent/JP6471629B2/ja
Priority to US15/130,377 priority patent/US10007877B2/en
Publication of JP2017016302A publication Critical patent/JP2017016302A/ja
Application granted granted Critical
Publication of JP6471629B2 publication Critical patent/JP6471629B2/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/08Learning methods
    • 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/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
    • G06N3/065Analogue means

Description

本発明は、ボルツマンマシン回路に関する。
ニューラルネットワークの1つであるボルツマンマシンは、ノイマン型コンピュータが不得意とする多変数の最適化問題やパターン認識などを高速で実行することができると期待されている。
しかし、ボルツマンマシンをシミュレーションで実現すると、ボルツマンマシンに含まれるユニット数またはユニット間の接続数の増加により計算時間が長くなる。そのため、ボルツマンマシンの規模がある程度まで拡大されるとシミュレーションが非実用的になる。
従来、ボルツマンマシンを回路で実現することによって、計算時間を短縮することが提案されている。
特開平2−27493号公報 特開2014−96769号公報 特開2013−143626号公報
ところで、ボルツマンマシンでは、解が局所解に捕捉されること防ぐために、各ユニットが1を出力する確率を温度パラメータによって変化させるシミュレーテッドアニーリングという手法が用いられる。従来の回路で実現したボルツマンマシンは、アナログ信号を用いる部分が多いという点のほか、上記の確率を変えるためにランダムノイズ発生器で発生するノイズの振幅を増幅器で変えて各ユニットの入力値を生成しており、回路規模が大きくなるという課題がある。
発明の一観点によれば、それぞれが、自身以外の出力に基づく第1の値を加算して、加算結果をアナログ信号に変換し、前記アナログ信号と第2の値とを比較し、比較結果を出力する複数の回路部と、前記複数の回路部のそれぞれから出力される前記比較結果に対して、重み値を乗じて前記第1の値を生成する複数の演算回路と、前記複数の回路部のそれぞれが生成する前記アナログ信号の振幅を増幅させていくことで、等価的にアニーリングを行う制御回路と、を有するボルツマンマシン回路が提供される。
また、発明の一観点によれば、それぞれが、自身以外の出力に基づく第1の値を加算して、加算結果に基づき第2の値を生成し、前記第2の値と第3の値とを比較し、比較結果を出力する複数の回路部と、前記複数の回路部のそれぞれから出力される前記比較結果に対して、重み値を乗じて前記第1の値を生成する複数の演算回路と、前記複数の回路部のそれぞれにおける前記加算結果の変化に対する前記第2の値の変化の度合いを増加させていくことで、等価的にアニーリングを行う制御回路と、を有するボルツマンマシン回路が提供される。
開示のボルツマンマシン回路によれば、回路規模を縮小できる。
第1の実施の形態のボルツマンマシン回路の一例を示す図である。 アナログ信号の振幅を増幅することによるシミュレーテッドアニーリングを説明する図である。 DACの一例を示す図である。 DACの他の例を示す図である。 重み値を学習する回路を含むボルツマンマシン回路の一例を示す図である。 第2の実施の形態のボルツマンマシン回路の一例を示す図である。 閾値調整機能付きの比較回路の一例を示す図である。 加算結果に対する判定閾値の変化の差異の一例を示す図である。 回路部51a1の状態s1が1になる確率Pを示している。 シミュレーテッドアニーリングにより最適解を求める際の、第2の実施の形態のボルツマンマシン回路の動作例を示す図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
ボルツマンマシンは、互いに接続されたユニットによるネットワークであり、そのネットワークのもつエネルギーは、たとえば、以下の式(1)で定義される。
Figure 0006471629
式(1)において、nはユニット数、wijは、i番目のユニットとj番目のユニット間の結合係数(以下重み値と呼ぶ)を示し、si,sjは、i番目のユニットとj番目のユニットのそれぞれの状態(0か1)を示している。また、式(1)において、biは、i番目のユニットの閾値を示している。式(1)において、1番目の項は、n個のユニットのそれぞれの状態と閾値との積の積算を示す。2番目の項は、n個のユニットによる集合Edgesに含まれるi番目のユニットとj番目のユニットの状態と、これらユニット間の重み値との積の積算を示している。1番目の項と2番目の項の一方はなくてもよい。
また、ボルツマンマシンでは、ある閾値と重み値が与えられているとき、式(1)で示されるエネルギーEが最も小さくなるような各ユニットの状態を見つけるために、シミュレーテッドアニーリングが用いられる。
本実施の形態のボルツマンマシン回路は、上記のようなボルツマンマシンを回路化したものである。
図1は、第1の実施の形態のボルツマンマシン回路の一例を示す図である。
ボルツマンマシン回路1は、回路部2a1〜2anと、デジタル演算回路3a1〜3anと、制御回路4とを有している。
回路部2a1〜2anは、前述したボルツマンマシンのネットワークに含まれるn個のユニットに対応している。回路部2a1〜2anのそれぞれは、回路部2a1〜2anのうち、自身以外の出力に基づく値を加算し、その加算結果をアナログ信号に変換し、そのアナログ信号と閾値との比較結果を出力する。
たとえば、回路部2a1,2anは、デジタル加算回路2b1,2bn、デジタルアナログ変換回路(以下DAC(Digital-Analog Converter)という)2c1,2cn、比較回路2d1,2dnを有している。
デジタル加算回路2b1は、回路部2a1〜2anのうち、回路部2a1以外の回路部の出力に基づくデジタル値を加算する。デジタル加算回路2bnは、回路部2a1〜2anのうち、回路部2an以外の回路部の出力に基づくデジタル値を加算する。
DAC2c1は、デジタル加算回路2b1から出力される加算結果z1dをアナログ信号z1に変換する。DAC2cnは、デジタル加算回路2bnから出力される加算結果zndをアナログ信号znに変換する。図1の例では、DAC2c1,2cnは、基準電圧Vref,−Vrefに基づき、加算結果z1d,zndをアナログ信号z1,znに変換する、乗算型のDACである。
比較回路2d1は、アナログ信号z1と、閾値b1との比較に基づき、1か0の比較結果を回路部2a1の状態s1として出力する。比較回路2dnは、アナログ信号znと、閾値bnとの比較に基づき、1か0の比較結果を回路部2anの状態snとして出力する。なお、閾値b1,bnは、たとえば、レジスタなどに予め保持されているものであってもよいし、回路部2a1〜2anの何れかの出力であってもよい。
回路部2a1〜2anのうち、回路部2a1,2an以外の回路部についても同様の要素を有している。
デジタル演算回路3a1〜3anは、たとえば、乗算回路であり、回路部2a1〜2anのそれぞれの出力に対して、後述する学習によって得られる重み値を乗じたデジタル値を生成する。たとえば、デジタル演算回路3a1は、回路部2a1の出力(状態s1)に、重み値w1nを乗じることでデジタル値を生成し、回路部2anに供給する。また、デジタル演算回路3anは、回路部2anの出力(状態sn)に、重み値wn1を乗じることでデジタル値を生成し、回路部2a1に供給する。重み値w1n,wn1は、0であってもよい。
なお、図1では、回路部2a1〜2anのそれぞれに対して、1つのデジタル演算回路3a1〜3anを示しているが、各回路部2a1〜2anのそれぞれにおける出力は、n−1個の回路部に供給されるため、n−1個のデジタル演算回路が設けられる。
制御回路4は、回路部2a1〜2anのそれぞれが生成するアナログ信号z1〜znの振幅を増幅させていくことで、等価的にアニーリングを行う。制御回路4は、たとえば、プロセッサ(CPU(Central Processing Unit)など)である。
たとえば、制御回路4は、DAC2c1〜2cnのゲインを徐々に増加させることで、アナログ信号z1〜znの振幅を増幅させていく。
アナログ信号z1〜znの振幅を増幅することが、アニーリング(シミュレーテッドアニーリング)を行うことに相当する理由を以下に説明する。
図2は、アナログ信号の振幅を増幅することによるシミュレーテッドアニーリングを説明する図である。
図2では、回路部2a1の状態s1が1になる確率Pを示している。
縦軸は、確率Pを示しており、横軸は、アナログ信号z1の振幅値z1Aを示している。波形5のように、振幅値z1Aが閾値b1より大きいほど、状態s1が1になる確率Pが大きくなり、振幅値z1Aが閾値b1より小さいほど、確率Pは小さくなる。振幅値z1Aが閾値b1に近いほど、状態s1が1になる場合と0になる確率が等しくなる。このような特性は、比較回路2d1のデバイスノイズに基づくものである。
ところで、シミュレーテッドアニーリングは、温度パラメータを徐々に小さくすることによって、各ユニットの状態が1または0の一方となる確率(状態が確定する確率)を、徐々に大きくするものである。
シミュレーテッドアニーリングを回路で実現するために、ノイズの大きさを変化させて、確率Pの波形を波形6から波形5のように変化させることも考えられるが、その場合、ノイズを加える回路などの追加が発生してしまう。これに対しては、本実施の形態のボルツマンマシン回路1は、比較回路2d1へ入力されるアナログ信号z1の振幅値z1Aを増加(振幅を増幅)させて、状態s1が1または0の一方になる確率を大きくする。
制御回路4は、たとえば、DAC2c1のゲインを増加させて、アナログ信号z1の振幅値z1Aをz1minaから、マイナス方向に増加させてz1minbとし、z1maxaから、プラス方向に増加させて、z1maxbとする。これにより、アナログ信号z1に基づき状態s1が1または0の一方になる確率が等価的に大きくなる。つまり、アナログ信号z1の振幅を増幅させることが、温度パラメータを小さくすることに相当し、等価的にシミュレーテッドアニーリングを行うことが可能となる。
以下、図1を用いて、シミュレーテッドアニーリングにより最適解を求める際の、ボルツマンマシン回路1の動作例を説明する。
図1には、DAC2c1〜2cnの出力振幅の値(アナログ信号z1〜znの振幅値)がmin、mid(>min)、max(>mid)のときのエネルギー波形10,11,12の一例の様子が示されている。縦軸はエネルギーEであり、横軸はn個の回路部2a1〜2anの状態s1〜snの組み合わせsKを示している。また、図1には、図2で説明したような比較回路2d1〜2dnのデバイスノイズに基づく判定結果のばらつきで生じる、エネルギーEのばらつきw1の例が示されている。
DAC2c1〜2cnの出力振幅がminのとき(たとえば、制御回路4がDAC2c1〜2cnで、加算結果z1d〜zndに乗じる基準電圧Vrefを0とするとき)、エネルギー波形10は、ばらつきw1の範囲に収まっている。この場合、エネルギーEを最小にする解(組み合わせsK)への収束はなされない。
DAC2c1〜2cnの出力振幅がmidのとき、エネルギー波形11において、組み合わせsKがsK1のとき、エネルギーEはばらつきw1の範囲に収まっているため、この解(局所解)への収束はなされない。一方、組み合わせsKがsK2のとき、エネルギーEはばらつきw1の範囲外となるため、この解へ収束されていく。
DAC2c1〜2cnの出力振幅がmaxのとき、エネルギー波形12において、組み合わせsK2への収束が終わり、最適解として、組み合わせsK2が得られる。
このように、DAC2c1〜2cnの出力振幅を増幅させていくことは、高い温度から低い温度に変化させていくアニーリングに相当する。
以上のように、本実施の形態のボルツマンマシン回路1は、各回路部2a1〜2anの出力段の比較回路2d1〜2dnに入力されるアナログ信号z1〜znの振幅を増幅し、比較回路2d1〜2dnのノイズを利用して等価的にアニーリングを行う。これによって、ノイズ発生器などが不要となり、回路規模を小さくできる。
さらに、各回路部2a1〜2anがもつアナログ回路は、DAC2c1〜2cnと比較回路2d1〜2dnだけであるので、微細化プロセスによる高密度実装が可能である。また、回路部2a1〜2an間で送受信される信号は、デジタル信号であるため、配線の自由度が上がる。そのため、回路規模をより縮小可能である。
以下、アナログ信号z1〜znの振幅を変化可能なDAC2c1〜2cnの例を説明する。
(DACの例)
図3は、DACの一例を示す図である。
DAC2c1は、基準電圧Vref,−Vrefが印加される端子20,21間に直列に接続された抵抗素子R0,R1,…,Rm-1,Rmと、各抵抗素子間のノードに一端を接続し、他端を共通に接続したスイッチSW1,SW2,…,SWm-1,SWmを含む。さらに、DAC2c1は、デコーダ22を有している。スイッチSW1〜SWmの他端からアナログ信号z1が出力される。
抵抗素子R0〜Rmのうち、抵抗素子R1〜Rm-1は同じ抵抗値を有し、抵抗素子R0,Rmの抵抗値は、抵抗素子R1〜Rm-1のそれぞれの抵抗値の半分の値である。
スイッチSW1〜SWmは、デコーダ22からの信号に基づき、オンまたはオフする。スイッチSW1〜SWmは、MOSFET(Metal-Oxide-Semiconductor Field-Effect Transistor)で実現可能である。
デコーダ22は、デジタル加算回路2b1での加算結果z1d(デジタル値)を受けると、加算結果z1dの大きさに対応したアナログ信号z1が出力されるように、スイッチSW1〜SWmの何れか1つをオンする。このとき、アナログ信号z1の振幅値z1Aは、以下の式(2)のように表される。
1A=(z1dA+0.5)×{Vref−(−Vref)}/2m+(−Vref)=2×(z1dA+0.5)/2m)×Vref−Vref (2)
なお、式(2)において、z1dAは、加算結果z1dの値を示している。
デコーダ22は、さらに、シミュレーテッドアニーリングが行われる際、制御回路4からの制御信号を受け、ゲインが増加していくように(振幅値z1Aが増加していくように)、スイッチSW1〜SWmを制御する。このように、図3のDAC2c1では、デコーダ22は制御回路4からの制御信号に基づき、基準電圧Vrefを抵抗分割するスイッチSW1〜SWmを制御することで、振幅値z1Aを増加させることができる。
(DACの他の例)
図4は、DACの他の例を示す図である。
図4のDAC2c1aにおいて、図3に示したDAC2c1と同様の要素については同一符号を付してある。
DAC2c1aは、基準電圧Vref,−Vrefが印加される端子30,31間に直列に接続された抵抗素子Ra0,Ra1,…,Ram-1,Ram、バッファ回路32,33、制御部34、デコーダ35を有する。
制御部34は、制御回路4からの制御信号に基づき、図示しないスイッチのオンオフを制御して、バッファ回路32,33の入力端子を、抵抗素子Ra0〜Ramの何れか1つの一方の端子に接続させる。
図4のDAC2c1aの例では、抵抗素子R0〜Rmは、バッファ回路32,33の出力端子の間に直列に接続されている。また、デコーダ35は、デジタル加算回路2b1での加算結果z1dを受けると、加算結果z1dの大きさに対応したアナログ信号z1が出力されるように、スイッチSW1〜SWmの何れか1つをオンする。
バッファ回路32の出力端子の電圧をVrefa=kG×Vref(バッファ回路33の出力端子の電圧を−Vrefa=kG×−Vref)とすると、アナログ信号z1の振幅値z1Bは、以下の式(3)のように表される。
1B=2×(z1dA+0.5)/2m)×Vrefa−Vrefa=kG{2×(z1dA+0.5)/2m)×Vref−Vref} (3)
制御部34は、シミュレーテッドアニーリングが行われる際、制御回路4からの制御信号を受け、Vrefaが大きくなるように(kGが大きくなるように)、バッファ回路32,33の接続先を決定することで、振幅値z1Bを増加させることができる。
次に、図1に示した重み値w1n〜wn1の学習方法の一例を説明する。
(学習方法)
ボルツマンマシンにおける重み値の学習の際には、ネットワークに含まれる任意のi番目のユニットとj番目のユニットが同時に発火する(状態が1となる)確率Pijを用いて重み値が変更される。たとえば、以下のような回路を用いて重み値の学習が実現される。
図5は、重み値を学習する回路を含むボルツマンマシン回路の一例を示す図である。
図5に示すボルツマンマシン回路1aにおいて、図1に示したボルツマンマシン回路1と同様の要素については同一符号が付されている。
なお、図5には、回路部2a1,2anの出力に対して適用する重み値w1n,wn1を学習する回路の例を示しているが、他の回路部(ユニット)の出力に対して適用する重み値を学習する場合についても同様の回路が用いられる。
ボルツマンマシン回路1aは、AND回路40、カウンタ回路41、エンコーダ42、記憶部43、AND回路44,45を有している。
AND回路40は、回路部2a1,2anの出力と、ボルツマンマシン回路1aの外部から供給されるクロック信号CLKを受け、これらのAND論理演算結果を出力する。
カウンタ回路41は、AND回路40が1となる回数を計数する。
エンコーダ42は、カウンタ回路41での計数結果に基づき重み値w1n,wn1を生成する。
記憶部43は、カウンタ回路41での計数結果と、エンコーダ42で生成された重み値w1n,wn1を記憶する。
AND回路44は、図1に示したデジタル演算回路3a1に相当し、回路部2a1の出力(状態s1)と、重み値w1nとのAND論理演算結果を、1か0のデジタル値として回路部2anに供給する。
AND回路45は、図1に示したデジタル演算回路3anに相当し、回路部2anの出力(状態sn)と、重み値wn1とのAND論理演算結果を、1か0のデジタル値として回路部2a1に供給する。
このようなボルツマンマシン回路1aでは、回路部2a1,2anが同時に1になる確率P1nは、以下の式(4)で表せる。
1n=C/(t×fCK) (4)
式(4)において、Cは、カウンタ回路41の計数値、tは、カウンタ回路41での計数時間、fCKは、クロック信号CLKの周波数を示している。
重み値w1n〜wn1の学習に際して、制御回路4は、DAC2c1〜2cnの出力を制御して、回路部2a1〜2anの状態s1〜snを学習したい特定のビットパターンに設定する。その後、制御回路4は、シミュレーテッドアニーリングを行い、回路部2a1〜2anによるネットワークを熱平衡状態とする(たとえば、図1のDAC出力振幅=maxの状態)。
エンコーダ42は、このときの回路部2a1,2anが同時に1になる確率P1nを式(4)に基づき求める。
さらに、制御回路4は、学習したいビットパターンを変更して、同様の処理でネットワークを熱平衡状態とする。そして、エンコーダ42は、確率P1nを再度求め(再度求めたものを確率Pa1nとする)、確率P1nと確率Pa1nとの差分に基づき、重み値w1n,wn1を調整する。
ボルツマンマシン回路1aは、上記のような処理を繰り返して、たとえば、確率P1nと確率Pa1nとの差分が所定の値より小さくなったところで、学習を終える。
以上のように、本実施の形態のボルツマンマシン回路1aを用いて、重み値の学習が可能である。
(第2の実施の形態)
図6は、第2の実施の形態のボルツマンマシン回路の一例を示す図である。
ボルツマンマシン回路50は、回路部51a1〜51anと、デジタル演算回路52a1〜52anと、制御回路53とを有している。
回路部51a1〜51anは、前述したボルツマンマシンのネットワークに含まれるn個のユニットに対応している。回路部51a1〜51anのそれぞれは、回路部51a1〜51anのうち、自身以外の回路部の出力に基づくデジタル値を加算する。そして、回路部51a1〜51anのそれぞれは、閾値b1〜bnと比較する判定閾値z1t〜zntの値を加算結果に基づき生成(決定)し、閾値b1〜bnと判定閾値z1t〜zntの値との比較結果を出力する。
たとえば、回路部51a1,51anは、デジタル加算回路51b1,51bn、閾値調整機能付きの比較回路51c1,51cnを有している。
デジタル加算回路51b1は、回路部51a1〜51anのうち、回路部51a1以外の回路部の出力に基づくデジタル値を加算する。デジタル加算回路51bnは、回路部51a1〜51anのうち、回路部51an以外の回路部の出力に基づくデジタル値を加算する。
比較回路51c1は、加算結果z1dに基づき判定閾値z1tを生成し、判定閾値z1tと閾値b1との比較に基づき、1か0の比較結果を回路部51a1の状態s1として出力する。比較回路51cnは、加算結果zndに基づき判定閾値zntを生成し、判定閾値zntと、閾値bnとの比較に基づき、1か0の比較結果を回路部51anの状態snとして出力する。
回路部51a1〜51anのうち、回路部51a1,51an以外の回路部についても同様の要素を有している。
デジタル演算回路52a1〜52anは、図1に示したデジタル演算回路3a1〜3anと同様の機能を有するため説明を省略する。
制御回路53は、回路部51a1〜51anのそれぞれにおける、デジタル加算回路51b1〜51bnでの加算結果z1d〜zndの変化に対する判定閾値z1t〜zntの変化の度合いを増加させていく。これによって、制御回路53は、等価的にアニーリングを行う。制御回路53は、たとえば、プロセッサである。
たとえば、制御回路53は、比較回路51c1〜51cnのゲインを徐々に増加させることで、加算結果z1d〜zndの変化に対する判定閾値z1t〜zntの変化の度合いを増加させる。
加算結果z1d〜zndの変化に対する判定閾値z1t〜zntの変化の度合いを増加させることが、アニーリング(シミュレーテッドアニーリング)を行うことに相当する理由については後述する。
以下、本実施の形態のボルツマンマシン回路50の各回路部51a1〜51anに含まれる比較回路51c1〜51cnの例を説明する。なお、以下では、比較回路51c1〜51cnのうち、比較回路51c1に着目して説明を行うが、他の比較回路についても同様である。
(比較回路の例)
図7は、閾値調整機能付きの比較回路の一例を示す図である。
なお、図7の比較回路51c1の差動の入力信号である閾値b1(+),b1(−)は、図6に示した閾値b1に対応している。また、比較回路51c1の差動の出力信号である状態s1(+),s1(−)は、図6に示した状態s1に対応している。
比較回路51c1は、ゲイン制御部61,62,63、閾値制御部64、65、トランジスタ66,67,68,69,70,71,72,73,74,75,76,77,78を有している。トランジスタ66〜69,72,74,75,76は、pチャネル型MOSFETであり、トランジスタ70,71,73,77,78は、nチャネル型MOSFETである。
ゲイン制御部61は、トランジスタ61a,61bを有している。トランジスタ61a,61bは、pチャネル型MOSFETである。トランジスタ61aのソースは、トランジスタ61bのドレインに接続されており、トランジスタ61aのドレインは、トランジスタ66,67のドレイン、トランジスタ69,71のゲート、トランジスタ70のドレイン、閾値制御部64に接続されている。トランジスタ61aのゲートは、図6に示した制御回路53に接続されている。トランジスタ61aは、制御回路53から供給される制御信号kGに応じてオンまたはオフする。トランジスタ61bのソースには、電源電圧Vddが印加され、トランジスタ61bのゲートは、ゲイン制御部63、閾値制御部64、トランジスタ66のゲート、トランジスタ75,77のドレインに接続されている。
図示を省略しているが、ゲイン制御部61は、上記のような接続のトランジスタ61a,61bの組みと同様のものを他にも1組以上有しており、複数ビットの制御信号kGによってオンする組みが選択される。
ゲイン制御部62は、トランジスタ62a,62bを有している。トランジスタ62a,62bは、pチャネル型MOSFETである。トランジスタ62aのソースは、トランジスタ62bのドレインに接続されており、トランジスタ62aのドレインは、トランジスタ68,69のドレイン、トランジスタ67,70のゲート、トランジスタ71のドレイン、閾値制御部65に接続されている。トランジスタ62aのゲートは、図6に示した制御回路53に接続されている。トランジスタ62aは、制御回路53から供給される制御信号kGに応じてオンまたはオフする。トランジスタ62bのソースには、電源電圧Vddが印加され、トランジスタ62bのゲートは、ゲイン制御部63、閾値制御部65、トランジスタ68のゲート、トランジスタ76,78のドレインに接続されている。
ゲイン制御部61と同様、ゲイン制御部62も、上記のような接続のトランジスタ62a,62bの組みと同様のものを他にも1組以上有しており、複数ビットの制御信号kGによってオンする組みが選択される。
ゲイン制御部63は、pチャネル型トランジスタであるトランジスタ63a,63bを有している。トランジスタ63a,63bのソースは、トランジスタ74のドレイン、トランジスタ75,76のソースに接続されている。トランジスタ63aのドレインは、トランジスタ61b,66のゲート、閾値制御部64、トランジスタ75,77のドレインに接続されている。トランジスタ63bのドレインは、トランジスタ62b,68のゲート、閾値制御部65、トランジスタ76,78のドレインに接続されている。トランジスタ63a,63bのゲートは、図6に示した制御回路53に接続されている。トランジスタ63a,63bは、制御回路53から供給される制御信号kGに応じてオンまたはオフする。
図示を省略しているが、ゲイン制御部63も、上記のような接続のトランジスタ63a,63bの組みと同様のものを他にも1組以上有しており、複数ビットの制御信号kGによってオンする組みが選択される。
閾値制御部64は、トランジスタ64a,64bを有している。また、閾値制御部65は、トランジスタ65a,65bを有している。トランジスタ64a,64b,65a,65bは、pチャネル型MOSFETである。
トランジスタ64aのソースは、トランジスタ61a,66,67,70のドレイン、トランジスタ69,71のゲートに接続されている。トランジスタ65aのソースは、トランジスタ62a,68,69,71のドレイン、トランジスタ67,70のゲートに接続されている。トランジスタ64aのドレインは、トランジスタ64bのソースに接続されている。トランジスタ65aのドレインは、トランジスタ65bのソースに接続されている。トランジスタ64aのゲートは、デジタル加算回路51b1に接続されている。トランジスタ63aは、デジタル加算回路51b1から供給される加算結果z1dに応じてオンまたはオフする。トランジスタ65aのゲートには、加算結果z1dの値の論理レベルを反転した値z1daが供給される。トランジスタ64b,65bのドレインは、トランジスタ70,71のソース、トランジスタ72,73のドレインに接続されている。
トランジスタ66〜69のソースには、電源電圧Vddが印加されている。トランジスタ66,67のドレインは、トランジスタ61a,70のドレイン、トランジスタ64aのソース、トランジスタ69,71のゲートに接続されている。トランジスタ68,69のドレインは、トランジスタ62a,71のドレイン、トランジスタ65aのソース、トランジスタ67,70のゲートに接続されている。
トランジスタ66のゲートは、トランジスタ61bのゲート、トランジスタ64bのゲート、トランジスタ63a,75,77のドレインに接続されている。トランジスタ67のゲートは、トランジスタ62a,68,69,71のドレイン、トランジスタ65aのソースに接続されている。トランジスタ68のゲートは、トランジスタ62bのゲート、トランジスタ65bのゲート、トランジスタ63b,76,78のドレインに接続されている。トランジスタ69のゲートは、トランジスタ61a,66,67,70のドレイン、トランジスタ64aのソースに接続されている。
トランジスタ70のドレインは、トランジスタ61a,66,67のドレイン、トランジスタ64aのソース、トランジスタ69,71のゲートに接続されている。トランジスタ71のドレインは、トランジスタ62a,68,69のドレイン、トランジスタ65aのソース、トランジスタ67,70のゲートに接続されている。トランジスタ70,71のソースは、トランジスタ64b,65b,72,73のドレインに接続されている。トランジスタ70のゲートは、トランジスタ62a,68,69,71のドレイン、トランジスタ65aのソース、トランジスタ67のゲートに接続されている。トランジスタ71のゲートは、トランジスタ61a,66,67,70のドレイン、トランジスタ64aのソース、トランジスタ69のゲートに接続されている。
トランジスタ72のソースには、電源電圧Vddが印加される。トランジスタ72,73のドレインは、トランジスタ64b,65bのドレイン、トランジスタ70,71のソースに接続されており、トランジスタ72,73のゲートには、クロック信号CLKの論理レベルを反転させた信号CLKaが供給される。トランジスタ73のソースは接地されている。
トランジスタ74のソースには電源電圧Vddが印加される。トランジスタ74のドレインとトランジスタ75,76のソースは、トランジスタ63a,63bのソースに接続されている。トランジスタ74のゲートには、クロック信号CLKが供給される。トランジスタ75のゲートには、閾値b1(+)が供給され、トランジスタ76のゲートには、閾値b1(−)が供給される。
トランジスタ75のソースとトランジスタ77のドレインには、トランジスタ61b,64b,66のゲート、トランジスタ63aのドレインが接続されている。トランジスタ76のソースとトランジスタ78のドレインには、トランジスタ62b,65b,68のゲート、トランジスタ63bのドレインが接続されている。トランジスタ77,78のゲートにはクロック信号CLKが供給され、トランジスタ77,78のソースは接地されている。
上記のような比較回路51c1において、トランジスタ61a,62aのドレイン電圧が、比較回路51c1の出力である状態s1(+),s1a(−)となる。
以下、比較回路51c1の動作例を説明する。まず、通常の比較動作を説明する。ゲイン制御部61〜63、閾値制御部64を用いた動作については後述する。
クロック信号CLKの論理レベルがH(High)レベルのとき、トランジスタ77,78がともにオンし、トランジスタ66,68のゲート電圧がL(Low)レベルとなるため、状態s1(+),s1a(−)は、電源電圧Vddにプルアップされ、“1”となる。この状態は、比較回路51c1のリセット状態を示す。
クロック信号CLKの論理レベルがHレベルからLレベルに遷移すると、トランジスタ77,78がオフし、トランジスタ74がオンする。これにより、トランジスタ75,76のソースドレイン間に電流が流れる。この電流は、閾値b1(+),b1(−)によって制御される。トランジスタ75のソースドレイン間電流と、トランジスタ76のソースドレイン間電流との差に基づく電位差が、トランジスタ66〜71などによる正帰還ループで増幅され、状態s1(+),s1a(−)は、最終的に電源電圧Vddまたは接地電位となり、判定が終了する。通常の比較動作では、これによって閾値b1(+),b1(−)間の電位の大小が判定される。
次に、閾値制御部64,65を用いた閾値調整動作の例を説明する。
閾値制御部64,65は、デジタル加算回路51b1から供給される加算結果z1dによって、クロック信号CLKの論理レベルがLレベルに切り替わった直後に、状態s1(+),s1a(−)を決めるトランジスタ61a,62aのドレイン側に流れる電流を調整する。これにより、比較結果が反転する閾値b1(+),b1(−)間の電位差(以下、判定閾値z1tという)を調整することができる。
次に、ゲイン制御部61〜63を用いたゲイン調整動作の例を説明する。
ゲイン制御部63では、制御信号kGによって、オンするトランジスタ(たとえば、トランジスタ63a,63b)の数が多いほどゲインが下がる。
逆に電源電圧Vddと接続されているゲイン制御部61,62では、制御信号kGによって、オンするトランジスタ(たとえば、トランジスタ61a,62a)の数が多いほどゲインが上がる(なお、ゲイン制御部61,62間でオンするトランジスタ数は同じ)。
図8は、加算結果に対する判定閾値の変化の差異の一例を示す図である。
横軸は、加算結果z1dを示し、縦軸は、判定閾値z1tを示す。また、直線80は、ゲインが最小のときのz1d−z1t特性を示し、直線81はゲインが最大のときのz1d−z1t特性を示す。
デジタル加算回路51b1から供給される加算結果z1dは、判定閾値z1tを変化させるための制御信号として機能する。直線81では、直線80よりも、加算結果z1dの変化に対する判定閾値z1tの変化の度合いが大きい。
図6に示した制御回路53は、制御信号kGにより、ゲインを最小から最大に変えることで、加算結果の変化に対する度合を、直線80で示される度合いから、直線81の度合いまで増加させることができる。
図9は、回路部51a1の状態s1が1になる確率Pを示している。
縦軸は、確率Pを示しており、横軸は、判定閾値z1tを示している。波形82のように、判定閾値z1tが閾値b1より大きいほど、状態s1が1になる確率Pが大きくなり、判定閾値z1tが閾値b1より小さいほど、確率Pは小さくなる。判定閾値z1tが閾値b1に近いほど、状態s1が1になる場合と0になる確率が等しくなる。このような特性は、比較回路51c1のデバイスノイズに基づくものである。
前述したように、シミュレーテッドアニーリングは、温度パラメータを徐々に小さくすることによって、各ユニットが1または0の一方を出力する確率を、徐々に大きくするものである。
第2の実施の形態のボルツマンマシン回路50は、図9に示すように、ゲインを増加することによって、比較回路51c1の判定閾値z1tの変化の幅を増加させて、状態s1が1または0の一方になる確率を等価的に大きくする。
制御回路53は、比較回路51c1のゲインを増加させて、判定閾値z1tをz1tminaから、マイナス方向に増加させてz1tminbとし、z1tmaxaから、プラス方向に増加させて、z1tmaxbとする。これにより、判定閾値z1tに基づき状態s1が1または0の一方になる確率が等価的に大きくなる。つまり、判定閾値z1tの変化の幅を増加させることが、温度パラメータを小さくすることに相当し、等価的にシミュレーテッドアニーリングを行うことが可能となる。
図10は、シミュレーテッドアニーリングにより最適解を求める際の、第2の実施の形態のボルツマンマシン回路の動作例を示す図である。
図10には、制御信号kGがMin(ゲイン最小)、Mid(>Min)、Max(>Mid)(ゲイン最大)のときのエネルギー波形90,91,92の一例の様子が示されている。縦軸はエネルギーEであり、横軸はn個の回路部51a1〜51anの状態s1〜snの組み合わせsKを示している。また、図10には、前述したような比較回路51c1〜51cnのデバイスノイズに基づく判定結果のばらつきで生じる、エネルギーEのばらつきwaの例が示されている。
制御信号kGがMinのとき、エネルギー波形90は、ばらつきwaの範囲に収まっている。この場合、エネルギーEを最小にする解(組み合わせsK)への収束はなされない。
制御信号kGがMidのとき、エネルギー波形91において、組み合わせsKが組み合わせsKaのとき、エネルギーEは、ばらつきwaの範囲に収まっているため、この解(局所解)への収束はなされない。一方、組み合わせsKが組み合わせsKbのとき、エネルギーEは、ばらつきw2の範囲外となるため、この解へ収束されていく。
制御信号kGがMaxのとき、エネルギー波形92において、組み合わせsKbへの収束が終わり、最適解として、組み合わせsKbが得られる。
このように、制御信号kGによって、比較回路51c1〜51cnのゲインを増加させ、加算結果z1d〜zndの変化に対する判定閾値z1t〜zntの変化の度合いを増加させていくことは、高い温度から低い温度に変化させていくアニーリングに相当する。
以上のように、本実施の形態のボルツマンマシン回路50は、各回路部51a1〜51anの比較回路51c1〜51cnにおける判定閾値z1t〜zntの変化の度合いを増加し、比較回路51c1〜51cnのノイズを利用して等価的にアニーリングを行う。これによって、第1の実施の形態のボルツマンマシン回路1と同様の効果が得られるとともに、DACが不要となるため、さらに、回路規模を縮小できる。
なお、第2の実施の形態のボルツマンマシン回路50でも、図5に示したような回路を用いて、重み値を学習することができる。
以上、実施の形態に基づき、本発明のボルツマンマシン回路の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
1 ボルツマンマシン回路
2a1〜2an 回路部(ユニット)
2b1〜2bn デジタル加算回路
2c1〜2cn DAC
2d1〜2dn 比較回路
3a1〜3an デジタル演算回路
4 制御回路
10〜12 エネルギー波形

Claims (5)

  1. それぞれが、自身以外の出力に基づく第1の値を加算して、加算結果をアナログ信号に変換し、前記アナログ信号と第2の値とを比較し、比較結果を出力する複数の回路部と、
    前記複数の回路部のそれぞれから出力される前記比較結果に対して、重み値を乗じて前記第1の値を生成する複数の演算回路と、
    前記複数の回路部のそれぞれが生成する前記アナログ信号の振幅を増幅させていくことで、等価的にアニーリングを行う制御回路と、
    を有することを特徴とするボルツマンマシン回路。
  2. 前記複数の回路部のそれぞれは、
    デジタル値である前記第1の値を加算するデジタル加算回路と、
    前記デジタル加算回路から出力される前記加算結果を前記アナログ信号に変換するデジタルアナログ変換回路と、
    前記デジタルアナログ変換回路から出力される前記アナログ信号と前記第2の値とを比較する比較回路と、
    を有することを特徴とする請求項1に記載のボルツマンマシン回路。
  3. 前記制御回路は、前記デジタルアナログ変換回路のゲインを増加することで、前記アナログ信号の前記振幅を増幅させることを特徴とする請求項2に記載のボルツマンマシン回路。
  4. それぞれが、自身以外の出力に基づく第1の値を加算して、加算結果に基づき第2の値を生成し、前記第2の値と第3の値とを比較し、比較結果を出力する複数の回路部と、
    前記複数の回路部のそれぞれから出力される前記比較結果に対して、重み値を乗じて前記第1の値を生成する複数の演算回路と、
    前記複数の回路部のそれぞれにおける前記加算結果の変化に対する前記第2の値の変化の度合いを増加させていくことで、等価的にアニーリングを行う制御回路と、を有し、
    前記複数の回路部のそれぞれは、
    デジタル値である前記第1の値を加算するデジタル加算回路と、
    前記デジタル加算回路から出力される前記加算結果に基づき前記第2の値を生成し、前記第2の値と前記第3の値とを比較する比較回路と、
    を有することを特徴とするボルツマンマシン回路。
  5. 前記制御回路は、前記比較回路のゲインを増加することで、前記加算結果の変化に対する前記第2の値の変化の度合いを増加させることを特徴とする請求項に記載のボルツマンマシン回路。
JP2015131035A 2015-06-30 2015-06-30 ボルツマンマシン回路 Active JP6471629B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015131035A JP6471629B2 (ja) 2015-06-30 2015-06-30 ボルツマンマシン回路
US15/130,377 US10007877B2 (en) 2015-06-30 2016-04-15 Boltzmann machine circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015131035A JP6471629B2 (ja) 2015-06-30 2015-06-30 ボルツマンマシン回路

Publications (2)

Publication Number Publication Date
JP2017016302A JP2017016302A (ja) 2017-01-19
JP6471629B2 true JP6471629B2 (ja) 2019-02-20

Family

ID=57683069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015131035A Active JP6471629B2 (ja) 2015-06-30 2015-06-30 ボルツマンマシン回路

Country Status (2)

Country Link
US (1) US10007877B2 (ja)
JP (1) JP6471629B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6524933B2 (ja) * 2016-02-03 2019-06-05 富士通株式会社 ボルツマンマシン、ボルツマンマシンの制御方法及びボルツマンマシンを有する情報処理装置
JP2020009123A (ja) 2018-07-06 2020-01-16 ソニー株式会社 積和演算装置、積和演算回路及び積和演算方法
US11610105B2 (en) * 2019-04-17 2023-03-21 Hewlett Packard Enterprise Development Lp Systems and methods for harnessing analog noise in efficient optimization problem accelerators

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2552711B2 (ja) 1988-07-15 1996-11-13 富士通株式会社 ボルツマンマシン型ニューロコンピュータシステム
JPH07248841A (ja) * 1994-03-09 1995-09-26 Mitsubishi Electric Corp 非線形関数発生装置およびフォーマット変換装置
US6469957B1 (en) * 2000-10-18 2002-10-22 Koninklijke Philips Electronics N.V. Arbitrary signal generator for driving ultrasonic transducers
JP5807549B2 (ja) 2012-01-10 2015-11-10 富士通株式会社 比較回路およびa/d変換回路
JP5942798B2 (ja) 2012-11-12 2016-06-29 富士通株式会社 比較回路およびa/d変換回路

Also Published As

Publication number Publication date
US10007877B2 (en) 2018-06-26
US20170004398A1 (en) 2017-01-05
JP2017016302A (ja) 2017-01-19

Similar Documents

Publication Publication Date Title
JP5563154B2 (ja) 広いコモンモード入力範囲を有する差動比較回路
JP5835005B2 (ja) D/a変換器
JP6471629B2 (ja) ボルツマンマシン回路
JP2007281876A (ja) 比較回路及びその増幅回路
JPH0884077A (ja) アナログ/デジタル変換装置
US20170220924A1 (en) Boltzmann machine, method for controlling boltzmann machine, and information processing device having boltzmann machine
JP5566211B2 (ja) スイッチドキャパシタ型d/aコンバータ
JP2010258577A (ja) 補間型a/d変換器
US20180241592A1 (en) Decision feedback equalizer and interconnect circuit
WO2018055666A9 (ja) インターフェース回路
US20080291068A1 (en) Current output circuit with bias control and method thereof
JP6464638B2 (ja) 送信回路および半導体集積回路
JP4537840B2 (ja) 電流源セルおよびそれを用いたd/aコンバータ
CN106253906A (zh) 具有改进性能的用于数字模拟转换的装置和相关方法
JP4080488B2 (ja) A/d変換器
JP2008219655A (ja) レールトゥレール型増幅回路及び半導体装置
US6198421B1 (en) Neural-flash analog-to-digital converter using weighted current similation
JP2012019501A (ja) 半導体集積回路、閾値設定方法、及び通信装置
US9973204B1 (en) Resistor string digital to analog converter
Youssefi et al. Tunable neuron with PWL approximation based on the minimum operator
JP2007243656A (ja) A/d変換器
JP2019191930A (ja) ニューラルネットワーク回路
JP2014176040A (ja) 差動出力回路、並びに高速シリアル通信用半導体ic及び高速シリアル通信システム
US10281505B2 (en) Low-power and compact voltage sensing circuit
KR100912967B1 (ko) 센스증폭기 및 반도체메모리장치의 수신회로

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181002

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181128

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: 20181225

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190107

R150 Certificate of patent or registration of utility model

Ref document number: 6471629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150