Die Erfindung betrifft ein Verfahren zum Auslegen eines festgewichteten
neuronalen Netzwerks zur analogen Signalverarbeitung.
Verschiedene Arten von analogen neuronalen Netzwerken sind ebenso
wie Methoden zum Trainieren hiervon bekannt. Wenn jedoch das Trainieren des neuronalen
Netzwerks abgeschlossen und beabsichtigt ist, die resultierende Auslegung wiederholt
mit konsistenter Leistung und festen Gewichtungen zu verwirklichen, ist es notwendig,
ein solches Netzwerk mit Transistoren zu bauen, die in ihrer Größe groß und ferner
hoch präzise sind. Daher ist die Verwirklichung solcher Netzwerke schwierig und
aufwendig.
Aus der US 5 347 613 ist ein
iteratives Verfahren zum Entwurf eines mehrschichtigen neuronalen Netzwerks auf
MOS-Basis bekannt, bei dem in einem Computermodell ein Eingangswert an das Netzwerk
angelegt, daraufhin der Ausgangswert berechnet und mit einem gewünschten Ausgangswert
verglichen wird und bei einer Abweichung Gewichtungen verändert werden oder eine
weitere Schicht zu dem Netzwerk hinzugefügt wird.
Aus der US 5 222 193 ist ein
Verfahren zum Trainieren eines bestehenden elektronischen neuronalen Netzwerks mit
analogen Zellen bekannt.
Aufgabe der Erfindung ist es, ein Verfahren der eingangs genannten
Art zu schaffen, das ein indirektes Trainieren des neuronalen Netzwerks und seine
Verwirklichung mit Komponenten mit geringer Präzision ermöglicht.
Diese Aufgabe wird entsprechend den Merkmalen des Anspruchs 1 gelöst.
Weitere Ausgestaltungen der Erfindung sind der nachfolgenden Beschreibung
und den Unteransprüchen zu entnehmen.
Die Erfindung wird nachstehend anhand eines in den beigefügten Abbildungen
dargestellten Ausführungsbeispiels näher erläutert.
1 zeigt ein funktionales Schema eine festgewichteten
neuronalen Netzwerks.
2 zeigt schematisch eine Verwirklichung
von Festgewichtungen für neuronale Netzwerke.
3 zeigt schematisch positive und negative
Gewichtungen für neuronale Netzwerke.
4 zeigt schematisch eine Verwirklichung
einer neuronalen Sigmafunktion.
5 zeigt schematisch ein Zweieingangsneuron
mit Festgewichtungen und einer Vorspannung in einer Verwirklichung unter Verwendung
von MOSFETs.
6 zeigt ein funktionales Blockdiagramm
eines Systems, das zum Trainieren eines neuronalen Netzwerks geeignet ist.
7 zeigt ein Flußdiagramm einer Methode
zum Trainieren eines neuronalen Netzwerks.
8 zeigt ein Diagramm, das verschiedene
Formen von Fehlerminimalwerten von neuronalen Netzwerken darstellt.
9 zeigt einen integrierten MOSFET zur
Gestaltung eines neuronalen Netzwerks.
1 zeigt ein Beispiel eines festgewichteten
neuronalen Netzwerks durch Durchführung analoger Signalverarbeitung mit einem dreischichtigen
Vielschichtperceptron (MLP), das eine Vielzahl von Schichten von Neuronen mit drei
Eingängen und einem Ausgang und mit Zwischenschichtfestwichtungen besitzt, die die
Neuronen, wie dargestellt, verbinden. Drei Eingangssignale IN0, IN1, IN2 werden
durch ihre entsprechenden Zwischenschichtgewichtungen Wij mit dem Ergebnis
gewichtet, das sie summiert, und entsprechend mit den individuellen neuronalen Funktionen
fAN verarbeitet. Dieses Verarbeiten wird durch die verbleibenden Schichten
fortgesetzt, um das Endprodukt OUT zu erzeugen.
Gemäß 2 können neuronale Zwischenschichtgewichtungen
in Form von Widerständen ausgeführt werden, wobei die Eingangsspannung V entsprechend
mit dem Widerstand R "gewichtet" wird, um einen Ausgangsstrom I zu erzeugen. Ein
derartiger Widerstand kann alleine oder im Zusammenhang mit einem Operationsverstärker
(wie dargestellt) zum Puffern verwendet werden.
Gemäß 3 können positive und negative
neuronale Gewichtungen (mit Invertieren von Sigmafunktionen) durchgeführt werden.
Ein Widerstandsspannungsteiler wird entweder durch einen Transistor zum Herunter-
oder Heraufziehen über ein duales MOSFET-Übertragungsgate getrieben werden, wenn
eine positive bzw. negative Gewichtung vorgenommen wird. Für positive bzw. negative
Gewichtungen wird, wenn die Eingangsspannung VIN ansteigt, der Ausgang VOUT abnehmen
bzw. ansteigen.
Gemäß 4 kann eine Sigmafunktion in Form
eines Sigmaschaltkreises ausgeführt werden, der aus einem suboptimierten MOSFET-Invertierkreis,
wie dargestellt, gebildet ist. Wenn die Eingangsspannung VIN ansteigt, nimmt die
Ausgangsspannung VOUT ab, wie in dem Diagramm von 4
dargestellt ist.
In 5 ist ein Neuron mit zwei Eingängen
mit festen Gewichtungen und einer Vorspannung dargestellt, das durch Transistoren
zum Herunter- und Heraufziehen, die einen Summierknoten über duale MOSFET-Übertragungsgates
treiben, realisiert werden kann, wobei der Summierknoten, wie dargestellt, durch
einen Vorspannkreis vorgespannt ist und einen suboptimierten Inverterkreis treibt.
Die Summierung der Ströme 2I, 3I am Summierknoten bestimmt, wieviel
Strom herausgezogen oder über den Vorspannkreis zuaddiert wird.
6 zeigt ein Beispiel eines Trainingssystems
für ein neuronales Netzwerk, wie es in 1 dargestellt
ist. Ein Pseudozufallsdatengenerator liefert eine Reihe von Pseudozufallsdaten,
die in einem Kanalmodell (beispielsweise einem Modell eines magnetischen Lesekanals,
eines digitalen drahtlosen Empfangskanals oder eines Kabel- oder faseroptischen
Empfangskanals) verarbeitet werden. Die resultierenden transformierten Daten werden
mit unkorreliertem Rauschen summiert und dann sequentiell durch eine Reihe von Einheitszeitverzögerungen
zur Einspeisung in das neuronale Netzwerk verzögert. Der Ausgang des neuronalen
Netzwerks wird dann mit einer entsprechend zeitverzögerten Version der originalen
Pseudozufallsdaten verglichen. Die Differenz oder der Fehler zwischen diesen beiden
Signalen wird dann zurück in das neuronale Netzwerk zur Rückausbreitung gegeben,
um die neuronalen Zwischenschichtgewichtungen in dem neuronalen Netzwerk einzustellen.
Wenn das neuronale Netzwerk trainiert worden ist, um genau Daten von dem gestörten
Kanal zu gewinnen, können Auslegungsparameter aus dem neuronalen Netzwerk zur Verwendung
bei der Auslegung eines festgewichteten neuronalen Netzwerks mit Analogverarbeitung
extrahiert werden.
7 zeigt ein Beispiel einer Methode zum
Trainieren eines neuronalen Netzwerks in indirekter Weise zum Generieren der Auslegungsparameter
für ein neuronales Netzwerk, die zur Auslegung eines festgewichteten neuronalen
Netzwerks mit Analogverarbeitung verwendet werden. Hierbei wird zunächst mit dem
Setzen von Anfangswerten für die neuronalen Gewichtungen und Funktionen des neuronalen
Netzwerks, das trainiert werden soll, begonnen. Unter Verwendung dieser Anfangswerte
wird eine iterative Fehlerberechnung durchgeführt, wobei der globale Systemfehler
berechnet wird. Ein Beispiel dieser iterativen Fehlerberechnung würde sein, eine
Gradientenabfallsmethode wie Rückausbreitung mit spezifischer Lernrate und -moment
zu verwenden. Während dieses iterativen Berechnungsvorgangs werden die resultierenden
Fehler verwendet, um die neuronalen Gewichtungen (und gegebenenfalls die neuronalen
Funktionen) zu verändern.
Nachfolgend werden Werte, die erwartete Verwirklichungsfehler darstellen,
zu den Gewichtungen (und gegebenenfalls zu den neuronalen Funktionen) addiert. Solche
erwarteten Verwirklichungsfehler repräsentieren Leistungsfehler, von denen erwartet
wird, daß sie bei der endgültigen Schaltkreisverwirklichung auftreten, und können
basierend auf bekannten Charakteristiken des verwendeten Halbleiterherstellungsprozeßes
oder empirisch bestimmt werden. Wenn die erwarteten Verwirklichungsfehler verwendet
wurden, um die Gewichtungen (und gegebenenfalls die neuronalen Funktionen) geeignet
zu modifizieren, wird der globale Systemfehler erneut unter Verwendung derartig
angepasster Gewichtungen (und Funktionen) berechnet.
Der erneut berechnete globale Systemfehler wird dann mit dem gewünschten
globalen Systemfehler verglichen. Wenn der erneut berechnete globale Systemfehler
größer als der gewünschte globale Systemfehler ist, werden die vorhergehenden Schritte
beginnend mit der iterativen Fehlerberechnung wiederholt, bis der erneut berechnete
globale Systemfehler nicht länger größer als der gewünschte globale Systemfehler
ist.
Wenn der erneut berechnete globale Systemfehler nicht länger größer
als der gewünschte globale Systemfehler ist, können die resultierenden Auslegungsparameter,
die die endgültigen neuronalen Gewichtungen und Funktionen darstellen, zur Verwendung
bei der Gestaltung der MOSFET-Parameter entnommen werden, die zur tatsächlichen
Verwirklichtung der Neuronen und Gewichtungen in Hardware, beispielsweise in einem
integrierten Schaltkreis, verwendet werden.
Wie oben ausgeführt, können die neuronalen Gewichtungen und Funktionen
wie gewünscht modifiziert werden, und zwar basierend auf der iterativen Berechnung
des globalen Systemfehlers, um eine optimale Gestaltung des neuronalen Netzwerks
vorzunehmen. Typischerweise werden neuronale Funktionen, wenn sie einmal anfänglich
gestaltet sind, beibehalten und irgendwelche nachfolgenden Modifikationen basierend
auf dem berechneten globalen Systemfehler nur in bezug auf die Gewichtungen vorgenommen.
Jedoch ist es nichtsdestoweniger möglich, vorzusehen, auch geeignete Änderungen
der neuronalen Funktionen selbst vorzunehmen, obwohl dies etwas schwieriger sein
kann.
8 zeigt ein Beispiel einer Technik zum
Verwirklichen der obigen Methode zum Trainieren des neuronalen Netzwerks in indirekter
Weise, wobei in Betracht gezogen wird, daß der globale Systemfehler eine Anzahl
von Minima aufweisen kann. Beispielsweise stellt für einen gegebenen Gewichtungswert
Bereich A ein schmales Fehler-„Tal" dar, während Bereich B ein breites Fehler-"Tal"
darstellt. Bereich C umfasst ein lokales Minimum des globalen Systemfehlers, während
Bereich D ein globales Minimum für den globalen Systemfehler bildet. Dementsprechend
können durch Auswahl eines geeigneten gewünschten globalen Systemfehlers und Verwenden
der oben beschriebenen Methode die individuellen neuronalen Gewichtungswerte bestimmt
werden, wobei relativ große Änderungen in den Gewichtungswerten (beispielsweise
aufgrund von Verwirklichungsfehlern) toleriert werden können, bevor der globale
Systemfehler größer als gewünscht wird.
Beispielsweise würde für jede individuelle neuronale Gewichtung die
entsprechende Globalsystemfehlerfunktion für derartige Gewichtung, wie in
8 dargestellt, ideal einen Gewichtungswert haben, der
im Bereich B zentriert ist.
Wenn das neuronale Netzwerk indirekt trainiert wurde,
können seine Auslegungsparameter zum Gestalten der MOSFETs, die verwendet werden,
um das neuronale Netzwerk in Hardware zu realisieren, extrahiert werden. Gemäß
9 kann die Breite W und die Länge L des Kanals des
jeweiligen MOSFET, beispielsweise wie durch den die N-Diffusion überlappenden Polysiliciumbereich
bestimmt, entsprechend den bekannten MOSFET-Gestaltungstechniken berechnet werden.
Z.B. ist bekannt, daß die relative Verstärkung eines MOSFET, d.h. seine Transkonduktanz,
proportional zur Breite dividiert durch die Länge des MOSFET-Kanals entsprechend
der Mobilität der Ladungsträger und der Dielektrizitätskonstanten und der Dicke
des Isoliermaterials (z.B. Oxid zwischen Polysilicium und N-Diffusionsschichten)
wie folgt ist:
mit
&bgr; = Transkonduktanz
&mgr; = Ladungsträgermobilität = Oxid-Dielektrizitätskonstante
tox = Oxiddicke
W = Kanalbreite
L = Kanallänge
Anspruch[de]
Verfahren zum Auslegen eines festgewichteten neuronalen Netzwerks zur
analogen Signalverarbeitung, wobei die Festlegung folgender Daten erfolgt:
Daten, die eine gewünschte neuronale Netzwerkkonfiguration zur analogen Signalverarbeitung
mit einer Vielzahl von Neuronen mit einer entsprechenden Vielzahl von neuronalen
Funktionen und einer Vielzahl von neuronalen Gewichtungen, die eine entsprechende
Vielzahl von neuronalen Gewichtungswerten besitzen, darstellen;
Daten, die eine gewünschten globalen Systemfehler für die gewünschte neuronale Netzwerkkonfiguration
darstellen;
Daten, die eine Vielzahl erwarteter Werte von Gewichtungsverwirklichungsfehlern
darstellen;
Daten, die eine Vielzahl von Anfangswerten für die Vielzahl von neuronalen Gewichtungswerten
darstellen;
wobei die so festgelegten Daten in einem Computer gespeichert werden, der diese
in folgenden Schritten bearbeitet:
(a) Iterative Berechnung eines tatsächlichen globalen Fehlers in Übereinstimmung
mit der Vielzahl von neuronalen Funktionen und der Vielzahl von neuronalen Gewichtungswerten,
wobei in Übereinstimmung hiermit ausgewählte Gewichtungswerte modifiziert werden;
(b) Addieren der Vielzahl von erwarteten Werten von Gewichtungsverwirklichungsfehlern
zur Vielzahl von neuronalen Gewichtungswerten zum Erzeugen einer Vielzahl von fehlerkorrigierten
neuronalen Gewichtungswerten;
(c) Erneutes Berechnen des tatsächlichen globalen Fehlers in Übereinstimmung mit
der Vielzahl von neuronalen Funktionen und der Vielzahl von fehlerkorrigierten neuronalen
Gewichtungswerten als erneut berechneten globalen Fehler;
(d) Vergleichen des erneut berechneten globalen Fehlers mit dem gewünschten globalen
Fehler;
Wiederholen der Schritte (a) bis (d), wenn der erneut berechnete globale Fehler
größer als der gewünschte globale Fehler ist;
Berechnung einer ersten Vielzahl von MOSFET-Parametern, die der Vielzahl von neuronalen
Funktionen entsprechen und eine erste Vielzahl von MOSFET-Kanalbreiten und -längen
darstellen;
Berechnung einer zweiten Vielzahl von MOSFET-Parametern, die der Vielzahl von neuronalen
Gewichtungswerten entsprechen und eine zweite Vielzahl von MOSFET-Kanalbreiten und
-längen darstellen; und
Ausgabe von Daten entsprechend der ersten und zweiten Vielzahl von MOSFET-Parametern.
Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß Schritt (a)
durchgeführt wird, indem ein tatsächlicher globaler Fehler iterativ entsprechend
der Vielzahl neuronaler Funktionen und der Vielzahl neuronaler Gewichtungswerte
berechnet, in Übereinstimmung hiermit ein Minimum für den gewünschten globalen Fehler
bestimmt und in Übereinstimung hiermit ausgewählte neuronale Gewichtungswerte modifiziert
werden.
Verfahren nach Anpruch 1 oder 2, dadurch gekennzeichnet, daß Daten
entsprechend einer Vielzahl von Anfangsfunktionen für die Vielzahl der neuronalen
Funktionen und Daten entsprechend einer Vielzahl von erwarteten Verwirklichungsfehlern
für die neuronalen Funktionen festgelegt und gespeichert werden, daß in Schritt
(a) zusätzlich ausgewählte neuronale Funktionen modifiziert werden, daß Schritt
(b) unter Verwendung der zusätzlich modifizierten neuronalen Funktionen zum Erhalten
einer Vielzahl von fehlerkorrigierten neuronalen Funktionen durchgeführt wird und
in Schritt (c) der tatsächliche globale Fehler unter zusätzlicher Berücksichtigung
der fehlerkorrigierten neuronalen Funktionen berechnet wird.
Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet,
daß in Schritt (a) die iterative Berechnung eines Gradientenabfalls berechnet wird.
Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet,
daß in Schritt (a) eine Rückausbreitung mit Lernrate und -moment durchgeführt wird.