JPH05128285A - ニユーロプロセツサ - Google Patents

ニユーロプロセツサ

Info

Publication number
JPH05128285A
JPH05128285A JP3291197A JP29119791A JPH05128285A JP H05128285 A JPH05128285 A JP H05128285A JP 3291197 A JP3291197 A JP 3291197A JP 29119791 A JP29119791 A JP 29119791A JP H05128285 A JPH05128285 A JP H05128285A
Authority
JP
Japan
Prior art keywords
address
calculation
memory
neuron
layer
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
JP3291197A
Other languages
English (en)
Inventor
Yoichi Tamura
洋一 田村
Tadayuki Morishita
賢幸 森下
Atsuo Inoue
敦雄 井上
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP3291197A priority Critical patent/JPH05128285A/ja
Publication of JPH05128285A publication Critical patent/JPH05128285A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System (AREA)

Abstract

(57)【要約】 【目的】多次元配列変数のメモリに対するアドレスの発
生に、アドレス計算を行う必要がないようにすることに
よって、ニューラルネットワークの計算が高速にできる
ニューロプロセッサを提供する。 【構成】カウンタ1、2、3を、それぞれ、多次元配列
変数の1つずつの添字に対応させ、それらの出力を並列
に並べることによって、多次元配列変数のメモリに対す
るアドレスにする。ニューラルネットワークの計算にお
いては、多次元配列変数を全くランダムな順番でアクセ
スすることはなく、添字のどれかをインクリメントして
いくような順番にアクセスする。したがって、上記構成
のアドレス発生器を持つことによって、多次元配列変数
のメモリに対するアドレスの発生にアドレス計算を行う
必要がなくなり、高速化が図れる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ニューラルネットワー
クの計算を高速に行なうためのニューロプロセッサに関
するものである。
【0002】
【従来の技術】ニューラルネットワークは、人間の脳の
神経細胞の働きをモデル化して模倣することによって、
従来のいわゆるノイマン形のコンピュータが苦手として
いた認識や、連想、最適化問題、音声合成等を得意とす
る新しいコンピュータを実現しようするものである。
【0003】ニューラルネットワークには、ニューロン
が層状に配置された階層構造のものや、すべてのニュー
ロンが相互に結合した相互結合構造のものなど、さまざ
まな構造のものがある。その中で階層構造のネットワー
クは、例えばバックプロパゲーションアルゴリズムと呼
ばれる学習アルゴリズムで簡単に学習させることがで
き、制御、文字認識、画像認識、画像処理などに幅広く
応用することができると考えられている。
【0004】図3は階層構造のネットワークの例を示し
たものである。図3で、101は各層中に配置されたニ
ューロン、102はシナプスと呼ばれるニューロン間の
結合、103は入力層、104は中間層、105は出力
層を示す。図3では3層のネットワークの例を示してい
るが、中間層を複数にすることによって4層以上の階層
構造のネットワークにすることもできる。以後は3層の
ネットワークに限って説明するが、4層以上のネットワ
ークに対してもまったく同様の扱いである。また、図3
では各層のニューロンの数は、それぞれ3,2,3とし
て例示したものであるが、各層のニューロンの数を増減
させても同様である。ニューラルネットワークへの入力
信号は、おのおの、入力層103の各ニューロンに与え
られる。そして、信号が入力層、中間層、出力層の順番
に伝搬していき、出力層105のニューロンの信号がネ
ットワークの出力になる。このような入力層、中間層、
出力層の順番に伝搬していく通常の伝搬を前向きの伝搬
と呼ぶ。
【0005】図4はニューロンの働きを示した図であ
る。図4で、101、107、108、109はニュー
ロン、102はシナプス、106はニューロンの特性関
数fである。ニューロンは1つ前の層のニューロンの出
力をシナプスを介して受け取る。それぞれのシナプスは
結合の重みと呼ばれる値を持っており、前の層のニュー
ロンの出力値にその結合の重みの値を乗算した結果を次
のニューロンに与える。シナプスの結合の重みは、それ
ぞれのシナブスで異なった値になっている。例えば、図
4のl層目のi番目のニューロン108とl+1層目の
j番目のニューロン101との間のシナプスは結合の重
みwljiを持っており、l層目のi番目のニューロン1
08の出力Oliにその結合の重みの値を乗算した結果w
lji×Oliがl+1層目のj番目のニューロン101に
与える。そして、ニューロン101はそれに結合するす
べてのシナプスより与えられる入力をすべて加算し、そ
の加算結果にニューロンの特性関数106を作用させ
て、その関数値をニューロン101の出力Ol+1,jとし
て出力する。これを式で表すと次式のようになる。
【0006】
【数1】
【0007】したがって、3層のネットワークの場合の
前向き伝搬は、つぎの手順で計算される。まず最初にす
べての中間層のニューロンについて、その出力を、
【0008】
【数2】
【0009】に従って計算する。次にその結果を使って
すべての出力層のニューロンについて、その出力を、
【0010】
【数3】
【0011】に従って計算する。次に、図3の3層の階
層構造ネットワークのバックプロパゲーションアルゴリ
ズムによる学習の方法について説明する。バックプロパ
ゲーションアルゴリズムでは、入力とそれに対する理想
的な出力の組を用意し、その入力に対する実際の出力と
理想的な出力の差が減少するようにシナプスの結合の重
みを修正する。この理想的な出力のことを通常は教師信
号と呼ぶ。以下に、3層のネットワークについて具体的
な計算方法を順を追って説明する。 1.前向きの伝搬によって実際の出力を計算する。 2.次式に従って出力層の各ニューロンの誤差に対応し
た値(以下、単にデルタと呼ぶ)を計算する。
【0012】
【数4】
【0013】δljはl層目のj番目のニューロンに対す
るデルタ、tjは出力層のj番目のニューロンに対する
教師信号、gは
【0014】
【数5】
【0015】で表されるようにニューロンの特性関数f
の微分係数である。ニューロンの特性関数fは、単調非
減少の関数が用いられるので、(数5)に示したよう
に、特性関数の微分係数を特性関数の関数値の関数とし
て表すことができる。 3.中間層と出力層との間のシナプスの結合の重みの修
正量を、次式に従って計算し、重みを修正する。
【0016】
【数6】
【0017】ηは修正係数である。 4.中間層のニューロンに対するデルタを、次式に従っ
て計算する。
【0018】
【数7】
【0019】5.中間層と入力層の間のシナプスの結合
の重みの修正量を、次式に従って計算し、重みを修正す
る。
【0020】
【数8】
【0021】実際の学習では、以上に述べた手順を、複
数個の入力と教師信号の組に対して行い、さらにそれを
何回も繰り返す。すなわち、上の1から5までの手順を
1回の学習と呼ぶことにすると、総学習回数は、(学習
に用いる入力と教師信号の組の数)×(繰り返しの回
数)となる。
【0022】以上より明らかなように、ニューラルネッ
トワークの計算は、演算量が非常に多いのが特徴であ
る。また、メモリのアクセス回数も非常に多くなる。
【0023】これらの演算を高速に行うために、図2の
ようなニューロプロセッサが考えられている。図2の1
4は入出力部で、外部とのデータの入出力を行う。図2
の15は制御部で、命令のデコードと、各ブロックを制
御する信号を発生する働きと、各メモリのアドレスを発
生させる働きをする。図2の5は乗算器で、6は加算器
で、7はバレルシフタである。図2の8は、シナプスの
結合の重み用メモリで、9はニューロンの出力用メモリ
で、10はデルタ用のメモリで、11はニューロンの特
性関数のテーブル用のメモリで、12はニューロンの特
性関数の微分係数のテーブル用のメモリで、13は教師
信号用のメモリである。
【0024】図2のニューロプロセッサでは、メモリが
分割してあるので、複数のメモリに対して並列にアクセ
スを行うことが可能になる。さらに、パイプライン処理
によって、乗算器や加算器が効率よく使用されるので、
大量の演算を高速に実行することができる。
【0025】しかし、そのためには、メモリに対するア
ドレスを、時間的に連続して発生させることが必要にな
る。ここで、時間と言っているのはクロック等で離散化
された時間のことである。したがって、時間的に連続と
いうのは、各クロックごとにアドレスが発生されなけれ
ばならないということである。アドレスを連続して発生
させることができず、空白の時間が生じれば、その間、
パイプラインにデータが流れないので、パイプラインは
有効に機能しない。その結果、乗算器や加算器の遊び時
間が増え、使用効率が低くなり、計算速度は低下する。
【0026】ここで、シナプスの結合の重みを表す変数
wに着目すると、変数wはl、j、iの3つの添字を持
った3次元配列変数である。変数wを図5のaのように
メモリに記憶させたとする。すると、(数2)の計算の
場合は、iを順番にインクリメントして、wを読み出し
て積和演算を実行していけばよいので、図5のbに示し
たように、メモリを上から順番に読み出していくことに
なる。図5のb中の番号は、読み出す順番を示してい
る。すなわちアドレスは、順番にインクリメントするだ
けでよい。インクリメントの計算には時間がかからない
ので、アドレスは時間的に連続して発生させることがで
きる。したがって、この場合は、図2のようなニューロ
プロセッサで、パイプラインが有効に機能し、乗算器や
加算器が効率よく使用され、高速に計算ができる。
【0027】ところが(数7)の計算の場合は、jを順
番にインクリメントして、wを読み出して積和演算を実
行していかなければならない。したがって、図5のcに
示したように、メモリを飛び飛びに読み出していくこと
が必要になる。図5のc中の番号は、読み出す順番を示
している。この場合、アドレスを得るために、アドレス
計算として、(j−1)×imax+iの計算を行わな
ければならない。ここでimaxは添字iの最大値であ
る。アドレス計算には時間が必要なので、この場合は、
アドレスを時間的に連続して発生させることができず、
図2のようなニューロプロセッサでパイプラインが有効
に機能せず、乗算器や加算器の使用効率が低くなり、計
算速度が低下する。
【0028】
【発明が解決しようとする課題】以上に述べたように、
ニューラルネットワークの計算は、演算量とメモリのア
クセス回数が多いのが特徴である。そして、多量の計算
を高速に実行するために、メモリを分割して、複数のメ
モリに対して並列にアクセスを行うことを可能にし、さ
らにパイプライン処理によって、乗算器や加算器が効率
よく使用できるようにしたニューロプロセッサにおいて
も、多次元配列変数のメモリに対するアドレスの計算が
ネックになってパイプラインが有効に機能せず、乗算器
や加算器の使用効率が上がらず、計算速度は低い。
【0029】ニューラルネットワークの応用のために
は、高速に計算ができるニューロプロセッサが必要であ
る。そこで、本発明は、上記課題を解決し、ニューラル
ネットワークの計算が高速にできるニューロプロセッサ
を提供することを目的としている。
【0030】
【課題を解決するための手段】以上の課題を解決するた
め、本発明のニューロプロセッサには、カウンタを複数
個備え、それらのカウンタを、それぞれ、多次元配列変
数の1つずつの添字に対応させ、それらの出力を並列に
並べることによって、多次元配列変数のメモリを示すア
ドレスとするアドレス発生器を持たせる。
【0031】
【作用】ニューラルネットワークの計算においては、多
次元配列変数を全くランダムな順番でアクセスすること
はなく、添字のどれかをインクリメントしていくような
順番にアクセスする。したがって、上記構成のアドレス
発生器を持つことによって、多次元配列変数のメモリに
対するアドレスの発生に、アドレス計算を行う必要がな
くなる。したがって、アドレスは時間的に連続して発生
でき、パイプラインが有効に機能し、乗算器や加算器が
効率よく使用される。
【0032】その結果、多量の演算を効率よく処理する
ことができ、高速化が図れる。
【0033】
【実施例】以下、本発明の実施例を図面により説明す
る。
【0034】図1は本発明の1実施例のアドレス発生器
の構成図である。図1のアドレス発生器は、シナプスの
結合の重み用メモリに対するアドレスを発生させるもの
である。図1の1は、シナプスの結合の重みwljiの3
つの添字の中のlに対応したカウンタである。図1の2
は、シナプスの結合の重みwljiの3つの添字の中のj
に対応したカウンタである。図1の3は、シナプスの結
合の重みwljiの3つの添字の中のiに対応したカウン
タである。図1の4はカウンタ制御部で、3つのカウン
タに対して、イネーブル信号やクリア信号、プリセット
信号、プリセット値などを出力し、また、3つのカウン
タのキャリー信号を検出する働きをする。
【0035】アドレスは、3つのカウンタの出力を並列
に並べることによって作る。図1の実施例では、lのカ
ウンタ1がaビットの出力を持ち、jのカウンタ2がb
ビットの出力を持ち、iのカウンタ3がcビットの出力
を持つ場合を示している。この場合は、それらを並列に
並べることによって、アドレスは(a+b+c)ビット
になる。
【0036】以上のような構成のアドレス発生器を用い
たアドレスの発生方法を具体的に説明する。例えば、
(数2)の計算の時には、カウンタ制御部4は、iのカ
ウンタ3に対してイネーブル信号を常に出力し、iを順
番にインクリメントし、iのカウンタ3のキャリー信号
が検出されると、jのカウンタ2に対してイネーブル信
号を出力し、jをインクリメントさせる。この結果、図
5のbに示したような順番にアドレスが、時間的に連続
して出力される。
【0037】また、(数7)の計算の時には、カウンタ
制御部4は、jのカウンタ2に対してイネーブル信号を
常に出力し、jを順番にインクリメントし、jのカウン
タ2のキャリー信号が検出されると、iのカウンタ3に
対してイネーブル信号を出力し、iをインクリメントさ
せる。この結果、図5のcに示したような順番にアドレ
スが、時間的に連続して出力される。
【0038】以上に述べたように、ニューラルネットワ
ークの計算においては、多次元配列変数を全くランダム
な順番でアクセスすることはなく、添字のどれかをイン
クリメントしていくような順番にアクセスするので、図
1のような構成のアドレス発生器を用いることによっ
て、多次元配列変数のメモリに対するアドレスが、アド
レス計算なしに得られる。したがって、アドレスは時間
的に連続して発生でき、パイプラインが有効に機能し、
乗算器や加算器が効率よく使用される。その結果、多量
の演算を効率よく処理することができ、高速化が図れ
る。
【0039】なお、本実施例では、シナプスの結合の重
みを表す変数wのメモリに対するアドレスの発生に関し
て示したが、その他の多次元配列変数も同様に扱える。
また、本発明のアドレス発生器は、ニューロプロセッサ
以外にも応用できる。
【0040】
【発明の効果】以上の実施例から明かなように、本発明
によれば、多次元配列変数のメモリに対するアドレスの
発生に、アドレス計算を行う必要がなくなる。その結
果、アドレスは時間的に連続して発生でき、パイプライ
ンが有効に機能し、乗算器や加算器が効率よく使用され
る。したがって、ニューラルネットワークの計算が高速
にできるニューロプロセッサを提供できる。
【図面の簡単な説明】
【図1】本発明の一実施例のアドレス発生器の構成図
【図2】ニューロプロセッサの構成図
【図3】階層構造ニューラルネットワークの図
【図4】ニューロンの働きを示した図
【図5】シナプスの結合の重み用メモリのアクセスの順
番を示した図
【符号の説明】
1〜3 カウンタ 4 カウンタ制御部 5 乗算器 6 加算器 7 バレルシフタ 8 シナプスの結合の重み用メモリ 9 ニューロン出力用メモリ 10 デルタ用メモリ 11 ニューロンの特性関数のテーブル用のメモリ 12 ニューロンの特性関数の微分係数のテーブル用
のメモリ 13 教師信号用のメモリ 14 入出力部 15 制御部 21〜30 レジスタ 41〜46 セレクタ 101 ニューロン 102 シナプス 103 入力層 104 中間層 105 出力層 106 ニューロンの特性関数 107〜109 ニューロン

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】複数個のカウンタを備え、前記カウンタ
    を、それぞれ、多次元配列変数の1つずつの添字に対応
    させ、前記カウンタの出力を、並列に並べることによっ
    て多次元配列変数のメモリを示すアドレスとするアドレ
    ス発生器。
  2. 【請求項2】請求項1記載のアドレス発生器を備えたニ
    ューロプロセッサ。
