PatentDe  


Dokumentenidentifikation DE19728756B4 19.08.2004
Titel Verfahren zum Auslegen eines festgewichteten neuronalen Netzwerks zur analogen Signalverarbeitung
Anmelder National Semiconductor Corp.(n.d.Ges.d.Staates Delaware), Santa Clara, Calif., US
Erfinder Neely, William Shields, Campbell, Calif., US
Vertreter Sparing · Röhl · Henseler, 40237 Düsseldorf
DE-Anmeldedatum 04.07.1997
DE-Aktenzeichen 19728756
Offenlegungstag 08.01.1998
Veröffentlichungstag der Patenterteilung 19.08.2004
Veröffentlichungstag im Patentblatt 19.08.2004
IPC-Hauptklasse G06G 7/60

Beschreibung[de]

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]
  1. 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.
  2. 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.
  3. 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.
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß in Schritt (a) die iterative Berechnung eines Gradientenabfalls berechnet wird.
  5. 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.
Es folgen 6 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche


Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com