DE4239308C2 - Neuronetzeinheit und Betriebsverfahren dafür - Google Patents

Neuronetzeinheit und Betriebsverfahren dafür

Info

Publication number
DE4239308C2
DE4239308C2 DE4239308A DE4239308A DE4239308C2 DE 4239308 C2 DE4239308 C2 DE 4239308C2 DE 4239308 A DE4239308 A DE 4239308A DE 4239308 A DE4239308 A DE 4239308A DE 4239308 C2 DE4239308 C2 DE 4239308C2
Authority
DE
Germany
Prior art keywords
synapse
neuron
signal
units
neural network
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.)
Expired - Fee Related
Application number
DE4239308A
Other languages
English (en)
Other versions
DE4239308A1 (en
Inventor
Yutaka Arima
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE4239308A1 publication Critical patent/DE4239308A1/de
Application granted granted Critical
Publication of DE4239308C2 publication Critical patent/DE4239308C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06JHYBRID COMPUTING ARRANGEMENTS
    • G06J1/00Hybrid computing arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Fuzzy Systems (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

Die Erfindung betrifft eine Neutronetzeinheit zur elektronischen Realisierung eines Neuronalen Netzes nach dem Oberbegriff des Patentanspruches 1. Die Erfindung betrifft ebenfalls ein Betriebs­ verfahren für eine Neuronetzeinheit mit einer Mehrzahl von Neuro­ neneinheiten nach dem Oberbegriff des Patentanspruches 16 oder des Patentanspruches 22.
Unter verschiedenen Rechenverfahren, die lebende Zellen (Neuronen) modellieren, gibt es eine parallele Informationsverarbeitungsmaschine, die als Boltzmann-Maschine bezeichnet wird. Die Boltzmann-Maschine, 1985 vorgeschlagen von D. H. Ackley et al., ist eine Art eines mathematischen Modells, das ein Neuronales Netz ausdrückt, das durch stochastische Übergänge der Neuronenzustände charakterisiert ist. Wenn die Kopplungsstärke (im weiteren als Synapsengewichtung bezeichnet) Wÿ zwischen Neuronen i und j symmetrisch (Wÿ = Wji) ohne Selbstkopplung (Wii = 0) ist, wird die stationäre Verteilung p(z) des Systems (Neuronalen Netzes) durch die folgende Boltzmann-Verteilung gegeben, vorausgesetzt, daß ein die Temperatur des Systems ausdrückender Parameter T einen endlichen Wert aufweist:
p(z) = c · exp(-(U(z)/T)
worin U(z) die Potentialfunktion des Systems, z den von den Neuronen im System eingenommenen Zustand und C einen Normierungskoeffizienten darstellen.
Mit der Einführung der oben erwähnten Wahrscheinlichkeit hinsichtlich der Bestimmung der Neuronenzustände wird erwartet, daß das Neuronale Netz nicht von lokalen Minima der Zustandsenergie gefangen wird, sondern auf ein globales Minimum hin konvergiert. Mit anderen Worten wird erwartet, daß eine Lösung gefunden werden kann, die am wahrscheinlichsten ist. Die Boltzmann-Maschine, die zum Lösen eines komplizierten Kostenproblems, nicht-algorithmischer Probleme, wie z. B. Mustererkennung, und assoziativer Speicher geeignet ist, steht im Gegensatz zu einer Turing-Maschine, die zum Lösen von Problemen Algorithmen erfordert.
Im Zusammenhang mit einer Vorrichtung, die eine solche Boltzmann- Maschine effizient ausdrücken kann, sind bereits mehrere Versuche unternommen worden, um ein stark paralleles Verarbeitungssystem zu implementieren, das ein Neuronales Netz durch eine integrierte Halbleiterschaltung modelliert. Bevor Struktur und Betrieb einer solchen integrierten Halbleitereinrichtung für ein Neuronales Netz (im weiteren als Neuronetz-Halbleitereinrichtung bezeichnet) diskutiert werden, wird nun kurz das Arbeitsprinzip der Boltzmann- Maschine beschrieben.
Fig. 29 zeigt die Struktur und das Arbeitsprinzip eines allgemeinen Neuronenmodells. Wie in Fig. 29 gezeigt ist, weist eine Neuroneneinheit i einen Eingangsabschnitt A′, der Ausgangssignale (Zustandssignale) Sk, Sj und Sm von anderen Einheiten k, j und m empfängt, einen Umwandlungsabschnitt B′, der die vom Eingangsabschnitt A′ empfangenen Signale in Übereinstimmung mit einer vorbestimmten Regel umwandelt, und einen Ausgangsabschnitt C′, der ein vom Umwandlungsabschnitt empfangenes Signal ausgibt, auf.
Der Eingangsabschnitt A′ weist hinsichtlich der Neuroneneinheiten k, j und m vorbestimmte Synapsengewichtungen W auf (Synapsengewichtungen werden im folgenden allgemein mit dem Symbol W bezeichnet). Zum Beispiel wird im Eingangsabschnitt A′ das Ausgangssignal Sk von der Neuroneneinheit k mit einer Synapsengewichtung Wik in Wik * Sk umgewandelt und zum Umwandlungsabschnitt B′ übertragen.
Der Umwandlungsabschnitt B′ feuert, wenn die Gesamtsumme der vom Eingangsabschnitt A′ empfangenen Signale eine bestimmte Bedingung erfüllt, und überträgt ein Signal an den Ausgangsabschnitt C′. In einer solchen Neuroneneinheit, die eine lebende Zelle modelliert, entspricht der Eingangsabschnitt A′ einem Dendrit und der Umwandlungsabschnitt B′ dem Körper einer Nervenzelle, während der Ausgangsabschnitt C′ einem Axon entspricht.
Bei diesem Neuronenmodell wird angenommen, daß jede Neuroneneinheit zwei Zustände Si=0 (nicht-feuernder Zustand) und Si=1 (feuernder Zustand) annehmen kann. Jede Neuroneneinheit aktualisiert ihren Zustand in Abhängigkeit von den empfangenen Eingangssignalen. Das Gesamteingangssignal der Neuroneneinheit i ist folgendermaßen definiert:
Ui = ΣWÿ * Sj + Wii.
Diese Gesamtsumme Σ wird für j erhalten. Es wird hier eine symmetrische Synapsenkopplung Wÿ=Wji angenommen, während -Wii dem Schwellenwert der Neuroneneinheit i entspricht. In Fig. 29 ist angenommen, daß dieser Schwellenwert gleich null ist.
Die Zustände der Neuroneneinheiten werden stochastisch und zwischen den Einheiten asynchron aktualisiert. Wenn die Neuroneneinheit i ihren Zustand aktualisiert, ist der neue Zustand mit der folgenden Wahrscheinlichkeit p(Si=1) der Zustand 1:
p(Si=1) = 1/(1+exp(-Ui/T))
worin T einen Parameter darstellt, der ähnlich wie die Temperatur in einem physikalischen System wirkt und einen positiven Wert annimmt. Dieser Parameter wird im allgemeinen als "Temperatur" bezeichnet.
Fig. 30 zeigt die Beziehung zwischen der Gesamtsumme Ui der Eingangssignale und der Wahrscheinlichkeit p(Si=1) für verschiedene Temperaturen T. Wie aus Fig. 30 ersichtlich ist, nimmt die Neuroneneinheit i entweder "0" oder "1" mit einer Wahrscheinlichkeit von 1/2 statistisch an, wenn die Temperatur T hoch ist. Wenn die Temperatur T andererseits ungefähr gleich null ist, folgt die Neuroneneinheit i im wesentlichen entscheidungstheoretisch einer Schwellenlogik, bei der der Zustand gleich "1" ist, wenn die Gesamtsumme der Eingangssignale einen vorbestimmten Schwellenwert überschreitet.
Der Zustand der Boltzmann-Maschine zu einem bestimmten Zeitpunkt wird durch Kombination von EIN (feuernde Zustände: S=1) und AUS (nicht-feuernde Zustände: S=0) aller Einheiten ausgedrückt, wobei S allgemein die Ausgangssignale der Neuroneneinheiten darstellt. Ein System, das in einem bestimmten Zustand ist, weist eine Energie E auf, die folgendermaßen definiert ist:
E = -ΣWÿ * Si * Sj.
Die Gesamtsumme Σ wird für alle Indizes i und j ausgeführt, die die Relation i<j erfüllen. In der oben angeführten Gleichung wird angenommen, daß der Schwellenwert der jeweiligen Neuroneneinheit gleich null ist. Ein solcher Zustand wird durch Bilden einer Einheit implementiert, die normalerweise für jede Neuroneneinheit in einem EIN-Zustand ist (S=1), und deren Kopplungsstärke gleich dem Schwellenwert jeder zugehörigen Einheit mit umgekehrtem Vorzeichen ist.
Wenn die jeweiligen Neuroneneinheiten den Betrieb beginnend mit beliebigen Anfangszuständen fortsetzen, nähert sich die Boltzmann- Maschine einem stochastischen Gleichgewichtszustand an, der durch die Synapsengewichtungen W der jeweiligen Neuroneneinheiten bestimmt wird. Wie oben beschrieben worden ist, nimmt die Boltzmann-Maschine einen Zustand α mit der folgenden Wahrscheinlichkeit P(α) an:
P(α) = C * exp(-Eα/T),
worin Eα die Energie des Neuronalen Netzes im Zustand α angibt.
In einer solchen Boltzmann-Maschine wird ein Verfahren mit der Bezeichnung simuliertes Glühen (Simulated Annealing) benutzt, um das globale Energieminimum zu erreichen. Die relative Wahrscheinlichkeit von zwei globalen Zuständen α und β wird folgendermaßen ausgedrückt:
P(α)/P(β) = exp(-(Eα-Eβ)/T).
Der Zustand minimaler Energie hat bei einer beliebigen Temperatur die höchste Wahrscheinlichkeit. Im allgemeinen dauert es lange, um den thermischen Gleichgewichtszustand zu erreichen, und daher wird es als bevorzugt angesehen, das Glühen von einer hohen Temperatur aus zu starten und die Temperatur allmählich zu reduzieren. Im allgemeinen ist dieser Zustandsübergang ähnlich einem Zustand, bei dem jedes Kristallatom eines Kristallgitters in eine Position gebracht wird, die den Zustand minimaler Energie bei einer gegebenen Temperatur liefert.
In der Boltzmann-Maschine ist es notwendig, solche Gewichte zu finden, d. h. Synapsengewichtungen W, daß das Netz selbst eine Wahrscheinlichkeitsverteilung von Eingangs-/Ausgangsdaten implementieren kann, die so korrekt wie möglich ist, ohne daß eine solche Verteilung extern geliefert wird. Im allgemeinen wird die Grundgleichung einer Lernregel, die zum Einstellen solcher Synapsengewichtungen W verwendet wird, folgendermaßen ausgedrückt:
ΔWÿ = η * (p⁺ÿ-p-ÿ) (1)
worin η einen Koeffizienten darstellt, der den Umfang der Korrektur der Synapsengewichtung W in einem einzelnen Lernzyklus angibt und positiv ist, p⁺ÿ einen solchen Erwartungswert darstellt, daß die Zustände beider Neuroneneinheiten i und j gleich "1" sind (feuernder Zustand), wenn das Neuronale Netz von einer extern zugeführten Lerninformation getrieben wird, um einen Gleichgewichtszustand zu erreichen, und p⁻ÿ einen solchen Erwartungswert darstellt, daß die Zustände beider Neuroneneinheiten i und j gleich "1" sind, wenn keine Lerninformation extern zugeführt wird.
In der oben angeführten Gleichung (1) gibt der Term p⁺ÿ an, daß die Verbindung zwischen den zugehörigen Neuroneneinheiten i und j verstärkt wird, wenn beide aktiviert werden. Das entspricht einem verstärkten Lernvorgang der Synapsenkopplung, die als Hebbsche Lernregel bezeichnet wird.
Andererseits gibt der Term p⁻ÿ an, daß die Verbindung (Synapsengewichtung Wÿ) zwischen den zugehörigen Neuroneneinheiten i und j abgeschwächt (reduziert) wird, wenn beide ohne externes Ausgangssignal aktiviert werden. Das wird allgemein als Antilernen bezeichnet. Ein Lernalgorithmus in der Boltzmann-Maschine wird nun kurz beschrieben.
Der Lernalgorithmus in der Boltzmann-Maschine weist einen Vorgang 1 (Plus- (+) Phase), einen Vorgang 2 (Minus- (-) Phase) und einen Vorgang 3 auf.
(I) Vorgang 1 (Plus-Phase)
Zustände von Eingangseinheiten und Ausgangseinheiten (sichtbare Einheiten) werden auf vorbestimmten Mustern, die durch Eingangsdaten und Ausgangsdaten (Lerndaten) dargestellt werden, entsprechend den Mustererscheinungswahrscheinlichkeiten fixiert. Der Vorgang 1 weist (a) einen Glühvorgang, (b) einen Datensammlungsprozeß und (c) einen Prozeß zur Erhaltung von p⁺ÿ auf. Im Glühvorgang (a) werden die Zustände der jeweiligen Einheiten entsprechend jeweiligen Temperaturen T geändert, die den folgenden Gleichungen (2) und (3) gehorchen:
ΔEi = ΣWÿ * Sj (2),
Pi = 1/(1+exp(-ΔEi/T)) (3)
In der Gleichung (2) wird die Gesamtsumme Σ für den Index j ermittelt. Diese Gleichung (2) liefert eine Energielücke zwischen Zuständen Si entsprechend "0" und "1" der Einheit i bei der Energie E des gesamten Neuronalen Netzes.
Die Gleichung (3) liefert eine solche Wahrscheinlichkeit, daß die Einheit i einen neuen Zustand Si entsprechend "1" annimmt, wenn diese Energielücke auftritt. Im oben angeführten Prozeß (a) wird die Temperatur T, mit der bei einem hohen Wert begonnen wird, schrittweise vermindert. Wenn die Temperatur T vollständig auf einen niedrigen Wert vermindert worden ist und eine vorbestimmte Glühprozedur abgeschlossen ist, wird angenommen, daß sich das Neuronale Netz in einem Zustand relativ geringer Energie befindet, um einen thermischen Gleichgewichtszustand zu erreichen.
Der Datensammlungsprozeß (b) ergibt eine solche Anzahl, daß jeweilige Zustände S von Einheiten, die miteinander gekoppelt sind, gleich "1" sind, nachdem der Glühvorgang (a) eine vorbestimmte Anzahl mal wiederholt worden ist.
Der Prozeß (c) zur Erhaltung von p⁺ÿ wird ausgeführt, um einen Mittelwert von Daten, die im Prozeß (b) erhalten wurden, zu bekommen, nachdem der Glühvorgang (a) und der Datensammlungsprozeß (b) entsprechend einem Lernmuster eine vorbestimmte Anzahl mal wiederholt worden sind, um anzunehmen, daß der Mittelwert gleich p⁺ÿ ist.
(II) Vorgang 2 (Minus-Phase)
Der Vorgang 2 (Minus-Phase) weist in ähnlicher Weise einen Glühvorgang (a), einen Datensammlungsprozeß (b) und einen Prozeß zur Erhaltung von p⁻ÿ auf. Die Prozesse (a), (b) und (c) beim Vorgang 2 sind ähnlich denen beim Vorgang 1 (Plus-Phase). Beim Vorgang 2 (Minus-Phase) werden jedoch nur Zustände von Einheiten (Eingangseinheiten), die Eingangsdaten empfangen, entsprechend den Erscheinungswahrscheinlichkeiten von Lerndaten festgehalten. Beim Vorgang 2 werden die Prozesse (a), (b) und (c) so wiederholt, daß ein anschließend im Prozeß (c) erhaltener Mittelwert ähnlich wie beim Vorgang 1 als p⁻ÿ angenommen wird.
Im Vorgang 3 wird die Synapsengewichtung Wÿ entsprechend dem folgenden relationalen Ausdruck mit den erhaltenen Mittelwerten p⁺ÿ und p⁻ÿ geändert:
ΔWÿ = η * (p⁺ÿ - p⁻ÿ) (4)
Der Umfang einer Einzeländerung der Synapsengewichtung wird durch einen Koeffizienten η festgelegt, der eine positive Konstante darstellt. Wie sich aus dem oben angeführten Ausdruck (4) ergibt, wird der Umfang einer Änderung der Synapsengewichtung Wÿ nur von den Zuständen der zwei Einheiten (zugeordneten Einheiten) i und j bestimmt, die miteinander gekoppelt sind. Das letztendliche Ziel des Lernvorgangs ist es, daß der Umfang ΔWÿ der Änderung, der durch den Ausdruck (4) ausgedrückt wird, auf einen möglichst kleinen Wert konvergiert, idealerweise also auf null.
Es sind verschiedene Vorrichtungen im Zusammenhang mit einem Neuronalen Netz vorgeschlagen worden (als Boltzmann-Maschine bezeichnet), die die oben angeführte Lernfunktion aufweisen und durch eine elektronische Halbleiterschaltung implementiert werden. Die Erfinder et al. haben bereits eine integrierte Neuronetz- Halbleiterschaltung mit einer Struktur vorgeschlagen, die sowohl zur Integration geeignet ist als auch einen Hochgeschwindigkeitsbetrieb und eine hohe Lerneffizienz aufweist (siehe JP 03-80 379 A2).
Um das Verständnis von Struktur und Betrieb der später im Detail beschriebenen Neuronetzvorrichtung besser zu verstehen, wird nun die integrierte Neuronetz-Halbleiterschaltung, die vom Erfinder u. a. vorgeschlagen worden ist, etwas detaillierter beschrieben.
Fig. 31 zeigt eine beispielhafte Gesamtstruktur einer integrierten Neuronetz-Halbleiterschaltung, die vom Erfinder u. a. vorgeschlagen wurde. Die in Fig. 31 gezeigte integrierte Schaltungseinrichtung implementiert als Beispiel ein Neuronales Netz mit fünf Neuronen.
Wie in Fig. 31 dargestellt ist, weist die integrierte Neuronetz- Schaltungseinrichtung eine Spalte von fünf Neuroneneinheiten NU1, NU2, NU3, NU4 und NU5 sowie Synapsenschaltungen SY1 bis SY10, die im wesentlichen in der Form eines rechtwinkligen Dreiecks angeordnet sind, auf. Jeweilige Eingangsabschnitte der Neuroneneinheiten NU1 bis NU5 sind mit Dendritsignalleitungen DE1, DE2, DE3, DE4 bzw. DE5 verbunden.
Die jeweiligen Neuroneneinheiten NU1 bis NU5 vergleichen Signale auf den zugehörigen Dendritsignalleitungen DE1 bis DE5 mit darin enthaltener Glühinformation (Schwellenwerten), um auf der Basis der Vergleichsergebnisse Zustandssignale S1 bis S5 der Werte "1" oder "0" zu erzeugen.
Die integrierte Neuronetz-Schaltungseinrichtung weist ferner Axonsignalleitungen AX1, AX2, AX3, AX4 und AX5 auf, die Zustandssignale SI1, SI2, SI3, SI4 bzw. SI5 übertragen. Die Zustandssignale SI1 bis SI5 können extern zugeführte Eingangsdaten oder Ausgangssignale von Neuroneneinheiten, d. h. von einer anderen Schicht übergebene Zustandssignale, sein.
Jede der Synapsenschaltungen SY1 bis SY10 überträgt ein Signal W * S, das durch Gewichten des Zustandssignals SI (das Symbol SI bezeichnet die Zustandssignale SI1 bis SI5) von der zugehörigen Axonsignalleitung AX (das Symbol AX bezeichnet die Zustandssignale AX1 bis AX5) mit einer darin gespeicherten Synapsengewichtung W erhalten wird, an die entsprechende Dendritsignalleitung DE (das Symbol DE bezeichnet die Dendritsignalleitungen DE1 bis DE5). In der Boltzmann-Maschine, die das Model dieser integrierten Neuronetz- Halbleiterschaltung ist, ist die Synapsengewichtung W symmetrisch, so daß Wÿ=Wji gilt. Damit liefert jede Synapsenschaltung SY (das Symbol SY bezeichnet die Synapsenschaltungen SY1 bis SY10) zwei Synapsengewichtungen.
Die Axonsignalleitung AX1 ist mit ersten Axonsignal- Eingangsanschlüssen der Synapsenschaltungen SY1, SY2, SY3 und SY4 verbunden. Die Axonsignalleitung AX2 ist mit einem zweiten Axonsignal-Eingangsanschluß der Synapsenschaltung SY1 und ersten Axonsignal-Eingangsanschlüssen der Synapsenschaltungen SY5, SY6 und SY7 verbunden. Die Axonsignalleitung AX3 ist mit jeweiligen zweiten Axonsignal-Eingangsanschlüssen der Synapsenschaltungen SY2 und SY5 und jeweiligen ersten Axonsignal-Eingangsanschlüssen der Synapsenschaltungen SY8 und SY9 verbunden. Die Axonsignalleitung AX4 ist mit jeweiligen zweiten Axonsignal-Eingangsanschlüssen der Synapsenschaltungen SY3, SY6 und SY8 und einem ersten Axonsignal- Eingangsanschluß der Synapsenschaltung SY10 verbunden. Die Axonsignalleitung AX5 ist mit jeweiligen zweiten Axonsignal- Eingangsanschlüssen der Synapsenschaltungen SY4, SY7, SY9 und SY10 verbunden.
Die Dendritsignalleitung DE1 summiert Ausgangssignale von den jeweiligen ersten Dendritsignal-Ausgangsanschlüssen der Synapsenschaltungen SY1, SY2, SY3 und SY4 auf und überträgt das Ergebnis an die Neuroneneinheit NU1. Die Dendritsignalleitung DE2 summiert ein Ausgangssignal von einem zweiten Dendritsignal- Ausgangsanschluß der Synapsenschaltung SY1 und die Ausgangssignale von den jeweiligen ersten Dendritsignal-Ausgangsanschlüssen der Synapsenschaltungen SY5, SY6 und SY7 auf und überträgt das Ergebnis an die Neuroneneinheit NU2. Die Dendritsignalleitung DE3 summiert Ausgangssignale von jeweiligen zweiten Dendritsignal- Ausgangsanschlüssen der Synapsenschaltung SY2 und SY5 und die Ausgangssignale von den jeweiligen ersten Dendritsignal- Ausgangsanschlüssen der Synapsenschaltungen SY8 und SY9 auf und überträgt das Ergebnis an die Neuroneneinheit NU3.
Die Dendritsignalleitung DE4 summiert Ausgangssignale von jeweiligen zweiten Dendritsignal-Ausgangsanschlüssen der Synapsenschaltung SY3, SY6 und SY8 und das Ausgangssignal von einem ersten Dendritsignal- Ausgangsanschluß der Synapsenschaltungen SY10 auf und überträgt das Ergebnis an die Neuroneneinheit NU4. Die Dendritsignalleitung DE5 summiert Ausgangssignale von jeweiligen zweiten Dendritsignal- Ausgangsanschlüssen der Synapsenschaltung SY4, SY7, SY9 und SY10 auf und überträgt das Ergebnis an die Neuroneneinheit NU5. Die jeweiligen Neuroneneinheiten NU1 bis NU5 nehmen feuernde (S=1) oder nicht-feuernde (S=0) Zustände in Abhängigkeit von den Signalen ein, die über die entsprechenden Dendritsignalleitungen DE1 bis DE5 übertragen werden.
Fig. 32 zeigt ein Blockschaltbild, das schematisch die Struktur der in Fig. 31 gezeigten Synapsenschaltung SY darstellt. Wie in Fig. 32 gezeigt ist, weist die Synapsenschaltung SY eine Synapsengewichtungwert-Speicherschaltung 101, die eine Synapsengewichtungswertinformation speichert, eine Lernsteuerschaltung 110, die ein Synapsengewichtung-Korrektursignal in Abhängigkeit von zwei zugehörigen Zustandssignalen (Axonsignalen) Si und Sj in einem Lernmodus des Neuronalen Netzes erzeugt, eine Synapsengewichtung-Korrekturschaltung 103, die die in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherte Synapsengewichtungswertinformation in Abhängigkeit vom Synapsengewichtung-Korrektursignal korrigiert, eine Synapsenkopplungsschaltung 105, die das Zustandssignal Sj, das am zweiten Axonsignal-Eingangsanschluß empfangen wird, mit dem in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherten Synapsengewichtungswert gewichtet und das gewichtete Signal Wÿ * Sj zu einer Dendritsignalleitung DEj überträgt, und eine weitere Synapsenkopplungsschaltung 107, die den Synapsengewichtungswert, der in der Synapsengewichtungswert-Speicherschaltung 101 gespeichert wird, mit dem Zustandssignal Si (Axonsignal), das dem ersten Axonsignal-Eingangsanschluß zugeführt wird, multipliziert, um ein Signal Wÿ * Si auf einer weiteren Dendritsignalleitung DEi zu erzeugen, auf.
Die von der Synapsenschaltung SY ausgedrückte Synapsengewichtung ist symmetrisch, so daß Wji = Wÿ gilt. Diese Synapsengewichtungswertinformation wird in der Synapsengewichtungswert-Speicherschaltung 101 gespeichert. Die Synapsengewichtungswert-Speicherschaltung 101 weist einen Kondensator CA, der die Synapsengewichtungswertinformation in der Form elektrischer Ladungen speichert. Die im Kondensator CA gespeicherte Ladungsmenge ist kontinuierlich veränderbar, so daß der in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherte Synapsengewichtungswert in analoger Weise geändert werden kann.
Die Lernsteuerschaltung 110 weist einen Anschluß P, der ein Steuersignal Acp empfängt, das die Ausführung/Nicht-Ausführung des Lernens anzeigt, einen Anschluß C, der ein Signal C+/- empfängt, das die Lernphase angibt (Plus- oder Minus-Phase), einen Anschluß S1, der das Zustandssignal Si empfängt, einen weiteren Anschluß S2, der das andere Zustandssignal Sj empfängt, einen Anschluß Ip, der ein erstes Korrektursignal I als Impulssignal zum Erhöhen des Synapsengewichtungswerts, der in der Synapsengewichtungswert-Speicherschaltung 101 gespeichert ist, in Abhängigkeit von den Zustandssignalen Si und Sj im Lernmodus, und einen weiteren Anschluß Dp, der ein zweites Korrektursignal D′ als Impulssignal zum Reduzieren des Synapsengewichtungswerts, der in der Synapsengewichtungswert-Speicherschaltung 101 gespeichert ist, in Abhängigkeit von den Zustandssignalen Si und Sj im Lernmodus auf.
Die Synapsengewichtung-Korrekturschaltung 103 weist einen Anschluß V, der das erste Korrektursignal I empfängt, einen Anschluß L, der das zweite Korrektursignal D′ empfängt, und einen Ausgangsanschluß M, der ein Signal zum Einstellen des Synapsengewichtungswerts, der in der Synapsengewichtungswert-Speicherschaltung 101 gespeichert ist, in Abhängigkeit von den an den Anschlüssen V und L empfangenen Korrektursignalen I und D′ erzeugt, auf.
Der in der Synapsengewichtungswert-Speicherschaltung 101 vorhandene Kondensator CA weist eine erste Elektrode, die mit einem Knoten N verbunden ist, und eine zweite Elektrode, die mit einem Referenzpotential Vsp gekoppelt ist, auf. Die im Kondensator CA gespeicherte Ladungsmenge wird in Abhängigkeit vom Signal von der Synapsengewichtung-Korrekturschaltung 103 erhöht oder vermindert.
Jede der Synapsenkopplungsschaltungen 105 und 107, die in ihrer Struktur übereinstimmen, weist einen Zustandssignal-Eingangsanschluß Vs zum Empfangen des Zustandssignals S (Si oder Sj), einen Anschluß Vc zum Empfangen der Synapsengewichtungswertinformation, die in der Synapsengewichtungswert-Speicherschaltung 101 gespeichert ist, und einen Anschluß Io zum Ausgeben eines Stroms (im weiteren als Gewichtungsstrom oder gewichteter Strom bezeichnet), der das Produkt aus Zustandssignal S und Synapsengewichtungswert angibt, auf.
Fig. 33 zeigt eine beispielhafte Struktur der Lernsteuerschaltung 110 von Fig. 32. Wie in Fig. 33 gezeigt ist, weist die Lernsteuerschaltung 110 eine Inverterschaltung G2, die das Lernphase-Bestimmungssignal C+/- empfängt, eine 2-Eingangs-NAND- Schaltung G3, die die Zustandssignale Si und Sj empfängt, die den Eingangsanschlüssen S1 und S2 zugeführt werden, eine 2-Eingangs-NOR- Schaltung G4, die das Lernsteuersignal Acp, das dem Anschluß P zugeführt wird, und die Ausgangssignale von der Inverterschaltung G2 und der NAND-Schaltung G3 empfängt, und eine weitere 2-Eingangs-NOR- Schaltung G5, die das Lernsteuersignal Acp, das Lernphase- Bestimmungssignal C+/- und ein Ausgangssignal von der NAND-Schaltung G3 empfängt, auf. Die NOR-Schaltung G4 erzeugt das erste Korrektursignal I am Anschluß Ip, während die NOR-Schaltung G5 das zweite Korrektursignal D′ am Anschluß Dp erzeugt. Nun wird der Betrieb dieser Lernsteuerschaltung 110 beschrieben.
In einem nicht-lernenden Modus ist das Steuersignal Acp auf einem hohen Potentialpegel fixiert. In diesem Fall sind beide Ausgangssignale der NOR-Schaltungen G4 und G5 unabhängig von den Logikzuständen der Zustandssignale Si und Sj, die an den Anschlüssen S1 bzw. S2 empfangen werden, auf niedrigen Potentialpegeln fixiert, und es werden keine Steuersignale I und D′ erzeugt. Der in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherte Synapsengewichtungswert wird in diesem Fall nicht korrigiert.
Beim Lernen wird ein Impuls mit einer konstanten Periode und einer konstanten Impulsbreite an den Anschluß P als Lernsteuersignal Acp angelegt. In diesem Fall werden die an den Anschlüssen Dp und Ip erzeugten Korrektursignale in Abhängigkeit vom Lernphase- Bestimmungssignal C+/-, das am Lernsteuereingang C empfangen wird, umgeschaltet.
In der Plus-Phase wird das Lernphase-Bestimmungssignal C+/- auf einen hohen Pegel gesetzt, so daß das Ausgangssignal D′ der NOR- Schaltung G5 auf einem niedrigen Pegel fixiert ist. Das erste Korrektursignal I, das von der NOR-Schaltung G4 zum Anschluß Ip übertragen wird, ist ein invertiertes Signal des Impulssignals Acp, weil das Ausgangssignal der NAND-Schaltung G3 nur dann auf einen niedrigen Pegel abfällt, wenn die Zustandssignale Si und Sj beide auf einem hohen Pegel sind (feuernder Zustand: S=1). Die Synapsengewichtung-Korrekturschaltung 103 erhöht den in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherten Synapsengewichtungswert entsprechend der Impulsanzahl des ersten Korrektursignals I (ΔWji < 0).
In der Minus-Phase wird das Lernphase-Bestimmungssignal C+/- auf einen niedrigen Pegel gesetzt, so daß das Ausgangssignal I der NOR- Schaltung G4 auf einem niedrigen Pegel fixiert ist. Die NOR- Schaltung G5 wirkt in diesem Zustand als Inverterschaltung, weil das Ausgangssignal der NAND-Schaltung G3 nur dann auf einen niedrigen Pegel abfällt, wenn die Zustandssignale Si und Sj beide auf einem hohen Pegel sind, um ein invertiertes Signal des Impulssignals Acp als zweites Korrektursignal D′ zu erzeugen. Die Synapsengewichtung- Korrekturschaltung 103 vermindert den in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherten Synapsengewichtungswert in Abhängigkeit vom pulsierenden ersten Korrektursignal D′ (ΔWji < 0). Die Lernsteuerschaltung 110 implementiert nämlich die folgende Lernregel:
ΔW⁺ji = η * Si * Sj
ΔW-ji = -η * Si * Sj
worin η der Anzahl von Impulsen entspricht, die dem Anschluß P zugeführt werden.
Die Zeichen des Korrekturumfangs ΔW und der Koeffizient η entsprechend den Lernphasen.
Das Steuersignal Acp und das Lernphase-Bestimmungssignal C+/-, die an den Anschlüssen P und C empfangen werden, werden von einer (nicht gezeigten) externen Steuerschaltung zugeführt. Die Lernsteuerschaltung 110 ist entsprechend der jeweiligen Synapsenschaltung gebildet, um den Synapsengewichtungswert entsprechend der Lernphase nur dann zu erhöhen oder zu vermindern, wenn die zugehörigen zwei Zustandssignale Si und Sj beide im feuernden Zustand sind.
Fig. 34 zeigt die Strukturen der Synapsenkopplungsschaltung 107, die das Dendritsignal Wji · Si aus dem ersten Zustandssignal Si erzeugt und in der Synapsenschaltung von Fig. 32 gebildet ist. Die andere Synapsenkopplungsschaltung 105 weist dieselbe Struktur wie die in Fig. 34 dargestellte Synapsenkopplungsschaltung 107 auf.
Wie in Fig. 34 gezeigt ist, weist die Synapsenkopplungsschaltung 107 p-Kanal MOS-Transistoren (Feldeffekttransistoren mit isoliertem Gate) PT1 und PT2, die eine erste Strompfadschaltung bilden, p-Kanal MOS-Transistoren PT3 und PT4, die eine zweite Strompfadschaltung bilden, und einen p-Kanal MOS-Transistor PT5 sowie einen n-Kanal MOS-Transistor NT1, die eine dritte Strompfadschaltung bilden, auf.
Der p-Kanal MOS-Transistor PT5 und der n-Kanal MOS-Transistor NT1 sind in komplementärer Weise zwischen einen Referenzspannungsknoten (z. B. das Versorgungspotential) Vdd und einen Massepotentialknoten VGND geschaltet, um eine Inverterschaltung zu bilden, die das am Anschluß Vs empfangene Zustandssignal Si invertiert.
Die Source des p-Kanal MOS-Transistors PT1 ist mit dem Referenzspannungsknoten Vdd, das Gate mit einem Ausgangsknoten N2 der Synapsengewichtungswert-Speicherschaltung 101 und die Drain mit der Source des p-Kanal MOS-Transistors PT2 verbunden. Das Gate des p-Kanal MOS-Transistors PT2 ist mit einem Ausgangsknoten N10 der Inverterschaltung, die von den Transistoren PT5 und NT1 gebildet wird, und die Drain mit einem Synapsenkopplungsstrom-Ausgangsknoten Io verbunden.
Die Source des p-Kanal MOS-Transistors PT3 ist mit dem Referenzspannungsknoten Vdd, das Gate mit einem Vorspannungs- Versorgungsknoten Vb zum Zuführen der Vorspannung Vb und die Drain mit der Source des p-Kanal MOS-Transistors PT4 verbunden. Das Gate des p-Kanal MOS-Transistors PT4 ist mit dem Zustandssignal- Eingangsknoten Vs und die Drain mit dem Gewichtungsstrom- Ausgangsknoten Io verbunden. Der Referenzspannungsknoten und die dadurch übertragene Referenzspannung werden durch dasselbe Symbol bezeichnet.
Die Source des p-Kanal MOS-Transistors PT5 ist mit dem Referenzspannungsknoten Vdd, das Gate mit dem Zustandssignal- Eingangsknoten Vs und die Drain mit der Source des n-Kanal MOS- Transistors NT1 verbunden.
Die p-Kanal MOS-Transistoren in derselben Strompfadschaltung weisen dieselben Gate-Breiten, d. h. dieselben Leitfähigkeiten, auf. Die Gate-Breiten, d. h. die Leitfähigkeiten, der p-Kanal MOS-Transistoren in verschiedenen Strompfadschaltungen sind jedoch unterschiedlich. Die Gate-Breiten der p-Kanal MOS-Transistoren PT1 und PT2 z. B. sind nämlich zweimal so groß wie die Gate-Breiten der p-Kanal MOS- Transistoren PT3 und PT4. Damit kann die erste Strompfadschaltung, die von den Transistoren PT1 und PT2 gebildet wird, einen größeren Strom leiten als die zweite Strompfadschaltung, die von den Transistoren PT3 und PT4 gebildet wird.
Fig. 34 zeigt auch die Strukturen der Synapsengewichtung- Korrekturschaltung 103 und der Synapsengewichtungswert- Speicherschaltung 101. Bei der in Fig. 34 gezeigten Synapsengewichtungswert-Speicherschaltung 101 unterscheidet sich die Position des Kondensators von der in Fig. 32 gezeigten, während seine Wirkung mit der bei der Schaltung von Fig. 32 übereinstimmt.
Die Synapsengewichtungswert-Speicherschaltung 101 weist einen einzelnen Kondensator C0 auf. Eine Elektrode dieses Kondensators C0 ist mit dem Knoten N2 und die andere Elektrode mit einem Knoten N3 verbunden, der die Referenzspannung Vdd empfängt.
Die Synapsengewichtung-Korrekturschaltung 103 weist einen Kondensator C1, der zwischen den Eingangsanschluß V zum Empfangen des ersten Korrektursignals I und einen Knoten N5 geschaltet ist, einen weiteren Kondensator C2, der zwischen den Eingangsanschluß L zum Empfangen des zweiten Korrektursignals D und einen Knoten N6 geschaltet ist, Dioden D2 und D1, die zwischen dem Knoten N2 und dem Referenzspannungsknoten Vdd (Knoten N3) in Vorwärtsrichtung geschaltet sind, und Dioden D4 und D3, die zwischen dem Versorgungsknoten Vb (Knoten N1) und dem Knoten N2 in Vorwärtsrichtung geschaltet sind, auf.
Der Kondensator C1 und die Dioden D1 und D2 bilden einen Pfad zum Extrahieren positiver Ladungen, die im Knoten N2 des Kondensators C0 gespeichert sind, in Abhängigkeit vom ersten Korrektursignal I, das am Eingangsanschluß V empfangen wird. Der Kondensator C2 und die Dioden D3 und D4 bilden einen Pfad zum Injizieren positiver Ladungen in den Kondensator C0 in Abhängigkeit vom zweiten Korrektursignal D′, das am zweiten Korrektursignal-Eingangsanschluß L empfangen wird.
Allgemein erfüllen die Vorspannung Vb und die Referenzspannung Vdd, die z. B. eine Betriebsversorgungsspannung ist, die folgende Beziehung:
VGND Vb < Vdd.
Nun wird der Betrieb beschrieben.
Wenn dem Kondensator C1 das pulsierende Korrektursignal I über den Anschluß V zugeführt wird, werden durch einen Ladungspumpbetrieb des Kondensators C1 positive elektrische Ladungen vom Kondensator C0 extrahiert, um das Potential des Knotens N2 abzusenken. Jedesmal wenn das pulsierende zweite Korrektursignal D′ dem Kondensator C2 zugeführt wird, werden positive Ladungen in den Knoten N2 des Kondensators C0 injiziert, um das Potential des Knotens N2 anzuheben. Aufgrund dieser Struktur drückt der einzelne Kondensator C0 sowohl eine anregende als auch eine dämpfende Kopplung aus. Ein Vorgang zum Korrigieren des Synapsengewichtungswertes, der in der Synapsengewichtungswert-Speicherschaltung 101 gespeichert ist, wird später im Detail beschrieben. Nun wird der Betrieb der Synapsenkopplungsschaltung 107 beschrieben.
(i) Das Zustandssignal Si liegt auf einem niedrigen Pegel
In diesem Fall nehmen die Transistoren PT4 und PT5 einen durchgeschalteten Zustand ein und die Transistoren PT2 und NT1 sperren. Das Potential des Knotens N10 nimmt über den Transistor PT5 den Referenzspannungspegel Vdd an. Damit fließt ein konstanter Strom entsprechend der Vorspannung Vb, die dem Gate des Transistors PT3 zugeführt wird, am Ausgangsknoten Io ab.
(ii) Das Zustandssignal Si liegt auf einem hohen Pegel
In diesem Fall sperrt der Transistor PT4 und der Transistor PT2 schaltet durch (das Potential des Knotens N10 nimmt den Massepotentialpegel VGND an). Damit fließt ein Strom Ids entsprechend dem Gate-Potential des Transistors PT1 bezüglich des Source-Potentials (Potential des Knotens N2), d. h. ein Ladepotential Vc des Kondensators C0 (Potential des Knotens N2), am Ausgangsknoten Io ab.
Wenn die im Knoten N2 des Kondensators C0 gespeicherte Menge elektrischer Ladungen Q0 gleich null ist, ist das Potential Vc des Knotens N2 gleich der Referenzspannung Vdd. Das Source-Potential des Transistors PT1 befindet sich auf dem Referenzspannungspegel Vdd. Somit fließt ein Strom entsprechend dem Potential (Vdd-Vc)=0 vom Referenzspannungsknoten Vdd über die Transistoren PT1 und PT2 zum Ausgangsanschluß Io. Die Gate-Breiten der Transistoren PT1 und PT2 sind größer als die der Transistoren PT3 und PT4. Wenn das Zustandssignal Si auf einem hohen Pegel liegt und Vc=Vb ist, transportiert der Ausgangsanschluß Io einen Strom, der größer als der Strom ist, der fließt, wenn das Signal Si auf einem niedrigen Pegel liegt.
Wenn der Knoten N2 des Kondensators C0 eine negative Menge elektrischer Ladungen -Q0 speichert, ist das Potential Vc des Knotens N2 gleich der (Vdd-Q0 * Ca), und das Gate-Potential des Transistors PT1 ist gleich -Q0 * Ca, wodurch die Impedanz des p-Kanal MOS-Transistors PT1 reduziert und der fließende Strom vergrößert wird. Dieser Strom wird größer als ein konstanter Strom, der zu dem Zeitpunkt durch den Transistor PT3 fließt, wenn das Zustandssignal Si gleich "1" ist. Das Symbol Ca bezeichnet die Kapazität des Kondensators C0.
Positive Ladungen werden vom Knoten N2 des Kondensators C0 jedesmal dann extrahiert, wenn das erste Korrektursignal I angelegt wird, wodurch die Impedanz des Transistors PT1 vermindert und der zum Ausgangsanschluß Io fließende Strom Ids vergrößert wird. Andererseits werden jedesmal positive Ladungen in den Knoten N2 des Kondensators C0 injiziert, wenn das zweite Korrektursignal D′ angelegt wird, wodurch der Strom Ids, den der Transistor PT1 dem Knoten N4 zuführt, vergrößert wird.
Somit ist es möglich, im Lernmodus sowohl die anregende als auch die dämpfende Kopplung durch den einzelnen Kondensator C0 durch Einstellen der im Kondensator C0 gespeicherten Ladungsmenge in Abhängigkeit von den Korrektursignalen I und D′ auszudrücken. Ferner ist es auch möglich, den vom Kondensator C0 ausgedrückten Synapsengewichtungswert auf einen beliebigen Wert einzustellen, um den Synapsengewichtungswert in analoger Weise auszudrücken, weil dieser Synapsengewichtungswert durch die im Kondensator C0 gespeicherte Ladungsmenge geliefert wird. Nun erfolgt die Beschreibung eines Korrekturvorgangs für den Synapsengewichtungswert im Lernmodus.
Wenn die Elektrode des Kondensators C0 in der Synapsengewichtungswert-Speicherschaltung 101, die mit dem Knoten N2 verbunden ist, eine negative Ladungsmenge -Q0 speichert, entwickelt sich die folgende Spannung am Knoten N2, der mit dem Gate des p- Kanal MOS-Transistors PT1 verbunden ist:
Vc = (Vdd-Q0 * Ca)
Daher ist die Spannung Vc des Knotens N2 gleich Vdd, wenn Q0=0 gilt. Andererseits wird die Spannung Vc des Knotens N2 reduziert, wenn der Wert von Q0 ansteigt, d. h. wenn die Menge -Q0 negativer Ladungen ansteigt. Die Verminderung der Spannung Vc des Knotens N2 gibt einen Anstieg des Synapsengewichtungswerts an, während ein Anstieg der Spannung Vc eine Verminderung angibt.
In der ersten Strompfadschaltung mit dem p-Kanal MOS-Transistor PT1 ist die Gate-Source-Spannung (im weiteren zur Vereinfachung als Gate-Spannung bezeichnet) des p-Kanal MOS-Transistors PT1 gleich -(Vdd-Vc). Ein durch diese Gate-Spannung -(Vdd-Vc) definierter konstanter Strom fließt über den Transistor PT1 zum Knoten N4. Wenn Q0=0 gilt, wird der im Transistor PT1 fließende Strom minimiert, weil Ids=0 gilt (wenn der p-Kanal MOS-Transistor einen negativen Schwellenwert besitzt), während das Potential des Knotens N2 reduziert und der über den Transistor PT1 fließende Strom Ids vergrößert wird, wenn die Menge -Q0 negativer Ladungen ansteigt. Der Betrieb der Synapsengewichtung-Korrekturschaltung 103, die aus zwei Ladungspumpschaltungen besteht, wird nun unter Bezugnahme auf die Fig. 35A und 35B beschrieben. Die Fig. 35A und 35B zeigen die jeweilige Ladungspumpschaltung.
Unter Bezugnahme auf Fig. 35A wird nun der Betrieb zum Injizieren positiver Ladungen in den Knoten N2 des Kondensators C0 beschrieben. Wie in Fig. 35A gezeigt ist, wird das Impulssignal D′ einer Schaltung zugeführt, die aus den Dioden D13 und D14 und einem Kondensator C12 besteht, die einen Ladungspumpbetrieb zum Injizieren positiver Ladungen in einen Kondensator C20 implementieren. Die Anode der Diode D13 ist mit einem Knoten N26 und die Kathode über einen Knoten N22 mit einer Elektrode des Kondensators C20 verbunden. Die Kathode der Diode D14 ist mit einem Knoten N26 und die Anode mit einem Knoten N21 verbunden. Die Vorspannung Vb wird dem Knoten N21 zugeführt. Die Dioden D13 und D14 entsprechen den Dioden D3 und D4, die in Fig. 34 gezeigt sind, und der Kondensator C12 entspricht dem in Fig. 34 dargestellten Kondensator C2. Der Kondensator C12 empfängt über einen Knoten N28 das Impulssignal D′.
Eine Elektrode des Kondensators C12 ist mit dem Knoten N26 verbunden, und die andere Elektrode empfängt über einen Knoten N28 das Impulssignal D′. Nun wird der Betrieb der in Fig. 35A gezeigten Schaltung beschrieben.
Betrachtet sei der Fall, daß das Impulssignal D′ dem Knoten N28 zugeführt wird. Wenn das Impulssignal D von einem hohen auf einen niedrigen Pegel fällt, fällt das Potential des Knotens N26 aufgrund einer kapazitiven Kopplung des Kondensators C12 in negativer Richtung, wodurch die Diode D14 durchschaltet. Damit fließt ein Strom i1 vom Knoten N21 zum Knoten N26. Gleichzeitig ist die Diode D13 gesperrt.
Wenn das Impulssignal D′ von einem niedrigen auf einen hohen Pegel ansteigt, wird das Potential des Knotens N26 durch einen Ladungspumpbetrieb über den Kondensator C12 angehoben, wodurch die Diode D13 durchschaltet und die Diode D14 sperrt. Damit fließt ein Strom i2 vom Knoten N26 zum Knoten N22. Die Werte der Ströme i1 und i2 werden durch die Kapazität des Kondensators C12, die Menge Q20 der im Kondensator C20 gespeicherten Ladung, der I-V-Kennlinie (Strom-Spannungs-Kennlinie) der Dioden D13 und D14 in Vorwärtsrichtung und die Impulsbreite des Impulssignals D′ bestimmt.
Der Strom fließt nämlich bei jedem Zyklus des Impulssignals D′ in den Knoten N22, um den Kondensator C20 zu laden, wodurch die im Kondensator C20 gespeicherte (positive) Ladungsmenge vergrößert wird. Das Potential des Knotens N22 (Knoten N2) wird durch das Impulssignal D vergrößert, das dem zweiten Korrektursignal D′ entspricht.
Unter Bezugnahme auf Fig. 35B wird nun ein Ladungspumpbetrieb zum Extrahieren positiver Ladungen vom Kondensator C0 beschrieben. In diesem Fall wird der Ladungspumpbetrieb durch Dioden D11 und D12 sowie einen Kondensator C11 implementiert. Die Kathode der Diode D11 ist mit einem Knoten N13 und die Anode mit einem Knoten N15 verbunden. Die Referenzspannung Vdd wird dem Knoten N13 zugeführt. Die Kathode der Diode D12 ist mit dem Knoten N15 und die Anode über einen Knoten N12 mit einer Elektrode des Kondensators C10 verbunden. Eine Elektrode des Kondensators C11 ist mit dem Knoten N15 und die andere Elektrode mit dem Knoten N17 verbunden. Das Impulssignal I (entsprechend dem ersten Korrektursignal I) wird dem Knoten N17 zugeführt.
Bei dieser Struktur entspricht der Kondensator C10 dem in Fig. 34 gezeigten Kondensator C0, und die Dioden D11 und D12 entsprechen den in Fig. 34 gezeigten Dioden D1 und D2, während der Kondensator C11 dem Kondensator C1 von Fig. 34 entspricht. Nun wird der Betrieb beschrieben.
Das Impulssignal I wird dem Knoten N17 zugeführt. Wenn das Impulssignal I von einem hohen auf einen niedrigen Pegel fällt, fällt das Potential des Knotens N15 aufgrund einer kapazitiven Kopplung des Kondensators C11 ab, wodurch die Diode D12 durchschaltet und die Diode D11 sperrt. In diesem Zustand fließt ein Strom i3 vom Knoten N12 zum Knoten N15.
Wenn das Impulssignal I von einem niedrigen auf einen hohen Pegel ansteigt, wird das Potential des Knotens N15 durch einen Ladungspumpbetrieb des Kondensators C11 angehoben, so daß die Diode D11 durchschaltet, wenn das Potential des Knotens N15 die Referenzspannung Vdd übersteigt. Die Diode D12 sperrt und ein Strom i4 fließt vom Knoten N15 zum Knoten N13. Der Strom i4 wird vom Kondensator C10 geliefert. Der Wert des Stroms i4 wird nämlich vom Strom i3 bestimmt. Daher fließt bei jedem Zyklus des Impulssignals I ein Strom vom Knoten N12 über den Knoten N15 zum Referenzspannungsknoten Vdd, um die Menge positiver Ladungen zu reduzieren, die im Kondensator C10 gespeichert sind. Die Werte der Ströme i3 und i4 werden durch die Kapazitäten der Kondensatoren C10 und C11, die Menge der im Kondensator C10 gespeicherten Ladung, der I-V-Kennlinien (Strom-Spannungs-Kennlinien) der Dioden D11 und D12 in Vorwärtsrichtung und die Impulsbreite des Impulssignals I bestimmt. Das Impulssignal I wird als erstes Korrektursignal I verwendet, so daß die Menge von Ladungen, die im Kondensator C10 gespeichert sind, entsprechend der Impulsanzahl eingestellt werden kann.
Die in Fig. 34 gezeigte Synapsengewichtung-Korrekturschaltung wird durch Kombinieren der in den Fig. 35A und 35B gezeigten Ladungspumpschaltungen erhalten. Bei den in den Fig. 35A und 35B gezeigten Ladungspumpschaltungen werden die Kondensatoren C20 und C10 gleich dem Kondensator C0 gemacht, und die Knoten N22 und N12 werden gleich dem Knoten N2 gemacht, wodurch die Strukturen der Synapsengewichtung-Korrekturschaltung und der Synapsengewichtungwert-Speicherschaltung von Fig. 34 erhalten werden.
Die in den Fig. 35A und 35B gezeigten Knoten N28 und N17 entsprechen den Knoten L bzw. V in Fig. 34. Wenn ein Impulssignal dem Knoten V zugeführt wird, wird die im Knoten N2 des Kondensators C0 gespeicherte Ladungsmenge (negativer Ladungen) durch die Dioden D1 und D2 sowie den Kondensator C1 vergrößert, während die im Knoten N2 des Kondensators C0 gespeicherte Ladungsmenge (negativer Ladungen) vermindert wird, wenn das Impulssignal dem Knoten L zugeführt wird.
Aufgrund der oben angeführten Struktur ist es möglich, den Anstieg und die Verminderung der im Kondensator C0 gespeicherten Ladungsmenge (negativer Ladungen) durch die Anzahl und Breite der Impulssignale, d. h. des ersten und zweiten Korrektursignals I und D′, die den Knoten V bzw. L zugeführt werden, zu steuern. Mit anderen Worten ist es möglich, die Spannung Vc des Knotens N2, die den Wert des Stroms bestimmt, der aus dem Gewichtungsstrom-Ausgangsanschluß Io fließt, durch die der Synapsengewichtung-Korrekturschaltung 103 zugeführten Korrektursignale I und D′ in analoger Weise zu steuern.
Bei der oben angeführten Synapsenschaltung ist es möglich, den Synapsengewichtungswert auf einfache Weise mit den Impulssignalen zu korrigieren, während dieser Synapsengewichtungswert, der durch die im Kondensator gespeicherte Ladungsmenge bestimmt wird, in analoger Weise geändert wird, so daß es möglich ist, einen beliebigen Synapsengewichtungswert zu implementieren. Weil der Kondensator eine relativ kleine Fläche belegt, ist es möglich, eine Synapsenschaltung mit einer Lernfunktion durch eine geringe Anzahl von Bauelementen zu erhalten. Dadurch wird ein hoch integrierter Neuronetz- Halbleiterchip mit Lernfunktion implementiert. Es tritt jedoch das folgende Problem auf, weil der Synapsengewichtungswert durch die im Kondensator gespeicherte Ladungsmenge realisiert wird.
Fig. 36 zeigt die Struktur des Kondensators C0, der die Synapsengewichtungswert-Speicherschaltung 101 bildet. Wie in Fig. 36 gezeigt ist, weist der Kondensator C0 zum Ausdrücken eines Synapsengewichtungswerts eine erste leitende Schicht 203, die auf einem Halbleitersubstrat 205 mit einem darunterliegenden Isolierfilm 204 gebildet ist, um als eine erste Elektrode zu dienen, und eine zweite leitende Schicht 201, die auf der ersten leitenden Schicht 203 mit einer darunterliegenden und als Dielektrikum dienenden Isolierschicht 202 gebildet ist, auf. Bei einer solchen Struktur weist die Kapazität des Kondensators C0 einen konstanten Wert auf, der durch die Dicke der Isolierschicht 202 und die Größe der einander gegenüberliegenden leitenden Schichten 201 und 203 bestimmt ist. Während die erste und zweite leitende Schicht 203 und 201 mit beiden Knoten verbunden sein können, ist in Fig. 36 z. B. die zweite leitende Schicht 201 mit dem Knoten N3 und die erste leitende Schicht 203 mit dem Knoten N2 verbunden.
Der Synapsengewichtungswert wird durch die im Knoten n2 gespeicherte Ladungsmenge gebildet. Dieser Synapsengewichtungswert muß während eines Aufrufbetriebs (Normalbetriebs) auf einem konstanten Wert gehalten werden. Aufgrund der Eigenschaften des Kondensators C0 fließen die gespeicherten Ladungen unvermeidlicherweise ab und ändern den Synapsengewichtungswert. Dadurch ist es unmöglich, einen korrekten Aufrufbetrieb mit hoher Geschwindigkeit auszuführen. Nun wird der Pfad eines solchen Ladungslecks beschrieben.
Fig. 37 zeigt die Verbindung von Dioden, die in der Synapsengewichtung-Korrekturschaltung enthalten sind. Bezüglich Fig. 37 entsprechen die Dioden D801 und D802 den Dioden D1 und D2 oder D3 und D4 in Fig. 34. Die Diode D801 ist zwischen den Knoten b und a in Vorwärtsrichtung geschaltet, während die Diode D802 zwischen den Knoten c und b in Vorwärtsrichtung geschaltet ist. Der Knoten b ist mit einem Ladungspumpkondensator verbunden, so daß Ladungen über den Knoten b in Abhängigkeit von einem Impulssignal (Korrektursignal) injiziert oder extrahiert werden.
Wie in Fig. 38 gezeigt ist, ist eine Reihenschaltung der Dioden D801 und D802 durch einen einzelnen p-Kanal MOS-Transistor PT800 implementiert, um eine geringe belegte Fläche zu erzielen. Wie in Fig. 38 gezeigt ist, weist der p-Kanal MOS-Transistor PT800 einen Substratbereich, der mit dem Knoten a verbunden ist, einen ersten Leitungsanschluß und eine Gate-Elektrode, die beide mit dem Knoten b verbunden sind, und einen zweiten Leitungsanschluß, der mit dem Knoten c verbunden ist, auf.
Fig. 39 zeigt die Querschnittstruktur des p-Kanal MOS-Transistors PT800 von Fig. 38. Wie in Fig. 39 gezeigt ist, ist der p-Kanal MOS- Transistor PT800 in einer N-Wanne 851 auf der Oberfläche eines p- Halbleitersubstrats 850 gebildet. Der p-Kanal MOS-Transistor PT800 weist einen N⁺-Bereich 852 hoher Störstellenkonzentration, der mit dem Knoten a verbunden ist, einen P⁺-Bereich 853 hoher Störstellenkonzentration, der mit dem Knoten b verbunden ist, und einen P⁺-Bereich 854 hoher Störstellenkonzentration, der mit dem Knoten c verbunden ist, auf. Eine Gate-Elektrode 855 ist auf einem Kanalbereich zwischen den P⁺-Bereichen 853 und 854 mit einem darunterliegenden Isolierfilm (Gate-Isolierfilm) 856 gebildet. Diese Gate-Elektrode 855 ist mit dem Knoten a über den N⁺-Bereich 852 verbunden.
Die Diode D801 wird vom P⁺-Bereich 853 und N⁺-Bereich 852 gebildet. Die Diode D802 wird vom P⁺-Bereich 853, einem Kanalbereich, d. h. einem Oberflächenbereich der N-Wanne 851 unter der Gate-Elektrode 855, und dem P⁺-Bereich 854 gebildet.
Bei der in Fig. 39 gezeigten Struktur ist eine weitere Diode durch den Knoten a, den N⁺-Bereich 852, die N-Wanne 851 und den P⁺-Bereich 854 gebildet. Diese Diode, die zwischen den Knoten a und c gebildet ist, übt selbst keinen Einfluß auf einen Ladungspumpbetrieb aus. Bei der in Fig. 39 gezeigten Elementstruktur wird die Diode D801 durch eine P-N-Übergang-Diode implementiert, wodurch es möglich ist, sowohl einen in Sperrichtung fließenden Entladestrom, d. h. einen Leckstrom vom Knoten a zum Knoten c, zu vermindern als auch die zum Knoten b gehörende parasitäre Kapazität zu reduzieren.
Wenn die in Fig. 39 gezeigte Elementstruktur benutzt wird, um eine Reihenschaltung von Dioden zu bilden, werden jedoch Verarmungsschichten 861 und 862 in den P-N-Übergangsbereichen verursacht. Ladungen werden in solchen Verarmungsschichten 861 und 862 rekombiniert oder diffundieren durch diese hindurch. Bei der in Fig. 39 gezeigten Struktur ist z. B. der Knoten c mit der Elektrode, die den Synapsengewichtungswert liefert, des Kondensators C0 der Synapsengewichtungswert-Speicherschaltung 101, d. h. mit dem Knoten N2, oder mit dem Knoten N1, der die Vorspannung Vb liefert, verbunden. Der Knoten a ist mit dem Knoten N3, der die Referenzspannung Vdd liefert, oder mit dem Knoten N2 in der in Fig. 34 gezeigten Struktur verbunden. Damit wird die im Kondensator C0 gespeicherte Ladungsmenge durch Rekombination oder Diffusion von Ladungen in den Verarmungsschichten 861 und 862 verändert, und dadurch kann der Synapsengewichtungswert nicht für lange Zeit auf einem gewünschten Wert gehalten werden.
Ein weiterer Leckpfad Ip für Ladungen wird durch eine Verarmungsschicht oder eine Inversionsschicht gebildet, die sich unter einem Elementisolierfilm 870 zum elektrischen Isolieren benachbarter Bauelemente voneinander bildet.
Wenn der Knoten a oder c mit dem Knoten verbunden ist, der die konstante Spannung Vdd oder Vc liefert, kann diese Spannung im Betrieb geändert werden, um Elektron-Loch-Paare im N-Wannenbereich 851 durch Stoßionisation oder einen ähnlichen Vorgang zu bilden. Die so gebildeten Ladungen können die im Kondensator C0 gespeicherte Ladungsmenge ändern. Wenn die im Kondensator C0 gespeicherte Ladungsmenge durch eine derartige Erscheinung geändert wird, kann der durch Lernen erreichte Synapsengewichtungswert während des Aufrufbetriebs nicht konstant gehalten werden.
Fig. 40 zeigt ein kapazitives MOS-Element, das als Kondensator C0 verwendet werden kann. In diesem Fall wird eine erste Elektrode des Kapazitätselements durch einen N⁺-Bereich 891 hoher Störstellenkonzentration, der auf der Oberfläche eines Halbleitersubstrats 890 gebildet ist, und eine zweite Elektrode 893 auf dieser Elektrode 891 mit einem darunterliegenden Isolierfilm 892 geschaffen. Weil die Elektrode 891 durch den Diffusionsbereich hoher Störstellenkonzentration gebildet wird, fließen unvermeidlicherweise Ladungen von diesem Diffusionsbereich zum Halbleitersubstrat 890, und ändern den Synapsengewichtungswert mit der Zeit. Ferner kann auch bei dieser Struktur die im Störstellenbereich 891 gespeicherte Ladungsmenge durch eine Potentialänderung des Halbleitersubstrats 890 geändert werden. Auch in diesem Fall ist es unmöglich, den Synapsengewichtungswert ausreichend lange Zeit auf einem Wert zu halten, der beim Lernen erhalten worden ist.
Wenn nämlich die Synapsengewichtungswert-Speichereinrichtung aus einem Kondensator oder einem Kapazitätselement gebildet wird, ist es unmöglich, einen Synapsengewichtungswert, der durch Lernen oder einen ähnlichen Vorgang eingestellt worden ist, für lange Zeit zu halten. Daher kann kein stabil arbeitendes Neuronales Netz implementiert werden.
Aufgabe der Erfindung ist es, eine Neuronetzeinheit zur elektronischen Realisierung eines Neuronalen Netzes zu schaffen, die einen Synapsengewichtungswert stabil für eine lange Zeit halten kann, die über einen langen Zeitraum stabil arbeitet und dabei einen Synapsengewichtungswert mit einer einfachen Struktur und einer kurzen Arbeitszeitspanne auffrischen kann.
Des weiteren soll ein Betriebsverfahren für eine Neuronetzeinheit ange­ geben werden.
Die Aufgabe wird gelöst durch die in Anspruch 1 gekennzeichnete Neuronetzeinheit und das Verfahren von Anspruch 16 oder 22.
Die Neuronetzeinheit zum Realisieren eines Neuronalen Netzes frischt Information, die in jeder Synapsengewichtungswert-Speicherschaltung gespeichert ist, auf der Basis der verbleibenden Speicherinformation, d. h. der in der jeweiligen kapazitiven Synapsengewichtungswert- Speichereinrichtung selbst gespeicherten Ladungsmenge, auf, bevor die Synapsengewichtungswertinformation verschwindet.
Sie frischt den Synapsengewichtungswert entsprechend dem Ausgangszustand der jeweiligen Neuroneneinheit auf, wodurch die verschwundene Speicherinformation so eindeutig wiederhergestellt wird, daß es nicht notwendig ist, erneut Lerninformation von außen zuzuführen, um den Synapsengewichtungswert neu zu lernen oder gezwungenermaßen zurückzusetzen. Damit wird die Synapsengewichtungswertinformation für eine lange Zeit stabil gehalten.
Es folgt die Beschreibung von Ausführungsbeispielen anhand der Figuren. Von den Figuren zeigen:
Fig. 1: einen Auffrischungsbetrieb nach einer ersten Ausführungsform der vorliegenden Erfindung;
Fig. 2: schematisch die Gesamtstruktur einer Neuronetzeinheit zum Realisieren eines Neuronalen Netzes nach der ersten Ausführungsform der vorliegenden Erfindung;
Fig. 3: die Struktur der Synapsenschaltung von Fig. 2;
Fig. 4: die Struktur der Neuroneneinheit von Fig. 2;
Fig. 5: die Entsprechung zwischen dem Attribut der Neuroneneinheit und den Zuständen der jeweiligen Signale von Fig. 4 in einer Liste;
Fig. 6: eine spezielle Struktur der Eingangsdaten-Steuereinheit von Fig. 2;
Fig. 7: ein Signaldiagramm des Betriebs der Neuronetzeinheit zum Realisieren eines Neuronalen Netzes nach der ersten Ausführungsform;
Fig. 8: einen Auffrischungsbetrieb nach einer zweiten Ausführungsform der vorliegenden Erfindung;
Fig. 9: schematisch die Gesamtstruktur einer Vorrichtung zum Ausdrücken eines Neuronalen Netzes nach der zweiten Ausführungsform der vorliegenden Erfindung;
Fig. 10: eine spezielle Struktur der Übereinstimmungserfassungsschaltung von Fig. 9;
Fig. 11: die Struktur der Auffrischungssteuerschaltung von Fig. 9;
Fig. 12: die Struktur einer ersten Einheit zum Realisieren eines Neuronalen Netzes von Fig. 9;
Fig. 13: die Struktur einer zweiten Einheit zum Realisieren eines Neuronalen Netzes von Fig. 9;
Fig. 14: die Struktur einer Synapsenschaltung von Fig. 13 eines ersten Typs, die eine Eingangsschicht und eine versteckte Schicht koppelt;
Fig. 15: die Gesamtstruktur der Synapsengewichtungswert- Speicherschaltung von Fig. 14;
Fig. 16: eine detaillierte Struktur der Synapsengewichtungswert- Speicherschaltung von Fig. 14 und 15;
Fig. 17: die Struktur der Lernsteuerschaltung von Fig. 14;
Fig. 18: ein Rückwärtsausbreitungsmodell, das durch das zweite Neuronale Netz implementiert wird;
Fig. 19: eine Struktur zum Ausgeben von Signalen an die in Fig. 14 gezeigte Lernsteuerschaltung zur Implementierung einer Lernregel im Rückwärtsausbreitungsmodell von Fig. 18;
Fig. 20: die Struktur einer Synapsenkopplungsschaltung von Fig. 14;
Fig. 21: die Struktur einer Synapsenschaltung von Fig. 13 eines zweiten Typs zur Kopplung einer versteckten Schicht und einer Ausgangsschicht;
Fig. 22: die Struktur der Lernsteuerschaltung von Fig. 21;
Fig. 23: die Struktur der Neuroneneinheit von Fig. 13;
Fig. 24: ein Signaldiagramm des Betriebs der zweiten Ausführungsform;
Fig. 25: ein Signaldiagramm, das die Beziehung zwischen einem Übereinstimmungserfassungssignal und Lernsteuersignalen in der zweiten Ausführungsform zeigt;
Fig. 26: einen Auffrischungsbetrieb nach einer dritten Ausführungsform der vorliegenden Erfindung;
Fig. 27: eine Referenzspannung, die der Neuroneneinheit der zweiten Einheit zum Realisieren eines Neuronalen Netzes zugeführt wird;
Fig. 28: ein Signaldiagramm des Auffrischungsbetriebs nach einer vierten Ausführungsform der vorliegenden Erfindung;
Fig. 29: das Betriebsprinzip einer Neuroneneinheit;
Fig. 30: die Eingangs-/Ausgangs-Umwandlungskennlinie der Neuroneneinheit;
Fig. 31: eine beispielhafte Struktur einer Vorrichtung zum Realisieren eines Neuronalen Netzes;
Fig. 32: die Struktur der Synapsenschaltung von Fig. 31;
Fig. 33: die Struktur der Lernsteuerschaltung von Fig. 32;
Fig. 34: die Struktur der Synapsenkopplungsschaltung von Fig. 32;
Fig. 35: ein Diagramm zur Darstellung des Betriebs zum Korrigieren eines Synapsengewichtungswerts in der Synapsenkopplungsschaltung von Fig. 34;
Fig. 36: die Struktur eines Synapsengewichtungswert- Speicherkondensators;
Fig. 37: die Struktur einer Ladungspumpdiode in einer Synapsengewichtungswert-Korrekturschaltung;
Fig. 38: eine Struktur zum Implementieren der in Fig. 37 gezeigten Diodenschaltung;
Fig. 39: ein Diagramm zur Erläuterung eines Problems mit der Synapsengewichtungswert-Speicherschaltung; und
Fig. 40: eine weitere beispielhafte Struktur einer Synapsengewichtungswert-Speicherschaltung.
(A) Erste Ausführungsform
Bevor eine erste Ausführungsform der vorliegenden Erfindung beschrieben wird, wird nun das Betriebsprinzip dieser Ausführungsform erläutert.
Fig. 1 zeigt die potentiellen Energieniveaus eines Neuronalen Netzes bezüglich seiner Zustände. In Fig. 1 gibt die Abszisse den Zustand des Neuronalen Netzes und die Ordinate die potentiellen Energieniveaus des Neuronalen Netzes an. Das Neuronale Netz weist eine Mehrzahl von Neuroneneinheiten auf, so daß ein Zustand des Neuronalen Netzes durch Kombination jeweiliger Zustände dieser Neuroneneinheiten ausgedrückt wird. Obwohl Fig. 1 die Zustände des Neuronalen Netzes zur Vereinfachung eindimensional darstellt, wird angenommen, daß der Abstand zwischen den Zuständen des Neuronalen Netzes dem der Zustände entspricht, die in Fig. 1 eindimensional dargestellt sind.
Nach dem Lernvorgang des Neuronalen Netzes liefert der gelernte Zustand einen Minimalwert der potentiellen Energie. Im Aufrufbetrieb konvergiert das Neuronale Netz entsprechend dem Eingangsmuster auf einen Zustand, der den minimalen Energiewert liefert, der diesem Eingangsmuster am nächsten liegt. In Fig. 1 stellt die Kurve A die potentielle Energie des Neuronalen Netzes unmittelbar nach dem Lernvorgang dar. Die Symbole q1 und q2 stellen Zustände dar, die die minimalen Energiewerte liefern, d. h. gespeicherte Zustände des Neuronalen Netzes.
Wenn ein Tal der potentiellen Energie tief ist, ist auch die Speicherung tief, während die Speicherung flach ist, wenn das Tal der potentiellen Energie flach ist.
Die Kurve B zeigt die potentielle Energie des Neuronalen Netzes nachdem eine bestimmte Zeit seit dem Lernvorgang verstrichen ist. Ladungen fließen mit der Zeit von einem Synapsengewichtungswert- Speicherkondensator ab und ändern die Synapsengewichtungswertinformation. Diese Information entspricht einem Zustand verschwundener Speicherung gelernter Information, und die Täler der potentiellen Energie in den Zuständen q1 und q2 sind bei der Kurve B flach. Die Kurve B zeigt Zustände, bei denen die gelernte Information noch nicht vollständig vergessen worden ist, weil die potentielle Energie noch die Täler aufweist.
In Übereinstimmung mit der vorliegenden Erfindung wird ein Auffrischungsbetrieb auf der Basis der verschwundenen Speicherung ausgeführt, die das als Kurve B gezeigte Profil der potentiellen Energie aufweist, um das Profil der potentiellen Energie nach Kurve A wiederzugewinnen. Dadurch wird die Speicherung der gelernten Information wiederhergestellt. Mit anderen Worten werden die folgenden Vorgänge im Zustand der potentiellen Energie nach Kurve B ausgeführt.
  • (a) Ein Zufallsmuster wird als Anfangszustand verwendet (z. B. Punkt p1 oder p2 in Fig. 2), um den Betrieb des Neuronalen Netzes zu starten. Das Neuronale Netz arbeitet in Übereinstimmung mit dem gegebenen Zufallsmuster, so daß sein interner Zustand einen Übergang ausführt und auf einen Zustand hin konvergiert, der das am nächsten liegende Tal (minimaler Energiewert) liefert, das durch den am nächsten liegende Punkt q1 oder q2 gezeigt ist.
  • (b) Es wird angenommen, daß dieser konvergierte Zustand gespeichert wird. Im zu speichernden Zustand wird der Gewichtungswert einer solchen Synapse um einen bestimmten Betrag erhöht, bei der die beiden zugehörigen Neuronen in feuernden Zuständen sind. Dieser Vorgang vertieft die Speicherung, und die potentielle Energie wird in eine Richtung zur Vertiefung des Potentials für den konvergierten Zustand (Punkt q1 oder q2) geändert, wie durch den Pfeil C′′ in Fig. 1 dargestellt ist.
  • (c) Dann wird im Neuronalen Netz ein neues Zufallsmuster (Punkt r1, r2 oder r3) eingestellt. Dieser Zustand weist keinerlei Bezug zu den Tälern der potentiellen Energie auf und soll nicht gespeichert werden. In diesem Zustand wird der Gewichtungswert einer solchen Synapse um einen bestimmten Betrag reduziert, bei der die beiden zugehörigen Neuronen in feuernden Zuständen sind. Dieser Vorgang entspricht dem sogenannten Antilernen, d. h. einem Zustand, in dem die Speicherung des Eingangsmusters abgeschwächt wird. In diesem Zustand wird die potentielle Energie in eine Richtung zur Abflachung für den Zustand (Punkt r1, r2 oder r3) geändert, wie durch den Pfeil D′′ dargestellt ist.
Die Reihe der oben angeführten Vorgänge (a) bis (c) wird so wiederholt, daß das sich Profil der potentiellen Energie nach Kurve B dem Profil der potentiellen Energie nach Kurve A annähert. In Fig. 1 zeigt die Kurve E einen Zwischenzustand in einem solchen Auffrischungsbetrieb.
Hinsichtlich der oben angeführten Vorgänge (a) bis (c) kann der Vorgang (c) wiederholt werden, nachdem die Vorgänge (a) und (b) wiederholt worden sind. Alternativ kann der Vorgang (c) mit einem Zufallsmuster ausgeführt werden, das im Vorgang (a) eingestellt worden ist. Das zweite Verfahren wird bei dieser Ausführungsform verwendet.
In jeder Vorgangsreihe wird ein Zufallsmuster als Anfangszustand verwendet, um den Betrieb des Neuronalen Netzes zum Ausführen eines Betriebs ähnlich dem "verstärkten Lernen" in einem konvergierten Zustand zu starten. Dann wird ein Betrieb ähnlich dem "Antilernen" unter der Annahme ausgeführt, daß ein neues Zufallsmuster einen nicht zu speichernden Zustand darstellt. Dieser Vorgang wird so wiederholt, daß die Täler der potentiellen Energie durch das Zufallsmuster vertieft werden. Um die Täler der potentiellen Energie für den zu speichernden Zustand weiter zu vertiefen, kann der Korrekturkoeffizient bei der Reduzierung des Synapsengewichtungswerts um einen konstanten Betrag vergrößert werden, so daß sich der Umfang der Änderung des Synapsengewichtungswerts von dem bei einer Erhöhung unterscheidet.
Nun wird eine Struktur zur Implementierung des oben angeführten Auffrischungsverfahrens genauer beschrieben.
Fig. 2 zeigt die Struktur einer Vorrichtung zum Ausdrücken eines Neuronalen Netzes nach der ersten Ausführungsform der vorliegenden Erfindung. Diese Vorrichtung zum Ausdrücken eines Neuronalen Netzes weist eine Lernfunktion auf und umfaßt einen Neuronetzeinheit 501, die in ihrer Struktur im wesentlichen gleich der in den Fig. 31 bis 34 gezeigten Vorrichtung zum Ausdrücken eines Neuronalen Netzes ist.
Die Neuronetzeinheit 501 weist Synapseneinheiten 701 bis 709, die in der Form einer Matrix angeordnet sind, und Neuroneneinheiten 601 bis 603, die in einer Spalte angeordnet sind, auf.
Jede der Synapseneinheiten 701 bis 709 speichert Synapsengewichtungswertinformation in ihrem darin enthaltenen Kondensator, wie in Fig. 32 oder 34 gezeigt ist. Die im Kondensator gespeicherte Synapsengewichtungswertinformation wird aufgefrischt. Die einen solchen Auffrischungsbetrieb erfordernden Synapseneinheiten werden im folgenden als dynamische Synapseneinheiten bezeichnet und in Fig. 2 durch Symbole D-SY angegeben. Andererseits werden Synapseneinheiten, die Synapsengewichtungswertinformation in Speichern wie z. B. digitalen Speichern ablegen, ohne daß eine Auffrischung der Synapsengewichtungswertinformation notwendig ist, im folgenden als statische Synapseneinheiten bezeichnet.
Wie in Fig. 2 gezeigt ist, übertragen die Synapseneinheiten, die in den jeweiligen Zeilen angeordnet sind, Gewichtungsströme über die zugehörigen Dendritsignalleitungen DE1 bis DEn zu den entsprechenden Neuroneneinheiten. Genauer gesagt übertragen die Synapseneinheiten 701, 702 und 703 die Gewichtungsströme über die Dendritsignalleitung DE1 zur Neuroneneinheit 601, die Synapseneinheiten 704, 705 und 706 die Gewichtungsströme über die Dendritsignalleitung DE2 zur Neuroneneinheit 602, und Synapseneinheiten 707, 708 und 709 die Gewichtungsströme über die Dendritsignalleitung DE3 zur Neuroneneinheit 603.
Die Ausgangssignale (Zustandssignale) der Neuroneneinheiten (601 bis 603) werden zu den Axonsignal-Eingangsanschlüssen der Synapseneinheiten übertragen, die in der jeweiligen Spalte angeordnet sind. Genauer gesagt wird das Ausgangssignal der Neuroneneinheit 603 den Axonsignal-Eingangsanschlüssen der Synapseneinheiten 701, 704 und 707, das Ausgangssignal der Neuroneneinheit 602 den Axonsignal-Eingangsanschlüssen der Synapseneinheiten 702, 705 und 708 und das Ausgangssignal der Neuroneneinheit 601 den Axonsignal-Eingangsanschlüssen der Synapseneinheiten 703, 706 und 709 zugeführt, die in einer Spalte angeordnet sind.
Bei der in Fig. 2 gezeigten Struktur empfängt jede Synapseneinheit das Ausgangssignal einer einzelnen Neuroneneinheit. Diese Anordnung liefert die Struktur eines vollständig verbundenen Neuronalen Netzes. Wenn ein Synapsengewichtungswert symmetrisch ist (Wÿ=Wji), so kann eine einzelne Synapseneinheit zwei Synapsengewichtungen ausdrücken. Fig. 2 zeigt jedoch eine Struktur, bei der eine einzelne Synapseneinheit das Ausgangssignal einer einzelnen Neuroneneinheit empfängt und einen Gewichtungsstrom zu einer entsprechenden Neuroneneinheit überträgt, um die Verbindung zwischen jeder Neuroneneinheit und jeder Synapseneinheit auszudrücken. Die vorliegende Erfindung kann auf ein allgemeines Neuronales Netz ohne Annahme einer Symmetrie angewandt werden.
Die Neuroneneinheiten 601, 602 und 603 können Eingangsdaten Datain zu benachbarten Neuroneneinheiten schieben, und sie können extern zugeführte Lerndaten und Attributdaten (Daten zum Definieren sichtbarer und versteckter Neuronen) zu den benachbarten Neuroneneinheiten übertragen. Neuroneneinheiten 601, 602 und 603 übertragen und verriegeln die eingegebenen Attributdaten und Lerninformationen in Abhängigkeit von einem Taktsignal CLK. Ferner können die Neuroneneinheiten 601, 602 und 603 in Abhängigkeit von einem Steuersignal IselO ihre Ausgangssignale verriegeln und diese zu den benachbarten Neuroneneinheiten schieben. Solche Schiebevorgänge werden in Abhängigkeit von einem Taktsignal CK ausgeführt. Wenn das Neuronale Netz arbeitet, um auf einen bestimmten Zustand hin zu konvergieren, werden die Ausgangssignale der Neuroneneinheiten 601, 602 und 603 intern verriegelt und nacheinander als Ausgangsdaten Dataout in Abhängigkeit vom Taktsignal CK ausgegeben.
Die Neuronetzeinheit 501 korrigiert die Synapsengewichtungswerte in Abhängigkeit von Steuersignalen Ts, ACP- und ACP+.
Die Vorrichtung zum Ausdrücken eines Neuronalen Netzes weist ferner eine Eingangsdaten-Steuereinheit 502 zum Auswählen der Eingangsdaten, die der Neuronetzeinheit 501 zugeführt werden, auf. Die Eingangsdaten-Steuereinheit 502 weist einen Pseudozufallszahlgenerator 503, der ein Muster von Pseudozufallszahlen erzeugt, und einen Selektor 504, der ein extern zugeführtes Lernmuster (oder Aufrufeingangsmuster) oder das Zufallsmuster vom Pseudozufallszahlgenerator 503 in Abhängigkeit von einem Steuersignal IselR auswählt, um dieses der Neuronetzeinheit 501 zuzuführen.
Fig. 3 zeigt die Struktur der Synapseneinheiten 701 bis 709 von Fig. 2. In Fig. 3 wird die Synapseneinheit allgemein durch das Symbol DSY bezeichnet. Die Synapseneinheit DSY empfängt Ausgangssignale (Zustandssignale) Si und Sj von zwei Neuroneneinheiten und gibt Gewichtungsströme Wji * Si und Wji * Sj aus. Die in Fig. 3 gezeigte Synapseneinheit DSY drückt symmetrische Synapsengewichtungen (Wÿ=Wji) und zwei Synapseneinheiten, die an symmetrischen Stellen bezüglich einer nach rechts oben verlaufenden Diagonalen in der Anordnung der Synapseneinheiten 701 bis 709 in der Form der Matrix von Fig. 2 liegen, aus.
Die in Fig. 3 gezeigte Synapseneinheit DSY, deren Struktur ähnlich der Struktur der in den Fig. 32 bis 34 gezeigten Synapseneinheit ist, weist eine Synapsengewichtungswert-Speicherschaltung 101, eine Synapsengewichtung-Korrekturschaltung 103, Synapsenkopplungsschaltungen 105 und 107 und eine Lernsteuerschaltung 111 auf. Die Synapsenkopplungsschaltungen 105 und 107, deren Struktur ähnlich der in Fig. 34 gezeigten ist, führen eine Gewichtung in Übereinstimmung mit der in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherten Synapsengewichtungswertinformation aus, um Signale Wÿ * Sj bzw. Wÿ * Si auszugeben.
Die Synapsengewichtungswert-Speicherschaltung 101 wird von einem Kondensator C1 gebildet, um den Synapsengewichtungswert durch die im Kondensator C1 gespeicherte Ladungsmenge auszudrücken. Die Synapsengewichtung-Korrekturschaltung 103 weist Dioden und Ladungspumpkondensatoren in einer ähnlichen Struktur wie der in Fig. 34 gezeigten auf. Struktur und Betrieb der Schaltungen 101, 103, 105 und 107 sind ähnlich wie oben unter Bezugnahme auf die Fig. 32 bis 35 beschrieben worden ist. Daher wird die Beschreibung hier weggelassen. Der Synapsengewichtungswert der Synapsengewichtungswert-Speicherschaltung 101 wird erhöht, wenn ein Korrektursteuersignal I zugeführt wird, während sich der Wert reduziert, wenn ein Korrektursteuersignal D zugeführt wird.
Die Lernsteuerschaltung 111 weist eine 2-Eingangs-NAND-Schaltung G100, die Ausgangssignale (Zustandssignale) Si und Sj von zwei zugehörigen Neuroneneinheiten empfängt, eine D-Latch-Schaltung G101, die das Ausgangssignal der NAND-Schaltung G100 in Abhängigkeit vom Steuersignal Ts verriegelt, und eine Inverterschaltung G102, die das Steuersignal Ts empfängt, auf. Das Steuersignal Ts ist ein Impulssignal, das nur während der Plus-Phase des Lernmodus von einem hohen Pegel auf einen niedrigen Pegel abfällt, und normalerweise auf einem hohen Pegel liegt. Die D-Latch-Schaltung G101 nimmt in Abhängigkeit von einem niedrigen Pegel des Signals Ts einen Durchlaßzustand ein, während in Abhängigkeit vom Anstieg des Steuersignals Ts das am Eingang D zugeführte Ausgangssignal der NAND-Schaltung G100 verriegelt und am Ausgang Q abgegeben wird.
Die Lernsteuerschaltung 111 weist ferner eine 3-Eingangs-NOR- Schaltung G102, die die Ausgangssignale von der D-Latch-Schaltung G101, der Inverterschaltung G102 und der NAND-Schaltung G100 empfängt, eine 3-Eingangs-NOR-Schaltung G104, die die Ausgangssignale von der D-Latch-Schaltung G101 und der NOR-Schaltung G103 sowie das Steuersignal ACP+ empfängt, und eine 3-Eingangs-NOR- Schaltung G105, die die Ausgangssignale von der NOR-Schaltung G103 und der NAND-Schaltung G100 sowie das Steuersignal ACP- empfängt, auf. Die Steuersignale ACP+ und ACP- geben einen Plus-Phasen-Zyklus bzw. einen Minus-Phasen-Zyklus an. Nach dieser Ausführungsform fallen die Steuersignale ACP+ und ACP- nur dann gleichzeitig von hohen Pegeln auf niedrige Pegel, wenn der Synapsengewichtungswert korrigiert werden soll, nachdem ein Plus-Phasen-Vorgang und ein Minus-Phasen-Vorgang abgeschlossen worden sind. Nun wird der Betrieb der Lernsteuerschaltung 111 kurz beschrieben.
In einem Plus-Phasen-Vorgang sind die Zustände der sichtbaren Neuronen zum Betreiben des Neuronalen Netzes auf externe Lerndaten fixiert. Wenn das Neuronale Netz konvergiert, fällt das Steuersignal Ts für eine vorbestimmte Zeitspanne von einem hohen auf einen niedrigen Pegel. In Abhängigkeit vom Anstieg dieses Steuersignals Ts verriegelt die D-Latch-Schaltung G101 das Ausgangssignal der NAND- Schaltung G100 und gibt es aus. Wenn die Ausgangssignale (Zustandssignale) Si und Sj beide auf hohen Pegeln liegen, verriegelt die D-Latch-Schaltung G101 ein Signal mit niedrigem Pegel. Wenn mindestens eines der Ausgangssignale (Zustandssignale) Si und Sj auf einem niedrigen Pegel liegt, verriegelt die D-Latch- Schaltung G101 ein Signal mit hohem Pegel.
Dann wird eine Minus-Phase ausgeführt. Wenn das Neuronale Netz im Minus-Phasen-Vorgang zu einem bestimmten Zustand konvergiert ist, fallen die Steuersignale ACP+ und ACP- beide von hohen Pegeln auf niedrige Pegel mit kleiner Impulsbreite. Gleichzeitig liegt das Steuersignal Ts auf einem hohen Pegel. In der Minus-Phase sinkt das Ausgangssignal der NAND-Schaltung G100 auf einen niedrigen Pegel, wenn die Ausgangssignale Si und Sj beide auf einem hohen Pegel liegen. Die NOR-Schaltungen G103 und G105 geben nur dann Signale mit hohem Pegel aus, wenn alle zugeführten Eingangssignale auf niedrigem Pegel liegen. Das Steuersignal I oder D′ wird erzeugt, wenn die Ausgangssignale Si und Sj beide auf einem hohen Pegel sind. Die Signale Si und Sj steigen beide auf einen hohen Pegel an, so daß der Synapsengewichtungswert in den folgenden drei Fällen korrigiert werden soll.
  • (i) Wenn die Signale Si und Sj sowohl in der Plus- als auch in der Minus-Phase beide auf einem hohen Pegel liegen, gibt die Gatterschaltung G103 ein Signal mit hohem Pegel ab, weil alle drei Eingangssignale auf einem niedrigen Pegel sind. In diesem Zustand geben die Gatterschaltungen G104 und G105 beide Signale mit niedrigem Pegel ab. In diesem Zustand werden daher keine Korrektursignale I und D′ erzeugt, und der Synapsengewichtungswert wird schließlich nicht korrigiert.
  • (ii) Wenn die Signale Si und Sj nur in der Plus-Phase beide auf einem hohen Pegel liegen, befindet sich das Ausgangssignal der Gatterschaltung G100 nach dem Abschluß der Minus-Phase auf einem hohen Pegel, und die Ausgangssignale der Gatterschaltungen G103 und G105 fallen auf einen niedrigen Pegel ab. Daher erzeugt die Gatterschaltung G104 das pulsierende Korrektursteuersignal I in Abhängigkeit vom Steuersignal ACP+, um den Synapsengewichtungswert zu erhöhen.
  • iii) Wenn die Signale Si und Sj nur in der Minus-Phase beide auf einem hohen Pegel liegen, verriegelt die D-Latch-Schaltung G101 ein Signal mit hohem Pegel und gibt es aus, wodurch die Ausgangssignale der Gatterschaltungen G103 und G104 auf einen niedrigen Pegel abfallen. In diesem Fall erzeugt die Gatterschaltung G105 daher das Korrektursteuersignal D′ in Abhängigkeit vom Steuersignal ACP-, so daß der in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherte Synapsengewichtungswert reduziert wird.
Der Umfang der Korrektur des Synapsengewichtungswerts wird durch die Impulsbreiten (und die Impulsanzahl) der Steuersignale ACP+ und ACP- bestimmt.
In Übereinstimmung mit dem oben angeführten Betrieb wird eine Lernregel ähnlich derjenigen der in Fig. 33 gezeigten Lernsteuerschaltung implementiert, so daß der in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherte Synapsengewichtungswert entsprechend der folgenden sogenannten Mean- Field-Approximation der Boltzmann-Maschine korrigiert wird:
ΔWÿ = η * (Si⁺ * Sj⁺-Si⁻ * Sj⁻)
Der Umfang ΔWÿ der Korrektur des Synapsengewichtungswerts wird durch den Lernkoeffizienten η bestimmt. Der Wert des Lernkoeffizienten η kann mit der Impulsanzahl und/oder der Impulsbreite der Steuersignale ACP+ und ACP- verändert werden.
Fig. 4 zeigt eine beispielhafte Struktur jeder Neuroneneinheit von Fig. 2. In Fig. 4 bezeichnet das Symbol NU allgemein die in Fig. 2 gezeigten Neuroneneinheiten 601 bis 603. Die Neuroneneinheit NU weist ein erstes Schieberegister SR(T) zum Verriegeln und Verschieben der Lerndaten und ein zweites Schieberegister SR(P) zum Speichern der Daten, die das Attribut (sichtbar oder versteckt) der Neuroneneinheit NU angeben, auf. Die Lern- und Attributdaten können den Schieberegistern SR(T) und SR(P) über voneinander verschiedene Pfade zugeführt werden. Ferner können die Schiebebetriebe der Schieberegister SR(T) und SR(P) durch voneinander unabhängige Schiebetaktsignale ausgeführt werden, und Lern- und Attributdaten können über denselben Pfad zugeführt werden.
Die Neuroneneinheit NU weist ferner eine 2-Eingangs-NOR-Schaltung GNR, die die Attributdaten vom Schieberegister SR(P) und das Steuersignal IselS empfängt, einen Selektor SEL1, der die im Schieberegister SR(T) gespeicherten Lerndaten oder das Ausgangssignal von einem Komparator Comp in Abhängigkeit vom Ausgangssignal der NOR-Schaltung GNR auswählt, einen Inverterpuffer B′′, der das Ausgangssignal des Selektors SEL1 puffert und ausgibt, und einen weiteren Selektor SEL2, der die im Schieberegister SR(T) gespeicherten Lerndaten oder das Ausgangssignal vom Inverterpuffer B′′ in Abhängigkeit vom Steuersignal IselO auswählt, auf.
Die im Schieberegister SR(P) gespeicherten Attributdaten können durch einen Ausschiebevorgang zur benachbarten Neuroneneinheit übertragen werden. Ferner kann das Ausgangssignal des Selektors SEL2 zu einem Lerndaten-Speicherschieberegister SR(T) der benachbarten Neuroneneinheit übertragen werden. Die Schieberegister SR(T) und SR(P) und der Selektor SEL2 werden so verwendet, daß es möglich ist, die Lerndaten und die Attributdaten durch einen Schiebevorgang bei der Einstellung eines Anfangszustands nacheinander durch die Neuroneneinheit NU zu leiten, wodurch jede Neuroneneinheit NU in einen gewünschten Zustand versetzt wird. Beim Datenlesen wird das Ausgangssignal des Selektors SEL2 vom Schieberegister SR(T) ausgeschoben, so daß die Ausgangsdaten über die jeweilige Neuroneneinheit NU nacheinander ausgeschoben werden.
Der Inverterpuffer B′′ gibt ein Signal aus, das den Zustand des Neurons angibt, der durch einen internen Aktivwert des Neurons NU oder Lerninformation bestimmt ist. Dieses Signal wird auf die entsprechende Axonsignalleitung als Zustandssignal Si übertragen.
Der Komparator Comp weist einen positiven Eingang, der eine Referenzspannung Vref empfängt, und einen negativen Eingang, der einen gewichteten und auf eine Dendritsignalleitung DE übertragenen Strom ΣWÿ * Sj empfängt, auf. Die Summe Σ wird für den Index j ausgeführt. Es werden nämlich gewichtete Ströme von zugehörigen Synapsenkopplungsschaltungen aufaddiert und zum negativen Eingang des Komparators Comp übertragen. Die Dendritsignalleitung DE, die mit dem negativen Eingang des Komparators Comp verbunden ist, weist die Funktion eines sogenannten Krichhoff-Addierers auf. Der Komparator Comp besitzt die Funktion des Neuroneneinheitenkörpers, d. h. die Funktion des Umwandlungsabschnitts B′ im typischen Diagramm von Fig. 29. Die Referenzspannung Vref weist die Funktion eines Schwellenwertes für die Neuroneneinheit auf. Der Komparator Comp gibt ein Signal mit hohem Pegel ab, wenn das Produkt eines Summenstroms Is, der an seinem negativen Eingang empfangen wird, mit dem Wert des Widerstands RL kleiner als die Referenzspannung Vref ist. Das Ausgangssignal des Komparators Comp wird über den Selektor SEL1 und den Inverterpuffer B′′ invertiert und auf die entsprechende Axonsignalleitung als Zustandssignal Si übertragen. Wenn der Komparator Comp aus einem Differenzverstärker besteht, drückt sein Ausgangssignal einen Zustand entsprechend dem internen Aktivwert des Neurons aus. Das simulierte Glühen einer Boltzmann-Maschine kann durch gedämpftes Oszillieren der Referenzspannung Vref implementiert werden, wie später im Detail beschrieben wird.
Fig. 5 zeigt die Beziehungen zwischen den Attributen der Neuroneneinheiten und den Ausgangszuständen (Ausgangssignalen Si) der Neuronen. In Fig. 5 bezeichnen Symbole mit einem Querstrich logisch invertierte Signale.
Das Attribut eines jeden Neurons wird durch die Daten des Schieberegisters SR(P) bestimmt. Wenn eine Neuroneneinheit als verstecktes Neuron definiert ist, ist im Schieberegister SR(P) ein Signal mit hohem Pegel gespeichert. Wenn eine Neuroneneinheit als sichtbares Neuron eines Ausgangs- oder Eingangsneurons definiert ist, ist im Schieberegister SR(P) ein Wert mit niedrigem Pegel gespeichert.
Für eine als verstecktes Neuron d 91765 00070 552 001000280000000200012000285919165400040 0002004239308 00004 91646efinierte Neuroneneinheit ist der Zustand des Steuersignals IselS beliebig. In diesem Fall fällt das Ausgangssignal der NOR-Schaltung GNR in Abhängigkeit von einem Signal mit hohem Pegel vom Schieberegister SR(P) auf einen niedrigen Pegel. In diesem Zustand wählt der Selektor SEL1 das Ausgangssignal des Komparators Comp aus und führt es dem Invertpuffer B′′ zu. Damit gibt die Neuroneneinheit, die als versteckte Einheit definiert ist, ein invertiertes Signal/Comp des Ausgangssignals vom Komparator Comp als Zustandssignal Si aus.
In einer Neuroneneinheit, die als Ausgangsneuron definiert ist, ist es notwendig, ein Zustandssignal Si entsprechend dem Ausgangssignal vom Komparator Comp während eines Aufrufbetriebs auszugeben. In der Plus-Phase des Lernmodus ist es erforderlich, Daten entsprechend den Lerndaten als Zustandssignal Si auszugeben. In der Neuroneneinheit, die als Ausgangsneuron definiert ist, wird daher das Steuersignal IselS während des Aufrufbetriebs oder wenn die Lernphase eine Minus- Phase ist auf einen hohen Pegel gesetzt, während das Steuersignal IselS auf einen niedrigen Pegel gesetzt wird, wenn der Lernmodus in einer Plus-Phase ist. Wenn das Steuersignal IselS auf einem hohen Pegel liegt, wählt der Selektor SEL1 das Ausgangssignal des Komparators Comp aus und überträgt es ähnlich wie die Neuroneneinheit, die als verstecktes Neuron definiert ist, zum Inverterpuffer B. Wenn das Steuersignal IselS auf einem niedrigen Pegel liegt, wählt der Selektor SEL1 die im Schieberegister SR(T) gespeicherten Daten aus und führt sie dem Inverterpuffer B zu.
In einer Neuroneneinheit, die als Eingangsneuron definiert ist, ist das Steuersignal IselS auf einem niedrigen Pegel fixiert. In diesem Fall wählt der Selektor SEL1 die im Schieberegister SR(T) gespeicherten Daten aus und führt sie dem Inverterpuffer B′′ zu. In einem Aufrufbetrieb werden Aufrufeingangsdaten dem Schieberegister SR(T) anstelle der Lerndaten zugeführt. In der Neuroneneinheit, die als Eingangsneuron definiert ist, werden dem Inverterpuffer B üblicherweise Daten zugeführt, die im Schieberegister SR(T) gespeichert sind.
Das Steuersignal IselO wird zur Steuerung des Schiebebetriebs des Schieberegisters SR(T) benutzt, das in der Neuroneneinheit NU gebildet ist. Wenn das Steuersignal IselO auf einen niedrigen Pegel fällt, wählt der Selektor SEL2 das Ausgangssignal des Inverterpuffers B′′ aus und führt es einem Schieberegister SR(T) einer benachbarten Neuroneneinheit zu. Wenn das Steuersignal IselO auf einem hohen Pegel ist, wählt der Selektor SEL2 die im Schieberegister SR(T) gespeicherten Daten aus und führt sie dem Schieberegister SR(T) der benachbarten Neuroneneinheit zu.
Nun wird der Betrieb kurz beschrieben. Das Attribut der Neuroneneinheit wird durch einen Einschiebvorgang über das Schieberegister SR(P) eingestellt. Im Lernmodus werden die Lerndaten im Schieberegister SR(T) durch einen Einschiebvorgang über den Selektor SEL2 eingestellt. In diesem Zustand wird der Lernvorgang ausgeführt. In einer Plus-Phase wird das Steuersignal IselS in einer Ausgangs- und einer Eingangsneuroneneinheit auf einen niedrigen Pegel gesetzt. Damit geht das Zustandssignal Si der Neuroneneinheit NU auf einen Wert, der den Lerndaten entspricht, die im Schieberegister SR(T) eingestellt worden sind. In einem versteckten Neuron wählt der Selektor SEL1 das Ausgangssignal des Komparators Comp aus, so daß ein Zustandssignal Si entsprechend dem internen Aktivwert ausgegeben wird.
In einer Minus-Phase wird das Steuersignal IselS für eine Ausgangsneuroneneinheit auf einen hohen Pegel und für eine Eingangsneuroneneinheit auf einen niedrigen Pegel gesetzt. In diesem Zustand ist nur der Ausgangszustand der Eingangsneuroneneinheit auf den Lerndaten fixiert, während die versteckte Neuroneneinheit und die Ausgangsneuroneneinheit Zustandssignale Si entsprechend den internen Aktivwerten ausgeben.
In einem Aufrufbetrieb wird das Signal in einer ähnlichen Weise wie der Minus-Phase eingestellt. Damit geben die versteckte Neuroneneinheit und die Ausgangsneuroneneinheit interne Aktivwerte entsprechend den Aufrufeingangsdaten aus, die anstelle der Lerndaten zugeführt werden, während die Eingangsneuroneneinheit ein Zustandssignal entsprechend dem Eingangsmuster ausgibt.
Um den Zustand der jeweiligen Neuroneneinheit auszulesen, nachdem das Neuronale Netz konvergiert hat, wird das Steuersignal IselO auf einen niedrigen Pegel gesetzt, so daß das Ausgangssignal des Inverterpuffers B ausgewählt und zur benachbarten Neuroneneinheit übertragen wird. Damit wird der Zustand der jeweiligen Neuroneneinheit NU im Schieberegister SR(T) der benachbarten Neuroneneinheit eingestellt. Dann wird das Steuersignal IselO auf einen hohen Pegel gesetzt, um den Inhalt des Schieberegisters SR(T) durch das Taktsignal auszuschieben. Damit kann das Zustandssignal der jeweiligen Neuroneneinheit NU nach außerhalb des Neuronalen Netzes ausgelesen werden.
Fig. 6 zeigt eine exemplarische Struktur der Eingangsdaten- Steuereinheit 502 von Fig. 2. Wie in Fig. 6 gezeigt ist, weist die Eingangsdaten-Steuereinheit 502 zwölf Stufen von kaskadenförmig verbundenen Schieberegistern SR10, SR12, . . ., SR32 auf. Jedes der Schieberegister SR10 bis SR32 führt einen Schiebevorgang in Abhängigkeit von 2-Phasen-Taktsignalen T1 und T2 aus. Jedes der Schieberegister SR10 bis SR32 verriegelt nämlich ein Signal an seinem Eingang D, wenn das Taktsignal T1 zugeführt wird, und gibt die verriegelten Daten an seinem Ausgang Q in Abhängigkeit vom Taktsignal T2 ab.
Die Eingangsdaten-Steuereinheit 502 weist ferner eine 2-Eingangs- ExOR-Schaltung EX1, die die Q-Ausgangssignale der Schieberegister SR24 und SR32 empfängt, eine 2-Eingangs-ExOR-Schaltung EX2, die die Ausgangssignale der ExOR-Schaltung EX1 und des Schieberegisters SR18 empfängt, eine ExOR-Schaltung EX3, die das Ausgangssignal der ExOR- Schaltung EX2 und das Q-Ausgangssignal des Schieberegisters SR10 empfängt, und einen Selektor SLT, der das Ausgangssignal von der ExOR-Schaltung EX3 oder die Lerndaten (oder die Aufrufeingangsdaten) in Abhängigkeit vom Auswahlsteuersignal IselR auswählt, auf. Das Ausgangssignal des Selektors SLT wird dem Anfangsstufen- Schieberegister SR10 zugeführt. Das Schieberegister SR32 gibt die Eingangsdaten Din an die Neuronetzeinheit 501 aus. Nun wird der Betrieb der Eingangsdaten-Steuereinheit 502 beschrieben.
Um Anfangsdaten in den jeweiligen Schieberegistern SR10 bis SR32 einzustellen, wird der Selektor SLT in einen Lerndaten- Auswahlzustand (D2-Eingangsauswahlzustand) versetzt. Der Auswahlzustand des Selektors SLT wird durch das Steuersignal IselR bestimmt. Die Lerndaten oder ein beliebiger Eingangsdatenzug wird zugeführt, und dann werden die Taktsignale T1 und T2 erzeugt. Damit werden die Anfangsdaten in den Schieberegistern SR10 bis SR32 eingestellt. Wenn der Selektor SLT in den D2-Eingangsauswahlzustand versetzt und die Taktsignale T1 und T2 zugeführt worden sind, überträgt das Schieberegister SR32 die Lerndaten als Eingangsdaten Datain zur Neuronetzeinheit 501. Dieser Vorgang wird ausgeführt, wenn im Lernmodus ein Lernmuster in der Neuroneneinheit NU eingestellt worden ist.
Nachdem in den Schieberegistern SR10 bis SR32 die Anfangsdaten eingestellt worden sind, wird der Selektor SLT in den D1- Eingangsauswahlzustand versetzt. In diesem Zustand wählt der Selektor SLT das Ausgangssignal der ExOR-Schaltung EX3 aus und überträgt es zum Schieberegister SR10.
Allgemein gibt eine ExOR-Schaltung ein Signal mit niedrigem Pegel aus, wenn die Logikwerte beider Eingänge miteinander übereinstimmen, während es ein Signal mit hohem Pegel ausgibt, wenn die Logikwerte der Eingänge nicht übereinstimmen. Betrachtet sei, daß Daten mit hohem Pegel in den Schieberegistern SR10 bis SR32 eingestellt worden sind. In diesem Fall fällt das Ausgangssignal der ExOR-Schaltung EX1 auf einen niedrigen Pegel ab und das Ausgangssignal der ExOR- Schaltung EX2 steigt auf einen hohen Pegel an. Somit fällt das Ausgangssignal der ExOR-Schaltung EX3 auf einen niedrigen Pegel ab, so daß ein Wert mit niedrigem Pegel in das Schieberegister SR10 eingeschrieben wird.
Im nächsten Taktzyklus fällt das Ausgangssignal des Schieberegisters SR10 auf einen niedrigen Pegel ab. Zu diesem Zeitpunkt liegen die Ausgangssignale der Schieberegister SR10 bis SR32 weiter auf einem hohen Pegel, und das Ausgangssignal der ExOR-Schaltung EX1 fällt auf einen niedrigen Pegel ab, während das Ausgangssignal der ExOR- Schaltung EX2 auf einen hohen Pegel ansteigt. Weil das Ausgangssignal des Schieberegisters SR10 auf einem niedrigen Pegel liegt und das Ausgangssignal der ExOR-Schaltung EX2 auf einem hohen Pegel ist, steigt das Ausgangssignal der ExOR-Schaltung EX3 auf einen hohen Pegel an. Dieser Vorgang wird anschließend so wiederholt, daß das Schieberegister SR32 in Abhängigkeit von den Anfangsdaten eine Pseudozufallszahlfolge erzeugt. Diese Pseudozufallszahlfolge wird als Pseudozufallszahlfolge bezeichnet, weil in der Datenfolge keine Regelmäßigkeit auftritt, obwohl die erzeugten Daten durch den Datensatz im Anfangszustand vorhersagbar sind. Diese Pseudozufallszahlfolge wird der Neuronetzeinheit 501 in einem Auffrischungsvorgang als Zufallsmuster zugeführt.
Die Struktur des Funktionsblocks der Eingangsdaten-Steuereinheit 502 von Fig. 2 stimmt nicht eins-zu-eins mit dem Funktionsblock der Eingangsdaten-Steuereinheit 502 von Fig. 6 überein. Diese Einheiten sind jedoch funktional äquivalent, und die Eingangsdaten- Steuereinheit 502 führt der Neuronetzeinheit 501 das Lernmuster oder die Pseudozufallszahlfolge zu.
Wenn das Lernmuster ausgewählt und der Neuronetzeinheit 501 zugeführt wird, lernt diese Neuronetzeinheit 501 das zugeführte Lernmuster entsprechend den Lernsteuersignalen Ts, ACP+, ACP- und IselS. Das Lernmuster wird variiert und der Lernvorgang wiederholt, wodurch die Speicherung der Lernmuster des Neuronalen Netzes, d. h. der Täler der potentiellen Energie, vertieft wird.
In einem Auffrischungsbetrieb wird eine Pseudozufallszahlfolge vom Pseudozufallszahlgenerator 503 zugeführt. In diesem Zustand wird das Pseudozufallszahlenmuster als Lerndaten betrachtet, um das Lernen auszuführen, wodurch die Synapsengewichtungswerte entsprechend den Ausgangszuständen der jeweiligen Neuronen korrigiert werden, um die Speicherung wiederzugewinnen.
Wie oben beschrieben worden ist, dient die Schaltung zum Korrigieren der Synapsengewichtungswerte in einem Lernmodusbetrieb auch als Synapsengewichtung-Korrekturschaltung in einem Auffrischungsbetrieb, wodurch die Synapsengewichtungswertinformation zuverlässig und auf einfache Weise mit hoher Geschwindigkeit aufgefrischt werden kann, ohne eine komplizierte Schaltungsstruktur hinzuzufügen. Der Betrieb der in den Fig. 2 bis 6 gezeigten Vorrichtung zum Ausdrücken eines Neuronalen Netzes wird nun unter Bezugnahme auf Fig. 7 beschrieben, die das zugehörige Betriebssignaldiagramm zeigt.
Die Vorrichtung zum Ausdrücken eines Neuronalen Netzes nach der ersten Ausführungsform der vorliegenden Erfindung weist drei Betriebsmodi auf, nämlich einen Lernmodus, einen Informationshaltemodus (aufrufbarer Modus) und einen Auffrischungsmodus. Nun wird der Betrieb im Lernmodus beschrieben.
Im Lernmodus werden die Eingabe der Lernmusterdaten, die Plus- und Minus-Phasen des Lernmodus und die Gewichtungswertkorrektur ausgeführt.
Der Neuronetzeinheit 501 wird ein Lernmuster als Eingangsdaten Datain über die Eingangsdaten-Steuereinheit 502 zusammen mit einem Schieberegister-Taktsignal CK zugeführt, so daß die Lerndaten im Schieberegister SR(T) einer jeden Neuroneneinheit NU eingestellt werden. Wenn das Attribut der Neuroneneinheit NU in diesem Lernmodus noch nicht definiert ist, können in ähnlicher Weise mittels des Taktsignals CK Attributdaten im Schieberegister SR(P) eingestellt werden. Die Vorgänge der Lernphase werden ausgeführt, nachdem die Lerndaten und die Attributdaten in der Neuroneneinheit NU eingestellt worden sind.
Zuerst wird der Plus-Phasen-Betrieb ausgeführt. In diesem Zustand wird das Steuersignal IselS auf einen niedrigen Pegel eingestellt. In der Plus-Phase gibt eine Neuroneneinheit NU, die als sichtbares Neuron definiert ist, daher ein Zustandssignal Si entsprechend den Lerndaten, die als Eingangs- und Ausgangsdaten zugeführt werden, aus. Andererseits gibt eine Neuroneneinheit NU, die als verstecktes Neuron definiert ist, ein Zustandssignal Si entsprechend ihres internen Aktivwerts aus. In diesem Zustand wird auf die Konvergenz des Zustands der Vorrichtung zum Ausdrücken eines Neuronalen Netzes gewartet. Es wird nämlich auf die Konvergenz des internen Zustands der Vorrichtung zum Ausdrücken eines Neuronalen Netzes gewartet. Ein solcher Konvergenzzustand wird als eingestellt betrachtet, indem man feststellt, ob eine vorbestimmte Zeitspanne verstrichen ist. Wenn entschieden worden ist, daß das Neuronale Netz in der Plus-Phase einen Gleichgewichtszustand erreicht hat, wird das Steuersignal Ts erzeugt. Es wird nämlich ein negatives Impulssignal als Steuersignal Ts erzeugt. Damit wird ein invertiertes Signal des Produkts (Si * Sj) der Zustandssignale in der D-Latch-Schaltung G101 (siehe Fig. 3) der Synapsenschaltung gespeichert. Damit ist die Plus-Phase abgeschlossen.
Dann wird der Minus-Phasen-Betrieb ausgeführt. Das Steuersignal IselS wird auf einen hohen Pegel eingestellt. In diesen Zustand erzeugt nur die Neuroneneinheit NU, die als Eingangsneuron definiert ist, ein Zustandssignal entsprechend den Lerndaten, während die als versteckte und Ausgangsdaten definierten Neuronen Zustandssignale Si entsprechend ihrer internen Aktivwerte ausgeben. Wenn entschieden wird, daß die Vorrichtung zum Ausdrücken eines Neuronalen Netzes einen Gleichgewichtszustand erreicht hat, nachdem sie für eine vorbestimmte Zeitspanne gearbeitet hat, werden in diesem Zustand die Steuersignale ACP+ und ACP- erzeugt. Es werden nämlich negative Impulse als Steuersignale ACP+ und ACP- erzeugt. Damit wird der in der Synapsengewichtungswert-Speicherschaltung 101 gespeicherte Synapsengewichtungswert in jeder der Synapsenschaltungen DSY korrigiert. Zu diesem Zeitpunkt wird der Synapsengewichtungswert nach der Mean-Field-Approximation der oben angeführten Lernregel für die Boltzmann-Maschine korrigiert.
Dieser Vorgang wird für jedes Lernmuster wiederholt, so daß die Vorrichtung zum Ausdrücken eines Neuronalen Netzes die Speicherung für alle Lernmuster vertiefen kann. Wenn die Lernmuster in Übereinstimmung mit einer Auftretungswahrscheinlichkeit zugeführt worden sind und das erforderliche Lernen abgeschlossen ist, tritt die Vorrichtung zum Ausdrücken eines Neuronalen Netzes in den Haltemodus ein, der einen Aufrufbetrieb erlaubt.
Im Haltemodus (aufrufbarer Modus) werden alle Lernsteuersignale ACP+, ACP- und Ts auf einem hohen Pegel fixiert. Die Steuersignale IselS und IselO werden nur im Aufrufbetrieb erzeugt.
Im Schieberegister SR(T) der Neuroneneinheit, die als Eingangsneuron definiert ist, werden ähnlich wie beim vorher erwähnten Einstellen der Lernmusterdaten Aufrufeingangs-Musterdaten synchron zum Taktsignal CK eingestellt.
Dann wird das Steuersignal IselS für eine vorbestimmte Zeitspanne auf einen niedrigen Pegel gesetzt. Die Anfangszustände der sichtbaren Neuronen werden entsprechend dem Aufrufeingangsdatenmuster eingestellt. Dann wird das Steuersignal IselS auf einen hohen Pegel angehoben. In diesem Zustand wird nur der Ausgangszustand (Zustandssignal Si) derjenigen Neuroneneinheit, die als Eingangsneuron definiert ist, auf dem Aufrufeingangsdatenmuster fixiert. In diesem Zustand wird darauf gewartet, daß sich die Vorrichtung zum Ausdrücken eines Neuronalen Netzes auf einen Gleichgewichtszustand einstellt. Wenn entschieden wird, daß die Vorrichtung zum Ausdrücken eines Neuronalen Netzes einen Gleichgewichtszustand erreicht hat, wird das Steuersignal IselO auf einen niedrigen Pegel gesenkt. Damit wird der Ausgangszustand (Zustandssignal Si) der Neuroneneinheit NU über den Selektor SEL2 (siehe Fig. 4) zur benachbarten Neuroneneinheit übertragen und in deren Schieberegister SR(T) gespeichert. Anschließend wird das Taktsignal CK zugeführt, so daß die in den Schieberegistern SR(T) gespeicherten Daten nacheinander ausgeschoben werden.
Das Ausgangszustandssignal der Neuroneneinheit NU wird vom Schieberegister SR(T) der benachbarten Neuroneneinheit verriegelt.
Daher gibt eine Neuroneneinheit, die dem Ausgangsanschluß am nächsten ist, Daten in Übereinstimmung mit dem Steuersignal IselO ab. Wenn ein Ein-Stufen-Schieberegister für diese am nächsten liegende Neuroneneinheit gebildet ist, ist es möglich, die Ausgangszustandssignale der Neuroneneinheiten in Übereinstimmung mit dem Taktsignal CK auszuschieben. Ein solcher Aufrufvorgang kann zu einem beliebigen Zeitpunkt während der Haltephase ausgeführt werden, und der Aufrufvorgang wird auf der Basis von bereits gelernter Speicherinformation entsprechend dem Eingangsdatenmuster ausgeführt, um das entsprechende Ausgangsdatenmuster auszugeben.
Der Auffrischungsbetrieb entsprechend der vorliegenden Erfindung wird ausgeführt, nachdem eine vorbestimmte Haltezeitspanne verstrichen ist. In diesem Auffrischungszeitraum wird die vom Pseudozufallszahlgenerator 503 (siehe Fig. 2) erzeugte Pseudozufallszahlenfolge (Zufallsmuster) in der Eingangsdaten- Steuereinheit 502 anstelle des Lernmuster ausgewählt und der Neuronetzeinheit 501 zugeführt. In diesem Zustand wird das Steuersignal IsekR auf einen niedrigen Pegel eingestellt, und der in Fig. 6 gezeigte Selektor SLT wird in einen Zustand zum Auswählen des Ausgangssignals der ExOR-Schaltung EX3 versetzt. Das von der Pseudozufallszahlenfolge gebildete Zufallsdatenmuster wird in den Neuroneneinheiten NU ähnlich wie bei der oben angeführten Einstellung des Lerndatenmusters und des Eingangsdatenmusters in Abhängigkeit vom Taktsignal CK eingestellt.
Nach dieser Einstellung des Zufallsdatenmusters wird das Steuersignal IselS zuerst auf einen niedrigen Pegel eingestellt. Die Neuronetzeinheit 501 wird in diesem Zustand getrieben. In diesem Zustand ändert sich nur der Zustand der Neuroneneinheit NU, die als verstecktes Neuron definiert ist. Damit wird der Anfangszustand der Neuronetzeinheit 501 eingestellt. Wenn die Neuronetzeinheit 501 nach dem Verstreichen einer vorbestimmten Zeitspanne einen Gleichgewichtszustand erreicht hat, wird das Steuersignal IselS auf einen hohen Pegel angehoben. In diesem Zustand ist nur der Ausgangszustand der Neuroneneinheit NU fixiert, die als Eingangsneuron definiert ist. Die Neuronetzeinheit 501 wird in diesem Zustand erneut getrieben. Wenn die Neuronetzeinheit 501 nach dem Verstreichen einer vorbestimmten Zeitspanne einen Gleichgewichtszustand erreicht hat, wird entschieden, daß die Neuronetzeinheit 501 auf einen zu speichernden Zustand hin konvergiert hat, d. h. eine Zustand, der ein Tal der potentiellen Energie liefert, wie in Fig. 1 gezeigt ist. Zu diesem Zeitpunkt wird ein negatives Impulssignal als Steuersignal ACP+ zugeführt. Das Steuersignal Ts wird zu diesem Zeitpunkt auf einen niedrigen Pegel gesenkt, so daß die D-Latch-Schaltung G101 (siehe Fig. 3) in einem Zustand ist, um das Ausgangssignal der NAND-Schaltung G100 (siehe Fig. 3) durchzulassen. In diesem Zustand wird der Synapsengewichtungswert in jeder Synapseneinheit mit Zustandssignalen Si und Sj, die beide auf einem hohen Pegel sind, vergrößert. Das entspricht einem Zustand, in dem seine Speicherung vertieft wird. Das wird als Lay-to-Heart-Zustand bezeichnet.
Dann wird das Steuersignal IselS von einem hohen zu einem niedrigen Pegel geändert, und die Neuronetzeinheit 501 wird erneut getrieben. In diesem Zustand entsprechen die Ausgangszustände der sichtbaren Neuronen dem zugeführten Zufallsdatenmuster, während nur der Zustand der versteckten Neuronen entsprechend dem Zufallsdatenmuster geändert wird. Wenn der Zustand der Neuronetzeinheit 501 konvergiert hat, ist der konvergierte Zustand von einem durch Lernen gespeicherten Zustand vollständig unabhängig (entsprechend dem Punkt r1, r2 oder r3 in Fig. 1). Dieser Zustand wird nicht gespeichert. In diesem Zustand wird das Steuersignal ACP- auf einen niedrigen Pegel gesenkt. Das Steuersignal Ts wird auf einen niedrigen Pegel gesetzt. In diesem Zustand wird der Synapsengewichtungswert in jeder Synapseneinheit unabhängig vom Lay-to-Heart-Zyklus vermindert, die Zustandssignale Si und Sj mit einem hohen Pegel aufweist.
Die oben angeführten Vorgänge werden für verschiedene Zufallsmuster ausgeführt. Die Reihe von Auffrischungsvorgängen wird wiederholt, um die Täler der potentiellen Energie zu vertiefen, die durch Ladungslecks vermindert worden sind. Selbst wenn die durch Lernen erhaltene Speicherung am Verschwinden ist, wird die verschwindende Speicherung auf der Basis der gespeicherten Information wiederhergestellt.
Mit der Beendigung des Auffrischungsbetriebs tritt die Vorrichtung erneut in einen Haltebetrieb ein, um einen Aufrufbetrieb zu ermöglichen. Nachdem eine vorbestimmte Zeitspanne während des Haltebetriebs verstrichen ist, wird ein Auffrischungsvorgang gestartet. Dieser Auffrischungsvorgang wird periodisch und zyklisch eingefügt.
Der Auffrischungsvorgang kann so eingestellt werden, daß ein (nicht gezeigter) Zeitgeber, der in der Vorrichtung gebildet ist, ein Auffrischungs-Anweisungssignal erzeugt, nachdem im Haltebetrieb eine vorbestimmte Zeitspanne verstrichen ist, um die notwendigen Steuerschaltungen zu treiben.
Alternativ kann eine extern gebildete Verarbeitungseinheit, wie z. B. eine zentrale Verarbeitungseinheit, periodisch Auffrischungsanweisungen zuführen, um den Auffrischungsbetrieb auszuführen.
Wie oben beschrieben worden ist, ist es in einem nicht "Vergessensvorgang" des Auffrischungsmodus möglich, die in Fig. 1 gezeigten Täler der potentiellen Energie ausreichend zu vertiefen, indem ein Zufallsdatenmuster als Aufrufeingangsmuster zugeführt wird, um die Vorrichtung zum Ausdrücken eines Neuronalen Netzes in einen Zustand zu konvergieren, der im Lay-to-Heart-Vorgang den am nächsten liegenden Minimalwert der Energie liefert und den Speicherzustand verstärkt, und das sichtbare Neuron auf dem Zufallsdatenmuster zu fixieren und ein Antilernen mit der Annahme auszuführen, daß der Zustand nicht gespeichert werden soll.
In diesem Fall kann im nicht bewußten Betrieb die Anzahl der Zuführungen von Impulsen des Steuersignals ACP- erhöht oder deren Impulsbreite kann in ausreichendem Maße verbreitert werden, um den Umfang der Korrektur des Synapsengewichtungswerts, d. h. des Lernkoeffizienten η zu erhöhen. Damit ist es möglich, die Täler der potentiellen Energie, die einen zu speichernden Zustand liefern, ausreichend zu vertiefen.
Obwohl der Anfangszustand im Aufrufbetrieb und im Auffrischungsbetrieb durch das Aufrufeingangsmuster bzw. das Zufallsdatenmuster eingestellt wird, wird dies ausgeführt, um das Tal der potentiellen Energie schneller zu finden, das dem Zustand am nächsten ist, der durch die gegebenen Eingangsdatenmuster oder das Zufallsdatenmuster geliefert wird.
(B) Zweite Ausführungsform
Beim oben angeführten Verfahren wird angenommen, daß alle konvergierten Zustände des Neuronalen Netzes mit dem Anfangszustand eines Zufallsmusters der Zufallszahlendaten gespeichert werden sollen (Zustände, die durch Lernen gespeichert sind). Im allgemeinen bewirkt das Neuronale Netz jedoch nicht notwendigerweise einen Übergang von einem beliebigen Anfangszustand zu einem gelernten und gespeicherten Zustand, weil es die Möglichkeit gibt, daß Punkte minimaler Energie in anderen als den gespeicherten Zuständen vorhanden sind.
Es wird eine Einrichtung zum Entscheiden, ob ein konvergierter Zustand eines Neuronalen Netzes gespeichert werden soll, gebildet. Eine solche Entscheidungseinrichtung wird durch ein zweites Neuronales Netz implementiert, das statische Synapsenschaltungen aufweist, die keinen Auffrischungsvorgang benötigen und Synapsengewichtungswerte für lange Zeit stabil halten kann.
Das zweite Neuronale Netz entscheidet auf der Basis des Ausgangssignals vom ersten Neuronalen Netz, ob ein konvergierter Zustand des ersten Neuronalen Netzes gespeichert werden soll. Um das Kriterium dieser Entscheidung zu bilden, lernt das zweite Neuronale Netz gleichzeitig mit dem Lernen des ersten Neuronalen Netzes oder unabhängig davon gegebene Datenmuster (Zustandsausgangsmuster von Neuroneneinheiten, die im ersten Neuronalen Netz gebildet sind), um zu entscheiden, ob die Muster Zuständen entsprechen, die gespeichert werden sollen (Lernmuster).
Fig. 8 zeigt einen Auffrischungsvorgang im Zusammenhang mit dem zweiten Neuronalen Netz, das als eine Entscheidungseinrichtung verwendet wird. Fig. 8(a) zeigt Beziehungen zwischen Zuständen des ersten Neuronalen Netzes, das einen Aufruf-, Lern- und Auffrischungsbetrieb ausführt, und den Niveaus der potentiellen Energie. In Fig. 8(a) zeigt die Abszisse die Zustände des ersten Neuronalen Netzes und die Ordinate die Niveaus der potentiellen Energie in den jeweiligen Zuständen. Die Kurve A stellt das Niveau der potentiellen Energie entsprechend einem Speicherzustand des ersten Neuronalen Netzes unmittelbar nach dem Lernen dar, und die Kurve B zeigt das Niveau der potentiellen Energie entsprechend einem Zustand, daß die Synapsengewichtungswerte durch Ladungslecks geändert worden sind, d. h. verschwindende Speicherzustände (d. h. vergessene Zustände). Die Kurve E stellt das Niveau der potentiellen Energie entsprechend einem Zustand dar, der durch einen Auffrischungsvorgang wiedergewonnen wurde.
Fig. 8(b) zeigt die Eingangszustände des zweiten Neuronalen Netzes, d. h. die internen Zustände des ersten Neuronalen Netzes, wobei die Ordinate das Ausgangssignal des zweiten Neuronalen Netzes darstellt. In Fig. 8(b) zeigt das Polygon F die Ein-/Ausgangskennlinie des zweiten Neuronalen Netzes nach dem Lernen, während das Symbol H einen zu speichernden Zustand und das Symbol L einen nicht zu speichernden Zustand darstellt.
Die Fig. 8(a) und 8(b) zeigen die Zustände des ersten Neuronalen Netzes und die Eingangszustände des zweiten Neuronalen Netzes so, daß sie zueinander ausgerichtet sind. Das Ausgangssignal des zweiten Neuronalen Netzes steigt in Bereichen auf einen hohen Pegel an, die den Tälern der potentiellen Energie des ersten Neuronalen Netzes entsprechen. Wenn das Ausgangssignal des zweiten Neuronalen Netzes auf einem hohen Pegel liegt, wird der Speicherzustand des ersten Neuronalen Netzes verstärkt, ansonsten abgeschwächt. Es werden die folgenden Vorgänge ausgeführt.
  • i) Ein Zufallsdatenmuster wird für einen Anfangszustand eingegeben, und dann beginnt das erste Neuronale Netz zu arbeiten. Das erste Neuronale Netz konvergiert auf einen Zustand, der ein Tal der potentiellen Energie liefert, das dem Zufallsmuster am nächsten liegt.
  • ii) Das zweite Neuronale Netz empfängt das Zustandsausgangssignal des ersten Neuronalen Netzes und entscheidet, ob der konvergierte Zustand des ersten Neuronalen Netzes gespeichert werden soll.
  • iii) Wenn das zweite Neuronale Netz ein Signal mit hohem Pegel ausgibt, um anzugeben, daß der Zustand gespeichert werden soll, wird der Synapsengewichtungswert der Synapsen im ersten Neuronalen Netz verstärkt, bei denen die zugehörigen Neuronen in feuernden Zuständen sind.
    Wenn das zweite Neuronale Netz ein Signal mit niedrigem Pegel ausgibt, um anzugeben, daß der Zustand nicht gespeichert werden soll, wird der Synapsengewichtungswert der Synapsen im ersten Neuronalen Netz vermindert, bei denen die zugehörigen Neuronen in feuernden Zuständen sind.
  • iv) Die oben angeführten Vorgänge (i) bis (iii) werden für verschiedene Zufallsmuster wiederholt ausgeführt.
