JPH05197707A - 情報処理システム - Google Patents

情報処理システム

Info

Publication number
JPH05197707A
JPH05197707A JP4209163A JP20916392A JPH05197707A JP H05197707 A JPH05197707 A JP H05197707A JP 4209163 A JP4209163 A JP 4209163A JP 20916392 A JP20916392 A JP 20916392A JP H05197707 A JPH05197707 A JP H05197707A
Authority
JP
Japan
Prior art keywords
output
value
input
memory
selector
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
JP4209163A
Other languages
English (en)
Inventor
Mitsuo Asai
光男 浅井
Noboru Masuda
昇 益田
Moritoshi Yasunaga
守利 安永
Masayoshi Yagyu
正義 柳生
Minoru Yamada
稔 山田
Katsunari Shibata
克成 柴田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP4209163A priority Critical patent/JPH05197707A/ja
Publication of JPH05197707A publication Critical patent/JPH05197707A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 高速学習可能なニューラルネットにより構成
される情報処理システムを実現する。 【構成】 データバス1080〜1084により接続さ
れる半導体集積回路1050と、入力値を記憶する第1
のメモリ1010と、出力の所望する値を記憶する第2
のメモリ1012と、出力値を記憶する第3のメモリ1
011と、これらを制御する制御回路1003を備えた
情報処理システムであって、半導体集積回路はニューロ
ンモデルを計算する複数の機能ブロックを有し、機能ブ
ロックの1つはデータバスにより、自他の機能ブロック
の少なくともいずれかへデータを転送する手段と、複数
の入力値とそれらの入力値に対応する出力の所望する値
に対して、ニューロンモデル間の重み値を修正する手段
を有するものである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、音声認識、画像処理、
制御などに利用するニューラルネットを高速に学習する
ことができる情報処理システムに関する。特に、ウェハ
スケール集積回路(WSI)上に構成するのに好都合
で、高速な学習機能付きの大規模なニューラルネットを
コンパクトでかつ低価格で提供する情報処理システムに
関する。
【0002】
【従来の技術】ニューラルネットは認識、知識処理など
の情報処理に応用されている。ニューラルネットは入力
と期待する出力値を与えれば、学習により自己組織化が
可能である。そのため、プログラムを必要とせず、その
応用が期待されている。
【0003】学習アルゴリズムの1つに、ランメルハー
ト(Rumelhart) らによるパラレルディストリビューティ
ド プロセスィング (Rarallel Distributed Processin
g)第8章318〜362頁及び日経エレクトロニクス 1987.8.1
0(No.427)115〜121ページに紹介されている、”バッ
クプロパゲーション”が知られている。以下に、このバ
ックプロパゲーションを説明する。
【0004】図2にニューラルネットを構成するニュー
ロンのモデルを示す。ニューロンは他のニューロンから
入力xi を入力する。そして、それぞれの入力xi に対
し重み値wjiで重み付けを行い、その総和である内部エ
ネルギー(内積)uj を計算する。この値を例えばシグ
モイド関数fによって変換し、出力xj を出力する。こ
こで、重み値wjiは、ニューロンjにおいて、入力する
ニューロンiに対する重み値である。
【0005】
【数1】
【0006】
【数2】
【0007】複数のニューロンを結合することによっ
て、ニューラルネットを構成できる。そして、重み値w
jiを変えることによって、いろいろな情報処理を行うこ
とが可能である。
【0008】図3に階層型ニューラルネットを示す。本
図は、入力層、中間層、出力層の3階層から構成されて
いるが、中間層を複数とする構成にしてもよい。入力に
対し、情報処理を行なって出力する順方向に動作するモ
ードと、与えた入力に対して期待する出力値を外部から
与え、出力層側から入力層側へ向かって、重み値wji
修正していく逆方向に動作するモードを持つ。そのとき
の重み値wjiの修正値Δwjiをニューロンjでは
【0009】
【数3】
【0010】とする。ここで、nは学習の回数、α、η
は定数である。また、関数δを以下のように決定する。
【0011】出力層のニューロンkでは、期待する出力
値をtk とすると、
【0012】
【数4】
【0013】とし、中間層のニューロンjでは、
【0014】
【数5】
【0015】と決める。ここで、関数f’は関数fの導
関数である。
【0016】以上のように修正値Δwを決定し、重み値
wを修正していく。そして、出力層の出力が期待するも
のとなるまで、以上の学習を繰り返す。
【0017】一般に、ニューラルネットの解明及びその
応用の研究は、逐次型計算機上でソフトウェアによるシ
ミュレーションによって行っている。しかし、非常に多
くの、例えば数千あるいは数万個のニューロンで構成す
る大規模なニューラルネットの学習を行うには、膨大な
計算時間が必要となる。また一般に、学習には非常に多
くの反復を必要とする場合が多い。そのため、大規模な
ニューラルネットの能力はよくわかっていないのが現状
である。
【0018】一方、専用のハードウェアによってニュー
ラルネットを高速に計算させる試みがある。その一つで
ある、”完全ディジタルニューロWSIの基本設計”、
1989年 電子情報通信学会 春季全国大会講演論文集 7
分冊 SD-1-5,291〜292ページで発表された方式を図4に
示す。ここでWSIとは、ウェハスケール インテグレ
ーション(Wafer Scale Integration)のことである。
【0019】図4において、201 はニューロン計算ユニ
ット、210 はバスである。各ニューロン計算ユニット20
1 はバスによって結合している。各ニューロン計算ユニ
ット201 のうち一つが選択され、その出力値をバス210
へ、次々と出力する。各ニューロン計算ユニット201
は、出力しているニューロンに対する重み値をメモリに
保持しており、バス210 から逐次入力する値に、それに
対する重み値をメモリから読みだして重み付けし、その
積を累積加算する。バス210へ出力するときは、その値
を (1)式のシグモイド関数によって変換して出力する。
重み付け回路は時分割に動作させる。各ニューロン計算
ユニット201が一通りバス210へ出力すれば、すべてが
(2)式の計算を行うことができる。以下、時分割バス結
合方式と呼ぶ。
【0020】以上の動作を行うことによって、(1)(2)式
のニューロンモデルを高速に演算することができる。も
う1つの特徴は、図4をWSI上で実現することであ
る。時分割バス結合方式によれば、重み付け回路を時分
割に使用して、1つのニューロン計算ユニット201 の面
積を大幅に低減することができる。このように、1計算
ユニットの面積をできる限り小さくし、1計算ユニット
あたり歩留まりを向上させ、欠陥によって動作不能とな
るニューロン計算ユニット201 の割合を低下させること
で、WSI化に成功している。WSI化することによ
り、以前に比して大規模なニューラルネットを高速にか
つコンパクトに実現することが可能となる。
【0021】ニューロン間が完全結合しているニューラ
ルネットでは、ニューロン数をNとすると、1回の
(1)式、(2)式の計算を行うのに必要な重み付けの
回数は約N2個となる。時分割バス結合方式では、N個
の重み付け回路が同時に動作するため、計算時間はO
(N)となり、高速に大規模なニューラルネットを計算
することができる。
【0022】
【発明が解決しようとする課題】従来の技術で述べた時
分割バス結合方式において、前述のバックプロパゲーシ
ョンを行おうとした場合、逆方向の(3)〜(5)式の
計算では、関数δを計算するのに、ニューロンの出力先
における重み値が必要である。例えば、中間層のニュー
ロンjのδjを計算するには、出力層のニューロンkに
おけるニューロンjに対する重み値wkiが必要である。
しかし、前述のようにニューロンjを計算する計算ユニ
ット201 は、入力層のニューロンiに対する重み値wji
しか、保持していない。そのため、(5)式を並列に計
算することができず、δkkjを1個ずつ逐次に計算す
ることになる。そのため、順方向の計算を行うのに要す
る時間はO(N)となるにもかかわらず、逆方向の計算
に要する時間がO(N2 )となり、学習を高速に行えな
い問題がある。
【0023】また、上記従来技術に記載したニューラル
ネット専用ハードウエアは、高速に学習を行なう機能を
有していない他、それをホストコンピュータに接続する
などして、情報処理システム全体として好適に動作させ
る点の開示はない。
【0024】本発明の目的は、高速学習可能なニューラ
ルネットにより構成される情報処理システムを実現する
ことであり、特に時分割バス結合方式とバックプロパゲ
ーションを組み合わせた情報処理システムを実現するこ
とにある。
【0025】本発明の他の目的は、以下の詳細な説明か
ら明らかになるであろう。
【0026】
【課題を解決するための手段】本発明の特徴の一つは、
学習機能を有するニューラルネットワークの情報処理シ
ステムそのものを構成することであり、データバスによ
り接続される半導体集積回路と、入力値を記憶する第1
のメモリと、出力の所望する値を記憶する第2のメモリ
と、出力値を記憶する第3のメモリと、これらを制御す
る制御回路を備えた情報処理システムであって、ニュー
ロンモデルを計算する機能ブロックからデータバスを介
して、自他の機能ブロックの少なくともいずれかへデー
タを転送する手段と、複数の入力値とそれらの入力値に
対する出力の所望する値に対して、ニューロンモデル間
の重みを修正する手段を有するものである。
【0027】他の特徴は、ウエハスケール集積回路を用
いて、学習機能を有するニューラルネットワークの情報
処理システムを構成するものである。
【0028】他の特徴は、学習機能を有するニューラル
ネットワークの情報処理装置がホストコンピュータと接
続され、ホストコンピュータからの所期設定により、情
報処理装置の動作中はホストコンピュータを介在させず
に制御する手段を有するものである。
【0029】更に他の特徴は、学習機能を有するニュー
ラルネットワークの情報処理装置が、順方向の計算を行
う第1のネットワークと逆方向のδの計算を行う第2の
ネットワークを有し、各ネットワークは、それぞれの計
算を並列に行うのに都合が良いように重み値を保持し、
それらの修正はそれぞれのネットワークで行い、修正し
た結果を同じ重み値となるように構成した情報処理シス
テムである。
【0030】
【作用】本発明は、バックプロパゲーション学習アルゴ
リズムのような、順方向と逆方向の計算を行うニューラ
ルネットの学習を高速に行う専用計算機を用いた情報処
理システムに好適である。本発明では、(1)(2)式
の計算を順方向ネットワークで、(4)(5)式の計算
を逆方向ネットワークで行なう。各ニューロン間の重み
値は、2つのネットワークで同一の値で保持されてい
る。また、(3)式の修正値を計算するために必要な値
は、それぞれのネットワークで計算された値のどちらも
必要である。本発明では、2つのネットワーク間に通信
手段を設けることによって、それぞれの各ネットワーク
を構成するユニットが重み値を修正するのに必要な値を
得ることができ、それぞれで重み値を同一の値に修正す
ることを可能としている。順方向ネットワークでは、
(1)(2)式を並列に計算するのに好都合に構成し、
逆方向ネットワークでは(4)(5)式を並列に計算す
るのに好都合に構成している。また、(3)式の計算も
各ネットワークの各ユニットにおいて、並列に計算す
る。そのため、本発明を用いれば、前述の学習をO
(N)の計算時間で実行できる。
【0031】また、順方向と逆方向の計算をそれぞれ別
のネットワークにおいて計算するため、各計算ユニット
を小面積で実現できる。そのため、WSI化した場合、
1つの計算ユニットあたりの歩留まりを高くすることが
できる。
【0032】また、順方向の計算を行う計算ユニットと
逆方向の計算を行う計算ユニットは同一の回路構成とす
ることも可能で、設計工数を低減することができる。そ
のときは、どちらの計算ユニットとして動作させるか
は、制御信号によって決めることになる。そのため、W
SI化した場合も、一種類のWSIを設計し、製作すれ
ば良いので、低価格化できる。また、複数のWSIを用
意し、それらを接続すれば、より大規模なニューラルネ
ットを簡単に構成することができる。
【0033】
【実施例】以下に、実施例を用いて本発明の詳細を説明
する。
【0034】図1は本発明の一実施例を示す図である。
図において、120F,121F,120B,121Bは計算ユニットで、1
23,124は制御回路である。各計算ユニットは制御回路12
3あるいは制御回路124と接続されている。130は制御信
号発生回路で、制御信号線142〜145に制御信号を出力す
る。各制御回路123,124は制御信号線142から制御信号を
入力する。140は出力バスである。128はバッファで、各
計算ユニットの出力値を出力バス140に出力するか、出
力バス140から分離するか、制御回路123,124よって制御
する。131は関数変換回路で、出力バス140から入力する
値に対して(1)式のシグモイド関数fで変換を行い出力
する。132は関数変換回路で、出力バス140から入力する
値に対して、シグモイド関数fの導関数f’に従って変
換し、出力する。125はセレクタで、制御信号線145の制
御信号によって、出力バス140または関数変換回路131の
出力または関数変換回路132の出力のうち1つを出力す
る。160は乗算器で、セレクタ125の出力に対し、定数η
を掛けて、出力する。127はセレクタで、制御信号線144
の制御信号によって、セレクタ125の出力または乗算器1
60の出力を出力する。150は外部入力端子で、141は入力
バスである。126はセレクタで、制御信号線143の制御信
号によって、セレクタ127の出力または外部入力端子150
から入力する信号を入力バス141に出力する。各計算ユ
ニットは入力バス141と接続し、入力バス141に出力され
る信号を入力することができる。また151は外部出力端
子で、入力バス141に出力される値を出力する。
【0035】図1は、(1)〜(5)式の演算を高速に
行う本発明の構成を示すものである。各計算ユニットの
詳細については、図7、図8、図9を用いて、後に述べ
る。図5に図1の構成の動作を詳しく示す。まず、図5
を用いて、本発明の動作についてニューロンjの動作を
中心に以下に説明する。なお、入力層は単に入力データ
を一時的に記憶する層として構成してもよいし、また図
5に示されるようにニューロモデルの計算ユニットとし
て構成してもよい。図5の各計算ユニットは図1の各計
算ユニットに対応しており、図1の計算ユニット120F,1
21F,120B,121Bは図5のそれぞれと対応している。計算
ユニット120F,121Fは順方向の動作を行う順方向ネット
ワークを構成しており、計算ユニット120B,121Bは逆方
向の動作を行う逆方向ネットワークを構成している。こ
こで、順方向ネットワークは(1)(2)式の計算を行
うネットワークのことであり、逆方向ネットワークとは
(4)(5)式の計算を行うネットワークのことであ
る。また、(3)式は各ネットワークにおいて計算す
る。
【0036】順方向ネットワークの中間層の計算ユニッ
トでは、入力層のニューロンiに対する重み値wjiを保
持しており、出力層の計算ユニットでは、中間層のニュ
ーロンjに対する重み値wkjを保持している。中間層の
計算ユニット120Fは、重み値wjiを保持している。ま
た、逆方向ネットワークの中間層の計算ユニットでは、
順方向ネットワークにおける出力層の計算ユニットが中
間層のニューロンjに対して持っている重み値wkjを保
持しており、逆方向ネットワークの入力層の計算ユニッ
トでは、順方向ネットワークにおける中間層の計算ユニ
ットが入力層のニューロンに対して持っている重み値w
jiを保持している。中間層の計算ユニット120Bは、重み
値wkjを保持している。順方向ネットワークが保持する
重み値wji,wkjと、逆方向ネットワークが保持する重み
値wji,wkjは対応しており、同じ値である。
【0037】順方向ネットワークでは、入力層から中間
層、出力層と各計算ユニットの出力xi、xj、xkが決
定していく。計算ユニット120Fは入力層の出力xi を入
力し、それに対する重み値wjiで重み付けを行い、内部
エネルギーuj を計算し、さらに非線形変換を行い、出
力値xj を出力する。次に、順方向ネットワークの出力
層の計算ユニットは中間層の出力xj を入力し、それに
対する重み値wkjで重み付けを行い、内部エネルギーu
k を計算し、さらに非線形変換を行い、出力値xk を出
力する。順方向ネットワークの各計算ユニットはそれぞ
れに対応する逆方向ネットワークの計算ユニットへそれ
ぞれの出力値xi、xj、xkを送信する。計算ユニット1
20Fは、計算ユニット120Bへ、その出力値xj を送信す
る。次に、順方向ネットワークの中間層と出力層の各計
算ユニットはそれぞれに対応する逆方向ネットワークの
計算ユニットへそれぞれの出力値xj、xkの微分xj'、
k'を送信する。計算ユニット120Fは出力値xj の微分
j'(=f'(uj))を計算ユニット120Bへ出力する。 次
に、順方向ネットワークの出力層の出力値xkが期待し
た値tkと異なる場合、重み値を修正する必要がある。
その動作を以下に説明する。
【0038】逆方向ネットワークの出力層において、
(4)式に従い、δkを計算し、逆方向ネットワークの
中間層の各計算ユニットへ出力する。(4)式を計算す
るのに必要なxk'は既に入力している。逆方向ネットワ
ークは中間層の各計算ユニットは、δkを入力すると、
その値を用いて(3)式に従い、修正値Δwkjを計算
し、重み値wkjを変更する。また、逆方向ネットワーク
の出力層の各計算ユニットはそれぞれに対応する順方向
ネットワークの出力層の計算ユニットへそれぞれの出力
値δkを送信する。それにより、順方向ネットワークの
出力層の計算ユニットは、(3)式により修正値Δwkj
を計算し、重み値wkjを変更することができる。
【0039】次に、逆方向ネットワークの出力層の各計
算ユニットの出力δkを出力し、それを入力する逆方向
ネットワークの中間層の計算ユニットはδkと重み値w
kjとの乗算を行い、(5)式に従って、δjを決定し、出力
する。(5)式を計算するのに必要なxj'は計算ユニット1
20Fから、既に入力している。逆方向ネットワークは入
力層の各計算ユニットは、δj を入力すると、その値を
用いて(3)式に従い、修正値Δwjiを計算し、重み値
jiを変更する。また、逆方向ネットワークの中間層の
各計算ユニットはそれぞれに対応する順方向ネットワー
クの中間層の計算ユニットへそれぞれのδj を送信す
る。順方向ネットワークの中間層の計算ユニットは、
(3)式により修正値Δwjiを計算し、重み値wjiを変
更することができる。
【0040】本発明は、以上に述べたように、(1)
(2)(4)(5)式におけるx,x'(=f'(u))をそ
れを高速に計算するのに好都合な順方向ネットワークに
おいて計算し、(4)(5)式におけるδをそれを高速
に計算するのに好都合な逆方向ネットワークにおいて計
算する。そして、(3)式におけるΔwは各ネットワー
クの各計算ユニットにおいて、それぞれが保持している
重み値wに対して計算する。順方向のネットワークの計
算ユニットでは、修正値Δwを計算するために、δが必
要であり、逆方向ネットワークの計算ユニットでは、δ
及びΔwを計算するために、x,x’が必要である。そ
のために、それぞれのネットワークで対応している計算
ユニット間では、データの通信が必要であるが、その通
信するデータ量はニューロン数に対応しており、それに
要する転送時間はO(N)であり、短時間で行うことが
できる。
【0041】本図では、中間層を1層として説明した
が、複数の中間層から構成されるニューラルネットに対
しても、同様に学習を行うことができる。
【0042】次に、図1を用いて、以上の動作のハード
ウェア上での実現方法について説明する。図6は、以上
の動作の流れを示す演算フロー図で、順方向ネットワー
クと逆方向ネットワークの計算ユニットの演算手順を示
している。順方向ネットワークの計算ユニットjは図1
及び図5の計算ユニット120Fであり、逆方向ネットワー
クの計算ユニットjは図1及び図5の計算ユニット120B
である。以下、図6に従い、図1を説明する。
【0043】各計算ユニットは入力するニューロンに対
する重み値をメモリに保持している。初めに、重み値w
の初期値を各計算ユニットに書き込む。計算ユニット12
0Fには、入力層のニューロンiに対する重み値wjiを書
き込む。計算ユニット120Bには、順方向ネットワークの
出力層の計算ユニットkが保持する中間層のニューロン
jに対する重み値と同じである重み値wkjを書き込む。
−動作1 次に、セレクタ126を外部入力端子150側を入力バス141
に出力するように設定し、外部入力端子150から順方向
ネットワークの入力層の各計算ユニットiへ入力値を書
き込む。−動作2 制御信号発生回路130は、セレクタ125を出力バス140を
出力するように設定し、セレクタ127をセレクタ125の出
力を出力するように設定し、セレクタ126をセレクタ127
の出力を出力するように、制御信号線143〜145に制御信
号を出力する。次に、制御信号発生回路130は制御信号
線142に、順方向ネットワークの入力層の計算ユニット
iのアドレスを出力する。制御回路123はアドレスをデ
コードし、もし、アドレスがその計算ユニットのアドレ
スと一致すれば、バッファ128をイネーブル状態とし、
順方向ネットワークの入力層の計算ユニットiの出力値
iを出力バス140に出力する。順方向ネットワークの入
力層の計算ユニットiは入力値を出力するだけである。
順方向ネットワークの中間層の計算ユニットjは入力バ
ス141から順方向ネットワークの入力層の出力xiを逐次
入力し、それに対する重み値wjiで重み付けを行い、そ
の積を累積加算していく。制御信号発生回路130が順方
向ネットワークの入力層の計算ユニットiのアドレスを
すべて指定すると中間層の各計算ユニットでは(2)式
の計算を行うことができ、その出力値ujが決定する。
【0044】次に、制御信号発生回路130はセレクタ125
を関数変換回路131の出力を出力するように設定した
後、順方向ネットワークの中間層の計算ユニットのアド
レスを制御信号線142に出力する。アドレスを指定され
た計算ユニットはその出力値ujを出力バス140に出力す
る。非線形変換回路131は(1)式の変換を行い、xj (=
f(uj))を出力する。xj は入力バス141によって、順
方向ネットワークの出力層の計算ユニットkにブロード
キャストされる。出力層の計算ユニットkは入力バス14
1から中間層の出力xj を逐次入力し、それに対する重
み値wkjで重み付けを行い、その積を累積加算してい
く。制御信号発生回路130が順方向ネットワークの中間
層の計算ユニットjのアドレスをすべて指定すると出力
層の各計算ユニットkでは(2)式の計算を行うことが
でき、その出力値uk が決定する。−動作3 次に、制御信号発生回路130が順方向ネットワークの出
力層の計算ユニットkのアドレスを制御信号線142に出
力する。アドレスを指定された計算ユニットはその出力
値uk を出力バス140に出力する。その後、非線形変換
回路131によってxk (=f(uk))に変換され、セレク
タ125、セレクタ127、セレクタ126を通って、入力バス1
41に出力される。外部出力端子151から、その出力結果
を読むことができる。そして、出力層の出力値xkが期
待する出力値tkと一致していれば、学習を終了する。
一致しないときは、以下の動作を行なう。−動作4 制御信号発生回路130は、セレクタ125の出力を出力バス
140側とし、また、セレクタ127の出力を乗算器160側と
するように設定する。セレクタ127を乗算器160側に設定
し、セレクタ126をセレクタ127の出力を出力する。次
に、制御信号発生回路130は制御信号線142に、順方向ネ
ットワークの入力層の計算ユニットiのアドレスを出力
する。アドレスを指定された計算ユニットiの出力xi
はセレクタ125を通り、乗算器160に出力され、定数ηを
掛けて、η・xiに変換する。そして、セレクタ127、セ
レクタ126を通り、入力バス141へη・xiを出力する。逆
方向ネットワークの入力層の計算ユニットiはそれに対
応するη・xiが入力バス141へ出力されたとき、その値
を取り込む。次に、制御信号発生回路130は、セレクタ1
25の出力を関数変換回路131側とし、また、セレクタ127
の出力を乗算器160側とするように設定する。制御信号
発生回路130は、制御信号142に順方向ネットワークの中
間層の計算ユニットjのアドレスを出力する。アドレス
を指定された計算ユニットjの出力ujは関数変換回路1
31によってxjに変換され、セレクタ125を通り、乗算器
160に出力され、定数ηを掛けて、η・xjに変換する。
そして、セレクタ127、セレクタ126を通り、入力バス14
1へη・xjを出力する。逆方向ネットワークの中間層の
計算ユニットjはそれに対応するη・xjを入力する。例
えば、計算ユニット120Fの出力値uj は、関数変換回路1
31と乗算器160によって、η・xjに変換され、入力バス1
41に出力される。そのときに、計算ユニット120Bは、η
・xjを取り込む。−動作5 次に、制御信号発生回路130は、セレクタ125の出力を関
数変換回路132側とし、また、セレクタ127の出力をセレ
クタ125側とするように設定する。制御信号発生回路130
は、制御信号142に順方向ネットワークの中間層の計算
ユニットjと出力層の計算ユニットkのアドレスを出力
する。アドレスを指定された計算ユニットの出力uj
kは関数変換回路132によってxj'、xk'に変換し、セ
レクタ125、セレクタ127、セレクタ126を通り、入力バ
ス141へ出力する。逆方向ネットワーク中間層と出力層
の計算ユニットはそれに対応するxj'、xk'を入力する
ことができる。例えば、計算ユニット120Fの出力値uj
は、関数変換回路132xj'に変換され、入力バス141に出
力される。そのときに、計算ユニット120Bは、xj'を取
り込む。−動作6 次の動作では、逆方向ネットワークの出力層の計算ユニ
ットへ期待する出力値tkと先ほどの出力値xkの差(tk
−xk)をネットワークの外部からセットする。それ
は、ホストコンピュータが行ってもよいし、(tk
k)を計算する回路を設けてもよい。逆方向ネットワ
ークの出力層の計算ユニットkは、(4)式のδkの計算を
行なう。−動作7 次に、制御信号発生回路130は、出力バス140の出力を乗
算器160によって、η倍し、入力バス141に出力するよう
に、セレクタ125〜127を設定する。そして、逆方向ネッ
トワークの出力層の計算ユニットkのアドレスを制御信
号142へ出力する。アドレスを指定された各計算ユニッ
トの出力δk が乗算器160によってη倍され、入力バス1
41にη・δk が出力される。このとき、順方向ネットワ
ークの出力層の計算ユニットkは、入力バス141に自分
に対応する逆方向ネットワークの計算ユニットの出力η
・δk が出力されれば、内部に取り込む。−動作8 次に、制御信号発生回路130は、出力バス140の値が関数
変換回路131を通り、入力バス141に出力されるように、
セレクタ125〜127を設定した後、順方向ネットワークの
中間層の計算ユニットjのアドレスを制御信号142に出
力する。アドレスを指定された計算ユニットjは既に計
算済みの内部エネルギー値uj を出力する。その結果、
入力バス141には、関数変換された値xj が出力され
る。順方向ネットワークの出力層の各計算ユニットで
は、入力する値xj に対する重み値wkjの修正値Δwkj
を(3)式に従って、計算し、重み値wkjを修正する。
−動作9 次に、制御信号発生回路130は出力バス140の値がそのま
ま入力バス141に出力されるように、セレクタ125〜127
を設定した後、逆方向ネットワークの出力層の計算ユニ
ットkのアドレスを制御信号142に出力する。アドレス
を指定された計算ユニットは既に計算済みのδk を出力
する。その結果、δk は出力バス140、セレクタ125、セ
レクタ127、セレクタ126を通り、入力バス141に出力さ
れる。逆方向ネットワークの中間層の各計算ユニットで
は、入力する値δk に対する重み値wkjの修正値Δwkj
を(3)式に従って、計算し、重み値wkjを修正する。
−動作10 次に、制御信号発生回路130が逆方向ネットワークの出
力層の計算ユニットkのアドレスを指定する。アドレス
を指定された計算ユニットは既に計算済みのδk を出力
する。その結果、δk は出力バス140、セレクタ125、セ
レクタ127、セレクタ126を通り、入力バス141に出力さ
れる。逆方向ネットワークの中間層の各計算ユニットで
は、動作10において、修正された重み値wkjを用い、
(5)式に従い、δj を計算する。−動作11 次に、制御信号発生回路130は、出力バス140の出力を乗
算器160によって、η倍し、入力バス141に出力するよう
に、セレクタ125〜127を設定する。そして、逆方向ネッ
トワークの中間層の計算ユニットのアドレスを制御信号
142へ出力する。アドレスを指定された各計算ユニット
の出力δj が乗算器160によってη倍され、セレクタ12
7、セレクタ126を通り、入力バス141にη・δj が出力さ
れる。このとき、順方向ネットワークの中間層の計算ユ
ニットjは、入力バス141に自分に対応する逆方向ネッ
トワークの計算ユニットjの出力η・δj が出力されれ
ば、内部に取り込む。−動作12 次に、制御信号発生回路130は出力バス140の値が、入力
バス141に出力されるように、セレクタ125〜127を設定
した後、順方向ネットワークの入力層の計算ユニットi
のアドレスを制御信号142に出力する。アドレスを指定
された計算ユニットはxi を出力する。その結果、入力
バス141には、xi が出力される。順方向ネットワーク
の中間層の各計算ユニットでは、入力する値xi に対す
る重み値wjiの修正値Δwjiを(3)式に従って、計算
し、重み値wjiを修正する。−動作13 次に、制御信号発生回路130は出力バス140の値がそのま
ま入力バス141に出力されるように、セレクタ125〜127
を設定した後、逆方向ネットワークの中間層の計算jの
アドレスを制御信号142に出力する。アドレスを指定さ
れた計算ユニットは既に計算済みのδj を出力する。そ
の結果、δj は出力バス140、セレクタ125、セレクタ12
7、セレクタ126を通り、入力バス141に出力される。逆
方向ネットワークの入力層iの各計算ユニットでは、入
力する値δj に対する重み値wjiの修正値Δwji
(3)式に従って、計算し、重み値wjiを修正する。−
動作14その後、入力に対し、出力層の出力値xkが期待
する値tkとなるまで、以上の学習を繰り返す。
【0045】本発明によれば、順方向及び逆方向のx及
びδの計算は各層において並列に動作し、それに要する
データの通信量もNに比例しているため、O(N)の時
間で、高速に学習することが可能である。
【0046】次に、図7、図8を用いて、順方向ネット
ワーク及び逆方向ネットワークを構成する計算ユニット
の詳細について、説明する。
【0047】図7は順方向ネットワークを構成する計算
ユニットを示す図である。図7において、501は重み値
jiと(3)式におけるαΔwji(n) を記憶しおく、メモ
リである。503、504は加算器、502は乗算器である。51
1,512はラッチである。520は(3)式における前回の修正
値Δwji(n) をα倍する乗算器である。531〜534はセレ
クタである。540は入力バス141への接続端子である。55
0〜557は制御回路123が出力する制御信号の制御信号線
で、それぞれは、セレクタ534、メモリ501、ラッチ51
1、セレクタ531、セレクタ533、セレクタ532、ラッチ51
2、バッファ128を制御する。541は出力バス140への接続
端子である。接続関係を以下に説明する。
【0048】ラッチ511は入力バス接続端子540から入力
する信号を保持する。セレクタ531はメモリ501の出力で
ある重み値wjiとラッチ511の出力を入力している。乗
算器502はセレクタ531の出力と入力バス接続端子540を
入力している。加算器503は乗算器502の出力とメモリ50
1の出力であるαΔwji(n) を入力する。セレクタ532は
乗算器502の出力と加算器503の出力を入力する。加算器
504はセレクタ532の出力とセレクタ533の出力を入力す
る。ラッチ512は加算器504の出力を保持する。バッファ
128はラッチ512の出力を入力し、出力バス接続端子541
に出力する。セレクタ533はラッチ512の出力とメモリ50
1の出力である重み値wjiを入力する。乗算器520は加算
器503の出力を入力する。セレクタ534は入力バス接続端
子540から入力する信号と加算器504の出力を入力する。
メモリ501はセレクタ534の出力を重み値wji側、乗算器
520の出力をαΔwji(n) 側書き込みデータとして入力
する。また、メモリ501はアクセス時のアドレスを制御
回路123から入力する。
【0049】動作1の重み値wjiの初期値を書き込むと
きは、入力バス接続端子540に初期値を与え、セレクタ5
34の出力を入力バス接続端子540側とすれば、メモリ501
に書き込むことができる。
【0050】(2)式の計算を行なうときは、以下のよ
うに行なう。セレクタ531の出力をメモリ501の重み値w
ji出力側とする。入力バス接続端子540に入力する入力
値xiを入力する。乗算器502によって、積wjiiを行
なう。セレクタ532は乗算器502側を出力する。セレクタ
533はラッチ512側を出力する。加算器504はそれまでの
累積加算結果であるラッチ512の出力と積wjiiを加算
し、ラッチ512に書き込む。以上の動作を次々と、入力
バス接続端子540に入力する入力値xiに対して重み値w
jiを変えて行なえば、(2)式を計算することができる。
【0051】逆方向ネットワークから入力するηδj
入力バス接続端子540から入力してラッチ511に書き込
む。
【0052】(3)式の計算を行なうときは、以下のよ
うに行なう。セレクタ531はラッチ511側を出力する。入
力バス接続端子540に入力する入力値xiを入力する。乗
算器502によって、ηδjiを計算する。加算器503によ
って、メモリ501の出力αΔwji(n) と乗算器502の出力
ηδjiの加算を行ない、修正値Δwji(n+1)を計算す
る。セレクタ532は加算器503側を出力する。セレクタ53
3はメモリ501の重み値wji出力側を出力する。加算器50
4はセレクタ533の出力の前回の重み値wji(n)とセレク
タ532の出力Δwji(n+1)を加算し、修正した重み値wji
(n+1)を出力する。セレクタ534は加算器504側を出力す
る。また、加算器503の出力Δwji(n+1)は乗算器520に
よってα倍する。そして、メモリ501にセレクタ534の出
力の修正した重み値wji(n+1)と乗算器520の出力αΔw
ji(n+1)を書き込む。以上の動作を次々と、入力バス接
続端子540に入力する入力値xiに対して行なえば、すべ
ての重み値wji(n+1)を修正することができる。
【0053】図8は逆方向ネットワークを構成する計算
ユニットを示す図である。図8において、601は重み値
kjと(3)式におけるαΔwkj(n) を記憶しおく、メモ
リである。603、604は加算器、602は乗算器である。611
〜615はラッチである。620は(3)式における前回の修正
値Δwkj(n) をα倍する乗算器である。631〜634,636は
セレクタである。640は入力バス接続端子である。650〜
659、661、662は制御回路124が出力する制御信号の制御
信号線で、それぞれは、セレクタ636、ラッチ613、ラッ
チ612、ラッチ611、メモリ601、セレクタ631、セレクタ
632、セレクタ634、セレクタ633、ラッチ614、ラッチ61
5、バッファ128を制御する。641は出力バス接続端子で
ある。接続関係を以下に説明する。ラッチ611〜613は入
力バス接続端子640から入力する信号を入力する。セレ
クタ631はメモリ601の重み値wkj出力とラッチ611の出
力とラッチ612の出力を入力している。セレクタ632は入
力バス接続端子640から入力する信号とラッチ613の出力
とラッチ614の出力を入力する。乗算器602はセレクタ63
1の出力とセレクタ632の出力を入力する。加算器603は
メモリ601のαΔwkj(n) 出力と乗算器602の出力を入力
する。セレクタ633は加算器603の出力と乗算器602の出
力を入力する。加算器604はセレクタ634の出力とセレク
タ633の出力を入力する。ラッチ614は加算器604の出力
を入力する。セレクタ634はラッチ614の出力とメモリ60
1の重み値wkj出力を入力している。乗算器620は加算器
603の出力を入力する。セレクタ636は入力バス接続端子
640から入力する信号と加算器604の出力を入力する。メ
モリ601はセレクタ636の出力を重み値wkj側、乗算器62
0の出力をαΔwkj(n) 側書き込みデータとして入力す
る。また、メモリ601はアクセス時のアドレスを制御回
路124から入力する。ラッチ615は乗算器602の出力を入
力する。バッファ128はラッチ615の出力を入力し、出力
バス接続端子641に出力する。
【0054】重み値wkjの初期値を書き込むときは、入
力バス接続端子640に初期値を与え、セレクタ636の出力
を入力バス接続端子640側とすれば、書き込むことがで
きる。
【0055】逆方向ネットワークから入力するηxj
入力バス接続端子640から入力してラッチ611に書き込
む。xj'(=f'(uj))も入力バス接続端子640から入力して
ラッチ612に書き込む。
【0056】また、出力層の計算ユニットとして動作さ
せるときに必要な出力値と期待する出力値の差(tk
k)は入力バス接続端子640から入力してラッチ613に
書き込む。出力層の計算ユニットでは、δk を計算する
のに以下の動作を行なう。
【0057】セレクタ631はラッチ612側を出力する。セ
レクタ632はラッチ613側を出力する。乗算器602ではラ
ッチ612の出力値xk'(=f'(uk))とラッチ613の出力値
(tk−xk)の乗算を行ない、(4)式のδkを出力する。
ラッチ615は乗算器602の出力δkを取り込み、バッファ1
28へ出力する。出力バス接続端子641には、δk が出力
される。
【0058】出力層の計算ユニットでは、(5)式のδj
を計算するのに以下の動作を行なう。
【0059】セレクタ631はメモリ601の重み値wkj側を
出力する。セレクタ632は入力バス接続端子640側を出力
する。入力バス接続端子640に出力層の出力δkを入力す
る。乗算器602によって積δkkjを出力する。セレクタ
633は乗算器602側を出力する。セレクタ634はラッチ614
側を出力する。加算器604はそれまでの累積加算結果で
あるラッチ614の出力と積δkkjを加算し、ラッチ614
に書き込む。以上の動作を次々と、入力バス接続端子64
0に入力する入力値δkに対して行なえば、(2)式のΣδk
kjを計算することができる。次にセレクタ631はラッ
チ612側を出力する。セレクタ632はラッチ614側を出力
する。乗算器602はラッチ612の出力xj'(=f'(uj))とラ
ッチ614の出力Σδkkjの乗算を行ない、δjを出力す
る。ラッチ615は乗算器602の出力δj を取り込み、バッ
ファ128へ出力する。出力バス接続端子641には、δj
出力される。
【0060】(3)式の計算を行なうときは、逆方向ネ
ットワークの中間層では以下のように行なう。セレクタ
631はラッチ611側を出力する。入力バス接続端子640に
入力する入力値δkを入力する。乗算器602によって、η
jδkを計算する。加算器603によって、メモリ601の出
力αΔwkj(n) と乗算器602の出力ηxjδkの加算を行
ない、修正値Δwkj(n+1)を計算する。セレクタ633は加
算器603側を出力する。セレクタ634はメモリ601の重み
値wkj出力側を出力する。加算器604はセレクタ634の出
力の前回の重み値wkj(n) とセレクタ633の出力Δw
kj(n+1)を加算し、修正した重み値wkj(n+1)を出力す
る。セレクタ636は加算器604側を出力する。また、加算
器603の出力Δwkj(n+1)は乗算器620によってα倍す
る。そして、メモリ601にセレクタ636の出力の修正した
重み値wkj(n+1)と乗算器620の出力αΔwkj(n+1)を書
き込む。以上の動作を次々と、入力バス接続端子640に
入力する入力値δkに対して行なえば、すべての重み値
kj(n+1)を修正することができる。逆方向ネットワー
クの入力層においても、同様に重み値wjiを修正するこ
とができる。
【0061】以上のように、本発明は、順方向ネットワ
ークの出力層の計算ユニットと逆方向ネットワークの中
間層の計算ユニットは同じ重み値wkj(n)を持つが、そ
の修正はその重み値を持つ計算ユニットがそれぞれで行
なう。修正を行なった重み値wkj(n+1)は同じ値とな
る。同様に、順方向ネットワークの中間層の計算ユニッ
トと逆方向ネットワークの入力層の計算ユニットは同じ
重み値wji(n)を持つが、その修正はその重み値を持つ
計算ユニットがそれぞれで行なう。修正を行なった重み
値wji(n+1)は同じ値となる。
【0062】次に図9を説明する。図9は図8の計算ユ
ニットにセレクタ635とそれを制御する制御線660を加え
たものである。122は制御回路である。セレクタ635はラ
ッチ614の出力と乗算器602の出力を入力する。ラッチ61
5はセレクタ635の出力を入力する。その他は図8と同じ
である。セレクタ635の出力を乗算器602側とすれば、図
7と同様の動作が可能であり、逆方向ネットワークの計
算ユニットとすることができる。また、セレクタ635の
出力をラッチ614側と設定し、図7における、ラッチ51
1、セレクタ531、乗算器502、加算器503、セレクタ53
2、加算器504、ラッチ512、セレクタ533、乗算器520、
セレクタ534、メモリ501を図9のラッチ611、セレクタ6
31、乗算器602、加算器603、セレクタ633、加算器604、
ラッチ614、セレクタ634、乗算器620、セレクタ636、メ
モリ601に対応させれば、順方向ネットワークの計算ユ
ニットとすることができる。即ち、本発明を実施するの
に、図7と図8の2つの計算ユニットを設計する必要は
なく、図9の計算ユニットを設計すればよい。そのよう
な場合、設計工数を大幅に低減することができる。
【0063】以上のように、本発明の一実施例によれ
ば、集積回路上で実現することができるため、高速に学
習するニューラルネットを実現することができる。
【0064】次に、図10を説明する。図10におい
て、1、2はウェハ、700は機能ブロックである。710〜71
2はセレクタである。701は制御信号発生回路であり、図
1の制御信号発生回路130の機能にセレクタ710〜712を
制御する機能を加えている。720は入力端子、730は出力
端子である。721〜725は制御信号線である。機能ブロッ
ク700は図9で構成することができる。ウェハ1、2内の
ネットワークは図1に対応している。セレクタ711はウ
ェハ1の図1における外部出力端子151と入力端子720の
入力する信号を入力し、ウェハ2の図1における外部入
力端子150に出力する。セレクタ710は入力端子720の入
力する信号とウェハ2の図1における外部出力端子151を
入力し、ウェハ1の図1における外部入力端子150に出力
する。セレクタ712はウェハ1の外部出力端子151とウェ
ハ2の外部出力端子151を入力し、外部出力端子730に出
力する。制御信号発生回路701は制御信号線723〜725を
通して、セレクタ710〜712へ制御信号を出力する。ま
た、制御信号線721、722によって、ウェハ1、2を制御す
る。ウェハ1の入力バス141の信号はセレクタ711を通し
て、ウェハ2の入力バス141へ送ることができる。同様に
ウェハ2からウェハ1へ送ることもできる。また、外部入
力端子720に入力する信号をセレクタ710、711を通し
て、ウェハ1、2の入力バス141へ送ることができる。
【0065】以上のようにウェハ間を簡単に接続するこ
とでき、非常に大規模なニューラルネットを高速に学習
することができる。
【0066】また、ウェハ1で順方向ネットワークを構
成し、ウェハ2で逆方向ネットワークを構成することに
より、(3)式における重み値の修正を各ネットワーク
で同時に行なうことができるため、より、高速に学習を
行なえる。
【0067】また、本図では、2枚のウェハの接続を示
す図であるが、3枚以上の接続も簡単な修正で行なうこ
とができる。
【0068】また、図1の構成をそのままウェハ上に構
成してもよい。また、さらに複数のウェハにより、各ネ
ットワークを構成することもできる。
【0069】次に、図11を説明する。図11におい
て、880,890は機能ブロックである。801〜803,812〜814
はセレクタである。機能ブロック880を図7で、機能ブ
ロック890を図8で構成することができる。また、機能
ブロック880,890は図9で構成することができる。850,8
60は出力バス、851,861は入力バスである。160a,160bは
乗算器である。本図では左側のネットワークは順方向ネ
ットワークを、右側は逆方向ネットワーク対応してい
る。本図には制御信号発生回路及び制御信号線を明記し
ないが、図1、図10と同様な構成とすることで、各機
能ブロックや各セレクタを制御することができる。
【0070】順方向ネットワークでは、各機能ブロック
880の出力は出力バス850に出力される。関数変換回路13
1、132は出力バス850を入力し、それぞれにおいて関数
変換し、出力する。セレクタ801は出力バス850の出力と
関数変換回路131、132の出力を入力し、そのうち1つを
出力する。セレクタ802はセレクタ801の出力と逆方向ネ
ットワークの出力バス860を入力する。乗算器160aはセ
レクタ802の出力を入力し、定数η倍して出力する。セ
レクタ803はセレクタ801の出力と乗算器160の出力を入
力し、入力バス851に出力する。各機能ブロック880は入
力バス851に出力される値を入力することができる。逆
方向ネットワークでは、各機能ブロック890の出力は出
力バス860に出力される。セレクタ812は出力バス860と
順方向ネットワークのセレクタ801の出力を入力する。
乗算器160bはセレクタ812の出力を入力し、定数η倍し
て出力する。セレクタ814はセレクタ812の出力と乗算器
160bの出力を入力する。セレクタ813は出力バス860とセ
レクタ814の出力を入力し、入力バス861に出力する。
【0071】本図の構成では、順方向ネットワークを構
成する機能ブロック880は乗算器160aによって、逆方向
ネットワークの出力バス860の値をη倍して取り込むこ
とができる。同様に、逆方向ネットワークを構成する機
能ブロック890は乗算器160bによって、順方向ネットワ
ークの出力バス850の値をη倍して取り込むことができ
る。そのため、図6における動作5の順方向ネットワー
クから逆方向ネットワークへηxjを通信する動作を動
作3において行うことができる。動作3において、各機
能ブロックが他の機能ブロックへ出力xjをブロードキ
ャストするときに、同時に乗算器160bによってη倍し、
逆方向ネットワークの入力バス861へ出力することがで
きる。同様に、動作8、12の逆方向ネットワークから順
方向ネットワークへηδを通信する動作を動作7、11に
おいて行うことができる。以上のように、他方のネット
ワークのバスへの出力値を盗み取ることにより、図6に
おける動作5、8、12に要する時間を省くことができ
る。そのため、より高速に学習を行うことができる。
【0072】次に、本発明によるニューロコンピューテ
ィングシステムについて説明する。以下の実施例は、今
まで述べてきた情報処理装置を実用レベルまで追求した
一態様である。まず、図12〜図19を用い、構成につ
いて一通り説明した後、その動作とそのために必要な制
御について、図20〜図26を用いて説明する。尚、今
まで説明してきた実施例と重複する箇所もあるが、一通
り説明する。
【0073】図12はシステム全体を示す図である。図
12において、1000はホストコンピュータ、100
1はディジタイザでホストコンピュータ1000の入力
装置の一つである。1003はコントロールボードを示
す。1030はWSIボード、1031はWSI基板、
1050はウェハで、ウェハ1050はWSI基板10
31と接着し、さらにWSI基板1031をWSIボー
ド上と接続することにより、ウェハ1050の電源給電
及び外部との信号の入出力を可能とする。1080はモ
ード信号線、1081はアドレス信号線、1082はク
ロック信号線、1083は入力データ線、1084は出
力データ線を示す。コントロールボード1003と各W
SIボード1030とは、1080〜1084の内部バ
ス1020によって接続する。コントロールボード10
03上の1010は入力層メモリ、1011は出力層メ
モリ、1012は教師信号メモリ、1013はシーケン
スRAM、1002はクロック発振器を示す。1021
は外部バスを示す。ホストコンピュータ1000はコン
トロールボード1003上の1010〜1013の各メ
モリに外部バス1021を通して、アクセスが可能で任
意に読みだし、書き込みを行うことができる。1085
はデコーダ、1040は出力バッファ、1041は入力
バッファを示す。入力層メモリ1010、教師信号メモ
リ1012は、それぞれ、アドレス信号線1081を入
力し、出力バッファ1040を通して、メモリの内容を
入力データ線1083へ送ることが可能である。また、
それぞれの出力バッファ1040はデコーダ1085に
より、制御される。デコーダ1085はモード信号線1
080とアドレス信号線1081を入力し、デコードす
る。シーケンスRAM1013はモード信号及びアドレ
ス信号を発生する。1086はポインタで、パルスジェ
ネレータ1002からクロック信号線1082により送
られるクロックを入力して、出力を1づつ増やす。それ
を繰返し、シーケンスRAM1013に書き込まれてい
る命令のアドレスを指定する。シーケンスRAM101
3の各アドレスには、予め、実行するモード信号及びア
ドレス信号の命令を順々に書き込んでおく。また、10
51はセレクタで、シーケンスRAM1013または外
部バス1021から出力される命令をモード信号線10
80及びアドレス信号線1081へ出力する。1052
は、セレクタで出力データ線1084または外部バス1
021から出力される値を入力データ線1083へ出力
する。
【0074】教師信号メモリ1012には出力層の教師
信号を書き込んでおく、入力層メモリ1010は、入力
層ニューロンの役目を行っており、入力層ニューロンの
値を書き込んでおく。出力層メモリ1011は入力バッ
ファ1041を通して出力データ線1084とアドレス
信号線1081を入力し、出力層ニューロンの出力を取
り込む。
【0075】WSIボード1030はモード信号線10
80、アドレス信号線1081、クロック信号線108
2、入力データ線1083を入力バッファ1041を通
して、ウェハ1050へ接続し、ウェハ1050から出
力される信号をデコーダ1085により制御する出力バ
ッファ1040を通して、出力データ線1084に出力
する。また、このデコーダ1085はモード信号線10
80とアドレス信号線1081により、デコードを行
う。また、ホストコンピュータ1000からウェハ10
50内のラッチ、メモリ等に書き込む場合、自分のボー
ドアドレスが指定されているときに行う。
【0076】図13はウェハ1050の構成を示す図で
ある。ウェハ1050は、1060のNブロック、10
61のIOブロック、1062のBブロック、1063
のPブロックから構成する。各ブロックは等間隔で縦
(列)方向横(行)方向に配列する。ウェハ1050の
中央の列の下辺には、IOブロック1061を配置し、
その他の中央の列には7個のBブロック1062を配置
する。外部との入出力は下辺のIOブロック1061が
行う。中央の列以外には、Nブロック1060を配置
し、周辺部にPブロック1063を配置する。Pブロッ
ク1063はウェハの半導体プロセスにおける品質管理
を行うためのものである。Nブロック1060には、ニ
ューロンブロックを搭載し、Bブロック1062には、
関数変換テーブルを搭載する。IOブロック1061は
Bブロック1062の機能の他に外部との入出力を行う
ための機能も持つ。IOブロック1061、Bブロック
1062、Nブロック1060の詳細については、図1
6、図17を用いて説明する。
【0077】図14はウェハ1050内の信号線の構成
と配置を示す図である。1201はボンディングパッド
でIOブロック1061の下辺に設け、ボンディングワ
イヤーにより信号線を外部と接続する。各Nブロック1
060への信号線は、IOブロック1061、各Bブロ
ック1062において、まず、縦方向に信号が伝わり、
さらに、各横方向へ信号を送る。Nブロック1060内
のニューロンブロックの出力は、まず、その行のIOブ
ロック1061、Bブロック1062に集められ、そこ
で関数変換を行い、入出力を行う下辺のIOブロック1
061へ送り、外部へ出力する。
【0078】図15に、ウェハ1050の各ブロック1
060〜1062への電源給電方法及びWSI基板10
31の構成を示す。図15において、1301〜130
3はボンディングパッド、1304はボンディングワイ
ヤー、1305はコネクタを示す。1310は各ブロッ
ク1060〜1062へ電源を給電するための電源バス
である。コネクタ1305はWSIボード1030と接
続することにより、電源及び信号線のWSI基板103
1への接続を行う。電源線をボンディングパッド130
1、1304からWSI基板1031内を通り、コレク
タ1305へ引き出す。また、信号線をボンディングパ
ッド1303からコネクタ1305へ引き出す。ウェハ
1050内では、各ブロック1060〜1062の間に
格子状に電源バス1310を設け、各ブロック1060
〜1062を電源バス1310と接続する。電源バス1
310の終端には、ボンディングパッド1302を設け
る。ウェハ1050上のボンディングパッド1302と
WSI基板1031上のボンディングパッド1301、
1304をボンディングワイヤー1304により接続す
ることにより、各ブロック1060〜1062へ電源を
給電することができる。また、ウェハ1050上の図1
4のボンディングパッド1201とWSI基板1031
上のボンディングパッド1303をボンディングワイヤ
ー1304により、接続することにより、図12の内部
バス1020とIOブロック1061と接続することが
できる。
【0079】図16にBブロック1062を示す。IO
ブロック1061はBブロック1062の機能の他に外
部との入出力機能を持つ。図16において、1070は
変換テーブル、1071は制御回路、1072〜107
6はセレクタである。IOブロック1061、Bブロッ
ク1062は、下辺に接続される外部またはIOブロッ
ク1061またはBブロック1062からモード信号線
1080、アドレス信号線1081、クロック信号線1
082を入力し、上辺に接続されるBブロック1062
とサイドに接続されるNブロック1060へ出力する。
入力データ線1083は、下辺から入力し、セレクタ1
073、変換テーブル1070、セレクタ1074、セ
レクタ1076を通り左右辺へ出力するパスを持つ。ま
た、変換テーブル1070を通らずに、セレクタ107
6のみを通り、左右辺へ出力することもできる。左右に
接続されるNブロック1060から入力する出力データ
線1084はセレクタ1072、セレクタ1073、変
換テーブル1070、セレクタ1074、セレクタ10
75を通り、下辺に接続されるBブロック1062また
はIOブロック1061または外部へ出力するパスを持
つ。また、左右から入力する出力データ線1084はセ
レクタ1072、セレクタ1075を通り、下辺の出力
することもできる。セレクタ1072〜1076は、制
御回路1071によって、制御される。制御回路107
1はモード信号線1080とアドレス信号線1081を
入力し、セレクタ1072〜1075の制御信号を発生
する。制御回路1071の構成については、図21を用
いて、後に説明する。また、変換テーブル1070は、
書き込みのため、アドレス信号線1081、入力データ
線1083と接続する。
【0080】図17にNブロック1060を示す。図1
7に示すNブロック1060はウェハ1050におい
て、中心より右側に配置するものである。左側に配置す
るNブロック1060は横方向に対象なものとなる。図
17において、1100はニューロンブロックを示す。
1101、1103はセレクタ、1102は制御回路を
示す。各Nブロック1060内にはニューロンブロック
1100を6個づつ搭載する。各ニューロンブロック1
100に、モード信号線1080、アドレス信号線10
81、クロック信号線1082、入力データ線1083
を接続する。制御回路1102はアドレス信号線108
1をデコードし、セレクタ1101により、Nブロック
1060内の6個のニューロンブロック1100の出力
から1つを選択し、セレクタ1103へ出力する。セレ
クタ1103の入力のもう1つは右側に接続されている
Nブロック1060から出力される出力データ線108
4である。セレクタ1103の出力は左側に接続される
Nブロック1060またはBブロック1062またはI
Oブロック1061と接続する。セレクタ1103の制
御は制御回路1102が行う。
【0081】図18にニューロンブロック1100の詳
細を示す。本図は図9に示したものとほぼ同様の構成と
なっている。図18において、1121〜1125はラ
ッチを示す。1130は乗算器、1131はα乗算器、
1132はη乗算器を示す。1140〜1141は加算
器を示す。1150〜1152はセレクタを示す。11
60はメモリ、1161はメモリのアドレスを指すポイ
ンタを示す。メモリ1160には、結合元のニューロン
ブロック1100のアドレスとそれ結合係数wと前回の
修正値Δwを記憶する。1170は制御回路を示す。ラ
ッチ1121は逆方向ネットワーク側として動作すると
きにのみ使用し、入力データ線1083から送られる
(4)(5)式における、f’(u)を取り込む。ラッ
チ1122は順方向ネットワーク側として動作するとき
は、入力データ線1083から送られる(3)式におけ
る学習信号δを取り込み、逆方向ネットワーク側として
動作するときは、入力データ線1083から送られる
(3)式におけるxを取り込む。ラッチ1123は逆方
向ネットワークの出力層として動作するときにのみ使用
し、入力データ線1083から送られる(4)式におけ
る教師信号tを取り込む。セレクタ1150はメモリ1
160の結合係数w,入力データ線1083、ラッチ1
121、ラッチ1122、ラッチ1124を入力し、そ
のうち2つを選び、乗算器1130へ出力する。乗算器
1130は入力した値を乗算し、出力する。セレクタ1
151は、η乗算器1132、メモリ1160の結合係
数w、乗算器1130、ラッチ1122、ラッチ112
3、ラッチ1124を入力し、そのうち2つを選択し、
加算器1140へ出力する。加算器1140は入力する
値を加算または減算し、出力する。ラッチ1024は加
算器1140の出力を取り込む。セレクタ1152は、
ラッチ1124、乗算器1130を入力し、そのうち1
つを選択し、ラッチ1125へ出力する。ラッチ112
5は図17のセレクタ1101、1103を通して、出
力データ線1084へ出力する。α乗算器1131はメ
モリ1160の前回の修正値Δwを入力し、定数α倍
し、出力する。加算器1141はα乗算器1131、乗
算器1130を入力し、加算して出力する。η乗算器1
132は加算器1141の出力を定数η倍して、出力す
る。メモリ1160は、加算器1140の出力の修正し
た結合係数wと、加算器1141の出力の修正値Δwを
取り込む。制御回路1170はモード信号線1080、
アドレス信号線1081、クロック信号線1082を入
力し、ニューロンブロック1100内のセレクタの制御
及びラッチ、メモリの書き込みの制御を行う。
【0082】以上にWSIによる構成について説明した
が、図19に示すように、チップによっても、構成する
ことができる。図19において、1400はチップボー
ド、1401はNチップ、1403はBチップ、140
4はコネクタを示す。チップボード1400を図12に
おけるWSIボード1030と差し替えることにより、
同様にニューロコンピューティングシステムを構成する
ことができる。また、チップとWSIの混在による構成
も可能である。Nチップ1401はNブロック1060
と同じ機能を持ち、Bチップ1403はBブロック10
62と同じ機能を有する。NチップとBチップをチップ
ボード1400上でウェハ1050と同様となる接続を
行えばよい。
【0083】以上に説明した図12のシステムの構成が
いろいろな動作を繰り返すことにより、学習を行う。
【0084】図25は図12のモード信号線1080に
出力するモード信号の一部を示す図である。各モード信
号における簡単な動作内容について示した。図12のシ
ステムは本図のモード信号に従い、いろいろな動作を行
う。モード信号線1080を1,3,5,8,9,1
1,13,15,17,19に設定することにより、各
ラッチ、メモリの初期値を書き込むことができる。学習
動作時はモード信号24〜32を使用する。設定する順
番に関しては後に図26を用いて、説明する。
【0085】図25に従い、図12のシステムがどのよ
うに動作するか説明し、それに伴い、図12のシーケン
スRAM1013、図16の制御回路1071、図17
の制御回路1102、図18の制御回路1170の機能
についても説明することとする。
【0086】まず、図20を用いて、IOブロック10
61、Bブロック1062、Nブロック1060及びN
ブロック1060内のニューロンブロック1100にア
クセスするためのアドレスについて説明する。学習動作
時の各ニューロンブロック1100のアドレスは相対ア
ドレスで動作する。WSIでは、欠陥により、全てのニ
ューロンブロック1100を使用することができない可
能性が高い。また、本発明では、順方向ネットワークと
逆方向ネットワークを構成するニューロンブロック11
00は1対1に対応している。そのため、各ニューロン
ブロック1100は、任意の相対アドレスに設定できる
ようにする。相対アドレスを設定するときは、絶対アド
レスによりアクセスする。図20(a)にウェハ105
0内の各ブロックの絶対アドレスを示す。また、図20
(b)に絶対アドレスのビット構成を示す。ウェハ10
50内に全部で288個のニューロンブロック1100
があるので、ウェハ内の絶対アドレスは9ビットとす
る。また、それに、ボードアドレス4ビットを加える。
なお、ボードアドレスは図12のデコーダ1085に必
要なもので、ウェハ1050内へ送る必要はない。多く
のボードを接続する場合は、ボードアドレスのビットを
増やせばよい。ウェハ内絶対アドレスのうち、3ビット
は行アドレス、1ビットは右/左アドレス、2ビットは
列アドレス、3ビットはNブロック内ニューロンブロッ
クアドレスを示す。行アドレスとは、ウェハ1050の
下段からの0〜7行を示す。右/左アドレスは、中心よ
り、右か左かを示す。列アドレスはどの列かを示す。N
ブロック内ニューロンブロックアドレスはNブロック1
060内の6個のニューロンブロックのうちどれかを示
す。Nブロック内アドレスのニューロンブロックアドレ
スを図20(b)に示す。また、図20(c)に、チッ
プボード1400内の絶対アドレスを示す。
【0087】図21に図16の制御回路1071を示
す。また、図22図に図17の制御回路1102を図2
3に図18の制御回路1170を示す。まず、この3つ
の図を用い、アドレスのデコード方法について説明す
る。
【0088】図21において、1501は絶対アドレス
の列アドレスをデコードする列デコーダである。150
2は絶対アドレスの行アドレスをデコードする行デコー
ダを示す。1503はモード信号線をデコードするデコ
ーダを示す。1506〜1507はラッチを示す。15
04はインバータ回路、1505はアンド回路を示す。
1511〜1512は引き算回路で、アドレス信号線1
081に送られる相対アドレスとラッチ1506、15
07に予め書き込まれている値と引き算を行い、その結
果の符号を出力する。1509〜1510はセレクタ
で、絶対アドレスによるデコードの結果と相対アドレス
によるデコードの結果のいずれかを選択し、出力する。
デコーダ1503よりセレクタ1509、1510に接
続される制御線は絶対アドレスか相対アドレスかを選択
するものである。1520はNブロックセレクト線を示
す。
【0089】図22において、1607はモード信号線
1080をデコードするデコーダである。1604はラ
ッチで、入力データ線1083の出力を取り込むことが
できる。その制御はデコーダ1607が行う。1603
は引き算回路で、アドレス信号線1081に送られる相
対アドレスとラッチ1604に予め書き込まれている値
と引き算を行い、その結果の符号を出力する。1601
〜1602はセレクタを示す。セレクタ1601は、列
アドレスの絶対アドレスのデコード結果であるNブロッ
クセレクト線1520と相対アドレスによるデコード結
果のいずれかを選択し、出力する。セレクタ1602
は、Nブロック内の絶対アドレスのデコード結果と相対
アドレスのデコード結果を選択するものである。デコー
ダ1607よりセレクタ1601、1602に接続され
る制御線は絶対アドレスか相対アドレスかを選択するも
のである。また、Nブロックセレクト線1520を捻じ
り、隣のブロックと接続するのは、各列のNブロック1
060を同一パターンとすることができるからである。
それにより、半導体マスク、設計工数を低減することが
できる。1605はデコーダで、アドレス信号線108
1のうち、絶対アドレスのNブロック内アドレスをデコ
ードする。1606はエンコーダで6個の各ニューロン
ブロック1100において、アドレスをデコードされた
結果を入力する。
【0090】図23において、1701はラッチで、入
力データ線1083に出力される自分の相対アドレスを
取り込む。また、相対アドレスの他、自分が順方向ネッ
トワーク側として動作するのか、逆方向ネットワーク側
で動作するのか、また、逆方向ネットワーク側で動作す
る場合は、さらに、中間層なのか、出力層なのかを示す
情報も取り込む。1703は比較回路で、アドレス信号
線1081に出力される相対アドレスと予め書き込まれ
ているラッチ1701の自分の相対アドレスを比較し、
一致しているかどうかをデコーダ1702へ送る。ま
た、その結果は図22のデコーダ1605へも出力す
る。1704は比較回路で、図18のメモリ1160の
結合元アドレスとアドレス信号線1081に出力される
相対アドレスを比較する。1702はデコーダで、比較
回路1703、ラッチ1701、モード信号線108
1、図22のデコーダ1605、クロック信号線108
2、比較回路1704、図22のセレクタ1601を入
力し、ニューロンブロック1100内のセレクタ、ラッ
チ、メモリ、ポインタ、また、ラッチ1701の制御を
行う。
【0091】図25には、動作を説明するのに必要な事
項のみ示したが、検査のために、ラッチ、メモリなどの
書き込み読みだしなどを行うためのモード信号も設定す
る。
【0092】まず、初期設定として、絶対アドレスによ
り、相対アドレスと、順方向ネットワークまたは逆方向
ネットワーク、また、中間層または出力層を示す情報の
2ビットを各ニューロンブロック1100の図23の制
御回路1170のラッチ1701に書き込む。ホストコ
ンピュータ1000により、図12のセレクタ105
1、1052を外部バス1021側とする。モード信号
線1080を17に設定し、アクセスするニューロンブ
ロック1100の絶対アドレスをアドレス信号線108
1に設定する。書き込みたい値を入力データ線1083
に設定する。WSIボード1030では、デコーダ10
85により、ボードアドレスをデコードし、自分のアド
レスのときのみ、ウェハ1050のラッチ、メモリ等の
書き込みを行うように制御する。
【0093】絶対アドレスによる動作では、図21の行
デコーダ1502により、行アドレスをデコードし、も
し、その行が選択されているかどうかがわかる。また、
列デコーダ1501により、列アドレスを選択し、1〜
4個その行方向にあるNブロック1060のうち1個
を、それに接続されているNブロックセレクト線152
0により選択する。また、右/左ビットにより、右側ま
たは左側のNブロック1060かを選択する。行デコー
ダ1502の結果と右/左アドレスをアンド回路150
5によりアンドし、左側のデコーダ1501のイネーブ
ル信号にする。また、行デコーダ1502の結果と右/
左アドレスをインバータ回路1504により論理反転し
たものとをアンド回路1505によりアンドし、その結
果をデコーダ1501のイネーブル信号とする。選択さ
れたNブロック1060内においては、図22のデコー
ダ1605により、Nブロック内アドレスをデコード
し、各ニューロンブロック1100内の図23の制御回
路1170へその結果を出力する。また、セレクタ16
01のNブロックの選択結果も制御回路1170へ出力
する。セレクト線制御回路1170のデコーダ1702
の制御により、モード信号が17でかつ自分が選択され
ていれば、そのラッチ1701に入力信号線1083に
出力されている値を取り込む。以上の動作により全ての
ニューロンブロック1100のラッチ1701へ書き込
む。ただし、同一のウェハ内における相対アドレスは絶
対アドレスの小さなものから大きなものに向かって増や
す。空番号が存在してもよい。これは、次に説明する出
力データ線1084の制御方法にかかわってくる。
【0094】次に、全てのNブロック1060の図22
のラッチ1604を設定する。モード信号を15に設定
しラッチ1604には、そのNブロック1060内のニ
ューロンブロック1100に設定された相対アドレスの
最も大きな値を書き込む。ホストコンピュータ1000
により、モード信号線1080を15に設定し、アクセ
スするNブロック1060の絶対アドレスをアドレス信
号線1081に設定する。Nブロック内ニューロンブロ
ックアドレスの設定は不要である。書き込みたい値を入
力データ線1083に設定する。相対アドレスによる動
作時のNブロック1060における出力データ線108
4の制御、即ち、図17のセレクタ1103の制御は図
22の引き算回路1603により、アドレス信号線10
81からラッチ1604を引いた結果の符号ビットによ
り行う。ラッチ1604には、そのNブロック1060
内のニューロンブロック1100の最大の相対アドレス
が書き込まれているので、そのNブロック1060より
外側のニューロンブロック1100は、ラッチ1604
に書き込まれた値より大きな相対アドレスに設定されて
いる。そのため、アドレス信号線1081がラッチ16
04より大きな値となる場合には、図17のセレクタ1
103を隣のNブロック1060に接続されている出力
データ線1084を選択する。
【0095】次に、全てのIOブロック1061、Bブ
ロック1062の図21のラッチ1507にその行のニ
ューロンブロック1100に設定された最大の相対アド
レスを書き込む。ホストコンピュータ1000により、
モード信号線1080を11に設定し、アクセスするI
Oブロック1061またはBブロック1062の絶対ア
ドレスの行アドレスをアドレス信号線1081に設定す
る。右/左アドレス、列アドレス、Nブロック内アドレ
スの設定は不要である。書き込む値を入力データ線10
83に設定する。
【0096】IOブロック1061,Bブロック106
2における出力データ線1084の制御、即ち、図16
のセレクタ1075の制御は図21の引き算回路151
2により、アドレス信号線1081からラッチ1507
を引いた結果の符号ビットにより行う。ラッチ1507
には、その行にあるニューロンブロック1100の最大
の相対アドレスが書き込まれているので、そのブロック
より上方のニューロンブロック1100には、ラッチ1
507の値より大きな相対アドレスが設定されている。
そのため、アドレス信号線1081がラッチ1507よ
り大きな値となる場合には、図16のセレクタ1075
を上方のBブロック1062に接続されている出力デー
タ線1084を選択する。
【0097】次に、全てのIOブロック1061、Bブ
ロック1062の図21のラッチ1506にその行の右
側のニューロンブロック1100に設定された最大の相
対アドレスを書き込む。ホストコンピュータ1000に
より、モード信号線1080を13に設定し、アクセス
するIOブロック1061またはBブロック1062の
絶対アドレスの行アドレスをアドレス信号線1081に
設定する。右/左アドレス、列アドレス、Nブロック内
アドレスの設定は不要である。書き込む値を入力データ
線1083に設定する。図16のセレクタ1072の制
御は図21の引き算回路1511により、アドレス信号
線1081からラッチ1506を引いた結果の符号ビッ
トにより行う。ラッチ1506には、その行の右側にあ
るニューロンブロック1100の最大の相対アドレスが
書き込まれているので、左側のニューロンブロック11
00には、ラッチ1506の値より大きな相対アドレス
が設定されている。そのため、アドレス信号線1081
がラッチ1506より大きな値となる場合には、図16
のセレクタ1072は左側と接続されている出力データ
線1084を選択する。
【0098】次に、IOブロック1061、Bブロック
1062の図16の変換テーブル1070の書き込みを
行う。順方向ネットワークを構成するウェハ1050の
変換テーブル1070は(1)式のf変換を、また、逆
方向ネットワークを構成するウェハ1050の変換テー
ブル1070は(4)(5)式のf’変換を行う。
【0099】ホストコンピュータ1000により、モー
ド信号線1080を9に設定し、アドレス信号線108
1にアクセスするIOブロック1061、Bブロック1
062の絶対アドレスの行アドレスを設定する。右/左
アドレス、列アドレス、Nブロック内アドレスのビット
に変換テーブル1070のアクセスしたいアドレスを設
定する。もし、7ビットで不足する場合は、アドレス信
号線1081のビット数を増やす。入力データ線108
3に書き込みたい値を設定する。IOブロック106
1、各Bブロック1062では、図21の行デコーダ1
502により、行アドレスをデコードし、自分が選択さ
れていれば、入力データ線1083に出力されている値
を変換テーブル1070に書き込む。
【0100】次に、図12の入力層メモリ1010に入
力層ニューロンの出力を教師信号メモリ1012に教師
信号を書き込む。一般に、ニューラルネットは、いろい
ろなパターンを学習させるので、入力層メモリ1010
は各パターンごとにセグメント化する。同様に、各パタ
ーンに対応する教師信号を書き込む教師信号メモリ10
12もセグメント化する。各パターンごとにアクセスす
るセグメントを変える。ホストコンピュータ1000に
より、それぞれ、モード信号を1、3に設定し、アドレ
ス信号線1081にアドレスを設定し、各メモリに値を
書き込む。
【0101】次に、使用するニューロンブロック110
0のメモリ1160に結合係数の初期値を書き込む。モ
ード信号を19に設定し、まず、アドレス信号線108
1にアクセスするニューロンブロック1100のアドレ
スを設定し、その後アドレス信号線1081にメモリ1
160の書き込むアドレスを設定し、入力データ線10
83に書き込む値を設定する。このように、アドレス信
号線1081を時分割に使用してもよいし、初めポイン
タ1161を0にして、アドレス0から書き込み、順次
ポインタを1づつ進めて、メモリ1160に書き込むこ
ともできる。
【0102】メモリ1160には、結合するニューロン
ブロック1100の相対アドレスと、それとの結合係数
wと、前回の修正値Δwを書き込む。ただし、Δwの初
期値は0でよい。また、学習動作を途中で中断し、途中
結果をホストコンピュータ1000に読み出し、また、
学習を再開するときなどは、それに応じて、必要な値を
書き込むことになる。また、順方向ネットワークと逆方
向ネットワークの対応している結合係数の初期値は同じ
値にする必要がある。
【0103】次に、図24に示すようにシーケンスRA
M1013に学習を行うための一連のモード信号と出力
を行うニューロンブロック1100の相対アドレスを書
き込む。
【0104】図26にその例を示す。図26では、入力
層ニューロン数3、中間層ニューロン数2、出力層ニュ
ーロン数2のニューラルネットの学習を行うためのシー
ケンスRAM1013の例である。図26には、1パタ
ーンの学習を示すが、2パターン以上ある場合は、パタ
ーンを変えるごとに、入力層メモリ、教師信号メモリの
セグメントを変える必要がある。
【0105】以下に、学習動作を図26に従い、説明す
る。入力層ニューロンの相対アドレスを0〜2、中間層
ニューロンの相対アドレスを3〜4、出力層ニューロン
の相対アドレスを5〜6とする。順方向ネットワークを
構成するボードアドレスを3、逆方向ネットワークを構
成するボードアドレスを4とし、2枚のボードを使用し
ている。
【0106】逆方向ネットワークは入力層ニューロンを
必要としないので、全部で8個のニューロンブロック1
100を使用する。入力層メモリ、教師信号メモリはボ
ードアドレスをそれぞれ0、1である。
【0107】まず、ポインタ1086をリセットする。
シーケンスRAM1013はアドレス0に書き込まれて
いる命令とアドレスをそれぞれ、モード信号線108
0、アドレス信号線1081に出力する。それより、モ
ード信号線1080を24に設定し、アドレス信号線に
アドレス5を設定する。また、ボードアドレスを1に設
定する。デコーダ1085によりボードアドレスをデコ
ードし、教師信号メモリ1012の出力を入力データ線
1083へ出力バッファ1040を通して、出力させ
る。教師信号メモリ1012は、アドレス信号線108
1に指定されるアドレス5の値を出力する。逆方向ネッ
トワーク側の出力層の相対アドレスが5のニューロンブ
ロック1100は入力データ線1083に出力されてい
る自分の教師信号を図18のラッチ1123に取り込
む。同様に相対アドレスが6の逆方向ネットワークの出
力層のニューロンブロック1100に対しても行う。
【0108】ここで、ラッチ、メモリ等に書き込むに
は、アドレスのホールド時間や書き込むデータのホール
ド時間が必要である。そのため、クロック信号線108
2のクロック信号により、それらへのライトイネーブル
信号のタイミングを作る。
【0109】次に、ポインタ1086はクロック信号線
1082よりクロックを入力すると、図12のポインタ
1086が1つ進み、次の命令に移る。モード信号線1
080を25に設定し、図18図のポインタ1161を
リセットする。また、図18のニューロンブロック11
00内のラッチ1124の内容もリセットする。
【0110】次の命令では、順方向動作を行う。モード
信号線1080を26に設定し、アドレス信号線は、入
力層から出力層に向かって、相対アドレスの小さい順に
ニューロンブロック1100が指定する。ボードアドレ
スは入力層ではボードアドレス0を、そして、中間層、
出力層ではボードアドレス3を設定する。指定された入
力層メモリ1010は入力データ線1083へ、その値
を出力し、全てのニューロンブロック1100へブロー
ドキャストする。ニューロンブロック1100では、2
6に設定されているモード信号線1080を図23のデ
コーダ1702でデコードし、図18のニューロンブロ
ック1100の各セレクタを制御する。セレクタ115
0はメモリ1160の結合係数wと入力データ線108
3を乗算器1130へ出力する。乗算器1130によ
り、結合係数wとニューロンの出力xとのシナプス演
算、即ち、乗算を行う。セレクタ1151は乗算器11
30とラッチ1124を加算器1140へ出力する。ラ
ッチ1124に加算器1140の出力を書き込む。セレ
クタ1152はセレクタ1124を選択する。ラッチ1
125はその値を取り込む。図23の制御回路1170
の比較回路1704により、メモリ1160の結合元ア
ドレスとアドレス信号線1081に出力されているアド
レスを比較し、一致しているときに、ラッチ1124と
乗算器1130の出力を加算し、その結果をラッチ11
24に書き込む。そして、図18のポインタ1161の
値を1つ進める。このように、順次、アドレス信号線1
081に送られる出力元の相対アドレスと入力データ線
1083に送られるその出力を入力し、累積加算を行
う。メモリ1160には、結合元アドレスの小さい順に
書き込んでおく。また、アドレス信号線1081と図2
3のラッチ1701に書き込まれた自分の相対アドレス
を比較回路1703により、比較し、一致していれば、
累積加算の結果、即ち、ラッチ1125の内部エネルギ
ー値uを図17のセレクタ1101、1103、出力デ
ータ線1084を通して、図16のセレクタ1072に
送られる。IOブロック1061、Bブロック1062
の図21のデコーダ1503は、モード信号が26に設
定されているとき、セレクタ1073はセレクタ107
2側を選択し、セレクタ1074は変換テーブル107
0を選択する。また、セレクタ1076は下側から送ら
れる入力データ線1083をそのまま、サイドのNブロ
ック1060に送るように、入力データ線1083側を
選択する。セレクタ1072、1075はアドレス信号
線1081を前述の方法により、制御する。これによ
り、相対アドレスを指定されたニューロンブロック11
00の出力である内部エネルギー値uはその行の変換テ
ーブル1070に送られ、ニューロンの出力xに変換さ
れ、出力データ線1084により、図12のコントロー
ルボード1003へ送られる。図12のセレクタ105
2は、出力データ線1084の値を、そのまま、入力デ
ータ線1083へ出力する。
【0111】また、このモードにおける逆方向ネットワ
ーク側では、図18において、アドレス信号線1081
に自分の相対アドレスが出力されたときに、入力データ
線1083の値をラッチ1122に取り込む。
【0112】次の動作では、モード信号線1080を2
7に設定し、中間層と出力層の相対アドレスをアドレス
信号1081に順次設定していく。相対アドレスを指定
された順方向ネットワークのニューロンブロック110
0は再び図18のラッチ1125の内容、即ち、内部エ
ネルギー値uを図16のIOブロック1061、Bブロ
ック1062へ送る。モード27において、IOブロッ
ク1061、Bブロック1062のセレクタ1074は
セレクタ1072を選択する。そのため、内部エネルギ
ー値uがそのまま下側の出力データ線1084へ出力す
る。アドレス信号線1081のデコード方法に関して
は、モード26と同様である。内部エネルギー値uは、
図12のコントロールボードを通り、出力データ線10
84へ出力される。一方、逆方向ネットワークのIOブ
ロック1061、Bブロック1062では、セレクタ1
073を入力データ線1083側に、セレクタ1074
を変換テーブル1070側に、セレクタ1076をセレ
クタ1074側に設定する。入力データ線1083によ
り送られる内部エネルギー値uは、変換テーブル107
0により、f’変換して、f’(u)となり、サイドの
Nブロック1060へ入力データ線1083により出力
する。逆方向ネットワークの図18のニューロンブロッ
ク1100では、アドレス信号線1081に出力される
アドレスと自分の相対アドレスが一致すれば、入力デー
タ線1083に出力されているf’(u)をラッチ11
21に取り込む。
【0113】次にモード信号線1080を28に設定す
る。逆方向ネットワークの出力層のニューロンブロック
1100はセレクタを次のように設定する。図18にお
いて、セレクタ1151はラッチ1122とラッチ11
23を加算器1140に出力する。加算器1140によ
り(t−x)を計算し、ラッチ1124へ書き込む。セ
レクタ1150はラッチ1124とラッチ1121を乗
算器1130へ出力する。乗算器1130により、ラッ
チ1124の(t−x)とラッチ1121のf’(u)
の乗算を行い出力層の学習信号δを計算する。セレクタ
1152は乗算器1130の出力をラッチ1125へ出
力する。ラッチ1125に学習信号δを書き込む。
【0114】次の命令では、モード信号線1080を2
5に設定し、図18のポインタ1161をリセットす
る。また、図18のニューロンブロック1100内のラ
ッチ1124をリセットする。
【0115】次の命令では、モード信号線1080を2
9に設定し、出力層の相対アドレスをアドレス信号線1
081に小さい順に設定していく。相対アドレスを指定
された逆方向ネットワークの図18のニューロンブロッ
ク1100はラッチ1125の内容、即ち、出力層の学
習信号δを図16のIOブロック1061、Bブロック
1062へ送る。モード29において、IOブロック1
061、Bブロック1062の図16のセレクタ107
4はセレクタ1072を選択するので、学習信号δがそ
のまま出力データ線1084へ出力される。アドレス信
号線1081のデコードに関しては、モード26と同様
である。学習信号δは、図12のコントロールボード1
003を通り、入力データ線1083へ出力される。順
方向ネットワークのIOブロック1061、Bブロック
1062では、図16のセレクタ1076を下側と接続
されている入力データ線1083側に設定する。逆方向
ネットワークから送られる学習信号δは、サイドのNブ
ロック1060へ出力される。順方向ネットワークの図
18のニューロンブロック1100では、アドレス信号
線1081に出力されるアドレスと自分の相対アドレス
が一致すれば、入力データ線1083に出力されている
学習信号δをラッチ1122に取り込む。
【0116】また、逆方向ネットワークの中間層のニュ
ーロンブロック1100では、セレクタ1150はメモ
リ1160の結合係数wと入力データ線1083を乗算
器1130へ出力する。乗算器1130により、結合係
数wと学習信号δとの乗算を行う。セレクタ1151は
乗算器1130とラッチ1124を加算器1140へ出
力する。ラッチ1124は加算器1140の出力を取り
込む。図23の比較回路1704により、メモリ116
0が出力する結合元アドレスとアドレス信号線1081
を比較し、一致しているときに、ラッチ1124と乗算
器1130の出力を加算し、ラッチ1124に書き込
む。そして、ポインタ1161の値を1つ進める。この
ように、順次、アドレス信号線1081と入力データ線
1083に送られてくる、出力元のニューロンブロック
1100の相対アドレスとその出力を入力し、Σw・δ
の累積加算を行う。
【0117】次の命令では、モード信号線1080を3
0に設定する。逆方向ネットワークの出力層のニューロ
ンブロック1100はセレクタを次のように設定する。
図18において、セレクタ1150はラッチ1124と
ラッチ1121を乗算器1130へ出力する。乗算器1
130により、ラッチ1124のΣw・δとf’(u)
の乗算を行い中間層の学習信号δを計算する。セレクタ
1152は乗算器1130の出力をラッチ1125へ出
力する。ラッチ1125に学習信号δを書き込む。
【0118】次に、モード信号線1080を29に設定
し、中間層の学習信号δを全ニューロンブロック110
0にブロードキャストする。順方向ネットワークのニュ
ーロンブロック1100は、アドレス信号線1081の
値と図23のラッチ1701に書き込まれた自分の相対
アドレスを比較回路1703により、比較し、一致して
いれば、学習信号δをラッチ1122に取り込む。
【0119】中間層が2層以上ある場合は、この後、再
び、モード30の命令を行い、学習信号δを計算し、そ
の後モード29により順方向ネットワークへ送ればよ
い。
【0120】次の命令では、モード信号線1080を2
5に設定し、図18のポインタ1161をリセットす
る。
【0121】次に、モード信号線1080を31に設定
し、アドレス信号線1081を入力層から中間層に向か
って相対アドレスの小さい順に指定する。入力層に関し
ては、入力層メモリ1010から出力する。中間層に関
して、順方向ネットワークの中間層のニューロンブロッ
ク1100はその内部エネルギー値uをIOブロック1
061、Bブロック1062の変換テーブル1070で
f変換し、その値をブロードキャストする。順方向ネッ
トワークの図18のニューロンブロック1100の各セ
レクタを次のように制御する。セレクタ1150はラッ
チ1122と入力データ線1083を乗算器1130へ
出力する。乗算器1130により、ラッチ1122の学
習信号δとニューロンの出力xの乗算を行う。セレクタ
1151はメモリ1160の結合係数wとη乗算機11
32を加算器1140へ出力する。また、α乗算器11
31はメモリ1160の前回の修正値Δw’を入力し、
α倍し、αΔw’を出力する。加算器1141は乗算器
1130の出力δ・xとα乗算器1131の出力αΔ
w’を入力し、加算してη乗算器1132に出力する。
η乗算器1132の出力は、修正値である。メモリ11
60のΔw’には、ηを掛ける前の値を書き込む。
【0122】
【数6】
【0123】
【数7】
【0124】定数ηは広範囲な値となるのでこのように
することにより、メモリ1160へ書き込むΔw’のビ
ット数を節約することができる。加算器1140によ
り、結合係数wを修正し、メモリ1160にその修正結
果を書き込む。また、以上の修正動作は、図23の比較
回路1704により、メモリ1160の結合元アドレス
とアドレス信号線1081が一致しているときに行う。
【0125】次に、モード信号線1080を25に設定
し、図18のポインタ1161をリセットする。
【0126】次に、モード信号線1080を32に設定
し、逆方向ネットワークの出力層のニューロンブロック
1100の相対アドレスをアドレス信号線1081に設
定し、学習信号δをブロードキャストする。もし、中間
層が2層以上ある場合は、中間層の学習信号δもブロー
ドキャストする。逆方向ネットワークの第18図のニュ
ーロンブロック1100の各セレクタをモード31の順
方向ネットワークの結合係数wの修正と同じように設定
する。乗算器1130により、ラッチ1122のニュー
ロンの出力xと入力データ線1083に出力される学習
信号δの乗算を行い、η乗算器1132、加算器114
0、α乗算器1131、加算器1141により、修正値
Δw’および修正した結合係数wを計算し、メモリ11
60に書き込む。
【0127】以上の動作を各パターンごとに、入力層メ
モリ、教師信号メモリのセグメントを変えて行うことに
より、学習動作を行うことができる。また、出力層メモ
リ1011は、出力データ線1084に出力される順方
向ネットワークの出力層ニューロンの出力を取り込む。
ホストコンピュータ1000は出力層メモリ1011を
外部バス1021から読み出し、期待する出力となって
いるか調べることができる。
【0128】図12のアプリケーションの例として、例
えば、図12のディジタイザー1001により、手書き
文字を入力し、ホストコンピュータ1000により入力
した文字の座標を正規化し、ニューラルネットの入力と
し、手書き文字を認識するシステムを作ることができ
る。図12のシステムにおいて、入力層p個、中間層q
個、出力層r個の階層型ニューラルネットの1パターン
の1回の学習に要する時間は、1回に要する累積加算の
時間をtとすると、ほぼ、
【0129】
【数8】(2p+4q+5r)・t(s) (8) となる。例えば、手書き文字認識にpを256(16ド
ット×16ドット)、qを100、rを26、tを10
0nsとすると、1パターンの1回の学習を約0.1m
sで行うことができる。1文字の学習に1000回の繰
り返しが必要としても、10文字パターンの学習をわず
か1秒で行うことができる。
【0130】
【発明の効果】本発明によれば、ニューラルネットを高
速に学習させることができる。また、ウェハスケール集
積回路で構成するのに好都合で、複数のウェハで構成す
ることも可能である。また、その設計工数も少ない。そ
のため、大規模なニューラルネットを高速に計算がで
き、かつコンパクトなニューロコンピュータ用のウェハ
スケール集積回路を製造することができる。
【図面の簡単な説明】
【図1】本発明の一実施例を示す図である。
【図2】ニューラルネットを構成するニューロンモデル
を示す図である。
【図3】3層の階層型ニューラルネットを示す図であ
る。
【図4】ニューラルネットを高速に計算する専用ハード
ウェアを示す図である。
【図5】本発明の動作の詳細について説明する図であ
る。
【図6】本発明による演算の流れを示す図である。
【図7】本発明で用いる機能ブロックの一例の詳細を示
す図である。
【図8】本発明で用いる機能ブロックの一例の詳細を示
す図である。
【図9】本発明で用いる機能ブロックの一例の詳細を示
す図である。
【図10】本発明の他の一実施例を示す図である。
【図11】本発明の他の一実施例を示す図である。
【図12】本発明のニューロコンピューティングシステ
ムの全体を示す図である。
【図13】本発明のニューロコンピューティングシステ
ムのウェハの構成を示す図である。
【図14】ウェハの信号線の構成と配置を示す図であ
る。
【図15】ウェハの各ブロックへの電源供電方法および
WSI基板の構成を示す図である。
【図16】Bブロック(IOブロック)を示す図であ
る。
【図17】Nブロックを示す図である。
【図18】ニューロンブロックの詳細を示す図である。
【図19】本発明のシステムをチップにより構成した場
合について説明する図である。
【図20】IOブロック、Bブロック、Nブロック、N
ブロック内のニューロンブロックにアクセスするための
アドレスについて説明する図である。
【図21】図16の制御回路を示す図である。
【図22】図17の制御回路を示す図である。
【図23】図18の制御回路を示す図である。
【図24】シーケンスRAMについて説明する図であ
る。
【図25】モード信号とその動作の一例を示す図であ
る。
【図26】図24のシーケンスRAMに書き込む命令の
一例を示す図である。
【符号の説明】
120F,121F,120B,121B…計算ユニット、123,124…制御回
路、125〜127…セレクタ、128…バッファ、130…制御信
号発生回路、131,132…関数変換回路、140…出力バス、
141…入力バス、142〜145…制御信号線、150…外部入力
端子、151…外部出力端子、160…乗算器。
フロントページの続き (72)発明者 柳生 正義 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 山田 稔 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 柴田 克成 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】データバスにより接続される半導体集積回
    路と、入力値を記憶する第1のメモリと、出力の所望す
    る値を記憶する第2のメモリと、出力値を記憶する第3
    のメモリと、これらを制御する制御回路を備えた情報処
    理システムであって、 上記半導体集積回路はニューロンモデルを計算する複数
    の機能ブロックを有し、上記機能ブロックの1つは上記
    データバスにより、自他の機能ブロックの少なくともい
    ずれかへデータを転送する手段と、 複数の上記入力値とそれらの入力値に対応する上記所望
    する値に対して、上記ニューロンモデル間の重み値を修
    正する手段を有することを特徴とする情報処理システ
    ム。
  2. 【請求項2】データバスにより接続される少なくとも1
    つのウェハスケール集積回路と、入力値を記憶する第1
    のメモリと、出力の所望する値を記憶する第2のメモリ
    と、出力値を記憶する第3のメモリと、これらを制御す
    る制御回路を備えた情報処理システムであって、 上記ウェハスケール集積回路はニューロンモデルを計算
    する複数の機能ブロックを有し、上記機能ブロックの1
    つは上記データバスにより、自他の機能ブロックの少な
    くともいずれかへデータを転送する手段と、 複数の上記入力値とそれらの入力値に対応する上記所望
    する値に対して、上記ニューロンモデル間の重み値を修
    正する手段を有することを特徴とする情報処理システ
    ム。
  3. 【請求項3】データバスにより接続される少なくとも1
    つのウェハスケール集積回路と、入力値を記憶する第1
    のメモリと、出力の所望する値を記憶する第2のメモリ
    と、出力値を記憶する第3のメモリと、これらを制御す
    る制御回路を備えた情報処理システムであって、 上記ウェハスケール集積回路はニューロンモデルを計算
    する複数の機能ブロックを有し、上記機能ブロックの1
    つは上記データバスにより、自他の機能ブロックの少な
    くともいずれかへデータを転送する手段を有し、 少なくとも1つの上記機能ブロックにより中間層、出力
    層とその出力が決定していく第1の階層的ネットワーク
    を構成すると共に、少なくとも1つの上記機能ブロック
    により出力層、中間層とその出力が決定していく第2の
    階層的ネットワークを構成し、 上記第1の階層的ネットワークと上記第2の階層的ネッ
    トワークの上記機能ブロックは1対1に対応し、複数の
    上記入力値とそれらの入力値に対応する上記所望する値
    に対して、上記ニューロンモデル間の結合係数を修正す
    る手段を有することを特徴とする情報処理システム。
  4. 【請求項4】上記ウェハスケール集積回路の複数の機能
    ブロックは、物理的に決まる絶対的なアドレスと外部か
    ら設定する論理的なアドレスにより、外部からアクセス
    する請求項3記載の情報処理システム。
  5. 【請求項5】上記第1の階層的ネットワークと上記第2
    の階層的ネットワークの1対1に対応する2つの上記機
    能ブロックは、上記論理的なアドレスを同一に設定し、
    上記論理的なアドレスにより対応付けを判別する請求項
    4記載の情報処理システム。
  6. 【請求項6】入力値を記憶する第1のメモリと、出力の
    所望する値を記憶する第2のメモリと、出力値を記憶す
    る第3のメモリと、複数の機能ブロックと、これら制御
    する制御回路を備え、上記機能ブロックは1つのニュー
    ロンモデルを計算する情報処理装置を有する情報処理シ
    ステムであって、 上記情報処理装置はホストコンピュータと接続され、上
    記ホストコンピュータは上記情報処理装置の初期設定を
    行い、上記情報処理装置を動作させたとき、上記出力値
    を記憶する第3のメモリから各ニューロンモデルの出力
    値を得て、上記動作中は上記ホストコンピュータを介在
    させず制御する手段を有することを特徴とする情報処理
    システム。
  7. 【請求項7】入力値を記憶する第1のメモリと、出力の
    所望する値を記憶する第2のメモリと、出力値を記憶す
    る第3のメモリと、複数の機能ブロックと、これらを制
    御する制御回路を備え、上記機能ブロックは1つのニュ
    ーロンモデルを計算する情報処理装置を有する情報処理
    システムであって、 上記情報処理装置はホストコンピュータと接続され、上
    記機能ブロックはニューロンモデルの出力値を計算する
    第1の機能と、ニューロンモデルの学習信号値を計算す
    る第2の機能を有し、動作時は上記第1の機能または上
    記第2の機能のどちらか一方の動作を行うように構成
    し、 上記ホストコンピュータは、上記機能ブロックを上記第
    1の機能または上記第2の機能として動作させるか、各
    々の上記機能ブロックを設定するように制御する手段を
    有することを特徴とする情報処理システム。
  8. 【請求項8】外部から信号を入力し上記信号を保持して
    出力する入力層、信号を入力しニューロン計算ユニット
    におけるニューロンモデルの出力値を計算して出力する
    第1の中間層、信号を入力しニューロン計算ユニットに
    おけるニューロンモデルの出力値を計算して出力する第
    1の出力層、上記第1の中間層又は上記第1の出力層の
    ニューロンモデルの重み値を修正する修正手段を備え、
    外部から信号を入力し、入力層、第1の中間層、第1の
    出力層の順に信号を処理し、ニューロンモデルの出力値
    を決定する第1のネットワークと、 学習信号を計算して出力する第2の出力層、上記修正手
    段の出力値と上記学習信号値を計算して出力する第2の
    中間層を備え、与えられた入力に対して期待される出力
    値を入力し、第2の出力層、第2の中間層の順に信号を
    処理し、学習信号値を決定する第2のネットワークと、 上記第1のネットワークと上記第2のネットワーク間
    で、相互にデータを通信する通信手段とを備え、 上記通信手段によって、上記第1のネットワークと上記
    第2のネットワーク間で、上記ニューロンモデルの出力
    値と上記学習信号値を通信することを通して、上記の修
    正手段により、上記ニューロンモデルの出力値と上記学
    習信号値の積に比例した値をニューロンモデルの重み値
    に加算することにより、上記重み値を修正する手段を有
    することを特徴とする情報処理システム。
