JP7482071B2 - 記憶装置およびニューラルネットワーク装置 - Google Patents

記憶装置およびニューラルネットワーク装置 Download PDF

Info

Publication number
JP7482071B2
JP7482071B2 JP2021042835A JP2021042835A JP7482071B2 JP 7482071 B2 JP7482071 B2 JP 7482071B2 JP 2021042835 A JP2021042835 A JP 2021042835A JP 2021042835 A JP2021042835 A JP 2021042835A JP 7482071 B2 JP7482071 B2 JP 7482071B2
Authority
JP
Japan
Prior art keywords
circuit
storage circuit
storage
amount
update
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
JP2021042835A
Other languages
English (en)
Other versions
JP2022142604A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2021042835A priority Critical patent/JP7482071B2/ja
Priority to US17/461,440 priority patent/US20220300792A1/en
Publication of JP2022142604A publication Critical patent/JP2022142604A/ja
Application granted granted Critical
Publication of JP7482071B2 publication Critical patent/JP7482071B2/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/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
    • 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • 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
    • 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/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Image Analysis (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)

Description

本発明の実施形態は、記憶装置およびニューラルネットワーク装置に関する。
近年、ハードウェアで実現したニューラルネットワーク装置が研究されている。ハードウェアで実現したニューラルネットワークに含まれる各ユニットでは、電気回路により積和演算(乗累算)を実行する。すなわち、電気回路により実現されたユニットは、前段のユニットから受け取った複数の入力信号のそれぞれに対して重みを乗算し、重みを乗算した後の複数の入力信号を加算する。
ところで、ハードウェアで実現したニューラルネットワーク装置において、推論で用いる重みは、2値でよい場合がある。しかし、推論で用いる重みが2値でよい場合であっても、学習処理において用いられる重みは、微小量で更新をしなければならないので、連続値でなければならない。例えば、学習時における重みは、1000階調程度、例えば、10ビット程度の精度が必要と考えられる。さらに、ハードウェアで実現したニューラルネットワーク装置は、学習時において、重みを高速に更新できることが好ましい。
米国公開第2019/0318239号明細書 米国特許第010340002号明細書
Seyoung Kim, Tayfun Gokmen, Hyung-Min Lee and Wilfried E. Haensch, "Analog CMOS-based Resistive Processing Unit for Deep Neural Network Training", 2017 IEEE 60th International Midwest Symposium on Circuits and Systems (MWSCAS), 6-9 Aug. 2017 Stefano Ambrogio, Pritish Narayanan, Hsinyu Tsai, Robert M. Shelby, Irem Boybat, Carmelo di Nolfo, Severin Sidler, Massimo Giordano1, Martina Bodini, Nathan C. P. Farinha, Benjamin Killeen, Christina Cheng, Yassine Jaoudi &Geoffrey W. Burr, "Equivalent-accuracy accelerated neuralnetwork training using analogue memory", Nature, vol. 558, 60-67, 6 June 2018
本発明が解決しようとする課題は、連続値である重みを精度良く記憶し、記憶している重みを高速に更新することができる記憶装置およびニューラルネットワーク装置を提供することにある。
実施形態に係る記憶装置は、ニューラルネットワークの演算に用いる重みを記憶する。前記記憶装置は、第1蓄積回路と、第2蓄積回路と、更新回路と、出力回路と、を備える。前記第1蓄積回路は、電荷を蓄積する。前記第2蓄積回路は、電荷を蓄積する。前記更新回路は、前記重みを更新するための更新量に応じて、前記第1蓄積回路に蓄積された電荷量と前記第2蓄積回路に蓄積された電荷量との差を変化させる。前記出力回路は、前記第1蓄積回路に蓄積された電荷量と、前記第2蓄積回路に蓄積された電荷量の差に応じた信号を、前記重みを表す出力信号として出力する。前記更新回路は、前記更新量が正である場合、前記第1蓄積回路に蓄積された電荷を、増加方向または減少方向のうちの一方である第1方向に、前記更新量の絶対値に応じた電荷量分変化させる。前記更新回路は、前記更新量が負である場合、前記第2蓄積回路に蓄積された電荷を前記第1方向に、前記更新量の絶対値に応じた量分変化させる。
実施形態に係るニューラルネットワーク装置の構成を示す図。 ニューラルネットワークの1つのレイヤを説明するための図。 積和演算回路による積和演算を説明する図。 学習重み記憶回路に含まれる1つの記憶装置の構成を示す図。 記憶装置の動作の一例を示す図。 学習重み記憶回路の動作の流れを示すフローチャート。 記憶装置の処理の流れを示すフローチャート。 STDP学習がされる記憶装置を示す図。 STDP学習で用いられる信号のタイミングチャートの一例を示す図。 STDP学習がされる記憶装置の第1構成例を示す図。 記憶回路の内部の信号のタイミングの一例を示す図。 STDP学習がされる記憶装置の第2構成例を示す図。 STDP学習がされる記憶装置の第3構成例を示す図。 複数の記憶装置の接続例を示す図。 複数の記憶装置の他の接続例を示す図。 変形例に係る記憶装置の構成を示す図。 積和演算回路のハードウェア構成図。 =+1およびw=+1の場合の演算動作の説明図。 =-1およびw=+1の場合の演算動作の説明図。 =+1およびw=-1の場合の演算動作の説明図。 =-1およびw=-1の場合の演算動作の説明図。 コンパレータの動作の説明図。
以下、図面を参照しながら実施形態に係るニューラルネットワーク装置10について説明する。
図1は、実施形態に係るニューラルネットワーク装置10の構成を示す図である。ニューラルネットワーク装置10は、演算回路14と、推論重み記憶回路16と、学習重み記憶回路20と、学習制御回路22とを備える。
演算回路14は、ニューラルネットワークに従った演算処理を実行する。演算回路14は、アナログ回路を含む電気回路により実現される。例えば、演算回路14は、M個(Mは、2以上の整数)の入力信号(x,…,x)を受け取り、出力信号(z)を出力する。なお、演算回路14は、複数の出力信号を出力してもよい。
推論重み記憶回路16は、演算回路14によるニューラルネットワークに従った演算処理において用いられる複数の推論重みを記憶する。推論重み記憶回路16は、例えば、L個(Lは、2以上の整数)の推論重み(w,…,w)を記憶する。複数の推論重みのそれぞれは、2値である。これにより、演算回路14は、それぞれが2値で表された複数の推論重みを用いて、アナログ回路によりニューラルネットワークに従った演算処理を高速に実行することができる。推論重み記憶回路16は、例えば、それぞれが2値の推論重みを記憶する複数のレジスタを含む。
また、推論重み記憶回路16は、2値の推論重みを可変抵抗等により実現することもできる。この場合、推論重み記憶回路16は、演算回路14に組み込まれてもよい。
学習重み記憶回路20は、ニューラルネットワークの学習処理において、複数の推論重みに対応する複数の重みを記憶する。学習重み記憶回路20は、例えば、L個の推論重みに一対一で対応する、L個の重み(w,…,w)を記憶する。複数の重みのそれぞれは、連続値(アナログ量)である。
学習制御回路22は、ニューラルネットワークの学習処理において、学習重み記憶回路20に複数の重みの初期値を記憶させる。続いて、学習制御回路22は、更新処理を複数回繰り返す。更新処理において、学習制御回路22は、演算回路14による演算結果に基づき複数の重みのそれぞれに対応する更新量(Δw,…,Δw)を生成して学習重み記憶回路20に与え、学習重み記憶回路20に記憶された複数の重みのそれぞれを更新させる。なお、学習制御回路22は、更新処理を1回のみ実行してもよい。そして、学習制御回路22は、学習処理の後において、学習重み記憶回路20に記憶された複数の重みに対応する複数の値を、複数の推論重みとして推論重み記憶回路16に記憶させる。
このように、学習制御回路22は、連続値で表された複数の重みを用いて、ニューラルネットワークの学習処理を実行する。これにより、学習制御回路22は、学習処理において、複数の重みのそれぞれを微小量ずつ増減させることができるので、ニューラルネットワークを精度良く学習させることができる。
図2は、ニューラルネットワークの1つのレイヤを説明するための図である。ニューラルネットワークは、例えば、図2に示すようなレイヤを1個または複数個含む。演算回路14は、図2に示すようなレイヤに対応する演算を実行する回路を含む。
演算回路14は、例えば、図2に示すようなレイヤの演算を実行するために、N個(Nは、2以上の整数)の中間信号(y~y)に対応するN個の積和演算回路30(30-1~30-N)を有する。N個の積和演算回路30のうちのj番目(jは、1からNまでのうちの任意の整数)の積和演算回路30-jは、j番目の中間信号(y)に対応する。また、N個の積和演算回路30のそれぞれは、M個の入力信号(x~x)を受け取る。
図3は、積和演算回路30による積和演算を説明する図である。N個の積和演算回路30のそれぞれは、推論重み記憶回路16から、M個の入力信号に対応するM個の推論重み(w1j,w2j,…,wij,…,wMj)が与えられる。
N個の積和演算回路30のそれぞれは、M個の入力信号と、M個の推論重みとを積和演算した値を2値化した中間信号を出力する。例えば、j番目の中間信号に対応する積和演算回路30-jは、下記式(1)の演算をアナログ的に実行する。
Figure 0007482071000001
式(1)において、yは、j番目の中間信号を表す。xは、i番目(iは、1以上、M以下の整数)の入力信号を表す。wijは、M個の推論重みのうちのi番目の入力信号に乗算される推論重みを表す。式(1)において、f(X)は、カッコ内の値Xを所定の閾値で二値化する関数を表す。なお、さらに、yは、定数であるバイアス(b)が加算されてもよい。
図4は、学習重み記憶回路20に含まれる1つの記憶装置40の構成を示す図である。学習重み記憶回路20は、複数の重みに対応する複数の記憶装置40を有する。複数の記憶装置40のそれぞれは、対応する重みを表す連続値(アナログ値)を記憶する。
複数の重みのそれぞれは、複数の記憶装置40の何れかに対応する。ニューラルネットワークの演算に用いる複数の推論重みのそれぞれは、複数の記憶装置40のうちの対応する記憶装置40に記憶されている連続値(アナログ値)である重みを2値化した値である。
なお、本実施形態においては、複数の推論重みのそれぞれは、対応する記憶装置40に記憶された重み(アナログ値)を2値化した値であるが、演算回路14の構成によっては、重み(アナログ値)を他の階調に変換した値であってもよい。例えば、複数の推論重みのそれぞれは、対応する記憶装置40に記憶された重み(アナログ値)を3値化した値であってもよいし、4以上の階調に変換した値であってもよい。
記憶装置40は、第1蓄積回路42と、第2蓄積回路44と、更新回路46と、出力回路48と、制御回路50とを備える。
第1蓄積回路42および第2蓄積回路44のそれぞれは、電荷を蓄積する。例えば、第1蓄積回路42および第2蓄積回路44のそれぞれは、同一特性のキャパシタである。また、第1蓄積回路42および第2蓄積回路44のそれぞれは、同一特性の二次電池であってもよい。
第1蓄積回路42および第2蓄積回路44のそれぞれは、電荷を保存可能なデバイスであれば、どのような素子であってもよい。例えば、第1蓄積回路42および第2蓄積回路44のそれぞれは、CMOS(Complementary Metal-Oxide-Semiconductor)半導体プロセスで製造可能なキャパシタ素子であってもよい。また、例えば、第1蓄積回路42および第2蓄積回路44のそれぞれは、MOSFET(Metal-Oxide-Semiconductor Field Effect Transistor)のゲート電極構造であってもよい。また、例えば、第1蓄積回路42および第2蓄積回路44のそれぞれは、CMOS半導体プロセスで製造可能な配線層に形成可能な金属と絶縁体の薄膜積層型のMIM(Metal-Insulator-Metal)キャパシタであってもよい。MIMキャパシタは、例えば、TiN/Ta/TiNの層構造のデバイスである。例えば、第1蓄積回路42および第2蓄積回路44のそれぞれは、MIM構造の絶縁体を固体電解質のLiPOもしくはLiPOの窒素添加物等とし、金属薄膜にLiを含有するチタン酸リチウム(LiTiOまたはLiTi12等)を負極とし、コバルト酸リチウム(LiCoO)を正極とした全固体電池であってもよい。
ここで、第1蓄積回路42および第2蓄積回路44は、記憶している電荷量の差によって表される重み(アナログ値)を記憶する。すなわち、記憶装置40に記憶されている重みは、第1蓄積回路42に蓄積された電荷量と、第2蓄積回路44に蓄積された電荷量との差により表される。なお、重みは、第1蓄積回路42に蓄積された電荷量から第2蓄積回路44に蓄積された電荷量を減じた差により表されてもよいし、第2蓄積回路44に蓄積された電荷量から、第1蓄積回路42に蓄積された電荷量を減じた差により表されてもよい。
更新回路46は、学習時において、記憶している重みを更新するための更新量(Δw)を受け取る。更新量(Δw)は、例えば、誤差逆伝播法により算出された値であってもよい。また、スパイクタイミング依存シナプス可塑性学習(STDP学習)により重みが更新される場合には、更新回路46は、更新量(Δw)を表す信号として、教師信号、プレスパイクおよびポストスパイクを受け取る。なお、教師信号、プレスパイクおよびポストスパイクについては、図8等を参照して、後述において詳細を説明する。
更新回路46は、更新量(Δw)を受け取った場合、受け取った更新量(Δw)に応じて、第1蓄積回路42に蓄積された電荷量と第2蓄積回路44に蓄積された電荷量との差を変化させる。より具体的には、更新回路46は、更新量(Δw)が正である場合、第1蓄積回路42に蓄積された電荷を、増加方向または減少方向のうちの一方である第1方向に、更新量(Δw)の絶対値に応じた電荷量分変化させる。例えば、更新回路46は、更新量(Δw)が正である場合、第1蓄積回路42に蓄積された電荷を、増加方向に、更新量(Δw)の絶対値に応じた電荷量分変化させる。また、例えば、更新回路46は、更新量(Δw)が正である場合、第1蓄積回路42に蓄積された電荷を、減少方向に、更新量(Δw)の絶対値に応じた電荷量分変化させる。なお、更新回路46は、更新量(Δw)が正である場合、第2蓄積回路44に蓄積された電荷については変化させない。
また、更新回路46は、更新量(Δw)が負である場合、第2蓄積回路44に蓄積された電荷を第1方向に、更新量(Δw)の絶対値に応じた量分変化させる。更新量(Δw)が正の場合に電荷を増加方向に変化させるのであれば、更新回路46は、更新量(Δw)が負である場合、第2蓄積回路44に蓄積された電荷を、増加方向に、更新量(Δw)の絶対値に応じた電荷量分変化させる。また、更新量(Δw)が正の場合に電荷を減少方向に変化させるのであれば、更新回路46は、更新量(Δw)が負である場合、第2蓄積回路44に蓄積された電荷を、減少方向に、更新量(Δw)の絶対値に応じた電荷量分変化させる。なお、更新回路46は、更新量(Δw)が負である場合、第1蓄積回路42に蓄積された電荷については変化させない。
例えば、更新回路46は、更新量(Δw)の絶対値に応じた時間、予め設定された電流を、第1蓄積回路42または第2蓄積回路44に供給する。これにより、更新回路46は、第1蓄積回路42または第2蓄積回路44に蓄積された電荷を、増加方向に、更新量(Δw)の絶対値に応じた電荷量分変化させることができる。例えば、更新回路46は、更新量(Δw)の絶対値に応じた時間、第1蓄積回路42または第2蓄積回路44を所定値の抵抗を介して第1電位(例えば正側電源電圧)に接続することにより、電荷を増加方向に変化させるように電流を流すことができる。
また、例えば、更新回路46は、更新量(Δw)の絶対値に応じた時間、予め設定された電流を、第1蓄積回路42または第2蓄積回路44から放出させる。これにより、更新回路46は、第1蓄積回路42または第2蓄積回路44に蓄積された電荷を、減少方向に、更新量(Δw)の絶対値に応じた電荷量分変化させることができる。例えば、更新回路46は、更新量(Δw)の絶対値に応じた時間、第1蓄積回路42または第2蓄積回路44を所定値の抵抗を介して、第1電位より低い第2電位(例えば負側電源電圧)に接続することにより、電荷を減少方向に変化させるように電流を流すことができる。
また、例えば、更新回路46は、予め設定された容量の転送用キャパシタを用いて、更新量(Δw)の絶対値に応じた回数分、第1蓄積回路42または第2蓄積回路44に電荷を供給する。これにより、更新回路46は、第1蓄積回路42または第2蓄積回路44に蓄積された電荷を、増加方向に、更新量(Δw)の絶対値に応じた電荷量分変化させることができる。
例えば、最初に、更新回路46は、転送用キャパシタを正側電源電圧に接続することにより、転送用キャパシタに最大容量の電荷を蓄積させる。続いて、更新回路46は、転送用キャパシタと正側電源電圧とを切断する。続いて、更新回路46は、転送用キャパシタを第1蓄積回路42または第2蓄積回路44に接続することにより転送用キャパシタに蓄積された電荷を第1蓄積回路42または第2蓄積回路44に転送して、転送用キャパシタの電荷を0とする。そして、更新回路46は、転送用キャパシタを第1蓄積回路42または第2蓄積回路44から切断する。更新回路46は、このようなバケツリレー方式の電荷転送を、更新量(Δw)の絶対値に応じた回数分実行することにより、増加方向の制御をすることができる。
また、例えば、更新回路46は、転送用キャパシタを用いて、更新量(Δw)の絶対値に応じた回数分、第1蓄積回路42または第2蓄積回路44から電荷を放出させる。これにより、更新回路46は、第1蓄積回路42または第2蓄積回路44に蓄積された電荷を、減少方向に、更新量(Δw)の絶対値に応じた電荷量分変化させることができる。
例えば、最初に、更新回路46は、転送用キャパシタを負側電源電圧に接続することにより、転送キャパシタに蓄積している電荷を0とさせる。続いて、更新回路46は、転送用キャパシタと負側電源電圧とを切断する。続いて、更新回路46は、転送用キャパシタを第1蓄積回路42または第2蓄積回路44に接続することにより、第1蓄積回路42または第2蓄積回路44に蓄積された電荷を転送用キャパシタに転送して、転送用キャパシタに最大容量の電荷を蓄積させる。そして、更新回路46は、転送用キャパシタを第1蓄積回路42または第2蓄積回路44から切断する。更新回路46は、このバケツリレー方式の電荷転送を、更新量(Δw)の絶対値に応じた回数分実行することにより、減少方向の制御をすることができる。
出力回路48は、第1蓄積回路42に蓄積された電荷量と、第2蓄積回路44に蓄積された電荷量の差に応じた信号を、重みを表す出力信号(w)として出力する。
例えば、出力回路48は、第1蓄積回路42の電圧と第2蓄積回路44の電圧との電位差に応じた出力信号を出力する。第1蓄積回路42および第2蓄積回路44がキャパシタである場合、第1蓄積回路42および第2蓄積回路44が発生する電圧(V)は、電荷量(Q)×容量(C)となる。つまり、第1蓄積回路42および第2蓄積回路44は、キャパシタである場合、蓄積している電荷に比例した電圧を発生する。従って、出力回路48は、第1蓄積回路42および第2蓄積回路44が同一特性のキャパシタである場合、電圧差を検出することにより、蓄積している電荷量の差に応じた出力信号を出力することができる。
また、二次電池は、蓄積している電荷が一定の範囲内である場合、蓄積している電荷に応じて、発生する電圧が線形に変化する特性を有する。従って、出力回路48は、第1蓄積回路42および第2蓄積回路44が同一特性の二次電池である場合、電圧差を検出することにより、蓄積している電荷量の差に応じた出力信号を出力することができる。
出力回路48は、例えば、コンパレータである。この場合、出力回路48は、記憶している重みを二値化した出力信号を出力することができる。また、出力回路48は、2つの入力端子に印加される電圧の正負に応じた論理の出力信号を出力するD-フリップフロップ回路であってもよいし、S-Rラッチ回路であってもよい。また、出力回路48は、2つのビット線に印加される電圧の正負に応じて内部電圧状態を変化させるSRAM(Static Random Access Memory)セルと同一構成の回路であってもよい。
また、出力回路48は、第1蓄積回路42の電圧と第2蓄積回路44の電圧との電位差に応じたアナログ電圧の出力信号を出力してもよい。また、出力回路48は、第1蓄積回路42の電圧と第2蓄積回路44の電圧との電位差に応じた差動の出力信号を出力してもよい。また、出力回路48は、第1蓄積回路42の電圧と第2蓄積回路44の電圧との電位差をADコンバータでデジタル化した多階調のデジタル値を表す出力信号を出力してもよい。
制御回路50は、初期化時において、第1蓄積回路42および第2蓄積回路44のそれぞれに対して、予め設定された量またはランダムな量の電荷を蓄積させる。例えば、学習処理の初期化時において、学習制御回路22は、複数の重みのそれぞれを予め定められた値、または、ランダムな値に設定する場合がある。このような場合、制御回路50は、第1蓄積回路42および第2蓄積回路44のそれぞれに対して電荷を蓄積させることにより、対応する重みを予め定められた値またはランダムな値に設定することができる。
また、制御回路50は、学習期間中において、第1蓄積回路42に蓄積された電荷および第2蓄積回路44に蓄積された電荷のそれぞれを、予め設定された量分、増加方向または減少方向のうちの第1方向とは異なる第2方向に変化させる。例えば、制御回路50は、定期的、例えば一定時間毎に、第1蓄積回路42に蓄積された電荷および第2蓄積回路44に蓄積された電荷のそれぞれを、予め設定された量分、第2方向に変化させてもよい。また、例えば、制御回路50は、所定のイベントが発生する毎に、第1蓄積回路42に蓄積された電荷および第2蓄積回路44に蓄積された電荷のそれぞれを、予め設定された量分、第2方向に変化させてもよい。
更新回路46が電荷を減少方向に変化させる場合、第1蓄積回路42および第2蓄積回路44に蓄積された電荷は、0に近づく。電荷を減少方向に変化させる場合、第1蓄積回路42に蓄積された電荷が0となった後、更新回路46は、重みを増加させる方向への更新をすることができない。また、電荷を減少方向に変化させる場合、第2蓄積回路44に蓄積された電荷が0となった後、更新回路46は、重みを減少させる方向への更新をすることができない。
一方、更新回路46が電荷を増加方向に変化させる場合、第1蓄積回路42および第2蓄積回路44に蓄積された電荷は、最大容量に近づく。電荷を増加方向に変化させる場合、第1蓄積回路42に蓄積された電荷が最大容量となった後、更新回路46は、重みを増加させる方向への更新をすることができない。また、電荷を増加方向に変化させる場合、第2蓄積回路44に蓄積された電荷が最大容量となった後、更新回路46は、重みを減少させる方向への更新をすることができない。
これに対して、制御回路50は、学習期間中において、第1蓄積回路42に蓄積された電荷および第2蓄積回路44に蓄積された電荷のそれぞれを、予め設定された量分、第1方向とは異なる第2方向に変化させる。従って、制御回路50は、第1蓄積回路42に記憶された電荷と第2蓄積回路44に蓄積された電荷の差を維持しながら、更新回路46により重みのさらなる更新を可能とさせる。従って、制御回路50は、精度良く、且つ、長期間、更新回路46による重みの更新を継続させることができる。
なお、制御回路50は、例えば、更新回路46と同様に、予め設定された電流または転送用キャパシタを用いて、初期化処理、および、第2方向へ電荷量を変化させる処理を実行する。これにより、制御回路50は、第1蓄積回路42および第2蓄積回路44のそれぞれに蓄積される電荷を、精度よく制御することができる。
図5は、記憶装置40の動作の一例を示す図である。
更新回路46は、更新量(Δw)が正である場合、第1蓄積回路42に蓄積された電荷を減少方向(第1方向)に、更新量(Δw)の絶対値に応じた電荷量分変化させる、とする。また、更新回路46は、更新量(Δw)が負である場合、第2蓄積回路44に蓄積された電荷を減少方向(第1方向)に、更新量(Δw)の絶対値に応じた量分変化させる、とする。このような場合、第1蓄積回路42に蓄積された電荷(C)および第2蓄積回路44に蓄積された電荷(C)は、一例として、更新回路46が更新量(Δw)を受け取る毎に、図5のように変化する。
また、このような場合、出力回路48は、第1蓄積回路42に蓄積された電荷(C)が、第2蓄積回路44に蓄積された電荷(C)より少ないまたは同一の場合、+1の重み(w)を表す出力信号を出力する。また、出力回路48は、第2蓄積回路44に蓄積された電荷(C)が、第1蓄積回路42に蓄積された電荷(C)より少ない場合、-1の重み(w)を表す出力信号を出力する。
なお、記憶装置40は、図5に示すような動作に限らず、第1蓄積回路42および第2蓄積回路44に蓄積された電荷を増加方向に変化させる構成であってもよい。
図6は、学習重み記憶回路20の動作の流れを示すフローチャートである。学習重み記憶回路20は、学習処理において、学習制御回路22からの指示に従い、図6に示す流れで動作する。
まず、S11において、学習重み記憶回路20は、学習制御回路22から初期化指示および複数の重みのそれぞれの初期値を受け取り、初期化処理を実行する。初期化処理において、学習重み記憶回路20は、複数の記憶装置40のそれぞれに対して、受け取った初期値に対応する重みを記憶させる。なお、学習重み記憶回路20は、初期化処理において、初期値を受け取らず、複数の記憶装置40のそれぞれ毎にランダムな値の重みを記憶させてもよい。
続いて、S12において、学習重み記憶回路20は、学習制御回路22から更新指示および複数の重みのそれぞれの更新量(Δw)を受け取り、更新処理を実行する。更新処理において、学習重み記憶回路20は、複数の記憶装置40のそれぞれに対して、対応する更新量(Δw)を与えて、記憶している重みを更新させる。これにより、学習重み記憶回路20は、複数の記憶装置40のそれぞれが記憶している重みを更新量(Δw)分変化させることができる。
そして、学習重み記憶回路20は、学習処理が終了するまで、S12の処理を繰り返す(S13のNo)。これにより、学習重み記憶回路20は、複数の重みを最適化させることができる。そして、学習処理が終了した場合(S13のYes)、学習重み記憶回路20は、処理をS14に進める。
S14において、学習重み記憶回路20は、学習制御回路22から転送指示を受け取り、転送処理を実行する。学習重み記憶回路20は、転送処理において、複数の記憶装置40のそれぞれから出力される出力信号を、推論重み記憶回路16へと出力する。学習重み記憶回路20は、S14の処理を終えると、本フローを終了する。
図7は、記憶装置40の処理の流れを示すフローチャートである。学習重み記憶回路20に含まれる複数の記憶装置40のそれぞれは、S12の更新処理において、図7に示す流れで動作する。
まず、S21において、記憶装置40は、S22の処理を実行した後、一定期間を経過したか否かを判断する。なお、記憶装置40は、学習開始してからS22の処理をまだ実行していない場合には、学習開始時から一定時間を経過したか否かを判断する。一定期間を経過していない場合(S21のNo)、記憶装置40は、処理をS23に進める。一定期間を経過した場合(S21のYes)、記憶装置40は、処理をS22に進める。なお、記憶装置40は、S21において、予め設定されたイベントが発生した場合に処理をS22に進め、予め設定されたイベントが発生していない場合に処理をS23に進めてもよい。
S22において、記憶装置40は、第1蓄積回路42および第2蓄積回路44の電荷を、予め設定された量分、第2方向に変化させる。これにより、記憶装置40は、精度良く且つ長期間、重みの更新を継続させることができる。記憶装置40は、S22の処理を終えると、処理をS21に戻す。
S23において、記憶装置40は、更新量(Δw)を取得したか否かを判断する。記憶装置40は、更新量(Δw)を取得していない場合(S23のNo)、処理をS21に戻し、S21から処理を繰り返す。記憶装置40は、更新量(Δw)を取得した場合(S23のYes)、処理をS24に進める。
S24において、記憶装置40は、取得した更新量(Δw)が正であるか否かを判断する。記憶装置40は、取得した更新量(Δw)が正である場合(S24のYes)、処理をS25に進める。記憶装置40は、取得した更新量(Δw)が負である場合(S25のNo)、処理をS26に進める。
S25において、記憶装置40は、第1蓄積回路42に蓄積された電荷を、第1方向に、更新量(Δw)の絶対値に応じた電荷量分変化させる。例えば、S25において、更新回路46は、第1蓄積回路42に蓄積された電荷を、増加方向に、更新量(Δw)の絶対値に応じた電荷量分変化させる。また、例えば、S25において、更新回路46は、第1蓄積回路42に蓄積された電荷を、減少方向に、更新量(Δw)の絶対値に応じた電荷量分変化させてもよい。なお、S25において、更新回路46は、第2蓄積回路44に蓄積された電荷については変化させない。
S26において、記憶装置40は、第2蓄積回路44に蓄積された電荷を第1方向に、更新量(Δw)の絶対値に応じた量分変化させる。例えば、S25で電荷を増加方向に変化させるのであれば、S26において、更新回路46は、第2蓄積回路44に蓄積された電荷を増加方向に、更新量(Δw)の絶対値に応じた電荷量分変化させる。また、例えば、S25で電荷を減少方向に変化させるのであれば、S26において、更新回路46は、第2蓄積回路44に蓄積された電荷を減少方向に、更新量(Δw)の絶対値に応じた電荷量分変化させる。なお、S26において、更新回路46は、第1蓄積回路42に蓄積された電荷については変化させない。
記憶装置40は、S25またはS26を終えると、処理をS21に戻す。
以上のように、本実施形態に係る記憶装置40は、第1蓄積回路42に蓄積された電荷量と第2蓄積回路44に蓄積された電荷量との差により表される重みを記憶する。これにより、記憶装置40は、連続値である重みを記憶することができる。また、記憶装置40は、電荷の増加方向または減少方向のうちの一方のみで、重みを増加させる方向および重みを減少させる方向への制御をする。これにより、記憶装置40は、重みを、簡易で、精度良く且つ高速に更新することができる。
図8は、STDP学習がされる記憶装置40を示す図である。ハードウェア化したニューラルネットワークを用いて脳型プロセッサを実現する技術が提案されている。脳型プロセッサは、複数のニューロン回路、および、複数のシナプス回路を有する。複数のシナプス回路のそれぞれは、重みが設定され、前段のニューロンから受け取った信号に対して重みの影響を加えた信号を、後段のニューロンへと与える。
ニューラルネットワーク装置10がこのような脳型プロセッサに適用される場合、推論重み記憶回路16に記憶される複数の推論重みのそれぞれは、複数のシナプス回路のうちの何れかのシナプス回路に設定されるシナプス重みとして機能する。そして、この場合、複数の記憶装置40のそれぞれが記憶する重みは、シナプス回路に設定されるシナプス重みを学習する場合に用いられる学習重みとして機能する。
また、ニューラルネットワーク装置10がこのような脳型プロセッサに適用される場合、複数の記憶装置40のそれぞれに記憶される重みは、STDP学習により更新されてもよい。STDP学習がされる記憶装置40は、更新量(Δw)を表す信号として、教師信号、プレスパイクおよびポストスパイクが与えられる。
教師信号は、学習時において、ニューラルネットワークに入力信号が与えられていることを表す2値の信号である。教師信号は、例えば、ニューラルネットワークに入力信号が与えられている期間において第1論理(本実施形態においてはH論理)となり、ニューラルネットワークに入力信号が与えられていない期間において、第1論理とは異なる第2論理(例えば本実施形態においてはL論理)となる。なお、第1論理がL論理であり、第2論理がH論理であってもよい。
プレスパイクは、対応するシナプス回路の前段に接続された前段ニューロンが発火したことを示す信号である。例えば、プレスパイクは、前段ニューロンが発火したタイミングから予め設定された遅延時間後まで第1論理(例えばH論理)となり、他の期間に第2論理(例えばL論理)となる。
ポストスパイクは、対応するシナプス回路の後段に接続された後段ニューロンが発火したことを示す信号である。例えば、ポストスパイクは、後段ニューロンが発火したタイミングから予め設定された遅延時間後まで第1論理(例えばH論理)となり、他の期間に第2論理(例えばL論理)となる。
STDP学習をする場合、記憶装置40は、プレスパイクとポストスパイクとの両者が第1論理(例えばH論理)となっている期間の長さ分、記憶している重みを変化させる。この場合において、記憶装置40は、教師信号が第1論理(例えばH論理)となっている期間においては、重みを増加方向に変化させ、教師信号が第2論理(例えばL論理)となっている期間においては、重みを減少方向に変化させる。
このようなSTDP学習を実行することにより、記憶装置40は、入力信号が与えられたことに起因して、前段ニューロンと後段ニューロンとの両者が発火した場合には、重みを増加させる。反対に、記憶装置40は、入力信号とは関連が無く、前段ニューロンと後段ニューロンとの両者が発火した場合には、重みを減少させる。これにより、記憶装置40は、入力信号が与えられたことに関連して前後のニューロンが発火したシナプスの重みを増加させ、入力信号とは関連が無く前後のニューロンが発火したシナプスの重みを減少させることができる。
なお、本実施形態において、記憶装置40は、このようなSTDP学習を実行するため、正側電源電圧(VDD)、負側電源電圧(VSS)、および、電圧信号であるリセット信号(V)が印加される。正側電源電圧(VDD)および負側電源電圧(VSS)は、記憶装置40を駆動させるための電力を供給する電圧である。リセット信号(V)は、第1蓄積回路42および第2蓄積回路44に蓄積される電荷を初期化したり、一定期間毎または所定イベントが発生する毎に一定量の電荷を供給または放出したりするための電圧である。また、本実施形態において、記憶装置40は、電圧レベルで重みを表す出力信号(Vout)を出力する。
図9は、STDP学習で用いられる信号のタイミングチャートおよび電荷の変化期間の一例を示す図である。
STDP学習においては、教師信号が第1論理の場合に、重みを増加させ、教師信号が第2論理の場合に、重みを減少させる。従って、教師信号は、更新量(Δw)の符号を表す。
また、STDP学習においては、プレスパイクとポストスパイクとの両者が第1論理の時間長分、重みを増加または減少させる。従って、プレスパイクとポストスパイクとの両者が第1論理の時間長は、更新量(Δw)の絶対値を表す。
このような記憶装置40は、教師信号が第1論理、プレスパイクが第1論理かつポストスパイクが第1論理の期間、第1蓄積回路42に所定値の電流を供給し、教師信号が第2論理、プレスパイクが第1論理かつポストスパイクが第1論理の期間、第2蓄積回路44に所定値の電流を供給する。または、記憶装置40は、教師信号が第1論理、プレスパイクが第1論理かつポストスパイクが第1論理の期間、第1蓄積回路42から所定値の電流を放出し、教師信号が第2論理、プレスパイクが第1論理かつポストスパイクが第1論理の期間、第2蓄積回路44から所定値の電流を放出する。
これにより、STDP学習において、記憶装置40は、更新量(Δw)が正である場合、第1蓄積回路42に蓄積された電荷を、増加方向または減少方向のうちの一方である第1方向に、更新量(Δw)の絶対値に応じた電荷量分変化させることができる。また、記憶装置40は、更新量(Δw)が負である場合、第2蓄積回路44に蓄積された電荷を第1方向に、更新量(Δw)の絶対値に応じた量分変化させることができる。
図10は、STDP学習がされる記憶装置40の第1回路例を示す図である。図11は、記憶装置40に与えられる信号および内部の信号のタイミングチャートの一例を示す図である。例えば、STDP学習がされる記憶装置40は、図10に示すような第1回路例により実現できる。
第1例に係る第1蓄積回路42は、キャパシタである場合、一方の端子が第1電圧端子52に接続され、他方の端子が負側電源電圧(VSS)に接続される。また、第1例に係る第1蓄積回路42は、二次電池である場合、正極が第1電圧端子52に接続され、負極が負側電源電圧(VSS)に接続される。
第1例に係る第2蓄積回路44は、キャパシタである場合、一方の端子が第2電圧端子54に接続され、他方の端子が負側電源電圧(VSS)に接続される。また、第1例に係る第2蓄積回路44は、二次電池である場合、正極が第2電圧端子54に接続され、負極が負側電源電圧(VSS)に接続される。
第1回路例に係る更新回路46は、第1スイッチ回路56と、第2スイッチ回路58と、第1アンド回路60と、反転回路62と、第2アンド回路64と、第3アンド回路66と、第4アンド回路68とを有する。
第1スイッチ回路56は、第1電圧端子52と負側電源電圧(VSS)との間を導通または切断する。第2スイッチ回路58は、第2電圧端子54と負側電源電圧(VSS)との間を導通または切断する。第1スイッチ回路56および第2スイッチ回路58のそれぞれは、例えば、NMOSトランジスタである。
第1アンド回路60は、教師信号とポストスパイクとの論理積を表す第1信号(A)を出力する。例えば、第1アンド回路60は、図11のAに示すように、教師信号がH論理であり且つポストスパイクがH論理である場合に、H論理となり、他の場合にL論理となる第1信号(A)を出力する。
反転回路62は、教師信号を論理反転した反転教師信号を出力する。第2アンド回路64は、反転教師信号とポストスパイクとの論理積を表す第2信号(B)を出力する。具体的には、第2アンド回路64は、図11のBに示すように、教師信号がL論理であり且つポストスパイクがH論理である場合に、H論理となり、他の場合にL論理となる第2信号(B)を出力する。
第3アンド回路66は、第1信号(A)とプレスパイクとの論理積を表す第3信号(C)を出力する。具体的には、第3アンド回路66は、図11のCに示すように、教師信号がH論理であり、ポストスパイクがH論理であり且つプレスパイクがH論理である場合に、H論理となり、他の場合にL論理となる第3信号(C)を出力する。
第4アンド回路68は、第2信号(B)とプレスパイクとの論理積を表す第4信号(D)を出力する。具体的には、第4アンド回路68は、図11のDに示すように、教師信号がL論理であり、ポストスパイクがH論理であり且つプレスパイクがH論理である場合に、H論理となり、他の場合にL論理となる第4信号(D)を出力する。
そして、第1スイッチ回路56は、第3信号(C)がH論理の場合に、第1電圧端子52と負側電源電圧(VSS)との間を導通させ、第3信号(C)がL論理の場合に、第1電圧端子52と負側電源電圧(VSS)との間を切断する。第1スイッチ回路56が第1電圧端子52と負側電源電圧(VSS)との間を導通させた場合、第1蓄積回路42は、予め定められた値の電流を負側電源電圧(VSS)へと放出する。従って、このような更新回路46は、教師信号がH論理、プレスパイクがH論理かつポストスパイクがH論理の期間、第1蓄積回路42から所定値の電流を放出することができる。
また、第2スイッチ回路58は、第4信号(D)がH論理の場合に、第2電圧端子54と負側電源電圧(VSS)との間を導通させ、第4信号(D)がL論理の場合に、第2電圧端子54と負側電源電圧(VSS)との間を切断する。第2スイッチ回路58が第2電圧端子54と負側電源電圧(VSS)との間を導通させた場合、第2蓄積回路44は、予め定められた値の電流を負側電源電圧(VSS)へと放出する。従って、このような更新回路46は、教師信号がL論理、プレスパイクがH論理かつポストスパイクがH論理の期間、第2蓄積回路44から所定値の電流を放出することができる。
第1例に係る出力回路48は、コンパレータ70を有する。コンパレータ70は、第1電圧端子52の電圧と、第2電圧端子54の電圧とを比較し、比較結果を表す出力信号(VOUT)を出力する。第1蓄積回路42および第2蓄積回路44のそれぞれは、蓄積している電荷量に応じた電圧を発生する。第1蓄積回路42および第2蓄積回路44は、互いの特性が同一である。従って、出力回路48は、第1電圧端子52の電圧と、第2電圧端子54の電圧とを比較することにより、第1蓄積回路42に蓄積されている電荷量と第2蓄積回路44に蓄積されている電荷量との差を表す出力信号(VOUT)を出力することができる。
本例においては、コンパレータ70は、第1電圧端子52の電圧が第2電圧端子54の電圧以下である場合、重みが正であることを表す第1論理(例えばH論理)の電圧を出力する。また、コンパレータ70は、第2電圧端子54の電圧が第1電圧端子52の電圧より低い場合、重みが負であることを表す第2論理(例えばL論理)の電圧を出力する。
第1例に係る制御回路50は、第3スイッチ回路72と、第4スイッチ回路74とを有する。第3スイッチ回路72は、第1電圧端子52と正側電源電圧(VDD)との間を導通または切断する。第4スイッチ回路74は、第2電圧端子54と正側電源電圧(VDD)との間を導通または切断する。第3スイッチ回路72および第4スイッチ回路74のそれぞれは、例えば、PMOSトランジスタである。
第3スイッチ回路72および第4スイッチ回路74は、リセット信号(V)に応じて導通または切断を切り替える。リセット信号(V)は、学習制御回路22から与えられる。これにより、第3スイッチ回路72および第4スイッチ回路74は、学習制御回路22による制御に応じて、第1蓄積回路42および第2蓄積回路44に蓄積される電荷を初期化することができる。また、第3スイッチ回路72および第4スイッチ回路74は、学習制御回路22による制御に応じて、学習中において一定期間毎または所定イベントが発生する毎に、一定量の電荷を第1蓄積回路42および第2蓄積回路44に供給することができる。
なお、第3スイッチ回路72および第4スイッチ回路74は、異なるリセット信号(V)に応じて動作してもよい。これにより、第3スイッチ回路72および第4スイッチ回路74は、初期時において、ランダムな量の電荷を第1蓄積回路42および第2蓄積回路44のそれぞれに蓄積させることができる。この場合、制御回路50は、初期化時において、第3スイッチ回路72および第4スイッチ回路74のそれぞれを、ランダムな時間分導通させることができる。
図12は、STDP学習がされる記憶装置40の第2回路例を示す図である。例えば、STDP学習がされる記憶装置40は、図12に示すような第2回路例により実現することもできる。
第2回路例に係る記憶装置40は、第1回路例と比較して、更新回路46の構成が異なる。第2回路例に係る更新回路46は、第1スイッチ回路56と、第2スイッチ回路58と、反転回路62とを有する。
第2回路例に係る第1スイッチ回路56は、第1スイッチ素子76と、第2スイッチ素子78と、第3スイッチ素子80とを含む。第1スイッチ素子76、第2スイッチ素子78および第3スイッチ素子80は、第1電圧端子52と負側電源電圧(VSS)との間に直列に接続される。第1スイッチ素子76、第2スイッチ素子78および第3スイッチ素子80のそれぞれは、導通状態または切断状態となる。第1スイッチ素子76、第2スイッチ素子78および第3スイッチ素子80は、例えば、NMOSトランジスタである。
第1スイッチ素子76は、プレスパイクがH論理である場合、導通状態、プレスパイクがL論理である場合、切断状態となる。第2スイッチ素子78は、ポストスパイクがH論理である場合、導通状態、ポストスパイクがL論理である場合、切断状態となる。第3スイッチ素子80は、教師信号がH論理である場合、導通状態、教師信号がL論理である場合、切断状態となる。このような構成の第1スイッチ回路56は、教師信号がH論理、プレスパイクがH論理かつポストスパイクがH論理の期間、第1電圧端子52と負側電源電圧(VSS)との間を導通させ、他の期間、第1電圧端子52と負側電源電圧(VSS)との間を切断することができる。
反転回路62は、教師信号の論理を反転させた反転教師信号を出力する。
第2回路例に係る第2スイッチ回路58は、第4スイッチ素子82と、第5スイッチ素子84と、第6スイッチ素子86とを含む。第4スイッチ素子82、第5スイッチ素子84および第6スイッチ素子86は、第2電圧端子54と負側電源電圧(VSS)との間に直列に接続される。第4スイッチ素子82、第5スイッチ素子84および第6スイッチ素子86のそれぞれは、導通状態または切断状態となる。第4スイッチ素子82、第5スイッチ素子84および第6スイッチ素子86は、例えば、NMOSトランジスタである。
第4スイッチ素子82は、プレスパイクがH論理である場合、導通状態、プレスパイクがL論理である場合、切断状態となる。第5スイッチ素子84は、ポストスパイクがH論理である場合、導通状態、ポストスパイクがL論理である場合、切断状態となる。第6スイッチ素子86は、反転教師信号がH論理である場合、導通状態、反転教師信号がL論理である場合、切断状態となる。このような構成の第2スイッチ回路58は、教師信号がL論理、プレスパイクがH論理かつポストスパイクがH論理の期間、第2電圧端子54と負側電源電圧(VSS)との間を導通させ、他の期間、第2電圧端子54と負側電源電圧(VSS)との間を切断することができる。
このような第2例に係る記憶装置40は、第1例と同一の動作をすることができる。
図13は、STDP学習がされる記憶装置40の第3回路例を示す図である。例えば、STDP学習がされる記憶装置40は、図13に示すような第3回路例により実現することもできる。
第3回路例に係る記憶装置40は、第2回路例と比較して、出力回路48の構成が異なる。第3例に係る出力回路48は、第1電圧端子52の電圧および第2電圧端子54の電圧をそのまま出力する。第3例に係る出力回路48は、第1電圧端子52の電圧を所定倍に増幅した電圧と、第2電圧端子54の電圧を所定倍に増幅した電圧を出力してもよい。また、出力回路48は、第1電圧端子52の電圧と第2電圧端子54の電圧との電圧差を表す差動電圧を出力してもよい。
学習重み記憶回路20がこのような記憶装置40を備える場合、推論重み記憶回路16は、記憶装置40から出力された出力信号(VOUT)を2値の信号に変換する受信回路を有する。この場合、受信回路は、例えば、コンパレータである。また、受信回路は、D-フリップフロップ回路であってもよいし、S-Rラッチ回路であってもよい。また、受信回路は、SRAMセルと同一構成の回路であってもよい。なお、図13に示す出力回路48は、図10に示す第1例に係る記憶装置40に適用することもできる。
図14は、複数の記憶装置40の接続例を示す図である。
学習重み記憶回路20は、複数の記憶装置40を備える。複数の記憶装置40のそれぞれに記憶された重みをSTDP学習する場合、複数の記憶装置40は、例えば、行列状に配置される。
この場合、学習重み記憶回路20は、プレスパイクまたはポストスパイクのうちの一方である第1スパイク信号を、行方向に並んだ2以上の記憶装置40に対して共通のラインを介して与える。また、学習重み記憶回路20は、プレスパイクまたはポストスパイクのうちの第1スパイク信号ではない他方である第2スパイク信号を、列方向に並んだ2以上の記憶装置40に対して共通のラインを介して与える。
例えば、学習重み記憶回路20は、行列における、行方向に並んだ2以上の記憶装置40に共通のポストスパイクを印加する。また、例えば、学習重み記憶回路20は、行列における、列方向に並んだ2以上の記憶装置40に共通のプレスパイクを印加する。また、例えば、学習重み記憶回路20は、行列における複数の記憶装置40の全てに、共通の教師信号を印加する。
このような学習重み記憶回路20は、行方向に並んだ2以上の記憶装置40に対して、共通の後段ニューロンに対して信号を供給する2以上のシナプス回路に割り当てられる重みを記憶させることができる。また、学習重み記憶回路20は、列方向に並んだ2以上の記憶装置40に対して、共通の前段ニューロンから信号を受け取る2以上のシナプス回路に割り当てられる重みを記憶させることができる。これにより、学習重み記憶回路20は、複数の記憶装置40に対する配線を簡易にすることができる。
また、学習重み記憶回路20は、例えば列方向に並んだ2以上の記憶装置40から出力される出力信号(Vout)を共通の出力線を介して出力する。この場合、複数の記憶装置40のそれぞれに含まれる出力回路48は、スイッチが設けられる。学習重み記憶回路20は、1つの列に含まれる2以上の記憶装置40のそれぞれのスイッチを制御することにより、1つの列に含まれる2以上の記憶装置40の中から1つの記憶装置40を順番に選択して、出力信号(Vout)を共通の出力線から出力させる。これにより、学習重み記憶回路20は、1つの列に含まれる2以上の記憶装置40のそれぞれの出力信号(Vout)を干渉させずに出力することができる。
なお、学習重み記憶回路20は、複数の記憶装置40に対応して設けられた複数の出力線を含んでもよい。この場合、複数の出力線のそれぞれは、1つの記憶装置40に対してのみ接続される。このような場合、学習重み記憶回路20は、複数の記憶装置40に記憶された重みを並列に出力することができるので、高速に学習をさせることができる。
図15は、複数の記憶装置40の他の接続例を示す図である。出力回路48が図13に示すような2つの電圧値を表す出力信号を出力する構成である場合、例えば、複数の記憶装置40は、図15に示すように接続される。すなわち、学習重み記憶回路20は、例えば列方向に並んだ2以上の記憶装置40から出力される2つの出力信号(Vout+,Vout-)に対応する2つの共通の出力線を含む。そして、この場合、2つの共通の出力線は、受信回路に接続される。受信回路は、例えば、コンパレータ、D-フリップフロップ回路、S-Rラッチ回路またはSRAMセルと同一構成の回路である。
図16は、変形例に係る記憶装置40の構成を示す図である。記憶装置40は、図16に示すような変形例に係る構成であってもよい。
変形例に係る記憶装置40は、第1二次電池92と、第2二次電池94と、第1保存制御回路96と、第2保存制御回路98とをさらに備える。
第1二次電池92および第2二次電池94のそれぞれは、電荷を長期間保存することができる。第1保存制御回路96は、セーブ指示を受けた場合、第1蓄積回路42に蓄積された電荷を第1二次電池92に転送させる。また、第1保存制御回路96は、ロード指示を受けた場合、第1二次電池92に蓄積された電荷を第1蓄積回路42に転送させる。
また、第2保存制御回路98は、セーブ指示を受けた場合、第2蓄積回路44に蓄積された電荷を第2二次電池94に転送させる。また、第2保存制御回路98は、ロード指示を受けた場合、第2二次電池94に蓄積された電荷を第2蓄積回路44に転送させる。
例えば、キャパシタは、回路中の様々なリーク電流により、電荷を長期間保存することができない。このため、第1蓄積回路42および第2蓄積回路44は、学習中において、リーク電流により、蓄積している電荷を失ってしまう可能性がある。このように、第1蓄積回路42および第2蓄積回路44に蓄積された電荷が、学習が終了しないうちに失われる場合、記憶装置40は、重みを精度良く学習させることができない。
しかし、変形例に係る記憶装置40は、例えば、学習中に一定時間経過した場合、または、いったん学習した重みをしばらく時間が経ってから再び利用したい場合、電荷の転送処理をすることができる。具体的には、変形例に係る記憶装置40は、第1蓄積回路42および第2蓄積回路44に蓄積された電荷を、第1二次電池92および第2二次電池94に移動させ、その後、第1二次電池92および第2二次電池94に保存された電荷を、第1蓄積回路42および第2蓄積回路44に戻すことができる。
(積和演算回路30の構成例)
図17は、積和演算回路30のハードウェア構成を示す図である。積和演算回路30は、正側電流源132と、負側電流源134と、比較部136と、M個のクロススイッチ138と、M個のセル140とを備える。
正側電流源132は、正側電源電圧(VDD)と正側端子152との間に設けられる。正側電流源132は、正側端子152から予め設定された電流値(I)の電流を出力する。正側電流源132は、例えば、カレントミラー回路により構成されてもよい。また、正側電流源132は、複数の電流源回路が並列に接続された構成であってもよい。
負側電流源134は、正側電源電圧(VDD)と負側端子154との間に設けられる。負側電流源134は、負側端子154から予め設定された電流値(I)の電流を出力する。負側電流源134は、正側電流源132から出力する電流と同一値の電流を出力する。負側電流源134は、例えば、カレントミラー回路により構成されてもよい。また、負側電流源134は、複数の電流源回路が並列に接続された構成であってもよい。
比較部136は、例えば、コンパレータ回路である。比較部136は、正側端子152の電圧である正側端子電圧Vと、負側端子154の電圧である負側端子電圧Vとの大小を比較する。そして、比較部136は、正側端子電圧Vと負側端子電圧Vとの比較結果に応じた値の中間信号(y)を出力する。比較部136は、正側端子電圧Vが負側端子電圧Vより小さい場合、第1論理(例えば、-1)の中間信号を出力し、正側端子電圧Vが負側端子電圧V以上の場合、第2論理(例えば、+1)の中間信号を出力する。なお、比較部136は、正側端子電圧Vが負側端子電圧Vより小さい場合、第2論理(例えば、+1)の中間信号を出力し、正側端子電圧Vが負側端子電圧V以上の場合、第1論理(例えば、-1)の中間信号を出力してもよい。
M個のクロススイッチ138は、M個の入力信号に一対一に対応して設けられる。本実施形態においては、積和演算回路30は、M個のクロススイッチ138として、第1クロススイッチ138-1~第Mクロススイッチ138-Mを備える。例えば、第1クロススイッチ138-1は、第1の入力信号(x)に対応し、第2クロススイッチ138-2は、第2の入力信号(x)に対応し、第Mクロススイッチ138-Mは、第Mの入力信号(x)に対応する。
M個のクロススイッチ138のそれぞれは、正側流入端子162と、負側流入端子164と、第1端子166と、第2端子168とを有する。
M個のクロススイッチ138のそれぞれは、第1端子166を、正側流入端子162および負側流入端子164のうち何れか一方に接続する。また、M個のクロススイッチ138のそれぞれは、第2端子168を、正側流入端子162および負側流入端子164のうち第1端子166が接続されていないもう一方に接続する。M個のクロススイッチ138のそれぞれは、対応する入力信号の値に応じて、第1端子166および第2端子168を、正側流入端子162または負側流入端子164の何れに接続するかを切り換える。
M個のセル140は、M個の重みに一対一で対応して設けられる。本実施形態においては、積和演算回路30は、M個のセル140として、第1セル140-1~第Mセル140-Mを有する。例えば、第1セル140-1は、第1の重み(w)に対応し、第2セル140-2は、第2の重み(w)に対応し、第Mセル140-Mは、第Mの重み(w)に対応する。なお、第1の重み(w)は、第1の入力信号(x)に対応し、第2の重み(w)は、第2の入力信号(x)に対応し、第Mの重み(w)は、第Mの入力信号(x)に対応する。従って、例えば、第1セル140-1は、第1クロススイッチ138-1に対応し、第2セル140-2は、第2クロススイッチ138-2に対応し、第Mセル140-Mは、第Mクロススイッチ138-Mに対応する。
M個のセル140のそれぞれは、第1可変抵抗172と、第2可変抵抗174とを含む。第1可変抵抗172は、一方の端が対応するクロススイッチ138の第1端子166に接続され、他方の端が第1基準電位に接続される。第1基準電位は、例えば、グランドである。第2可変抵抗174は、一方の端が対応するクロススイッチ138の第2端子168に接続され、他方の端が第1基準電位に接続される。
第1可変抵抗172および第2可変抵抗174は、対応する重みに応じて、抵抗値の大小関係が切り替えられる。例えば、推論重み記憶回路16は、M個の入力信号の受け取りに先だって、M個の重みを受け取る。そして、推論重み記憶回路16は、受け取ったM個の重みのそれぞれに応じて、対応するセル140に含まれる第1可変抵抗172および第2可変抵抗174の抵抗値の大小関係を設定する。
例えば、複数のセル140のそれぞれは、対応する重みが+1である場合、第1可変抵抗172が第1抵抗値(R)に設定され、第2可変抵抗174が、第1抵抗値とは異なる第2抵抗値(R)に設定される。また、複数のセル140のそれぞれは、対応する重みが-1である場合、第1可変抵抗172が第2抵抗値(R)に設定され、第2可変抵抗174が第1抵抗値(R)に設定される。
そして、M個のクロススイッチ138のそれぞれは、対応する入力信号の値に応じて、第1端子166および第2端子168を、正側端子152(正側流入端子162)および負側端子154(負側流入端子164)に対して、ストレート接続するかリバース接続するかを切り換える。
例えば、M個のクロススイッチ138のそれぞれは、ストレート接続する場合、第1端子166と正側端子152(正側流入端子162)とを接続し、且つ、第2端子168と負側端子154(負側流入端子164)とを接続する。また、M個のクロススイッチ138のそれぞれは、リバース接続する場合、第1端子166と負側端子154(負側流入端子164)とを接続し、且つ、第2端子168と正側端子152(正側流入端子162)とを接続する。
例えば、M個のクロススイッチ138のそれぞれは、対応する入力信号の値が+1である場合、ストレート接続し、対応する入力信号の値が-1である場合、リバース接続する。これに代えて、M個のクロススイッチ138のそれぞれは、対応する入力信号の値が+1である場合、リバース接続し、対応する入力信号の値が-1である場合、ストレート接続してもよい。
図18は、w=+1、x=+1の場合の積和演算回路30の演算動作を説明するための図である。第iの重み(w)が+1である場合、第iセル140-iの第1可変抵抗172は、第1抵抗値(R)に設定される。第iの重み(w)が+1である場合、第iセル140-iの第2可変抵抗174は、第2抵抗値(R)に設定される。なお、R>Rであるとする。
また、第iの入力信号(x)が+1である場合、第iクロススイッチ138-iは、ストレート接続される。従って、正側電流源132の正側端子152は、第iセル140-iの第1可変抵抗172へ電流を供給する。また、負側電流源134の負側端子154は、第iセル140-iの第2可変抵抗174へ、電流を供給する。
ここで、積和演算回路30は、第iの重み(w)に第iの入力信号(x)を乗じた値(w・x)の算出結果を、正側端子152から第iセル140-iを見たときの抵抗値(RP_i)と、負側端子154から第iセル140-iを見たときの抵抗値(RN_i)との抵抗差(RP_i-RN_i)で表す。
このため、図18の例では、RP_i=R、RN_i=Rとなり、抵抗差(RP_i-RN_i)は、正の値となる。従って、w=+1、x=+1の場合、積和演算回路30は、第iの重み(w)に第iの入力信号(x)を乗じた値(w・x)として、+1を算出することができる。
図19は、w=+1、x=-1の場合の積和演算回路30の演算動作を説明するための図である。第iの重み(w)が+1である場合、第iセル140-iの第1可変抵抗172は、第1抵抗値(R)に設定される。第iの重み(w)が+1である場合、第iセル140-iの第2可変抵抗174は、第2抵抗値(R)に設定される。
また、第iの入力信号(x)が-1である場合、第iクロススイッチ138-iは、リバース接続される。従って、正側電流源132の正側端子152は、第iセル140-iの第2可変抵抗174へ電流を供給する。また、負側電流源134の負側端子154は、第iセル140-iの第1可変抵抗172へ電流を供給する。
このため、図19の例では、RP_i=R、RN_i=Rとなり、抵抗差(RP_i-RN_i)は、負の値となる。従って、w=+1、x=-1の場合、積和演算回路30は、第iの重み(w)に第iの入力信号(x)を乗じた値(w・x)として、-1を算出することができる。
図20は、w=-1、x=+1の場合の積和演算回路30の演算動作を説明するための図である。第iの重み(w)が-1である場合、第iセル140-iの第1可変抵抗172は、第2抵抗値(R)に設定される。第iの重み(w)が-1である場合、第iセル140-iの第2可変抵抗174は、第1抵抗値(R)に設定される。
また、第iの入力信号(x)が+1である場合、第iクロススイッチ138-iは、ストレート接続される。従って、正側電流源132の正側端子152は、第iセル140-iの第1可変抵抗172へ電流を供給する。また、負側電流源134の負側端子154は、第iセル140-iの第2可変抵抗174へ電流を供給する。
このため、図20の例では、RP_i=R、RN_i=Rとなり、抵抗差(RP_i-RN_i)は、負の値となる。従って、w=-1、x=+1の場合、積和演算回路30は、第iの重み(w)に第iの入力信号(x)を乗じた値(w・x)は、-1を算出することができる。
図21は、w=-1、x=-1の場合の積和演算回路30の演算動作を説明するための図である。第iの重み(w)が-1である場合、第iセル140-iの第1可変抵抗172は、第2抵抗値(R)に設定される。第iの重み(w)が-1である場合、第iセル140-iの第2可変抵抗174は、第1抵抗値(R)に設定される。
また、第iの入力信号(x)が-1である場合、第iクロススイッチ138-iは、リバース接続される。従って、正側電流源132の正側端子152は、第iセル140-iの第2可変抵抗174へ電流を供給する。また、負側電流源134の負側端子154は、第iセル140-iの第1可変抵抗172へ電流を供給する。
このため、図21の例では、RP_i=R、RN_i=Rとなり、抵抗差(RP_i-RN_i)は、正の値となる。従って、w=-1、x=-1の場合、積和演算回路30は、第iの重み(w)に第iの入力信号(x)を乗じた値(w・x)として、+1を算出することができる。
以上のように、正側端子152から第iセル140-iを見たときの抵抗値(RP_i)と、負側端子154から第iセル140-iを見たときの抵抗値(RN_i)との差(RP_i-RN_i)は、第iの重み(w)と第iの入力信号(x)との乗算値(w・x)を表す。従って、正側電流源132の正側端子152に接続される合成抵抗値Rと、負側電流源134の負側端子154に接続される合成抵抗値Rとの差分値{R-R}は、M個の入力信号とM個の重みとの積和演算(乗累算)結果を表す。
図22は、正側電流源132、負側電流源134および比較部136の動作を説明するための図である。
正側電流源132は、RP_1の第1セル140-1に電流を出力する。また、正側電流源132は、RP_2の第2セル140-2に電流を出力する。そして、正側電流源132は、RP_Mの第Mセル140-Mに電流を出力する。つまり、正側電流源132は、合成抵抗値[R=1/{(1/RP_1)+(1/RP_2)+…+(1/RP_M)}]の抵抗に、所定値電流(I)を出力する。従って、正側端子152には、所定値の電流Iに合成抵抗値Rを乗じた正側端子電圧Vが発生する。
負側電流源134は、RN_1の第1セル140-1に対して電流を出力する。また、負側電流源134は、RN_2の第2セル140-2に対して電流を出力する。そして、負側電流源134は、RN_Mの第Mセル140-Mに対して電流を出力する。従って、負側電流源134は、負側端子154から、合成抵抗値[R=1/{(1/RN_1)+(1/RN_2)+…+(1/RN_M)}]の抵抗に、所定値電流(I)を出力する。従って、負側端子154には、所定値の電流Iに合成抵抗値Rを乗じた負側端子電圧Vが発生する。
比較部136は、正側端子電圧Vと負側端子電圧Vとの差(Vd)が0より小さいか、0以上であるかを判定した判定結果を表す中間信号(y)を出力する。例えば、比較部136は、正側端子電圧Vと負側端子電圧Vとの差(Vd)が0より小さい場合、第1論理(例えば-1)の中間信号(y)を出力し、0以上である場合、第2論理(例えば+1)の中間信号(y)を出力する。
ここで、正側電流源132の正側端子152に接続される抵抗の合成抵抗値Rと、負側電流源134の負側端子154に接続される抵抗の合成抵抗値Rとの差分値{R-R}は、M個の入力信号とM個の重みとの積和演算(乗累算)結果を表す。また、正側端子電圧Vと負側端子電圧Vとの差(Vd)は、RとRとの差に比例する。従って、比較部136から出力された中間信号(y)は、M個の入力信号とM個の重みとの積和演算(乗累算)値が、0より小さいか、または、0以上であるか否かを表す。
このように、積和演算回路30は、M個の重みとの積和演算(乗累算)をアナログ処理により実行することができる。そして、積和演算回路30は、積和演算値を2値化した中間信号(y)を出力することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10 ニューラルネットワーク装置
14 演算回路
16 推論重み記憶回路
20 学習重み記憶回路
22 学習制御回路
40 記憶装置
42 第1蓄積回路
44 第2蓄積回路
46 更新回路
48 出力回路
50 制御回路
56 第1スイッチ回路
58 第2スイッチ回路
70 コンパレータ
72 第3スイッチ回路
74 第4スイッチ回路
92 第1二次電池
94 第2二次電池
96 第1保存制御回路
98 第2保存制御回路