In Übereinstimmung mit diesem Auffrischungsverfahren wird die Speicherung korrekt aufgefrischt, selbst wenn es Minimumpunkte gibt, die nicht gespeichert werden müssen, und es ist möglich, die Kurve E wieder zu speichern, die der in Fig. 8(a) gezeigten Kurve A ähnlich ist. Nun wird eine Struktur zum Implementieren des Auffrischungssystems unter Verwendung des zweiten Neuronalen Netzes beschrieben.
Fig. 9 zeigt die Gesamtstruktur einer Vorrichtung zum Ausdrücken eines Neuronalen Netzes nach der zweiten Ausführungsform der vorliegenden Erfindung. Wie in Fig. 9 gezeigt ist, weist die Vorrichtung zum Ausdrücken eines Neuronalen Netzes eine erste Neuronetzeinheit 501, eine zweite Neuronetzeinheit 505, die einen Teil oder alle Ausgangssignale von der ersten Neuronetzeinheit 501 empfängt, und eine Steuereinheit 550, die den Auffrischungsbetrieb der ersten Neuronetzeinheit 501 in Übereinstimmung mit dem Ausgangssignal der zweiten Neuronetzeinheit 505 in einem Auffrischungsbetrieb steuert, auf. Die Steuereinheit 550 steuert auch die Lern- und Aufrufvorgänge der ersten Neuronetzeinheit 501.
Die Steuereinheit 550 weist eine Eingangsdaten-Steuereinheit 502 zum Auswählen von Daten, die der ersten Neuronetzeinheit 501 zugeführt werden, auf. Die Struktur der Eingangsdaten-Steuereinheit 502 ist ähnlich der Struktur der in Fig. 2 gezeigten Einheit 502, und weist einen Zufallszahlengenerator 503 und einen Selektor 504 auf. Struktur und Betrieb der Eingangsdaten-Steuereinheit 502 sind ähnlich wie bei der unter Bezugnahme auf die Fig. 2 und 6 beschriebenen Einheit. Daher wird deren Beschreibung hier weggelassen.
Die Steuereinheit 550 weist ferner eine Substeuereinheit 551 zum Steuern des Auffrischungsbetriebs der ersten Neuronetzeinheit 501 auf. Diese Substeuereinheit 551 weist eine Entscheidungsmuster- Speicherschaltung 507, die Ausgangsmuster der zweiten Neuronetzeinheit 505 speichert, d. h. Lernmuster für die zweite Neuronetzeinheit 505, eine Übereinstimmungserfassungsschaltung 506 zur Erfassung von Übereinstimmungen der Datenmuster, die in der Entscheidungsmuster-Speicherschaltung 507 gespeichert sind, und der Ausgangsdatenmuster der zweiten Neuronetzeinheit 505, und eine Auffrischungssteuerschaltung 509, die Lernsteuersignale ACP+ und ACP- in Abhängigkeit von den Steuersignalen/ACP und MODE und dem Ausgangssignal von der Übereinstimmungserfassungsschaltung 506 erzeugt, auf.
Das Steuersignal MODE, das ein Modusumschaltsignal darstellt, bestimmt einen Lernbetriebsmodus oder einen Auffrischungsbetriebsmodus. Das Steuersignal /ACP dient als Referenzsignal für die Lernsteuersignale ACP+ und ACP-, so daß das Lernsteuersignal ACP+ oder ACP- in Abhängigkeit vom Steuersignal /ACP zusammen mit einer Erhöhung oder Erniedrigung der Synapsengewichtungswerte erzeugt wird.
Die Steuereinheit 550 weist ferner eine Pufferschaltung 555 auf, die ein Steuersignal Ts und das Ausgangssignal von der Auffrischungssteuerschaltung 509 empfängt, um die Steuersignale Ts, ACP- und ACP+ zu erzeugen.
Fig. 10 zeigt eine beispielhafte Struktur der Übereinstimmungserfassungsschaltung 506 von Fig. 9. Wie in Fig. 10 gezeigt ist, weist die zweite Neuronetzeinheit 505 n Ausgangsneuronen auf. Die Übereinstimmungserfassungsschaltung 506 weist n ExOR-Schaltungen EXR1 bis EXRn und eine NOR-Schaltung NRG, die die Ausgangssignale von den ExOR-Schaltungen EXR1 bis EXRn empfängt, auf. Jede der ExOR-Schaltungen EXR1 bis EXRn empfängt ein entsprechendes Bit Tm der Entscheidungsmuster von der Entscheidungsmuster-Speicherschaltung 507 und ein entsprechendes Bit Om der Ausgangsmuster der zweiten Neuronetzeinheit 505. Das Symbol m bezeichnet ganze Zahlen zwischen 1 und n.
Die ExOR-Schaltungen EXR1 bis EXRn geben Signale mit niedrigem Pegel aus, wenn die Logikpegel der empfangenen Eingangssignale miteinander übereinstimmen, während die NOR-Schaltung NRG ein Signal mit hohem Pegel ausgibt, wenn alle empfangenen Eingangssignale auf einem niedrigen Pegel sind. Bei der in Fig. 10 gezeigten Struktur steigt das Übereinstimmungserfassungssignal Ma daher auf einen hohen Pegel an, wenn das von den Datenbits T1 bis Tn gebildete Entscheidungsmuster mit dem von den Bits O1 bis On gebildeten Ausgangsmuster übereinstimmt.
Die Entscheidungsmuster-Speicherschaltung 507 kann ein einzelnes oder eine Mehrzahl von Entscheidungsmustern speichern. Wenn die Entscheidungsmuster-Speicherschaltung 507 eine Mehrzahl von Entscheidungsmustern speichert, werden diese Entscheidungsmuster nacheinander der Übereinstimmungserfassungsschaltung 506 zugeführt. Die Ausgangssignale Ma der Übereinstimmungserfassungsschaltung 506 entsprechend den jeweiligen Entscheidungsmustern werden in Latch- Schaltungen der Schieberegister gespeichert. Die logische Summe OR der Signale Ma, die in den Schieberegister-Latches verriegelt sind, werden zur Erzeugung eines endgültigen Übereinstimmungserfassungssignals Ma verwendet. Die zweite Neuronetzeinheit 505 lernt die in der Entscheidungsmuster- Speicherschaltung 507 als Lernmuster gespeicherten Entscheidungsmuster, wie später beschrieben wird.
Fig. 11 zeigt eine beispielhafte Struktur der Auffrischungssteuerschaltung von Fig. 9. Wie in Fig. 11 gezeigt ist, weist die Auffrischungssteuerschaltung 509 eine 2-Eingangs-NAND- Schaltung ND10, die das Modusumschaltsignal MODE und das Übereinstimmungserfassungssignal Ma empfängt, eine Inverterschaltung GI, die das Übereinstimmungserfassungssignal Ma invertiert, eine 2- Eingangs-NAND-Schaltung ND12, die das Modusumschaltsignal MODE und das Ausgangssignal der Inverterschaltung GI empfängt, eine 2- Eingangs-NAND-Schaltung ND14, die das Lernsteuersignal /ACP und das Ausgangssignal der NAND-Schaltung ND12 empfängt, und eine 2- Eingangs-NAND-Schaltung ND11, die das Lernsteuersignal /ACP und das Ausgangssignal der NAND-Schaltung ND10 empfängt, auf. Die NAND- Schaltung ND14 erzeugt das Lernsteuersignal ACP+ zum Erhöhen des Synapsengewichtungswerts, während die NAND-Schaltung ND16 das Lernsteuersignal ACP- zur Verminderung des Synapsengewichtungswerts erzeugt.
Die Pufferschaltung 555 weist einen Puffer BU2, der das Steuersignal Ts empfängt, einen Puffer BU4, der das Ausgangssignal der NAND- Schaltung ND16 empfängt, und einen Puffer BU6, der das Ausgangssignal der NAND-Schaltung ND14 empfängt, auf. Unter Bezugnahme auf Fig. 11 wird nun der Betrieb dieser Auffrischungssteuerschaltung 509 beschrieben.
Bei Lern- und Aufrufvorgängen wird das Modusumschaltsignal MODE auf einen niedrigen Pegel eingestellt. Daher geben die NAND-Schaltungen ND10 und ND12 unabhängig vom Logikzustand des Übereinstimmungserfassungssignals Ma Signale mit einem hohen Pegel aus. Damit dienen die NAND-Schaltungen ND14 und ND16 als Inverterschaltungen, so daß die Lernsteuersignale ACP+ und ACP- in Abhängigkeit vom Lernsteuersignal /ACP erzeugt werden. Dieses Lernsteuersignal /ACP wird nur in der Lernphase erzeugt. In der Lernphase werden die Synapsengewichtungswerte daher entsprechend den Steuersignalen ACP+ und ACP- korrigiert.
In einer Auffrischungsphase wird das Modusumschaltsignal MODE auf einen hohen Pegel eingestellt. Die NAND-Schaltungen ND10 und ND12 dienen als Inverterschaltungen. Wenn sich das Übereinstimmungserfassungssignal auf einem hohen Pegel befindet, fällt das Ausgangssignal der NAND-Schaltung ND10 auf einen niedrigen Pegel, während das Ausgangssignal der NAND-Schaltung ND12 auf einen hohen Pegel ansteigt. In diesem Zustand steigt das Ausgangssignal der NAND-Schaltung ND16 auf einen hohen Pegel an, während die NAND- Schaltung ND14 als Inverter dient, um ein invertiertes Signal des Lernsteuersignals /ACP auszugeben.
Wenn die zweite Neuronetzeinheit 505 entscheidet, daß ein konvergierter Zustand der ersten Neuronetzeinheit 501 gespeichert werden soll, wird daher das Lernsteuersignal ACP+ erzeugt, um die Speicherung der ersten Neuronetzeinheit 501 zu verstärken.
Wenn das Übereinstimmungserfassungssignal Ma auf einem niedrigen Pegel liegt, steigt das Ausgangssignal der NAND-Schaltung ND10 auf einen hohen Pegel an, und das Ausgangssignal der NAND-Schaltung ND12 fällt auf einen niedrigen Pegel ab. In diesem Zustand steigt das Ausgangssignal der NAND-Schaltung ND14 auf einen hohen Pegel an, während die NAND-Schaltung ND16 als Inverter dient, um das Steuersignal in Abhängigkeit vom Lernsteuersignal /ACP auszugeben.
Wenn die zweite Neuronetzeinheit 505 nämlich entscheidet, daß ein konvergierter Zustand der ersten Neuronetzeinheit 501 nicht gespeichert werden soll, wird daher nur das Lernsteuersignal ACP- erzeugt, um die Speicherung des konvergierten Zustands der ersten Neuronetzeinheit 501 abzuschwächen.
Nun werden Struktur und Betrieb der ersten und zweiten Neuronetzeinheit 501 und 505 beschrieben.
Fig. 12 zeigt die Struktur der ersten Neuronetzeinheit 501. Wie in Fig. 12 gezeigt ist, ist die Struktur der Neuronetzeinheit 501 ähnlich der Struktur der in Fig. 2 gezeigten Neuronetzeinheit, und weist eine Matrix von Synapsenschaltungen DSY analogen Speichertyps, die Synapsengewichtungswertinformation in Kondensatoren speichern, sowie Neuroneneinheiten NU, die in einer Spalte angeordnet sind, auf. Struktur und Betrieb der Synapsenschaltungen DSY und der Neuroneneinheiten NU sind ähnlich denen, die oben unter Bezugnahme auf die Fig. 2 bis 5 beschrieben wurden. Daher wird die detaillierte Beschreibung hier weggelassen.
Fig. 12 zeigt die Struktur der ersten Neuronetzeinheit 501. Wie in Fig. 12 gezeigt ist, ist die Struktur der ersten Neuronetzeinheit 501 ähnlich der Struktur der in Fig. 2 dargestellten Neuronetzeinheit und weist eine Matrix von analogen Synapsenschaltungen DSY, die die Synapsengewichtungswertinformation in Kondensatoren speichern, und Neuroneneinheiten NU, die in einer Spalte angeordnet sind, auf. Struktur und Betrieb der Synapseneinheiten DSY und der Neuroneneinheiten NU sind ähnlich wie oben unter Bezugnahme auf die Fig. 2 bis 5 beschrieben worden ist. Daher wird deren detaillierte Beschreibung hier weggelassen.
Fig. 13 zeigt die Struktur der zweiten Neuronetzeinheit 505. Die zweite Neuronetzeinheit 505 weist eine Dreischichtstruktur auf mit Neuroneneinheiten 1801, 1802, . . ., 1803, die eine Zwischenschicht (versteckte Schicht) bilden, und Neuroneneinheiten 1901, . . ., 1902, die eine Ausgangsschicht bilden. Eine Eingangsschicht der zweiten Neuronetzeinheit 505 wird durch die jeweiligen Neuroneneinheiten der ersten Neuronetzeinheit 501 gebildet. Es ist nicht unbedingt notwendig, die Eingangsschicht der zweiten Neuronetzeinheit 505 durch alle Neuroneneinheiten der ersten Neuronetzeinheit 501 zu bilden.
Die Synapsenschaltungen 1001, 1002, . . ., 1009 sind zwischen der Eingangsschicht und den Neuroneneinheiten 1801 bis 1803 gebildet, die die Zwischenschicht bilden. Die Synapsenschaltungen 1101, 1102, . . ., 1106 sind zwischen den Neuroneneinheiten 1801 bis 1803, die die Zwischenschicht bilden, und den Neuroneneinheiten 1901, . . ., 1902, die die Ausgangsschicht bilden, geschaffen.
Wie in Fig. 13 gezeigt ist, werden die Ausgangssignale (Zustandssignale) der entsprechenden Neuroneneinheiten der ersten Neuronetzeinheit 501 zu Synapsenschaltungen SSY übertragen, die in einer Zeile angeordnet sind. Bei der in Fig. 13 dargestellten Struktur werden die Zustandssignale aller Neuroneneinheiten, die in der ersten Neuronetzeinheit 501 gebildet sind, als Eingangssignale der zweiten Neuronetzeinheit 505 verwendet. Die Ausgangssignale der Synapsenschaltungen, die in einer Spalte der Einheit 501 angeordnet sind, werden den entsprechenden Neuroneneinheiten der Zwischenschicht zugeführt. Wie in Fig. 13 gezeigt ist, speichern die Synapsenschaltungen, die in der zweiten Neuronetzeinheit 505 enthalten sind, Synapsengewichtungswertinformation als digitale Information ohne Kondensatoren, um diese Information stabil für lange Zeit zu halten. Damit benötigen die Synapsenschaltungen, die in der zweiten Neuronetzeinheit 505 enthalten sind, keinen Auffrischungsbetrieb, und daher werden diese als statische Synapsenschaltungen mit den Symbolen SSY bezeichnet.
Die zweite Neuronetzeinheit 505 führt ein Lernen entsprechend einer Lernregel aus, die als Back-Propagation (Rückwärtsausbreitung) durch die Synapsenschaltungen 1001 bis 1106 bezeichnet wird. Nun werden Struktur und Betrieb der Komponenten beschrieben, die die zweite Neuronetzeinheit 505 bilden.
Die Synapsenschaltungen SSY weisen zwei Arten von Schaltungen auf, nämlich Synapsenschaltungen 1001 bis 1009 ersten Typs zum Ausdrücken der Kopplung der Eingangs- und der Zwischenschicht, und die Synapsenschaltungen 1121 bis 1106 zweiten Typs zum Ausdrücken der Kopplung der Zwischenschicht und der Ausgangsschicht.
Fig. 14 zeigt die Struktur der Synapsenschaltungen 1001 bis 1009 zum Ausdrücken der Kopplung der Eingangs- und der Zwischenschicht. In Fig. 14 stellt das Symbol SSY1 die Synapsenschaltung ersten Typs dar. Die Synapsenschaltung SSY1 ersten Typs weist eine Synapsengewichtungswert-Speicherschaltung 1701, die Synapsengewichtungswertinformation speichert, eine Lernsteuerschaltung 1703 zum Korrigieren eines Synapsengewichtungswerts, der in der Synapsengewichtungswert- Speicherschaltung 1701 gespeichert ist, und eine Synapsenkopplungsschaltung 1702, die einen gewichteten Strom Io ausgibt, der das Produkt eines Zustandssignals Si und eines in der Synapsengewichtungswert-Speicherschaltung 1701 gespeicherten Synapsengewichtungswerts Wji angibt, auf.
Die Synapsengewichtungswert-Speicherschaltung 1701, die ihre Anfangsdaten verschieben kann, kann Synapsengewichtungswertinformation I von einer benachbarten Synapsenschaltung empfangen und diese einer weiteren benachbarten Synapsenschaltung als Synapsengewichtungswertinformation O zuführen. Damit ist es möglich, Anfangswerte der jeweiligen Synapsenschaltungen extern einzustellen.
Fig. 15 zeigt groß die Gesamtstruktur der Synapsengewichtungswert- Speicherschaltung 1701. Wie in Fig. 15 gezeigt ist, wird die Synapsengewichtungswertinformation mit vier Bit ausgedrückt. Die Synapsengewichtungswert-Speicherschaltung 1701 kann Synapsengewichtungswertdaten I1, /I1 bis I4, /I4 von einer benachbarten Synapsengewichtungswert-Speicherschaltung parallel empfangen und den Synapsengewichtungswert zu einer benachbarten Synapsengewichtungswert-Speicherschaltung über Anschlüsse O1, /O1 bis O4, /O4 parallel ausschieben. Die Speicherdaten der Synapsengewichtungswert-Speicherschaltung 1701 werden in Abhängigkeit von einem Voreinstellsignal Prs eingestellt. Ferner wird in Abhängigkeit von einem Aktivierungssignal Enable von der Lernsteuerschaltung 1703 ein Zählbetrieb der Synapsengewichtungswert-Speicherschaltung 1701 gestartet, um die Anzahl der Taktsignale, die am Taktsignalanschluß CK empfangen werden, in Abhängigkeit von einem Herauf-/Herunterzähl-Befehlssignal Up/Down von der Lernsteuerschaltung 1703 herauf- oder herunterzuzählen.
Die Synapsengewichtungswert-Speicherschaltung 1701 ermittelt, ob an den Eingangsanschlüssen I1, /I1 bis I4, /I4 empfangene Signale verriegelt und ausgeschoben werden oder ein Zählvorgang in Abhängigkeit von den Steuersignalen Enable und Up/Down von der Lernsteuerschaltung 1703 und einem Auswahlsteuersignal S3′ ausgeführt wird. Ein der Synapsengewichtungswert-Speicherschaltung 1701 zugeführtes Signal bitWkj gibt die Stelle des Synapsengewichtungswerts an, um anzuzeigen, welche Stelle des Synapsengewichtungswerts Wji zugeführt wird. Ein Taktsignal CKS wird dem Taktsignalanschluß CK in Abhängigkeit vom Bitsignal bitWkj zugeführt, um die Erhöhung oder Erniedrigung des Zählwerts in der Synapsengewichtungswert-Speicherschaltung 1701 einzustellen. Wenn das Bitsignal bitWkj die nullte Stelle angibt, wird das Taktsignal CKS mit einem Verhältnis 1 zugeführt, während das Taktsignal CKS mit einem Verhältnis 2 zugeführt wird, wenn das Bitsignal bitWkj die erste Stelle angibt. Die Impulsbreite des Bitsignals bitWkj kann variiert werden, wobei die Stellennummer durch diese ausgedrückt wird, um die Anzahl der durchgelaufenen Taktsignale CKS einzustellen. Das Bitsignal bitWkj wird verwendet, weil die zweite Neuronetzeinheit 505 eine Vorwärtsausbreitungsstruktur aufweist, die im folgenden detailliert beschrieben wird, um das Lernen durch Back- Propagation zu implementieren.
Fig. 16 zeigt eine spezielle Struktur für einen 4-Bit-Zähler zum Herauf- und Herunterzählen, der durch die in Fig. 15 gezeigte Synapsengewichtungswert-Speicherschaltung 1701 gebildet wird. Wie in Fig. 16 gezeigt ist, weist die Synapsengewichtungswert- Speicherschaltung 1701 JK-Flip-Flops JF1 bis JF4 zum Speichern von 4-Bit-Synapsengewichtungswertdaten und Selektoren SL1a, SL1b bis SL4a, SL4b zum Zuführen von Eingangsdaten an die JK-Flip-Flops JF1 bis JF4 auf. Die Selektoren SL1a und SL1b wählen entweder die externen Einstelldaten I1 und /I1 oder ein Heraufzähl- /Herunterzählsignal aus, um diese den J- und K-Eingängen des JK- Flip-Flops JF1 zuzuführen.
Die Selektoren SL2a und SL2b führen entweder die externen Daten I2 und /I2 oder das Heraufzähl-/Herunterzählsignal den J- und K- Eingängen des JK-Flip-Flops JF2 zu. Die Selektoren SL3a und SL3b führen entweder die Einstelldatenbits I3 und /I3 oder das Heraufzähl-/Herunterzählsignal den J- bzw. K-Eingängen des JK-Flip- Flops JF3 zu. Die Selektoren SL4a und SL4b führen entweder die Einstelldatenbits I4 und /I4 oder das Heraufzähl-/Herunterzählsignal den J- und K-Eingängen des JK-Flip-Flops JF4 zu. Das Heraufzähl- /Herunterzählsignal besteht aus Zähldatenbits, die aus einem Zählvorgang im Betrieb der Synapsengewichtungswert-Speicherschaltung 1701 resultieren.
Die Synapsengewichtungswert-Speicherschaltung 1701 weist ferner eine Inverterschaltung GA1, die das Aktivierungssignal Enable empfängt, eine NOR-Schaltung GA2, die die Ausgangssignale von den Gatterschaltungen GA4 und GA5 empfängt, eine NAND-Schaltung GA15, die die Q-Ausgangssignale der JK-Flip-Flops JF1 bis JF4 empfängt, eine NAND-Schaltung GA16, die die /Q-Ausgangssignale der JK-Flip- Flops JF1 bis JF4 empfängt, eine Inverterschaltung GA3, die das Herauf-/Herunterzähl-Befehlssignal Up/Down empfängt, eine NOR- Schaltung GA4, die die Ausgangssignale von der Inverterschaltung GA3 und der NAND-Schaltung GA15 empfängt, und eine NOR-Schaltung GA5, die das Herauf-/Herunterzähl-Befehlssignal Up/Down und das Ausgangssignal der NAND-Schaltung GA16 empfängt, auf. Das Ausgangssignal der NOR-Schaltung GA5 wird den Selektoren SL1a und SL1b zugeführt.
Für das JK-Flip-Flop JF2 weist die Synapsengewichtungswert- Speicherschaltung 1701 eine AND-Schaltung GA6, die das Ausgangssignal der NOR-Schaltung GA2, das /Q-Ausgangssignal des JK- Flip-Flops JF1 und das Ausgangssignal der Inverterschaltung GA3 empfängt, eine AND-Schaltung GA7, die das Q-Ausgangssignal des JK- Flip-Flops JF1, das Ausgangssignal der NOR-Schaltung GA2 und das Herauf-/Herunterzähl-Befehlssignal Up/Down empfängt, und eine OR- Schaltung GA8, die die Ausgangssignale der AND-Schaltungen GA6 und GA7 empfängt, auf. Das Ausgangssignal der OR-Schaltung GA8 wird den Selektoren SL2a und SL2b zugeführt.
Für das JK-Flip-Flop JF3 weist die Synapsengewichtungswert- Speicherschaltung 1701 eine AND-Schaltung GA9, die die /Q- Ausgangssignale der JK-Flip-Flops JF1 und JF2 und die Ausgangssignale der NOR-Schaltung GA2 und der Inverterschaltung GA3 empfängt, eine AND-Schaltung GA10, die die Q-Ausgangssignale der JK- Flip-Flops JF1 und JF2, das Ausgangssignal der NOR-Schaltung GA2 und das Herauf-/Herunterzähl-Befehlssignal Up/Down empfängt, und eine OR-Schaltung GA11, die die Ausgangssignale der AND-Schaltungen GA9 und GA10 empfängt, auf. Das Ausgangssignal der OR-Schaltung GA11 wird den Selektoren SL3a und SL3b zugeführt.
Für das JK-Flip-Flop JF4 weist die Synapsengewichtungswert- Speicherschaltung 1701 eine AND-Schaltung GA12, die die /Q- Ausgangssignale der JK-Flip-Flops JF1, JF2 und JF3 und die Ausgangssignale der NOR-Schaltung GA2 und der Inverterschaltung GA3 empfängt, eine AND-Schaltung GA13, die die Q-Ausgangssignale der JK- Flip-Flops JF1 bis JF2, das Ausgangssignal der NOR-Schaltung GA2 und das Herauf-/Herunterzähl-Befehlssignal Up/Down empfängt, und eine OR-Schaltung GA14, die die Ausgangssignale der AND-Schaltungen GA12 und GA13 empfängt, auf. Das Ausgangssignal der OR-Schaltung GA14 wird den Selektoren SL4a und SL4b zugeführt. Nun wird der Betrieb beschrieben.
Allgemein gibt ein JK-Flip-Flop Signale an seinen Q- und /Q- Ausgängen aus, die an seinen J- und K-Eingängen empfangen wurden, wenn ein Taktsignal zugeführt wird. Wenn die Selektoren SL1a, SL1b bis SL4a, SL4b die externen Initialisierungsdaten I1, /I1 bis I4, /I4 auswählen, geben die JK-Flip-Flops JF1 bis JF4 die externen Einstelldaten I1, /I1 bis I4, /I4 parallel an eine benachbarte Synapsengewichtungswert-Speicherschaltung als Ausgangsdaten O1, /O1 bis O4, /O4 in Abhängigkeit vom Taktsignal CK aus.
Wenn die beiden J- und K-Eingangssignale eines solchen JK-Flip-Flops null sind (niedriger Pegel), wird sein Ausgangszustand nicht invertiert, selbst wenn ein Taktsignal zugeführt wird, und der Ausgangszustand wird bei der Zuführung eines Taktsignals invertiert, wenn seine J- und K-Eingangssignale beide gleich "1" (hoher Pegel) sind.
Das Steuersignal S3′ entscheidet, ob die Synapsengewichtungswert- Speicherschaltung 1701 einen Zählvorgang ausführt oder die externen Einstelldaten ein- und ausschiebt. Das Rückstellsignal Prs wird zum Einstellen des Anfangszustands verwendet, und das JK-Flip-Flop JF4 empfängt diese Rückstellsignal Prs an seinem Löscheingang /CLR, während die JK-Flip-Flops JF1 bis JF3 dasselbe an ihren Voreinstelleingängen /PLRS empfangen. Der Ausgang des JK-Flip-Flops JF4 liefert das höchstwertige Bit und der Ausgang des JK-Flip-Flops JF1 das niederwertigste Bit.
Das Aktivierungssignal Enable wird in einem Herauf- /Herunterzählvorgang der Synapsengewichtungswert-Speicherschaltung 1701 erzeugt. Bevor der Zählwert der Synapsengewichtungswert- Speicherschaltung 1701 den Maximal- oder Minimalwert erreicht, befinden sich die Ausgangssignale der NAND-Schaltungen GA15 und GA16 beide auf einem hohen Pegel. In diesem Fall liegen die Ausgangssignale der Gatterschaltungen GA4 und GA5 beide auf einem niedrigen Pegel. Wenn das Aktivierungssignal Enable erzeugt wird, steigt das Ausgangssignal der NOR-Schaltung GA2 auf einen hohen Pegel an. Damit steigen die J- und K-Eingangssignale des JK-Flip- Flops JF1 beide auf einen hohen Pegel an, wobei das JK-Flip-Flop JF1 seinen Ausgangszustand in Abhängigkeit vom Taktsignal CK invertiert. Dieser Zustand wird zu den JK-Flip-Flops JF2 bis JF4 höherer Ordnung übertragen, um in Übereinstimmung mit dem vom Herauf- /Herunterzähl-Befehlssignal Up/Down angewiesenen Betriebsmodus einen Heraufzähl-/Herunterzählvorgang auszuführen. Wenn das Herauf-/Herunterzähl-Befehlssignal Up/Down auf einem hohen Pegel liegt, um einen Heraufzählvorgang anzugeben, steigt z. B. das Ausgangssignal der AND-Schaltung GA7 auf einen hohen Pegel an, wenn das Q-Ausgangssignal des JK-Flip-Flops JF1 auf einem hohen Pegel liegt, wodurch das JK-Flip-Flop JF2 seinen Ausgangszustand in Abhängigkeit vom Taktsignal CK invertiert. Damit invertieren die JK- Flip-Flops JF3 und JF4 ihre Ausgangszustände in Abhängigkeit vom Taktsignal CK, um den Herunterzählvorgang auszuführen.
Wenn das Herauf-/Herunterzähl-Befehlssignal Up/Down auf einem niedrigen Pegel liegt, gibt z. B. die AND-Schaltung GA6 ein Signal mit hohem Pegel aus, wenn das /Q-Ausgangssignal des JK-Flip-Flops JF1 auf einem hohen Pegel liegt. In diesem Zustand steigt das Ausgangssignal der OR-Schaltung GA8 auf einen hohen Pegel an, so daß der Ausgangszustand des JK-Flip-Flops JF2 in Abhängigkeit vom Taktsignal CK invertiert wird. Wenn die /Q-Ausgangssignale der JK- Flip-Flops JF1 und JF2 auf einen hohen Pegel ansteigen, wird der Ausgangszustand des JK-Flip-Flops JF3 in Abhängigkeit vom Taktsignal CK invertiert. Damit wird ein Herunterzählvorgang ausgeführt.
Wenn der Zählwert den Maximal- oder Minimalwert ("1111" oder "0000") erreicht, sinkt das Ausgangssignal der NAND-Schaltung GA15 oder GA16 auf einen niedrigen Pegel. In diesem Zustand steigt das Ausgangssignal der NOR-Schaltung GA4 oder GA5 auf einen hohen Pegel an, und das Ausgangssignal der NOR-Schaltung GA2 ist auf einem niedrigen Pegel fixiert. In diesem Zustand sind die J- und K- Eingangssignale der JK-Flip-Flops JF1 bis JF4 gleich null (niedriger Pegel), und daher werden ihre Ausgangszustände nicht verändert, selbst wenn das Taktsignal CK angelegt wird. Damit wird der Zählwert auf dem Maximal- oder Minimalwert gehalten. Daher dient die Synapsengewichtungswert-Speicherschaltung 1701 als Zähler mit Begrenzer, um den Maximal- oder Minimalwert zu halten, wenn sein Zählwert den Maximal- oder Minimalwert erreicht hat.
Fig. 17 zeigt die Struktur der in Fig. 14 dargestellten Lernsteuerschaltung 1703. Wie in Fig. 17 gezeigt ist, weist die Lernsteuerschaltung 1703 eine NAND-Schaltung G200, die die Zustandssignale Sk und Si empfängt, eine NAND-Schaltung G202, die das Zustandssignal Si und Lernmusterdaten Tk für die Ausgangsneuroneneinheit k empfängt, eine ExOR-Schaltung G204, die die Ausgangssignale der NAND-Schaltungen G200 und G202 empfängt, einen Selektor SL200, der eine der NAND-Schaltungen G200 und G202 in Abhängigkeit von einem Signal SgnWkj auswählt, das das Vorzeichen des Synapsengewichtungswert Wkj angibt, und eine AND-Schaltung G206, die das Ausgangssignal der ExOR-Schaltung G204 und die Signale MSj und MSk empfängt, auf. Das Signal Tk ist ein Lernmusterdatenbit, das für das k-te Neuron in der Ausgangsschicht zugeführt wird. Das Signal MSj gibt an, daß das Ausgangssignal (Zustandssignal) Sj des j-ten Neurons in der versteckten Schicht auf einem Zwischenwert liegt (Sj=0,5). Das Signal MSk gibt an, daß das Ausgangssignal (Zustandssignal) Sk des k-ten Neurons in der Ausgangsschicht auf einem Zwischenwert liegt.
Das Signal SgnWkj, das das Vorzeichen des Synapsengewichtungswert Wkj angibt, d. h. die Kopplungsstärke des versteckten Neurons j und des Ausgangsneurons k, sinkt auf einen niedrigen Pegel, wenn der Synapsengewichtungswert Wkj negativ ist, während das Signal auf einen hohen Pegel ansteigt, wenn der Synapsengewichtungswert Wkj null oder positiv ist.
In der zweiten Neuronetzeinheit 505 sind die Neuroneneinheiten in der Weise einer Vorwärtsausbreitung verbunden. Mit anderen Worten sind die Neuroneneinheiten unidirektional von der Eingangs- zur versteckten Schicht und von der versteckten zur Ausgangsschicht verbunden. Die Neuroneneinheiten sind in den jeweiligen Schichten nicht miteinander verbunden, und ein Eingangsmuster schreitet von der Eingangsschicht zur Ausgangsschicht fort. In einer solchen Back- Propagation-Anordnung werden die Synapsengewichtungswerte nacheinander von der Ausgangsschicht zur versteckten und dann zu den Eingangsschichten verändert, um den Unterschied zwischen einem gegenwärtigen Ausgangsdatenmuster und einem Lerndatenmuster zu vermindern.
Bei der in Fig. 17 gezeigten Struktur der Lernsteuerschaltung 1703 steigt das Ausgangssignal der ExOR-Schaltung G204 auf einen hohen Pegel an, wenn die Ausgangssignale der NAND-Schaltungen G200 und G202 nicht übereinstimmen. Das zeigt an, daß das Ausgangszustandssignal Sk der Neuroneneinheit k in der Ausgangsschicht noch nicht mit dem Lernmusterdatenbit Tk übereinstimmt. Wenn die Signale MSj und MSk beide auf hohen Pegeln liegen, die angeben, daß die Signale Sj und Sk auf Mittelwerten sind, erzeugt die AND-Schaltung G206 das Aktivierungssignal Enable, um den Synapsengewichtungswert zu korrigieren.
Der Selektor SL200 wählt das Ausgangssignal der NAND-Schaltung G200 aus, wenn das Vorzeichensignal SgnWkj auf einem hohen Pegel liegt und der Synapsengewichtungswert Wkj daher positiv ist, während der Selektor SL200 das Ausgangssignal der NAND-Schaltung G202 auswählt, wenn das Vorzeichensignal SgnWkj auf einem niedrigen Pegel liegt. Das Ausgangssignal des Selektors SL200 wird als Herauf- /Herunterzähl-Befehlssignal Up/Down verwendet. Damit implementiert die Lernsteuerschaltung 1703 einen ungefähren Ausdruck der folgenden Back-Propagation-Lernregel:
Das Zustandssignal der Eingangsneuroneneinheit wird von der entsprechenden Neuroneneinheit des ersten Neuronalen Netzes zugeführt. Das Bitsignal bitWkj wird implementiert, wenn die Taktsignale CK entsprechend der Stelle 2⁰, 2¹, . . . nach ihrer Bitposition (Stelle) in der Zählerstruktur von Fig. 16 erzeugt werden. Eine Struktur zur Ermittlung der Summe S im oben angeführten Back-Propagation-Ausdruck wird durch Bilden der jeweiligen Terme in einer gemultiplexten Weise implementiert. Diese Struktur wird nun beschrieben.
Zur Vereinfachung wird angenommen, daß die Eingangsschicht n Neuronen, die versteckte Schicht drei Neuronen und die Ausgangsschicht zwei Neuronen aufweist (Fig. 18). Die n Neuronen der Eingangsschicht werden mit I1 bis In, die drei Neuronen der versteckten Schicht mit H1, H2 und H3 und die zwei Neuronen der Ausgangsschicht mit O1 und O2 bezeichnet. Die Kopplungsstärken zwischen den Neuroneneinheiten werden durch das Symbol W mit der hinzugefügten Art der Neuronen bezeichnet.
Fig. 19 zeigt eine Struktur zur Implementierung des oben angeführten ungefähren Ausdrucks in Übereinstimmung mit dem in Fig. 18 gezeigten Back-Propagation-Modell.
Wie in Fig. 19 gezeigt ist, weist eine Summenimplementierungsschaltung einen Selektor 2002, der die Ausgangssignale (Zustandssignale) der Ausgangsneuroneneinheiten O1, O2 empfängt, einen Selektor 2004, der Lerndaten T1 und T2 für die Ausgangsneuroneneinheiten O1, O2 empfängt, einen Selektor 2006, der Vorzeichensignale Sgn(WO1H1) und Sgn(WO2H1) der Synapsengewichtungswerte der Neuroneneinheit H1 der versteckten Schicht und der Ausgangsneuroneneinheiten O1, O2 empfängt, einen Selektor 2008, der Vorzeichensignale Sgn(WO1H2) und Sgn(WO2H2) der Synapsengewichtungswerte der Neuroneneinheit H2 der versteckten Schicht und der Ausgangsneuroneneinheiten O1, O2 empfängt, und einen Selektor 2010, der Vorzeichensignale Sgn(WO1H3) und Sgn(WO2H3) der Synapsengewichtungswerte der Neuroneneinheit H3 der versteckten Schicht und der Ausgangsneuroneneinheiten O1, O2 empfängt, auf.
Die jeweiligen Selektoren 2002 bis 2010 wählen in Abhängigkeit von einem Auswahlsteuersignal IselBP nacheinander Signale aus, die ihren Eingängen zugeführt werden. Der Selektor 2002 gibt das Zustandssignal Sk der Ausgangsneuroneneinheit k aus. Der Selektor 2004 gibt das Lernmusterdatensignal Tk der Ausgangsneuroneneinheit k aus. Die Selektoren 2006, 2008 und 2010 erzeugen Vorzeichenkoeffizienten Sgn(WOkH1), Sgn(WOkH2) bzw. Sgn(WOkH3). Eine Latch-Schaltung 2012 empfängt die Ausgangssignale der Selektoren 2002 bis 2010, um sie in Abhängigkeit von einem Taktsignal T nacheinander an die Lernsteuerschaltung 1703 auszugeben, wodurch die Summe des oben angeführten Ausdrucks der Back-Propagation implementiert wird.
Obwohl Fig. 19 keine Pfade zum Ausgeben der Signale MSj und MSk darstellt, die Zwischenwerte anzeigen, können das Ausgangssignal MSk der Ausgangsneuroneneinheit k und das Zwischenwertsignal MSj der Ausgangsneuroneneinheit j der versteckten Schicht ähnlich wie oben in Abhängigkeit vom Taktsignal T verriegelt und ausgegeben werden.
Fig. 20 zeigt die Struktur der in Fig. 14 gezeigten Synapsenkopplungsschaltung 1702. Wie in Fig. 20 gezeigt ist, weist die Synapsenkopplungsschaltung 1702 p-Kanal MOS-Transistoren 3002, 3008, 3014 und 3020, die die Synapsengewichtungswerte /O1, /O2, /O3 und /O4 von der Synapsengewichtungswert-Speicherschaltung 1701 an ihren jeweiligen Gates empfangen, n-Kanal MOS-Transistoren 3004, 3010, 3016 und 3022, die die Synapsengewichtungswerte O1, O2, O3 und O4 an ihren jeweiligen Gates empfangen, p-Kanal MOS-Transistoren 3006, 3012, 3018 und 3024, die die Synapsengewichtungswertbits O1, O2, O3 und O4 an ihren jeweiligen Gates empfangen, einen p-Kanal MOS-Transistor 3028, der eine von den Transistoren 3002 und 3004 übertragene Vorspannung Vb3 an seinem Gate empfängt, einen p-Kanal MOS-Transistor 3030, der die von den Transistoren 3008 und 3010 übertragene Vorspannung Vb3 an seinem Gate empfängt, einen p-Kanal MOS-Transistor 3032, der die von den Transistoren 3014 und 3016 übertragene Vorspannung Vb3 an seinem Gate empfängt, und einen p- Kanal MOS-Transistor 3034, der die von den Transistoren 3020 und 3022 übertragene Vorspannung Vb3 an seinem Gate empfängt, auf.
Die ersten Leitungsanschlüsse der Transistoren 3028, 3030, 3032 und 3034 sind mit einer Referenzspannung Vdd gekoppelt, die auf dem Pegel einer Betriebsversorgungsspannung liegt. Die Transistoren 3006, 3012, 3018 und 3024 schalten in Abhängigkeit von den jeweiligen Synapsengewichtungswertbits O1 bis O4 durch.
Die Synapsenkopplungsschaltung 1702 weist ferner einen p-Kanal MOS- Transistor 3026, der die Vorspannung Vb3 an seinem Gate empfängt und die Referenzspannung Vdd überträgt, eine Inverterschaltung 3038, die das Zustandssignal Si empfängt, und einen p-Kanal MOS-Transistor 3036, der das Zustandssignal Si an seinem Gate empfängt, auf. Das Ausgangssignal der Inverterschaltung 3038 wird dem Gate eines p- Kanal MOS-Transistors 3040 zugeführt. Der Transistor 3036 liefert im durchgeschalteten Zustand einen Strom, der vom Transistor 3026 als gewichteter Strom Io übertragen wird. Der Transistor 3040 addiert die über die Transistoren 3028, 3030, 3032 und 3034 übertragenen Ströme auf und liefert im durchgeschalteten Zustand den gewichteten Strom Io.
Die Transistoren 3026, 3028, 3030, 3032 und 3034 weisen Spannungs- Strom-Wandlungsfunktionen auf, und ihre jeweiligen Gate-Breiten Wb, W1, W2, W3 und W4 werden im Verhältnis 8:1:2:4:8 eingestellt. Nun wird der Betrieb beschrieben.
Wenn das Zustandssignal Si auf einem niedrigen Pegel liegt und die Neuroneneinheit i (Eingangsneuron) in einem nicht-feuernden Zustand ist, ist der Transistor 3036 durchgeschaltet und der Transistor 3040 gesperrt. In diesem Zustand wandelt der Transistor 3026 durch die Leitfähigkeit, die durch die Vorspannung Vb3 bestimmt wird, die Referenzspannung Vdd in einen Strom um, so daß die vom Transistor 3026 in den Strom umgewandelte Information über den Transistor 3036 ausgegeben wird. Der durch die Vorspannung Vb3 definierte Strom wird als Vorstrom ausgegeben.
Wenn das Zustandssignal Si auf einem hohen Pegel liegt, sperrt der Transistor 3036 und der Transistor 3040 leitet. Das Synapsengewichtungswertbit O1 sei auf einem hohen Pegel. In diesem Fall schalten die Transistoren 3002 und 3004 durch und der Transistor 3006 sperrt. Die Vorspannung Vb3 wird dem Gate des Transistors 3028 zugeführt, der wiederum durchschaltet, um einen Strom proportional zu seiner Gate-Breite W1 auszugeben. Wenn das Synapsengewichtungswertbit O1 auf einem niedrigen Pegel liegt, sperren die Transistoren 3002 und 3004 und der Transistor 3006 schaltet durch. In diesem Zustand wird die Vorspannung Vb3 über den Transistor 3006 dem Gate des Transistors 3028 zugeführt, der wiederum sperrt. Somit schalten die Transistoren 3028, 3030, 3032 und 3034 in Abhängigkeit von den entsprechenden Synapsengewichtungswertbits O1, O2, O3 bzw. O4 durch, um Ströme proportional zu ihren Gate-Breiten auszugeben. Die Ströme von den Transistoren 3028 bis 3034 werden an einem Knoten des Transistors 3040 aufaddiert und als gewichteter Strom Io ausgegeben.
Die Gate-Breite Wb des Transistors 3026, der den Vorstrom liefert, wird auf den Verhältniswert 8 eingestellt, damit der Vorstrom einem Nullzustand des Synapsengewichtungswerts entspricht. Dadurch werden positive und negative Vorzeichen des Synapsengewichtungswerts auf der Basis des Werts des aktuellen gewichteten Stroms implementiert.
In Übereinstimmung mit dieser Struktur ist es möglich, das Vorzeichensignal SgnWkj des Synapsengewichtungswerts entsprechend einem hohen oder niedrigen Pegel des Bits O4 einzustellen.
Fig. 21 zeigt die Struktur einer Synapsenschaltung SSY2 zweiten Typs zur Kopplung der Neuronen der versteckten Schicht mit den Neuronen in den Ausgangsschichten. Diese Synapsenschaltung SSY2 stellt die in Fig. 13 gezeigten Synapsenschaltungen 1101 bis 1106 dar. Wie in Fig. 21 gezeigt ist, weist die Synapsenschaltung SSY2 eine Lernsteuerschaltung 4707, die die Steuersignale Sj1, Sk, Tk und MSk empfängt und die Synapsengewichtung-Korrektursignale Enable und Up/Down erzeugt, Synapsenkopplungsschaltungen 4702 und 4706 und eine Synapsengewichtungswert-Speicherschaltung 4701 auf.
Die Synapsengewichtungswert-Speicherschaltung 4701, deren Struktur ähnlich der Struktur der Synapsenschaltung ersten Typs ist, die vorher unter Bezugnahme auf die Fig. 15 und 16 beschrieben worden ist, wird z. B. durch einen 4-Bit-Zähler zum Herauf- und Herunterzählen mit einem Begrenzer gebildet.
Weil jede Neuroneneinheit der versteckten Schicht so aufgebaut ist, daß sie die drei Zustände nicht-feuernder Zustand, Zwischenzustand und feuernder Zustand einnehmen kann, wie später beschrieben wird, sind die Synapsenkopplungsschaltungen 4702 und 4706 so konstruiert, daß sie die jeweiligen Zustände ausdrücken können. Das Ausgangssignal von der Neuroneneinheit der versteckten Schicht wird in zwei Bits Sj0 und Sj1 ausgedrückt. Die Struktur der Synapsenkopplungsschaltungen 4702 und 4706 ist ähnlich der Struktur der Synapsenkopplungsschaltung 1702 der Synapsenschaltung ersten Typs, die oben unter Bezugnahme auf Fig. 20 beschrieben worden ist.
Die Fig. 22 zeigt die Struktur der Lernsteuerschaltung 4707 von Fig. 21. Wie in Fig. 22 gezeigt ist, weist die Lernsteuerschaltung 4707 eine 2-Eingangs-NAND-Schaltung 5002, die das Ausgangssignal Sj1 von der j-ten Neuroneneinheit j der versteckten Schicht und das Ausgangssignal (Zustandssignal) Sk von der k-ten Neuroneneinheit k der Ausgangsschicht empfängt, eine NAND-Schaltung 5004, die das Zustandssignal Sj1 und das Lernmusterdatensignal Tk für das Neuronen k der Ausgangsschicht empfängt, eine ExOR-Schaltung 5006, die das Ausgangssignal von den NAND-Schaltungen 5002 und 5004 empfängt, und eine AND-Schaltung 5008, die das Ausgangssignal der ExOR-Schaltung 5006 und das Signal MSk empfängt, das anzeigt, daß die Ausgangsneuroneneinheit k in einem Zwischenzustand ist, auf.
In der Lernsteuerschaltung 4707 von Fig. 22 steigt das Ausgangssignal der ExOR-Schaltung 5006 auf einen hohen Pegel an, wenn die Ausgangssignale der NAND-Schaltungen 5002 und 5004 nicht übereinstimmen. Wenn das Signal MSk in diesem Fall auf einem hohen Pegel ist (Zwischenzustand), wird das Aktivierungssignal Enable erzeugt, um den Synapsengewichtungswert zu korrigieren. Das Ausgangssignal der NAND-Schaltung 5002 bestimmt, ob der Synapsengewichtungswert erhöht oder erniedrigt werden soll. Wenn das Ausgangssignal der NAND-Schaltung 5002 auf einem hohen Pegel ist, wird der Synapsengewichtungswert erhöht. Wenn das Signal Sj1 gleich "1" ist, befindet sich die Neuroneneinheit j in einem feuernden Zustand. Damit implementiert die Lernsteuerschaltung 4707 eine Näherung der folgenden Back-Propagation-Lernregel:
ΔWkj = (Tk * Sj-Sk * Sj) * MSk
Fig. 23 zeigt die Struktur der jeweiligen Neuroneneinheiten 1801, 1802, . . ., 1803 und 1901, . . ., 1902, die in der zweiten Neuronetzeinheit gebildet sind. In Fig. 23 ist die Neuronetzeinheit allgemein durch das Symbol SNU bezeichnet. Das Neuron SNU weist Komparatoren 5506 und 5508 auf, die eine Referenzspannung Vref an ihren negativen Eingängen empfangen. Der Komparator 5506 empfängt die Summe IN (=ΣWji * Si, die Summe wird für i ausgeführt) des gewichteten Stroms, der über eine entsprechende Dendritsignalleitung seinem positiven Eingang zugeführt wird (der Strom wird durch die Widerstände 5502 und 5504 in ein Spannungssignal umgewandelt). Der Komparator 5508 empfängt eine Spannung, die durch Teilen des summierten gewichteten Stroms In durch die Werte R0 und R1 der Widerstände 5502 und 5504 erhalten wird. Der Komparator 5506 erzeugt das Signal Sj0, der Komparator 5508 das Signal Sj1.
Die in Fig. 23 gezeigte Neuroneneinheit SNU drückt die folgenden drei Zustände aus:
nicht-feuernder Zustand: Sj0 = Sj1 = 0,
Zwischenzustand: Sj0 = 1, Sj1 = 0,
feuernder Zustand: Sj0 = Sj1 = 1.
Das Ausgangssignal Sj0 vom Komparator 5506 wird als Signal MSj benutzt, das den Zwischenwert beim Back-Propagation-Lernvorgang angibt. Die Referenzspannung Vref liefert einen Schwellenwert dieser Neuroneneinheit SNU. Es ist möglich, zu entscheiden, ob die Neuroneneinheit SNU in einem feuernden Zustand ist, indem man das Signal Sj1 beobachtet. Bei der in Fig. 17 gezeigten Struktur wird daher das Signal Sk1 als Zustandssignal Sk benutzt.
In einem Lernvorgang des zweiten Neuronalen Netzes werden Entscheidungsmuster von der in Fig. 9 gezeigten Entscheidungsmuster- Speicherschaltung 507 als Ausgangslernmuster zugeführt. In Abhängigkeit von den zugeführten Lernmustern ändert die zweite Neuronetzeinheit 505 die internen Synapsengewichtungswerte in Übereinstimmung mit der Back-Propagation-Lernregel. Im Lernbetrieb werden die Zustandssignale (Ausgangssignale) aller oder eines Teils der Neuroneneinheiten des ersten Neuronalen Netzes zugeführt. Zu diesem Zeitpunkt kann jedes Lernmuster zugeführt werden, solange entschieden werden kann, ob ein konvergierter Zustand der ersten Neuronetzeinheit gespeichert werden soll oder nicht. Der Lernbetrieb der zweiten Neuronetzeinheit 505 kann gleichzeitig mit dem Lernbetrieb der ersten Neuronetzeinheit 501 ausgeführt werden, oder es können Muster ähnlich den Lernmustern für die erste Neuronetzeinheit 501 der zweiten Neuronetzeinheit 505 zu einem anderen Zeitpunkt unabhängig als Eingangsmuster zugeführt werden.
Nach der oben angeführten Struktur ist es möglich, korrekt zu entscheiden, ob ein konvergierter Zustand der ersten Neuronetzeinheit 501 in einem Auffrischungsbetrieb für sie gespeichert werden soll.
Fig. 24 zeigt ein Betriebssignaldiagramm der Vorrichtung zum Ausdrücken eines Neuronalen Netzes nach der zweiten Ausführungsform der Erfindung. Nun wird der Betrieb der Vorrichtung zum Ausdrücken eines Neuronalen Netzes nach der zweiten Ausführungsform zusammenfassend beschrieben.
Der in Fig. 24 gezeigte Betrieb der zweiten Ausführungsform ist im wesentlichen ähnlich dem in Fig. 7 dargestellten Betrieb der ersten Ausführungsform, außer daß ein Modusumschaltsignal MODE nur im Auffrischungsmodus auf einen hohen Pegel gebracht wird und die Lernsteuersignale ACP+ und ACP- durch ein Signal /ACP, das die Basis für diese Signale bildet, ersetzt ist. Im Auffrischungsmodus werden die Vorgänge Lay-to-Heart und Vergessen gleichzeitig durch das Signal /ACP ausgeführt. Der Betrieb im Lern- und Haltemodus sind ähnlich dem der ersten Ausführungsform von Fig. 7, so daß der Lern- und Haltebetrieb (Aufrufbetrieb), die von Lerndaten- und Eingangsdatenmustern abhängig sind, in der ersten Neuronetzeinheit 501 ausgeführt werden.
Wenn das Modusumschaltsignal MODE im Auffrischungsbetrieb auf einen hohen Pegel ansteigt, wird abwechselnd ein Lernsteuersignal ACP+ oder ACP- in Abhängigkeit vom Steuersignal /ACP entsprechend dem Übereinstimmungserfassungssignal Ma erzeugt. Damit führt die erste Neuronetzeinheit 501 nur eine Erhöhung oder Erniedrigung der Synapsengewichtungswerte aus. Wenn die zweite Neuronetzeinheit 505 im Auffrischungsbetrieb arbeitet, um zu entscheiden, daß ein konvergierter Zustand der ersten Neuronetzeinheit 501 gespeichert werden soll, stimmt das Ausgangsdatenmuster der zweiten Neuronetzeinheit 505 mit einem der (Mehrzahl von) Entscheidungsmuster(n) überein, die in der Entscheidungsmuster- Speicherschaltung 507 gespeichert sind (siehe Fig. 9), und das Übereinstimmungserfassungssignal Ma wird erzeugt. Wenn das Übereinstimmungserfassungssignal Ma wie in Fig. 25 gezeigt auf einen hohen Pegel ansteigt, wird das Steuersignal ACP+ für die Erhöhung des Synapsengewichtungswerts in Abhängigkeit vom Steuersignal /ACP erzeugt. Wenn das Übereinstimmungserfassungssignal Ma auf einem niedrigen Pegel liegt, der eine fehlende Übereinstimmung anzeigt, wird das Steuersignal ACP- für die Erniedrigung des Synapsengewichtungswerts in Abhängigkeit vom Steuersignal /ACP erzeugt. Damit wird die erste Neuronetzeinheit 501 nicht irrtümlich in einem nicht zu speichernden Zustand gefangen, d. h. einem lokalen Minimum der potentiellen Energie etc., und es ist möglich, die Speicherung korrekt und effizient zu klären.
Bei der zweiten Ausführungsform weist das zweite Neuronale Netz eine Verbindungskonfiguration entsprechend einer Dreischicht- Vorwärtsausbreitungsstruktur auf, die fähig ist, eine Lernregel entsprechend der Back-Propagation (Rückwärtsausbreitung) zu implementieren. Die Struktur der zweiten Neuronetzeinheit ist jedoch nicht auf diese Struktur beschränkt, sondern es kann jede andere Struktur verwendet werden, solange diese statische Synapsenschaltungen aufweist, die ihre Synapsengewichtungswerte stabil halten können, und entscheiden kann, ob ein konvergierter Zustand der zweiten Neuronetzeinheit gespeichert werden soll.
(C) Dritte Ausführungsform
In Übereinstimmung mit dem Auffrischungsverfahren der zweiten Ausführungsform ist es möglich, den Punkt minimaler potentieller Energie (den Netzzustand, der den minimalen Energiewert liefert), der nicht gespeichert werden soll, korrekt zu erkennen, wodurch die Speicherung effektiv aufgefrischt wird.
Bei der zweiten Ausführungsform werden jedoch Zustände innerhalb eines bestimmten Bereichs um den Punkt minimaler potentieller Energie des ersten Neuronalen Netzes entsprechend dem Ausgangssignal des zweiten Neuronalen Netzes gespeichert. Daher unterscheidet sich die Form des Profils der potentiellen Energie (Kurve A in Fig. 8(a)), das durch das ursprüngliche Lernen eingestellt worden ist, geringfügig von der Form des Profils der potentiellen Energie (Kurve E in Fig. 8(a)), das durch die Auffrischung wiederhergestellt worden ist. Wenn zu speichernde Zustände nicht eindeutig, sondern stochastisch ausgedrückt werden, ist die detaillierte Form der potentiellen Energie, d. h. die Tiefe der Täler, die Neigung der "Seitenwände" der Täler der potentiellen Energie etc. wichtig. Nun wird ein Auffrischungsvorgang beschrieben, der das Profil der potentiellen Energie korrekter und genauer reproduzieren kann, das durch den ursprünglichen Lernvorgang eingestellt wurde.
Fig. 26 zeigt ein Auffrischungsverfahren nach einem dritten Aspekt der vorliegenden Erfindung. Fig. 26(a) zeigt die Beziehungen zwischen den Zuständen eines Neuronalen Netzes und den Niveaus der potentiellen Energie. Die Kurve A zeigt die potentielle Energie unmittelbar nach dem Lernen und Kurve B beim "Vergessen" durch Ladungslecks. Fig. 26(b) zeigt die Beziehung zwischen den Eingaben eines zweiten Neuronalen Netzes (Zustände des ersten Neuronalen Netzes) und seinen Ausgaben. In Fig. 26 stellt die Ordinate die Auftretungswahrscheinlichkeit des Ausgangsmusters des zweiten Neuronalen Netzes dar. Im Auffrischungsvorgang nach dem dritten Aspekt der vorliegenden Erfindung wird eine Wahrscheinlichkeit in die Ausgabe des zweiten Neuronalen Netzes eingeführt.
Wie in den Fig. 26(a) und 26(b) gezeigt ist, sind die Zustände der potentiellen Energie des ersten und zweiten Neuronalen Netzes zueinander ausgerichtet. Flache Zustände der potentiellen Energie entsprechen Zuständen, deren Speicherung nicht sehr stark ist. Für solche Täler wird der Ausgangswert (Auftretungswahrscheinlichkeit) des zweiten Neuronalen Netzes klein gemacht. Andererseits wird der Ausgangswert des zweiten Neuronalen Netzes für die Zustände, bei denen die Täler der potentiellen Energie tief sind, groß gemacht. Das Ausgangssignal des zweiten Neuronalen Netzes gibt die Auftretungswahrscheinlichkeit eines Ausgangsmusters für den Zustand des ersten Neuronalen Netzes an und entspricht schließlich einer Wahrscheinlichkeit, mit der ein Übereinstimmungserfassungssignal Ma von einer Übereinstimmungserfassungsschaltung 506 in einer Steuereinheit 550 eine Übereinstimmung angibt.
Das Ausgangssignal des zweiten Neuronalen Netzes, das die Auftretungswahrscheinlichkeit des Ausgangsmusters angibt, stellt eine Wahrscheinlichkeit dar, mit der das entsprechende Ausgangsmuster auftritt, wenn ein Auffrischungsbetrieb wiederholt ausgeführt wird. In jedem Auffrischungszyklus werden Synapsengewichtungswerte entsprechend ΔWÿ korrigiert, was nahezu gleich ±Pÿ (=±Si · Sj) ist. Nun wird ein Verfahren zum Einführen der Wahrscheinlichkeit in das Ausgangssignal des zweiten Neuronalen Netzes beschrieben.
Fig. 27 zeigt ein Auffrischungsverfahren nach einer dritten Ausführungsform der vorliegenden Erfindung. Fig. 27(a) zeigt eine Referenzspannung Vref (siehe Fig. 23), die Neuroneneinheiten 1901, . . ., 1902 und 1801, . . ., 1803 zugeführt wird, die in der zweiten Neuronetzeinheit 505 enthalten sind (siehe Fig. 13). Wie in Fig. 27(a) gezeigt ist, führt die Referenzspannung Vref, die Schwellenwerte der Neuronen liefert, eine gedämpfte Oszillation um einen Mittelwert V0 aus. In diesem Fall wird die mehrdeutige Breite des Ausgangssignals jeder Neuroneneinheit in Abhängigkeit von der Amplitude der gedämpften Oszillation vermindert und ein stochastischer Übergang im Ausgangszustand verursacht, und der Ausgangszustand konvergiert auf einen bestimmten Zustand (Fig. 27(b)). Die "Mehrdeutigkeitsbreite" gibt die Breite eines Abschnitts an, der eine Steigung in einer Wahrscheinlichkeitsfunktion (Boltzmann- Verteilung) bei einer bestimmten Glühtemperatur aufweist. Wenn die Glühtemperatur hoch ist, hat die Wahrscheinlichkeitsfunktion die Form einer S-Kurve mit einer großen Mehrdeutigkeitsbreite, während sich die Wahrscheinlichkeitsfunktion im wesentlichen einer Einheitsstufenfunktion annähert und die Mehrdeutigkeitsbreite gleich null wird.
Wenn die Referenzspannung Vref wie oben beschrieben eine gedämpfte Oszillation ausführt, entspricht die Zeitspanne, während der die gedämpfte Oszillation der Referenzspannung ausgeführt wird, einem Prozeß, bei dem die Glühtemperatur von einem bestimmten Niveau auf ein niedrigeres Niveau verändert wird und das Neuronale Netz schließlich einen thermischen Gleichgewichtszustand mit einer global minimalen Energie erreicht. Die anfängliche Maximalamplitude der Referenzspannung Vref liefert eine Glühstarttemperatur. Aufgrund der gedämpften Oszillation der Referenzspannung Vref wird der Zustandsübergang jeder Neuroneneinheit stochastisch ausgedrückt und die Wahrscheinlichkeit in das Ausgangssignal der zweiten Neuroeinheit 505 eingeführt. Mit anderen Worten wird die in Fig. 26 gezeigte Ausgangsverteilung (Auftretungswahrscheinlichkeit) geliefert. Damit führt die Einführung der Wahrscheinlichkeit in die Ausgabe des zweiten Neuronalen Netzes auch zur Einführung einer Wahrscheinlichkeit in eine Entscheidung, ob ein konvergierter Zustand des ersten Neuronalen Netzes gespeichert werden soll oder nicht, wodurch es möglich ist, das Profil der potentiellen Energie des ersten Neuronalen Netzes nach dem Lernen korrekt und genau zu reproduzieren.
Die gedämpft oszillierende Referenzspannung Vref kann den Neuroneneinheiten der versteckten oder Ausgangsschichten oder beiden in der zweiten Neuronetzeinheit zugeführt werden. Alternativ kann auch nur die Referenzspannung Vref gedämpft oszillieren, die den Neuroneneinheiten der Ausgangsschichten zugeführt wird.
Der Auffrischungsbetrieb des Neuronalen Netzes selbst, das die gedämpft oszillierende Referenzspannung Vref verwendet, stimmt mit dem im Diagramm der Fig. 24 gezeigten überein und wird ähnlich dem der zweiten Ausführungsform ausgeführt.
(D) Vierte Ausführungsform
Während bei jeder der ersten bis dritten Ausführungsformen der Auffrischungsvorgang periodisch oder zyklisch nach dem Verstreichen einer vorbestimmten Zeitspanne seit dem Lernen ausgeführt wird, kann auch ein anderes Auffrischungsverfahren verwendet werden. Fig. 28 zeigt den Verlauf eines Auffrischungsvorgangs nach einer vierten Ausführungsform der vorliegenden Erfindung. Beim in Fig. 28 gezeigten Auffrischungsverfahren wird die Auffrischung bei jedem Aufrufvorgang ausgeführt. Der Betrieb beim Lernen ist ähnlich wie bei der ersten und zweiten Ausführungsform, die oben beschrieben worden sind. Wenn ein Auffrischungsbetrieb unabhängig gebildet wird, kann es vorkommen, daß ein Aufrufvorgang während des Auffrischungsvorgangs nicht ausgeführt werden kann, und die Benutzbarkeit des Neuronalen Netzes kann verschlechtert werden. Wenn wie oben angeführt der Auffrischungsvorgang stets nach einem Aufrufvorgang ausgeführt wird, ist es nicht unbedingt notwendig, einen Auffrischungsvorgang vorzusehen, und die Benutzbarkeit des Neuronalen Netzes wird verbessert.
Beim Auffrischungsverfahren nach der vierten Ausführungsform der vorliegenden Erfindung, das in Fig. 28 gezeigt ist, wird ein Signal Ts auf einen niedrigen Pegel gebracht, wenn der Zustand des ersten Neuronalen Netzes durch einen Aufruf in einem Aufrufvorgang konvergiert hat, und zwar im durch den Aufruf konvergierten Zustand, um eine Auffrischung auszuführen. In diesem Zustand wird die Auffrischung ohne Verwendung von Zufallsmustern als Auffrischungsmuster ausgeführt. Ein zweites Neuronales Netz kann verwendet werden oder auch nicht.
Wie in Fig. 28 gezeigt ist, wird ein Steuersignal /ACP benutzt, so daß Signale ACP+ und ACP- beim Lernvorgang gleichzeitig erzeugt werden. Ferner wird ein Modusumschaltsignal MODE während eines Aufrufvorgangs auf einen hohen Pegel eingestellt, so daß die Vorgänge "Lay-to-Heart" /Vergessen entsprechend einem Übereinstimmungserfassungssignal ausgeführt werden, das durch Treiben des zweiten Neuronalen Netzes erhalten wird. Dadurch werden Daten bei einer Übereinstimmung gespeichert und bei einer fehlenden Übereinstimmung vergessen. Das erste Neuronale Netz ist während dieses Auffrischungsvorgangs in einem konvergierten Zustand. Nach dem Verstreichen der Auffrischungszeit wird ein Steuersignal IselO erzeugt, so daß Zustandssignale der jeweiligen Neuroneneinheiten in einem Schieberegister SR(T) (siehe Fig. 4) verriegelt und in Abhängigkeit von einem Taktsignal CK nacheinander ausgegeben werden.
Wie oben beschrieben worden ist wird der Auffrischungsvorgang bei jedem Aufrufvorgang ausgeführt, so daß es nicht notwendig ist, Auffrischungsvorgänge periodisch zu bilden. Dadurch erhält man eine Vorrichtung zum Ausdrücken eines Neuronalen Netzes mit ausgezeichneter Benutzungseffizienz, die keine externe Auffrischung benötigt. In diesem Fall treten die im ersten Neuronalen Netz aufgerufenen, gespeicherten Zustände für alle gespeicherten Zustände bevorzugt gleich auf.
In Übereinstimmung mit der vorliegenden Erfindung kann, wie oben beschrieben worden ist, ein Auffrischungsvorgang durch eine einfache Struktur und einen einfachen Betrieb korrekt und genau mit hoher Geschwindigkeit ausgeführt werden, wodurch es möglich ist, eine integrierte Vorrichtung zum Ausdrücken eines Neuronalen Netzes zu implementieren, die stabil und zuverlässig für lange Zeit arbeiten kann.
Die Besonderheiten der Erfindung können folgendermaßen zusammengefaßt werden.
  • 1) Jeweilige Synapsengewichtungswerte werden durch makroskopische Speicherungswiedergewinnung korrigiert, wodurch es möglich ist, eine stabile Auffrischung selbst mit mikroskopischen Fehlfunktionen von Synapsen, Neuronen etc. zu implementieren.
  • 2) Ein Speicherungsklärungsvorgang im Auffrischungsverfahren nach der vorliegenden Erfindung besitzt den Effekt, daß unnötige Minimalwerte des Potentials (lokale Minima) eliminiert werden, wodurch die Entropie der Information, die intern durch das Neuronale Netz ausgedrückt wird, vermindert wird.
  • 3) Es ist möglich, eine Vorrichtung zum Ausdrücken eines Neuronalen Netzes zu erhalten, die Synapsengewichtungswerte stabil und für eine lange Zeit mit einer einfachen Struktur halten kann.
  • 4) Weil die Auffrischung mit Zufallszahlenmustern ausgeführt wird, ist es möglich, die internen Zustände des Neuronalen Netzes mit gleichen Wahrscheinlichkeiten zu erzeugen, wodurch die Verteilung der potentiellen Energie unmittelbar nach dem Lernen korrekt wiedergewonnen werden kann.
  • 5) Das zweite Neuronale Netz ist so konstruiert, daß es zu speichernde Zustände von nicht zu speichernden Zuständen unterscheiden kann, um Synapsengewichtungswerte in Übereinstimmung mit den Unterscheidungsergebnissen zu korrigieren. Dadurch ist es möglich, eine korrekte Auffrischung auszuführen, ohne die Speicherung von Zuständen, die unnötige Minimalwerte der Energie liefern, zu verstärken.
  • 6) Es wird eine Wahrscheinlichkeit in die Ausgabe des zweiten Neuronalen Netzes eingeführt, wodurch es möglich ist, einen Auffrischungsvorgang zu implementieren, der das Profil der potentiellen Energie des ersten Neuronalen Netzes korrekter und genauer reproduzieren kann.
  • 7) Es ist nicht unbedingt notwendig, eine Auffrischungszeit zu setzen, und die Benutzungseffizienz der Vorrichtung zum Ausdrücken eines Neuronalen Netzes wird verbessert.