JP4209163A 1992-08-05 1992-08-05 情報処理システム Pending JPH05197707A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4209163A JPH05197707A (ja) 1992-08-05 1992-08-05 情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4209163A JPH05197707A (ja) 1992-08-05 1992-08-05 情報処理システム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2284235A Division JPH07101415B2 (ja) 1989-10-25 1990-10-24 情報処理装置及びその学習方法

Publications (1)

Publication Number Publication Date
JPH05197707A true JPH05197707A (ja) 1993-08-06

Family

ID=16568372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4209163A Pending JPH05197707A (ja) 1992-08-05 1992-08-05 情報処理システム

Country Status (1)

Country Link
JP (1) JPH05197707A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304617A (ja) * 2001-04-04 2002-10-18 Pacific Systems Corp 反応型情報処理装置
US6654730B1 (en) 1999-12-28 2003-11-25 Fuji Xerox Co., Ltd. Neural network arithmetic apparatus and neutral network operation method
JP2017130221A (ja) * 2015-10-23 2017-07-27 株式会社半導体エネルギー研究所 半導体装置及び電子機器
JP2020046821A (ja) * 2018-09-18 2020-03-26 株式会社東芝 ニューラルネットワーク装置
JP2020149625A (ja) * 2019-03-15 2020-09-17 株式会社東芝 演算装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6654730B1 (en) 1999-12-28 2003-11-25 Fuji Xerox Co., Ltd. Neural network arithmetic apparatus and neutral network operation method
JP2002304617A (ja) * 2001-04-04 2002-10-18 Pacific Systems Corp 反応型情報処理装置
JP2017130221A (ja) * 2015-10-23 2017-07-27 株式会社半導体エネルギー研究所 半導体装置及び電子機器
US10922605B2 (en) 2015-10-23 2021-02-16 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and electronic device
US11893474B2 (en) 2015-10-23 2024-02-06 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and electronic device
US12387093B2 (en) 2015-10-23 2025-08-12 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and electronic device
JP2020046821A (ja) * 2018-09-18 2020-03-26 株式会社東芝 ニューラルネットワーク装置
US11455526B2 (en) 2018-09-18 2022-09-27 Kabushiki Kaisha Toshiba Neural network device
JP2020149625A (ja) * 2019-03-15 2020-09-17 株式会社東芝 演算装置

