Die Erfindung betrifft eine Halbleitervorrichtung zur Bildung eines
Neuronalen Netzes nach dem Oberbegriff des Anspruches 1 und ein
Verfahren nach dem Oberbegriff des Anspruches 16 oder 22. Die
Erfindung betrifft insbesondere eine Halbleitervorrichtung zur
Bildung eines Neuronalen Netzes, das ein Neuronales Netz
elektronisch ausdrückt. Die Erfindung betrifft genauer eine Struktur
zum stabilen Halten der Synapsengewichtungswertinformation von
Synapsenschaltungen, die Synapsen zum Koppeln von Neuronen über
vorbestimmte Kopplungsstärken bilden. Die vorliegende Erfindung
betrifft genauer gesagt eine Struktur zum Auffrischen der
Synapsengewichtungswertinformation von Synapsenschaltungen, die
Synapsengewichtungswertinformation in der Form elektrischer Ladungen
speichern, um dadurch die Synapsengewichtungswerte in analoger Weise
auszudrücken.
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) Wij zwischen Neuronen i
und j symmetrisch (Wij = 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 = ΣWij * Sj + Wii.
Diese Gesamtsumme Σ wird für j erhalten. Es wird hier eine
symmetrische Synapsenkopplung Wij=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 = -ΣWij * 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:
ΔWij = η * (p&spplus;ij3-p-ij) (1)
worin η einen Koeffizienten darstellt, der den Umfang der Korrektur
der Synapsengewichtung W in einem einzelnen Lernzyklus angibt und
positiv ist, p&spplus;ij 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&supmin;ij 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&spplus;ij 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&supmin;ij an, daß die Verbindung
(Synapsengewichtung Wij) 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&spplus;ij 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 = ΣWij * 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&spplus;ij 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&spplus;ij 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&supmin;ij 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&supmin;ij angenommen wird.
Im Vorgang 3 wird die Synapsengewichtung Wij entsprechend dem
folgenden relationalen Ausdruck mit den erhaltenen Mittelwerten p&spplus;ij
und p&supmin;ij geändert:
ΔWij = η * (p&spplus;ij - p&supmin;ij) (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 Wij 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 ΔWij 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 1-1 21 916 (1989)).
Die vorliegende Erfindung zielt in erster Linie darauf, die
Leistungsfähigkeit der vom Erfinder et al. vorgeschlagenen
integrierten Neuronetz-Halbleiterschaltung weiter zu verbessern,
während die allgemeine Aufgabe der vorliegenden Erfindung nicht
darauf beschränkt ist. Um das Verständnis von Struktur und Betrieb
der später im Detail beschriebenen erfindungsgemäßen
Neuronetzvorrichtung besser zu verstehen, wird nun die integrierte
Neuronetz-Halbleiterschaltung, die vom Erfinder et al. vorgeschlagen
worden ist, etwas detaillierter beschrieben.
Fig. 31 zeigt eine beispielhafte Gesamtstruktur einer integrierten
Neuronetz-Halbleiterschaltung, die vom Erfinder et al. 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ß Wij=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 Wij * 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 Wij * Si auf einer weiteren Dendritsignalleitung DEi zu
erzeugen, auf.
Die von der Synapsenschaltung SY ausgedrückte Synapsengewichtung ist
symmetrisch, so daß Wji = Wij 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 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 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 V 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&spplus;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 Strompfadschaltung 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 Nl3. 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 Impulssignale 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 ausgedrückt 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&spplus;-Bereich 852 hoher Störstellenkonzentration, der mit
dem Knoten a verbunden ist, einen P&spplus;-Bereich 853 hoher
Störstellenkonzentration, der mit dem Knoten b verbunden ist, und
einen P&spplus;-Bereich 854 hoher Störstellenkonzentration, der mit dem
Knoten c verbunden ist, auf. Eine Gate-Elektrode 855 ist auf einem
Kanalbereich zwischen den P&spplus;-Bereichen 853 und 854 mit einem
darunterliegenden Isolierfilm (Gate-Isolierfilm) 856 gebildet. Diese
Gate-Elektrode 855 ist mit dem Knoten a über den N&spplus;-Bereich 852
verbunden.
Die Diode D801 wird vom P&spplus;-Bereich 853 und N&spplus;-Bereich 852 gebildet.
Die Diode D802 wird vom P&spplus;-Bereich 853, einem Kanalbereich, d. h.
einem Oberflächenbereich der N-Wanne 851 unter der Gate-Elektrode
855, und dem P&spplus;-Bereich 854 gebildet.
Bei der in Fig. 39 gezeigten Struktur ist eine weitere Diode durch
den Knoten a, den N&spplus;-Bereich 852, die N-Wanne 851 und den P&spplus;-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&spplus;-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 Vorrichtung zum Ausdrücken eines
Neuronalen Netzes zu schaffen, die einen Synapsengewichtungswert
stabil für eine lange Zeit halten kann. Ferner soll eine Vorrichtung
zum Ausdrücken eines Neuronalen Netzes geschaffen werden, die über
einen langen Zeitraum stabil arbeitet. Außerdem soll eine
Vorrichtung zum Ausdrücken eines Neuronalen Netzes geschaffen
werden, die einen Synapsengewichtungswert mit einer einfachen
Struktur und einer kurzen Arbeitszeitspanne auffrischen kann.
Die Aufgabe wird gelöst durch die in Anspruch 1 gekennzeichnete
Vorrichtung. Das Verfahren ist in Anspruch 16 oder 22
gekennzeichnet. Die erfindungsgemäße Vorrichtung zum Ausdrücken
eines Neuronalen Netzes ist dadurch gekennzeichnet, daß 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, aufgefrischt
wird, bevor die Synapsengewichtungswertinformation verschwindet.
Die erfindungsgemäße Vorrichtung zum Ausdrücken eines Neuronalen
Netzes 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.
Weitere Merkmale und Zweckmäßigkeiten der Erfindung ergeben sich aus
der Beschreibung von Ausführungsbeispielen anhand der Figuren. Von
den Figuren zeigen:
Fig. 1: einen Auffrischungsbetrieb nach einem ersten Aspekt der
vorliegenden Erfindung;
Fig. 2: schematisch die Gesamtstruktur einer Vorrichtung zum
Ausdrücken eines Neuronalen Netzes nach einer 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 Vorrichtung zum
Ausdrücken eines Neuronalen Netzes nach der ersten
Ausführungsform;
Fig. 8: einen Auffrischungsbetrieb nach einem zweiten Aspekt der
vorliegenden Erfindung;
Fig. 9: schematisch die Gesamtstruktur einer Vorrichtung zum
Ausdrücken eines Neuronalen Netzes nach einer 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 Ausdrücken eines
Neuronalen Netzes von Fig. 9;
Fig. 13: die Struktur einer zweiten Einheit zum Ausdrücken 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 einem dritten Aspekt der
vorliegenden Erfindung;
Fig. 27: eine Referenzspannung, die der Neuroneneinheit der zweiten
Einheit zum Ausdrücken eines Neuronalen Netzes zugeführt
wird;
Fig. 28: ein Signaldiagramm des Auffrischungsbetriebs nach einem
vierten Aspekt 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
Ausdrücken 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 (Wij=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
(Wij=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 Wij * Sj bzw.
Wij * 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:
ΔWij =η * (Si&spplus; * Sj&spplus;-Si&supmin; * Sj&supmin;)
Der Umfang ΔWij 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 ΣWij * 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 (Ausg