(57)【要約】【課題】加算のための積分回路が不要で、小型で低消費電力であり集積回路として実装可能なボルツマンマシンを提供する。【解決手段】本発明のボルツマンマシンは、格子状の信号線の各格子点に１つずつ配置されたシナプス回路と、格子状の信号線の隣接する２つの列の間に１つずつ配線された列状の追加の信号線と、追加の信号線の各々に１つずつ接続するニューロン回路であって、各々が接続する追加の信号線に隣接する一方の列の信号線にも接続するニューロン回路と、を備える。追加の信号線の各々は格子状の信号線の１つの行に接続し、当該信号線の１つの行上の複数のシナプス回路の出力が当該追加の信号線に接続するニューロン回路の入力となり、当該ニューロン回路の出力は接続する一方の列の信号線上の複数のシナプス回路の入力となる。【選択図】図１
2020013350.tif 000002
【特許請求の範囲】
【請求項１】
ボルツマンマシンであって、
格子状の信号線の各格子点に１つずつ配置されたシナプス回路と、
前記格子状の信号線の隣接する２つの列の間に１つずつ配線された列状の追加の信号線と、
前記追加の信号線の各々に１つずつ接続するニューロン回路であって、各々が接続する追加の信号線に隣接する一方の列の信号線にも接続するニューロン回路と、を備え、
前記追加の信号線の各々は前記格子状の信号線の１つの行に接続し、当該信号線の１つの行上の複数の前記シナプス回路の出力が当該追加の信号線に接続する前記ニューロン回路の入力となり、当該ニューロン回路の出力は接続する前記一方の列の信号線上の複数のシナプス回路の入力となる、ボルツマンマシン。
【請求項２】
前記シナプス回路は、前記一方の列の信号線を介して接続する前記ニューロン回路の出力を受けて動作する、スイッチング可能な正の可変電流源及びと負の可変電流源を含む、請求項１に記載のボルツマンマシン。
【請求項３】
前記正の可変電流源はＰ型のＦｅＦＥＴまたはフローティングゲートトランジスタを含み、前記負の可変電流源はＮ型のＦｅＦＥＴまたはフローティングゲートトランジスタを含む、請求項２に記載のボルツマンマシン。
【請求項４】
前記シナプス回路は、前記一方の列の信号線を介して接続する前記ニューロン回路の出力を受けて動作する、カレントミラー回路と２つのスイッチング可能な可変電流源を含む、請求項１に記載のボルツマンマシン。
【請求項５】
前記２つのスイッチング可能な可変電流源は、Ｐ型またはＮ型のＦｅＦＥＴまたはフローティングゲートトランジスタを含む、請求項４に記載のボルツマンマシン。
【請求項６】
前記ニューロン回路は、前記追加の信号線を介して接続する前記格子状の信号線の１つの行上の前記複数のシナプス回路の出力を受けて動作する同期比較器を含む、請求項１〜５のいずれか１項に記載のボルツマンマシン。
【請求項７】
前記同期比較器は、前記複数のシナプス回路の出力の合計値と所定のしきい値の比較結果に応じて所定のタイミングでパルス信号を出力する、請求項６に記載のボルツマンマシン。
【請求項８】
前記所定のタイミングを制御するためのタイミング制御回路をさらに含む、請求項７に記載のボルツマンマシン。
【請求項９】
前記タイミング制御回路は、前記同期比較器の前記パルス信号が複数のニューロン状態を表すように前記所定のタイミングを制御する、請求項８に記載のボルツマンマシン。
【請求項１０】
前記格子状の信号線の各行に１つずつ接続し、前記ニューロン回路の各々にノイズ信号を送るためのノイズ注入回路をさらに含む、請求項１〜８のいずれか１項に記載のボルツマンマシン。
【請求項１１】
前記ノイズ注入回路は、所定の制御信号を受けて動作する、直列接続する正の電流源と負の電流源を含む、請求項１０に記載のボルツマンマシン。
【請求項１２】
前記所定の制御信号を生成するための疑似乱数発生回路とスイッチング回路をさらに含む、請求項１１に記載のボルツマンマシン。
【請求項１３】
請求項１〜１２のいずれか１項に記載のボルツマンマシンを含む集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ボルツマンマシンに関し、より具体的には、ボルツマンマシンを集積回路上に実現するための回路技術に関する。
【背景技術】
【０００２】
組み合わせ最適化問題は、実社会で様々に応用される問題である一方、従来のノイマン型コンピュータでは高速に解く事が難しいとされている。ボルツマンマシンは、人間の神経細胞(ニューロン)をモデルにしたニューラルネットワークの一つであり、巡回セールスマン問題等の組み合わせ最適化問題を高速に実行する事が期待されている。特にボルツマンマシンは、ハードウェア化が容易で、さらに現在開発が進んでいる抵抗可変素子のようなアナログ記憶素子を用いる事で小型・低電力化が可能である。
【０００３】
特許文献１は、ニューロン素子として抵抗変化型可変抵抗素子を備えた積演算装置を用いたニューラルネットワークを開示する。しかし、特許文献１の積演算装置は、積分回路(オペアンプ)が必要で、負の重みを実現するのも簡単ではない。
【０００４】
特許文献２は、シナプス回路が３端子アナログ記憶素子からなる可変抵抗素子を備え、ニューロン回路が積分回路や波形発生回路を備えるニューラルネットワーク回路の学習方法を開示する。しかし、特許文献２のニューロン回路では、積分回路を用いており、負の重みについても考慮されていない。
【０００５】
特許文献３は、確率的ニューロンの回路実装例として、ボルツマン型ニューロコンピュータシステムを開示する。しかし、特許文献３のシステムでは、アナログ雑音源を増幅して、ニューロンにノイズを与える事で、確率的な動作を実現している。この方式では、ニューロン毎にアナログ増幅器(アンプ)が必要で、面積・電力コストが大きい。また、雑音源をどのように用意するかという問題もある。
【０００６】
特許文献４は、抵抗の熱雑音をノイズのソースとして使用してランダムノイズの振幅の変化を行うボルツマンマシンを開示する。特許文献４のボルツマンマシンでは、比較器を使用する事で増幅器は不要の構造になっている。しかし、特許文献４のボルツマンマシンでは、容量を用いた引き算を行っており、制御回路部分が複雑になるという問題がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−２８２７８２
【特許文献２】特開２０１３−５１３４６７
【特許文献３】特開平２−２７４９３
【特許文献４】特開２０１７−１３８７６０
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、加算のための積分回路が不要で、小型で低消費電力であり集積回路として実装可能なボルツマンマシンを提供することである。
【課題を解決するための手段】
【０００９】
本発明のボルツマンマシンは、格子状の信号線の各格子点に１つずつ配置されたシナプス回路と、格子状の信号線の隣接する２つの列の間に１つずつ配線された列状の追加の信号線と、追加の信号線の各々に１つずつ接続するニューロン回路であって、各々が接続する追加の信号線に隣接する一方の列の信号線にも接続するニューロン回路と、を備える。追加の信号線の各々は格子状の信号線の１つの行に接続し、当該信号線の１つの行上の複数のシナプス回路の出力が当該追加の信号線に接続するニューロン回路の入力となり、当該ニューロン回路の出力は接続する一方の列の信号線上の複数のシナプス回路の入力となる。
【００１０】
本発明の一態様のボルツマンマシンのシナプス回路は、一方の列の信号線を介して接続する前記ニューロン回路の出力を受けて動作する、スイッチング可能な正の可変電流源及び負の可変電流源を含む。本発明の一態様のボルツマンマシンのシナプス回路は、一方の列の信号線を介して接続するニューロン回路の出力を受けて動作する、カレントミラー回路と２つのスイッチング可能な可変電流源を含む。
【００１１】
本発明の一態様のボルツマンマシンのニューロン回路は、追加の信号線を介して接続する格子状の信号線の１つの行上の複数のシナプス回路の出力を受けて動作する同期比較器を含む。本発明の一態様のボルツマンマシンのニューロン回路は、所定のタイミングを制御するためのタイミング制御回路をさらに含む。
【発明の効果】
【００１２】
本発明のボルツマンマシンによれば、従来のボルツマンマシンではニューロン数が増えると配線が混み合い破綻するという問題を回避でき、ニューロン数が増加しても対応可能な構造を得ることができる。本発明の一態様のボルツマンマシンによれば、加算のための積分回路が不要で、シナプス回路にスイッチング可能な可変電流源を用い、ニューロン回路に同期比較器を用いることにより、小型で低消費電力な回路として集積回路上に実装することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態のボルツマンマシンの構成とその動作を示す図である。
【図２】本発明の一実施形態のシナプス回路の構成を示す図である。
【図３】本発明の一実施形態のシナプス回路の動作を説明するための図である。
【図４】本発明の一実施形態のシナプス回路の動作を説明するための図である。
【図５】本発明の一実施形態のシナプス回路の動作を説明するための図である。
【図６】本発明の一実施例のニューロン回路の構成を示す図である。
【図７】図６の本発明の一実施形態のニューロン回路のクロック同期パルス発生器の構成を示す図である。
【図８】図６の本発明の一実施形態のニューロン回路の同期比較器の構成を示す図である。
【図９】本発明の他の一実施形態のシナプス回路の構成を示す図である。
【図１０】本発明の他の一実施形態のシナプス回路の構成を示す図である。
【図１１】本発明の一実施形態のノイズ回路を含むボルツマンマシンの構成を示す図である。
【図１２】図１１の本発明の一実施形態のボルツマンマシンの発火条件を説明するための図である。
【図１３】図１１の本発明の一実施形態のノイズ回路を含むボルツマンマシンの詳細構成を示す図である。
【図１４】本発明の他の一実施形態のボルツマンマシンのニューロン回路の発火動作のタイミングを示す図である。
【図１５】図１４のニューロン回路の発火動作のタイミングを実現するためのニューロン回路の構成を示す図である。
【発明を実施するための形態】
【００１４】
図面を参照しながら本発明の実施の形態を説明する。図１は、本発明の一実施形態のボルツマンマシンの構成とその動作を示す図である。図１(ａ)は４個のニューロン回路と１６個のシナプス回路を含む場合の構成例であって、より多くの数のニューロン回路とシナプス回路を含む全体構成の一部として例示されている。したがって、本発明の一実施形態のボルツマンマシンは、その適用(演算)対象に応じて選択された任意の数のニューロン回路とシナプス回路で構成することができる。図１(ａ)の構成では、格子状の信号線の各格子点に白丸(○)として１つずつ配置されたシナプス回路(例として行Ｌ３上の４つがＳ１〜Ｓ４として指示)と、格子状の信号線の隣接する２つの列の間に１つずつ配線された列状の追加の信号線(例として行Ｌ３と交差する信号線Ｌ４を指示)と、追加の信号線の各々に１つずつ接続するニューロン回路Ｎ１〜Ｎ４を含む。
【００１５】
ニューロン回路Ｎ１〜Ｎ４の各々は、接続する追加の信号線に隣接する一方の列の信号線にも接続する。例としてニューロン回路Ｎ１が接続する信号線Ｌ１、Ｌ２を指示している。なお、１つの線を信号線Ｌ１、Ｌ２としているのは、後述するように実際には２つの信号線を含むからである。図中の接点(●)において、追加の信号線の各々は格子状の信号線の１つの行に接続する。信号線の１つの行上の複数のシナプス回路(○)の出力が接点(●)で接続する１つの列状の追加の信号線を介して１つのニューロン回路の入力となる。例えば、信号線Ｌ３上の４つのシナプス回路Ｓ１〜Ｓ４の出力は、接点(●)Ｐ１で信号線Ｌ３と接続する追加の信号線Ｌ４を介してニューロン回路Ｎ４の入力となる。各ニューロン回路の出力は、接続する追加の信号線に隣接する一方の列の信号線を介してその一方の列の信号線上のシナプス回路(○)の入力となる。例えば、ニューロン回路Ｎ１の出力は信号線Ｌ１、Ｌ２上の４つの列状のシナプス回路(○)の入力となる。
【００１６】
図１(ｂ)は、(ａ)のニューロン回路の入力と出力(発火)の様子を模擬したタイミングチャートである。(ｂ)ではニューロン回路Ｎ４の入出力を例示している。他のニューロン回路Ｎ１〜Ｎ３においても動作は同様である。ニューロン回路Ｎ４の入力として、信号線Ｌ３上の４つのシナプス回路Ｓ１〜Ｓ４の出力を合算した出力(図の一番下の波形)が入力される。所定のタイミング(ＣＬＫ)においてニューロン回路Ｎ４の入力電圧Ｖiと発火閾値電圧ＶTが比較される。入力電圧Ｖiが発火閾値電圧ＶTを超えた場合にニューロン回路Ｎ４は発火して、最初に所定の負のパルス(ＥＸＥ)を出力し、続けて所定の正のパルス(ＩＮＨ)を出力する。この２つの出力パルス(ＥＸＥ、ＩＮＨ)は、接続する左隣の追加の信号線上のシナプス回路(○)に入力される。
【００１７】
図２は、本発明の一実施形態のシナプス回路の構成を示す図である。図２では、図１(ａ)の信号線Ｌ３上の４つのシナプス回路Ｓ１〜Ｓ４の場合の例としてその構成を示している。４つのシナプス回路Ｓ１〜Ｓ４は全て同じ構成を有する。なお、シナプス回路Ｓ３は省略されている。図２の右端には、シナプス回路と同じ構成からなる、ニューロン回路の入力に加算されるバイアス項重みを表すバイアス電流Ｉ+Bn、Ｉ-Bnを作るための回路も記載されている。
【００１８】
シナプス回路Ｓ１を例にとりその構成を説明する。シナプス回路Ｓ１は、電源ＶDDとグランドの間に直列接続する、ｐ型トランジスタＴ１、ｐ型の３端子素子Ｔ２、ｎ型の３端子素子Ｔ３、及びｎ型トランジスタＴ４を含む。ｐ型トランジスタＴ１とｎ型トランジスタＴ４は、例えばＭＯＳＦＥＴ(ＣＭＯＳ)を用いることができる。ｐ型の３端子素子Ｔ２とｎ型の３端子素子Ｔ３は、例えばＦｅＦＥＴやフローティングゲートトランジスタなど特性可変のトランジスタを用いる事ができる。ｐ型の３端子素子Ｔ２とｎ型の３端子素子Ｔ３には、両者を電流源として動作させるために所定の負のバイアス電圧ＶBPと所定の正のバイアス電圧ＶBNがボルツマンマシンの動作中は定常的に印加される。
【００１９】
ｐ型の３端子素子Ｔ２とｎ型の３端子素子Ｔ３のペアは、信号線Ｌ３に接続する他のシナプス回路Ｓ２〜Ｓ４の３端子素子ペアと共に可変電流源として機能する。ｐ型トランジスタＴ１には信号線Ｌ２を介してニューロン回路Ｎ１の負の出力パルス(ＥＸＥ)が入力され、ｎ型トランジスタＴ４には信号線Ｌ１を介してニューロン回路Ｎ１の正の出力パルス(ＩＮＨ)が入力されるようになっている。シナプス回路Ｓ１の出力電流(Ｉ+n0＋Ｉ-n0)は、信号線Ｌ３及び接点Ｐ１で接続する追加の信号線Ｌ４を介してニューロン回路Ｎ４に入力される。
【００２０】
図３は、本発明の一実施形態のシナプス回路の動作を説明するための図(等価回路)である。図３(ａ)のスイッチＳ1、Ｓ2・・・のオン・オフ動作は、図２のシナプス回路Ｓ１、Ｓ２、・・のｐ型トランジスタＴ１とｎ型トランジスタＴ４のオン・オフ動作、すなわちニューロン回路の出力パルス(ＩＮＨ、ＥＸＥ)によるスイッチング(オン、オフ)動作に相当する。電流源Ｉ1、Ｉ2、・・は、図２のシナプス回路Ｓ１、Ｓ２、・・のｐ型の３端子素子Ｔ２とｎ型の３端子素子Ｔ３のペアからなる電流源に相当する。
【００２１】
電流源Ｉ1、Ｉ2、・・の出力電流は積和算されて出力電流Ｉ(＝ΣＩjＳj)としてニューロン回路に入力される。各電流源の電流値Ｉjはシナプス回路が模擬するシナプスの重みＷjに相当する。式中のＳjはスイッチＳ1、Ｓ2・・・のオン・オフ動作(１または０)、言い換えればニューロン回路の発火状態(１または０)に相当する。図３(ｂ)はｎ型の３端子素子Ｔ３として正の入力信号で動作するｎ型のＦｅＦＥＴを用いる場合の一例を示している。なお、図の記載は省略しているが、ｐ型の３端子素子Ｔ２も負の入力信号で動作するｐ型のＦｅＦＥＴを用いることができる。
【００２２】
図４は、本発明の一実施形態のシナプス回路の動作を説明するための図である。図４は、シナプス回路が模擬するシナプスの正の重みＷ+jを実現する動作を示している。図４では、シナプス回路Ｓ０とＳ２のｐ型の３端子素子Ｔ２には所定の負のバイアス電圧ＶBPが印加されており、ｐ型トランジスタＴ１にニューロン回路の発火信号である負のＥＸＥパルス(パルス幅ＴW)が入力されて両者がオンして、２つのシナプス回路の出力電流(Ｉ+0＋Ｉ-2)が信号線Ｌ８に出力される場合を示している。
【００２３】
シナプス回路Ｓ１にはニューロン回路の発火信号は入力されていない。出力電流(Ｉ+0＋Ｉ-2)は追加の信号線Ｌ９を介してニューロン回路に入力され信号線Ｌ８及びＬ９の電位を上げる。その際の入力電圧Ｖ1は配線や素子等の寄生容量ＣとＥＸＥパルスのパルス幅ＴWを用いて、
Ｖ1＝ＴW／Ｃ・(Ｉ+0＋Ｉ-2)        (１)
で与えられる。なお、図１のニューロン回路の入力に加算されるバイアス項重みを表すバイアス電流Ｉ+Bnも基本的に上記したシナプス回路のｐ型トランジスタＴ１とｐ型の３端子素子Ｔ２と同様に負のＥＸＥパルスと負のバイアス電圧ＶBPとによって動作する。
【００２４】
図５は、本発明の一実施形態のシナプス回路の動作を説明するための図である。図５は、シナプス回路が模擬するシナプスの負の重みＷ-jを実現する動作を示している。図５では、シナプス回路Ｓ０とＳ２のｎ型の３端子素子Ｔ３には所定の負のバイアス電圧ＶBNが印加されており、ｎ型トランジスタＴ４にニューロン回路の発火信号である正のＩＮＨパルス(パルス幅ＴW)が入力されて両者がオンして、追加の信号線Ｌ１３及び信号線Ｌ１２からグランドへ向けて２つのシナプス回路の出力電流(Ｉ+0＋Ｉ-2)が流れ込む(信号線Ｌ１２及びＬ１２の電位が下がる)場合を示している。
【００２５】
入力電圧Ｖ2は、配線等の寄生容量ＣとＩＮＨパルスのパルス幅ＴWを用いて、
Ｖ2＝−ＴW／Ｃ・(Ｉ+0＋Ｉ-2)      (２)
で与えられる。なお、図１のニューロン回路の入力に加算されるバイアス項重みを表すバイアス電流Ｉ-Bnも基本的に上記したシナプス回路のｎ型トランジスタＴ４とｎ型の３端子素子Ｔ３と同様に正のＩＮＨパルスと正のバイアス電圧ＶBNとによって動作する。
【００２６】
図４のシナプスの正の重みＷ+jを実現する動作と図５のシナプスの負の重みＷ-jを実現する動作、さらにはニューロン回路の入力に加算されるバイアス項重みを表すバイアス電流Ｉ+Bn、Ｉ-Bnを考慮すると、一般的にニューロン回路ｎの入力電位Ｖnは、
Ｖn＝ＴW／Ｃ(ΣＩ+njＳj＋Ｉ+Bn)−ＴW／Ｃ(ΣＩ-njＳj＋Ｉ-Bn)
＝ＴW／Ｃ(Σ(Ｉ+nj−Ｉ-nj)Ｓj＋(Ｉ+Bn−Ｉ-Bn))    (３)
で与えられる。ここで、Ｓjはニューロン回路ｊの発火状態(１または０)を意味する。
【００２７】
図６は、本発明の一実施例のニューロン回路の構成を示す図である。ニューロン回路は、同期比較器１０、クロック同期パルス発生器１１、遅延回路１２Ａ、リセット回路を構成するゲート１３とｎ型トランジスタ１４を含む。同期比較器１０は、所定のタイミング(ＣＬＫ)においてシナプス回路からの出力電流に応じて変化する入力電圧Ｖi(式(３)のＶnと同義)と発火閾値電圧ＶTを比較する。
【００２８】
同期比較器１０は、入力電圧Ｖiが発火閾値電圧ＶTを超えた場合に出力パルス(オン)をクロック同期パルス発生器１１に送る。クロック同期パルス発生器１１はその出力パルス(オン)を受けてニューロン回路の発火出力ＯＵＴとなる負のＥＸＥパルスと正のＩＮＨパルスを生成して出力する。遅延回路１２は、クロックＣＬＫを所定時間遅らせてクロック同期パルス発生器１１に入力するために用いられる。リセット回路を構成するゲート１３とｎ型トランジスタ１４は、クロックＣＬＫサイクルの開始時に入力電圧Ｖiをリセットする(ゼロにする)ために用いられる。
【００２９】
図７は、図６の本発明の一実施形態のニューロン回路のクロック同期パルス発生器１１の構成を示す図である。図７(ａ)はその回路構成を示し、(ｂ)はその回路のタイミングチャートを示す。(ａ)において、クロックＣＬＫが図６の遅延回路１２Ａによって遅延された後のパルスＤＣＫをさらに遅延させるための遅延回路１２Ｂと、パルスＤＣＫとその遅延後のパルスＤＣＫとを受けて正のＩＮＨパルスと負のＥＸＥパルスを生成するためのゲート回路１５とを含む。(ｂ)のタイミングチャートに示すように、クロック同期パルス発生器１１は、同期比較器１０からの入力パルスＩＮを受けて、クロックＤＣＫと遅延後のクロックＤＣＫの立ち上がりを用いてＥＸＥパルスを生成し、両クロックの立ち下りのタイミングを用いてＩＮＨパルスを生成する。
【００３０】
図８は、図６の本発明の一実施形態のニューロン回路の同期比較器１０の構成を示す図である。図８(ａ)はいわゆる同期式コンパレータの構成であって、(ａ)はその入力・比較段、(ｂ)はその出力ラッチ段を示している。(ａ)の構成では、電源ＶDDに接続しクロックＣＬＫに同期して動作する一対のｐ型トランジスタ１６、１７と、電源ＶDDに接続する一対のＣＭＯＳトランジスタ１８、１９と、ＣＭＯＳトランジスタ１８、１９に接続してシナプス回路からの入力電圧Ｖi、発火閾値電圧ＶTを受けて動作する一対のｎ型トランジスタ２０、２１と、ｎ型トランジスタ２０、２１とグランドに接続しクロックＣＬＫに同期して図８の回路の電流源となるｎ型トランジスタ２２を含む。
【００３１】
図８(ｂ)では、ＲＳラッチを構成する、ｐ型トランジスタ１６とＣＭＯＳトランジスタ１８のｐ型トランジスタの出力ＲＢを受けるゲート２３と、ｐ型トランジスタ１７とＣＭＯＳトランジスタ１７のｐ型トランジスタの出力ＳＢを受けるゲート２４を含む。図８の回路構成では、シナプス回路からの入力電圧Ｖiが発火閾値電圧ＶTを超えて大きくなると、出力ＳＢがロウになって出力ＯＵＴとしてハイ(正)パルスが出力する。
【００３２】
図９と図１０は、本発明の他の一実施形態のシナプス回路の構成を示す図である。両図の構成は、いずれもｎ型の３端子素子(例えばＦｅＦＥＴ、以下同様)のみを用い、カレントミラー回路を使って、そのｎ型の３端子素子の電流値をｐ型の３端子素子の電流値としてコピーするものである。図９では、カレントミラー回路を構成する３つのｐ型トランジスタＴ６、Ｔ７、Ｔ８と、電流源をなすｎ型の３端子素子Ｔ９、Ｔ１０と、ｎ型の３端子素子Ｔ９とグランドに接続するｎ型トランジスタＴ１１を含む。
【００３３】
ｎ型の３端子素子Ｔ９、Ｔ１０には、両者を電流源として動作させるために所定の負のバイアス電圧ＶBN+と所定の正のバイアス電圧ＶBN-がボルツマンマシンの動作中は定常的に印加される。ニューロン回路から入力する負のＥＸＥパルスを受けてｐ型トランジスタＴ８が動作し、その結果ｐ型トランジスタＴ６、Ｔ７も動作して電源ＶDDから電流Ｉ+00が信号線Ｌ１５に流れ込む。次にニューロン回路から入力する正のＩＮＴパルスを受けてｎ型トランジスタＴ１１が動作し、その結果信号線Ｌ１５から電流Ｉ―00がグランドへ流れる。
【００３４】
図１０では、カレントミラー回路を構成する２つのｐ型トランジスタＴ６、Ｔ７と、電流源をなすｎ型の３端子素子Ｔ９、Ｔ１０と、ｎ型の３端子素子Ｔ９、Ｔ１０とグランドに接続するｎ型トランジスタＴ１２、Ｔ１１を含む。ｎ型の３端子素子Ｔ９、Ｔ１０には、両者を電流源として動作させるために、所定の負のバイアス電圧ＶBN+と所定の正のバイアス電圧ＶBN-がボルツマンマシンの動作中は定常的に印加される。ニューロン回路から入力する正のＩＮＴパルスを受けて２つのｎ型トランジスタＴ１２、Ｔ１１が動作し、その結果信号線Ｌ１５から電流Ｉ―00がグランドへ流れ、さらにｐ型トランジスタＴ６、Ｔ７も動作して電源ＶDDから電流Ｉ+00が信号線Ｌ１５に流れ込む。
【００３５】
次に、図１１〜図１３を参照しながら本発明の一実施形態のノイズ回路を含むボルツマンマシンについて説明する。図１１は、本発明の一実施形態のノイズ回路を含むボルツマンマシンの構成を示す図である。図１２は、図１１の本発明の一実施形態のボルツマンマシンの発火条件を説明するための図である。ニューロンの発火確率Ｐｉは理想的には、
Ｐｉ＝１／(１＋ｅｘｐ(−(Ｖi−ＶT)／Ｔ))    (４)
で表すことが出き、これを図示したのが図１２(ａ)のシグモイド関数である。式(４)中のＴは温度であり、この温度Ｔを徐々に小さく(アニール)することで、ニューロンの発火が確率論的な動作から決定論的な動作になる。図１２(ａ)では、温度Ｔが高―＞中―＞低へ変化する場合での関数を例示している。動作の初期は高い温度から始め、温度を徐々に下げる(高→中→低)ことで、局所解に留まることなく、最適解の探索を行うことになる。図１２(ｂ)に示すように、本発明で言う「ノイズ回路」を用いることで、ニューロンの発火確率はシグモイド関数を階段状に近似したものになる。ノイズの注入量が温度Ｔに相当する。ノイズの注入量を減らす(温度を徐々に下げる)ことで、最適解の探索を行う。ノイズを全く注入しない時は、温度Ｔ＝０に相当する。
【００３６】
図１１の疑似乱数発生回路(例えばＬＦＳＲ)２５、スイッチング回路２６、及びノイズ注入回路２７がそのノイズ回路に相当する。符号２８で囲まれた回路は既に上述したシナプス回路である。クロックＣＬＫに応じて疑似乱数発生回路２５によってｎビットの乱数を発生させ、その乱数に応じてスイッチング回路２６は１ビット毎にｎビットまでノイズ電圧ＶNOISEを徐々に増加させてノイズ注入回路２７に入力する。その時のビット数ｎによって図１２(ｂ)の発火確率の上昇ステップが決められ、同時にビット数ｎは発火確率の近似の精度を決めることになる。ノイズ電圧ＶNOISEは式(４)中の温度Ｔに相当し、ＶNOISEのステップｎによる段階的な上昇が温度Ｔの低下ステップ、すなわちアニーリングステップに相当する。
【００３７】
図１３は、図１１の本発明の一実施形態のノイズ回路を含むボルツマンマシンの詳細構成を示す図である。図１３では、疑似乱数発生回路(例えばＬＦＳＲ)２５と、制御回路３０と、ゲート回路３１と、ノイズ注入回路３２を含む。図１３の構成では、図１１のスイッチング回路２６の動作を制御回路３０からのｎ−１ビットの制御信号Ｓによってｐ型(＋)とｎ型(−)のノイズ電圧ＶNOISE(P)とＶNOISE(N)用のゲート回路３１の各々の出力Ｙをスイッチング制御することにより実行する。ノイズ注入回路３２には、ｎ個のサイズが異なるｐ型トランジスタ(サイズが１倍、２倍、４倍、…、２n-1倍)を含み、それぞれのゲートには、回路２５により生成される乱数に応じて、ＶNOISE(P)又はＶDDが、回路３１を通して入力される。同様に回路３２には、ｎ個のサイズが異なるｎ型トランジスタ(サイズが１倍、２倍、４倍、…、２n-1倍)を含み、それぞれのゲートには、回路２５により生成される乱数に応じて、ＶNOISE(N)又はＶSSが回路３１を通して入力される。なお、図１３中の符号２９と３３は、既に上述した同期比較器とシナプス回路である。
【００３８】
図１４と図１５を参照しながら本発明の他の一実施形態のボルツマンマシンのニューロン回路について説明する。ここでは、ニューロン回路が発火の有無の２状態のみを出力するのではなく、複数の状態を出力／保持できる多状態ニューロン回路について説明する。図１４は、その多状態ニューロン回路の発火動作のタイミングを示す図であり、図１５は、図１４の発火動作のタイミングを実現するためのニューロン回路(多状態ニューロン回路)の構成例を示す図である。
【００３９】
図１４では、例として状態数が４の場合のニューロン回路の発火出力のタイミングを示している。図１４では、ニューロン回路の発火をそのまま出力するのではなく、クロックＣＬＫの１サイクル(周期)毎に、すなわちパルスφ1〜φ4の各タイミングで発火状態を出力させるようにする。すなわち、発火のタイミングによって発火状態を割り当てるようにする。図１４では、パルスφ1のタイミングでニューロンの発火状態１を出力し、パルスφ2のタイミングでニューロンの発火状態２を出力し、パルスφ3のタイミングでニューロンの発火状態３を出力し、パルスφ4のタイミングでニューロンの発火状態４を出力する。ニューロンの４つの発火状態の各々がクロックＣＬＫの４サイクル(周期)毎に出力されることになる。状態数が５以上の場合にも同様にパルスφnのタイミング毎でニューロンの発火状態を割り当てることが可能である。これにより、少ないニューロン回路の数で問題(例えばグラフの彩色問題や数独等)を解くことが可能となる。
【００４０】
図１５の一実施形態の多状態ニューロン回路の構成例では、図６に例示した一実施形態のニューロン回路に対してパルスφ1〜φ4の各タイミングでクロック同期パルス発生器１１の発火出力ＯＵＴ(ＩＮＨ、ＥＸＥ)を出力させるための回路及び配線網が追加されている。すなわち、図１５では新たにパルス発生器３５、遅延回路３６、クロック同期パル発生器３７、インバータ３８、さらには４列の直列接続するクロック同期パルス発生器３９、４０、及びＡＮＤゲート４１、１つのＯＲゲート４２、及びこれらを接続する配線網が追加されている。
【００４１】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。さらに、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
【産業上の利用可能性】
【００４２】
組み合わせ最適化問題専用の集積回路(ＬＳＩ)として、あるいはサーバ(スーパーコンピュータ)に組み合わせ最適化問題処理機能として組み込まれて利用することができる。
【符号の説明】
【００４３】
１０、２９：同期比較器
１１、３７、３９、４０：クロック同期パルス発生器
１２Ａ、１２Ｂ、３６：遅延回路
１３、２３、２４、３１：ゲート
１４、２０、２１、２２：ｎ型トランジスタ
１６、１７：ｐ型トランジスタ
１８、１９：ＣＭＯＳ
２５：疑似乱数発生器(ＬＦＳＲ)
２６：スイッチング回路
２７、３２：ノイズ注入回路
２８、３３：シナプス回路
３０：制御回路
３５：パルス発生器
３８：インバータ
４１：ＡＮＤゲート
４２：ＯＲゲート
【図１】
2020013350.tif 000003
【図２】
2020013350.tif 000004
【図３】
2020013350.tif 000005
【図４】
2020013350.tif 000006
【図５】
2020013350.tif 000007
【図６】
2020013350.tif 000008
【図７】
2020013350.tif 000009
【図８】
2020013350.tif 000010
【図９】
2020013350.tif 000011
【図１０】
2020013350.tif 000012
【図１１】
2020013350.tif 000013
【図１２】
2020013350.tif 000014
【図１３】
2020013350.tif 000015
【図１４】
2020013350.tif 000016
【図１５】
2020013350.tif 000017