(57)【要約】【課題】より消費電力を低減できるニューラルネットワーク回路を提供する。【解決手段】ニューラルネットワーク回路を構成する演算回路１は、メモリスタが記憶素子である記憶部としてのクロスバー回路４を備え、活性化関数として正極性のランプ関数ｆ（ｘ）を使用する。差動アンプ９はセンスアンプ７ｐ，７ｎの出力について差動演算を行い、Ａ／Ｄコンバータ１１は前記演算の結果をＡ／Ｄ変換する。判定回路１０は差動アンプ９の入力信号を参照し、ランプ関数ｆ（ｘ）の極性に応じて差動アンプ９の出力信号の値が活性領域に属するか不活性領域に属するかを判定し、その判定結果に基づき差動アンプ９及びＡ／Ｄコンバータ１１を動作状態と待機状態とに切り換える。【選択図】図１
2018160007.tif 000002
【特許請求の範囲】
【請求項１】
活性化関数としてランプ関数を使用するもので、
可変抵抗素子であるメモリスタ（Ｇ）を記憶素子として、前記記憶素子を格子状に結合してなり、印加電圧により駆動される記憶部（４）と、
前記記憶素子を介して流れる電流を電圧に変換して出力する複数のＩ／Ｖ変換増幅回路（７）と、
対を成す２つのＩ／Ｖ変換増幅回路（７ｐ，７ｎ）の出力について、差動演算を行う差動増幅回路（９）と、
この差動増幅回路の演算結果をＡ／Ｄ変換するＡ／Ｄコンバータ（１１）と、
前記差動増幅回路の入力信号を参照し、前記ランプ関数の極性の正負に応じて当該差動増幅回路の出力信号の値が活性領域に属するか不活性領域に属するかを判定し、当該判定結果に基づき当該差動増幅回路及び前記Ａ／Ｄコンバータを動作状態と待機状態とに切り換える出力判定部（１０，１２）とを備えるニューラルネットワーク回路。
【請求項２】
前記２つのＩ／Ｖ変換増幅回路の出力端子と、前記差動増幅回路の入力端子との間に配置されるスイッチ回路（８ｐ，８ｎ）を備え、
前記出力判定部は、前記差動増幅回路を待機状態に切換える際には、前記スイッチ回路をオンからオフにする請求項１記載のニューラルネットワーク回路。
【請求項３】
入力データを電圧に変換するＤ／Ａコンバータ（２）と、
前記電圧を前記記憶部に印加するドライブアンプ（３）とを備え、
前記入力データを参照し、前記ランプ関数の極性の正負に応じて当該データの値が活性領域に属するか不活性領域に属するかを判定し、当該判定結果に基づき前記Ｄ／Ａコンバータ及び前記ドライブアンプを動作状態と待機状態とに切り換える入力判定部（５，６）とを備える請求項１又は２記載のニューラルネットワーク回路。
【請求項４】
前記入力判定部（５）は、前記待機状態に切り換える際には、前記記憶部に対し、電力を消費させないように基準電圧を印加する請求項３記載のニューラルネットワーク回路。
【請求項５】
前記入力データが極性ビットを有している際に、
前記入力判定部（１２）は、前記極性ビットの値を参照して前記判定を行う請求項３又は４記載のニューラルネットワーク回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶素子としてのメモリスタを格子状に結合してなる記憶部を有するニューラルネットワーク回路に関する。
【背景技術】
【０００２】
現在、メモリスタと称される、不揮発性でコンダクタンス値を可変できる２端子の素子をシナプスとして用い、ニューラルネットワーク回路を構成する研究が進められている。このようなニューラルネットワーク回路は、例えば図５，非特許文献１のＦｉｇ．２に示すように、メモリスタを格子状に配置し、メモリスタに電圧を印加して電流を生成する。その合成電流をトランスインピーダンスアンプ，Ｉ／Ｖ変換アンプで電圧に変換し、活性化関数により波形を整形した後に電圧値として出力する。メモリスタがシナプスとして、Ｉ／Ｖ変換アンプがニューロンとして動作することで、ニューラルネットワーク回路が構成される。Ｉ／Ｖ変換アンプは、メモリスタのコンダクタンス値と印加電圧との積和演算をアナログ演算で行う。
【０００３】
上記のような積和演算は、例えば特許文献１に開示されているように、デジタル回路を用い、メモリに記憶された重みデータと入力データとを乗算し、乗算結果を順次加算する方式が一般的である。また、アナログ演算を行う場合は、図６に示すように、入力データをＤ／Ａコンバータにより電圧に変換し、図５に示したメモリスタのコンダクタンス値を重みとしてアナログ領域で入力電圧と乗算する。そして、メモリスタからなるクロスバー構成において電流値を加算し、Ｉ／Ｖ変換アンプにより電圧に変換した後、Ａ／Ｄコンバータによりデジタル値に変換する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５３７６９２０号公報
【非特許文献】
【０００５】
【非特許文献１】“A heterogeneous computing system with memristor-based neuromorphic accelerators ” High PERFORMANCE Extreme Computing Conference, 2014 IEEE
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したアナログ方式は、メモリと演算器とが一体化した構成となるため、デジタル方式に比較して電力消費が小さくなる。しかしながら、畳込み演算を行うニューラルネットワーク回路のように繰り返し実行する演算が多くなると、Ｄ／Ａコンバータ，Ｉ／Ｖ変換アンプ，Ａ／Ｄコンバータ等におけるアナログ回路の消費電力が増大し、無視できなくなる。
【０００７】
本発明は上記事情に鑑みてなされたものであり、その目的は、より消費電力を低減できるニューラルネットワーク回路を提供することにある。
【課題を解決するための手段】
【０００８】
請求項１記載のニューラルネットワーク回路によれば、メモリスタが記憶素子とする記憶部を備え、活性化関数としてランプ関数を使用する。差動増幅回路は、記憶素子を介して流れる電流を電圧に変換するＩ／Ｖ変換増幅回路のうち、対を成す２つの出力について差動演算を行い、その演算結果はＡ／ＤコンバータによりＡ／Ｄ変換される。そして、出力判定部は、差動増幅回路の入力信号を参照し、ランプ関数の極性の正負に応じて差動増幅回路の出力信号の値が活性領域に属するか不活性領域に属するかを判定し、その判定結果に基づき差動増幅回路及びＡ／Ｄコンバータを動作状態と待機状態とに切り換える。
【０００９】
活性化関数は差動増幅回路の出力信号に対して作用するので、ランプ関数の極性に応じて、関数値がゼロとなる前記出力信号の値域が決まる。すなわち、ランプ関数の極性が正の場合は出力信号の値域がゼロ又は負，前記極性が負の場合は前記値域がゼロ又は正であれば関数値はゼロとなる。このような出力信号の値域を「不活性領域」と称し、それ以外の値域を「活性領域」と称している。
【００１０】
つまり、差動増幅回路の出力信号レベルが不活性領域に属すれば、関数値は自動的にゼロとなるから、Ａ／Ｄ変換を行う必要は無くなる。また、差動増幅回路の出力信号レベルが不活性領域に属するか否かは、事前に差動入力信号のレベルを参照すれば判定できるので、差動演算を行う必要もなくなる。そこで、出力判定部が、差動増幅回路の入力信号を参照し、当該回路の出力信号の値が活性領域に属すると判定した際に、差動増幅回路及びＡ／Ｄコンバータを動作状態から待機状態に切り換えるようにすれば、消費電力を低減できる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態であり、ニューラルネットワーク回路を構成するアナログ積和演算回路を示す機能ブロック図
【図２】ランプ関数の一例を示す図
【図３】図１の構成をより具体的に示す図
【図４】第２実施形態であり、入力判定部の構成を示す図
【図５】非特許文献１のＦｉｇ．２を示す図
【図６】特許文献１に開示されている構成を示す図
【発明を実施するための形態】
【００１２】
（第１実施形態）
以下、第１実施形態について説明する。図１に示すアナログ積和演算回路１は、入力データＤａｔａ＿ｉｎをＤ／Ａコンバータ２により電圧変換する。変換された電圧はドライブアンプ３を介してメモリスタクロスバー回路４に印加される。メモリスタクロスバー回路４は、メモリスタを記憶素子とするもので、複数の記憶素子を格子状に配置して構成されており、記憶部に相当する。
【００１３】
選択回路５は、クロスバー回路４に印加する電圧を、ドライブアンプ３の出力電圧とするか、基準電圧Ｖｒｅｆとするかを選択する。判定回路６は、Ｄ／Ａコンバータ２に入力されるデータＤａｔａ＿ｉｎを参照し、当該データの値が活性領域に属するか、不活性領域に属するかを判定する。そして、活性領域に属する場合はＤ／Ａコンバータ２及びドライブアンプ３を動作状態にし、不活性領域に属する場合はそれらを待機状態に切換える。それに伴い、選択回路５を介してクロスバー回路４に基準電圧Ｖｒｅｆを印加させる。選択回路５及び判定回路６は入力判定部に相当する。尚、「活性領域」，「不活性領域」については後程説明する。
【００１４】
クロスバー回路４からは、各記憶素子に設定されているコンダクタンス値に応じて電流が出力され、その電流はセンスアンプ７ｐ及び７ｎにより電圧に変換される。尚、実際には、センスアンプ７はより多数設けられているが、説明の都合上図１では、対を成す２つのみを示している。センスアンプ７ｐ及び７ｎにより変換された電圧は、それぞれ選択回路８ｐ及び８ｎを介して差動アンプ９に入力されると共に、判定回路１０にも入力される。選択回路８ｐ及び８ｎは、センスアンプ７ｐ及び７ｎの出力端子と差動アンプ９の入力端子との間を開閉するスイッチ等で構成される。センスアンプ７はＩ／Ｖ変換増幅回路に相当し、判定回路１０は出力判定部に相当する。
【００１５】
差動アンプ９の出力信号は、Ａ／Ｄコンバータ１１によりＡ／Ｄ変換され、デジタルデータとして出力される。この出力データＤａｔａ＿ｏｕｔに対しては、ニューラルネットワーク回路の活性化関数として、例えば図２に示す次式のランプ関数ｆ（ｘ）が適用される。
ｆ（ｘ）＝ｍａｘ（０，ｘ）      …（１）
このランプ関数ｆ（ｘ）は正極性である。その後、出力されたデータは、次段のアナログ積和演算回路１に入力される。
【００１６】
判定回路１０は、センスアンプ７ｐ及び７ｎの出力信号を参照し、判定回路６と同様に差動アンプ９の出力信号レベルが活性領域に属するか、不活性領域に属するかを判定する。そして、活性領域に属する場合は選択回路８ｐ及び８ｎを閉じて差動アンプ９に信号を入力させると共に、差動アンプ９及びＡ／Ｄコンバータ１１を動作状態にする。一方、前記出力信号のレベルが不活性領域に属する場合は、選択回路８ｐ及び８ｎを開いて差動アンプ９に対する信号の入力を遮断すると共に、差動アンプ９及びＡ／Ｄコンバータ１１を待機状態にする。
【００１７】
ここで、「活性領域」，「不活性領域」は、活性化関数に応じて決まる。本実施形態のランプ関数ｆ（ｘ）は正極性であるから、出力側の差動アンプ９の出力信号がゼロ又は負極性を示す場合、ランプ関数ｆ（ｘ）を適用した結果はゼロとなる。そこで、上記出力信号がゼロ又は負極性を示す場合を「不活性領域」，正極性を示す場合を「活性領域」と称する。ランプ関数ｆ（ｘ）の極性が負の場合は、「不活性領域」，「活性領域」が上記とは逆の関係になる。
【００１８】
つまり、差動アンプ９の出力信号が不活性領域に属する場合は、差動演算やＡ／Ｄ変換を行わずとも、関数ｆ（ｘ）の出力結果がゼロとなる。そして、前記出力信号が不活性領域に属するか否かは、差動入力信号を参照すれば事前に判定できる。したがって、差動アンプ９及びＡ／Ｄコンバータ１１を待機状態にすることで演算回路１の消費電力を低減する。同様に、入力側においても、入力データＤａｔａ＿ｉｎの値がゼロ又は負極性を示す不活性領域に属する場合は、演算回路１の出力データがゼロとなるので、Ｄ／Ａコンバータ２及びドライブアンプ３を待機状態にして消費電力を低減する。
【００１９】
演算回路１をより具体的な構成で示す図３では、クロスバー回路４を構成する記憶素子Ｇ１１，Ｇ１２，Ｇ２１，Ｇ２２は、何れもメモリスタである。尚、実際には、クロスバー回路４はより多数の記憶素子Ｇを備えている。本実施形態では、入力データＤａｔａ＿ｉｎが極性ビットを持たないことを前提としている。判定回路６は、入力データＤａｔａ＿ｉｎの各ビットが入力端子に接続されたＯＲゲートで構成され、Ｄ／Ａコンバータ２及びドライブアンプ３は、ＯＲゲートの出力信号により動作状態と待機状態とが切り換えられる。選択回路５は、基準電圧Ｖｒｅｆの電圧源とドライブアンプ３の出力端子との間を開閉するスイッチ回路である。
【００２０】
すなわち、入力データＤａｔａ＿ｉｎの何れかのビット値が「１」であれば判定回路６の出力信号はハイレベルになり、Ｄ／Ａコンバータ２及びドライブアンプ３は動作状態に維持され、選択回路５はオフしている。そして、全ビット値がゼロであれば判定回路６の出力信号がローレベルになることで、Ｄ／Ａコンバータ２及びドライブアンプ３は待機状態に切り換えられ、選択回路５はオンに切り換わる。クロスバー回路４は、基準電圧Ｖｒｅｆが印加されることで電力を消費しない状態になる。
【００２１】
演算回路１の出力側では、判定回路１０はコンパレータで構成され、センスアンプ７ｐ，７ｎの出力信号Ｖｐ１，Ｖｎ１を比較する。Ｖｐ１＞Ｖｎ１であれば、差動アンプ９の出力信号の極性は正となり活性領域に属する。したがって、差動アンプ９及びＡ／Ｄコンバータ１１を動作状態に維持し、選択回路８をオンにする。一方、Ｖｐ１≦Ｖｎ１であれば、差動アンプ９の出力信号はゼロ又は負極性となり不活性領域に属する。したがって、差動アンプ９及びＡ／Ｄコンバータ１１を待機状態に切換え、選択回路８をオフにする。
【００２２】
以上のように本実施形態によれば、ニューラルネットワーク回路を構成する演算回路１は、メモリスタＧ１１〜Ｇ２２が記憶素子である記憶部としてのクロスバー回路４を備え、活性化関数として正極性のランプ関数ｆ（ｘ）を使用する。差動アンプ９は、対を成す２つのセンスアンプ７ｐ，７ｎの出力について差動演算を行い、Ａ／Ｄコンバータ１１は、前記演算の結果をＡ／Ｄ変換する。
【００２３】
そして、判定回路１０は、差動アンプ９の入力信号を参照し、ランプ関数ｆ（ｘ）の極性に応じて差動アンプ９の出力信号の値が活性領域に属するか不活性領域に属するかを判定し、その判定結果に基づき差動アンプ９及びＡ／Ｄコンバータを動作状態と待機状態とに切り換える。すなわち、差動アンプ９の出力信号レベルが不活性領域に属する際に、動作させる必要が無くなる差動アンプ９及びＡ／Ｄコンバータを動作状態から待機状態に切り換えることで、一般的に不活性状態となる確率が高いニューラルネットワーク回路の演算回路１について、消費電力を低減できる。
【００２４】
また、センスアンプ７ｐ，７ｎの出力端子と、差動アンプ９の入力端子との間に配置されるスイッチ回路からなる選択回路８を備え、判定回路１０は、差動アンプ９を待機状態に切換える際には、前記スイッチ回路をオンからオフにする。これにより、センスアンプ７より差動アンプ９側に流入する電流を遮断して、消費電力をより低減できる。
【００２５】
更に、判定回路６は、入力データＤａｔａ＿ｉｎが不活性領域に属する際には、動作させる必要が無いＤ／Ａコンバータ２及びドライブアンプ９を動作状態から待機状態に切り換えるので、消費電力を更に低減できる。加えて、判定回路６は、前記待機状態に切り換える際には、クロスバー回路４に対し、電力を消費させないように基準電圧Ｖｒｅｆを印加するので、消費電力を一層低減できる。
【００２６】
（第２実施形態）
以下、第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。第２実施形態は、入力データＤａｔａ＿ｉｎが極性ビットを持つことを前提としている。ＭＳＢの配置される極性ビットは、データ値が正であれば「１」となり、データ値が負又はゼロであれば「０」になるものとする。この場合、図４に示すように、判定回路６のＯＲゲートに替えて、正転電圧バッファ１２を用い、極性ビットの値に応じて各部の動作状態，待機状態の切り換えを行う。尚、極性ビットが２の補数表現の場合は、反転バッファを用いれば良い。
【００２７】
以上のように第２実施形態によれば、入力データＤａｔａ＿ｉｎが極性ビットを有している際に入力判定部として電圧バッファ１２を用い、極性ビットの値を参照して各部の動作状態と待機状態とを切り換える判定を行うようにしたので、よりサイズが小さい回路で入力側の判定を行うことができる。
【００２８】
（その他の実施形態）
選択回路８は、必要に応じて設ければ良い。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【符号の説明】
【００２９】
図面中、１はアナログ積和演算回路、２はＤ／Ａコンバータ、３はドライブアンプ、４はメモリスタクロスバー回路、５は選択回路、６は判定回路、７はセンスアンプ、８は選択回路、９は差動アンプ、１０は判定回路、１１はＡ／Ｄコンバータである。
【図１】
2018160007.tif 000003
【図２】
2018160007.tif 000004
【図３】
2018160007.tif 000005
【図４】
2018160007.tif 000006
【図５】
2018160007.tif 000007
【図６】
2018160007.tif 000008