(57)【特許請求の範囲】
【請求項１】
複数の入力部と、少なくとも一つのプロセッシング要素と、少なくとも一つの出力部と、それぞれ前記少なくとも一つのプロセッシング要素に対応するアドレスに値を記憶するデジタルメモリとを備える、ニューラルネットワーク素子であって、
前記少なくとも一つのプロセッシング要素は、他のニューラルネットワーク素子のプロセッシング要素からの入力信号に応答して前記デジタルメモリからの命令を含む値を受信するように構成され、かつ前記デジタルメモリから受信された値に応じて複数の操作の一つを実行するように命令され、
前記複数の操作の各々は、前記少なくとも一つのプロセッシング要素の活性レベルを変更し、前記活性レベルは前記プロセッシング要素の興奮度を示す内的値である、ニューラルネットワーク素子。
【請求項２】
前記操作は、前記少なくとも一つのプロセッシング要素の活性レベルへの前記値の加算である、請求項１に記載のニューラルネットワーク素子。
【請求項３】
前記操作は、少なくとも一つのプロセッシング要素の活性レベルの零への減衰であり、この減衰は前記活性レベルが負であれば前記活性レベルを増加させ、前記活性レベルが正であれば前記活性レベルを減少させることによるものである、請求項１に記載のニューラルネットワーク素子。
【請求項４】
前記減衰の速度は前記デジタルメモリから受信された値に依存する、請求項３に記載のニューラルネットワーク素子。
【請求項５】
前記減衰はクロックにより制御される、請求項３又は請求項４に記載のニューラルネットワーク素子。
【請求項６】
前記操作は、前記少なくとも一つのプロセッシング要素による出力の生成と、その少なくとも一つのプロセッシング要素の活性レベルの予め定められた最小レベルへのリセットとを含む、請求項１に記載のニューラルネットワーク素子。
【請求項７】
前記操作は、前記少なくとも一つのプロセッシング要素により出力を生成することなく、その少なくとも一つのプロセッシング要素の活性レベルをリセットすることを含む、請求項１に記載のニューラルネットワーク素子。
【請求項８】
前記操作は、自動学習アルゴリズムに基づいて、前記少なくとも一つの活性レベルを前記デジタルメモリに保持された値に変更することを含む、請求項１に記載のニューラルネットワーク素子。
【請求項９】
前記操作は、自動学習アルゴリズムに基づいて、前記デジタルメモリに保持された値を変更することを含む、請求項１又は請求項８に記載のニューラルネットワーク素子。
【請求項１０】
前記自動学習アルゴリズムは、ヘブ学習アルゴリズムを備える請求項８又は請求項９に記載のニューラルネットワーク素子。
【請求項１１】
前記ニューラルネットワーク素子により生成される出力は、前記出力を発生した前記プロセッシング要素の個々のアドレスの番号を含む、請求項１に記載のニューラルネットワーク素子。
【請求項１２】
前記ニューラルネットワーク素子は、前記プロセッシング要素から受信された信号パルスの時系列順序を決定し、各信号パルスを出力を発生したプロセッシング要素のアドレスを表す番号により表すように構成された調停及びエンコード手段を備える、請求項１１に記載のニューラルネットワーク素子。
【請求項１３】
前記デジタルメモリに対する読出線アクセスを有する通常のプロセッサをさらに備える、請求項１に記載のニューラルネットワーク素子。
【請求項１４】
前記通常のプロセッサによる前記デジタルメモリへのアクセスは、前記ニューラルプロセッシング要素により要求されるアクセスに対して非同期で調停される、請求項１３に記載のニューラルネットワーク素子。
【請求項１５】
多数のニューラルネットワーク素子が通常のプロセッサの並列ネットワークにより管理される、請求項１３又は請求項１４に記載のニューラルネットワーク素子。
【請求項１６】
前記デジタルメモリはランダムアクセスメモリである、請求項１に記載のニューラルネットワーク素子。
【請求項１７】
前記素子は非同期法で作動する請求項１に記載のニューラルネットワーク素子。
【請求項１８】
複数の入力部と、少なくとも一つのプロセッシング要素と、少なくとも一つの出力部と、それぞれ前記少なくとも一つのプロセッシング要素に対応するアドレスに値を記憶するデジタルメモリとを備えるニューラルネットワーク素子を操作する方法であって、
前記少なくとも一つのプロセッシング要素にそれぞれ対応する前記デジタルメモリのアドレスに値を記憶し、
他のニューラルネットワーク素子のプロセッシング要素からの入力信号に応答して前記少なくとも一つのプロセッシング要素に命令を含む値を伝送し、かつ
前記デジタルメモリから受信された値に応じて前記プロセッシング要素で複数の操作のうちの一つを実行し、
前記複数の操作の各々は、前記少なくとも一つのプロセッシング要素の活性レベルを変更し、前記活性レベルは前記プロセッシング要素の興奮度を示す内的値である、
ニューラルネットワーク素子を操作する方法。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、ニューラルネットワーク素子に関する。
【０００２】
（背景技術）
ニューラルネットワークは、生物学的に着想された情報処理のための計算アーキテクチャである。通常のプログラム内蔵型コンピュータで実行される通常のアルゴリズムでは解くことが困難な問題を解くためにニューラルネットワークを使用することが多くなっている。一般的には、これらの問題は株式市場予測、画像認識、音声認識のようなパターンマッチング問題である。いくつかのニューラルネットワークの応用例は商業的に重要である。例えば、多くのラップトップパーソナルコンピュータのタッチパッドは、信頼性を高めるためにニューラルネットワークを使用している（ニューラルシステムは比較的ノイズ不感性である。）。
【０００３】
ニューロンは、概して多入力、単一出力のデバイスである。１個のニューロンからの出力信号はそのニューロンに対する入力の重み付けされた総和の関数であり、以下の等式により表すことができる。
【０００４】
【数１】
0004931311.tif 000002
【０００５】
ここで、Ｘｊはニューロンへの入力（場合によっては他のニューロンからの）、Ｗｉｊは入力に適用される荷重、以下の総和はニューロンの活性レベル（ニューロンの状態の内的測定値）である。
【０００６】
【数２】
0004931311.tif 000003
【０００７】
Ｔｉはニューロンの閾値、ｆｉは活性関数（これは通常非線形である。）、Ｙｉはｉ次のニューロンの出力である。活性レベルが閾値を越えるとニューロンにより出力が生成される。
【０００８】
所定の入力と関連する荷重は正であってもよく、この場合にはその入力で受信された信号は活性レベルを増加させる。従って、正の荷重は興奮性の入力とみなすことができる。ある場合には、所定の入力と関連する荷重は負であってもよく、この場合にはその入力で受信された信号は活性レベルを減少させる。従って、負の荷重は抑制性の入力とみなすことができる。
【０００９】
ニューロン間の接続は荷重の値を調整することにより強められ、あるいは弱められる。例えば、所定のニューロンの特定の入力と関連する荷重がこの入力で信号が受信される度に減少してもよい。繰り返し信号（すなわち、同じ入力で複数回受信される信号）が、その入力と関連する荷重を漸次増加させてもよい。次ににその入力で信号が受信されるとニューロンの活性レベルが一層増加する。
【００１０】
活性関数は通常すべてのニューロンについて同一であって、固定されており、シグモイド関数（sigmoid function）が頻繁に使用される。
【００１１】
既知のニューラルネットワークにおけるｉ次のニューロンの活性度は、荷重Ｗｉｊの値により決定される入力Ｘｊの単調関数（monotonic function）に限定されている。この限定により、既知のニューラルネットワークはより複雑で非単調の挙動をエミュレートする能力が制限されている。
【００１２】
（発明の開示）
（発明が解決しようとする技術的課題）
本発明の目的は、前述の不都合を解消するニューラルネットワークの素子を提供することにある。
【００１３】
（その解決方法）
従って、第１の発明は、複数の入力と、少なくとも一つのプロセッシング要素と、少なくとも一つの出力と、それぞれ前記少なくとも一つのプロセッシング要素に対応するアドレスに値を記憶するデジタルメモリとを備える、ニューラルネットワーク素子であって、前記少なくとも一つのプロセッシング要素は、入力信号に応答して前記デジタルメモリからの値を受信するように構成され、かつ前記デジタルメモリから受信された値に応じて複数の操作の一つを実行するように命令される、ニューラルネットワーク素子を提供する。
【００１４】
プロセッシング要素により受信された値が常にプロセッシング要素の活性レベルに加算される（値が常に荷重である）先行技術のニューラルネットワークとは対照的である。本発明のプロセッシング要素は、複数の命令を実行可能であり、従って、受信された値はプロセッシング要素に命令のうち実行するものを選択させる命令として機能する。
【００１５】
プロセッシング要素の活性レベルはプロセッシング要素の興奮度を示す内的値である。
【００１６】
好適には、前記操作は、前記少なくとも一つのプロセッシング要素の活性レベルへの前記値の加算である。
【００１７】
好適には、前記操作は、少なくとも一つのプロセッシング要素の活性レベルの零への減衰であり、この減衰は前記活性レベルが負であれば前記活性レベルを増加させ、前記活性レベルが正であれば前記活性レベルを減少させることによるものである。
【００１８】
好適には、前記減衰の速度は前記デジタルメモリから受信された値に依存する。
【００１９】
好適には、前記減衰はクロックにより制御される。
【００２０】
好適には、前記操作は、前記少なくとも一つのプロセッシング要素による出力の生成と、その少なくとも一つのプロセッシング要素の活性レベルの予め定められた最小レベルへのリセットとを含む。
【００２１】
好適には、前記操作は、前記少なくとも一つのプロセッシング要素により出力を生成することなく、その少なくとも一つのプロセッシング要素の活性レベルをリセットすることを含む。
【００２２】
好適には、前記操作は、自動学習アルゴリズムに基づいて、前記少なくとも一つの活性レベルを前記デジタルメモリに保持された値を変更することを含む。
【００２３】
好適には、前記操作は、自動学習アルゴリズムに基づいて、前記デジタルメモリに保持された値を変更することを含む。
【００２４】
好適には、前記自動学習アルゴリズムは、ヘブ学習アルゴリズムを備える。
【００２５】
好適には、前記ニューラルネットワーク素子により生成される出力は、前記出力を発生した前記プロセッシング要素の個々のアドレスの番号を含む。
【００２６】
好適には、前記ニューラルネットワーク素子は、前記プロセッシング要素から受信された信号パルスの時系列順序を決定し、各信号パルスを番号により表すように構成された調停及びエンコード手段を備える。例えば、各ニューロン出力がそれ自体のピンを有していれば、２５６本のピンが８本のピンに置換され（この場合、８ビットの２進数が使用される。）、外部通信（off-chip communication）についてのピンの制限の問題が解決されるので、この構成は有利である。
【００２７】
好適には、ニューラルネットワーク素子は、前記デジタルメモリに対する読出線アクセスを有する通常のプロセッサをさらに備える。
【００２８】
好適には、前記通常のプロセッサによる前記デジタルメモリへのアクセスは、前記ニューラルプロセッシング要素により要求されるアクセスに対して非同期で調停される。
【００２９】
好適には、多数のニューラルネットワーク素子が通常のプロセッサの並列ネットワークにより管理される。
【００３０】
前記デジタルメモリはランダムアクセスメモリであることが好ましい。
【００３１】
好適には、前記素子は非同期法で作動する。あるいは、ニューラルネットワーク素子はクロックで作動してもよい。
【００３２】
第２の発明は、少なくとも一つのプロセッシング要素にそれぞれ対応するデジタルメモリのアドレスに値を記憶し、前記少なくとも一つのプロセッシング要素に値を伝送し、かつ前記デジタルメモリから受信された値に応じて前記プロセッシング要素で複数の操作のうちの一つを実行する、ニューラルネットワーク素子を操作する方法を提供する。
【００３３】
この方法は、前述の第１の発明における好適ないしは好ましい特徴を含むものであってもよい。
【００３４】
（発明を実施するための最良の形態）
添付図面を参照して本発明の特定の実施形態を単なる例として説明する。
【００３５】
図１に示すニューラルネットワークは、１０２４個の入力（input）１、ランダムアクセスメモリ（ＲＡＭ）２、２５６個のプロセッシング要素３、及び２５６個の出力(output)４を備えている。
【００３６】
各入力は先行するニューラルネットワーク素子から信号を搬送する。各入力は１ビットの情報のみを搬送する。換言すれば、各入力は「オン」又は「オフ」である。入力信号は入力に対するパルスの形態を取る。
【００３７】
ＲＡＭ２は値の組を格納している。個々の入力及び出力の組み合わせに、ＲＡＭの異なるアドレスが割り当てられている（アドレスの個数は１０２４×２５６である。）。図１では、読み手の補助と図示の目的のみで、ＲＡＭを列及び行を備える二次元のマトリクスとみなすことができ、各行は特定の入力に属する値のすべてを含み、各列は特定のプロセッシング要素に属する値のすべてを含んでいる。後に詳述するように、ＲＡＭのアドレスのうちのかなりの部分が零の値を含んでいてもよい。
【００３８】
所定の入力で受信されたパルスに応じて、ＲＡＭ２はその入力に対応する行に配置された値を検索する。各値はその値が配置されている列と対応するプロセッシング要素３へ送られる。プロセッシング要素３の活性レベル（プロセッシング要素３の状態の内的測定値）は、受信された値に応じて変更される。各プロセッシング要素３はニューロンとして機能し、１０２４個の入力と１個の出力を有している。
【００３９】
先行技術と異なり、ＲＡＭ２に記憶される値は荷重であってもよく、命令（instruction）であってもよい。プロセッシング要素３に送られた値が命令である場合、後に詳述するように、プロセッシング要素３は命令に応じた操作を実行する。プロセッシング要素３に送られた値が荷重である場合、その荷重はプロセッシング要素３の活性レベルに加算される。「ｉ」のプロセッシングユニットの操作は、数学的に以下のように表すことができる。
【００４０】
【数３】
0004931311.tif 000004
【００４１】
ここでＸｊはニューロンに対する入力、Ｗｉｊは荷重、下記の総和はニューロンの活性レベルである。
【００４２】
【数４】
0004931311.tif 000005
【００４３】
Ｔｉはニューロンの閾値、ｆｉは活性関数（これは通常非線形である。）、Ｙｉはｉ次のニューロンの出力である。活性レベルが閾値を越えるとニューロンにより出力が生成される（これは事実上ニューロンの発火（firing）である。）。
【００４４】
本実施形態では、特定の入力を示すｊは１から１０２４であり、特定の出力を示すｉは１から２５６の間である。
【００４５】
多くの先行技術のニューラルネットワークは、アナログ出力値を生成するニューロンを備えている。例えば、前記の等式において、ニューロンの出力Ｙｉは０と１の間の値を有する数であった。この出力が後続するニューロンに入力されると荷重が乗算され、この乗算の結果がその後続するニューロンの活性レベルに加算される。
【００４６】
説明している本発明の実施形態は、アナログのニューラルネットワークとは異なり、プロセッシング要素（ニューロン）は２種類の出力、すなわち１又は０（ないしは「オン」又は「オフ」と等価）の出力のみが可能な態様で機能する。プロセッシング要素の活性レベルがその閾値を越える度にプロセッシング要素により出力パルスが生成される。外部の観察者から見れば、プロセッシング要素のパルス出力は、アナログ出力と等価とみなし得る。例えば、あるプロセッシングユニットが１秒間に２３個のパルスを生成したとすると、これは０．２３の概念的なアナログ値（notional analogue value）と等価とみなすことができる。以下、プロセッシング要素によるパルスの生成を「パルス速度エンコーディング（pulse rate encoding）」と呼ぶ。
【００４７】
一見すると、アナログ信号を使用する場合と比較すると、パルス速度エンコーディングは計算上非常に集約的であるように認められる。例えば、ニューロンの所定の入力に割り当てられた荷重に１回の計算で０．２３のアナログ信号を乗算し、その後ニューロンの活性レベルに加算することができる。これとは対照的に、パルス速度エンコーディングを使用すると、荷重をニューロンの活性レベルに対して２３回（すなわちパルス毎に）加算しなければならず、２３回の独立した計算が必要となる。しかしながら、所定のニューロンからの出力がないことが頻繁にある。パルス速度エンコーディングを使用すると、この場合には入力パルスはまったく受信されないので、計算はまったく実行されない。これとは対照的に、公知のアナログニューラルネットワークでは、出力の零の値は、偶然に零となった有効な出力値である。ニューロンの荷重に零が乗算され、その積（これも零である。）がニューロンの活性レベルに加算される。このニューロンの活性レベルにまったく影響しない計算は頻繁に現れ、計算上非常に無駄である。パルス速度エンコーディングを使用すれば、この無駄な零の乗算を回避することができる。
【００４８】
ニューラルネットワーク素子は、２５６個のプロセッシング要素３を備えている。各プロセッシング要素３はニューロンとして可能し、１０２４個の入力と１個の出力を備えている。各プロセッシング要素と後続する各ニューラルネットワーク素子との間に個別の接続が設けられているとすると、接続の個数は急激に非実用的な程に多数となる。この問題を回避するため、図２に示すように、プロセッシング要素からの出力は、すべて単一の８ビットの出力ライン５に送られている。所定のプロセッシング要素からの出力パルスは、そのプロセッシング要素を代表する８ビットの２進数に変換され、この８ビットの２進数は出力ラインにより搬送される。この変換は、「アドレス−イベントエンコーディング（addressed-event encoding）」と呼ぶことができ、調停及びエンコーディングユニット（arbitrate and encoding unit）６により実行される。
【００４９】
調停及びエンコーディングユニット６の操作は図３に概略的に図示されている。このユニット６は２つの機能を備えている。すなわち、ユニット６は出力ライン５に送られるパルスの時系列順序（chronological order）を決定し、各出力をその出力を生成したプロセッシング要素を示す数字に変換する。これらの２つの機能はユニット６により同時に達成される。図３のユニット６は８個のプロセッシング要素の組について示している。
【００５０】
ユニット６の第１層は、４個の調停及びエンコーディングブロック１０〜１３を備えている。第１の調停及びエンコーディングブロック１０の入力側は、２個の入力ａ及びｂと、２個の確認応答出力（acknowledgement output）ａａｃｋ及びｂａｃｋとを備えている。プロセッシング要素の出力がハイとなると、それが入力ａで受信され、ブロック１０の第１の出力ｙがハイとなり、第２の出力ｚが同時に入力ａを示す１ビットの数（この場合、２進数は「１」である。）を出力する。次に、確認応答出力ａａｃｋがハイとなり、それによってプロセッシング要素に対してブロック１０により出力が処理されたことが示される。その後、プロセッシング要素の出力がローとなる。
【００５１】
入力ａと入力ｂがほぼ同時にハイとなったとすると、いずれの入力が最初にハイとなったかをザイツ相互排除要素（Seitz mutual exclusion element）が決定する（相互排除要素はアディソン・ウェスレイ（Addison Wesley）から出版されたメッド（Mead）及びコンウェイ(Conway)の「VLSIシステム入門（Introduction to VLSI system）」の２６０頁等に記載されている。）。これによってブロック１０からの出力が生成される。出力が生成され、確認応答が適切なプロセッシング要素に返信されると、入力のうちの後者がブロック１０により処理及び出力される。
【００５２】
ユニット６の第２層は一対の調停及びエンコーディングブロック１４，１５を備えている。この対のうち第１のブロック１４を参照すると、２個の入力ｙ，ｗが先行するブロック１０，１１の出力に接続されている。ブロック１４の第１の出力ｕは入力信号に応じてハイとなり、同時に第２の出力ｖが２ビットの数を出力する。２ビットの数の最上位の桁が入力ｙを表し、２ビットの数の最下位の桁が先行するブロック１０の入力ａを表している。よって、２ビットの数は２進数の「１１」である。
【００５３】
ユニット６の最終の第３層は先行する層と同様に機能する。最終の層を含む単一のブロック１６からの出力は、３ビットの２進数であり、この例では数「１１１」である。
【００５４】
図１の説明では、先行する要素３からの出力はパルスの形態で述べている。図３の説明では、プロセッシング要素からの出力は、確認応答信号がプロセッシング要素により受信された後にのみ終了する連続的なハイとして述べている。調停及びエンコーディングユニット６を正確に機能させるためには、この変更が必要となる。
【００５５】
図２では、８ビットの２進数の出力を生成するために、８層の調停及びエンコーディングブロックが必要となる。
【００５６】
図２を参照すると、４本の８ビットの入力ライン１９がプロセッシング要素３及びＲＡＭ２に接続されている。調停及びエンコーディングユニット２０が４本の入力ライン１９間を調停するために使用されている。調停及びエンコーディングユニット２０は図２に概略的に示しかつ上述したような態様で機能する。この例では、調停及びエンコーディングユニットは２層のブロックを含んでいる。調停及びエンコーディングユニットは、１０ビットの出力を備え追加の２ビットは、４本の８ビットの入力ライン１９間の識別のために使用されている。
【００５７】
調停及びエンコーディングユニット２０の１０ビットの出力はデコーダ２１に接続されている。デコーダは個々の受信した１０ビットの入力数をそれぞれ対応する１ビットの出力ライン１の出力に変換する（従って、出力ラインは１０２４本ある。）。出力ライン１は図１に示す出力ラインに対応している。
【００５８】
本発明の実施形態で使用されているパルス速度エンコーディングシステムでは、ニューラルネットワーク素子間の通信は１μｓのタイムスケールで行われる。これは１ｋＨｚ以下の速度で発火する現在のニューロンの時間解像度と比較すると瞬間的である。
【００５９】
ニューラルネットワーク素子がデジタルであるため、アナログのニューラルネットワーク素子にはない自由度が得られる。詳細には、ＲＡＭ２に広範囲の値を記憶することができ、これによっていくつかの値をプロセッシング要素３に対する「命令」として使用することができる。この「命令」という用語は、プロセッシング要素が単に活性レベルに値を加算するのではなく操作の実行を命令されるということを指している。既知である先行技術のニューラルネットワークでは、ニューロンにより実行される機能は常に同じであり、活性レベルに値が加算される。命令を使用することにより、プロセッシング要素３はそれらの操作において大幅に柔軟性が向上する。
【００６０】
命令を使用することにより、生物学的実際のニューロンにより近似する特性を有するニューラルネットワークが得られる。この特性の一つは、「漏洩性のある（leaky）」統合化である。換言すれば、ある期間に入力される活性度（がなければ、活性レベルが減衰するという特性である。他の特性は「屈折性（refraction）」であり、プロセッシング要素３は発火後のある期間はすべての入力を無視する。この特性によりプロセッシング要素の最大発火速度（すなわち、プロセッシング要素３が出力パルスを生成可能な速度）が制限され、それによってニューロンの活性度が絶えず増加することに起因してネットワークが不安定になることが防止される。屈折性及び漏洩性のある統合化は、ある程度リアルタイムに依存するということを包含している。
【００６１】
屈折性及び漏洩性のある統合化は、リアルタイム参照イベント（real-time reference event）、例えば３２ｋＨｚのクロック（図１及び図２には図示せず。）を使用することにより、説明した本発明の実施形態において実現される。クロックからのパルスは８ビットの入力を介して特定の２進数（例えば０００００００１）として伝送される。漏洩性のある統合化が必要であれば、この入力された数に対応するＲＡＭの各アドレスに記憶された値は、プロセッシング要素に対して活性レベルが正であれば活性レベルを減少させることを命令し、活性レベルが負であれば活性レベルを増加させることを命令する。ＲＡＭに保持された値を異ならせることで、漏洩性のある統合化の速度を異ならせること、例えば、各クロックパルスに応じた減少／増加や、２個のクロックパルス毎の減少／増加を命令してもよい。
【００６２】
命令は自動学習アルゴリズム（例えばヘブの学習アルゴリズム（Hebbian learning algorithms））により調整すべき否かの決定を与えるものであってもよい。自動学習能力があるニューロンの例として、以下のニューロン挙動を図４に示すようにモデル化することができる。
【００６３】
プロセッシング要素の活性レベルは｛−Ｌ，＋Ｔ｝の範囲で機能し、−Ｌは不応答レベル（refractory level）、Ｔは閾値である。閾値Ｔに達するとプロセッシング要素がパルスを出力し、活性レベルは−Ｌにリセットされる。｛−Ｌ，０｝はプロセッシング要素の不応答範囲であり、入力パルスに応じてプロセッシング要素に荷重が送られると、荷重は活性レベルに加算されず（活性レベルは変化しない。）、荷重自体は減少される。｛０，Ｆ｝は漏洩性の興奮範囲（excited range）であり、入力パルスに応じてプロセッシング要素に荷重が送られると、荷重が活性レベルに加算され、学習法により荷重自体は変化しない。｛Ｆ，Ｔ｝は強く刺激される範囲であり、入力パルスに応じて荷重がプロセッシング要素に送られると、荷重が活性レベルに加算され、荷重自体が増加される。
【００６４】
図３に図示されたモデルに従って動作するように構成されたプロセッシングユニットの動作は図５ａから図５ｃのフローチャートに概略的に図示されている。
【００６５】
最初に図５ａを参照すると、所定の入力ｊでパルスが受信される。所定の要素についてこの入力ｊと関連する値は、ＲＡＭから取得され、プロセッシング要素に送られる。値は３つの範囲のうちの一つに入る。３つの範囲には、活性レベルに加算される荷重と対応する第１の範囲と、活性レベルの加算及びプロセッシング要素に対するこの入力と関連する荷重の増加の命令に対応する第２の範囲と、荷重以外の命令を含む第３の範囲とがある。
【００６６】
図５ａの残りの部分は、第１の範囲に入る値を扱っている。値はプロセッシング要素の活性レベルに加算される（荷重が負であれば活性レベルが減少される。）。値の加算後の活性レベルが閾値Ｔより小さければ、それ以上の操作はなされない。活性レベルが閾値Ｔより大きければ、プロセッシング要素はパルスを出力し、プロセッシング要素の活性レベルは−Ｌまで減少される。
【００６７】
値が第２の範囲に入れば、フローチャートに図示されたプロセッシング要素による操作は図５ｂに分岐する。プロセッシング要素の活性レベルが０以上であれば、値はプロセッシング要素の活性レベルに加算される。これに続いて、活性レベルがＦよりも大きければ、ＲＡＭに保存された値が増加される。
【００６８】
プロセッシング要素の活性レベルがゼロ未満であれば、値は活性レベルに加算されず、ＲＡＭに保存された値が減少される。
【００６９】
値が第３の範囲に入れば、他の形態の命令であることを示している。例えば、図５ｃに示すように、プロセッシング要素が活性レベルとかかわりなくパルスを発生し、活性レベルを不応答レベルにリセットするように命令してもよい。
【００７０】
適切な値が選択されればニューラルネットワークが安定するヘブの学習アルゴリズムは、数的な荷重の処理から独立して活性レベルを−Ｌから０へ戻す手順によるものであり、従って、上述のように実行される「期間にわたる零に向けての増加」の命令の使用によるものである。
【００７１】
プロセッシング要素がＲＡＭの値メモリに記憶された値により規定される他の命令を実行可能であってもよいことは、当業者の理解するところである。例えば、ニューロンの発火を行うことなく、活性レベルを不応答レベルにリセットしてもよい。これは強度の抑制性入力を模している。
【００７２】
図１を参照すると、ニューラルネットワーク素子は、ＲＡＭ値記憶部（RAM value store）４に対する読出線アクセス（read-wire access）を備える通常のプロセッサ（図示せず。）を含んでいてもよい。また、プロセッサは、ニューラルネットワーク素子に組み込まれたインターフェース周辺機器を使用して、ニューロン活性度ストリームに対する入力及び出力を監視及び生成可能であってもよい。
【００７３】
プロセッサがＲＡＭ値記憶部４にアクセスし、ネットワークがその時点で飽和に近い状態で作動していなければ、ニューラルプロセッシングに対する影響を最低限としつつ、ニューロン活性度ストリームが完全に機能しているネットワークに対して非同期で調停される。一つの監視プロセッサが多数のニューラルネットワーク素子を管理してもよいが、非常に大型のシステムではこのようなプロセッサが数個必要となる。１ギガビットのＤＲＡＭ技術に基づいて実行する場合には、各チップが監視プロセッサを有する。よって、ニューラルネットワークは、通常のプロセッサの並列ネットワークにより管理され、非常に多数のニューラルネットワークとして実行してもよい。アーキテクチャが通常のマシンに容易に接続されることは、本発明の利点である。制御プロセッサはアーキテクチャの柔軟性を大幅に拡張し、ニューラルプロセッシングと通常のシーケンシャルマシン
との間の閉じた結合（close coupling）をもたらす。
【００７４】
通信がクロック化されたロジックを使用して実行されれば、時間発火情報（temporal firing information）が量子化される。非同期のロジックが使用すれば、この量子化は回避される。従って、非同期のロジックを使用すると有利である。
【００７５】
図示の実施形態では１個のプロセッシング要素が１個のニューロンに対応するが、プロセッシング要素が複数のニューロンの計算を実行する役割を有していてもよいことは明らかである。
【図面の簡単な説明】
【図１】  本発明に係るニューラルネットワーク素子の実施形態の概略図である。
【図２】  調停及びエンコード手段を含むニューラルネットワーク素子の概略図である。
【図３】  図２に図示された調停及びエンコード手段の概略図である。
【図４】  ヘブの学習則を示すグラフである。
【図５ａ】  ニューラルネットワーク素子の処理を示すフローチャートである。
【図５ｂ】  ニューラルネットワーク素子の処理を示すフローチャートである。
【図５ｃ】  ニューラルネットワーク素子の処理を示すフローチャートである。
【符号の説明】
１  入力
２  ランダムアクセスメモリ（ＲＡＭ）
３  プロセッシング要素
４  出力
５  出力ライン
６，２０  調停及びエンコーディングユニット
１９  入力ライン
２１  デコーダ
【図１】
0004931311.tif 000006
【図２】
0004931311.tif 000007
【図３】
0004931311.tif 000008
【図４】
0004931311.tif 000009
【図５ａ】
0004931311.tif 000010
【図５ｂ】
0004931311.tif 000011
【図５ｃ】
0004931311.tif 000012