-
HINTERGRUND
-
Die vorliegende Erfindung bezieht sich allgemein auf das Training oszillatorischer neuronaler Netze. Verfahren werden bereitgestellt zum Trainieren eines oszillatorischen neuronalen Netzes zusammen mit neuronalen Netzsystemen, die solche Verfahren umsetzen.
-
Oszillatorische neuronale Netze (oscillatory neural networks (ONNs)) sind künstliche neuronale Netze, die ein Netz verbundener Oszillatoren einsetzen. Die Oszillatoren entsprechen Neuronen eines neuronalen Netzes, und die Stärke der Verbindung zwischen Paaren von Oszillatoren emuliert die (synaptischen) Netzgewichtungen. Solche Netze können trainiert werden, um Korrelationsaufgaben durchzuführen, wie Bildklassifikation und Spracherkennung, indem Trainingsproben in dem Netz verarbeitet werden und die Matrix von Netzgewichtungen angepasst wird, so dass das Netz die bestimmten zu erkennenden Korrelationen „lernt“ oder abspeichert. Für ONNs wurden wenig Hardwareumsetzungen vorgeschlagen, und diese Netze beruhen üblicherweise auf mathematischem Vortraining der Gewichtungsmatrix, z.B. über einen Hebbschen Lernalgorithmus.
-
KURZDARSTELLUNG
-
Ein Aspekt der vorliegenden Erfindung stellt ein Trainingsverfahren für neuronale Netze bereit. Das Verfahren enthält ein Codieren von Daten, die eine Trainingsprobe als einen Vektor von Zeitverzögerungen in einem Netzeingangssignal definieren, und ein Liefern des Eingangssignals an ein oszillatorisches neuronales Netz. Das Netz weist mindestens eine Netzschicht auf, in der eine Mehrzahl von elektronischen Oszillatoren, die über programmierbare Verbindungselemente miteinander verbunden sind, die jeweilige Netzgewichtungen speichern, oszillatorische Signale bei Zeitverzögerungen erzeugen, die von dem Eingangssignal abhängen, um das Eingangssignal von einem Eingang zu einem Ausgang dieser Schicht auszubreiten. Das Netz ist geeignet, um ein Netzausgangssignal bereitzustellen, das im Wesentlichen linear von einer Phase von oszillatorischen Signalen in der letzten Schicht des Netzes abhängt. Das Verfahren schließt ein Berechnen eines Netzfehlers abhängig von dem Ausgangssignal und einer gewünschten Ausgabe für die Trainingsprobe und ein Berechnen von Aktualisierungen für jeweilige Netzgewichtungen durch Rückwärtspropagierung des Fehlers ein, so dass Gewichtungsaktualisierungen für eine Netzschicht von einem Vektor von Zeitverzögerungen am Eingang zu dieser Schicht und dem berechneten Fehler am Ausgang dieser Schicht abhängen. Das Verfahren weist ferner ein Programmieren der Verbindungselemente auf, um die gespeicherten Gewichtungen gemäß den berechneten Gewichtungsaktualisierungen zu aktualisieren.
-
Ein weiterer Aspekt der Erfindung stellt ein neuronales Netzsystem bereit, das einen Codierer, ein oszillatorisches neuronales Netz, wie vorstehend beschrieben, und eine Systemsteuereinheit aufweist. Der Codierer ist geeignet, um Daten zu codieren, die eine Trainingsprobe als einen Vektor von Zeitverzögerungen in einem Netzeingangssignal definieren. Das oszillatorische neuronale Netz empfängt das Eingangssignal und verbreitet es und stellt das Netzausgangssignal, wie vorstehend beschrieben, bereit. Die Systemsteuereinheit ist geeignet, um den Netzfehler und die Gewichtungsaktualisierungen zu berechnen und die Verbindungselemente des Netzes zu programmieren, wie vorstehend beschrieben
-
Ein zusätzlicher Aspekt der Erfindung stellt ein Computerprogrammprodukt bereit, das ein computerlesbares Speicherungsmedium aufweist, das Programmanweisungen umfasst, die durch eine Verarbeitungsvorrichtung ausführbar sind, um die Verarbeitungsvorrichtung zu veranlassen, ein vorstehend beschriebenes Trainingsverfahren für neuronale Netze umzusetzen.
-
Ausführungsformen der Erfindung werden nachstehend mittels veranschaulichender und nicht einschränkender Beispiele mit Bezugnahme auf die begleitenden Zeichnungen detaillierter beschrieben.
-
Figurenliste
-
- 1 ist eine schematische Darstellung eines die Erfindung umfassenden neuronalen Netzsystems;
- 2 veranschaulicht ein Verbinden von Oszillatoren in einer beispielhaften Netzschicht und eine entsprechende Gewichtungsmatrix für die Schicht.
- 3 gibt Schritte eines Trainingsverfahrens für neuronale Netze an, die durch das System von 1 durchgeführt werden;
- 4 veranschaulicht einen Betrieb eines Codierers in einer Ausführungsform des Systems;
- 5 veranschaulicht eine detailliertere Konstruktion einer Netzschicht in einer bevorzugten Ausführungsform;
- 6 veranschaulicht eine Struktur eines Einschichtnetzes in einer Ausführungsform des Systems;
- 7 veranschaulicht eine Struktur eines nichtlinearen Elements in der Ausführungsform von 6;
- 8 veranschaulicht eine Struktur eines Zweischichtnetzes in einer Ausführungsform des Systems;
- 9 veranschaulicht Schritte einer Gewichtungsaktualisierungsberechnung in einer bevorzugten Ausführungsform;
- 10 veranschaulicht ein Lernen eines Schwarzweißbildes mit einer Trainingsprobe mit niedrigem Kontrast in einer Ausführungsform der Erfindung; und
- 11 vergleicht eine Systemleistung unter Verwendung eines die Erfindung umfassenden Trainingsverfahrens und eines Hebbschen Lernalgorithmus.
-
DETAILLIERTE BESCHREIBUNG
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speicherungsmedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen darauf umfassen, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speicherungsmedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speicherungsmedium kann es sich zum Beispiel um eine elektronische Speicherungseinheit, eine magnetische Speicherungseinheit, eine optische Speicherungseinheit, eine elektromagnetische Speicherungseinheit, eine Halbleiterspeicherungseinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speicherungsmediums gehören die Folgenden: eine auswechselbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein auswechselbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch kodierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speicherungsmedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speicherungsmedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speicherungseinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speicherungsmedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speicherungsmedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speicherungsmedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfasst, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der festgelegten logischen Funktion(en) umfassen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
1 ist ein schematisches Blockschaubild eines die Erfindung umfassenden neuronalen Netzsystems. Das System 1 weist ein ONN 2, einen Eingangscodierer (input encoder (ENC) 3 und eine Systemsteuereinheit 4 auf. Das ONN 2 weist mindestens eine Netzschicht li i = 1, 2, ..., N, (N ≥ 1) auf, über die ein Netzeingangssignal durch das Netz verbreitet wird. Die Systemsteuereinheit 4 ist hier so gezeigt, dass sie eine Zentraleinheit (central processing unit (CPU)) 5 und einen Speicher 6 aufweist. Der Speicher 6 speichert einen Satz von Trainingsproben 7 für das ONN und ein oder mehrere Programmmodule. Die Programmmodule 8 weisen Programmanweisungen auf, die durch die CPU 5 ausführbar sind, um Funktionsschritte von nachstehend beschriebenen Vorgängen umzusetzen.
-
Im Betrieb des Systems 1 empfängt der Codierer 3 eine Trainingsprobe definierende Daten von der Steuereinheit 4 und codiert die Probendaten als einen Vektor von Zeitverzögerungen τ in einem Netzeingangssignal. Das resultierende Eingangssignal SIN(τ) wird an das ONN 2 geliefert. Jede Schicht li des ONN 2 weist eine Mehrzahl von elektronischen Oszillatoren auf, die über programmierbare Verbindungselemente miteinander verbunden sind, die oszillatorische Signale bei Zeitverzögerungen erzeugen, die von dem Eingangssignal abhängen. Ein Beispiel der Netzschichtstruktur ist schematisch in 2 veranschaulicht, die eine Struktur der ersten Netzschicht l1 zeigt. Diese Schicht weist eine Anzahl n von Oszillatoren O1, ..., On auf, die der Anzahl von Zeitverzögerungselementen in dem Vektor τ entsprechen. Jeder Oszillator Oj=1 bis n empfängt eine Komponente sj(tj) des Eingangssignals SIN(τ), die ein Vektorelement tj codiert. Dieses Beispiel zeigt eine vollständig verbundene Schicht des ONN 2, worin jeder Oszillator mit jedem anderen Oszillator über ein programmierbares Verbindungselement 9 verbunden ist. Die Stärke dieser Verbindung ist durch Programmieren einzelner Elemente 9 einstellbar, und diese Verbindungsstärken entsprechen jeweiligen Netzgewichtungen w. Die gezeigte Konnektivität entspricht einer dreieckigen Gewichtungsmatrix W mit Nullen entlang der Diagonalen, wie unten in der Figur angegeben.
-
Die Oszillatoren O1, ..., On in der Schicht l1 erzeugen oszillatorische Signale o1, ..., on bei Verzögerungszeiten, die von dem Eingangssignal SIN(τ) und der Gewichtungsmatrix W für die Schicht abhängen. Für ein Mehrschichtnetz (N > 1), sind diese oszillatorischen Signale (nach nachstehend detailliert angegebener weiterer Verarbeitung) mit der nächsten Netzschicht verknüpft, wodurch dieser Schicht ein Eingangssignal S2(τ2) bereitgestellt wird, und so weiter für das Netz. Das Eingangssignal SIN(τ) wird somit von einem Eingang zu einem Ausgang jeder Schicht über nachfolgende Schichten des Netzes ausgebreitet, wobei jede Schicht li ein Eingangssignal Si(τi) von der vorherigen Schicht empfängt.
-
Das ONN 2 ist geeignet, um ein Netzausgangssignal bereitzustellen, das im Wesentlichen linear von der Phase von oszillatorischen Signalen in der letzten Schicht IN des Netzes abhängt. In der Umsetzung von 1 erkennt ein Phasendetektor 10 eine Phasendifferenz φ zwischen oszillatorischen Signalen in der letzten Schicht und einem Referenzsignal Sref, um das Netzausgangssignal SOUT(φ) zu erzeugen. Dieses Ausgangssignal codiert einen Vektor φ der Phasendifferenzen φ, die durch den Phasendetektor 10 gemessen werden. Das Netzausgangssignal SOUT(φ) wird verwendet, um Aktualisierungen an den Netzgewichtungen w zu berechnen, wie nachstehend weiter detailliert angegeben.
-
3 gibt Schritte eines Trainingsverfahrens an, das im System 1 durchgeführt wird. In Schritt 20 erzeugt der Codierer 3 das Netzeingangssignal SIN(τ) für eine durch die Steuereinheit 4 gelieferte Trainingsprobe. Ein Beispiel dieses Codierprozesses wird nachstehend beschrieben. In Schritt 21 wird das Eingangssignal SIN(τ) an das ONN 2 geliefert, um das Netzausgangssignal SOUT(φ) zu erlangen. Wie in 1 angegeben, empfängt die Steuereinheit 4 auch die Eingangssignale Si(τi) an jeder Netzschicht li, wobei S1(τ1) die Netzeingabe SIN(τ) zur Verwendung in der nachfolgenden Verarbeitung ist. In Schritt 22 berechnet die Steuereinheit 4 einen Netzfehler, der durch δ bezeichnet wird, der von dem Ausgangssignal SOUT(φ) und einer gewünschten Ausgabe für die Trainingsprobe abhängt. Diese gewünschte Ausgabe entspricht einer Ausgabe, die für die Eingangstrainingsprobe in dem vollständig trainierten Netz erlangt werden sollte. Jede Trainingsprobe in einem Satz 7 kann gemäß der bestimmten Korrelation klassifiziert werden, die aus dieser Probe in dem trainierten Netz erkannt werden soll, wodurch unterschiedliche Klassifikationen oder „Kennzeichnungen“, die den Proben zugewiesen sind, jeweiligen gewünschten Ausgaben zugeordnet sind. Bei einer Bildverarbeitungsanwendung können Kennzeichnungen zum Beispiel gemäß einem Inhalt der Trainingsbilder und gewünschten Netzausgaben für unterschiedliche Kennzeichnungen zugewiesen werden, die dementsprechend definiert sind.
-
Nach dem Berechnen des Netzfehlers in Schritt 22 berechnet die Steuereinheit in Schritt 23 Gewichtungsaktualisierungen Δw für einzelne Netzgewichtungen w in jeder Schicht des Netzes. Da die Netzausgabe SOUT(φ) im Wesentlichen linear von der Phase von Signalen abhängt, die aus der in der Probe codierten Zeitverzögerung erzeugt werden, können diese Gewichtungsaktualisierungen auf eine besonders effiziente Weise durch Rückwärtspropagierung berechnet werden. Rückwärtspropagierung stellt einen Prozess zur Berechnung eines Fehlers bereit, welcher der Ausgabe jeder Netzschicht entspricht, wobei iterativ durch die Netzschichten von der letzten zur ersten zurückgearbeitet wird, beginnend mit dem aus dem Netzausgangssignal berechneten Netzfehler. Aktualisierungen an den Gewichtungen in jeder Netzschicht können dann auf dem berechneten Fehler an der Ausgabe dieser Schicht beruhen. Das Ziel der Rückwärtspropagierung besteht darin, jede Gewichtung in dem Netz im Verhältnis dazu anzupassen, wie stark sie zum Verringern des Gesamtfehlers in dem Netz beiträgt. Mit dem vorliegenden System können Gewichtungsaktualisierungen li des ONN 2 einfach und effizient als eine Funktion (hier mit F bezeichnet) eines Vektors von Zeitverzögerungen τi in dem ausgebreiteten Signal Si(τi) am Eingang in diese Schicht und dem berechneten Fehler δi am Ausgang dieser Schicht berechnet werden. Die Matrix ΔWi = F(τi, δi) der Gewichtungsaktualisierungen Δw für jede ONN-Schicht wird durch die Steuereinheit 4 in Schritt 23 berechnet. In Schritt 24 liefert die Steuereinheit 4 Programmiersignale an das ONN 2, um die Verbindungselemente zu programmieren, wodurch die gespeicherten Gewichtungen gemäß den jeweiligen Gewichtungsaktualisierungen Δw aktualisiert werden.
-
Der Prozess der Schritte 20 bis 24 kann einer Epoche eines iterativen Trainingsprozesses entsprechen, in der eine gegebene Trainingsprobe mehrmals an das ONN2 geliefert wird, d.h. bis der Netzfehler unter einen Schwellenwertpegel verringert ist oder keine weitere Verbesserung erzielt wird. Der Prozess kann dann für jede Trainingsprobe wiederholt werden, wodurch der Trainingsprozess iteriert wird, wie in Schritt 25 angegeben, bis alle Proben verarbeitet wurden und/oder eine Konvergenzbedingung (d.h. ein gewünschter Leistungspegel) erzielt ist.
-
Die vorstehende Ausführungsform stellt eine ONN-Umsetzung bereit, in der die Netzgewichtungen online durch iterative Propagierung von Trainingsproben trainiert werden kann. Obwohl oszillatorische Signale in dem Netz durch eine exponentielle Abhängigkeit der Spannung von der Phase und Zeit beschrieben sind, ist die Netzausgabe im Wesentlichen linear in Phase, die wiederum eine lineare Funktion der Eingangszeitverzögerungen ist. Dies wird ausgenutzt, um es zu erlauben, dass Gewichtungsaktualisierungen durch Rückwärtspropagierung in einer außergewöhnlich einfachen Weise berechnet werden. Der Netzfehler kann rückwärtspropagiert werden, und die Gewichtungsaktualisierungen können effizient für ein progressives Abstimmen des Netzes berechnet werden, was eine Optimierung der Gewichtungen durch den Online-Trainingsprozess erlaubt. Das System bietet somit ein hoch effizientes ONN-Training sowie eine signifikante Verbesserung der Leistung des trainierten Netzes.
-
In die Erfindung umfassenden Systemen sollte die Abhängigkeit des Netzausgangssignals SOUT(φ) von der Phase im Wesentlichen linear sein, in dem Sinne, dass die Abhängigkeit von SOUT(φ) von der Phase linear zu einer Näherung erster Ordnung ist. Im Allgemeinen führt ein höheres Maß an Linearität zu genaueren Ergebnissen, so dass der lineare Term vorzugsweise der dominante Term in der Funktion SOUT(φ) ist. Wenn es nichtlineare Terme höherer Ordnung gibt, sind diese idealerweise klein im Verglich zu dem linearen Term, z.B. weniger als 5 % und mehr bevorzugt 1 % der Größenordnung des linearen Terms.
-
Im Allgemeinen kann eine beliebige gewünschte Schaltungsumsetzung für die elektronischen Oszillatoren O eingesetzt werden. Bevorzugte Ausführungsformen setzen Relaxationsoszillatorschaltungen ein, und eine besonders bevorzugte Umsetzung wird nachstehend detailliert angegeben. In einem Mehrschicht-ONN 2 können unterschiedliche Netzschichten li unterschiedliche Anzahlen von Oszillatoren enthalten, wobei sich die Anzahl von Oszillatoren üblicherweise über nachfolgende Schichten des Netzes verringert. Das Netz kann auch zusätzlich Verarbeitungsstufen einschließen, z.B. Sammel- und Aktivierungsstufen, wie nachstehend weiter erklärt. Während in 2 ein vollständig verbundenes Netz gezeigt ist, kann ein gegebener Oszillator über die Elemente 9 mit einem oder mehreren Oszillatoren in der Schicht verbunden werden.
-
Die Verbindungselemente 9, welche die synaptischen Verbindungen in dem Netz bereitstellen, können in allgemein bekannter Weise unter Verwendung einer Vielfalt von programmierbaren Speicherschaltungen umgesetzt werden. Vielfältige Synapsenumsetzungen sind beruhend auf den memristiven Eigenschaften von resistiven Speichereinheiten bekannt, wie PCM-Zellen (phase-change memory cells - Phasenwechselspeicherzellen). Solche Einheiten sind nichtflüchtige Speichereinheiten, die durch Anlegen von Strom- oder Spannungssignalen an die Einheit auf unterschiedliche interne Zustände programmiert werden können, wobei sie einen unterschiedlichen elektrischen Widerstand zeigen. Die Verbindungselemente 9 können eine beliebige Art von memristiver Einheit aufweisen, beruhend auf zum Beispiel PCM-Zellen oder anderen resistiven Speicherzellen, wie resistiven RAM-Zellen (RRAM-Zellen), einschließlich leitfähige Brücken-RRAM-Zellen, Oxid- oder Metalloxid-RRAM-Zellen, Kohlenstoff-RRAM-Zellen, magneto-resistiven Speicherelementen mit wahlfreiem Zugriff (MRAM-Elementen) und ferroelektrischen Speicherelementen mit wahlfreiem Zugriff (FeRAM-Elementen), sowie Schaltungseinheiten, z.B. CMOS-Schaltungen, die Transistoren, Widerstände, Kondensatoren und/oder Spulen aufweisen, die programmierbare Speicherelemente umsetzen.
-
In manchen Umsetzungen kann die Systemsteuereinheit 4 mit dem ONN 2 in einer System-auf-einem-Chip-Gestaltung integriert sein. In anderen Umsetzungen kann die Systemsteuereinheit durch einen Host-Computer umgesetzt werden, der betriebsmäßig mit dem ONN 2 verbunden ist. Steuerfunktionen können vollständig durch einen Host-Computer durchgeführt werden, oder Steuerfunktionalität kann durch einen Host-Prozessor in Datenaustausch mit einer mit dem ONN 2 integrierten Steuervorrichtung umgesetzt sein, die lokale Steuervorgänge durchführt, z.B. Programmieren von Netzgewichtungen als Reaktion auf Steuersignale von dem Host. Im Allgemeinen kann die Steuereinheit 4 durch einen oder mehrere (allgemeine oder zweckbestimmte) Computer/programmierbare Datenverarbeitungsvorrichtungen umgesetzt werden, und Funktionsschritte von durch die Steuereinheit durchgeführten Verarbeitungsvorgängen können durch Hardware oder Software oder eine Kombination davon umgesetzt werden. Der Speicher 6 kann eine oder mehrere Datenspeicherungsentitäten aufweisen und kann einen Hauptspeicher, z.B. DRAM (dynamic random access memory), und/oder eine andere Speicherung aufweisen, die von der CPU 5 physisch getrennt ist, sowie einen Cache und/oder einen anderen zu der CPU 5 lokalen Speicher aufweisen.
-
Bevorzugte Umsetzungen des Systems 1 werden nachstehend detaillierter beschrieben. 4 veranschaulicht einen Betrieb des Codierers 3 für eine Bildverarbeitungsanwendung, bei der die Eingangsprobendaten Pixel eines Trainingsbildes definieren. Vier Pixel sind in diesem einfachen Beispiel gezeigt, wobei Pixelwerte einer Graustufe zwischen weiß und schwarz entsprechen. Der Codierer 3 codiert die Pixelwerte in einem Satz von DC-Signalen s1 bis s4, die von 0 Volt auf eine Spannung V bei jeweiligen Zeitverzögerungen t1 bis t4 in Bezug auf ein Referenzsignal Sref geschaltet werden. Die Größenordnung dieser Zeitverzögerungen entspricht dem Graustufen-Pixelwert, z.B. zwischen 0 (weiß) und 1 (schwarz). In dem gezeigten Beispiel entspricht s1 dem Referenzsignal Sref, wobei t1 = 0. Die Zeitverzögerungen steigen mit dem Pixelwert bis zu einer maximalen Zeitverzögerung t4 für das schwarze Pixel. Die DC-Signale s1 bis s4 bilden das Netzeingangssignal SIN(τ), das den Zeitverzögerungsvektor τ = (t1, t2, t3, t4) codiert. Eine beliebige Anzahl von Pixeln oder Datenpunkten, die eine beliebige Art von Trainingsprobe definiert, kann durch dieses Schema codiert werden.
-
5 zeigt eine besonders bevorzugte Umsetzung für eine Netzschicht 1,. Diese Schaltung 30 weist n Relaxationsoszillatoren auf, die jeweils einen Feldeffekttransistor, hier einen MOSFET (Metal Oxide Semiconductor Field-Effect Transistor - Metall-Oxid-Halbleiter-Feldeffekttransistor) 31, aufweisen. Jeder Oszillator weist ferner einen Kondensator C auf, der mit einer Einheit mit negativem differentiellem Widerstand (negative differential resistance (NDR)) 32 parallelgeschaltet ist. Eine NDR 32 kann in vielfältigen Weisen umgesetzt werden, wobei diese Ausführungsform PCM-Schaltelementen beruhend auf VO2-Dünnschicht-Übergängen verwendet. Die Oszillatoren sind über ein Array 33 von RRAM-Elementen 34 verbunden, wie allgemein unter Bezugnahme auf 2 beschrieben. Dichte Arrays dieser memristiven Elemente 34 können als integrierte Nanosysteme unter Verwendung allgemein bekannter Materialverarbeitungstechniken gefertigt werden
-
Die in dem Eingangssignal SIN(τ) codierten Zeitverzögerungen bestimmen eine Zeittaktung von Signalen, die an das Gate jeweiliger Transistoren 31 in der ersten Schicht 30 des ONN angelegt werden. Die Komponentensignale s1, s2, ..., sn von SIN(τ) können hier direkt an die Gates der jeweiligen Transistoren 31 angelegt werden, was eine Erzeugung der oszillatorischen Signale o1, o2, ..., on initiiert. 6 veranschaulicht eine Struktur eines Einschicht-ONN 35 unter Verwendung eines Schichtschaltkreises 30 in einer bevorzugten Ausführungsform. Der Eingangscodierer 36 codiert Bilddaten, wie in Bezug auf 4 beschrieben. Das Eingangssignal SIN(τ) wird an die Oszillatoren O1 bis On geliefert, die durch eine RRAM-Matrix 33 der Netzschicht 30 verbunden sind. Eine Phasenerkennungsstufe 37 erkennt den Vektor ϕ von Phasendifferenzen zwischen den Signalen o1, ..., on und dem Referenzsignal Sref, um das Ausgangssignal SOUT(φ) bereitzustellen. Dieser wird an die Aktivierungsstufe 38 geliefert, die eine vorbestimmte nichtlineare Funktion auf das Ausgangssignal anwendet. Die Aktivierungsstufe 38 ist hier in Hardware durch einen Satz von Dioden 39 zum Anwenden einer ReLU-Funktion (Rectified Linear Unit) auf das Ausgangssignal umgesetzt. Die Dioden 39 können zum Beispiel durch Transistoren umgesetzt werden, sind jedoch praktischerweise durch eine in 7 gezeigte äquivalente Schaltung mit einem Widerstand Rd und einer Kapazität Cd umgesetzt, wobei Vf für die Vorwärtsspannung der Diode steht. Das resultierende Signal A(φ) aus der Aktivierungsstufe 38 wird zur nachstehend detailliert angegebenen Verarbeitung an die Steuereinheit 4 geliefert.
-
Der Vektor φ von Phasendifferenzen im ONN 35 hängt von dem Eingangszeitverzögerungsvektor und den Netzgewichtungen ab. Für die Bildverarbeitungsanwendung von 4 kann das Netz so trainiert werden, dass eine Zeitverzögerung tj= 0 (entsprechend einem weißen Pixel) in einem Eingangssignal sj zu einem oszillatorischen Signal oj führt, das (im stabilen Zustand) mit dem Referenzsignal Sref in Phase ist. Eine Zeitverzögerung tj = t4 (entsprechend einem schwarzen Pixel) in einem Eingangssignal sj führt zu einem oszillatorischen Signal oj mit einer Phasendifferenz von π (im stabilen Zustand) in Bezug auf Sref. Graustufenwerte können abhängig von der bestimmten Korrelationsanwendung zu Phasendifferenzen führen. Wenn zum Beispiel nur eine Erkennung von Schwarzweißbildern erforderlich ist, können die Graustufenwerte abhängig von dem Pixelwert relativ zu einem definierten Schwellenwert von 0 oder von 0 oder π führen. Wenn eine Erkennung von Graustufenbildern erforderlich ist, können die Graustufenwerte zu Phasendifferenzen auf einer Skala zwischen 0 und π führen.
-
8 zeigt ein Zweischicht-ONN 40 auf Grundlage eines Schichtschaltkreises 30, wobei gleiche Komponenten in 6 durch gleiche Bezugnahmen angegeben sind. Hier ist eine die Dioden 39 aufweisende Aktivierungsstufe 41 direkt mit dem Ausgang der ersten Netzschicht l1 verbunden. Diese Stufe führt auch eine Signalsammlung durch Kombinieren von Signalkomponenten in die erforderliche Anzahl m von Signalen zur Eingabe in die nächste Netzschicht durch. Diese Schicht weist m Oszillatoren O1 bis Om auf, die durch eine RRAM-Matrix 42 mit der in 4 gezeigten allgemeinen Struktur verbunden ist. Eine Phasenerkennungsstufe 43 erkennt die Phasendifferenz zwischen den oszillatorischen Signalen o1, ..., om in dieser Schicht und dem Referenzsignal Sref. Das resultierende Signal SOUT(φ) wird an eine Aktivierungsstufe 44 geliefert, die wiederum mit den Dioden 39 umgesetzt ist, um eine ReLU-Funktion auf die Netzausgabe anzuwenden. Das resultierende Signal A(φ) wird zur weiteren Verarbeitung an die Steuereinheit 4 geliefert.
-
Die in 8 gezeigte Struktur kann leicht auf eine beliebige gewünschte Anzahl von Netzschichten li erweitert werden. Anfangswerte für die Netzgewichtungen können in vielfältigen Weisen ausgewählt werden, z.B. als zufällig verteilte Werte, oder können durch mathematisches Vortraining der Gewichtungen offline, z.B. durch Hebbsches Lernen, bestimmt werden.
-
Obwohl die oszillatorischen Signale in den ONNs 35, 40 durch exponentielle Abhängigkeiten der Form
beschrieben werden, hängen die Signale am Ausgang einer Netzschicht l
i gemäß φ
i ∝ (W
i × τ
i) linear von der Phase ab, wobei W
i die Gewichtungsmatrix für diese Schicht ist und τ
i der Vektor der Zeitverzögerungen τ
i am Eingang in diese Schicht ist.
9 gibt Schritte des Gewichtungsaktualisierungsprozesses an, der in dieser Ausführungsform durch die Steuereinheit 4 durchgeführt wird. In Schritt 50 bewertet die Steuereinheit eine Kostenfunktion für das Netz, wobei diese Kostenfunktion von einer Differenz zwischen der gewünschten Ausgabe für die Trainingsprobe und der nichtlinearen Funktion A(φ) des Ausgangssignals abhängig ist. Die Kostenfunktion C in dieser Ausführungsform ist durch Gleichung 1 gegeben.
wobei: O = A(φ) am Ausgang der letzten Netzschicht ist, und O die gewünschte Netzausgabe wie vorstehend beschrieben ist. In Schritt 51 berechnet die Steuereinheit den Netzfehler δ als die Ableitung C'(W) der Kostenfunktion Gleichung 2.
was Gleichung 3 ergibt.
Für die ReLU-Aktivierung A(φ) = max (0, φ), wobei A'(φ) = 1 für φ > 0, sonst A'(φ) = 0 ist. Für die Bildverarbeitungsanwendung von
4 sind die Phasendifferenzen φ gegeben durch 0 ≤ φ ≤ π, wobei jeder Phasendifferenzwert relativ zu S
ref zwischen π und 2π als 360° minus dem Wert zum Neuskalieren in den Bereich 0 ≤ φ ≤ π erkannt wird.
-
Der Netzfehler δ wird durch das Netz rückwärtspropagiert, um den Fehler δ
i am Ausgang jeder vorhergehenden Netzschicht zu berechnen. Dies kann durch die Steuereinheit 4 unter Verwendung der Kettenregel in der üblichen Weise berechnet werden. Die Gewichtungsaktualisierungen ΔW für jede Netzschicht l
i werden dann in Schritt 52 berechnet. Für die beschriebene bevorzugte Ausführungsform vereinfacht sich die Gewichtungsaktualisierungsberechnung zu Gleichung 4.
wobei T die Vektortransponierte bezeichnet und η ein Lernparameter ist (üblicherweise 0 < η <1), was für jede Schicht wie gewünscht festgelegt werden kann. Eine Multiplikation des Spaltenvektors ηδ
i mit dem Zeilenvektor (τ
i)
T ergibt somit die Matrix ΔW
i von Gewichtungsaktualisierungen Δw
i für die Schicht l
i. In Schritt 53 aktualisiert die Steuereinheit jede Netzgewichtung gemäß dem entsprechenden Eintrag in der Matrix ΔW
i für jede Schicht, und das Training wird mit der nächsten Epoche fortgesetzt.
-
Die bevorzugte vorstehende Ausführungsform stellt ein hoch effizientes System für ein Online-Training eines Hardware-ONN bereit. Das ONN kann bei äußerst hoher Geschwindigkeit und mit sehr wenig Leistungsaufnahme arbeiten. Die Schichtstruktur von 5 stellt eine feinabgestimmte Steuerung der oszillatorischen Schaltungen über eine Anlegung von Eingangssignalen an die Gates der FETs 31 bereit, was eine hoch genaue Zeittaktungssteuerung ergibt. Dies verbessert die Gesamtgenauigkeit des Trainingsprozesses, was ein Training mit hoher Geschwindigkeit und eine verbesserte Leistung des trainierten Netzes bietet.
-
10 veranschaulicht Testergebnisse für ein System, das die Erfindung unter Verwendung eines Einschicht-ONN umfasst, um ein Trainingsmuster zu lernen. Ein einfaches Trainingsbild mit neun Pixeln, das links in der Figur gezeigt wird, wurde für diesen Test verwendet. Die Bildpixel wurden an ein Einschicht-ONN mit neun Oszillatoren angelegt, wie vorstehend beschrieben, mit dem Ziel, das ONN zu trainieren, um Schwarzweißbilder trotz Graustufenvariationen in der Eingabe zu erkennen. Das ausgewählte Trainingsbild stellt somit aufgrund des Ausmaßes von Graustufenvariation einen besonders schwierigen Test dar. Die Netzeingabe für den Test wird durch äquivalente verflachte Bilder in der Figur angegeben. Nach nur sieben Trainingsepochen stimmte die Netzausgabe mit dem erforderlichen Schwarzweißbild überein.
-
Wenn sie nach dem Training für Inferenzvorgänge angewendet werden, bleiben die trainierten Netzgewichtungen fest. Die Netzausgabe als Reaktion auf ein (zuvor nicht gesehenes) Eingangsbild gibt dann eine Kennzeichnung an, die einen bestimmten Typ oder eine bestimmte Kategorie von Bild abbildet, für deren Erkennung das Netz trainiert wurde. Durch die Erfindung umfassende Verfahren trainierte ONNs bieten eine verbesserte Inferenzleistung verglichen mit vorherigen Trainingsverfahren auf Grundlage von Hebbschem Lernen. Dies ist in 11 veranschaulicht, die Inferenzergebnisse für ONNs vergleicht, die trainiert wurden, um Schwarzweißbilder durch Hebbsches Lernen und ein Rückwärtspropagierungs-Trainingsschema, die vorstehend beschrieben wurden, zu erkennen. Die Wahrscheinlichkeit, dass das Netz die korrekte Schwarzweißversion eines Eingangsbildes korrekt identifiziert, ist über der erlaubten Abweichung der Graustufen von Eingangsbildern aufgetragen, bis zu 50 % der Graustufen von weiß zu schwarz. Beide Trainingsverfahren ergaben genaue Ergebnisse bis zu etwa 23 % Graustufenabweichung. Das die Erfindung umfassende Verfahren übertraf jedoch das Hebbsche Lernen für den schwierigeren Test bei höheren Graustufenabweichungen signifikant.
-
Es ist ersichtlich, dass viele weitere Änderungen und Modifikationen an den beschriebenen beispielhaften Ausführungsformen vorgenommen werden können. Während zum Beispiel vorstehend bevorzugte Hardwareumsetzungen beschrieben sind, können Aktivierungsstufen in anderen Ausführungsformen durch Software in der Steuereinheit 4 umgesetzt werden. In manchen Ausführungsformen können andere Aktivierungsfunktionen, z.B. S-Kurven-Aktivierung, verwendet werden. Es können auch andere Kostenfunktionen eingesetzt werden, vorausgesetzt die Ableitung kann leicht definiert werden. Es können auch vielfältige Modifikationen an dem Oszillatorschaltkreis von 5 ins Auge gefasst werden. Zum Beispiel können die Kondensatoren über die jeweiligen Transistoren 31 anstatt den NDRs 32 fallengelassen werden.
-
Wenn im Allgemeinen Merkmale hierin in Bezug auf ein Verfahren beschrieben sind, das die Erfindung umfasst, können entsprechende Merkmale in einem System/Computerprogrammprodukt bereitgestellt werden, das die Erfindung umfasst, und umgekehrt.
-
Die Beschreibungen der vielfältigen Ausführungsformen der vorliegenden Erfindung wurden zu Zwecken der Veranschaulichung vorgelegt, sind jedoch nicht als erschöpfend oder auf die offenbarten Ausführungsformen beschränkt beabsichtigt. Viele Modifikationen und Variationen sind für den Fachmann ersichtlich, ohne von dem Umfang und Geist der beschriebenen Ausführungsformen abzuweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt anzutreffenden Technologien am besten zu erklären oder um es anderen Fachleuten zu ermöglichen, die hierin offenbarten Ausführungsformen zu verstehen.