JP3291197A 1991-11-07 1991-11-07 ニユーロプロセツサ Pending JPH05128285A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3291197A JPH05128285A (ja) 1991-11-07 1991-11-07 ニユーロプロセツサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3291197A JPH05128285A (ja) 1991-11-07 1991-11-07 ニユーロプロセツサ

Publications (1)

Publication Number Publication Date
JPH05128285A true JPH05128285A (ja) 1993-05-25

Family

ID=17765719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3291197A Pending JPH05128285A (ja) 1991-11-07 1991-11-07 ニユーロプロセツサ

Country Status (1)

Country Link
JP (1) JPH05128285A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11216717B2 (en) 2017-04-04 2022-01-04 Hailo Technologies Ltd. Neural network processor incorporating multi-level hierarchical aggregated computing and memory elements
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11216717B2 (en) 2017-04-04 2022-01-04 Hailo Technologies Ltd. Neural network processor incorporating multi-level hierarchical aggregated computing and memory elements
US11461614B2 (en) 2017-04-04 2022-10-04 Hailo Technologies Ltd. Data driven quantization optimization of weights and input data in an artificial neural network
US11221929B1 (en) 2020-09-29 2022-01-11 Hailo Technologies Ltd. Data stream fault detection mechanism in an artificial neural network processor
US11237894B1 (en) 2020-09-29 2022-02-01 Hailo Technologies Ltd. Layer control unit instruction addressing safety mechanism in an artificial neural network processor
US11263077B1 (en) 2020-09-29 2022-03-01 Hailo Technologies Ltd. Neural network intermediate results safety mechanism in an artificial neural network processor
US11811421B2 (en) 2020-09-29 2023-11-07 Hailo Technologies Ltd. Weights safety mechanism in an artificial neural network processor