Claims (23)

1. Neuronetzeinheit zur elektronischen Realisierung eines Neuronalen Netzes, mit:
einer Mehrzahl erster Neuroneneinheiten (NU; 601, 602, 603), jeweils zum elektronischen Realisieren der Funktion eines Nervenzellenkörpers,
einer Mehrzahl von ersten Synapseneinheiten (D-SY; 701 bis 709) jeweils zum elektronischen Realisieren einer Synapse zum Koppeln erster Neuroneneinheiten mit einer vorbestimmten Kopplungsstärke, wobei jede Synapseneinheit eine Speichereinrichtung (101) zum Speichern einer Synapsengewichtungswertinformation, die die vorbestimmte Kopplungsstärke beinhaltet, aufweist,
gekennzeichnet durch:
eine Steuereinrichtung (103, 111, 502; 505, 550), die ein Auffrischungsanweisungssignal empfängt, zum Auffrischen jeder jeweiligen Synapsengewichtungswertinformation der ersten Synapseneinheiten auf der Basis der Ausgangssignale der zugehörigen Neuroneneinheiten.
2. Neuronetzeinheit nach Anspruch 1, dadurch gekennzeichnet, daß die Speichereinrichtung (101) eine Kapazitätseinrichtung (C1) zum Speichern der Synapsengewichtungswertinformation in Form elektrischer Ladungen aufweist, und daß die Steuereinrichtung (103, 111, 502) eine Lernsteuereinrichtung (111, 103) aufweist, die der jeweiligen Synapseneinheit zugeordnet ist und Ausgangssignale der zugehörigen ersten Neuroneneinheiten empfängt, zum Korrigieren der Menge elektrischer Ladungen in einer zugehörigen Speichereinrichtung (101) über einen Ladungspumpvorgang.
3. Neuronetzeinheit nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Steuereinrichtung (103, 111, 502; 550)
eine Zufallszahlen-Erzeugungseinrichtung (503) zum Erzeugen einer Zufallszahl,
eine Selektoreinrichtung (504, SR(T), SR(P)), die ein Auffrischungsanweisungssignal empfängt, zum Ausgeben eines Musters der Zufallszahlen an ausgewählte erste Neuroneneinheiten unter den ersten Neuroneneinheiten, und
eine Korrektureinrichtung (103, 111), die jeder der Synapseneinheiten zugeordnet ist und beim Betrieb mit dem Muster von Zufallszahlen Ausgangssignale der zugehörigen ersten Neuroneneinheiten empfängt, zum Ändern einer zugehörigen Synapsengewichtungswertinformation aufweist.
4. Neuronetzeinheit nach Anspruch 3, dadurch gekennzeichnet, daß die Korrektureinrichtung eine erste Einrichtung (G100, G101, G103, G104, 103) zum Erhöhen der zugehörigen Synapsengewichtungswertinformation, wenn die zugehörigen ersten Neuroneneinheiten in einem feuernden Zustand sind, und eine zweite Einrichtung (G100, G102, G103, G105) zum Erniedrigen der zugehörigen Synapsengewichtungswertinformation, wenn die zugehörigen ersten Neuroneneinheiten in einem feuernden Zustand sind, aufweist.
5. Neuronetzeinheit nach Anspruch 3 oder 4, dadurch gekennzeichnet, daß die Neuronetzeinheit in einem Lernmodus zum Lernen von Lerndaten betreibbar ist, um den jeweiligen Synapsengewichtungswert entsprechend den Lerndaten einzustellen, und die Selektoreinrichtung (504) eine Einrichtung (504) zum Durchlassen des Musters von Zufallszahlen anstelle der Lerndaten an die ausgewählten ersten Neuroneneinheiten in Abhängigkeit vom Auffrischungsanweisungssignal aufweist.
6. Neuronetzeinheit nach Anspruch 1, dadurch gekennzeichnet, daß die Steuereinrichtung (505, 550)
eine zweite Neuronetzeinheit (505) zum Empfangen der Ausgangssignale von vorausgewählten ersten Neuroneneinheiten aus der Mehrzahl von ersten Neuroneneinheiten und zum Ausgeben eines Ausgangsmusters entsprechend den Ausgangssignalen der vorausgewählten ersten Neuroneneinheiten,
und eine Steuereinrichtung (551), die der zweiten Neuronetzeinheit verbunden ist, zum Korrigieren der jeweiligen Synapsengewichtungswertinformation der Mehrzahl erster Synapseneinheiten aufweist.
7. Neuronetzeinheit nach Anspruch 6, dadurch gekennzeichnet, daß die zweite Neuronetzeinheit eine Mehrzahl von zweiten Neuroneneinheiten (SNU; 1801-1803, 1901-1903) zum elektronischen Realisieren von Nervenzellenkörpern und eine Mehrzahl von zweiten Synapsengewichtungseinheiten (S-SY; 1001-1009, 1101-1106) jeweils zum Koppeln der zweiten Neuroneneinheiten durch einen voreingestellten Synapsengewichtungswert, der die Kopplungsstärke zwischen zugehörigen zweiten Neuroneneinheiten bestimmt, aufweist, wobei jede der zweiten Synapseneinheiten eine statische Speichereinrichtung (1801, 4701) zum statischen Speichern einer zugehörigen Synapsengewichtungswertinformation speichert, ohne daß eine Auffrischung von dieser notwendig ist.
8. Neuronetzeinheit nach Anspruch 7, dadurch gekennzeichnet, daß die statische Speichereinrichtung (1701, 4701) eine Einrichtung (1701, 4701) zum Speichern der zugehörigen Synapsengewichtungswertinformation in digitaler Form aufweist.
9. Neuronetzeinheit nach Anspruch 7 oder 8, dadurch gekennzeichnet, daß die statische Speichereinrichtung (1701, 4701) einen digitalen n-Bit-Binärzähler aufweist, wobei n eine ganze Zahl ist.
10. Neuronetzeinheit nach Anspruch 6, dadurch gekennzeichnet, daß die Steuereinrichtung (551)
eine Entscheidungsmuster-Speichereinrichtung (507) zum Speichern eines vorbestimmten Datenmusters,
eine Übereinstimmungserfassungseinrichtung (506) zum Erfassen der Übereinstimmung des vorbestimmten Datenmusters mit den Ausgangssignalen der zweiten Neuronetzeinheit, und
eine Auffrischungssteuereinrichtung (509), die mit der Übereinstimmungserfassungseinrichtung verbunden ist, zum Erfassen, ob ein Synapsengewichtungswert einer ersten Synapseneinheit mit zugehörigen Neuroneneinheiten, die beide in einem feuernden Zustand sind, erhöht werden soll, aufweist.
11. Neuronetzeinheit nach Anspruch 10, dadurch gekennzeichnet, daß die Auffrischungssteuereinrichtung (509)
eine erste Bestimmungseinrichtung (ND12, ND14, GI) zum Bestimmen, daß der Synapsengewichtungswert erhöht werden soll, wenn die Übereinstimmungserfassungseinrichtung (506) die Übereinstimmung feststellt, und
eine zweite Bestimmungseinrichtung (ND10, ND16) zum Bestimmen, daß der Synapsengewichtungswert vermindert werden soll, wenn die Übereinstimmungserfassungseinrichtung (506) keine Übereinstimmung feststellt, aufweist.
12. Neuronetzeinheit nach Anspruch 6, dadurch gekennzeichnet, daß die zweite Neuronetzeinheit
zweite Neuroneneinheiten (S-SY; 1801-1803, 1901-1903) jeweils zum elektronischen Realisieren eines Nervenzellenkörpers, und eine Mehrzahl von zweiten Synapseneinheiten (1001-1009, 1101-1106), jeweils zum Koppeln der zweiten Neuroneneinheiten durch einen voreingestellten Synapsengewichtungswert, aufweist,
wobei jede der zweiten Neuroneneinheiten (SNU) eine Komparatoreinrichtung (5505, 5508) zum Vergleichen einer Summe der Ausgangssignale der zugehörigen zweiten Synapseneinheiten mit einer Referenzspannung, die um einen vorbestimmten Spannungspegel gedämpft oszilliert, aufweist.
13. Neuronetzeinheit nach Anspruch 10, dadurch gekennzeichnet, daß die zweite Neuronetzeinheit (505) eine Einrichtung (4707) aufweist zum Einstellen des jeweiligen Synapsengewichtungswerts der zweiten Synapseneinheiten durch Lernen unter Verwendung der Ausgaben der vorausgewählten ersten Neuroneneinheiten und des vorbestimmten Datenmusters als Lerndaten.
14. Neuronetzeinheit nach Anspruch 6, dadurch gekennzeichnet, daß die zweite Neuronetzeinheit (505) eine Vorwärtsausbreitungsanordnung aufweist, die nach einem Back-Propagation-Modell betreibbar ist.
15. Neuronetzeinheit nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, daß die Steuereinrichtung (103, 111, 502; 505, 550) aktiviert wird, jedesmal wenn die erste Neuroneneinheit (NU; 601, 602, 603) einen Eingangswert empfängt, der verarbeitet werden soll, und einen Ausgangswert entsprechend dem so empfangenen Eingangswert erzeugt.
16. Betriebsverfahren für eine Neuronetzeinheit mit einer Mehrzahl von Neuroneneinheiten, die jeweils elektronisch einen Nervenzellenkörper realisieren, und einer Mehrzahl von Synapseneinheiten, die jeweils Neuroneneinheiten mit einer durch einen voreingestellten Synapsengewichtungswert bestimmten Kopplungsstärke koppeln,
gekennzeichnet durch die Schritte:
Zuführen eines Musters von Zufallszahlen an die Neuronetzeinheit als Eingangsdaten, und
Wiederherstellen der jeweiligen Synapsengewichtungswertinformation in Abhängigkeit von den Ausgangssignalen der Neuroneneinheiten, die als Ergebnis des Betriebs in Abhängigkeit vom Zufallszahlenmuster erzeugt werden.
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß der Wiederherstellungsschritt den Schritt
Erhöhung des Synapsengewichtungswerts einer Synapseneinheit mit zugehörigen Neuroneneinheiten, die beide in einem feuernden Zustand sind, wenn ein erstes Muster von Zufallszahlen zugeführt wird, und Erniedrigung des Synapsengewichtungswerts einer Synapseneinheit mit zugehörigen Neuroneneinheiten, die beide in einem feuernden Zustand sind, wenn ein zweites Muster von Zufallszahlen zugeführt wird, aufweist.
18. Verfahren nach Anspruch 17, dadurch gekennzeichnet, daß der Schritt der Erhöhung und der Schritt der Erniedrigung zusammen für eine Mehrzahl von ersten und zweiten Mustern von Zufallsdaten ausgeführt werden.
19. Verfahren nach Anspruch 17 oder 18, dadurch gekennzeichnet, daß das erste und das zweite Muster miteinander übereinstimmen.
20. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß der Wiederherstellungsschritt die Schritte:
Bestimmen in Abhängigkeit von den Ausgangssignalen von mindestens einem Teil der Neuroneneinheiten, die in Abhängigkeit vom Zufallszahlenmuster betrieben worden sind, ob der Synapsengewichtungswert einer Synapseneinheit mit zugehörigen Neuroneneinheiten, die beide in einem feuernden Zustand sind, erhöht oder erniedrigt werden soll, und
Ändern des Synapsengewichtungswerts der Synapseneinheit auf der Basis des Bestimmungsergebnisses im Bestimmungsschritt aufweist.
21. Verfahren nach Anspruch 20, dadurch gekennzeichnet, daß der Bestimmungsschritt den Schritt der stochastischen Bestimmung, ob der Synapsengewichtungswert erhöht oder erniedrigt werden soll, aufweist.
22. Betriebsverfahren für eine Neuronetzeinheit mit einer Mehrzahl von Neuroneneinheiten, die elektronisch Nervenzellenkörper realisieren, und einer Mehrzahl von Synapseneinheiten zum Koppeln von Neuroneneinheiten über eine voreingestellte Kopplungsstärke, die durch einen Synapsengewichtungswert bestimmt wird, gekennzeichnet durch die Schritte:
Zuführen von zu verarbeitenden Eingangsdaten an die Neuronetzeinheit,
Korrigieren der Synapsengewichtungswerte der Synapseneinheiten nach der Konvergenz der Neuronetzeinheit in Abhängigkeit von den Ausgangssignalen der Neuroneneinheiten, und
externes Ausgeben von Ausgangsdaten entsprechend den Eingangsdaten von der Neuronetzeinheit.
23. Verfahren nach Anspruch 22, dadurch gekennzeichnet, daß der Korrekturschritt die Schritte:
Bestimmen in Abhängigkeit von den Ausgangssignalen von mindestens einem Teil der Neuroneneinheiten, ob die Synapsengewichtungswerte der Synapseneinheiten erhöht oder erniedrigt werden sollen, und
Erhöhen des Synapsengewichtungswerts der Synapseneinheiten mit zugehörigen Neuroneneinheiten, die bei in einem feuernden Zustand sind, wenn im Bestimmungsschritt die Erhöhung bestimmt worden ist, aufweist.
DE4239308A 1992-01-24 1992-11-23 Neuronetzeinheit und Betriebsverfahren dafür Expired - Fee Related DE4239308C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4011413A JPH05210649A (ja) 1992-01-24 1992-01-24 神経回路網表現装置