Similar Documents

Publication Publication Date Title
US5604840A (en) Information processing apparatus
US12147359B2 (en) AI accelerator apparatus using in-memory compute chiplet devices for transformer workloads
US5138695A (en) Systolic array image processing system
JP2746350B2 (ja) 学習機械シナプス・プロセッサ・システム装置
JP2001188767A (ja) ニューラルネットワーク演算装置及びニューラルネットワークの演算方法
US5564115A (en) Neural network architecture with connection pointers
JPH04293151A (ja) 並列データ処理方式
US5781702A (en) Hybrid chip-set architecture for artificial neural network system
JPH03251947A (ja) ニューロチップおよびそのチップを用いたニューロコンピュータ
CN112559046B (zh) 数据处理装置及人工智能处理器
EP0557997A2 (en) Information processing apparatus and information processing system
US12260223B2 (en) Generative AI accelerator apparatus using in-memory compute chiplet devices for transformer workloads
JPH05282272A (ja) ニューラルネットワーク並列分散処理装置
JPH0784975A (ja) 情報処理装置および学習演算処理方法
JPH05197707A (ja) 情報処理システム
CN110232441B (zh) 一种基于单向脉动阵列的堆栈式自编码系统及方法
JP2001117900A (ja) ニューラルネットワーク演算装置
JPH076146A (ja) 並列データ処理システム
JPH04316153A (ja) ニューロプロセッサ
JPH07101415B2 (ja) 情報処理装置及びその学習方法
JPH05159087A (ja) ニューロプロセッサ
JPH04237388A (ja) ニューロプロセッサ
JP2765903B2 (ja) 情報処理装置
JP2825133B2 (ja) 並列データ処理方式
CN112949834A (zh) 一种概率计算脉冲式神经网络计算单元和架构