JPH0451386A - ニューラルネットワーク及びその構築方法 - Google Patents

ニューラルネットワーク及びその構築方法

Info

Publication number
JPH0451386A
JPH0451386A JP2161908A JP16190890A JPH0451386A JP H0451386 A JPH0451386 A JP H0451386A JP 2161908 A JP2161908 A JP 2161908A JP 16190890 A JP16190890 A JP 16190890A JP H0451386 A JPH0451386 A JP H0451386A
Authority
JP
Japan
Prior art keywords
layer
neural network
input
data
adder
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
JP2161908A
Other languages
English (en)
Inventor
Yoshinobu Mita
三田 良信
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2161908A priority Critical patent/JPH0451386A/ja
Priority to EP91305363A priority patent/EP0461902B1/en
Priority to DE69130656T priority patent/DE69130656T2/de
Publication of JPH0451386A publication Critical patent/JPH0451386A/ja
Priority to US08/026,093 priority patent/US5719955A/en
Priority to US08/969,832 priority patent/US6243490B1/en
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 本発明は、各種処理に好適なニューラルネットワーク及
びその構築方法に関するものである。
[従来の技術] 近年、ニューラルネットワークによって各種処理を行な
うことが研究されている。
ニューラルネットワークを用いる処理では、処理精度を
向上させるために、各素子にニーロン)は多数の入力に
対して演算処理を施して出力を行なう。
[発明が解決しようとする課題] しかしながら、ニューラルネットワークを単純にハード
化すると、その回路規模は非常に大きいものとなってし
まうという問題があった。
[課題を解決するための手段および作用]上記課題を解
決するために、本発明のニューラルネットワークは、一
部の層における入力な0または1とし、当該層の重み係
数を2のべき乗または2のべき乗の和として、この層に
おける乗算と加算をシフト演算と加算により実現し、被
加算データにおいて桁の重なりのない複数の加算処理を
、同時に同一の加算器により行なう。
また、本発明ニューラルネットワークの他の形態は、一
部の層における入力な0又は1とし、当該層の重み係数
を2のべき乗または2のべき乗の和として、この層にお
ける乗算と加算をシフト演算と加算により実現し、デー
タを構成する桁に重なりのない複数のデータの加算を、
各データを同一データ中の当該桁部分として後段の処理
部に入力することにより行なう。
また、本発明のニューラルネットワークの構築方法は、
入力層、1つ以上の中間層及び出力層を有し、学習によ
り決定されたニューラルネットワークにおいて、0又は
1が入力されるある層の重み係数に対して、2のべき乗
または2のべき乗の和による近似値を求め、求められた
値を新たな重み係数とする乗算とその総和を求める演算
を、シフト演算と加算により実現し、被加算データにお
いて桁の重なりのない複数の加算処理を、同時に同一の
加算器により行なうように構成することを特徴とする。
また、本発明のニューラルネットワークの構築方法の他
の形態は、入力層、1つ以上の中間層及び出力層を有し
、学習により決定されたニューラルネットワークにおい
て、0又は1が人力されるある層の重み係数に対して、
2のべき乗または2のべき乗の和による近似値を求め、
求められた値を新たな重み係数とする乗算とその総和を
求める演算を、シフト演算と加算により実現し、ブタを
構成する桁に重なりのない複数のデータの加算を、各デ
ータを同一データ中の当該桁部分として後段の処理部に
入力することにより行なうように構成することを特徴と
する。
[実施例] 先ず、パックプロパゲーション型ニューラルネットワー
クにおける学習の手順を第5図を例として説明する。
第5図に示されたニューラルネットワークは、入力層i
、1層よりなる中間層J、出力層kによって構成されて
いる。
学習のためには、人力データと、それに対する理想出力
とを用意し、中間層にお←づる結合強度W、3、出力層
における結合強度W8、の初期値を適当に決定し、この
初期値に基づいて結合されたネットワークに、用意した
入力データを与え、中間層、出力層の順で処理されて出
力データを得る。ここまでが、第5図における■および
■の流れである。次に、得られた出力層よりの出力と、
用意した理想出力とを比較し、この比較により教師信号
を生成し、この教師信号によって、出力層における結合
強度W0を補正し、更に中間層における結合強度WJ、
を補正する。これが■および■の流れである。
以上が学習の1工程であり、この学習を繰り返すことに
より、結合強度W11、W□、が適切な値へと修正され
ていく。学習の結果、更新された結合強度がネッ1−ワ
ーク内に保持される。
上述の学習手順を、第4図のフローヂャートを用いて更
に詳細に説明する。
先ず、ステップS40]で、重み係数(結合強度)W、
1、WkJの初期値を勾える。ここでは、学習過程での
収束を考慮して、−0,5〜+0. 5の範囲の値を選
択する。
次に、ステップ5402で学習用の入力データ1out
(i)を選択し、ステップ5403でこのブタ1out
(i)を入力層にセットする。また、ステップ5404
で、人力データ1out(i)に対する理想出力(jd
eal out)を用意する。
そこで、ステップ5405で、中間層の出力jout(
j)を求める。
先ず、入力層よりのデータ1out(i)に中間層の重
み係数W J +を掛け、その総和Sump=を、Su
mp、+=ΣW J I (j、 i)*1out(i
)により計算し、次に、このSumpJにsigmoi
d関数を作用させて、j番目の中間層の出力jout(
j)を、 によって計算する。
次に、ステップ5406で、出力層の出力kout(k
)を求める。この手順はステップ8406と同様である
すなわち、中間層からの出力jout(j)に出力層の
重み係数WkJを掛け、その総和Sumphを、SIJ
mpk−ΣWh、+(k、j)*jout(j)により
計算し、次に、このSumpHにsigmoid関数を
作用させて、k番目の中間層の出力kout(k)を、 によって計算する。なお、この出力値は正規化されてい
る。また、一般には、出力層の素子数は複数であるが、
第5図の例では、1個だけとしている。
次に、ステップ5407では、以上により得られた出力
kout、(k)と、ステップ5404で用意した理想
出力1deal out(k)とを比較し、出力層の教
師信号teach k(k)として、 teach k(k) = (ideal out(k
) −kout(k))*kout(k)*(1−ko
ut(k))を求める。ここで、kout(k)*(1
−kout(k))は、sigmoid関数kout 
(k)の微分の意義を有する。
次に、ステップ5408で、出力層の重み係数の変化幅
△Wm;(k、j)を、 △Wk1(k、j) =β*jout(j)*teac
h k(k)+α*△W y h (k、 J) により計算する。ここで、αは安定化定数、βは学習定
数と呼ばれる定数であり、急激な変化を押える役割を果
たしている。
ステップ5409では、この変化幅に基づいて、重み係
数Wi、J(k、j)を、 WkJ(k、j) =WkJ(k、j)+△wk、(k
、j)と、更新する。すなわち学習を行なう。
次に、ステップ5410で、中間層の教師信号teac
h j(j)を計算する。そのために、先ず、SIJm
aJ=Σteach k(k)* WkJ(j+i)に
基づいて、出力層から、中間層の各素子への逆方向の寄
与を計算する。次にこのSumn、+から、中間層の教
師信号teach j(jlを以下の式により演算する
teach j(j) = 、jout(j)”(1−
jout(j)l*sumBJ次に、ステップ5411
で、中間層の重み係数の変化幅△W J l (j、 
i)を、△W4+(j、i) =β崎out(i)*t
each j(j)+α*△WJ、(j、i) により計算する。
ステップ5412では、この変化幅に基づいて、重み係
数WJI(j、i)を、 W、+:(j、i) =W、、(j、i)+△WJl(
j、i)と、更新する。すなわち学習を行なう。
こうして、ステップ8401〜412により、1組の入
力データとこれに対する理想出力とから、重み係数WJ
、とW w iとが1回学習された。
ステップ5413では、以上のような学習を全入力デー
タにつき行なったかを調べ、未だの場合は、ステップ8
401〜412を繰り返す。
ステップ5414では、所定の学習回数に達したかを調
べ、不足の場合は、ステップ3401〜413を繰り返
す。
以上がパックプロパゲーション法に基づいたニューラル
ネットワークの学習手順の説明である。
本発明では、以上のようにして確立されたニュラルネッ
トワークの中間層において、重み係数を乗じる部分を、
次のように変形する。
〈方法1〉 各WJlについて、2のべき乗(2″)の中で最も値が
近いものを新しくW4.とする。
〈方法2〉 各WJ、について、所定個以下の2のべき乗の和の全て
の組み合わせ(1個を含む)の中で最も値が近いものを
新しく W h 、とする。
く方法3〉 許容される最大誤差△Eを先ず設定する。
各W、□について、2のべき乗のうちで、WJlと最も
値が近いものとの差が△E以下であれば、それを新しく
 WJlとする。
△E以下でない場合は、2のべき乗2個の和の中でW4
.と最も値が近いものとの差が△E以下であれば、それ
を新しくW、、とする。
これも△E以下でない場合は、更に、3個の和、4個の
和、・・・と順に増やしていき、△E以下となるものが
得られるまで続ける。
以上の方法1〜3において、WJlが2のべき乗2″と
なる場合は、入力にW、1を乗じる演算は、人力なnだ
けシフトすることにより実現される。
また、方法2または3において、WJ。が2のべき乗の
和、例えば2′″+2″+2′となる場合は、入力にW
JIを乗じる演算は、入力をそれぞれn、m、1だけシ
フトしたものの和をとることにより実現される。
従って、重み係数の乗算部分は、シフト演算、またはシ
フト演算と加算とにより達成される。
しかしながら、上述の方法によれば、WJ、を、学習で
得られた値に近いながらも、それとは異なる値とするた
めに、出力層で得られる値にも、若干の誤差が生じる。
その誤差が、ニューラルネットワークとしての許容範囲
外であれば、新しい重み係数WJ1を固定して再学習を
行なってもよい。
再学習のフローチャートを第5図に示す。
第5図は、第4図における中間層の重み係数の更新に必
要なステップ8410〜5412が省略されている点で
第4図と異なり、他は同じように学習を行なう。従って
、固定された重み係数W4に基づく中間層よりの出力に
対して、出力層の重み係数W□だけが再学習され、出力
層よりの出力の誤差が低減される。
本発明に係るニューラルネットワークの回路構成につい
て、更に詳細に説明する。
第2図は、中間層における1個のニューロンによる処理
を実現する中間部である。
BFはピッI・シフト部であり、人力信号を配線上シフ
トして加算器ADに入力させるものであり、実際の回路
があるわけではない。また、ADではシフトされた入力
を加算し、sigmoid関数テブルFTでは、ADに
よる加算結果に対してsigmoid関数を作用させた
結果が得られる。
第3図は、ニューラルネットワークの全体構成例である
第3図(a)は、3×3領域の2値画像をニューラルネ
ットワークの入力とする場合の入力部の例である。
先ず、入力された2値デークは、ラインバッファL B
 1で1ライン分の遅延が行なわれ、次にラインバッフ
ァLB2において、もう1ライン分の遅延が行なわれ、
合計2ライン分の遅延が行なわれる。遅延されていない
データ、1ライン分及び2ライン分遅延されたデータは
、それぞれ、ラッチLT3〜5にラッチされて1画素分
遅延され、その出力はラッチL76〜8により、更に1
画素分の遅延を受ける。これらによる出力は、水平ライ
ン方向、および垂直画素方向に連続する3×3の領域の
2値データとして、2値PTデタとなる。
2値PTデークは、中間部に入力される。中間部では、
第2図につき説明したように、ビットシフト う。中間部の出力は、乗算器に人力され、出力層の重み
係数W kJが乗じられ、各乗算器の出力は、加算器に
より全て加算される。加算器による加算結果は、関数演
算部FTによるテーブル変換により、対応するsigm
oid関数値を最終結果として得る。
以上のように、本発明によれば、ニューロンにおける乗
算を、ビットシフトまたは、ビットシフトなる。
次に、本発明では、以上説明した中間部への人力がOと
1の2値データである場合に限定して、具体的な回路構
成を簡単にすることを考える。
第2図において、加算器ADでは、それぞれビットシフ
ト部BFのシフトによって得られる全ての桁についての
加算に対応するために、例えば8〜10ビット程度の規
模でなくてはならない。
従って、加算器ADの小規模化が未だ十分ではない。
本発明では、ビットシフト部BFへの入力が0又は1の
場合、出力はシフトされた桁における0又は1の1ビツ
トであり、nビット加算器の出力は、高々1桁上までの
n+1ビット(特に入力が1ビツトなら、出力は2ビツ
ト)であることを利用し、以下の規則に基づいて、加算
器ADの回路規模を小さくする。
規則1:ビットシフト部BFの出力を加算する際に、シ
フト量の異なる出力をまとめて1つのデータとし、多数
ビットの加算器で加算する。
規則2.シフト量が同一の出力同士を加算する。
規則3:加算器の出力を更に加算する際に、出力値域(
桁)の重ならないものを1つにまとめる。
規則4:加算器の出力の加算とビットシフト部の出力の
加算でも、桁の重ならないものは1つにまとめて加算す
る。
規則5:加算器では、桁がなるべく多く重なるブタ同士
の加算を行なう。
以上の規則に基づいて、加算を行なう回路の例を第1図
に示す。
なお、前述した如く、中間層の重み係数の乗算において
、重み係数が2のべき乗となる場合には、乗算はビット
シフト部1つ、重み係数が2のべき乗の和となる場合に
は、乗算は複数のビットシフト部とそれを加算するため
の加算器とからなるが、中間層の出力としては、入力デ
ータに各重み係数を乗じたものの総和(に対するsig
moid関数の値)を必要としているだけなので、各シ
フト結果は、最終的に加算されれば、重み係数に対応す
る組み合わせによらずに、その順序や組み合わせを自由
に選択することができる。
第1図において、ビットシフト部BF51〜57に対す
るSfはシフト量を示し、s f=nならば、入力は2
°倍され、左に9桁(n<Oなら右にn1桁)シフトさ
れる。ここでは、ビットシフト部BF51〜57のシフ
ト量は、それぞれ、3、0、1、−1、2、・・・、1
、−1としている。
また、図中のd n ( n = − 2 、 − 1
 、−、 3 )nビットシフトされた桁のデータを示
している。
先ず、4ビツトの加算器58の八人力として、AOには
、sf=−1なる、あるBFの出力が入り、A1にはB
F52の出力(sf=o)、A2にはBF53の出力(
sf=1)、A3にはあるBFの出力(sf=2)がそ
れぞれ人力される。以上のAO−A3が1つのデータと
して八人力に与えられる。これは、(規則1)に従って
いる。
次に、B入力には、(規則5)に基づき、八人力のそれ
ぞれと同じ桁となるシフト量sf=−]〜2のデータを
、八人力と同様(規則1)に従ってまとめて与えるもの
とし、両者が加算される。
また、1ビットの加算器59では、(規則2)に従い、
共にsf=]である2つの入力が加算され、同様に、1
ビットの加算器60では、(規則2)に従い、共に5f
=−1である2つの入力が加算される。加算器59.6
0の出力は、それぞれd1〜d2、d−1〜dOであり
、重ならないので、(規則3)に従い、まとめられ、更
に(規則4)に従ってs f=3となるBFの出力とも
まとめられ、d−1〜d3なる5ビツトの入力として5
ビツト加算器61に入力される。
一方、4ビツト加算器58の出力もd−1〜d3であり
、(規則5)に従って、5ビツト加算器61に人力され
る。また、5ビツト加算器61の出力(d−1〜d4)
にも、(規則4)に従って5f=−2となる他のBFの
出力とまとめられる。
なお、図中には、回路の構成において、採用した(規則
1)〜(規則5)を■〜■で表わしている。
また、本発明においては、上述した(規則1)〜(規則
5)の適用に優先順位をつけるものではなく、規則を全
て利用することを要求したり、規則に当てはまらない部
分の存在を認めなかったりするものではない。
本発明では、入力は0又は1に限られ、これに対するビ
ットシフトの結果の加算のためには、高々数ビツト程度
の加算器で十分に演算が可能となる。従って、ニューラ
ルネットワークのハードウェアをLSIやゲートアレイ
で組むことが可能となる。
以上は、2値画像データの入力につき説明したが、2値
データは画像に限るものではない。
また、本実施例は、中間層の重み係数を例にとったが、
前段よりの人力が0又は1の2値であればよ(、例えば
、閾値関数による処理を行なうことにより、各層で適用
可能となる。
[発明の効果] 以上説明した如く、本発明によれば、ニューラルネット
ワークのニューロンにおける乗算を、ビットシフトまた
は、ビットシフトされたもの同士の和に置き換え、被加
算データにおいて桁の重なりのない複数の加算処理を、
同時に同一の加算器により行ない、あるいは、データを
構成する桁に重なりのない複数のデータの加算を、各デ
ータを同一データ中の当該桁部分として後段の処理部に
入力することにより行なうことにより、回路規模を小さ
くすることが可能となる。
【図面の簡単な説明】
第1図は、実施例のニューロンの回路構成図、第2図は
、実施例のニューロンのブロック構成図、 第3図は、実施例のニューラルネットワークの全体構成
図、 第4図は、ニューラルネットワークの学習手順のフロー
ヂャート、 第5図は、ニューラルネットワークの概念図、第6図は
、再学習手順のフローヂャートであ1.2・・・ライン
バッファ 3〜8・・・ラッチ 58・・・4ビツト加算器 59.60・・・1ビツト加算器 61・・・5ビツト加算器 BF・・・ビットシフト部 AD・・・加算器 FT・・・関数演算部

Claims (5)

    【特許請求の範囲】
  1. (1)入力層、1つ以上の中間層及び出力層を有するニ
    ューラルネットワークであって、一部の層における入力
    を0又は1とし、当該層の重み係数を2のべき乗または
    2のべき乗の和として、この層における乗算と加算をシ
    フト演算と加算により実現し、被加算データにおいて桁
    の重なりのない複数の加算処理を、同時に同一の加算器
    により行なうことを特徴とするニューラルネットワーク
  2. (2)入力層、1つ以上の中間層及び出力層を有するニ
    ューラルネットワークであって、一部の層における入力
    を0または1とし、当該層の重み係数を2のべき乗また
    は2のべき乗の和として、この層における乗算と加算を
    シフト演算と加算により実現し、データを構成する桁に
    重なりのない複数のデータの加算を、各データを同一デ
    ータ中の当該桁部分として後段の処理部に入力すること
    により行なうことを特徴とするニューラルネットワーク
  3. (3)入力層、1つ以上の中間層及び出力層を有し、学
    習により決定されたニューラルネットワークにおいて、
    0または1が入力されるある層の重み係数に対して、2
    のべき乗または2のべき乗の和による近似値を求め、求
    められた値を新たな重み係数とする乗算とその総和を求
    める演算を、シフト演算と加算により実現し、被加算デ
    ータにおいて桁の重なりのない複数の加算処理を、同時
    に同一の加算器により行なうように構成することを特徴
    とするニューラルネットワークの構築方法。
  4. (4)入力層、1つ以上の中間層及び出力層を有し、学
    習により決定されたニューラルネットワークにおいて、
    0または1が入力されるある層の重み係数に対して、2
    のべき乗または2のべき乗の和による近似値を求め、求
    められた値を新たな重み係数とする乗算とその総和を求
    める演算を、シフト演算と加算により実現し、データを
    構成する桁に重なりのない複数のデータの加算を、各デ
    ータを同一データ中の当該桁部分として後段の処理部に
    入力することにより行なうように構成することを特徴と
    するニューラルネットワークの構築方法。
  5. (5)前記重み係数を、求められた2のべき乗または2
    のべき乗和による近似値に固定して再学習を行ない、当
    該重み係数以外の係数を更新することを特徴とする請求
    項第3項または第4項記載のニューラルネットワークの
    構築方法。
JP2161908A 1990-06-14 1990-06-19 ニューラルネットワーク及びその構築方法 Pending JPH0451386A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2161908A JPH0451386A (ja) 1990-06-19 1990-06-19 ニューラルネットワーク及びその構築方法
EP91305363A EP0461902B1 (en) 1990-06-14 1991-06-13 Neural network
DE69130656T DE69130656T2 (de) 1990-06-14 1991-06-13 Neuronale Netzwerke
US08/026,093 US5719955A (en) 1990-06-14 1993-03-04 Data processing using neural networks having conversion tables in an intermediate layer
US08/969,832 US6243490B1 (en) 1990-06-14 1997-11-13 Data processing using neural networks having conversion tables in an intermediate layer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2161908A JPH0451386A (ja) 1990-06-19 1990-06-19 ニューラルネットワーク及びその構築方法

Publications (1)

Publication Number Publication Date
JPH0451386A true JPH0451386A (ja) 1992-02-19

Family

ID=15744307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2161908A Pending JPH0451386A (ja) 1990-06-14 1990-06-19 ニューラルネットワーク及びその構築方法

Country Status (1)

Country Link
JP (1) JPH0451386A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108205700A (zh) * 2016-12-20 2018-06-26 上海寒武纪信息科技有限公司 神经网络运算装置和方法
JP2020107012A (ja) * 2018-12-27 2020-07-09 ルネサスエレクトロニクス株式会社 演算処理装置および機械学習方法
JP2022505356A (ja) * 2018-10-19 2022-01-14 中興通訊股▲ふん▼有限公司 データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108205700A (zh) * 2016-12-20 2018-06-26 上海寒武纪信息科技有限公司 神经网络运算装置和方法
JP2022505356A (ja) * 2018-10-19 2022-01-14 中興通訊股▲ふん▼有限公司 データ処理方法及び装置、コンピュータで読み取り可能な記憶媒体
JP2020107012A (ja) * 2018-12-27 2020-07-09 ルネサスエレクトロニクス株式会社 演算処理装置および機械学習方法

Similar Documents

Publication Publication Date Title
JPH0713950A (ja) 人工ニューロンおよびその使用方法
US5630023A (en) Signal processor
Yam et al. Extended least squares based algorithm for training feedforward networks
JPH02193251A (ja) エラー後方伝ぱん法と神経網システム
JP2006154992A (ja) ニューロプロセッサ
JPH0451384A (ja) ニューラルネットワークの構築方法
JPH06259585A (ja) ニューラルネットワーク装置
JPH07191950A (ja) 計算ネットワーク
JPH0451386A (ja) ニューラルネットワーク及びその構築方法
JP3374476B2 (ja) ニューラルネットワーク構築方法
US5347613A (en) MOS multi-layer neural network including a plurality of hidden layers interposed between synapse groups for performing pattern recognition
JPH04229362A (ja) 学習機械
JPH076146A (ja) 並列データ処理システム
JPH07210534A (ja) ニューラルネットワーク
JP3328953B2 (ja) 非線形シナプスニューロン、そのデバイス及びそれを用いた予測方法
JP3262340B2 (ja) 情報処理装置
JPH07210542A (ja) ニューロン回路
JP3137996B2 (ja) メンバシップ関数を用いたニューラルネットワーク及びその学習方式
JPH04112355A (ja) 自己学習型アナログ方式ニューロン回路
JP3082530B2 (ja) ニューラルネットワーク回路
JPH0451383A (ja) ニューラルネットワーク
JP3253613B2 (ja) 信号処理装置
JP3393511B2 (ja) 文字認識装置及び方法
JP2744299B2 (ja) 演算処理装置及び方法
JPH06131482A (ja) アナログニューラルネットワーク回路