JPH0830572A - ニューラルネットワーク回路及びこれを用いた演算方法 - Google Patents

ニューラルネットワーク回路及びこれを用いた演算方法

Info

Publication number
JPH0830572A
JPH0830572A JP6165641A JP16564194A JPH0830572A JP H0830572 A JPH0830572 A JP H0830572A JP 6165641 A JP6165641 A JP 6165641A JP 16564194 A JP16564194 A JP 16564194A JP H0830572 A JPH0830572 A JP H0830572A
Authority
JP
Japan
Prior art keywords
value
cumulative addition
synapse
calculation
circuit
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.)
Pending
Application number
JP6165641A
Other languages
English (en)
Inventor
Kimihisa Aihara
公久 相原
Kuniharu Uchimura
国治 内村
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.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP6165641A priority Critical patent/JPH0830572A/ja
Priority to US08/373,440 priority patent/US5630024A/en
Priority to KR1019950000739A priority patent/KR0168975B1/ko
Priority to EP95100620A priority patent/EP0664516B1/en
Priority to DE69531418T priority patent/DE69531418T2/de
Priority to EP00113124A priority patent/EP1033660A1/en
Publication of JPH0830572A publication Critical patent/JPH0830572A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 シナプス演算及び累積加算の演算量を削減で
き、大規模で且つ高速動作可能なニューラルネットワー
ク回路及びこれを用いた演算方法を提供する。 【構成】 2進ビット列で表される多数の入力値と該多
数の入力値に対応する多数のシナプス係数とのシナプス
演算を、シナプス演算及び累積回路2において一の入力
値の全ビットとこれに対応するシナプス係数の1ビット
との間で該シナプス係数の上位ビットから順次行って加
算し、これを各入力値及びシナプス係数毎に行って累積
加算し、判定回路6で該累積加算値が飽和領域に達した
か否かを判定し、飽和領域でなければ演算をシナプス係
数のより下位ビットまで行い、飽和領域になれば演算を
停止することにより、それ以降のシナプス演算を省略す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、シナプス演算回路、累
積回路及びしきい値回路からなるニューロン回路を多数
接続して構成されるニューラルネットワーク回路及びこ
れを用いた演算方法に関するものである。
【0002】
【従来の技術】ニューラルネットワーク回路は、ニュー
ロン回路を単位として、これを多数接続して構成されて
いる。1個のニューロン回路は、図2に示すように多入
力(x1,x2,……xn)1出力(y)の回路であ
る。複数の入力にはそれぞれ対応するシナプス係数(W
1,W2,……Wn)があり、入力値とシナプス係数と
の積、差の絶対値あるいは差の二乗等の演算を行った後
に累積加算が行われ、累積加算の結果の大きさにより出
力値が決定される。
【0003】出力値を最終的に決定するしきい値回路
は、図3に示すような伝達特性を備えている。図3(a)
のシグモイド関数形が最も汎用性が高いが、演算を簡単
化するために図3(b) の折れ線形あるいは図3(c) のス
テップ関数形のように単純化したものや、機能を高める
ために図3(d) のように非単調形にしたものも使用でき
る。なお、図中、Th,Th1,Th2,Th3,Th
4はそれぞれ飽和領域境界値である。このニューロン回
路の接続によりニューラルネットワーク回路の構造が決
まる。
【0004】最も一般的に用いられるのは、図4に示す
ような3層構造のニューラルネットワーク回路である。
3層構造の場合には、第2層のニューロン回路の層を中
間層、第3層のニューロン回路の層を出力層と呼んでい
る。それぞれの入力端子からの信号は全てのニューロン
回路に並列に入力され、それぞれのニューロン回路は並
列に入力信号を処理する。入力信号が加えられると、特
定のニューロン回路が反応して認識等の処理が実現され
る。
【0005】従来、前述したような機能を有する大規模
なニューラルネットワーク回路を具体化する場合、図5
に示すようにマイクロプロセッサとRAMとを組み合わ
せて構成するのが一般的であった。本構成では、シナプ
ス演算、累積加算、しきい値処理をマイクロプロセッサ
で行い、シナプス係数はRAMに格納する。そして、マ
イクロプロセッサで演算中、シナプス係数が必要となっ
た時点でRAMにアクセスしてシナプス係数を読み出す
という処理を行っていた。
【0006】
【発明が解決しようとする課題】このような構成におい
ては、RAMを増設することにより実現可能なニューラ
ルネットワーク回路の規模を拡大でき、プログラムを替
えることにより演算のアルゴリズムを変更することも容
易である。
【0007】しかしながら、その反面、RAMへのシナ
プス係数のアクセス速度が動作速度を規定し、さらにニ
ューラルネットワーク回路の規模が大きくなるとシナプ
ス演算及び累積加算の演算量が増加し、高速動作を妨げ
る要因の1つとなっていた。これは前述した従来の構成
では、全てのシナプス結合において入力値の全ビットと
シナプス係数の全ビットとのシナプス演算、並びにシナ
プス演算の結果の累積加算を行っていたため、演算量が
膨大となり、それに伴うシナプス係数のRAMへのアク
セスにも時間を要するためであった。
【0008】本発明の目的は、シナプス演算及び累積加
算の演算量を削減でき、大規模で且つ高速動作可能なニ
ューラルネットワーク回路及びこれを用いた演算方法を
提供することにある。
【0009】
【課題を解決するための手段】前記目的を達成するた
め、本発明では、2進ビット列で表される入力値とシナ
プス係数とのシナプス演算を、従来のように全てのビッ
ト間で行うのではなく、入力値の全ビットとシナプス係
数の任意の1ビットとの間で行い、得られた部分積を加
算することにより実行することを特徴とする。また、演
算に使用するシナプス係数の任意の1ビットを上位のビ
ットから下位のビットへ順次変えていくことにより、概
算値から徐々に正確な結果が得られる演算過程をとるこ
とを特徴とする。また、累積値が演算の進行に伴って単
調増加あるいは単調減少する演算手順を用いることによ
り、累積結果がしきい値関数の飽和領域内に達した時点
で演算を停止することを特徴とする。
【0010】
【作用】本発明によれば、2進ビット列で表されるシナ
プス係数をRAMから読み出す場合、従来のように全て
のビットを毎回読み出す必要がなく、上位ビットから必
要なビットを読み出すのみで良く、RAMへのアクセス
時間を大幅に削減できる。また、シナプス演算及び累積
加算についても、従来、行っていた演算を全て実行する
ことなく出力が決定した時点で以降の演算を停止するた
め、演算処理時間を大幅に短縮できる。
【0011】
【実施例1】図1は本発明の第1の実施例を示すもの
で、図中、1はセレクタ、2はシナプス演算及び累積回
路、3はシナプス係数メモリ回路、4はメモリ読み出し
回路、5はしきい値回路、6は判定回路、7はクロック
発生回路、8は制御回路である。なお、判定回路6は比
較器61,62、飽和領域境界値1用レジスタ63及び
飽和領域境界値2用レジスタ64からなっている。
【0012】飽和領域境界値1及び2の値は、図3に示
したしきい値回路の伝達特性において飽和領域と境界領
域との境界を表しており、小さい方の値が飽和領域境界
値1、大きい方が飽和領域境界値2である。しきい値回
路の伝達特性が図3(d) のように過渡領域が複数ある場
合には、さらに飽和領域境界値3用レジスタ及び飽和領
域境界値4用レジスタ並びにこれらに対応する比較器が
必要となる。ここでは説明を簡便にするため、しきい値
関数の伝達特性が過渡領域を1つのみ有する場合につい
て説明する。
【0013】本実施例において、シナプス演算及び累積
回路2の入力にはセレクタ1を通して入力端子が接続さ
れ、また、メモリ読み出し回路4を介してシナプス係数
メモリ回路3が接続されている。また、シナプス演算及
び累積回路2の出力はしきい値回路5及び判定回路6の
比較器61,62の入力に接続されている。
【0014】しきい値回路5の出力はニューロン回路の
出力端子に接続されている。比較器61の他方の入力に
は飽和領域境界値1用レジスタ63が、比較器62の他
方の入力には飽和領域境界値2用レジスタ64がそれぞ
れ接続されている。比較器61,62の出力はそれぞれ
制御回路8の入力に接続されている。制御回路8の出力
はセレクタ1及びメモリ読み出し回路4に接続されてい
る。
【0015】図6は本発明の特徴部分である、シナプス
演算及び累積回路2の詳細を示すもので、図中、21は
「2」の補数変換回路、22はシフタ、23は加算器、
24はレジスタA(単調増加演算の累積加算値格納用レ
ジスタ)、25はレジスタB(単調減少演算の累積加算
値格納用レジスタ)、26はスイッチ、27はレジスタ
C(出力用累積加算値格納用レジスタ)、28はAND
回路、29は制御回路である。
【0016】補数変換には「2」の補数で表現する場
合、「1」の補数で表現する場合等があるが、ここでは
「2」の補数で表現する場合を例にとって説明する。従
って、本実施例において「2」の補数変換回路を「1」
の補数変換回路で置き換えることも可能である。本実施
例において、「2」の補数変換回路21に入力値の入力
端子が接続されており、「2」の補数変換回路21の出
力はシフタ22の入力に接続されている。シフタ22の
出力は加算器23の一方の入力に接続されている。加算
器23のSUM出力はレジスタA24とレジスタB25
の入力に接続されている。レジスタA24及びレジスタ
B25の出力はそれぞれスイッチ26の入力に接続され
ている。スイッチ26の出力はAND回路28を介して
加算器23の他方の入力に接続されるとともにレジスタ
C27の入力に接続されている。
【0017】また、制御回路29には「シナプス係数の
下位からiビット目を用いた演算を実行中であるという
信号」、「シナプス係数の下位からiビット目のビット
値」及び「入力値の符号」の入力端子が接続されてお
り、該制御回路29から出力される制御信号S1が
「2」の補数変換回路21に、制御信号S2がシフタ2
2に、制御信号S3がレジスタA24に、制御信号S4
がレジスタB25に、制御信号S5がスイッチ26に、
制御信号S6がAND回路28の一方の入力に、制御信
号S7がレジスタC27に接続されている。
【0018】本実施例においては、図7に示すように、
入力値の全ビットとシナプス係数の1ビットとの部分積
を計算し、その後、それらの結果を加算することにより
シナプス演算を実行する。本実施例における回路動作を
以下に述べる。
【0019】(1) シナプス係数の上位ビットからの演算
を行うため、演算対象となる入力値の全ビットが「2」
の補数変換回路21に、シナプス係数の必要なビットが
制御回路29に適宜転送される。
【0020】(2) 「シナプス係数の下位からiビット目
を用いた演算を実行中であるという信号」、「シナプス
係数の下位からiビット目のビット値」及び「入力値の
符号」から、入力値に対して「2」の補数変換を施すか
否かを制御回路29が決定し、制御信号S1により
「2」の補数変換回路21を制御する。なお、本明細書
(特許請求の範囲を含む。)中、iビット目とは、最初
のビットにつきi=0として数えるものとする。
【0021】(3) 「シナプス係数の下位からiビット目
を用いた演算を実行中であるという信号」から制御回路
29で何ビットシフトさせるかを決定し、制御信号S2
によりシフタ22におけるシフト量を制御する。
【0022】(4) 「シナプス係数の下位からiビット目
を用いた演算を実行中であるという信号」、「シナプス
係数の下位からiビット目のビット値」及び「入力値の
符号」から、加算器23においてシフタ22の出力値と
レジスタA24の値あるいはレジスタB25の値のいず
れとを加算するかを制御回路29において決定し、制御
信号S5によりスイッチ26を介してレジスタA24及
びレジスタB25の出力のうちの一方が選択される。
【0023】(5) 制御回路29より供給される制御信号
S6により、シフタ22の出力にレジスタA24又はレ
ジスタB25のうちの選択された出力を加算するか否か
を制御する。
【0024】(6) 加算器23においてシフタ22の出力
値とAND回路28の出力との加算を行う。
【0025】(7) 「シナプス係数の下位からiビット目
を用いた演算を実行中であるという信号」、「シナプス
係数の下位からiビット目のビット値」及び「入力値の
符号」から、加算の結果をレジスタA24に格納するか
レジスタB25に格納するかを制御回路29において決
定し、制御信号S3及び制御信号S4をトリガとしてレ
ジスタA24又はレジスタB25に加算結果を取り込
む。
【0026】以上説明した回路における初期値設定法及
びビット演算法の詳細を以下に説明する。
【0027】(1) データは入力値、シナプス係数ともに
「2」の補数表現で演算回路に与えられる。ここで、各
値の語長(ビット数)をL、絶対値部分の下位からのビ
ット数をiとする。
【0028】(2) 入力値とシナプス係数の符号ビット
(「2」の補数表現の最上位ビット)より、以下に示す
ように単調増加演算及び単調減少演算の累積加算値の初
期値を設定する。
【0029】(a) 入力値、シナプス係数とも正の時:L
桁の「2」の補数で表現される正のシナプス係数の最小
値は“0”であり、L桁の「2」の補数で表現される正
のシナプス係数の最大値は“2(L-1) −1”である。従
って、シナプス演算の結果とり得る最小値は“0”、最
大値は“入力値×{2(L-1) −1}”である。そこで、
単調増加演算の累積加算値の初期値をシナプス演算の結
果とり得る最小値に設定し、単調減少演算の累積加算値
の初期値を−(シナプス演算の結果とり得る最大値)に
設定する。
【0030】図8を用いて、入力値とシナプス係数が
“4ビットの「2」の補数”で表現された場合について
説明する。この時、シナプス係数のとり得る最小値は
“0”であり、最大値は“7”である。従って、シナプ
ス演算の結果とり得る最小値は“0”、最大値は“3
5”となる。そこで、単調増加演算の累積加算値の初期
値は“0”に、単調減少演算の累積加算値の初期値は
“−35”に設定する。
【0031】なお、単調減少演算については、単調増加
の演算となるように変換する。このため、単調減少演算
の累積加算値の初期値は「2」の補数をとって“−3
5”となるのである。他の場合も同様である。
【0032】(b) 入力値は負、シナプス係数は正の時:
L桁の「2」の補数で表現される正のシナプス係数の最
小値は“0”であり、L桁の「2」の補数で表現される
正のシナプス係数の最大値は“2(L-1) −1”である。
従って、シナプス演算の結果とり得る最小値は“入力値
×{2(L-1) −1}”、最大値は“0”である。そこ
で、単調増加演算の累積加算値の初期値をシナプス演算
の結果とり得る最小値に設定し、単調減少演算の累積加
算値の初期値を−(シナプス演算の結果とり得る最大
値)に設定する。
【0033】図9を用いて、入力値とシナプス係数が
“4ビットの「2」の補数”で表現された場合について
説明する。この時、シナプス係数のとり得る最小値は
“0”であり、最大値は“7”である。従って、シナプ
ス演算の結果とり得る最小値は“−35”、最大値は
“0”となる。そこで、単調増加演算の累積加算値の初
期値は“−35”に、単調減少演算の累積加算値の初期
値は“0”に設定する。
【0034】(c) 入力値は正、シナプス係数は負の時:
L桁の「2」の補数で表現される負のシナプス係数の最
小値は“−(2(L-1))”であり、L桁の「2」の補数
で表現される負のシナプス係数の最大値は“−1”であ
る。従って、シナプス演算の結果とり得る最小値は“入
力値×{−(2(L-1) }”、最大値は“−(入力値)”
である。そこで、単調増加演算の累積加算値の初期値を
シナプス演算の結果とり得る最小値に設定し、単調減少
演算の累積加算値の初期値を−(シナプス演算の結果と
り得る最大値)に設定する。
【0035】図10を用いて、入力値とシナプス係数が
“4ビットの「2」の補数”で表現された場合について
説明する。この時、シナプス係数のとり得る最小値は
“−8”であり、最大値は“−1”である。従って、シ
ナプス演算の結果とり得る最小値は“−40”、最大値
は“−5”となる。そこで、単調増加演算の累積加算値
の初期値は“−40”に、単調減少演算の累積加算値の
初期値は“5”に設定する。
【0036】(d) 入力値、シナプス係数ともに負の時:
L桁の「2」の補数で表現される負のシナプス係数の最
小値は“−(2(L-1))”であり、L桁の「2」の補数
で表現される負のシナプス係数の最大値は“−1”であ
る。従って、シナプス演算の結果とり得る最小値は“−
(入力値)”、最大値は“入力値×{−(2
(L-1) )}”である。そこで、単調増加演算の累積加算
値の初期値をシナプス演算の結果とり得る最小値に設定
し、単調減少演算の累積加算値の初期値を−(シナプス
演算の結果とり得る最大値)に設定する。
【0037】図11を用いて、入力値とシナプス係数が
“4ビットの「2」の補数”で表現された場合について
説明する。この時、シナプス係数のとり得る最小値は
“−8”であり、最大値は“−1”である。従って、シ
ナプス演算の結果、とり得る最小値は“5”、最大値は
“40”となる。そこで、単調増加演算の累積加算値の
初期値は“5”に、単調減少演算の累積加算値の初期値
は“−40”に設定する。
【0038】(3) 入力値とシナプス係数の下位からiビ
ット目のビット値より、以下のようにビット演算を行
う。
【0039】(a) 入力値が正でシナプス係数のビット値
が“1”の時:単調増加演算の累積加算値に“入力値×
i ”を加算する。
【0040】(b) 入力値が正でシナプス係数のビット値
が“0”の時:単調減少演算の累積加算値に“入力値×
i ”を加算する。
【0041】(c) 入力値が負でシナプス係数のビット値
が“1”の時:単調減少演算の累積加算値に“入力値の
「2」の補数×2i ”を加算する。
【0042】(d) 入力値が負でシナプス係数のビット値
が“0”の時:単調増加演算の累積加算値に“入力値の
「2」の補数×2i ”を加算する。
【0043】以上述べた処理により、図12及び13に
示すように、単調増加演算及び単調減少演算の累積加算
値は、演算が進むにつれて初期値から最終値に向かって
徐々に収束していく。
【0044】この際、単調増加演算の累積加算値は、図
12に示すように単調増加しながら最終値に収束するこ
とにより、飽和領域Aに到達したか否かの判定を行う。
一方、単調減少演算の累積加算値は、図13に示すよう
に単調減少しながら最終値に収束することにより、飽和
領域Bに到達したか否かの判定を行う。そして、累積加
算値が飽和領域A又はBに到達した時点で以降の演算を
省略する。
【0045】
【実施例2】図14は本発明の第2の実施例を示すもの
で、ここでは第1の実施例のシナプス演算及び累積回路
においてAND回路を付加し、オフセット処理をするこ
とにより、累積加算値が飽和領域に到達したか否かの判
定を容易に実現できるようになした例を示す。即ち、図
中、30はAND回路であり、その入力にはレジスタA
24及びレジスタB25の最上位ビット値が入力されて
いる。
【0046】累積加算値が図12又は13に示す飽和領
域A、過渡領域、飽和領域Bのどの領域にあるかを判定
するためには、現在の累積加算値と飽和領域境界値A及
び飽和領域境界値Bとを比較すれば良い。ここで、飽和
領域境界値Aとは飽和領域Aと過渡領域との境界の値、
飽和領域境界値Bとは飽和領域Bと過渡領域との境界の
値である。しかし、この判定を行うためには、累積加算
値と飽和領域境界値A及び累積加算値と飽和領域境界値
Bの大小関係を求めるために比較器が2つ必要となる。
今回、これを省略するために以下に述べる処理をとりい
れた。
【0047】(1) 図15に示すように、飽和領域Aを判
定する単調増加演算の累積加算値の初期値から予めSH
(飽和領域境界値Aの値)を減じておき、単調減少演算
の累積加算値の初期値に予めSL(飽和領域境界値Bの
値)を加算しておく。
【0048】(2) このままでは、累積加算値が最終的に
正しい値を示さないので、しきい値処理を行う前に(1)
で加えた値、即ちオフセット値を取り除く。
【0049】以上の処理を行うことにより、単調増加演
算の累積加算値が負から正に変化すれば飽和領域A、単
調減少演算の累積加算値が負から正に変化すれば(実際
には符号を反転させて演算を行うため)飽和領域B、単
調増加演算の累積加算値、単調減少演算の累積加算値と
も負のままであれば過渡領域であると判定することがで
きる。これにより演算停止の判定を容易に行うことがで
きる。
【0050】そして、いずれかの累積加算値の値が正
(最上位ビットが“0”)に変化した時点で累積加算の
最終結果が判明するので以降の演算を省略し、演算の省
略及びシナプス係数メモリ回路へのアクセスの省略を実
現する。
【0051】また、以上述べた演算方法において、単調
増加演算又は単調減少演算の初期値、オフセット値、ビ
ット演算時の加算値の符号を反転させた演算を行えば、
いずれかの累積加算値の値が負(最上位ビットが
“1”)に変化した時点で累積加算の最終結果が判明す
るので以降の演算を省略し、演算の省略及びシナプス係
数メモリ回路へのアクセスの省略を実現することができ
る。
【0052】本発明を採用した場合の演算の省略効果及
びシナプス係数メモリ回路へのアクセスの低減効果をシ
ミュレーションにより評価した結果を図16及び図17
に示す。
【0053】図16は入力数が17個、入力値、シナプ
ス係数とも16ビットの「2」の補数表現、飽和領域境
界値A=0.5、飽和領域境界値B=−0.5の場合の
1ニューロンに対する全シナプス結合の演算を行った場
合について、最終的な累積加算値と演算実施率(本発明
を使用した場合の演算回数の本発明を使用しない場合の
演算回数に対する割合)との関係を示したものである。
この図より、過渡領域においては厳密な累積加算値が必
要となるため演算省略の効果はないが、最終的な累積加
算値が飽和領域にある場合には、飽和領域境界値から離
れると演算省略の効果が顕著に現われることが分かる。
【0054】また、図17は同様の演算における、最終
的な累積加算値とシナプス係数を上位何ビットアクセス
したかの関係を示したものである。この図より、最終的
な累積加算値が飽和領域境界値から離れるとシナプス係
数メモリ回路へのアクセスの低減効果が顕著に現われる
ことが分かる。
【0055】具体的に演算省略の効果を見積ってみる。
最終的な累積加算値が飽和領域になる確率を90%、過
渡領域になる確率を10%とし、最終的な累積加算値が
飽和領域になる時の平均演算実施率を図16より20%
とすれば、演算量を約28%に省略することができる。
【0056】また、同様にシナプス係数メモリ回路への
アクセスも、最終的な累積加算値が飽和領域になる確率
を90%、過渡領域になる確率を10%とし、最終的な
累積加算値が飽和領域になる時の平均アクセスビット数
を図17より4ビットとすれば、シナプス係数メモリ回
路へのアクセスを約31%に低減できる。
【0057】
【発明の効果】以上説明したように本発明によれば、演
算量の削減及びシナプス係数メモリ回路へのアクセス量
の削減が可能となり、シナプス演算の高速化及び演算に
要する消費電力の低減が可能となる。これにより、大規
模で且つ高速動作可能なディジタルニューラルネットワ
ーク回路を構成することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例を示す構成図
【図2】ニューロン回路の構成図
【図3】しきい値回路の伝達特性の説明図
【図4】3層構造のニューラルネットワーク回路の構成
【図5】従来のニューラルネットワーク回路の具体的な
構成図
【図6】シナプス演算及び累積回路の詳細を示す構成図
【図7】本発明におけるシナプス演算法の説明図
【図8】第1の実施例における演算過程の説明図
【図9】第1の実施例における演算過程の説明図
【図10】第1の実施例における演算過程の説明図
【図11】第1の実施例における演算過程の説明図
【図12】飽和領域の判定動作の説明図
【図13】飽和領域の判定動作の説明図
【図14】本発明の第2の実施例を示す構成図
【図15】第2の実施例における飽和領域判定原理の説
明図
【図16】最終的な積和演算結果と演算実施率との関係
を示す説明図
【図17】最終的な積和演算結果と演算に使用したシナ
プス係数のビット数との関係を示す説明図
【符号の説明】
1…セレクタ、2…シナプス演算及び累積回路、3…シ
ナプス係数メモリ回路、4…メモリ読み出し回路、5…
しきい値回路、6…判定回路、7…クロック発生回路、
8…制御回路、21…「2」の補数変換回路、22…シ
フタ、23…加算器、24…レジスタA、25…レジス
タB、26…スイッチ、27…レジスタC、28,30
…AND回路、29…制御回路。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 2進ビット列で表される多数の入力値と
    該多数の入力値に対応する多数のシナプス係数との間で
    それぞれシナプス演算を行い、それらの結果を累積加算
    し、さらにしきい値処理を行って出力値を決定するニュ
    ーラルネットワーク回路において、 一の入力値と該一の入力値に対応するシナプス係数との
    シナプス演算を、入力値の全ビットとシナプス係数の任
    意の1ビットとの間で行い、得られた部分積を加算し、
    これを各入力値及びシナプス係数毎に行って累積加算す
    るシナプス演算及び累積回路と、 シナプス係数を格納したシナプス係数メモリ回路と、 シナプス係数メモリ回路から任意のシナプス係数の任意
    のビットをシナプス演算及び累積回路に転送するメモリ
    読み出し回路と、 シナプス演算及び累積回路の出力に所定のしきい値処理
    を実行するしきい値回路と、 シナプス演算及び累積回路の出力がしきい値回路の伝達
    特性の飽和領域に到達したか否かを判定する判定回路
    と、 シナプス演算をシナプス係数の上位ビットから実行さ
    せ、累積加算値が飽和領域に達した時点で停止させる制
    御回路とを備えたことを特徴とするニューラルネットワ
    ーク回路。
  2. 【請求項2】 入力値の全ビットを任意のビット数だけ
    シフトさせるシフタと、シフタの出力と累積加算値との
    加算を行う加算器と、累積加算値格納用のレジスタとに
    より、入力値とシナプス係数とのシナプス演算を行うシ
    ナプス演算及び累積回路を用い、 シナプス演算の積演算過程で必要な入力値の全ビットと
    シナプス係数の任意の1ビットとの部分積の加算及び累
    積加算に必要な加算を共通の加算器で実行可能としたこ
    とを特徴とする請求項1記載のニューラルネットワーク
    回路。
  3. 【請求項3】 請求項2記載のニューラルネットワーク
    回路を用いた演算方法において、 単調増加演算及び単調減少演算の累積加算値を計算し、
    判定回路において累積加算値としきい値回路の伝達特性
    の飽和領域及び過渡領域の境界値とを比較することによ
    り、2つ以上の飽和領域の判定を行う際、 シナプス演算及び累積回路を、入力値の全ビットを補数
    に変換することが可能な補数変換回路と、補数変換回路
    の出力に対して任意のビット数だけシフトさせるシフタ
    と、シフタの出力を単調増加演算の累積加算値あるいは
    単調減少演算の累積加算値に加算する加算器と、単調増
    加演算の累積加算値格納用のレジスタ及び単調減少演算
    の累積加算値格納用のレジスタとにより構成し、 単調増加演算の累積加算値の初期値をシナプス演算の結
    果とり得る最小値に設定し、単調減少演算の累積加算値
    の初期値をシナプス演算の結果とり得る最大値の符号を
    反転させた値に設定し、 入力値の全ビットとシナプス係数の下位からiビット目
    との演算を行う際は、入力値が正の時には“入力値×2
    i ”を、シナプス係数のビット値が“1”の時には単調
    増加演算の累積加算値に加算し、シナプス係数のビット
    値が“0”の時には単調減少演算の累積加算値に加算
    し、入力値が負の時には“入力値に極性反転を施した値
    ×2i ”を、シナプス係数のビット値が“1”の時には
    単調減少演算の累積加算値に加算し、シナプス係数のビ
    ット値が“0”の時には単調増加演算の累積加算値に加
    算することにより、単調増加演算及び累積減少演算の累
    積加算値を計算することを特徴とするニューラルネット
    ワーク回路を用いた演算方法。
  4. 【請求項4】 請求項3記載のニューラルネットワーク
    回路を用いた演算方法において、 単調増加演算の累積加算値の初期値を「(請求項3記載
    の単調増加演算の累積加算値の初期値)−(過渡領域の
    上限の値)」に設定し、 単調減少演算の累積加算値の初期値を「(請求項3記載
    の単調減少演算の累積加算値の初期値)+(過渡領域の
    下限の値)」に設定することにより、 単調増加演算の累積加算値又は単調減少演算の累積加算
    値の最上位ビットのいずれかの値が“1”から“0”に
    変化した場合に飽和領域であると判定して演算を停止さ
    せることを特徴とするニューラルネットワーク回路を用
    いた演算方法。
  5. 【請求項5】 請求項2記載のニューラルネットワーク
    回路を用いた演算方法において、 単調増加演算及び単調減少演算の累積加算値を計算し、
    判定回路において累積加算値としきい値回路の伝達特性
    の飽和領域及び過渡領域の境界値とを比較することによ
    り、2つ以上の飽和領域の判定を行う際、 シナプス演算及び累積回路を、入力値の全ビットを補数
    に変換することが可能な補数変換回路と、補数変換回路
    の出力に対して任意のビット数だけシフトさせるシフタ
    と、シフタの出力を単調増加演算の累積加算値あるいは
    単調減少演算の累積加算値に加算する加算器と、単調増
    加演算の累積加算値格納用のレジスタ及び単調減少演算
    の累積加算値格納用のレジスタとにより構成し、 単調増加演算の累積加算値の初期値をシナプス演算の結
    果とり得る最小値の符号を反転させた値に設定し、単調
    減少演算の累積加算値の初期値をシナプス演算の結果と
    り得る最大値に設定し、 入力値の全ビットとシナプス係数の下位からiビット目
    との演算を行う際は、入力値が正の時には“入力値に極
    性反転を施した値×2i ”を、シナプス係数のビット値
    が“1”の時には単調増加演算の累積加算値に加算し、
    シナプス係数のビット値が”0”の時には単調減少演算
    の累積加算値に加算し、入力値が負の時には“入力値×
    i ”を、シナプス係数のビット値が“1”の時には単
    調減少演算の累積加算値に加算し、シナプス係数のビッ
    ト値が“0”の時には単調増加演算の累積加算値に加算
    することにより、単調増加演算及び単調減少演算の累積
    加算値を計算することを特徴とするニューラルネットワ
    ーク回路を用いた演算方法。
  6. 【請求項6】 請求項5記載のニューラルネットワーク
    回路を用いた演算方法において、 単調増加演算の累積加算値の初期値を「(請求項5記載
    の単調増加演算の累積加算値の初期値)+(過渡領域の
    上限の値)」に設定し、 単調減少演算の累積加算値の初期値を「(請求項5記載
    の単調減少演算の累積加算値の初期値)−(過渡領域の
    下限の値)」に設定することにより、 単調増加演算の累積加算値又は単調減少演算の累積加算
    値の最上位ビットのいずれかの値が“0”から“1”に
    変化した場合に飽和領域であると判定して演算を停止さ
    せることを特徴とするニューラルネットワーク回路を用
    いた演算方法。
JP6165641A 1994-01-19 1994-07-18 ニューラルネットワーク回路及びこれを用いた演算方法 Pending JPH0830572A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP6165641A JPH0830572A (ja) 1994-07-18 1994-07-18 ニューラルネットワーク回路及びこれを用いた演算方法
US08/373,440 US5630024A (en) 1994-01-19 1995-01-17 Method and apparatus for processing using neural network with reduced calculation amount
KR1019950000739A KR0168975B1 (ko) 1994-01-19 1995-01-18 신경망 회로, 신경망 시스템 및 이를 이용하는 연산 방법
EP95100620A EP0664516B1 (en) 1994-01-19 1995-01-18 Neural network with reduced calculation amount
DE69531418T DE69531418T2 (de) 1994-01-19 1995-01-18 Neuronales netzwerk mit reduzierter Berechnungsmenge
EP00113124A EP1033660A1 (en) 1994-01-19 1995-01-18 Method and apparatus for processing using neural network with reduced calculation amount

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6165641A JPH0830572A (ja) 1994-07-18 1994-07-18 ニューラルネットワーク回路及びこれを用いた演算方法

Publications (1)

Publication Number Publication Date
JPH0830572A true JPH0830572A (ja) 1996-02-02

Family

ID=15816227

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6165641A Pending JPH0830572A (ja) 1994-01-19 1994-07-18 ニューラルネットワーク回路及びこれを用いた演算方法

Country Status (1)

Country Link
JP (1) JPH0830572A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187648A (ja) * 1996-12-19 1998-07-21 Nec Corp ニューラルユニット演算方式およびその装置
JP2018120433A (ja) * 2017-01-25 2018-08-02 株式会社東芝 積和演算器、ネットワークユニットおよびネットワーク装置
JP2023026404A (ja) * 2021-08-13 2023-02-24 台湾積體電路製造股▲ふん▼有限公司 スキップロジックを有するビット単位の積和累積

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187648A (ja) * 1996-12-19 1998-07-21 Nec Corp ニューラルユニット演算方式およびその装置
JP2018120433A (ja) * 2017-01-25 2018-08-02 株式会社東芝 積和演算器、ネットワークユニットおよびネットワーク装置
US10853721B2 (en) 2017-01-25 2020-12-01 Kabushiki Kaisha Toshiba Multiplier accumulator, network unit, and network apparatus
JP2023026404A (ja) * 2021-08-13 2023-02-24 台湾積體電路製造股▲ふん▼有限公司 スキップロジックを有するビット単位の積和累積

Similar Documents

Publication Publication Date Title
KR102285965B1 (ko) 신경망의 컨볼루션 계산을 위한 방법 및 전자 디바이스
US11222254B2 (en) Optimized neuron circuit, and architecture and method for executing neural networks
CN112162723B (zh) 一种量子减法运算方法、装置、电子装置及存储介质
CN108364064B (zh) 操作神经网络的方法、设备及系统
US5095457A (en) Digital multiplier employing CMOS transistors
JP4620943B2 (ja) 積和演算回路及びその方法
JP3634023B2 (ja) ニューラル・ネットワーク用の適応型重み調整回路
CN113850389B (zh) 一种量子线路的构建方法及装置
CN107862374A (zh) 基于流水线的神经网络处理系统和处理方法
KR950001601B1 (ko) 뉴-럴 네트워크 회로
US5630024A (en) Method and apparatus for processing using neural network with reduced calculation amount
JP2019139338A (ja) 情報処理装置、情報処理方法、およびプログラム
CN112561050A (zh) 一种神经网络模型训练方法及装置
JPWO1999066423A1 (ja) データ演算処理装置
JP2022164559A (ja) メモリデバイスおよびその動作方法
JPH0830572A (ja) ニューラルネットワーク回路及びこれを用いた演算方法
CN114239818B (zh) 基于tcam和lut的存内计算架构神经网络加速器
JPWO1999031573A1 (ja) 演算処理用半導体回路および演算処理方法
JPH07210533A (ja) ニューラルネットワーク回路及びこれを用いた演算方法
JP2020013455A (ja) 畳み込みニューラルネットワークの層において畳み込み演算処理を行なう情報処理装置
TWI844108B (zh) 積體電路及操作方法
JPH09101944A (ja) ニューラルネットワーク回路
KR102339896B1 (ko) 프로세싱 엘리먼트, 이의 동작 방법, 및 이를 포함하는 가속기
CN114548415A (zh) 基于neqr表达的量子fast角点检测方法
CN116992932A (zh) 一种数据片外分块传输的参数化lstm加速系统及其设计方法