Claims (16)

  1. ニューラルネットワークの演算に用いる重みを記憶する記憶装置であって、
    電荷を蓄積する第1蓄積回路と、
    電荷を蓄積する第2蓄積回路と、
    前記重みを更新するための更新量に応じて、前記第1蓄積回路に蓄積された電荷量と前記第2蓄積回路に蓄積された電荷量との差を変化させる更新回路と、
    前記第1蓄積回路に蓄積された電荷量と、前記第2蓄積回路に蓄積された電荷量の差に応じた信号を、前記重みを表す出力信号として出力する出力回路と、
    を備え、
    前記更新回路は、
    前記更新量が正である場合、前記第1蓄積回路に蓄積された電荷を、増加方向または減少方向のうちの一方である第1方向に、前記更新量の絶対値に応じた電荷量分変化させ、
    前記更新量が負である場合、前記第2蓄積回路に蓄積された電荷を前記第1方向に、前記更新量の絶対値に応じた量分変化させる
    記憶装置。
  2. 前記第1蓄積回路および前記第2蓄積回路のそれぞれは、同一特性のキャパシタである
    請求項1に記載の記憶装置。
  3. 前記第1蓄積回路および前記第2蓄積回路のそれぞれは、同一特性の二次電池である
    請求項1に記載の記憶装置。
  4. 前記更新回路は、前記更新量の絶対値に応じた時間、予め設定された電流を、前記第1蓄積回路または前記第2蓄積回路に対して供給または放出させる
    請求項1から3の何れか1項に記載の記憶装置。
  5. 前記更新回路は、予め設定された容量の転送用キャパシタを用いて前記更新量の絶対値に応じた回数分の電荷を、前記第1蓄積回路または前記第2蓄積回路に対して供給または放出させる
    請求項1から3の何れか1項に記載の記憶装置。
  6. 初期化時において、前記第1蓄積回路および前記第2蓄積回路のそれぞれに対して、予め設定された量またはランダムな量の電荷を蓄積させる制御回路をさらに備える
    請求項1から3の何れか1項に記載の記憶装置。
  7. 前記制御回路は、学習期間中において、前記第1蓄積回路に蓄積された電荷および前記第2蓄積回路に蓄積された電荷のそれぞれを、予め設定された量分、増加方向または減少方向のうちの前記第1方向とは異なる第2方向に変化させる
    請求項6に記載の記憶装置。
  8. 前記更新回路は、
    前記第1蓄積回路の一方の端子と第1電位との間を導通または切断する第1スイッチ回路と、
    前記第2蓄積回路の一方の端子と前記第1電位との間を導通または切断する第2スイッチ回路と、
    を有し、
    前記更新回路は、
    前記更新量が正である場合、前記第1スイッチ回路を前記更新量の絶対値に応じた時間分、導通させて、前記第2スイッチ回路を切断し、
    前記更新量が負である場合、前記第2スイッチ回路を前記更新量の絶対値に応じた時間分、導通させて、前記第1スイッチ回路を切断する
    請求項6または7に記載の記憶装置。
  9. 前記制御回路は、
    前記第1蓄積回路の一方の端子と前記第1電位とは異なる第2電位との間を導通または切断する第3スイッチ回路と、
    前記第2蓄積回路の一方の端子と前記第2電位との間を導通または切断する第4スイッチ回路と、
    を有し、
    前記制御回路は、初期化時において、前記第3スイッチ回路および前記第4スイッチ回路のそれぞれを、予め設定された時間またはランダムな時間分、導通させる
    請求項8に記載の記憶装置。
  10. 前記出力回路は、前記第1蓄積回路の電圧と前記第2蓄積回路の電圧との電位差に応じた出力信号を出力する
    請求項1から9の何れか1項に記載の記憶装置。
  11. 第1二次電池と、
    第2二次電池と、
    第1保存制御回路と、
    第2保存制御回路と、
    をさらに備え、
    前記第1蓄積回路および前記第2蓄積回路は、同一特性のキャパシタであり、
    前記第1保存制御回路は、セーブ指示を受けた場合、前記第1蓄積回路に蓄積された電荷を前記第1二次電池に転送させ、ロード指示を受けた場合、前記第1二次電池に蓄積された電荷を前記第1蓄積回路に転送させ、
    前記第2保存制御回路は、前記セーブ指示を受けた場合、前記第2蓄積回路に蓄積された電荷を前記第2二次電池に転送させ、前記ロード指示を受けた場合、前記第2二次電池に蓄積された電荷を前記第2蓄積回路に転送させる
    請求項1または2に記載の記憶装置。
  12. ニューラルネットワークを用いた脳型プロセッサにおけるシナプス回路に設定される重みを記憶する記憶装置であって、
    電荷を蓄積する第1蓄積回路と、
    電荷を蓄積する第2蓄積回路と、
    前記第1蓄積回路に蓄積された電荷量と前記第2蓄積回路に蓄積された電荷量との差を変化させる更新回路と、
    前記第1蓄積回路に蓄積された電荷量と、前記第2蓄積回路に蓄積された電荷量の差に応じた信号を、前記重みを表す出力信号として出力する出力回路と、
    を備え、
    前記更新回路は、
    スパイクタイミング依存シナプス可塑性学習におけるプレスパイク、ポストスパイクおよび教師信号を受け取り、
    前記教師信号が第1論理、前記プレスパイクが第1論理かつ前記ポストスパイクが第1論理の期間、増加方向または減少方向のうちの一方である第1方向に、前記第1蓄積回路に所定の電流を流し、
    前記教師信号が第2論理、前記プレスパイクが第1論理かつ前記ポストスパイクが第1論理の期間、前記第2蓄積回路に所定値の電流を流し、
    前記教師信号は、前記ニューラルネットワークに入力信号が与えられていることを表す2値の信号であり、
    前記プレスパイクは、前記シナプス回路の前段に接続された前段ニューロンが発火したことを示す信号であり、
    前記ポストスパイクは、前記シナプス回路の後段に接続された後段ニューロンが発火したことを示す信号である
    記憶装置。
  13. 前記教師信号が第1論理、前記プレスパイクが第1論理かつ前記ポストスパイクが第1論理の期間、前記第1蓄積回路から所定値の電流を放出し、
    前記教師信号が第2論理、前記プレスパイクが第1論理かつ前記ポストスパイクが第1論理の期間、前記第2蓄積回路から所定値の電流を放出する
    請求項12に記載の記憶装置。
  14. 前記教師信号が第1論理、前記プレスパイクが第1論理かつ前記ポストスパイクが第1論理の期間、前記第1蓄積回路に所定値の電流を供給し、
    前記教師信号が第2論理、前記プレスパイクが第1論理かつ前記ポストスパイクが第1論理の期間、前記第2蓄積回路に所定値の電流を供給する
    請求項12に記載の記憶装置。
  15. ニューラルネットワークに従った演算処理を実行する演算回路と、
    前記演算回路による前記ニューラルネットワークに従った前記演算処理において用いられる複数の推論重みを記憶する推論重み記憶回路と、
    前記ニューラルネットワークの学習処理において、前記複数の推論重みに対応する、複数の重みを記憶する学習重み記憶回路と、
    前記学習処理において、前記演算回路による演算結果に基づき、前記学習重み記憶回路に記憶された前記複数の重みのそれぞれを更新させ、前記学習処理の後において、前記学習重み記憶回路に記憶された前記複数の重みに対応する複数の値を、前記複数の推論重みとして前記推論重み記憶回路に記憶させる学習制御回路と、
    を備え、
    前記学習重み記憶回路は、複数の重みに対応する複数の記憶装置を有し、
    前記複数の重みのそれぞれは、前記複数の記憶装置の何れかに対応し、
    前記複数の記憶装置のそれぞれは、
    電荷を蓄積する第1蓄積回路と、
    電荷を蓄積する第2蓄積回路と、
    前記複数の重みのうちの対応する重みを更新するための更新量に応じて、前記第1蓄積回路に蓄積された電荷量と前記第2蓄積回路に蓄積された電荷量との差を変化させる更新回路と、
    前記第1蓄積回路に蓄積された電荷量と、前記第2蓄積回路に蓄積された電荷量の差に応じた信号を、前記対応する重みを表す出力信号として出力する出力回路と、
    を備え、
    前記更新回路は、
    前記更新量が正である場合、前記第1蓄積回路に蓄積された電荷を、増加方向または減少方向のうちの一方である第1方向に、前記更新量の絶対値に応じた電荷量分変化させ、
    前記更新量が負である場合、前記第2蓄積回路に蓄積された電荷を前記第1方向に、前記更新量の絶対値に応じた量分変化させる
    ニューラルネットワーク装置。
  16. 前記複数の記憶装置は、
    行列状に配置され、
    スパイクタイミング依存シナプス可塑性学習におけるプレスパイクまたはポストスパイクのうちの一方である第1スパイク信号が、行方向に並んだ2以上の記憶装置に対して共通のラインを介して与えられ、
    前記プレスパイクまたは前記ポストスパイクのうちの前記第1スパイク信号ではない他方である第2スパイク信号が、列方向に並んだ2以上の記憶装置に対して共通のラインを介して与えられる
    請求項15に記載のニューラルネットワーク装置。
