JPH07210617A - ニューラルネットワーク回路および本回路を用いた演算方法 - Google Patents
ニューラルネットワーク回路および本回路を用いた演算方法Info
- Publication number
- JPH07210617A JPH07210617A JP6003885A JP388594A JPH07210617A JP H07210617 A JPH07210617 A JP H07210617A JP 6003885 A JP6003885 A JP 6003885A JP 388594 A JP388594 A JP 388594A JP H07210617 A JPH07210617 A JP H07210617A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- value
- synapse
- output
- input
- 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
Links
Landscapes
- Image Analysis (AREA)
Abstract
(57)【要約】
【目的】シナプス演算量、累積加算演算量およびシナプ
ス係数のアクセスを削減し、大規模なネットワークに適
用して高速動作の可能なニューラルネットワーク回路と
これを用いた演算方法を提供する。 【構成】ニューラルネットワーク回路では、従来のニュ
ーロン回路の上にさらに、基準入力値と飽和領域境界値
と基準出力値を格納する手段と、入力値と基準入力値と
の減算回路と、入力値と基準入力値との一致回路と、累
積回路の出力と飽和領域境界値との比較器と、シナプス
係数メモリ回路からシナプス係数を読み出しシナプス演
算回路に出力するメモリ読み出し回路と、しきい値回路
出力と基準出力値の出力を切り換えるスイッチと、また
減算回路とメモリ読み出し回路の各出力の符号情報、比
較器からの比較結果情報、一致回路の出力情報の入力に
より、入力選択と、シナプス係数の読み出しと、スイッ
チの切り換えとを制御する制御回路の構成を備える。
ス係数のアクセスを削減し、大規模なネットワークに適
用して高速動作の可能なニューラルネットワーク回路と
これを用いた演算方法を提供する。 【構成】ニューラルネットワーク回路では、従来のニュ
ーロン回路の上にさらに、基準入力値と飽和領域境界値
と基準出力値を格納する手段と、入力値と基準入力値と
の減算回路と、入力値と基準入力値との一致回路と、累
積回路の出力と飽和領域境界値との比較器と、シナプス
係数メモリ回路からシナプス係数を読み出しシナプス演
算回路に出力するメモリ読み出し回路と、しきい値回路
出力と基準出力値の出力を切り換えるスイッチと、また
減算回路とメモリ読み出し回路の各出力の符号情報、比
較器からの比較結果情報、一致回路の出力情報の入力に
より、入力選択と、シナプス係数の読み出しと、スイッ
チの切り換えとを制御する制御回路の構成を備える。
Description
【0001】
【産業上の利用分野】本発明は、シナプス演算器、累積
回路、しきい値回路から構成されるニューロン回路を多
数接続して構成されるニューラルネットワーク回路に係
り、特に大規模ネットワーク回路における高速動作に好
適な回路構成と演算法に関する。
回路、しきい値回路から構成されるニューロン回路を多
数接続して構成されるニューラルネットワーク回路に係
り、特に大規模ネットワーク回路における高速動作に好
適な回路構成と演算法に関する。
【0002】
【従来の技術】ニューラルネットワーク回路は図10に
示すようにニューロン回路を単位として、ニューロン回
路を多数接続して構成される。1個のニューロン回路は
図8に示すように多入力1出力の回路である。複数の入
力にはそれぞれ対応するシナプス係数があり、入力値と
シナプス係数値との積、差の絶対値あるいは差の二乗な
どの演算を行なった後に累積加算が行われる。累積加算
の結果の大きさにより出力値が決定される。出力値を最
終的に決定するしきい値回路は図9に示すような伝達特
性を持っている。図9(a)のシグモイド関数形が最も
汎用性が高いが、演算を簡単化するため図9(b)ある
いは図9(c)のように簡単化したもの、また、機能を
高めるため図9(d)のように非単調にしたものも使用
できる。このニューロン回路の接続によりニューラルネ
ットワークの構造が決まる。最も一般的に用いられるの
は図10に示すような3層構造のニューラルネットワー
クである。3層構造の場合には、第2層のニューロン回
路の層を中間層、第3層のニューロン回路の層を出力層
とよんでいる。それぞれの入力端子からの信号は全ニュ
ーロン回路に並列に入力され、それぞれのニューロン回
路は並列に入力信号を処理する。入力信号が加えられる
と、特定のニューロン回路が反応して認識などの処理が
実現される。従来、上記の様な機能を持つ大規模なニュ
ーラルネットワーク回路を構成する方法としては、図1
1に示すようにマイクロプロセッサとRAMとを組み合
わせる方法が一般的である。本方法においては、シナプ
ス演算、累積加算、しきい値処理をマイクロプロセッサ
で行ない、シナプス係数はRAMに格納する。そして、
マイクロプロセッサで演算中シナプス係数が必要となっ
た時点でRAMにアクセスに行くという処理を行なう。
示すようにニューロン回路を単位として、ニューロン回
路を多数接続して構成される。1個のニューロン回路は
図8に示すように多入力1出力の回路である。複数の入
力にはそれぞれ対応するシナプス係数があり、入力値と
シナプス係数値との積、差の絶対値あるいは差の二乗な
どの演算を行なった後に累積加算が行われる。累積加算
の結果の大きさにより出力値が決定される。出力値を最
終的に決定するしきい値回路は図9に示すような伝達特
性を持っている。図9(a)のシグモイド関数形が最も
汎用性が高いが、演算を簡単化するため図9(b)ある
いは図9(c)のように簡単化したもの、また、機能を
高めるため図9(d)のように非単調にしたものも使用
できる。このニューロン回路の接続によりニューラルネ
ットワークの構造が決まる。最も一般的に用いられるの
は図10に示すような3層構造のニューラルネットワー
クである。3層構造の場合には、第2層のニューロン回
路の層を中間層、第3層のニューロン回路の層を出力層
とよんでいる。それぞれの入力端子からの信号は全ニュ
ーロン回路に並列に入力され、それぞれのニューロン回
路は並列に入力信号を処理する。入力信号が加えられる
と、特定のニューロン回路が反応して認識などの処理が
実現される。従来、上記の様な機能を持つ大規模なニュ
ーラルネットワーク回路を構成する方法としては、図1
1に示すようにマイクロプロセッサとRAMとを組み合
わせる方法が一般的である。本方法においては、シナプ
ス演算、累積加算、しきい値処理をマイクロプロセッサ
で行ない、シナプス係数はRAMに格納する。そして、
マイクロプロセッサで演算中シナプス係数が必要となっ
た時点でRAMにアクセスに行くという処理を行なう。
【0003】
【発明が解決しようとする課題】このような構成におい
ては、RAMを増設することにより適用するニューラル
ネットワークの規模を拡大でき、プログラムを替えるこ
とにより演算のアルゴリズムを変更することも容易であ
る。しかし、その半面RAMへのシナプス係数のアクセ
ス速度が動作速度を規定し、さらに、ニューラルネット
ワークの規模が大きくなるとシナプス演算および累積加
算の演算量が増加して、これも高速動作を妨げる要因の
1つとなっている。これは、従来技術においては全シナ
プス結合について、入力値の全ビットとシナプス係数の
全ビットとのシナプス演算およびシナプス演算の結果の
累積加算を行なっていたため、演算量が膨大となりそれ
に伴うシナプス係数のRAMへのアクセスにも時間を要
したためである。
ては、RAMを増設することにより適用するニューラル
ネットワークの規模を拡大でき、プログラムを替えるこ
とにより演算のアルゴリズムを変更することも容易であ
る。しかし、その半面RAMへのシナプス係数のアクセ
ス速度が動作速度を規定し、さらに、ニューラルネット
ワークの規模が大きくなるとシナプス演算および累積加
算の演算量が増加して、これも高速動作を妨げる要因の
1つとなっている。これは、従来技術においては全シナ
プス結合について、入力値の全ビットとシナプス係数の
全ビットとのシナプス演算およびシナプス演算の結果の
累積加算を行なっていたため、演算量が膨大となりそれ
に伴うシナプス係数のRAMへのアクセスにも時間を要
したためである。
【0004】本発明の目的は、シナプス演算量、累積加
算演算量およびシナプス係数メモリ回路へのシナプス係
数のアクセスを削減し、大規模なニューラルネットワー
クに適用可能でしかも高速動作の可能な、ニューラルネ
ットワーク回路および本回路を用いた演算方法を提供す
ることにある。
算演算量およびシナプス係数メモリ回路へのシナプス係
数のアクセスを削減し、大規模なニューラルネットワー
クに適用可能でしかも高速動作の可能な、ニューラルネ
ットワーク回路および本回路を用いた演算方法を提供す
ることにある。
【0005】
【課題を解決するための手段】通常ニューラルネットワ
ーク回路においては、入力値とそれに対応するシナプス
係数値とを用いて、全結合に対するシナプス演算、およ
び全ニューロンに対する累積加算が行われる。しかし、
ニューラルネットワーク回路において多数の入力信号が
連続してニューラルネットワーク回路に加えられる時、
全ての入力信号が変化しない場合もある。例えば、パタ
ーン認識にニューラルネットワークを応用する場合に
は、背景に相当する入力信号については、同一信号が連
続することがよくある。また、一般によく使用される3
層構造のニューラルネットワークでは、中間層の出力を
出力層に入力するが、大多数の中間層ニューロンは出力
レベルが飽和領域にあって、一定値を出力することが多
い。この場合、出力層のニューロンの入力値としては、
大多数が変化しないことになる。本発明では利用できる
一定値についてはメモリしておき、一定出力値が利用で
きるときはこの出力を用いることにして極力演算を削減
し、これにより演算と演算に伴う大容量メモリへのアク
セスを削減するような回路構成とこれによる演算法を手
段として採用するものである。
ーク回路においては、入力値とそれに対応するシナプス
係数値とを用いて、全結合に対するシナプス演算、およ
び全ニューロンに対する累積加算が行われる。しかし、
ニューラルネットワーク回路において多数の入力信号が
連続してニューラルネットワーク回路に加えられる時、
全ての入力信号が変化しない場合もある。例えば、パタ
ーン認識にニューラルネットワークを応用する場合に
は、背景に相当する入力信号については、同一信号が連
続することがよくある。また、一般によく使用される3
層構造のニューラルネットワークでは、中間層の出力を
出力層に入力するが、大多数の中間層ニューロンは出力
レベルが飽和領域にあって、一定値を出力することが多
い。この場合、出力層のニューロンの入力値としては、
大多数が変化しないことになる。本発明では利用できる
一定値についてはメモリしておき、一定出力値が利用で
きるときはこの出力を用いることにして極力演算を削減
し、これにより演算と演算に伴う大容量メモリへのアク
セスを削減するような回路構成とこれによる演算法を手
段として採用するものである。
【0006】そこで、上記の目的を達成するための本発
明のニューラルネットワーク回路では、これを構成する
ニューロン回路は、例えば図1に示すように、シナプス
演算回路1と累積回路2としきい値回路3を有する従来
の構成の上にさらに、複数の基準入力値を格納する基準
入力値格納手段12と、しきい値回路の伝達特性におけ
る飽和領域と過渡領域との境界値である飽和領域境界値
を格納する飽和領域境界値格納手段7、8と、基準入力
値に対応するニューロン出力を基準出力値として格納す
る基準出力値格納手段18と、入力値と基準入力値との
差分を出力し該出力を上記シナプス演算回路1に入力す
る減算回路14と、上記入力値と基準入力値との一致を
検出する一致回路15と、上記累積回路の出力と上記飽
和領域境界値を比較する比較器9、10と、上記シナプ
ス係数を格納するシナプス係数メモリ回路4からシナプ
ス係数を読み出して上記シナプス演算回路1に出力する
メモリ読み出し回路5と、上記しきい値回路3からの出
力と上記基準出力値格納手段18からの出力を切り換え
てその何れかの出力をニューロン出力とするスイッチ1
9と、上記減算回路14の差分出力の符号情報と、上記
メモリ読み出し回路5のシナプス係数出力の符号情報
と、上記比較器9、10からの比較結果情報と、さらに
上記一致回路15の出力情報との入力情報により、上記
入力値および基準入力値を選択する入力選択制御と、上
記メモリ読み出し回路5に対するシナプス係数の読み出
し制御と、上記スイッチ19に対する切り換え制御を行
う制御回路11の構成を備えることとする。
明のニューラルネットワーク回路では、これを構成する
ニューロン回路は、例えば図1に示すように、シナプス
演算回路1と累積回路2としきい値回路3を有する従来
の構成の上にさらに、複数の基準入力値を格納する基準
入力値格納手段12と、しきい値回路の伝達特性におけ
る飽和領域と過渡領域との境界値である飽和領域境界値
を格納する飽和領域境界値格納手段7、8と、基準入力
値に対応するニューロン出力を基準出力値として格納す
る基準出力値格納手段18と、入力値と基準入力値との
差分を出力し該出力を上記シナプス演算回路1に入力す
る減算回路14と、上記入力値と基準入力値との一致を
検出する一致回路15と、上記累積回路の出力と上記飽
和領域境界値を比較する比較器9、10と、上記シナプ
ス係数を格納するシナプス係数メモリ回路4からシナプ
ス係数を読み出して上記シナプス演算回路1に出力する
メモリ読み出し回路5と、上記しきい値回路3からの出
力と上記基準出力値格納手段18からの出力を切り換え
てその何れかの出力をニューロン出力とするスイッチ1
9と、上記減算回路14の差分出力の符号情報と、上記
メモリ読み出し回路5のシナプス係数出力の符号情報
と、上記比較器9、10からの比較結果情報と、さらに
上記一致回路15の出力情報との入力情報により、上記
入力値および基準入力値を選択する入力選択制御と、上
記メモリ読み出し回路5に対するシナプス係数の読み出
し制御と、上記スイッチ19に対する切り換え制御を行
う制御回路11の構成を備えることとする。
【0007】あるいは、このようなニューラルネットワ
ーク回路において、上記ニューロン回路の中にさらに、
例えば図1に示すように、シナプス係数メモリ回路4と
は別にシナプス係数の符号情報を格納するシナプス係数
の符号メモリ回路16を設け、かつ、上記制御回路11
の出力により符号読み出し回路17を制御し、該制御に
より、符号読み出し回路17を介してシナプス係数の符
号メモリ回路16からシナプス係数の符号情報を上記制
御回路11に入力する構成を設けることとすれば、後述
において詳述するように、演算が省略できるか否かの判
定に要する符号情報をキャッシュメモリのような小容量
メモリから高速に取り込むことができ好ましい。
ーク回路において、上記ニューロン回路の中にさらに、
例えば図1に示すように、シナプス係数メモリ回路4と
は別にシナプス係数の符号情報を格納するシナプス係数
の符号メモリ回路16を設け、かつ、上記制御回路11
の出力により符号読み出し回路17を制御し、該制御に
より、符号読み出し回路17を介してシナプス係数の符
号メモリ回路16からシナプス係数の符号情報を上記制
御回路11に入力する構成を設けることとすれば、後述
において詳述するように、演算が省略できるか否かの判
定に要する符号情報をキャッシュメモリのような小容量
メモリから高速に取り込むことができ好ましい。
【0008】また、上記の目的を達成するため、本発明
のニューラルネットワーク回路を用いた演算方法として
は、例えば図1に示すように、上記一致回路15におい
て上記入力値と基準入力値とを比較し、両者の値が異な
る場合で、かつ、減算回路14の出力値の符号情報と、
メモリ読み出し回路5によりシナプス係数メモリ回路4
から転送されるシナプス係数の符号情報とから、または
符号読み出し回路17によりシナプス係数の符号メモリ
回路16から転送されるシナプス係数の符号情報とから
求められる累積加算値の変化の方向が上記しきい値回路
の伝達特性における飽和領域と過渡領域の境界の飽和領
域境界値に近づく方向である時のみ、メモリ読み出し回
路5は基準入力値と異なる入力値に対応するシナプス係
数をシナプス係数メモリ回路4から取り込みシナプス演
算回路1に転送し、該シナプス演算回路1において入力
値と基準入力値との差とシナプス係数値とのシナプス演
算を行ない、さらにこのシナプス演算結果と基準入力時
の累積加算値とを累積回路2により累積し、その結果を
しきい値回路3によるしきい値処理を介してニューロン
出力値を決定し、それ以外の時には基準入力値格納手段
12に保持されている基準入力時の出力値をニューロン
出力とすることとする。
のニューラルネットワーク回路を用いた演算方法として
は、例えば図1に示すように、上記一致回路15におい
て上記入力値と基準入力値とを比較し、両者の値が異な
る場合で、かつ、減算回路14の出力値の符号情報と、
メモリ読み出し回路5によりシナプス係数メモリ回路4
から転送されるシナプス係数の符号情報とから、または
符号読み出し回路17によりシナプス係数の符号メモリ
回路16から転送されるシナプス係数の符号情報とから
求められる累積加算値の変化の方向が上記しきい値回路
の伝達特性における飽和領域と過渡領域の境界の飽和領
域境界値に近づく方向である時のみ、メモリ読み出し回
路5は基準入力値と異なる入力値に対応するシナプス係
数をシナプス係数メモリ回路4から取り込みシナプス演
算回路1に転送し、該シナプス演算回路1において入力
値と基準入力値との差とシナプス係数値とのシナプス演
算を行ない、さらにこのシナプス演算結果と基準入力時
の累積加算値とを累積回路2により累積し、その結果を
しきい値回路3によるしきい値処理を介してニューロン
出力値を決定し、それ以外の時には基準入力値格納手段
12に保持されている基準入力時の出力値をニューロン
出力とすることとする。
【0009】あるいはこのような演算方法において、上
記シナプス演算を、入力値と基準入力値との差とシナプ
ス係数値との部分積とその累積加算に分解して実行し、
シナプス演算の累積加算値が演算の進行に伴い単調増加
あるいは単調減少となるように演算を進め、次に、シナ
プス演算の累積加算値と基準入力時の累積加算値とを合
計し、この合計値と、しきい値回路の伝達特性における
飽和領域境界値との大小関係を比較器において比較し、
合計値が飽和領域となることが判明した時点で演算を停
止させるようにしてもよい。
記シナプス演算を、入力値と基準入力値との差とシナプ
ス係数値との部分積とその累積加算に分解して実行し、
シナプス演算の累積加算値が演算の進行に伴い単調増加
あるいは単調減少となるように演算を進め、次に、シナ
プス演算の累積加算値と基準入力時の累積加算値とを合
計し、この合計値と、しきい値回路の伝達特性における
飽和領域境界値との大小関係を比較器において比較し、
合計値が飽和領域となることが判明した時点で演算を停
止させるようにしてもよい。
【0010】
【作用】本発明のニューラルネットワーク回路では、各
ニューロン演算回路毎に、各入力の基準となる値に対し
ては基準入力値格納手段を、基準入力値が入力された時
の累積加算値に対しては累積回路の中に例えば図2に示
すように基準累積加算値格納手段を、基準累積加算値が
しきい値回路に入力された時の出力値に対しては基準出
力値格納手段を設けており、これによりニューロンの基
準となる演算結果を記憶保持できるようになる。そし
て、入力値が基準入力値と異なった場合のみシナプス演
算を実行することとし、その演算を、入力値と基準入力
値との差から最終的な累積加算値を評価しニューロン出
力を得るようにして演算を少なくする。またこれによ
り、シナプス係数値のシナプス係数メモリ回路からの読
み出しも、入力値が基準入力値に対し変化したシナプス
に対応するものだけでよくなり、大幅にシナプス係数メ
モリ回路へのアクセス回数が低減できるようになる。大
規模なニューラルネットワーク回路においては、シナプ
ス係数メモリは外部メモリのような大容量を要するが、
これに対するアクセス回数の低減は演算の省略とともに
一層大きな高速化効果をもたらす。以上のようなわけ
で、本発明によれば、無駄なシナプス演算を省略し、さ
らに無駄なシナプス係数のシナプス係数メモリ回路から
の読み出しを省略することにより、大規模なニューラル
ネットワークにおいても、高速動作可能なニューラルネ
ットワーク回路およびこれを用いた演算が実現可能にな
る。
ニューロン演算回路毎に、各入力の基準となる値に対し
ては基準入力値格納手段を、基準入力値が入力された時
の累積加算値に対しては累積回路の中に例えば図2に示
すように基準累積加算値格納手段を、基準累積加算値が
しきい値回路に入力された時の出力値に対しては基準出
力値格納手段を設けており、これによりニューロンの基
準となる演算結果を記憶保持できるようになる。そし
て、入力値が基準入力値と異なった場合のみシナプス演
算を実行することとし、その演算を、入力値と基準入力
値との差から最終的な累積加算値を評価しニューロン出
力を得るようにして演算を少なくする。またこれによ
り、シナプス係数値のシナプス係数メモリ回路からの読
み出しも、入力値が基準入力値に対し変化したシナプス
に対応するものだけでよくなり、大幅にシナプス係数メ
モリ回路へのアクセス回数が低減できるようになる。大
規模なニューラルネットワーク回路においては、シナプ
ス係数メモリは外部メモリのような大容量を要するが、
これに対するアクセス回数の低減は演算の省略とともに
一層大きな高速化効果をもたらす。以上のようなわけ
で、本発明によれば、無駄なシナプス演算を省略し、さ
らに無駄なシナプス係数のシナプス係数メモリ回路から
の読み出しを省略することにより、大規模なニューラル
ネットワークにおいても、高速動作可能なニューラルネ
ットワーク回路およびこれを用いた演算が実現可能にな
る。
【0011】また本発明では、演算を極力省略するとい
う観点から、入力値が基準入力値と一致する場合には演
算を省略することのほか、両者の値が異なる場合でも演
算をする必要があるかどうかを判定して所要の演算をす
ることになる。この判定に、本発明では、新しい入力値
に対応する累積加算値がしきい値回路の伝達特性におけ
る飽和領域と過渡領域との境界の飽和領域境界値に近づ
く方向にあるかどうかを判定評価の大きな要素とする。
すなわち、飽和領域境界値から遠ざかり飽和領域に入る
方向であれば演算を省略する。新しい入力値に対して上
記の飽和領域境界値に近づく方向にあるかどうかについ
ては、つまり演算が必要かどうかの判定については、後
述において詳述するように減算回路出力値の符号情報
と、シナプス係数の符号情報のみでもその方向がわか
る。大規模のニューラルネットワーク回路においては、
シナプス係数のメモリは上記のように外部メモリのよう
な大容量メモリを要するが、符号情報のメモリの場合に
はプロセッサに付随するキャッシュメモリのような小容
量で済む。したがってこのような符号情報をシナプス係
数のメモリとは別に回路構成の中に内蔵すればメモリに
高速にアクセスすることが可能になり、本発明の高速演
算の利点がさらに一層拡大する。
う観点から、入力値が基準入力値と一致する場合には演
算を省略することのほか、両者の値が異なる場合でも演
算をする必要があるかどうかを判定して所要の演算をす
ることになる。この判定に、本発明では、新しい入力値
に対応する累積加算値がしきい値回路の伝達特性におけ
る飽和領域と過渡領域との境界の飽和領域境界値に近づ
く方向にあるかどうかを判定評価の大きな要素とする。
すなわち、飽和領域境界値から遠ざかり飽和領域に入る
方向であれば演算を省略する。新しい入力値に対して上
記の飽和領域境界値に近づく方向にあるかどうかについ
ては、つまり演算が必要かどうかの判定については、後
述において詳述するように減算回路出力値の符号情報
と、シナプス係数の符号情報のみでもその方向がわか
る。大規模のニューラルネットワーク回路においては、
シナプス係数のメモリは上記のように外部メモリのよう
な大容量メモリを要するが、符号情報のメモリの場合に
はプロセッサに付随するキャッシュメモリのような小容
量で済む。したがってこのような符号情報をシナプス係
数のメモリとは別に回路構成の中に内蔵すればメモリに
高速にアクセスすることが可能になり、本発明の高速演
算の利点がさらに一層拡大する。
【0012】さらに、上記シナプス演算を、入力値と基
準入力値との差とシナプス係数値との部分積とその累積
加算に分解して上位ビットから演算を実行し、シナプス
演算の累積加算値が演算の進行に伴い単調増加あるいは
単調減少するように演算を進め、次にシナプス演算の累
積加算値と基準入力時の累積加算値とを合計し、この合
計値と、しきい値回路の伝達特性における飽和領域境界
値との大小関係を比較器において比較し、合計値が飽和
領域となることが判明した時点で演算を停止させる。例
えば、入力値、シナプス係数値とも16ビットである場
合を考える。シナプス演算を“部分積+累積加算”に分
解せずに従来法で行った場合には、常に16ビット×1
6ビットの積演算を行い、さらにこの演算に必要なシナ
プス係数16ビットをシナプス係数メモリ回路から読み
出す必要がある。これに対し、本方法のように上位ビッ
トからの演算に分解してシナプス演算を実行すれば、上
位の数ビットの演算のみで合計値が飽和領域となること
が判明する場合もあり、それ以降の下位ビットの演算お
よびその演算に必要なシナプス係数の読み出しを省略す
ることができ、演算の高速化を図ることが可能になる。
準入力値との差とシナプス係数値との部分積とその累積
加算に分解して上位ビットから演算を実行し、シナプス
演算の累積加算値が演算の進行に伴い単調増加あるいは
単調減少するように演算を進め、次にシナプス演算の累
積加算値と基準入力時の累積加算値とを合計し、この合
計値と、しきい値回路の伝達特性における飽和領域境界
値との大小関係を比較器において比較し、合計値が飽和
領域となることが判明した時点で演算を停止させる。例
えば、入力値、シナプス係数値とも16ビットである場
合を考える。シナプス演算を“部分積+累積加算”に分
解せずに従来法で行った場合には、常に16ビット×1
6ビットの積演算を行い、さらにこの演算に必要なシナ
プス係数16ビットをシナプス係数メモリ回路から読み
出す必要がある。これに対し、本方法のように上位ビッ
トからの演算に分解してシナプス演算を実行すれば、上
位の数ビットの演算のみで合計値が飽和領域となること
が判明する場合もあり、それ以降の下位ビットの演算お
よびその演算に必要なシナプス係数の読み出しを省略す
ることができ、演算の高速化を図ることが可能になる。
【0013】
【実施例】本発明においては、あらかじめ基準入力値、
基準累積加算値および基準出力値を保持しておき、入力
値が基準入力値と異なった場合のみ、入力の差分に対応
するシナプス演算を実行し、このシナプス演算の結果を
基準累積加算値に加算して最終的な累積値を求める。こ
れにより、入力値と基準入力値が一致する場合、全ての
シナプス演算は省略でき、基準出力値を出力端子に出力
する。これにより、シナプス演算量およびシナプス係数
値のシナプス係数メモリ回路へのアクセス回数を大幅に
削減できる。演算量およびアクセス回数の削減は以下に
述べるように2段階の処理で実現する。
基準累積加算値および基準出力値を保持しておき、入力
値が基準入力値と異なった場合のみ、入力の差分に対応
するシナプス演算を実行し、このシナプス演算の結果を
基準累積加算値に加算して最終的な累積値を求める。こ
れにより、入力値と基準入力値が一致する場合、全ての
シナプス演算は省略でき、基準出力値を出力端子に出力
する。これにより、シナプス演算量およびシナプス係数
値のシナプス係数メモリ回路へのアクセス回数を大幅に
削減できる。演算量およびアクセス回数の削減は以下に
述べるように2段階の処理で実現する。
【0014】<第1段階の演算およびシナプス係数値ア
クセスの省略>第1段階では、最終的な累積加算値が基
準累積加算値から出発して飽和領域境界値(図9に示す
しきい値回路の伝達特性における飽和領域と過渡領域の
境界)に近づく方向に変化するのか、遠ざかる方向に変
化するのかを判断し、飽和領域境界値に近づく場合のみ
シナプス演算を行なうことにより、演算およびシナプス
係数値アクセスの省略を行なう。シナプス演算が積演算
である場合、具体的には以下のように場合分けして処理
を行なう。
クセスの省略>第1段階では、最終的な累積加算値が基
準累積加算値から出発して飽和領域境界値(図9に示す
しきい値回路の伝達特性における飽和領域と過渡領域の
境界)に近づく方向に変化するのか、遠ざかる方向に変
化するのかを判断し、飽和領域境界値に近づく場合のみ
シナプス演算を行なうことにより、演算およびシナプス
係数値アクセスの省略を行なう。シナプス演算が積演算
である場合、具体的には以下のように場合分けして処理
を行なう。
【0015】(1)基準累積加算値<飽和領域境界値1
の場合(図3) (a)入力値<基準入力値、かつ、シナプス係数値>0
の時(図3(a)に対応) 累積加算値は飽和領域境界値から遠ざかる方向に変化
し、新しい累積加算値も飽和領域Bとなることが明らか
なので演算を省略する。 (b)入力値<基準入力値、かつ、シナプス係数値<0
の時(図3(b)に対応) 累積加算値は飽和領域境界値に近付く方向に変化し、現
段階では最終的な累積加算値が飽和領域か過渡領域か判
断できないので、第2段階の処理に進む。 (c)入力値>基準入力値、かつ、シナプス係数値>0
の時(図3(b)に対応) 累積加算値は飽和領域境界値に近付く方向に変化し、現
段階では最終的な累積加算値が飽和領域か過渡領域か判
断できないので、第2段階の処理に進む。 (d)入力値>基準入力値、かつ、シナプス係数値<0
の時(図3(a)に対応) 累積加算値は飽和領域境界値から遠ざかる方向に変化
し、新しい累積加算値も飽和領域Bとなることが明らか
なので演算を省略する。
の場合(図3) (a)入力値<基準入力値、かつ、シナプス係数値>0
の時(図3(a)に対応) 累積加算値は飽和領域境界値から遠ざかる方向に変化
し、新しい累積加算値も飽和領域Bとなることが明らか
なので演算を省略する。 (b)入力値<基準入力値、かつ、シナプス係数値<0
の時(図3(b)に対応) 累積加算値は飽和領域境界値に近付く方向に変化し、現
段階では最終的な累積加算値が飽和領域か過渡領域か判
断できないので、第2段階の処理に進む。 (c)入力値>基準入力値、かつ、シナプス係数値>0
の時(図3(b)に対応) 累積加算値は飽和領域境界値に近付く方向に変化し、現
段階では最終的な累積加算値が飽和領域か過渡領域か判
断できないので、第2段階の処理に進む。 (d)入力値>基準入力値、かつ、シナプス係数値<0
の時(図3(a)に対応) 累積加算値は飽和領域境界値から遠ざかる方向に変化
し、新しい累積加算値も飽和領域Bとなることが明らか
なので演算を省略する。
【0016】(2)飽和領域境界値1<基準累積加算値
<飽和領域境界値2の場合(図4) この場合には、累積加算値はいずれにしても飽和領域境
界値に近づく方向に変化し、演算開始前には最終的な累
積加算値が飽和領域か過渡領域か判断できないので、第
2段階の処理に進む。(図4(a)および図4(b)に
対応) (3)飽和領域境界値2<基準累積加算値の場合(図
5) (a)入力値<基準入力値、かつ、シナプス係数>0
の時(図5(a)に対応) 累積加算値は飽和領域境界値に近付く方向に変化し、現
段階では最終的な累積加算値が飽和領域か過渡領域か判
断できないので、第2段階の処理に進む。 (b)入力値<基準入力値、かつ、シナプス係数<0
の時(図5(b)に対応) 累積加算値は飽和領域境界値から遠ざかる方向に変化
し、新しい累積加算値も飽和領域Aとなることが明らか
なので演算を省略する。 (c)入力値>基準入力値、かつ、シナプス係数>0
の時(図5(b)に対応) 累積加算値は飽和領域境界値から遠ざかる方向に変化
し、新しい累積加算値も飽和領域Aとなることが明らか
なので演算を省略する。 (d)入力値>基準入力値、かつ、シナプス係数<0
の時(図5(a)に対応) 累積加算値は飽和領域境界値に近付く方向に変化し、現
段階では最終的な累積加算値が飽和領域か過渡領域か判
断できないので、第2段階の処理に進む。
<飽和領域境界値2の場合(図4) この場合には、累積加算値はいずれにしても飽和領域境
界値に近づく方向に変化し、演算開始前には最終的な累
積加算値が飽和領域か過渡領域か判断できないので、第
2段階の処理に進む。(図4(a)および図4(b)に
対応) (3)飽和領域境界値2<基準累積加算値の場合(図
5) (a)入力値<基準入力値、かつ、シナプス係数>0
の時(図5(a)に対応) 累積加算値は飽和領域境界値に近付く方向に変化し、現
段階では最終的な累積加算値が飽和領域か過渡領域か判
断できないので、第2段階の処理に進む。 (b)入力値<基準入力値、かつ、シナプス係数<0
の時(図5(b)に対応) 累積加算値は飽和領域境界値から遠ざかる方向に変化
し、新しい累積加算値も飽和領域Aとなることが明らか
なので演算を省略する。 (c)入力値>基準入力値、かつ、シナプス係数>0
の時(図5(b)に対応) 累積加算値は飽和領域境界値から遠ざかる方向に変化
し、新しい累積加算値も飽和領域Aとなることが明らか
なので演算を省略する。 (d)入力値>基準入力値、かつ、シナプス係数<0
の時(図5(a)に対応) 累積加算値は飽和領域境界値に近付く方向に変化し、現
段階では最終的な累積加算値が飽和領域か過渡領域か判
断できないので、第2段階の処理に進む。
【0017】<第2段階の演算およびシナプス係数値ア
クセスの省略>第2段階では、入力の差分(入力値と基
準入力値との差)とシナプス係数値とのシナプス演算を
行ない、この結果を基準累積加算値に加算して最終的な
累積加算値を求める。この際、シナプス演算は入力の差
分とシナプス係数値を表す2進ビット列の上位ビットか
ら演算を進めて概算値から徐々に正確な最終結果が得ら
れるような演算を行なう。そして、シナプス演算の途中
経過は累積加算回路で基準累積加算値と累積加算し、こ
の累積結果は飽和領域境界値1および飽和領域境界値2
と比較して、飽和領域であることが判明した時点で以下
の演算およびシナプス係数値のアクセスを省略する。
クセスの省略>第2段階では、入力の差分(入力値と基
準入力値との差)とシナプス係数値とのシナプス演算を
行ない、この結果を基準累積加算値に加算して最終的な
累積加算値を求める。この際、シナプス演算は入力の差
分とシナプス係数値を表す2進ビット列の上位ビットか
ら演算を進めて概算値から徐々に正確な最終結果が得ら
れるような演算を行なう。そして、シナプス演算の途中
経過は累積加算回路で基準累積加算値と累積加算し、こ
の累積結果は飽和領域境界値1および飽和領域境界値2
と比較して、飽和領域であることが判明した時点で以下
の演算およびシナプス係数値のアクセスを省略する。
【0018】入力の差分とシナプス係数値との上位ビッ
トからのシナプス演算および累積加算は具体的には、以
下に示す処理を行なう。 (1)累積加算値の初期値は以下のように設定する。 (a)入力の差分の符号とシナプス係数の符号が等しい
時 基準累積加算値を累積加算値の初期値とする。 (b)入力の差分の符号とシナプス係数の符号が異なる
時 入力の差分の絶対値部分の下位からiビット目が“0”
となる時には0に設定し、入力の差分の絶対値部分の下
位からiビット目が“1”となる時には−(2の(i+L-
1)乗)+1 に設定する(ここでLは絶対値部分の語
長)。これを入力の差分の絶対値部分の全ビットに対し
て合計した値に基準累積加算値を加算して累積加算値の
初期値とする。この累積加算の初期値の求め方を図6の
具体例を用いて説明する。この例は各値の絶対値部分の
語長Lが4ビットで、シナプス係数が“11”で入力の
差分が“−13”の時である。この場合にはシナプス係
数値と入力の差分とのシナプス演算の結果は負である。
各々の値の絶対値を2進表現し、積演算する場合の処理
を分解すると、シナプス係数値と入力の差分の下位から
iビット目との部分積の結果をシフトさせながら加算し
ていくという処理に分解できる。下位ビットで抜けてい
るところには“0”を補い、各ビット列の桁数に応じて
1の補数表現で負の値に変換する。1の補数表現で表さ
れた各桁について、最上位の負の部分の合計値に基準累
積加算値を加算して累積加算の初期値とする。 (2)シナプス演算は入力の差分、シナプス係数共に絶
対値の2進数表現で演算を行なう。ここで、各値の絶対
値部分の語長(ビット数)をL、絶対値部分の下位から
のビット数をiとする。入力の差分とシナプス係数との
シナプス演算は絶対値部分の上位ビットどうしから行な
う。また、入力の差分のiビット目が“0”の場合はシ
ナプス演算結果は0となることが明らかなので入力のi
ビット目とシナプス係数値との演算は省略する。この処
理により、図7(a)および図7(b)に示すように演
算が進むにつれて、累積加算値が初期値から最終値に向
かって徐々に収束していく。そして、累積加算値が飽和
領域境界値2または1を越えたら飽和領域AまたはBで
あることが確定するため以下の演算を省略できる。ま
た、基準入力値、基準累積加算値および基準出力値は累
積加算値が基準累積加算値からスタートして飽和領域境
界値に近づく方向に変化した時に更新する。そして、次
回からはこの値を基準として演算の省略を行なう。ただ
し、入力条件や応用によっては別の条件で更新する場合
もある。
トからのシナプス演算および累積加算は具体的には、以
下に示す処理を行なう。 (1)累積加算値の初期値は以下のように設定する。 (a)入力の差分の符号とシナプス係数の符号が等しい
時 基準累積加算値を累積加算値の初期値とする。 (b)入力の差分の符号とシナプス係数の符号が異なる
時 入力の差分の絶対値部分の下位からiビット目が“0”
となる時には0に設定し、入力の差分の絶対値部分の下
位からiビット目が“1”となる時には−(2の(i+L-
1)乗)+1 に設定する(ここでLは絶対値部分の語
長)。これを入力の差分の絶対値部分の全ビットに対し
て合計した値に基準累積加算値を加算して累積加算値の
初期値とする。この累積加算の初期値の求め方を図6の
具体例を用いて説明する。この例は各値の絶対値部分の
語長Lが4ビットで、シナプス係数が“11”で入力の
差分が“−13”の時である。この場合にはシナプス係
数値と入力の差分とのシナプス演算の結果は負である。
各々の値の絶対値を2進表現し、積演算する場合の処理
を分解すると、シナプス係数値と入力の差分の下位から
iビット目との部分積の結果をシフトさせながら加算し
ていくという処理に分解できる。下位ビットで抜けてい
るところには“0”を補い、各ビット列の桁数に応じて
1の補数表現で負の値に変換する。1の補数表現で表さ
れた各桁について、最上位の負の部分の合計値に基準累
積加算値を加算して累積加算の初期値とする。 (2)シナプス演算は入力の差分、シナプス係数共に絶
対値の2進数表現で演算を行なう。ここで、各値の絶対
値部分の語長(ビット数)をL、絶対値部分の下位から
のビット数をiとする。入力の差分とシナプス係数との
シナプス演算は絶対値部分の上位ビットどうしから行な
う。また、入力の差分のiビット目が“0”の場合はシ
ナプス演算結果は0となることが明らかなので入力のi
ビット目とシナプス係数値との演算は省略する。この処
理により、図7(a)および図7(b)に示すように演
算が進むにつれて、累積加算値が初期値から最終値に向
かって徐々に収束していく。そして、累積加算値が飽和
領域境界値2または1を越えたら飽和領域AまたはBで
あることが確定するため以下の演算を省略できる。ま
た、基準入力値、基準累積加算値および基準出力値は累
積加算値が基準累積加算値からスタートして飽和領域境
界値に近づく方向に変化した時に更新する。そして、次
回からはこの値を基準として演算の省略を行なう。ただ
し、入力条件や応用によっては別の条件で更新する場合
もある。
【0019】図1は本発明の実施例の構成を示す図であ
って、1はシナプス演算回路、2は累積回路、3はしき
い値回路、4はシナプス係数メモリリ回路、5はメモリ
読みだし回路、6はセレクタ1、7は飽和領域境界値1
格納用レジスタ、8は飽和領域境界値2格納用レジス
タ、9は比較器1、10は比較器2、11は制御回路、
12は基準入力値格納用レジスタ、13はセレクタ2、
14は減算回路、15は一致回路、16はシナプス係数
の符号メモリ回路、17は符号読み出し回路、18は基
準出力値格納用レジスタ、19はスイッチである。飽和
領域境界値1および2の値は、図9に示すしきい値回路
の伝達特性において飽和領域と過渡領域の境界を表して
おり、小さい方の値が飽和領域境界値1、大きい方の値
が飽和領域境界値2である。しきい値回路の伝達特性が
図9(d)の様に過渡領域が複数ある場合は、さらに飽
和領域境界値3用レジスタ、飽和領域境界値4用レジス
タ、比較器3、比較器4が必要となる。ここでは、説明
を簡便にするためにしきい値関数の伝達特性が過渡領域
を1つ持つ場合について説明する。
って、1はシナプス演算回路、2は累積回路、3はしき
い値回路、4はシナプス係数メモリリ回路、5はメモリ
読みだし回路、6はセレクタ1、7は飽和領域境界値1
格納用レジスタ、8は飽和領域境界値2格納用レジス
タ、9は比較器1、10は比較器2、11は制御回路、
12は基準入力値格納用レジスタ、13はセレクタ2、
14は減算回路、15は一致回路、16はシナプス係数
の符号メモリ回路、17は符号読み出し回路、18は基
準出力値格納用レジスタ、19はスイッチである。飽和
領域境界値1および2の値は、図9に示すしきい値回路
の伝達特性において飽和領域と過渡領域の境界を表して
おり、小さい方の値が飽和領域境界値1、大きい方の値
が飽和領域境界値2である。しきい値回路の伝達特性が
図9(d)の様に過渡領域が複数ある場合は、さらに飽
和領域境界値3用レジスタ、飽和領域境界値4用レジス
タ、比較器3、比較器4が必要となる。ここでは、説明
を簡便にするためにしきい値関数の伝達特性が過渡領域
を1つ持つ場合について説明する。
【0020】本実施例においては、シナプス演算回路1
の入力に減算回路14の出力およびメモリ読み出し回路
5を介してシナプス係数メモリ回路4が接続されてい
る。また、シナプス演算回路1の出力は累積回路2の入
力に接続し、累積回路2の出力はしきい値回路3、比較
器1および比較器2の入力に接続する。しきい値回路3
の出力はスイッチ19の一方の入力に接続し、他方の入
力には基準出力値用レジスタ18を接続する。スイッチ
19の出力はニューロン回路の出力端子に接続する。比
較器1の他方の入力には飽和領域境界値1用レジスタ7
を、比較器2の他方の入力には飽和領域境界値2用レジ
スタ8をそれぞれ接続する。比較器1および比較器2の
出力は制御回路11の入力に接続する。減算回路14の
入力にはセレクタ1を介して入力端子を、セレクタ2を
介して基準入力値用レジスタ12を接続する。減算回路
14の出力のうち符号ビットは制御回路11の入力に接
続する。一致回路15の入力にもセレクタ1を介して入
力端子を、セレクタ2を介して基準入力値用レジスタ1
2を接続する。一致回路15の出力は制御回路11の入
力に接続し、一致出力のときは演算を省略することとし
て制御回路11のスイッチ制御により基準出力値を出力
する。またメモリ読み出し回路5の出力のうち、シナプ
ス係数の符号情報出力は減算回路の符号情報出力と同様
制御回路11の入力に接続する。そして両符号情報から
前記した第1段階の判定として演算を必要としなけれ
ば、制御回路11により演算を省略し、基準出力値を出
力することになる。前記した第2段階の演算過程では、
累積回路2の出力と飽和領域境界値との大小関係を比較
した比較器出力により制御回路11を介してシナプス係
数の読み出しまたはスイッチの切り換え制御を行う。な
お、入力値に対応する基準入力値を選択する入力選択制
御のため、制御回路11の出力をセレクタ1およびセレ
クタ2に接続する。
の入力に減算回路14の出力およびメモリ読み出し回路
5を介してシナプス係数メモリ回路4が接続されてい
る。また、シナプス演算回路1の出力は累積回路2の入
力に接続し、累積回路2の出力はしきい値回路3、比較
器1および比較器2の入力に接続する。しきい値回路3
の出力はスイッチ19の一方の入力に接続し、他方の入
力には基準出力値用レジスタ18を接続する。スイッチ
19の出力はニューロン回路の出力端子に接続する。比
較器1の他方の入力には飽和領域境界値1用レジスタ7
を、比較器2の他方の入力には飽和領域境界値2用レジ
スタ8をそれぞれ接続する。比較器1および比較器2の
出力は制御回路11の入力に接続する。減算回路14の
入力にはセレクタ1を介して入力端子を、セレクタ2を
介して基準入力値用レジスタ12を接続する。減算回路
14の出力のうち符号ビットは制御回路11の入力に接
続する。一致回路15の入力にもセレクタ1を介して入
力端子を、セレクタ2を介して基準入力値用レジスタ1
2を接続する。一致回路15の出力は制御回路11の入
力に接続し、一致出力のときは演算を省略することとし
て制御回路11のスイッチ制御により基準出力値を出力
する。またメモリ読み出し回路5の出力のうち、シナプ
ス係数の符号情報出力は減算回路の符号情報出力と同様
制御回路11の入力に接続する。そして両符号情報から
前記した第1段階の判定として演算を必要としなけれ
ば、制御回路11により演算を省略し、基準出力値を出
力することになる。前記した第2段階の演算過程では、
累積回路2の出力と飽和領域境界値との大小関係を比較
した比較器出力により制御回路11を介してシナプス係
数の読み出しまたはスイッチの切り換え制御を行う。な
お、入力値に対応する基準入力値を選択する入力選択制
御のため、制御回路11の出力をセレクタ1およびセレ
クタ2に接続する。
【0021】また、図2は本発明の実施例の累積回路の
構成を説明する図であって、20は累積加算値格納用レ
ジスタ、21は基準累積加算値格納用レジスタ、22は
初期値設定用回路、23はスイッチ、24は加算器であ
る。加算器の入力には累積回路の入力端子およびスイッ
チの出力を接続する。加算器の出力は累積加算値用レジ
スタの入力に接続する。累積加算値用レジスタの出力は
累積回路の出力端子およびスイッチの入力のうちの1つ
に接続する。スイッチの他の入力には基準累積加算値用
レジスタおよび初期値設定回路の出力を接続する。上記
回路において、初期値設定時には加算器の入力に基準累
積加算値用レジスタまたは初期値設定回路の出力が接続
され、演算時には加算器の入力に累積加算値用レジスタ
の出力が接続されるように切り換える。
構成を説明する図であって、20は累積加算値格納用レ
ジスタ、21は基準累積加算値格納用レジスタ、22は
初期値設定用回路、23はスイッチ、24は加算器であ
る。加算器の入力には累積回路の入力端子およびスイッ
チの出力を接続する。加算器の出力は累積加算値用レジ
スタの入力に接続する。累積加算値用レジスタの出力は
累積回路の出力端子およびスイッチの入力のうちの1つ
に接続する。スイッチの他の入力には基準累積加算値用
レジスタおよび初期値設定回路の出力を接続する。上記
回路において、初期値設定時には加算器の入力に基準累
積加算値用レジスタまたは初期値設定回路の出力が接続
され、演算時には加算器の入力に累積加算値用レジスタ
の出力が接続されるように切り換える。
【0022】大規模のニューラルネットワーク回路にお
いてはシナプス係数メモリは大容量を要し、外部メモリ
が用いられる。本発明により演算を省略すれば演算が削
減されるということで高速化されるだけでなく、外部メ
モリに対するアクセスが削減され、一層高速化される。
一方、シナプス係数の符号メモリとしては小容量で済む
から、この符号情報のメモリとしては図1に示すように
シナプス係数メモリ4とは別に設け、制御回路11の出
力により符号読み出し回路17を介してシナプス係数の
符号出力を制御回路11の入力に接続する構成によれ
ば、演算が必要かどうかの判定のためのシナプス係数の
符号情報の取得については、外部メモリの大容量メモリ
にアクセスしなくても済み、例えばキャッシュメモリの
ような小容量メモリに対する高速アクセスによりさらに
一層の高速化が可能になる。
いてはシナプス係数メモリは大容量を要し、外部メモリ
が用いられる。本発明により演算を省略すれば演算が削
減されるということで高速化されるだけでなく、外部メ
モリに対するアクセスが削減され、一層高速化される。
一方、シナプス係数の符号メモリとしては小容量で済む
から、この符号情報のメモリとしては図1に示すように
シナプス係数メモリ4とは別に設け、制御回路11の出
力により符号読み出し回路17を介してシナプス係数の
符号出力を制御回路11の入力に接続する構成によれ
ば、演算が必要かどうかの判定のためのシナプス係数の
符号情報の取得については、外部メモリの大容量メモリ
にアクセスしなくても済み、例えばキャッシュメモリの
ような小容量メモリに対する高速アクセスによりさらに
一層の高速化が可能になる。
【0023】本回路を採用し、シナプス演算を、入力値
と基準入力値との差とシナプス係数値との部分積とその
累積加算に分解して上位ビットから演算を実行した場合
の演算省略の効果およびシナプス係数メモリ回路へのア
クセスの低減効果を評価した結果を図12および図13
に示す。図12はシナプス係数、入力値、基準入力値と
も符号ビットと絶対値部分を合わせて16ビットであ
り、基準累積加算値が−0.693、シナプス係数が−
0.599、基準入力値が1.0、飽和領域境界値1は
−0.5、飽和領域境界値2が0.5の場合について、
入力値を変化させた時の累積加算の最終値と演算の実行
率との関係を示したものである。この図から、最終値が
飽和領域境界値から離れるにしたがい演算省略の効果が
顕著に現われることがわかる。また、図13は同様の演
算における、累積加算の最終値とシナプス係数を何ビッ
トアクセスしたかの関係を示したものである。この図か
ら最終値が飽和領域境界値から離れるとシナプス係数の
メモリ回路へのアクセスの低減効果が顕著に現われるこ
とがわかる。具体的に演算省略の効果を見積ってみる。
全入力のうち入力値が基準入力に対して変化する割合を
10%として、入力値が変化しないことにより演算を9
0%削減できる。また、基準累積加算値が飽和領域であ
る確率を90%、過渡領域である確率を10%とし、基
準累積加算値が飽和領域にあるときに累積加算値が飽和
領域境界値に近づく方向に変化する確率を50%、遠ざ
かる方向に変化する確率を50%とし、飽和領域境界値
に近付く時に累積加算値の最終値が飽和領域となる確率
が90%、過渡領域となる確率が10%とする。そし
て、累積加算の最終値が飽和領域となるときの平均演算
省略率を図12に示す評価結果から20%とすればさら
に演算を15.4%に削減できる。したがって、トータ
ルで演算量を約1.54%に削減できる。次にシナプス
係数のアクセス回数の低減の効果を見積ってみる。演算
省略の効果の場合と同様に、入力値が変化しない確率を
90%、基準累積加算値が飽和領域にある確率を90
%、過渡領域である確率を10%とし、基準累積加算値
が飽和領域にあるときに累積加算値が飽和領域に近づく
方向に変化する確率を50%、遠ざかる方向に変化する
確率を50%とする。さらに、累積加算値が飽和領域境
界値に近づく時に累積加算の最終値が飽和領域となる確
率が90%、過渡領域となる確率を10%とする。そし
て、累積加算の最終値が飽和領域となる時の平均的なシ
ナプス係数のアクセス省略率を図13に示す評価結果よ
り20%とすれば、トータルでシナプス係数をアクセス
回数を1.54%に削減できる。
と基準入力値との差とシナプス係数値との部分積とその
累積加算に分解して上位ビットから演算を実行した場合
の演算省略の効果およびシナプス係数メモリ回路へのア
クセスの低減効果を評価した結果を図12および図13
に示す。図12はシナプス係数、入力値、基準入力値と
も符号ビットと絶対値部分を合わせて16ビットであ
り、基準累積加算値が−0.693、シナプス係数が−
0.599、基準入力値が1.0、飽和領域境界値1は
−0.5、飽和領域境界値2が0.5の場合について、
入力値を変化させた時の累積加算の最終値と演算の実行
率との関係を示したものである。この図から、最終値が
飽和領域境界値から離れるにしたがい演算省略の効果が
顕著に現われることがわかる。また、図13は同様の演
算における、累積加算の最終値とシナプス係数を何ビッ
トアクセスしたかの関係を示したものである。この図か
ら最終値が飽和領域境界値から離れるとシナプス係数の
メモリ回路へのアクセスの低減効果が顕著に現われるこ
とがわかる。具体的に演算省略の効果を見積ってみる。
全入力のうち入力値が基準入力に対して変化する割合を
10%として、入力値が変化しないことにより演算を9
0%削減できる。また、基準累積加算値が飽和領域であ
る確率を90%、過渡領域である確率を10%とし、基
準累積加算値が飽和領域にあるときに累積加算値が飽和
領域境界値に近づく方向に変化する確率を50%、遠ざ
かる方向に変化する確率を50%とし、飽和領域境界値
に近付く時に累積加算値の最終値が飽和領域となる確率
が90%、過渡領域となる確率が10%とする。そし
て、累積加算の最終値が飽和領域となるときの平均演算
省略率を図12に示す評価結果から20%とすればさら
に演算を15.4%に削減できる。したがって、トータ
ルで演算量を約1.54%に削減できる。次にシナプス
係数のアクセス回数の低減の効果を見積ってみる。演算
省略の効果の場合と同様に、入力値が変化しない確率を
90%、基準累積加算値が飽和領域にある確率を90
%、過渡領域である確率を10%とし、基準累積加算値
が飽和領域にあるときに累積加算値が飽和領域に近づく
方向に変化する確率を50%、遠ざかる方向に変化する
確率を50%とする。さらに、累積加算値が飽和領域境
界値に近づく時に累積加算の最終値が飽和領域となる確
率が90%、過渡領域となる確率を10%とする。そし
て、累積加算の最終値が飽和領域となる時の平均的なシ
ナプス係数のアクセス省略率を図13に示す評価結果よ
り20%とすれば、トータルでシナプス係数をアクセス
回数を1.54%に削減できる。
【0024】
【発明の効果】以上述べたように、本発明の回路を用い
ることにより、演算の省略およびシナプス係数値のシナ
プス係数メモリ回路へのアクセスの省略が可能となり、
シナプス演算の高速化および演算に要する消費電力の低
減が可能になる。これにより、大規模なニューラルネッ
トワークに適用可能で、かつ、高速動作可能なデジタル
ニューラルネットワーク回路を構成することができる。
ることにより、演算の省略およびシナプス係数値のシナ
プス係数メモリ回路へのアクセスの省略が可能となり、
シナプス演算の高速化および演算に要する消費電力の低
減が可能になる。これにより、大規模なニューラルネッ
トワークに適用可能で、かつ、高速動作可能なデジタル
ニューラルネットワーク回路を構成することができる。
【図1】本発明の実施例の構成図。
【図2】本発明の実施例の累積回路の構成図。
【図3】第1段階における演算の省略を説明する図。
【図4】第1段階における演算の省略を説明する図。
【図5】第1段階における演算の省略を説明する図。
【図6】累積加算の初期値の設定法を説明する図。
【図7】飽和領域の判定動作を説明する図。
【図8】ニューロン回路の構成図。
【図9】しきい値回路の伝達特性を説明する図。
【図10】3層構造のニューラルネットワーク回路。
【図11】従来のニューラルネットワーク回路の構成例
図。
図。
【図12】累積加算の最終値と演算の省略効果を示す
図。
図。
【図13】累積加算の最終値とシナプス係数値のアクセ
スビット数の関係を評価した結果を示す図。
スビット数の関係を評価した結果を示す図。
1…シナプス演算回路 2…累積
回路 3…累積回路 4…シナ
プス係数メモリ回路 5…メモリ読み出し回路 6…セレ
クタ1 7…飽和領域境界値1格納用レジスタ 8…飽和領域境
界値2格納用レジスタ 9…比較器1 10…比較
器2 11…制御回路 12…基
準入力値格納用レジスタ 13…セレクタ2 14…減
算回路 15…一致回路 16…シナプ
ス係数の符号メモリ回路 17…符号読み出し回路 18…基
準出力値格納用レジスタ 19…スイッチ
回路 3…累積回路 4…シナ
プス係数メモリ回路 5…メモリ読み出し回路 6…セレ
クタ1 7…飽和領域境界値1格納用レジスタ 8…飽和領域境
界値2格納用レジスタ 9…比較器1 10…比較
器2 11…制御回路 12…基
準入力値格納用レジスタ 13…セレクタ2 14…減
算回路 15…一致回路 16…シナプ
ス係数の符号メモリ回路 17…符号読み出し回路 18…基
準出力値格納用レジスタ 19…スイッチ
Claims (4)
- 【請求項1】複数の入力とそれぞれの入力に対応するシ
ナプス係数とによりシナプス演算を行うシナプス演算回
路と、その出力を累積する累積回路と、その出力をしき
い値処理するしきい値回路を含んでニューロン出力を得
るニューロン回路の組合せ構成を有するニューラルネッ
トワーク回路において、該ニューロン回路がさらに、 複数の基準入力値を格納する基準入力値格納手段と、し
きい値回路の伝達特性における飽和領域と過渡領域との
境界値である飽和領域境界値を格納する飽和領域境界値
格納手段と、基準入力値に対応するニューロン出力を基
準出力値として格納する基準出力値格納手段と、 入力値と基準入力値との差分を出力し該出力を上記シナ
プス演算回路に入力する減算回路と、上記入力値と基準
入力値との一致を検出する一致回路と、上記累積回路の
出力と上記飽和領域境界値を比較する比較器と、 上記シナプス係数を格納するシナプス係数メモリ回路か
らシナプス係数を読み出して上記シナプス演算回路に出
力するメモリ読み出し回路と、 上記しきい値回路からの出力と上記基準出力値格納手段
からの出力を切り換えてその何れかの出力をニューロン
出力とするスイッチと、 上記減算回路の差分出力の符号情報と、上記メモリ読み
出し回路のシナプス係数出力の符号情報と、上記比較器
からの比較結果情報と、さらに上記一致回路の出力情報
との入力情報により、上記入力値および基準入力値を選
択する入力選択制御と、上記メモリ読み出し回路に対す
るシナプス係数の読み出し制御と、上記スイッチに対す
る切り換え制御を行う制御回路を備えることを特徴とす
るニューラルネットワーク回路。 - 【請求項2】請求項1記載のニューラルネットワーク回
路において、上記ニューロン回路の中にさらに、 シナプス係数の符号情報を格納するシナプス係数の符号
メモリ回路を設け、かつ、上記制御回路の出力により符
号読み出し回路を制御し、該制御により、符号読み出し
回路を介してシナプス係数の符号メモリ回路からシナプ
ス係数の符号情報を上記制御回路に入力する構成を設け
ることを特徴とするニューラルネットワーク回路。 - 【請求項3】請求項1または請求項2記載のニューラル
ネットワーク回路を用い、 上記一致回路において上記入力値と基準入力値とを比較
し、両者の値が異なる場合で、かつ、減算回路出力値の
符号情報と、請求項1によるメモリ読み出し回路により
シナプス係数メモリ回路から転送されるシナプス係数の
符号情報とから、または請求項2による符号読み出し回
路によりシナプス係数の符号メモリ回路から転送される
シナプス係数の符号情報とから求められる累積加算値の
変化の方向が上記しきい値回路の伝達特性における飽和
領域と過渡領域の境界の飽和領域境界値に近づく方向で
ある時のみ、メモリ読み出し回路は基準入力値と異なる
入力値に対応するシナプス係数をシナプス係数メモリ回
路から取り込みシナプス演算回路に転送し、該シナプス
演算回路において入力値と基準入力値との差とシナプス
係数値とのシナプス演算を行ない、さらにこのシナプス
演算結果と基準入力時の累積加算値とを累積し、その結
果をしきい値回路によるしきい値処理を介してニューロ
ン出力値を決定し、 それ以外の時には保持されている基準入力時の出力値を
ニューロン出力とすることを特徴とする、ニューラルネ
ットワーク回路を用いた演算方法。 - 【請求項4】請求項3記載のニューラルネットワーク回
路を用いた演算方法において、上記シナプス演算を、入
力値と基準入力値との差とシナプス係数値との部分積と
その累積加算に分解して実行し、シナプス演算の累積加
算値が演算の進行に伴い単調増加あるいは単調減少とな
るように演算を進め、次に、シナプス演算の累積加算値
と基準入力時の累積加算値とを合計し、この合計値と、
しきい値回路の伝達特性における飽和領域境界値との大
小関係を比較器において比較し、合計値が飽和領域とな
ることが判明した時点で演算を停止させることを特徴と
する、ニューラルネットワーク回路を用いた演算方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6003885A JPH07210617A (ja) | 1994-01-19 | 1994-01-19 | ニューラルネットワーク回路および本回路を用いた演算方法 |
US08/373,440 US5630024A (en) | 1994-01-19 | 1995-01-17 | Method and apparatus for processing using neural network with reduced calculation amount |
EP95100620A EP0664516B1 (en) | 1994-01-19 | 1995-01-18 | Neural network with reduced calculation amount |
KR1019950000739A KR0168975B1 (ko) | 1994-01-19 | 1995-01-18 | 신경망 회로, 신경망 시스템 및 이를 이용하는 연산 방법 |
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 |
---|---|---|---|
JP6003885A JPH07210617A (ja) | 1994-01-19 | 1994-01-19 | ニューラルネットワーク回路および本回路を用いた演算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH07210617A true JPH07210617A (ja) | 1995-08-11 |
Family
ID=11569646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6003885A Pending JPH07210617A (ja) | 1994-01-19 | 1994-01-19 | ニューラルネットワーク回路および本回路を用いた演算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH07210617A (ja) |
-
1994
- 1994-01-19 JP JP6003885A patent/JPH07210617A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11222254B2 (en) | Optimized neuron circuit, and architecture and method for executing neural networks | |
CN111223488B (zh) | 语音唤醒方法、装置、设备及存储介质 | |
JP2019148896A (ja) | 演算処理装置、情報処理装置、情報処理方法、およびプログラム | |
US11928599B2 (en) | Method and device for model compression of neural network | |
US20210287074A1 (en) | Neural network weight encoding | |
US5630024A (en) | Method and apparatus for processing using neural network with reduced calculation amount | |
KR920003189A (ko) | 뉴-럴 네트워크 회로 | |
EP3798929A1 (en) | Information processing apparatus, information processing method, and information processing program | |
Guan et al. | Recursive binary neural network learning model with 2.28 b/weight storage requirement | |
CN116306855B (zh) | 一种基于存算一体系统的数据处理方法及装置 | |
KR970017000A (ko) | 다층퍼셉트론 신경회로망의 n비트 데이타 표현에 의한 학습방법 | |
JPH07210617A (ja) | ニューラルネットワーク回路および本回路を用いた演算方法 | |
JP2634994B2 (ja) | ファジィ論理電子制御器及びそのメモリ動作方法 | |
JPH06161981A (ja) | ニューラルネットワーク回路 | |
US4891782A (en) | Parallel neural network for a full binary adder | |
JPH07210533A (ja) | ニューラルネットワーク回路及びこれを用いた演算方法 | |
JP2513139B2 (ja) | 信号処理プロセッサ | |
CN111783446B (zh) | 序列处理的方法与装置 | |
JPH0830572A (ja) | ニューラルネットワーク回路及びこれを用いた演算方法 | |
JPH07141183A (ja) | ファジィ論理を使用して動作中の電子コントローラの記憶をロードする方法及び電子制御デバイス | |
CN116306948B (zh) | 量子信息处理装置及量子信息处理方法 | |
CN115238873B (zh) | 神经网络模型部署方法、装置、计算机设备 | |
JP2021111081A (ja) | 情報処理装置、ニューラルネットワークの演算プログラム及びニューラルネットワークの演算方法 | |
Yu et al. | Architecture design of convolutional neural networks for face detection on an fpga platform | |
JP3318958B2 (ja) | 学習型波形認識処理装置 |