JPH05159087A - ニューロプロセッサ - Google Patents
ニューロプロセッサInfo
- Publication number
- JPH05159087A JPH05159087A JP32267891A JP32267891A JPH05159087A JP H05159087 A JPH05159087 A JP H05159087A JP 32267891 A JP32267891 A JP 32267891A JP 32267891 A JP32267891 A JP 32267891A JP H05159087 A JPH05159087 A JP H05159087A
- Authority
- JP
- Japan
- Prior art keywords
- chip
- chips
- calculation
- neural network
- 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
Links
Landscapes
- Image Analysis (AREA)
Abstract
(57)【要約】
【目的】 演算処理部のシナプス荷重を複数のメモリに
分割して計算順序に合わせて割り付けし、さらに、複数
の演算処理部で同時に並列に動作するデータ転送回路を
使用することによって、大規模なニューラルネットワー
クの計算を高速に処理するニューロプロセッサを提供す
る。 【構成】 入力層、中間層、出力層からなる3層階層型
ニューラルネットワークを計算する場合、各層に対応し
て、複数個のチップを図1のように接続する。ここで、
チップ101、102、103、104が入力層、チッ
プ105、106、107、108が中間層、チップ1
09、110が出力層に対応している。シナプス荷重を
これらのチップに内蔵しているメモリに、計算順序に分
割して割り付けることにより、シナプス荷重の転送を実
行しなくても、ニューラルネットワークの前向き伝搬と
逆向き伝搬の計算ができる。この結果、演算処理部間の
データ転送数は大幅に低減されて大規模なニューラルネ
ットワークの計算を高速に行うことができる。
分割して計算順序に合わせて割り付けし、さらに、複数
の演算処理部で同時に並列に動作するデータ転送回路を
使用することによって、大規模なニューラルネットワー
クの計算を高速に処理するニューロプロセッサを提供す
る。 【構成】 入力層、中間層、出力層からなる3層階層型
ニューラルネットワークを計算する場合、各層に対応し
て、複数個のチップを図1のように接続する。ここで、
チップ101、102、103、104が入力層、チッ
プ105、106、107、108が中間層、チップ1
09、110が出力層に対応している。シナプス荷重を
これらのチップに内蔵しているメモリに、計算順序に分
割して割り付けることにより、シナプス荷重の転送を実
行しなくても、ニューラルネットワークの前向き伝搬と
逆向き伝搬の計算ができる。この結果、演算処理部間の
データ転送数は大幅に低減されて大規模なニューラルネ
ットワークの計算を高速に行うことができる。
Description
【0001】
【産業上の利用分野】本発明は、階層構造ニューラルネ
ットワークの前向き伝搬の計算、及びバックプロパゲー
ションアルゴリズムによる学習の計算を実行するニュー
ロプロセッサに関するものである。
ットワークの前向き伝搬の計算、及びバックプロパゲー
ションアルゴリズムによる学習の計算を実行するニュー
ロプロセッサに関するものである。
【0002】
【従来の技術】ニューラルネットワークは、人間の脳の
神経細胞の働きをモデル化して模倣することによって、
従来のいわゆるノイマン形のコンピュータが苦手として
いた認識や、連想、最適化問題、音声合成等を得意とす
る新しいコンピュータを実現しようするものである。
神経細胞の働きをモデル化して模倣することによって、
従来のいわゆるノイマン形のコンピュータが苦手として
いた認識や、連想、最適化問題、音声合成等を得意とす
る新しいコンピュータを実現しようするものである。
【0003】ニューラルネットワークには、ニューロン
が層状に配置された階層構造のものや、すべてのニュー
ロンが相互に結合した相互結合構造のものなど、さまざ
まな構造のものがある。その中で階層構造のネットワー
クは、例えばバックプロパゲーションアルゴリズムと呼
ばれる学習アルゴリズムで簡単に学習させることがで
き、制御、文字認識、画像認識、画像処理などに幅広く
応用することができると考えられている。
が層状に配置された階層構造のものや、すべてのニュー
ロンが相互に結合した相互結合構造のものなど、さまざ
まな構造のものがある。その中で階層構造のネットワー
クは、例えばバックプロパゲーションアルゴリズムと呼
ばれる学習アルゴリズムで簡単に学習させることがで
き、制御、文字認識、画像認識、画像処理などに幅広く
応用することができると考えられている。
【0004】図3は階層構造のネットワークの例を示し
たものである。図3で、301は各層中に配置されたニ
ューロン、302はシナプスと呼ばれるニューロン間の
結合、303は入力層、304は中間層、305は出力
層を示す。図3では3層のネットワークの例を示してい
るが、中間層を複数にすることによって4層以上の階層
構造のネットワークにすることもできる。以後は3層の
ネットワークの例で説明するが、4層以上のネットワー
クに対してもまったく同様の扱いである。また、図3で
は各層のニューロンの数は、それぞれ3個,2個,3個
として例示したものであるが、各層のニューロンの数を
増減させても同様である。ニューラルネットワークへの
入力信号は、おのおの、入力層303の各ニューロンに
与えられる。そして、信号が入力層、中間層、出力層の
順番に伝搬していき、出力層305のニューロンの信号
がネットワークの出力になる。このような入力層、中間
層、出力層の順番に伝搬していく通常の伝搬を前向きの
伝搬と呼ぶ。
たものである。図3で、301は各層中に配置されたニ
ューロン、302はシナプスと呼ばれるニューロン間の
結合、303は入力層、304は中間層、305は出力
層を示す。図3では3層のネットワークの例を示してい
るが、中間層を複数にすることによって4層以上の階層
構造のネットワークにすることもできる。以後は3層の
ネットワークの例で説明するが、4層以上のネットワー
クに対してもまったく同様の扱いである。また、図3で
は各層のニューロンの数は、それぞれ3個,2個,3個
として例示したものであるが、各層のニューロンの数を
増減させても同様である。ニューラルネットワークへの
入力信号は、おのおの、入力層303の各ニューロンに
与えられる。そして、信号が入力層、中間層、出力層の
順番に伝搬していき、出力層305のニューロンの信号
がネットワークの出力になる。このような入力層、中間
層、出力層の順番に伝搬していく通常の伝搬を前向きの
伝搬と呼ぶ。
【0005】図4はニューロンの働きを示した図であ
る。図4で、401、407、408、409はニュー
ロン、402はシナプス、406はニューロンの特性関
数fである。ニューロンはシナプスを介して1つ前の層
のニューロンの出力を受け取る。それぞれのシナプスは
結合の重みと呼ばれる値を持っており、前の層のニュー
ロンの出力値にその結合の重みの値を乗算した結果を次
のニューロンに与える。シナプスの結合の重みは、それ
ぞれのシナブスで異なった値になっている。例えば、図
4のk層目のi番目のニューロン408とk+1層目の
j番目のニューロン401との間のシナプスは結合の重
みwkjiを持っており、l層目のi番目のニューロン4
08の出力Okiにその結合の重みの値を乗算した結果w
kji×Okiがk+1層目のj番目のニューロン401に
与える。そして、ニューロン401はそれに結合するす
べてのシナプスより与えられる入力をすべて加算し、そ
の加算結果にニューロンの特性関数406を作用させ
て、その関数値をニューロン401の出力Ok+1,jとし
て出力する。これを式で表すと次式のようになる。
る。図4で、401、407、408、409はニュー
ロン、402はシナプス、406はニューロンの特性関
数fである。ニューロンはシナプスを介して1つ前の層
のニューロンの出力を受け取る。それぞれのシナプスは
結合の重みと呼ばれる値を持っており、前の層のニュー
ロンの出力値にその結合の重みの値を乗算した結果を次
のニューロンに与える。シナプスの結合の重みは、それ
ぞれのシナブスで異なった値になっている。例えば、図
4のk層目のi番目のニューロン408とk+1層目の
j番目のニューロン401との間のシナプスは結合の重
みwkjiを持っており、l層目のi番目のニューロン4
08の出力Okiにその結合の重みの値を乗算した結果w
kji×Okiがk+1層目のj番目のニューロン401に
与える。そして、ニューロン401はそれに結合するす
べてのシナプスより与えられる入力をすべて加算し、そ
の加算結果にニューロンの特性関数406を作用させ
て、その関数値をニューロン401の出力Ok+1,jとし
て出力する。これを式で表すと次式のようになる。
【0006】
【数1】
【0007】したがって、3層のネットワークの場合の
前向き伝搬は、つぎの手順で計算される。まず最初にす
べての中間層のニューロンについて、その出力を、
前向き伝搬は、つぎの手順で計算される。まず最初にす
べての中間層のニューロンについて、その出力を、
【0008】
【数2】
【0009】に従って計算する。次にその結果を使って
すべての出力層のニューロンについて、その出力を、
すべての出力層のニューロンについて、その出力を、
【0010】
【数3】
【0011】に従って計算する。次に、図3の3層の階
層構造ネットワークのバックプロパゲーションアルゴリ
ズムによる学習の方法について説明する。バックプロパ
ゲーションアルゴリズムでは、入力とそれに対する理想
的な出力の組を用意し、その入力に対する実際の出力と
理想的な出力の差が減少するようにシナプスの結合の重
みを修正する。この理想的な出力のことを通常は教師信
号と呼ぶ。以下に、3層のネットワークについて具体的
な計算方法を、順を追って、説明する。 1.前向きの伝搬によって実際の出力を計算する。 2.次式に従って出力層の各ニューロンの誤差に対応し
た値(以下、単にデルタと呼ぶ)を計算する。
層構造ネットワークのバックプロパゲーションアルゴリ
ズムによる学習の方法について説明する。バックプロパ
ゲーションアルゴリズムでは、入力とそれに対する理想
的な出力の組を用意し、その入力に対する実際の出力と
理想的な出力の差が減少するようにシナプスの結合の重
みを修正する。この理想的な出力のことを通常は教師信
号と呼ぶ。以下に、3層のネットワークについて具体的
な計算方法を、順を追って、説明する。 1.前向きの伝搬によって実際の出力を計算する。 2.次式に従って出力層の各ニューロンの誤差に対応し
た値(以下、単にデルタと呼ぶ)を計算する。
【0012】
【数4】
【0013】δ3jは出力層である3層目のj番目のニュ
ーロンに対するデルタ、tjは出力層のj番目のニュー
ロンに対する教師信号、gは
ーロンに対するデルタ、tjは出力層のj番目のニュー
ロンに対する教師信号、gは
【0014】
【数5】
【0015】で表されるようにニューロンの特性関数f
の微分係数である。ニューロンの特性関数fは、単調非
減少の関数が用いられるので、(数5)に示したよう
に、特性関数の微分係数を特性関数の関数値の関数とし
て表すことができる。 3.中間層と出力層との間のシナプス荷重の修正量を、
次式に従って計算し、重みを修正する。
の微分係数である。ニューロンの特性関数fは、単調非
減少の関数が用いられるので、(数5)に示したよう
に、特性関数の微分係数を特性関数の関数値の関数とし
て表すことができる。 3.中間層と出力層との間のシナプス荷重の修正量を、
次式に従って計算し、重みを修正する。
【0016】
【数6】
【0017】ηは修正係数である。 4.中間層のニューロンに対するデルタを、次式に従っ
て計算する。
て計算する。
【0018】
【数7】
【0019】5.中間層と入力層の間のシナプス荷重の
修正量を、次式に従って計算し、重みを修正する。
修正量を、次式に従って計算し、重みを修正する。
【0020】
【数8】
【0021】実際の学習では、以上に述べた手順を、複
数個の入力と教師信号の組に対して行い、さらにそれを
何回も繰り返す。すなわち、上の1から5までの手順を
1回の学習と呼ぶことにすると、総学習回数は、(学習
に用いる入力と教師信号の組の数)×(繰り返しの回
数)となる。
数個の入力と教師信号の組に対して行い、さらにそれを
何回も繰り返す。すなわち、上の1から5までの手順を
1回の学習と呼ぶことにすると、総学習回数は、(学習
に用いる入力と教師信号の組の数)×(繰り返しの回
数)となる。
【0022】以上より明かなように、ニューラルネット
ワークの計算には、シナプス荷重を保存するメモリが必
要である。1チップに集積できるメモリの容量には上限
があるため、その数よりも大きなニューラルネットワー
クを計算する場合には、複数個のチップを接続すること
が必要になる。また、処理速度の点でも、複数個のチッ
プを使用した方が高速化できる。そこで、複数個のディ
ジタルシグナルプロセッサ(DSP)やマイクロプロセ
ッサを使用して、データを各々のチップ間で転送しなが
ら計算を実行している。入力層、中間層、出力層のニュ
ーロン数がそれぞれ、32個、32個、32個である図
5のような3層の階層型ニューラルネットワークをDS
P1、DSP2、DSP3、DSP4の4つのDSPで
実行する場合、DSP1、DSP2で入力層と中間層の
間の(数2)の計算を実行し、DSP3とDSP4で中
間層と出力層の間の(数3)の計算を実行する。DSP
1は、1から32までと33から48までの(数2)の
計算を分担し、DSP2は、1から32までと49から
64までの(数2)の計算を分担する。相当するシナプ
ス荷重をそれぞれのDSP内部に分割して保持しておけ
ば、これらの計算は並列して実行することができるため
高速な処理もできる。ところが、バックプロパゲーショ
ンの場合、DSP1は、1から32までと33から48
までの(数7)の計算が必要になるため、DSP2に保
持されている1から32までと49から64までのシナ
プス荷重を通信により転送しなければならない。1クロ
ックで1つのメモリを転送できる高速の転送回路が存在
しても、この転送には512クロックもかかる。
ワークの計算には、シナプス荷重を保存するメモリが必
要である。1チップに集積できるメモリの容量には上限
があるため、その数よりも大きなニューラルネットワー
クを計算する場合には、複数個のチップを接続すること
が必要になる。また、処理速度の点でも、複数個のチッ
プを使用した方が高速化できる。そこで、複数個のディ
ジタルシグナルプロセッサ(DSP)やマイクロプロセ
ッサを使用して、データを各々のチップ間で転送しなが
ら計算を実行している。入力層、中間層、出力層のニュ
ーロン数がそれぞれ、32個、32個、32個である図
5のような3層の階層型ニューラルネットワークをDS
P1、DSP2、DSP3、DSP4の4つのDSPで
実行する場合、DSP1、DSP2で入力層と中間層の
間の(数2)の計算を実行し、DSP3とDSP4で中
間層と出力層の間の(数3)の計算を実行する。DSP
1は、1から32までと33から48までの(数2)の
計算を分担し、DSP2は、1から32までと49から
64までの(数2)の計算を分担する。相当するシナプ
ス荷重をそれぞれのDSP内部に分割して保持しておけ
ば、これらの計算は並列して実行することができるため
高速な処理もできる。ところが、バックプロパゲーショ
ンの場合、DSP1は、1から32までと33から48
までの(数7)の計算が必要になるため、DSP2に保
持されている1から32までと49から64までのシナ
プス荷重を通信により転送しなければならない。1クロ
ックで1つのメモリを転送できる高速の転送回路が存在
しても、この転送には512クロックもかかる。
【0023】
【発明が解決しようとする課題】以上に述べたように、
大規模なニューラルネットワークを処理する場合、演算
器単体の処理速度を高速化しても、シナプス荷重のデー
タ転送に時間がかかり、ネットワーク全体の処理速度は
低下する。
大規模なニューラルネットワークを処理する場合、演算
器単体の処理速度を高速化しても、シナプス荷重のデー
タ転送に時間がかかり、ネットワーク全体の処理速度は
低下する。
【0024】本発明は上記課題を解決するもので、大規
模のニューラルネットワークを高速に処理できるニュー
ロプロセッサを提供することを目的としている。
模のニューラルネットワークを高速に処理できるニュー
ロプロセッサを提供することを目的としている。
【0025】
【課題を解決するための手段】以上の課題を解決するた
め、本発明のニューロプロセッサでは、演算処理部のシ
ナプス荷重を複数のメモリに分割して計算順序に合わせ
て割付けし、さらに、複数の演算処理部で同時に並列に
動作するデータ転送回路を使用している。
め、本発明のニューロプロセッサでは、演算処理部のシ
ナプス荷重を複数のメモリに分割して計算順序に合わせ
て割付けし、さらに、複数の演算処理部で同時に並列に
動作するデータ転送回路を使用している。
【0026】
【作用】上記構成により、演算処理部間のデータ転送数
は大幅に低減されて大規模なニューラルネットワークの
計算を高速に処理することができる。
は大幅に低減されて大規模なニューラルネットワークの
計算を高速に処理することができる。
【0027】
【実施例】以下、本発明の実施例を図面により説明す
る。
る。
【0028】図1は本発明の実施例の複数個のチップを
接続したニューロプロセッサの構成図である。入力層、
中間層、出力層のニューロン数がそれぞれ、32個、3
2個、32個からなる図5の3層の階層型ニューラルネ
ットワークを計算する場合を考える。チップ101から
チップ110までの10個のチップで構成されている。
チップ101は、501から516までと533から5
48までの間のシナプス荷重を保持し、チップ102
は、517から532までと533から548までのシ
ナプス荷重を保持している。同様に、チップ103は、
501から516までと549から564まで、チップ
104は、517から532までと549から564ま
で、チップ105は533から548までと565から
580まで、チップ106は549から564までと5
65から580まで、チップ107は533から548
までと581から596まで、チップ108は549か
ら564までと581から596までのシナプス荷重を
保持している。これらのチップの計算手順は、図2のよ
うになる。これらのチップの制御は、ホストとなるCP
Uが行う。各チップはホストCPUとアドレスバス、デ
ータバス、コントロールバスによって接続されており、
それぞれ固有のアドレスを持っている。アドレスバスは
16ビットのアドレス情報、データバスは8ビットのデ
ータ、コントロールバスは書き込み、読み込み、チップ
セレクト、リセット等の制御信号線で構成されている。
また、この構成図の中には、ニューラルネットワークの
学習事例の入力と出力の組を保持するメモリも含まれて
いる。
接続したニューロプロセッサの構成図である。入力層、
中間層、出力層のニューロン数がそれぞれ、32個、3
2個、32個からなる図5の3層の階層型ニューラルネ
ットワークを計算する場合を考える。チップ101から
チップ110までの10個のチップで構成されている。
チップ101は、501から516までと533から5
48までの間のシナプス荷重を保持し、チップ102
は、517から532までと533から548までのシ
ナプス荷重を保持している。同様に、チップ103は、
501から516までと549から564まで、チップ
104は、517から532までと549から564ま
で、チップ105は533から548までと565から
580まで、チップ106は549から564までと5
65から580まで、チップ107は533から548
までと581から596まで、チップ108は549か
ら564までと581から596までのシナプス荷重を
保持している。これらのチップの計算手順は、図2のよ
うになる。これらのチップの制御は、ホストとなるCP
Uが行う。各チップはホストCPUとアドレスバス、デ
ータバス、コントロールバスによって接続されており、
それぞれ固有のアドレスを持っている。アドレスバスは
16ビットのアドレス情報、データバスは8ビットのデ
ータ、コントロールバスは書き込み、読み込み、チップ
セレクト、リセット等の制御信号線で構成されている。
また、この構成図の中には、ニューラルネットワークの
学習事例の入力と出力の組を保持するメモリも含まれて
いる。
【0029】ステップ0では、CPU117からチップ
101−110に接続したバスを通して、ネットワーク
の層数や各層内のニューロン数、学習回数等のデータ
を、各チップの対応するレジスタに書き込む。
101−110に接続したバスを通して、ネットワーク
の層数や各層内のニューロン数、学習回数等のデータ
を、各チップの対応するレジスタに書き込む。
【0030】ステップ1では、学習事例をそれぞれの学
習事例保持用メモリ111−114に保存する。CPU
117がチップ101からチップ104までの各チップ
に対応する学習事例の入力側データの送信を開始する命
令を送信する。このモードでは、学習事例用メモリはチ
ップ内部でCPU117のバスと直結され、CPU11
7がアドレスと共にデータを送信する。ただし、チップ
101とチップ103、チップ102とチップ104は
同じ番号の入力層ニューロンを持っているので、データ
は2つのチップに同時に書き込まれる。チップ109と
チップ110についても同様な手順で学習事例の出力側
データが書き込まれる。
習事例保持用メモリ111−114に保存する。CPU
117がチップ101からチップ104までの各チップ
に対応する学習事例の入力側データの送信を開始する命
令を送信する。このモードでは、学習事例用メモリはチ
ップ内部でCPU117のバスと直結され、CPU11
7がアドレスと共にデータを送信する。ただし、チップ
101とチップ103、チップ102とチップ104は
同じ番号の入力層ニューロンを持っているので、データ
は2つのチップに同時に書き込まれる。チップ109と
チップ110についても同様な手順で学習事例の出力側
データが書き込まれる。
【0031】ステップ2では、学習事例を各入力層チッ
プへ読み込む。CPU117から入力データの読み込み
信号をチップ101からチップ104へ送信することに
より、それぞれのチップが独立に、それぞれのチップに
付属した学習事例保持用メモリからニューラルネットワ
ークへの対応する入力データを読み込む。全てのチップ
がレディ状態になると、CPU117は次のステップに
進む。
プへ読み込む。CPU117から入力データの読み込み
信号をチップ101からチップ104へ送信することに
より、それぞれのチップが独立に、それぞれのチップに
付属した学習事例保持用メモリからニューラルネットワ
ークへの対応する入力データを読み込む。全てのチップ
がレディ状態になると、CPU117は次のステップに
進む。
【0032】ステップ3では、入力層と中間層の間のシ
ナプス荷重の積を求める計算開始命令をホストCPUか
ら受ける。チップ101でk=501から516までと
j=533から548までのニューロン間のシナプス荷
重の積和を
ナプス荷重の積を求める計算開始命令をホストCPUか
ら受ける。チップ101でk=501から516までと
j=533から548までのニューロン間のシナプス荷
重の積和を
【0033】
【数9】
【0034】に従って計算し、533から548までに
対応するアドレスのメモリへ格納する。同時に、チップ
102でk=517から532までとj=533から5
48まで、チップ103でk=501から516までと
j=549から564まで、チップ104でk=517
から532までとj=549から564までの積和を計
算して各チップ内の対応するメモリへ保存する。
対応するアドレスのメモリへ格納する。同時に、チップ
102でk=517から532までとj=533から5
48まで、チップ103でk=501から516までと
j=549から564まで、チップ104でk=517
から532までとj=549から564までの積和を計
算して各チップ内の対応するメモリへ保存する。
【0035】ステップ4では、チップ101、102、
103、104のメモリへ保存された値をチップ10
5、106、107、108に転送して(数2)の括弧
内部の計算を完成させる。チップ105ではj=533
の場合にk=501から516までの積和をチップ10
1のメモリのアドレス33から読み出し、その値に、チ
ップ102のメモリのアドレス33からk=516から
532までの積和を読み出して加算して、メモリのアド
レス33に格納する。この操作をj=534から548
まで繰り返す。チップ107は、チップ105で発生し
た信号を受けてチップ105と同期しながら同じ演算を
行う。チップ106は、チップ105でj=549から
564までの演算を行い、チップ108はチップ107
でj=549から564までの演算を行う。
103、104のメモリへ保存された値をチップ10
5、106、107、108に転送して(数2)の括弧
内部の計算を完成させる。チップ105ではj=533
の場合にk=501から516までの積和をチップ10
1のメモリのアドレス33から読み出し、その値に、チ
ップ102のメモリのアドレス33からk=516から
532までの積和を読み出して加算して、メモリのアド
レス33に格納する。この操作をj=534から548
まで繰り返す。チップ107は、チップ105で発生し
た信号を受けてチップ105と同期しながら同じ演算を
行う。チップ106は、チップ105でj=549から
564までの演算を行い、チップ108はチップ107
でj=549から564までの演算を行う。
【0036】ステップ5では、(数2)の関数fによる
変換と(数3)の括弧内部の演算を行う。チップ5で
は、まず、メモリのアドレスを順番に読み出し、関数f
の変換を行う。この変換は実際に計算を実行してもよい
し、関数の引き数をアドレスとして変換テーブルを参照
して求めてもよい。こうしてO2iを計算し、アドレスi
に保存する。この操作をi=533から548まで実行
する。次に、ステップ3と同様の操作で中間層の出力に
中間層と出力層の間のシナプス荷重を掛け、加算を行
い、(数3)の関数の引き数に相当する値を求め、メモ
リに格納する。チップ106、107、108でもそれ
ぞれこの操作を行う。
変換と(数3)の括弧内部の演算を行う。チップ5で
は、まず、メモリのアドレスを順番に読み出し、関数f
の変換を行う。この変換は実際に計算を実行してもよい
し、関数の引き数をアドレスとして変換テーブルを参照
して求めてもよい。こうしてO2iを計算し、アドレスi
に保存する。この操作をi=533から548まで実行
する。次に、ステップ3と同様の操作で中間層の出力に
中間層と出力層の間のシナプス荷重を掛け、加算を行
い、(数3)の関数の引き数に相当する値を求め、メモ
リに格納する。チップ106、107、108でもそれ
ぞれこの操作を行う。
【0037】ステップ6では、ステップ4と同様なデー
タ転送を実行する。すなわち、チップ109は、チップ
105のメモリのアドレス65を読み出し、その値に、
チップ106のメモリのアドレス65を読み出して加
え、メモリのアドレス65に保存する。この操作をj=
565から580まで繰り返す。チップ110はj=5
81から596までを実行する。
タ転送を実行する。すなわち、チップ109は、チップ
105のメモリのアドレス65を読み出し、その値に、
チップ106のメモリのアドレス65を読み出して加
え、メモリのアドレス65に保存する。この操作をj=
565から580まで繰り返す。チップ110はj=5
81から596までを実行する。
【0038】以上で、ニューラルネットワークの前向き
伝搬が終了する。この処理だけであれば、従来法でもシ
ナプス荷重を転送する必要がなく処理は変わらない。
伝搬が終了する。この処理だけであれば、従来法でもシ
ナプス荷重を転送する必要がなく処理は変わらない。
【0039】次に、ニューラルネットワークの最大の特
徴である学習の手順について説明する。このネットワー
クはバックプロパゲーション学習法により学習させる。
徴である学習の手順について説明する。このネットワー
クはバックプロパゲーション学習法により学習させる。
【0040】ステップ7では、学習事例の出力信号保存
用メモリ115、116のデータと前向き伝搬で求めた
ネットワークの出力データとの差を求めて、チップ10
9及び110対応するメモリのアドレスへ格納する。
用メモリ115、116のデータと前向き伝搬で求めた
ネットワークの出力データとの差を求めて、チップ10
9及び110対応するメモリのアドレスへ格納する。
【0041】ステップ8では、チップ109と110の
メモリの内容をチップ105から108へ転送する。
メモリの内容をチップ105から108へ転送する。
【0042】ステップ9では、関数fの微分(数5)を
掛け、(数4)のδ3を計算する。チップ5では、(数
4)のj=565から580までを計算し対応するメモ
リのアドレスに格納する。さらに、ηとO2iをかけて、
(数6)によりΔwを求める。次に、(数9)をk=5
65から580までとj=533から548まで計算し
てメモリのアドレスに格納する。最後に、同じ添字を持
つwにΔwを加えて、同じアドレスに値を戻す。チップ
106もチップ105と同期して、j=549から56
4までとなることを除いて同じ計算を実行する。チップ
107はチップ105とチップ108はチップ106と
同様な動作をする。ただし、k=581から596とな
る。
掛け、(数4)のδ3を計算する。チップ5では、(数
4)のj=565から580までを計算し対応するメモ
リのアドレスに格納する。さらに、ηとO2iをかけて、
(数6)によりΔwを求める。次に、(数9)をk=5
65から580までとj=533から548まで計算し
てメモリのアドレスに格納する。最後に、同じ添字を持
つwにΔwを加えて、同じアドレスに値を戻す。チップ
106もチップ105と同期して、j=549から56
4までとなることを除いて同じ計算を実行する。チップ
107はチップ105とチップ108はチップ106と
同様な動作をする。ただし、k=581から596とな
る。
【0043】(数7)を求める演算を実行するために
は、例えば、チップ101において、(数7)の積和部
分はk=532から564でなければならないので、チ
ップ105とチップ107でもとめた(数9)のメモリ
の値を転送し加算する必要がある。
は、例えば、チップ101において、(数7)の積和部
分はk=532から564でなければならないので、チ
ップ105とチップ107でもとめた(数9)のメモリ
の値を転送し加算する必要がある。
【0044】ステップ110では、チップ101におい
て、チップ105のメモリのアドレスjの値をチップ1
01に転送し、その値にチップ107の同じ値を転送し
て加算し、メモリのアドレスjに格納する。これをj=
501から516まで繰り返す。チップ102では、チ
ップ101と同期して同様な計算を行う。チップ103
はチップ101に対応し、チップ104はチップ102
に対応する計算を実行する。
て、チップ105のメモリのアドレスjの値をチップ1
01に転送し、その値にチップ107の同じ値を転送し
て加算し、メモリのアドレスjに格納する。これをj=
501から516まで繰り返す。チップ102では、チ
ップ101と同期して同様な計算を行う。チップ103
はチップ101に対応し、チップ104はチップ102
に対応する計算を実行する。
【0045】ステップ11では、この値からδを(数
7)に従って求め、さらにニューロンの出力をかけて、
(数8)によりΔwを計算する。
7)に従って求め、さらにニューロンの出力をかけて、
(数8)によりΔwを計算する。
【0046】以上の操作によれば、ステップ10とステ
ップ11の計算のためのデータ転送は、16クロックで
実行できるため、データ転送による処理速度の低下は小
さい。これは、重みを転送する従来法に比べて10倍以
上高速となっている。完全結合したネットワークでは、
シナプスの数はニューロン数の2乗で増加するため、ネ
ットワークの規模が大きいほど本発明で構成したニュー
ロプロセッサの方が高速にニューラルネットワークの演
算を処理できる。
ップ11の計算のためのデータ転送は、16クロックで
実行できるため、データ転送による処理速度の低下は小
さい。これは、重みを転送する従来法に比べて10倍以
上高速となっている。完全結合したネットワークでは、
シナプスの数はニューロン数の2乗で増加するため、ネ
ットワークの規模が大きいほど本発明で構成したニュー
ロプロセッサの方が高速にニューラルネットワークの演
算を処理できる。
【0047】以上の操作の中で、データ転送は複数のチ
ップ間で同時に実行すると効率がさらに良くなる。例え
ば、ステップ4では、チップ101、102とチップ1
05、106のデータ転送とチップ103、104とチ
ップ107、108の間のデータ転送を同時に実行す
る。同様に、ステップ106、108、110でもチッ
プ間のデータ転送を並列化できる。
ップ間で同時に実行すると効率がさらに良くなる。例え
ば、ステップ4では、チップ101、102とチップ1
05、106のデータ転送とチップ103、104とチ
ップ107、108の間のデータ転送を同時に実行す
る。同様に、ステップ106、108、110でもチッ
プ間のデータ転送を並列化できる。
【0048】なお、本発明のニューロプロセッサは、1
チップになっていても、他のプロセッサや演算ブロック
やメモリ等と同一のチップ上に存在してもかまわない。
また、演算部分はチップごとにステップで示した様な種
類の異なる演算部分を含んだ数種類のチップを用いて構
成してもよし、どのステップも計算できる演算処理部を
含んだチップを用いてもよい。
チップになっていても、他のプロセッサや演算ブロック
やメモリ等と同一のチップ上に存在してもかまわない。
また、演算部分はチップごとにステップで示した様な種
類の異なる演算部分を含んだ数種類のチップを用いて構
成してもよし、どのステップも計算できる演算処理部を
含んだチップを用いてもよい。
【0049】
【発明の効果】以上の実施例から明かなように、本発明
によれば、演算処理部分のデータ転送の数が大幅に低減
されて、大規模な階層構造のニューラルネットワークの
前向き伝搬と学習の計算が高速にできるニューロプロセ
ッサを提供できる。
によれば、演算処理部分のデータ転送の数が大幅に低減
されて、大規模な階層構造のニューラルネットワークの
前向き伝搬と学習の計算が高速にできるニューロプロセ
ッサを提供できる。
【図1】本発明の一実施例の複数個のチップを接続した
ニューロプロセッサの構成図
ニューロプロセッサの構成図
【図2】計算手順の流れ図
【図3】階層型ニューラルネットワークの系統図
【図4】ニューロンの働きを示した概念図
【図5】32−32−32のニューロンからなるニュー
ラルネットワークの系統図
ラルネットワークの系統図
101−110 演算処理用チップ 111−114 入力用学習事例保持メモリ 115−116 出力用学習事例保持メモリ 117 ホストCPU 118 コントロール、アドレス、データバス 301 ニューロン 302 シナプス 303 入力層 304 中間層 305 出力層 401 ニューロン 406 ニューロンの特性関数 407−409 ニューロン 501−596 ニューロン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井上 敦雄 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 里中 孝美 大阪府門真市大字門真1006番地 松下電器 産業株式会社内
Claims (3)
- 【請求項1】シナプスの結合重み保持用メモリをチップ
上あるいはチップ外に持ち、ニューラルネットワークの
バックプロパゲーション学習則に従って学習する演算処
理部分を1チップ上に複数個有し、それらを1チップ上
で接続したニューロプロセッサ。 - 【請求項2】シナプスの結合重み保持用メモリをチップ
上あるいはチップ外に持ち、ニューラルネットワークの
バックプロパゲーション学習則に従って学習する演算処
理部分の1部分を1チップ上に有し、当該チップを複数
個接続するニューロプロセッサ。 - 【請求項3】ニューラルネットワークのバックプロパゲ
ーション学習則に従って学習する複数個に分割された演
算処理部分を、1チップ上または複数のチップ上に持
ち、当該複数演算処理部の間で同時に並列的にデータの
転送をするニューロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32267891A JPH05159087A (ja) | 1991-12-06 | 1991-12-06 | ニューロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP32267891A JPH05159087A (ja) | 1991-12-06 | 1991-12-06 | ニューロプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05159087A true JPH05159087A (ja) | 1993-06-25 |
Family
ID=18146394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32267891A Pending JPH05159087A (ja) | 1991-12-06 | 1991-12-06 | ニューロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05159087A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017107568A (ja) * | 2015-12-11 | 2017-06-15 | バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーBaidu USA LLC | マルチコア最適化リカレントニューラルネットワーク用のシステムおよび方法 |
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 |
US11238334B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method of input alignment for efficient vector operations in an artificial neural network |
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 |
-
1991
- 1991-12-06 JP JP32267891A patent/JPH05159087A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017107568A (ja) * | 2015-12-11 | 2017-06-15 | バイドゥ・ユーエスエイ・リミテッド・ライアビリティ・カンパニーBaidu USA LLC | マルチコア最適化リカレントニューラルネットワーク用のシステムおよび方法 |
US11216717B2 (en) | 2017-04-04 | 2022-01-04 | Hailo Technologies Ltd. | Neural network processor incorporating multi-level hierarchical aggregated computing and memory elements |
US11238331B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method for augmenting an existing artificial neural network |
US11238334B2 (en) | 2017-04-04 | 2022-02-01 | Hailo Technologies Ltd. | System and method of input alignment for efficient vector operations in an artificial neural network |
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 |
---|---|---|
US5506998A (en) | Parallel data processing system using a plurality of processing elements to process data and a plurality of trays connected to some of the processing elements to store and transfer data | |
US5544336A (en) | Parallel data processing system which efficiently performs matrix and neurocomputer operations, in a negligible data transmission time | |
US5325510A (en) | Multiprocessor system and architecture with a computation system for minimizing duplicate read requests | |
JP2671120B2 (ja) | データ処理セルおよびデータプロセッサ | |
US5604840A (en) | Information processing apparatus | |
US5600843A (en) | Ring systolic array system for synchronously performing matrix/neuron computation using data transferred through cyclic shift register connected in cascade of trays | |
JP2001188767A (ja) | ニューラルネットワーク演算装置及びニューラルネットワークの演算方法 | |
EP0664516B1 (en) | Neural network with reduced calculation amount | |
JPH02193251A (ja) | エラー後方伝ぱん法と神経網システム | |
JPH05159087A (ja) | ニューロプロセッサ | |
WO2022179075A1 (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
JP3177996B2 (ja) | ニューロプロセッサ | |
JP2001117900A (ja) | ニューラルネットワーク演算装置 | |
US12020141B2 (en) | Deep learning apparatus for ANN having pipeline architecture | |
US5485548A (en) | Signal processing apparatus using a hierarchical neural network | |
JPH076146A (ja) | 並列データ処理システム | |
JPH04237388A (ja) | ニューロプロセッサ | |
JPH05128285A (ja) | ニユーロプロセツサ | |
James et al. | Design of low-cost, real-time simulation systems for large neural networks | |
JP2825133B2 (ja) | 並列データ処理方式 | |
JPH05197707A (ja) | 情報処理システム | |
JP3246764B2 (ja) | ニューロチップ | |
JP2677656B2 (ja) | ニューロコンピュータの集中制御方式 | |
JPH07101415B2 (ja) | 情報処理装置及びその学習方法 | |
JP2766858B2 (ja) | ニューラルネットワーク並列シミュレーション方法及びそれに用いる装置 |