JP2021042835A 2021-03-16 2021-03-16 記憶装置およびニューラルネットワーク装置 Active JP7482071B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021042835A JP7482071B2 (ja) 2021-03-16 2021-03-16 記憶装置およびニューラルネットワーク装置
US17/461,440 US20220300792A1 (en) 2021-03-16 2021-08-30 Memory device and neural network apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021042835A JP7482071B2 (ja) 2021-03-16 2021-03-16 記憶装置およびニューラルネットワーク装置

Publications (2)

Publication Number Publication Date
JP2022142604A JP2022142604A (ja) 2022-09-30
JP7482071B2 true JP7482071B2 (ja) 2024-05-13

Family

ID=83283707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021042835A Active JP7482071B2 (ja) 2021-03-16 2021-03-16 記憶装置およびニューラルネットワーク装置

Country Status (2)

Country Link
US (1) US20220300792A1 (ja)
JP (1) JP7482071B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018156575A (ja) 2017-03-21 2018-10-04 東芝メモリ株式会社 半導体記憶装置
US20180330236A1 (en) 2017-05-11 2018-11-15 National Chiao Tung University Neural network processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018156575A (ja) 2017-03-21 2018-10-04 東芝メモリ株式会社 半導体記憶装置
US20180330236A1 (en) 2017-05-11 2018-11-15 National Chiao Tung University Neural network processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
米津 宏雄,"生体情報処理とニューロシステム",電子情報通信学会誌,社団法人電子情報通信学会,1992年,第75巻, 第4号,pp. 350-355,ISSN 0913-5693