Similar Documents

Publication Publication Date Title
US5519647A (en) Apparatus for and method of generating an approximation function
EP0504932A2 (en) A parallel data processing system
Gorinevsky et al. Comparison of some neural network and scattered data approximations: The inverse manipulator kinematics example
EP0384709A2 (en) Learning Machine
Solazzi et al. Regularising neural networks using flexible multivariate activation function
JPH05128285A (ja) ニユーロプロセツサ
US5630020A (en) Learning method and neural network structure
JP3177996B2 (ja) ニューロプロセッサ
US6922712B2 (en) Apparatus, methods, and computer program products for accurately determining the coefficients of a function
US5627944A (en) Parallel data processing system
JPH07129534A (ja) 現存するエキスパートシステムを1つ以上のニューラルネットワークを使用するものに変換する方法
JPH04237388A (ja) ニューロプロセッサ
JPH05159087A (ja) ニューロプロセッサ
JP2825133B2 (ja) 並列データ処理方式
JP2654686B2 (ja) ニューラルネットワーク
JPH04233063A (ja) ニューロプロセッサ
JPH01282672A (ja) ニューラルネットワーク装置
JP2766858B2 (ja) ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置
JP2877413B2 (ja) 余剰ニューロン決定処理方式
JP2677656B2 (ja) ニューロコンピュータの集中制御方式
Nikravesh et al. Process control of nonlinear time variant processes via artificial neural network
JPH05307624A (ja) 信号処理装置
JPH07101415B2 (ja) 情報処理装置及びその学習方法
JP2607351B2 (ja) 多層パーセプトロンの神経回路網の効率的な学習のための誤差信号の発生方法
JPH01173257A (ja) ネットワーク構成データ処理装置