Publications (2)

Publication Number Publication Date
DE4239308A1 DE4239308A1 (en) 1993-07-29
DE4239308C2 true DE4239308C2 (de) 1995-02-23

Family

ID=11777351

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4239308A Expired - Fee Related DE4239308C2 (de) 1992-01-24 1992-11-23 Neuronetzeinheit und Betriebsverfahren dafür

Country Status (3)

Country Link
US (1) US5696883A (de)
JP (1) JPH05210649A (de)
DE (1) DE4239308C2 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061673A (en) * 1996-11-06 2000-05-09 Sowa Institute Of Technology Co., Ltd. Learning methods in binary systems
JP2001188767A (ja) * 1999-12-28 2001-07-10 Fuji Xerox Co Ltd ニューラルネットワーク演算装置及びニューラルネットワークの演算方法
WO2002048958A2 (en) * 2000-12-13 2002-06-20 The Johns Hopkins University Method for training a hierarchical neural-network intrusion detector
US6754645B2 (en) * 2001-03-20 2004-06-22 Winbond Electronics Corp. Voltage-mode pulse width modulation VLSI implementation of neural networks
US20040059947A1 (en) * 2001-12-12 2004-03-25 Lee Susan C. Method for training a hierarchical neural-network intrusion detector
US20040105635A1 (en) * 2002-07-18 2004-06-03 Shantanu Nandi Fiber optic transmission conductor and distributed temperature sensing of fiber optic transmission conductor
US7035835B2 (en) * 2003-06-12 2006-04-25 Winbond Electronics Corporation High-precision current-mode pulse-width-modulation circuit
US7426501B2 (en) * 2003-07-18 2008-09-16 Knowntech, Llc Nanotechnology neural network methods and systems
US8659940B2 (en) * 2008-03-25 2014-02-25 Nantero Inc. Carbon nanotube-based neural networks and methods of making and using same
GB0811057D0 (en) * 2008-06-17 2008-07-23 Univ Ulster Artificial neural network architecture
US9189744B2 (en) 2010-10-04 2015-11-17 Mind Over Matter Ai, Llc. Coupling of rational agents to quantum processes
US8892487B2 (en) 2010-12-30 2014-11-18 International Business Machines Corporation Electronic synapses for reinforcement learning
US9642980B2 (en) 2013-03-15 2017-05-09 Trudell Medical International Ventilator circuit, adapter for use in ventilator circuit and methods for the use thereof
US10643125B2 (en) 2016-03-03 2020-05-05 International Business Machines Corporation Methods and systems of neuron leaky integrate and fire circuits
KR102399548B1 (ko) * 2016-07-13 2022-05-19 삼성전자주식회사 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
JP6668282B2 (ja) * 2017-03-21 2020-03-18 キオクシア株式会社 半導体記憶装置
JP7089750B2 (ja) * 2018-07-18 2022-06-23 国立研究開発法人産業技術総合研究所 ボルツマンマシン
US10490273B1 (en) 2018-10-15 2019-11-26 International Business Machines Corporation Linearly weight updatable CMOS synaptic array without cell location dependence
GB2579120B (en) * 2018-11-20 2021-05-26 Cirrus Logic Int Semiconductor Ltd Inference system
JP7271463B2 (ja) * 2020-03-06 2023-05-11 株式会社東芝 シナプス回路およびニューラルネットワーク装置
JP2022125660A (ja) 2021-02-17 2022-08-29 キオクシア株式会社 記憶装置及び記憶方法
JP7482071B2 (ja) * 2021-03-16 2024-05-13 株式会社東芝 記憶装置およびニューラルネットワーク装置
US11812589B2 (en) * 2021-05-12 2023-11-07 Nvidia Corporation Intelligent refrigerant distribution unit for datacenter cooling systems

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1988010474A1 (en) * 1987-06-18 1988-12-29 University Of West Virginia State analog neural network and method of implementing same
US4903226A (en) * 1987-08-27 1990-02-20 Yannis Tsividis Switched networks
JP2633874B2 (ja) * 1987-11-05 1997-07-23 富士通株式会社 増設処理方式
US5155802A (en) * 1987-12-03 1992-10-13 Trustees Of The Univ. Of Penna. General purpose neural computer
US4866645A (en) * 1987-12-23 1989-09-12 North American Philips Corporation Neural network with dynamic refresh capability
US4926064A (en) * 1988-07-22 1990-05-15 Syntonic Systems Inc. Sleep refreshed memory for neural network
US5220641A (en) * 1988-10-11 1993-06-15 Kabushiki Kaisha Toshiba Multi-layer perceptron circuit device
JP2517410B2 (ja) * 1989-05-15 1996-07-24 三菱電機株式会社 学習機能付集積回路装置
US5148514A (en) * 1989-05-15 1992-09-15 Mitsubishi Denki Kabushiki Kaisha Neural network integrated circuit device having self-organizing function
JPH02310666A (ja) * 1989-05-25 1990-12-26 Mitsubishi Electric Corp 半導体神経回路装置
JPH0782481B2 (ja) * 1989-12-26 1995-09-06 三菱電機株式会社 半導体神経回路網
JP2810202B2 (ja) * 1990-04-25 1998-10-15 株式会社日立製作所 ニューラルネットワークによる情報処理装置
JPH0429494A (ja) * 1990-05-23 1992-01-31 Matsushita Electric Ind Co Ltd 自動調整装置
US5293453A (en) * 1990-06-07 1994-03-08 Texas Instruments Incorporated Error control codeword generating system and method based on a neural network
GB9014569D0 (en) * 1990-06-29 1990-08-22 Univ London Devices for use in neural processing
JP2785155B2 (ja) * 1990-09-10 1998-08-13 富士通株式会社 ニューロコンピュータの非同期制御方式
US5308915A (en) * 1990-10-19 1994-05-03 Yamaha Corporation Electronic musical instrument utilizing neural net
JPH04160463A (ja) * 1990-10-24 1992-06-03 Hitachi Ltd ニューラルネットワークによる最適化方法
US5259064A (en) * 1991-01-25 1993-11-02 Ricoh Company, Ltd. Signal processing apparatus having at least one neural network having pulse density signals as inputs and outputs
IT1244911B (it) * 1991-01-31 1994-09-13 Texas Instruments Italia Spa Architettura per rete neuronica fisicamente inseribile nel processo di apprendimento.
US5280792A (en) * 1991-09-20 1994-01-25 The University Of Sydney Method and system for automatically classifying intracardiac electrograms
US5343555A (en) * 1992-07-06 1994-08-30 The Regents Of The University Of California Artificial neuron with switched-capacitor synapses using analog storage of synaptic weights
US5298796A (en) * 1992-07-08 1994-03-29 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Nonvolatile programmable neural network synaptic array