Also Published As

Publication number Publication date
JP2022142604A (ja) 2022-09-30
US20220300792A1 (en) 2022-09-22

Similar Documents

Publication Publication Date Title
EP3742351A1 (en) Control circuit for multiply accumulate circuit of neural network system
EP3789870B1 (en) Method and computing device with a multiplier-accumulator circuit
Prezioso et al. Modeling and implementation of firing-rate neuromorphic-network classifiers with bilayer Pt/Al2O3/TiO2− x/Pt memristors
US5264734A (en) Difference calculating neural network utilizing switched capacitors
JP2021507349A (ja) 抵抗処理ユニット・アレイのクロスポイント・デバイスに重みを記憶するための方法、そのクロスポイント・デバイス、ニューラル・ネットワークを実施するためのクロスポイント・アレイ、そのシステム、およびニューラル・ネットワークを実施するための方法
US20230297839A1 (en) Deep learning in bipartite memristive networks
JPH03250244A (ja) 情報処理装置
KR20190107143A (ko) 혼합-신호 연산 시스템 및 방법
WO1995015580A1 (fr) Dispositif a semi-conducteurs
CN113314163A (zh) 存储器器件、计算器件以及计算方法
TWI803889B (zh) 運算裝置及運算方法
WO2019096660A1 (en) Competitive machine learning accuracy on neuromorphic arrays with capacitor memory devices
JP2020068048A (ja) 人工ニューラルネットワーク回路及び人工ニューラルネットワーク回路における学習値切替方法
US20200210822A1 (en) Multibit Neural Network
JP7482071B2 (ja) 記憶装置およびニューラルネットワーク装置
US5329610A (en) Neural network employing absolute value calculating synapse
Marukame et al. Proposal, analysis and demonstration of Analog/Digital-mixed Neural Networks based on memristive device arrays
Asghar et al. Current multiplier based synapse and neuron circuits for compact SNN chip
US5386149A (en) Data synapse expressing unit capable of refreshing stored synapse load
CN109784482B (zh) 类神经计算系统及其电流估计方法
US20220083845A1 (en) Arithmetic device and neural network device
CN110729010B (zh) 半导体电路及其操作方法
JP2022008142A (ja) 回路を利用して所定の演算を遂行する装置及び方法
US20030220889A1 (en) Analog accumulator for neural networks
US20240028297A1 (en) Semiconductor device performing a multiplication and accumulation operation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240131

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240426

R150 Certificate of patent or registration of utility model

Ref document number: 7482071

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150