Also Published As

Publication number Publication date
DE4239308A1 (en) 1993-07-29
JPH05210649A (ja) 1993-08-20
US5696883A (en) 1997-12-09

Similar Documents

Publication Publication Date Title
DE4239308C2 (de) Neuronetzeinheit und Betriebsverfahren dafür
DE112018004223B4 (de) Trainieren künstlicher neuronaler Netze
DE4042139C2 (de) Neuron-Einheit
DE112018005726B4 (de) Resistive verarbeitungseinheit auf zählerbasis für programmierbare und rekonfigurierbare künstliche neuronale netzwerke
DE112016003245B4 (de) Resistive Verarbeitungseinheit
EP2718933B1 (de) Synapse für eine funktionszelle einer spike-timing-abhängigen plastizität (stdp), stdp-funktionszelle und neuromorphe schaltung mit der stdp-funktionszelle
DE69032680T2 (de) Neuronaler Rechner
EP2616996B1 (de) Kompakte kognitive synaptische rechenschaltungen
EP0377908B1 (de) Neurales Netzwerk mit Assoziativspeicher, der durch Beispiele lernt
Chicca et al. A VLSI recurrent network of integrate-and-fire neurons connected by plastic synapses with long-term memory
Mezard et al. Learning in feedforward layered networks: The tiling algorithm
DE102021208010A1 (de) Hardware-rechenstruktur für tiefe gleichgewichtsmodelle
DE4316625A1 (de) Neuronales Netzwerk
DE112018000134T5 (de) Memristive Einheit auf Grundlage einer Alkali-Dotierung von Übergangsmetalloxiden
DE69009786T2 (de) Schaltungsanordnung mit Mehrfachrückkopplung.
US20240296325A1 (en) Neural network device and synaptic weight update method
DE19503147A1 (de) Abbildungsschaltung und Chaos-Neuronen-Schaltung und ein diese verwendendes Netzwerk
Fukai et al. Large suppression of spurious states in neural networks of nonlinear analog neurons
DE112020005613T5 (de) Neuromorphe Einheit mit Kreuzschienen-Array-Struktur
US5247206A (en) Neural network accommodating parallel synaptic weight adjustments in a single cycle
DE4315576A1 (de) Neuronales Netzwerk
DE2025857A1 (de) Datenspeicherschaltung in der Form einer zweiphasigen Schieberegisterzelle sehr hoher Arbeitsgeschwindigkeit und geringer Leistungsaufnahme
DE60307050T2 (de) Schaltung und verfahren für logische operationen
Güzeliş Chaotic cellular neural networks made of Chua's circuits
Madani et al. Two analog counters for neural network implementation

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8339 Ceased/non-payment of the annual fee