DE102020101244A1 - Gestufte neuronale netzwerke zur lösung von np-schweren/vollständigen problemen - Google Patents

Gestufte neuronale netzwerke zur lösung von np-schweren/vollständigen problemen Download PDF

Info

Publication number
DE102020101244A1
DE102020101244A1 DE102020101244.6A DE102020101244A DE102020101244A1 DE 102020101244 A1 DE102020101244 A1 DE 102020101244A1 DE 102020101244 A DE102020101244 A DE 102020101244A DE 102020101244 A1 DE102020101244 A1 DE 102020101244A1
Authority
DE
Germany
Prior art keywords
neural network
complete
severe
solution
deep neural
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020101244.6A
Other languages
English (en)
Inventor
John Paul Strachan
Suhas Kumar
Thomas Van Vaerenbergh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of DE102020101244A1 publication Critical patent/DE102020101244A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Complex Calculations (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Es werden abgestufte neuronale Netze und Verfahren dafür bereitgestellt, um NP-Probleme zu lösen. In einigen Ausführungsformen umfassen die Verfahren das Identifizieren einer Vielzahl von zweiten NP-schweren/vollständigen Problemen, wobei jedes der zweiten NPschweren/vollständigen Probleme dem ersten NP-schweren/vollständigen Problem ähnlich ist; Identifizieren von Lösungen für die zweiten schweren/vollständigen Probleme des NP; Training eines tiefen neuronalen Netzwerks mit den zweiten schweren/vollständigen NP-Problemen und den Lösungen; Bereitstellen des ersten NP-Schweren/Vollständige-Problems für das trainierte tiefe neuronale Netzwerk, wobei das trainierte Deep-Neural-Netzwerk eine vorläufige Lösung für das erste NP-Schweren/Vollständige-Problem erzeugt; und Bereitstellen der vorläufigen Lösung für ein rekursives neuronales Netzwerk, das konfiguriert ist, um eine Energieminimierungssuche auszuführen, wobei das rekursive neuronale Netzwerk eine endgültige Lösung für das Problem basierend auf der vorläufigen Lösung erzeugt.

Description

  • Beschreibung der verwandten Kunst
  • Künstliche neuronale Netze sind eine Familie technischer Modelle, die vom biologischen Nervensystem inspiriert sind und zur Schätzung oder Annäherung von Funktionen verwendet werden, die durch komplexe Dateneingaben dargestellt werden. Ein neuronales Netzwerk kann als ein System miteinander verbundener „Neuronen“ dargestellt werden, die Nachrichten untereinander austauschen. Die Verbindungen können numerische Gewichte haben, die basierend auf Erfahrung abgestimmt werden können, wodurch neuronale Netze an Eingaben angepasst werden und maschinelles Lernen möglich sind. Künstliche neuronale Netze können eine Vielzahl von Anwendungen haben, einschließlich Funktionsnäherung, Klassifizierung, Datenverarbeitung, Robotik und numerische Computersteuerung.
  • Figurenliste
  • Die vorliegende Offenbarung wird gemäß einer oder mehreren verschiedenen Ausführungsformen detailliert unter Bezugnahme auf die folgenden Figuren beschrieben. Die Figuren dienen nur zur Veranschaulichung und zeigen lediglich typische oder beispielhafte Ausführungsformen.
    • 1 zeigt ein neuronales Netzwerksystem zum Lösen von NP-Schweren/Vollständigen-Problemen gemäß einer Ausführungsform der offenbarten Technologie.
    • 2 zeigt ein Corssbar-Array gemäß einer Ausführungsform der offenbarten Technologie.
    • 3 zeigt ein rekursives neuronales Netzwerksystem gemäß einer Ausführungsform der offenbarten Technologie.
    • 4 ist ein Blockdiagramm einer beispielhaften Rechenkomponente oder - vorrichtung zum Lösen von NP-Schweren/Vollständige-Problemen unter Verwendung von abgestuften neuronalen Netzen gemäß einer Ausführungsform.
    • 5 zeigt eine beispielhafte vorläufige Lösung, die von einem tiefen neuronalen Netzwerk für ein Reiseverkaufsproblem gemäß einer Ausführungsform der offenbarten Technologie bereitgestellt wird.
    • 6 setzt das Beispiel von 5 fort.
    • 7 zeigt ein Blockdiagramm eines beispielhaften Computersystems, in dem verschiedene der hier beschriebenen Ausführungsformen implementiert werden können.
  • Die Zeichnungen erheben keinen Anspruch auf Vollständigkeit und beschränken die vorliegende Offenbarung nicht auf die genaue offenbarte Form.
  • Detaillierte Beschreibung
  • Einige neuronale Netze, wie beispielsweise neuronale Hopfield-Netze, können zum Lösen von NP-Problemen verwendet werden, wie z.B. das Problem des Handlungsreisenden, die Ressourcenplanung und dergleichen. Diese Netzwerke sind jedoch durch die Qualität der anfänglichen Schätzungen begrenzt, die als Ausgangspunkt dienen. Um diese anfänglichen Vermutungen zu erzeugen, kann die offenbarte Technologie ein tiefes neuronales Netzwerk verwenden. Die vom tiefen neuronalen Netzwerk erzeugte vorläufige Lösung kann als Ausgangspunkt für ein rekursives neuronales Netzwerk verwendet werden. Das rekursive neuronale Netzwerk kann eine Energieminimierungssuche implementieren, beispielsweise unter Verwendung eines Hopfield-Netzwerks oder dergleichen. Die rekursiven Netzwerke können wiederkehrende Netzwerke und dergleichen umfassen.
  • Ein Vorteil des abgestuften Ansatzes ist die kürzere Zeit, die erforderlich ist, um zu einer Lösung zu gelangen. Tiefe neuronale Netze sind ungenau, aber schnell und werden daher in der offenbarten Technologie verwendet, um eine gute vorläufige Lösung bereitzustellen. Rekursive neuronale Netze sind präzise, aber langsam, insbesondere wenn von einer schlechten Anfangslösung ausgegangen wird. Durch die Bereitstellung einer guten vorläufigen Lösung wird die Zeit reduziert, die ein rekursives neuronales Netzwerk benötigt, um eine endgültige Lösung zu erzielen. Die Verwendung dieser neuronalen Netze in der hier beschriebenen abgestuften Weise reduziert die Gesamtzeit, die erforderlich ist, um zu einer endgültigen Lösung für ein schweres/vollständiges NP-Problem zu gelangen.
  • 1 zeigt ein neuronales Netzwerksystem zum Lösen von NP-Schweren/Vollständige-Problemen gemäß einer Ausführungsform der offenbarten Technologie. Bezugnehmend auf 1 kann das neuronale Netzwerksystem 100 ein oder mehrere tiefe neuronale Netzwerke 102a-n enthalten. Ein tiefes neuronales Netzwerk kann sich auf ein künstliches neuronales Netzwerk beziehen, das viele Schichten zwischen einer Eingangsschicht und einer Ausgangsschicht aufweist. Die tiefen neuronalen Netze 102 können anwendungsspezifische Systeme wie Gesichtserkennungshardware enthalten. Die tiefen neuronalen Netze 102 können eine Anzahl von Algorithmen implementieren, beispielsweise Einspeisungsalgorithmen, Inferenzalgorithmen, Rückausbreitungsalgorithmen und dergleichen. Die tiefen neuronalen Netze 102 können auf beliebigen Hardwareplattformen basieren, beispielsweise auf feldprogrammierbaren Gate-Arrays (FPGA), grafischen Verarbeitungseinheiten (GPU), Memristoren, integrierten photonischen Schaltungen, Matrix-Vektor-Multiplikatoren, die auf Freiraumoptiken basieren, und dergleichen und Kombinationen davon.
  • Das neuronale Netzwerksystem 100 kann eine Eingangsschaltung 108 enthalten. Gemäß Ausführungsformen der offenbarten Technologie kann die Eingangsschaltung 108 die tiefen neuronalen Netze 102 unter Verwendung gelöster NP-Schweren/Vollständige-Probleme und der Lösungen für diese Probleme trainieren. Nach dem Training kann die Eingangsschaltung 108 die tiefen neuronalen Netze 102 mit einem ungelösten NP-Schweren/Vollständige-Problem versorgen, das den gelösten NP-Schweren/Vollständige-Problemen ähnlich ist, die zum Trainieren der Deep Neural Networks verwendet werden, und für die eine vorläufige Lösung erwünscht ist. Jedes der tiefen neuronalen Netze 102 kann eine vorläufige Lösung für das Problem bereitstellen.
  • Das neuronale Netzwerksystem 100 kann eine neuronale Netzwerkschnittstelle 106 und ein oder mehrere rekursive neuronale Netzwerke 104a-n enthalten. Die rekursiven neuronalen Netze 104 können als jedes neuronale Netz implementiert werden, das so programmiert werden kann, dass es eine Eingabe einer Matrix akzeptiert, die einen Hamilton-Operator eines schweren/vollständigen NP-Problems darstellt, und in Richtung einer Lösung der Matrix iteriert. Das rekursive neuronale Netzwerk 104 kann ein Hopfield-Netzwerk, einen autoassoziativen Speicher, eine restriktive Boltzmann-Maschine, eine optische Ising-Maschine und dergleichen und Kombinationen davon umfassen. Das Hopfield-Netzwerk kann als Crossbar-Array von Speicherelementen implementiert werden. Die Speicherelemente können als Memristoren oder dergleichen implementiert sein. Die rekursiven neuronalen Netze können auf Hardwareplattformen implementiert werden, einschließlich GPUs, CMOS-basierten Netzwerken (Complementary Metal Oxide Semiconductor), memristorbasierten Netzwerken und dergleichen und Kombinationen davon.
  • Wenn das neuronale Netzwerksystem 100 nur ein tiefes neuronales Netzwerk 102 enthält, kann die neuronale Netzwerkschnittstelle 106 die rekursiven neuronalen Netzwerke 104 mit der vorläufigen Lösung programmieren, die von diesem tiefen neuronalen Netzwerk 102 bereitgestellt wird. Wenn das neuronale Netzwerksystem 100 mehrere tiefe neuronale Netzwerke 102 enthält, kann die neuronale Netzwerkschnittstelle 106 die rekursiven neuronalen Netzwerke 104 mit einer oder mehreren der vorläufigen Lösungen, einer Synthese der vorläufigen Lösungen oder ausgewählten der vorläufigen Lösungen programmieren. In einigen Ausführungsformen kann das tiefe neuronale Netzwerk 102 Parameter zum Abtasten aus einer Verteilung der vorläufigen Lösungen bereitstellen, und die neuronale Netzwerkschnittstelle 106 kann ein oder mehrere Abtastwerte aus der Verteilung verwenden, um vorläufige Lösungen für die rekursiven neuronalen Netzwerke 104 zu erzeugen. Jede dieser Techniken kann allein oder in Kombination verwendet werden. Die neuronale Netzwerkschnittstelle 106 kann einen oder mehrere anfängliche Eingabevektoren für die rekursiven neuronalen Netzwerke 104 bereitstellen.
  • Rekursive neuronale Netze 104 können viele Male iterieren, um eine endgültige Lösung bereitzustellen. Die rekursiven neuronalen Netze können die endgültige Lösung für eine Ausgangsschaltung 110 bereitstellen. Die Eingangsschaltung 108 und die Ausgangsschaltung 110 können beliebige Schaltungen enthalten, die zur Schnittstelle mit den tiefen neuronalen Netzen 102 bzw. den rekursiven neuronalen Netzen 104 erforderlich sind. Die Schaltungen können beispielsweise Eingangsschaltungen, Ausgangsschaltungen, Analog-Digital-Wandler, Digital-Analog-Wandler, Speicher, Prozessoren und dergleichen umfassen.
  • In einigen Ausführungsformen umfasst das neuronale Netzwerksystem 100 eine Rückkopplungsschleife 112. Die Rückkopplungsschleife 112 kann Ausgänge des rekursiven neuronalen Netzwerks 104 von der Ausgangsschaltung 110 zur Eingangsschaltung 108 bereitstellen. Diese Ausgaben können endgültige Lösungen, andere Daten, die von den rekursiven neuronalen Netzen 104 bereitgestellt werden, Produkte, die von den endgültigen Lösungen oder anderen Daten abgeleitet sind, oder eine beliebige Kombination davon umfassen. Die Rückkopplungsschleife 112 kann Daten von der neuronalen Netzwerkschnittstelle 106 bereitstellen. Diese Daten können die vorläufigen Lösungen, andere Daten, die von den tiefen neuronalen Netzen 102 bereitgestellt werden, andere Daten, die den rekursiven neuronalen Netzen bereitgestellt werden, Produkte, die von diesen vorläufigen Lösungen und Daten abgeleitet sind, oder eine beliebige Kombination davon umfassen. Mit dieser Rückkopplungsschleife 112 kann das gesamte neuronale Netzwerksystem 100, einschließlich der tiefen neuronalen Netzwerke 102 und der rekursiven neuronalen Netzwerke 104, so oft wie gewünscht iterieren, um eine verbesserte endgültige Lösung zu erhalten.
  • In solchen Ausführungsformen kann die Eingangsschaltung 108 die Rückkopplungsdaten oder daraus abgeleitete Produkte an die tiefen neuronalen Netze 102 liefern. Beispielsweise können diese Daten in unbeaufsichtigten Trainingstechniken oder beim Lernen zur Stärkung und dergleichen verwendet werden. Beispielsweise wird beim Verstärkungslernen eine Gesamtleistungszahl für das neuronale Netzwerk verfolgt, und die Gewichte des neuronalen Netzwerks werden gemäß der Leistungszahl angepasst.
  • In einigen Ausführungsformen können die neuronalen Netze in der ersten Stufe des neuronalen Netzwerksystems 100, dh die tiefen neuronalen Netze 102, durch andere Arten von neuronalen Netzen ersetzt werden. Beispielsweise können eines oder mehrere der tiefen neuronalen Netze 102 durch ein rekursives neuronales Netzwerk, ein vorwärts gerichtetes neuronales Netzwerk, ein Reservoir-Computernetzwerk und dergleichen ersetzt werden. Eines oder mehrere dieser Netzwerke können in Hardware, Software oder einer Kombination davon implementiert sein.
  • 2 zeigt ein rekursives neuronales Netzwerksystem gemäß einer Ausführungsform der offenbarten Technologie. Bezugnehmend auf 2 kann das rekursive neuronale Netzwerksystem 200 ein rekursives neuronales Netzwerk 230 enthalten. Das rekursive neuronale Netzwerk kann ein Crossbar-Array 202 enthalten. 3 zeigt eine Crossbar-Array 202 gemäß einer Ausführungsform der offenbarten Technologie. Bezugnehmend auf 3 enthält das Crossbar-Array 202 mehrere Zeilenlinien R, wobei drei Zeilenlinien R1, R2 und R3 gezeigt sind. Das Crossbar-Array 202 enthält auch mehrere Spaltenlinien C, wobei drei Spaltenlinien C1, C2 und C3 gezeigt sind. Das Crossbar-Array 202 enthält auch mehrere Speicherzellen G. Jede Speicherzelle G ist zwischen einer jeweiligen Kombination einer der Zeilenleitungen R und einer der Spaltenleitungen C gekoppelt. Beispielsweise ist die Speicherzelle G 1,1 zwischen gekoppelt Zeilenzeile R1 und Spaltenzeile C1. Das Crossbar-Array 202 kann beliebige geeignete Abmessungen aufweisen.
  • Vor dem Betrieb des Crossbar-Arrays 202 kann eine Matrix von Gewichten in den Speicherzellen G gespeichert werden. Während des Betriebs des Crossbar-Arrays 202 können die Spaltenleitungen C Eingaben gemäß einem Eingabevektor empfangen, und jede Zeilenzeile kann eine liefern Ausgabe, die ein Punktprodukt des Eingabevektors und der Gewichte in der Zeilenzeile darstellt.
  • Die Speicherelemente G des Crossbar-Arrays 202 können als Memristoren implementiert sein. Memristoren sind Geräte, die als Komponenten in einer Vielzahl von elektronischen Schaltungen verwendet werden können, wie z.B. Speichern, Schaltern, Hochfrequenzschaltungen sowie Logikschaltungen und -systemen. In einer Speicherstruktur kann ein Crossbar-Array von Speichervorrichtungen mit Memristoren verwendet werden. In Speichervorrichtungen können Memristoren verwendet werden, um Informationsbits 2 oder 0 zu speichern. Der Widerstand eines Memristors kann durch Anlegen eines elektrischen Stimulus wie einer Spannung oder eines Stroms durch den Memristor geändert werden. Im Allgemeinen kann mindestens ein Kanal gebildet werden, der zwischen zwei Zuständen umgeschaltet werden kann - einer, in dem der Kanal einen elektrisch leitenden Pfad bildet („ein“) und einer, in dem der Kanal einen weniger leitenden Pfad bildet („aus“) . In einigen anderen Fällen stehen leitende Pfade für „Aus“ und weniger leitende Pfade für „Ein“. Darüber hinaus können sich Memristoren auch als analoge Komponente mit variabler Leitfähigkeit verhalten.
  • In einigen Anwendungen kann ein Speicher-Crossbar-Array verwendet werden, um Vektormatrixberechnungen durchzuführen. Beispielsweise wird ein Eingangsspannungssignal von jeder Spaltenleitung des Crossbars mit der Leitfähigkeit der Widerstandsvorrichtungen in jeder Zeilenleitung gewichtet und als der von jeder Zeilenleitung ausgegebene Strom akkumuliert. Wenn Drahtwiderstände ignoriert werden können, wird der aus dem Crossbar-Array fließende Strom (1) idealerweise in der folgenden Gleichung ungefähr dargestellt: I T = V T G
    Figure DE102020101244A1_0001
  • Dabei ist V die Eingangsspannung und G die Leitfähigkeitsmatrix.
  • Das Memristor-Crossbar-Array ist so konfiguriert, dass Beiträge von jedem Memristor in das Crossbar-Array aufgenommen werden. Die Verwendung von Memristoren an Verbindungsstellen oder Kreuzungspunkten des Crossbar-Array ermöglicht die Programmierung des Widerstands (oder der Leitfähigkeit) an jeder solchen Verbindungsstelle.
  • Unter erneuter Bezugnahme auf 2 kann das rekursive neuronale Netzwerk 230 einen oder mehrere Filter 204 enthalten. Die Filter 204 empfangen Ausgänge 208 von den Zeilenlinien R des Crossbar-Arrays 202 und erzeugen einen neuen Eingabevektor 210 für das Crossbar-Array 202 basierend auf den Ausgängen 208. Die Filter können linear oder nichtlinear sein und können einfache Filter wie Schwellenwertfilter, komplexe Filter wie Sigmoidfilter, andere Filter und Kombinationen davon umfassen.
  • Das rekursive neuronale Netzwerk 230 kann einen oder mehrere Puffer 206 enthalten. Die Puffer 206 speichern den neuen Eingabevektor 210 und liefern Signale 212, die den neuen Eingabevektor 210 darstellen, an die Spaltenlinien C des Crossbar-Arrays 202.
  • Das rekursive neuronale Netzwerksystem 200 kann einen Speicher 222 zum Speichern einer Gewichtsmatrix 224 enthalten. Die Gewichtsmatrix 224 kann ein zu lösendes Problem darstellen. Das zu lösende Problem kann ein NP-schweres Problem umfassen, wie beispielsweise ein Problem mit reisenden Verkäufern, ein Max-Cut-Problem, ein Job- oder Flugplanungsproblem oder dergleichen. Das Problem kann als eine Matrix ausgedrückt werden, die einen Hamilton-Operator eines schweren/vollständigen NP-Problems darstellt.
  • Das rekursive neuronale Netzwerksystem 200 kann eine Steuerung 220 enthalten. Die Steuerung 220 kann die Gewichtungsmatrix 224 in die Speicherelemente G des Crossbar-Arrays 202 programmieren. Die Steuerung 220 kann auch andere Funktionen ausführen, wie die hier beschriebenen. Die Steuerung 220 kann als Prozessor, dedizierte Schaltung oder dergleichen oder Kombinationen davon implementiert sein.
  • 4 ist ein Blockdiagramm einer beispielhaften Rechenkomponente oder Vorrichtung 400 für Lösen von NP-Problemen mit Hilfe vollständiger neuronaler Netze gemäß einer Ausführungsform. Die Rechenkomponente 400 kann beispielsweise ein Servercomputer, eine Steuerung oder eine andere ähnliche Rechenkomponente sein, die Daten verarbeiten kann. In der beispielhaften Implementierung von 4 umfasst die Computerkomponente 400 einen Hardwareprozessor 402 und ein maschinenlesbares Speichermedium 404. In einigen Ausführungsformen kann die Rechenkomponente 400 eine Ausführungsform der Eingangsschaltung 108, der neuronalen Netzwerkschnittstelle 106 oder einer beliebigen Kombination davon sein.
  • Der Hardwareprozessor 402 kann eine oder mehrere Zentraleinheiten (CPUs), halbleiterbasierte Mikroprozessoren und/oder andere Hardwarevorrichtungen sein, die zum Abrufen und Ausführen von Anweisungen geeignet sind, die in einem maschinenlesbaren Speichermedium 404 gespeichert sind. Der Hardwareprozessor 402 kann Anweisungen wie die Anweisungen 406 bis 414 abrufen, decodieren und ausführen, um Prozesse oder Operationen zum Lösen von NP-Schweren/Vollständige-Problemen unter Verwendung von gestuften neuronalen Netzen zu steuern. Alternativ oder zusätzlich zum Abrufen und Ausführen von Anweisungen kann der Hardwareprozessor 402 eine oder mehrere elektronische Schaltungen enthalten, die elektronische Komponenten zum Ausführen der Funktionalität einer oder mehrerer Anweisungen enthalten, wie beispielsweise ein feldprogrammierbares Gate-Array (FPGA), anwendungsspezifisch integriert Schaltung (ASIC) oder andere elektronische Schaltungen.
  • Ein maschinenlesbares Speichermedium, wie beispielsweise ein maschinenlesbares Speichermedium 404, kann eine beliebige elektronische, magnetische, optische oder andere physische Speichervorrichtung sein, die ausführbare Anweisungen enthält oder speichert. So kann ein nichtflüchtiges maschinenlesbares Speichermedium 404 beispielsweise ein Arbeitsspeicher (RAM), ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM - Electrically Erasable Programmable Read-Only Memory), ein Speichergerät, eine optische Speicherplatte und ähnliches sein. In einigen Ausführungsformen kann das maschinenlesbare Speichermedium 404 ein nicht vorübergehendes Speichermedium sein, wobei der Begriff „nicht vorübergehend“ keine vorübergehenden Ausbreitungssignale umfasst. Wie nachstehend ausführlich beschrieben, kann das maschinenlesbare Speichermedium 404 mit ausführbaren Anweisungen codiert werden, beispielsweise mit den Anweisungen 406 bis 414.
  • Der Hardwareprozessor 402 kann den Befehl 406 ausführen, um mehrere schwere/vollständige Probleme des zweiten NP zu identifizieren, wobei jedes der schweren/vollständigen Probleme des zweiten NP dem ersten schweren/vollständigen NP-Problem ähnlich ist, für das eine Lösung gewünscht wird. Der Hardwareprozessor 402 kann den Befehl 408 ausführen, um Lösungen für die zweiten schweren/vollständigen NP-Probleme zu identifizieren. Der Hardwareprozessor 402 kann den Befehl 410 ausführen, um das tiefe neuronale Netzwerk 102 mit den zweiten schweren/vollständigen NP-Problemen und ihren Lösungen zu trainieren. Diese überwachte Lerntechnik kann verwendet werden, um das tiefe neuronale Netzwerk 102 zu trainieren, um Muster, Trends und Heuristiken zu finden, die sich auf diese Probleme und ihre Lösungen beziehen.
  • Der Hardwareprozessor 402 kann den Befehl 412 ausführen, um das erste NP-Schwere/Vollständige-Problem für das trainierte tiefe neuronale Netzwerk bereitzustellen, wobei das trainierte Deep-Neural-Netzwerk eine vorläufige Lösung für das erste NP-Schweren/Vollständige-Problem erzeugt. Die vorläufige Lösung sollte eine gute erste Vermutung für das erste NP-Problem sein. Die neuronale Netzwerkschnittstelle 106 kann die vorläufige Lösung anhand von Zielkriterien testen, um zu bestimmen, ob der Prozess mit dieser vorläufigen Lösung fortfahren soll. Wenn die vorläufige Lösung diese Zielkriterien nicht erfüllt, kann sie verworfen und eine neue vorläufige Lösung generiert werden. Wenn die vorläufige Lösung die Zielkriterien erfüllt, kann sie den rekursiven neuronalen Netzen 104 bereitgestellt werden.
  • 5 zeigt eine beispielhafte vorläufige Lösung, die von einem tiefen neuronalen Netzwerk für ein Problem des Handlungsreisenden gemäß einer Ausführungsform der offenbarten Technologie bereitgestellt wird. Bezugnehmend auf 5 ist ein 10-Städte-Problem mit reisenden Verkäufern dargestellt. Jede Stadt wird als Punkt dargestellt. Die gewünschte Lösung ist die kürzeste Hin- und Rückfahrt, die jede Stadt durchquert. Eine anfängliche Lösung ist bei 502 durch gestrichelte Linien dargestellt. Die anfängliche Lösung ist ein Kreis, der nur zwei der Städte verbindet. Dies ist keine sehr gute Lösung, bietet jedoch einen angemessenen Ausgangspunkt für ein tiefes neuronales Netzwerk. Eine vorläufige Lösung, die durch ein tiefes neuronales Netzwerk bereitgestellt wird, ist bei 504 dargestellt. Dies ist eine ziemlich gute Lösung, da nicht nur eine der 10 Städte durchquert werden kann.
  • Der Hardwareprozessor 402 kann den Befehl 414 ausführen, um die vorläufige Lösung für ein rekursives neuronales Netzwerk bereitzustellen, das konfiguriert ist, um eine Energieminimierungssuche auszuführen, wobei das rekursive neuronale Netzwerk eine endgültige Lösung für das Problem basierend auf der vorläufigen Lösung erzeugt. Die Energieminimierungssuche kann eine klassische Glühensuche umfassen. Die Energieminimierungssuche kann andere Techniken anstelle oder zusätzlich zu einer klassischen Glühensuche umfassen, wie beispielsweise simuliertes adiabatisches Tempern, Bit-Slicing, Auferlegen von Beschränkungen und dergleichen und Kombinationen davon.
  • 6 setzt das Beispiel von 5 fort. Die vorläufige Lösung für das 10-Städte-Problem des Handlungsreisenden ist bei 504 dargestellt. Wie oben erwähnt, ist dies eine ziemlich gute Lösung, kann jedoch eine der 10 Städte nicht durchqueren. Da diese vorläufige Lösung jedoch eine einigermaßen gute Lösung darstellt, bietet sie einen guten Ausgangspunkt für das rekursive neuronale Netzwerk 104. Eine endgültige Lösung, die durch das rekursive neuronale Netzwerk 104 bereitgestellt wird, ist bei 602 dargestellt. Wie zu sehen ist, war nur eine geringe Anpassung der vorläufigen Lösung erforderlich, um die endgültige Lösung zu erhalten.
  • Energieminimierungssuchen implementieren Techniken, um die Energie des rekursiven neuronalen Netzwerks auf ein globales Minimum zu reduzieren, wobei die Energie des Netzwerks die Zustände der Knoten im neuronalen Netzwerk darstellt. In vielen Fällen kann das rekursive neuronale Netzwerk jedoch eher bei einem lokalen Minimum als bei einem globalen Minimum konvergieren. Es stehen viele Techniken zur Verfügung, um eine Konvergenz auf einem lokalen Minimum zu verhindern. Eine solche Lösung ist das simulierte Tempern durch Chaos. Diese Lösungen verbrauchen jedoch zusätzliche Ressourcen. Die Verwendung eines trainierten tiefen neuronalen Netzwerks als erste Stufe mit dem rekursiven neuronalen Netzwerk als zweiter Stufe mildert diese Probleme, indem das rekursive neuronale Netzwerk näher am globalen Minimum gestartet wird. Die Verwendung eines tiefen neuronalen Netzwerks oder eines rekursiven neuronalen Netzwerks allein kann diese Ergebnisse nicht erzielen.
  • 7 zeigt ein Blockdiagramm eines beispielhaften Computersystems 700, in dem verschiedene der hier beschriebenen Ausführungsformen implementiert werden können. Das Computersystem 700 enthält einen Bus 702 oder eine anderen Kommunikationsmechanismus zum Kommunizieren von Informationen, ein oder mehr Hardware-Prozessoren 704 , gekoppelt mit dem Bus 702 zum Verarbeiten von Information. Hardwareprozessor(en) 704 können beispielsweise ein oder mehrere Allzweck-Mikroprozessoren sein.
  • Das Computersystem 700 enthält auch einen Hauptspeicher 706, wie einen Direktzugriffsspeicher (RAM), einen Cache und/oder andere dynamische Speichervorrichtungen, die mit dem Bus 702 gekoppelt sind, um Informationen und Anweisungen zu speichern, die vom Prozessor 704 ausgeführt werden sollen. Der Hauptspeicher 706 kann auch zum Speichern temporärer Variablen oder anderer Zwischeninformationen während der Ausführung von Anweisungen verwendet werden, die vom Prozessor 704 ausgeführt werden sollen. Wenn solche Anweisungen auf Speichermedien gespeichert sind, auf die der Prozessor 704 zugreifen kann, machen sie das Computersystem 700 zu einer Spezialmaschine, die angepasst ist, um die in den Anweisungen angegebenen Operationen auszuführen.
  • Das Computersystem 700 enthält ferner einen Nur-Lese-Speicher (ROM) 708 oder eine andere statische Speichervorrichtung, die mit dem Bus 702 gekoppelt ist, um statische Informationen und Anweisungen für den Prozessor 704 zu speichern. Eine Speichervorrichtung 710, wie eine Magnetplatte, eine optische Platte oder ein USB-Stick (Flash-Laufwerk) usw., ist vorgesehen und mit dem Bus 702 zum Speichern von Informationen und Anweisungen verbunden.
  • Das Computersystem 700 kann über den Bus 702 mit einerAnzeige 712 gekoppelt sein, beispielsweise einer Flüssigkristallanzeige (LCD) (oder einem Touchscreen), um einem Computerbenutzer Informationen anzuzeigen. Eine Eingabevorrichtung 714, die alphanumerische und andere Schlüssel enthält, ist mit dem Bus 702 verbunden, um Informationen und Befehlsauswahlen an den Prozessor 704 zu übermitteln. Ein anderer Typ einer Benutzereingabevorrichtung ist die Cursorsteuerung 716, wie beispielsweise eine Maus, ein Trackball oder Cursorrichtungs-Tasten zum Übermitteln von Richtungsinformationen und Befehlsauswahlen an den Prozessor 704 und zum Steuern der Cursorbewegung auf der Anzeige 712. In einigen Ausführungsformen können die gleichen Richtungsinformationen und Befehlsauswahlen wie bei der Cursorsteuerung durch Empfangen von Berührungen auf einem Touchscreen ohne Cursor implementiert werden.
  • Das Computersystem 700 kann ein Benutzerschnittstellenmodul zum Implementieren einer GUI enthalten, die in einer Massenspeichervorrichtung als ausführbare Softwarecodes gespeichert sein kann, die von den Computervorrichtungen ausgeführt werden. Dieses und andere Module können beispielsweise Komponenten wie Softwarekomponenten, objektorientierte Softwarekomponenten, Klassenkomponenten und Aufgabenkomponenten, Prozesse, Funktionen, Attribute, Prozeduren, Unterprogramme, Segmente des Programmcodes, Treiber, Firmware, umfassen. Mikrocode, Schaltkreise, Daten, Datenbanken, Datenstrukturen, Tabellen, Arrays und Variablen.
  • Im Allgemeinen kann sich das Wort „Komponente“, „Engine“, „System“, „Datenbank“, „Datenspeicher“ und dergleichen, wie hierin verwendet, auf Logik beziehen, die in Hardware oder Firmware enthalten ist, oder auf eine Sammlung von Softwareanweisungen Möglicherweise mit Ein- und Ausstiegspunkten, die in einer Programmiersprache wie z.B. Java, C oder C ++ geschrieben sind. Eine Softwarekomponente kann kompiliert und zu einem ausführbaren Programm verknüpft, in einer dynamischen Linkbibliothek installiert oder in einer interpretierten Programmiersprache wie beispielsweise BASIC, Perl oder Python geschrieben werden. Es versteht sich, dass Softwarekomponenten von anderen Komponenten oder von sich selbst aus aufgerufen werden können und/oder als Reaktion auf erkannte Ereignisse oder Interrupts aufgerufen werden können. Softwarekomponenten, die für die Ausführung auf Computergeräten konfiguriert sind, können auf einem computerlesbaren Medium wie einer CD, einer digitalen Videodisk, einem Flash-Laufwerk, einer Magnetplatte oder einem anderen materiellen Medium oder als digitaler Download bereitgestellt werden (und können ursprünglich gespeichert werden) in einem komprimierten oder installierbaren Format, das vor der Ausführung installiert, dekomprimiert oder entschlüsselt werden muss). Ein solcher Softwarecode kann teilweise oder vollständig auf einer Speichervorrichtung der ausführenden Rechenvorrichtung zur Ausführung durch die Rechenvorrichtung gespeichert werden. Softwareanweisungen können in Firmware wie ein EPROM eingebettet sein. Es versteht sich ferner, dass Hardwarekomponenten aus verbundenen Logikeinheiten wie Gates und Flip-Flops bestehen können und/oder aus programmierbaren Einheiten wie programmierbaren Gate-Arrays oder Prozessoren bestehen können.
  • Das Computersystem 700 kann die hier beschriebenen Techniken unter Verwendung einer kundenspezifischen fest verdrahteten Logik, eines oder mehrerer ASICs oder FPGAs, einer Firmware und/oder einer Programmlogik implementieren, die in Kombination mit dem Computersystem bewirkt oder programmiert, dass das Computersystem 700 eine Spezialmaschine ist. Gemäß einer Ausführungsform werden die hierin enthaltenen Techniken von dem Computersystem 700 als Reaktion auf den Prozessor 704 ausgeführt, der eine oder mehrere Sequenzen eines oder mehrerer im Hauptspeicher 706 enthaltener Befehle ausführt. Solche Anweisungen können von einem anderen Speichermedium, wie beispielsweise der Speichervorrichtung 710, in den Hauptspeicher 706 eingelesen werden. Die Ausführung der im Hauptspeicher 706 enthaltenen Befehlssequenzen bewirkt, dass die Prozessoren 704 die hier beschriebenen Prozessschritte ausführen. In alternativen Ausführungsformen können fest verdrahtete Schaltungen anstelle von oder in Kombination mit Softwareanweisungen verwendet werden.
  • Der Begriff „nicht vorübergehende Medien“ und ähnliche Begriffe, wie sie hier verwendet werden, beziehen sich auf alle Medien, die Daten und/oder Anweisungen speichern, die bewirken, dass eine Maschine auf eine bestimmte Weise arbeitet. Solche nichtflüchtigen Medien können nichtflüchtige Medien und/oder flüchtige Medien umfassen. Nichtflüchtige Medien umfassen beispielsweise optische oder magnetische Platten, wie beispielsweise die Speichervorrichtung 710. Flüchtige Medien umfassen einen dynamischen Speicher, wie beispielsweise den Hauptspeicher 706. Übliche Formen von nicht vorübergehenden Medien umfassen beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Solid-State-Laufwerk, ein Magnetband oder ein anderes magnetisches Datenspeichermedium, eine CD-ROM oder ein anderes optisches Datenspeichermedium. Jedes physische Medium mit Lochmustern, ein RAM, ein PROM und ein EPROM, ein FLASH-EPROM, ein NVRAM, ein beliebiger anderer Speicherchip oder eine andere Kassette sowie vernetzte Versionen derselben.
  • Nicht-vorübergehende Medien unterscheiden sich von Übertragungsmedien, können jedoch in Verbindung mit diesen verwendet werden. Übertragungsmedien sind an der Übertragung von Informationen zwischen nicht vorübergehenden Medien beteiligt. Zum Beispiel umfassen Übertragungsmedien Koaxialkabel, Kupferdraht und Glasfaser, einschließlich der Drähte, die den Bus 702 umfassen. Übertragungsmedien können auch die Form von akustischen oder Lichtwellen annehmen, wie sie beispielsweise während der Funkwellen- und Infrarot-Datenkommunikation erzeugt werden.
  • Das Computersystem 700 enthält auch eine Kommunikationsschnittstelle 718, die mit dem Bus 702 verbunden ist. Die Netzwerkschnittstelle 718 stellt eine bidirektionale Datenkommunikationskopplung mit einer oder mehreren Netzwerkverbindungen bereit, die mit einem oder mehreren lokalen Netzwerken verbunden sind. Beispielsweise kann die Kommunikationsschnittstelle 718 eine ISDN-Karte (Integrated Services Digital Network), ein Kabelmodem, ein Satellitenmodem oder ein Modem sein, um eine Datenkommunikationsverbindung zu einem entsprechenden Typ einer Telefonleitung bereitzustellen. Als ein anderes Beispiel kann die Netzwerkschnittstelle 718 eine LAN-Karte (Local Area Network) sein, um eine Datenkommunikationsverbindung zu einem kompatiblen LAN (oder eine WAN-Komponente zur Kommunikation mit einem WAN) bereitzustellen. Drahtlose Verbindungen können ebenfalls implementiert werden. In einer solchen Implementierung sendet und empfängt die Netzwerkschnittstelle 718 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen, die verschiedene Arten von Informationen darstellen.
  • Eine Netzwerkverbindung stellt normalerweise eine Datenkommunikation über ein oder mehrere Netzwerke zu anderen Datengeräten bereit. Beispielsweise kann eine Netzwerkverbindung eine Verbindung über ein lokales Netzwerk zu einem Host-Computer oder zu Datengeräten bereitstellen, die von einem Internetdienstanbieter (ISP) betrieben werden. Der ISP wiederum stellt Datenkommunikationsdienste über das weltweite Paketdatenkommunikationsnetz bereit, das heute allgemein als „Internet“ bezeichnet wird. Das lokale Netzwerk und das Internet verwenden beide elektrische, elektromagnetische oder optische Signale, die digitale Datenströme übertragen. Die Signale durch die verschiedenen Netzwerke und die Signale auf der Netzwerkverbindung und über die Kommunikationsschnittstelle 718, die die digitalen Daten zum und vom Computersystem 700 übertragen, sind beispielhafte Formen von Übertragungsmedien.
  • Das Computersystem 700 kann Nachrichten senden und Daten, einschließlich Programmcode, über das Netzwerk, die Netzwerkverbindung und die Kommunikationsschnittstelle 718 empfangen. In dem Internet-Beispiel könnte ein Server einen angeforderten Code für ein Anwendungsprogramm über das Internet, den ISP, das lokale Netzwerk und die Kommunikationsschnittstelle 718 übertragen.
  • Der empfangene Code kann vom Prozessor 704 ausgeführt werden, wenn er empfangen und/oder in der Speichervorrichtung 710 oder einem anderen nichtflüchtigen Speicher zur späteren Ausführung gespeichert wird.
  • Jeder der in den vorhergehenden Abschnitten beschriebenen Prozesse, Verfahren und Algorithmen kann in Codekomponenten enthalten sein, die von einem oder mehreren Computersystemen oder Computerprozessoren, die Computerhardware umfassen, ausgeführt werden, und diese vollständig oder teilweise automatisieren. Das eine oder die mehreren Computersysteme oder Computerprozessoren können auch arbeiten, um die Leistung der relevanten Vorgänge in einer „Cloud-Computing“ -Umgebung oder als „Software as a Service“ (SaaS) zu unterstützen. Die Prozesse und Algorithmen können teilweise oder vollständig in anwendungsspezifischen Schaltungen implementiert sein. Die verschiedenen oben beschriebenen Merkmale und Verfahren können unabhängig voneinander verwendet oder auf verschiedene Weise kombiniert werden. Verschiedene Kombinationen und Unterkombinationen sollen in den Geltungsbereich dieser Offenbarung fallen, und bestimmte Verfahren oder Prozessblöcke können in einigen Implementierungen weggelassen werden. Die hier beschriebenen Verfahren und Prozesse sind auch nicht auf eine bestimmte Sequenz beschränkt, und die dazugehörigen Blöcke oder Zustände können in anderen Sequenzen ausgeführt werden, die geeignet sind, oder können parallel oder auf eine andere Weise durchgeführt werden. Blöcke oder Zustände können zu den offenbarten beispielhaften Ausführungsformen hinzugefügt oder daraus entfernt werden. Die Leistung bestimmter Vorgänge oder Prozesse kann auf Computersysteme oder Computerprozessoren verteilt werden, die sich nicht nur auf einem einzelnen Computer befinden, sondern auf mehreren Computern bereitgestellt werden.
  • Wie hierin verwendet, kann eine Schaltung unter Verwendung irgendeiner Form von Hardware, Software oder einer Kombination davon implementiert werden. Beispielsweise können ein oder mehrere Prozessoren, Controller, ASICs, PLAs, PALs, CPLDs, FPGAs, logische Komponenten, Softwareroutinen oder andere Mechanismen implementiert werden, um eine Schaltung zu bilden. Bei der Implementierung können die verschiedenen hier beschriebenen Schaltungen als diskrete Schaltungen implementiert werden, oder die beschriebenen Funktionen und Merkmale können teilweise oder insgesamt auf eine oder mehrere Schaltungen aufgeteilt werden. Obwohl verschiedene Merkmale oder Elemente der Funktionalität einzeln als separate Schaltkreise beschrieben oder beansprucht werden können, können diese Merkmale und Funktionen von einem oder mehreren gemeinsamen Schaltkreisen gemeinsam genutzt werden, und eine solche Beschreibung erfordert oder impliziert nicht, dass separate Schaltkreise erforderlich sind, um solche Merkmale oder Funktionen zu implementieren Funktionalität. Wenn eine Schaltung ganz oder teilweise unter Verwendung von Software implementiert wird, kann eine solche Software implementiert werden, um mit einem Computer- oder Verarbeitungssystem zu arbeiten, das in der Lage ist, die diesbezüglich beschriebenen Funktionen auszuführen, wie beispielsweise dem Computersystem 700.
  • Wie hierin verwendet, kann der Begriff „oder“ entweder in einem inklusiven oder einem exklusiven Sinne ausgelegt werden. Darüber hinaus darf die Beschreibung von Ressourcen, Operationen oder Strukturen im Singular nicht gelesen werden, um den Plural auszuschließen. Bedingte Sprache wie unter anderem „kann“, „könnte“, „könnte“ oder „kann“, sofern nicht ausdrücklich anders angegeben oder im verwendeten Kontext anderweitig verstanden, soll im Allgemeinen vermitteln, dass bestimmte Ausführungsformen Folgendes umfassen: während andere Ausführungsformen bestimmte Merkmale, Elemente und/oder Schritte nicht enthalten.
  • In diesem Dokument verwendete Begriffe und Ausdrücke sowie Variationen davon sollten, sofern nicht ausdrücklich anders angegeben, als offen und nicht als einschränkend ausgelegt werden. Adjektive wie „konventionell“, „traditionell“, „normal“, „Standard“, „bekannt“ und Begriffe mit ähnlicher Bedeutung sollten nicht so ausgelegt werden, dass sie den beschriebenen Artikel auf einen bestimmten Zeitraum oder auf einen Artikel beschränken, der ab einem verfügbar ist gegebene Zeit, sondern sollte gelesen werden, um konventionelle, traditionelle, normale oder Standardtechnologien zu umfassen, die jetzt oder zu irgendeinem Zeitpunkt in der Zukunft verfügbar oder bekannt sein können. Das Vorhandensein von erweiterten Wörtern und Phrasen wie „einem oder mehreren“, „zumindest“, „aber nicht beschränkt auf“ oder ähnlichen Phrasen in einigen Fällen bedeutet nicht, dass der engere Fall in Fällen beabsichtigt oder erforderlich ist, in denen solche verbreiternden Sätze können fehlen.

Claims (20)

  1. Vorrichtung zum Lösen eines ersten NP-schweres/vollständiges Problem, wobei die Vorrichtung umfasst: ein tiefes neuronales Netzwerk; eine Eingangsschaltung konfiguriert zu: Trainieren des tiefen neuronalen Netzwerks mit einer Vielzahl von zweiten NPschweren/vollständigen Problemen und Lösungen für die zweiten NP -chweren/vollständigen Probleme, wobei jedes der zweiten NP-schweren/vollständigen Probleme dem ersten NP schweren/vollständigen-Problem ähnlich ist, und Bereitstellen des ersten NP-Schweren/Vollständige-Problems für das trainierte tiefe neuronale Netzwerk, wobei das trainierte tiefe neuronale Netzwerk eine vorläufige Lösung für das erste NP-Schwere/Vollständige-Problems generiert; und ein rekursives neuronales Netzwerk, das konfiguriert ist, um eine Energieminimierungssuche auszuführen, wobei das rekursive neuronale Netzwerk basierend auf der vorläufigen Lösung eine endgültige Lösung für das Problem erzeugt.
  2. Vorrichtung nach Anspruch 1, wobei die Energieminimierungssuche eine klassische Annealing-suche umfasst.
  3. Vorrichtung nach Anspruch 2, wobei das rekursive neuronale Netz ein Hopfield - Netzwerk umfasst.
  4. Vorrichtung nach Anspruch 3, wobei das Hopfield - Netzwerk als eine Crossbar - Array von Speicherelementen implementiert ist.
  5. Vorrichtung nach Anspruch 4, wobei die Speicherelemente als Memristoren implementiert sind.
  6. Vorrichtung nach Anspruch 1, wobei das rekursive neuronale Netzwerk einen autoassoziativen Speicher umfasst.
  7. Vorrichtung nach Anspruch 1, wobei die rekursive neuronale Netzwerk eine restriktive Boltzmann - Maschine umfasst.
  8. Ein System zur Lösung eines ersten NP-Schweren/Vollständigen-Problems, wobei das System Folgendes umfasst: einen Hardwareprozessor; und ein nicht transitorisches maschinenlesbares Speichermedium, das mit Anweisungen codiert ist, die vom Hardwareprozessor ausgeführt werden können, um ein Verfahren durchzuführen, das Folgendes umfasst: Identifizieren einer Vielzahl von zweiten NP-schweren/vollständigen Problemen, wobei jedes der zweiten NP-schweren/vollständigen Probleme dem ersten NPschweren/vollständigen Problem ähnlich ist; Ermittlung von Lösungen für die zweiten NP-schweren/vollständigen Probleme; Trainieren eines tiefen neuronalen Netzwerks mit den zweiten NPschweren/vollständigen -Problemen und den Lösungen; Bereitstellen des ersten NP-Schweren/Vollständigen-Problems für das trainierte tiefe neuronale Netzwerk, wobei das trainierte tiefe neuronale Netzwerk eine vorläufige Lösung für das erste NP-Schweren/Vollständige-Problem generiert; und Bereitstellung der vorläufigen Lösung für ein rekursives neuronales Netzwerk, das zum Ausführen einer Energieminimierungssuche konfiguriert ist, wobei das rekursive neuronale Netzwerk basierend auf der vorläufigen Lösung eine endgültige Lösung für das Problem generiert.
  9. System nach Anspruch 8, wobei die Energieminimierungssuche eine klassische Annealing-suche umfasst.
  10. System nach Anspruch 9, wobei das rekursive neuronale Netz ein Hopfield - Netzwerk umfasst.
  11. System nach Anspruch 10, wobei das Hopfield - Netzwerk als eine Crossbar - Array von Speicherelementen implementiert ist.
  12. System nach Anspruch 11, wobei die Speicherelemente als Memristoren implementiert sind.
  13. System nach Anspruch 8, wobei das rekursive neuronale Netz einen autoassoziativen Speicher umfasst.
  14. System nach Anspruch 8, wobei das rekursive neuronale Netzwerk eine restriktive Boltzmann - Maschine umfasst.
  15. Eine Methode zur Lösung eines ersten NP-Schweren/Vollständige- Problems, wobei die Methode umfasst: Identifizieren einer Vielzahl von zweiten NP-schweren/vollständigen Problemen, wobei jedes der zweiten NP-schweren/vollständigen Probleme dem ersten NPschweren/vollständigen Problem ähnlich ist; Identifizieren von Lösungen für die zweiten NP- schweren/vollständigen; Trainieren eines tiefen neuronalen Netzwerks mit den zweiten NPschweren/vollständigen Problemen und den Lösungen; Bereitstellen des ersten NP-Schweren/Vollständige-Problems für das trainierte tiefe neuronale Netzwerk, wobei das trainierte tiefe neuronale Netzwerk eine vorläufige Lösung für das erste NP-Schwere/Vollständige-Problem erzeugt; und Bereitstellen der vorläufigen Lösung für ein rekursives neuronales Netzwerk, das konfiguriert ist, um eine Energieminimierungssuche auszuführen, wobei das rekursive neuronale Netzwerk eine endgültige Lösung für das Problem basierend auf der vorläufigen Lösung erzeugt.
  16. Verfahren nach Anspruch 15, wobei die Energieminimierungssuche eine klassische Annealing-Suche umfasst.
  17. Verfahren nach Anspruch 16, wobei das rekursiven neuronalen Netz ein Hopfield - Netzwerk umfasst.
  18. Verfahren nach Anspruch 17, wobei das Hopfield - Netzwerk als ein Crossbar - array von Speicherelementen implementiert ist.
  19. Verfahren nach Anspruch 18, wobei die Speicherelemente als Memristoren implementiert sind.
  20. Verfahren nach Anspruch 15, wobei das rekursive neuronale Netzwerk eine autoassoziativen Speicher umfasst.
DE102020101244.6A 2019-01-29 2020-01-20 Gestufte neuronale netzwerke zur lösung von np-schweren/vollständigen problemen Pending DE102020101244A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/261,398 US11551056B2 (en) 2019-01-29 2019-01-29 Staged neural networks for solving NP hard/complete problems
US16/261,398 2019-01-29

Publications (1)

Publication Number Publication Date
DE102020101244A1 true DE102020101244A1 (de) 2020-07-30

Family

ID=71524307

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020101244.6A Pending DE102020101244A1 (de) 2019-01-29 2020-01-20 Gestufte neuronale netzwerke zur lösung von np-schweren/vollständigen problemen

Country Status (3)

Country Link
US (1) US11551056B2 (de)
CN (1) CN111488966A (de)
DE (1) DE102020101244A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3803265A4 (de) * 2018-05-15 2022-01-26 Lightmatter, Inc. Systeme und verfahren zur photonischen verarbeitung
CN110842915B (zh) * 2019-10-18 2021-11-23 南京大学 一种基于忆阻交叉阵列的机器人控制系统及方法
CN113591906B (zh) * 2021-06-21 2024-06-04 北京百度网讯科技有限公司 图的分割方法、装置及电子设备
US11983604B2 (en) * 2021-07-16 2024-05-14 Hewlett Packard Enterprise Development Lp Quantum-inspired algorithms to solve intractable problems using classical computers

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9015093B1 (en) 2010-10-26 2015-04-21 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US10957083B2 (en) * 2016-08-11 2021-03-23 Integem Inc. Intelligent interactive and augmented reality based user interface platform
US11042811B2 (en) * 2016-10-05 2021-06-22 D-Wave Systems Inc. Discrete variational auto-encoder systems and methods for machine learning using adiabatic quantum computers
US10109275B2 (en) * 2016-12-19 2018-10-23 Asapp, Inc. Word hash language model
US10911266B2 (en) * 2018-05-18 2021-02-02 Parallel Wireless, Inc. Machine learning for channel estimation
US20200218967A1 (en) * 2019-01-03 2020-07-09 Hewlett Packard Enterprise Development Lp Complex-Valued Neural Networks
US11610105B2 (en) * 2019-04-17 2023-03-21 Hewlett Packard Enterprise Development Lp Systems and methods for harnessing analog noise in efficient optimization problem accelerators

Also Published As

Publication number Publication date
US11551056B2 (en) 2023-01-10
CN111488966A (zh) 2020-08-04
US20200242448A1 (en) 2020-07-30

Similar Documents

Publication Publication Date Title
DE102020101244A1 (de) Gestufte neuronale netzwerke zur lösung von np-schweren/vollständigen problemen
DE112019000226T5 (de) Neuromorpher chip zum aktualisieren präziser synaptischer gewichtswerte
DE202017007641U1 (de) Training von maschinellen Lernmodellen auf mehrere maschinelle Lernaufgaben
DE112020000281T5 (de) Vereinigen von modellen, die jeweilige zielklassen aufweisen, mit destillation
DE112018005227T5 (de) Merkmalsextraktion mithilfe von multi-task-lernen
DE112018000272T5 (de) Resistive Verarbeitungseinheit mit hysteretischen Aktualisierungen zum Trainieren neuronaler Netze
DE112018002822T5 (de) Klassifizieren neuronaler netze
DE112016003245T5 (de) Resistive Verarbeitungseinheit
DE112020000584T5 (de) Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen
DE112016001796T5 (de) Feinkörnige bildklassifizierung durch erforschen von etiketten von einem bipartiten graphen
DE112018005244T5 (de) Strukturieren von inkohärenten knoten durch überlagern eines basis-wissensgraphen
DE112020003365T5 (de) Überwachte kreuzmodale wiedergewinnung für zeitreihen und text unter verwendung von multimodalen triplettverlusten
DE112011101370T5 (de) Neuronales Netz mit kanonischen gepulsten Neuronen für einen raumzeitlichen Assoziativspeicher
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE112020002186T5 (de) Dnn-training mit asymmetrischen rpu-einheiten
DE112020000545T5 (de) Deep-forest-modell-entwicklung und -training
DE112019005048T5 (de) Hyperparameteroptimierungsverfahren, -vorrichtung und -programm
DE112021006215T5 (de) Automatisierte Deep-Learning-Architekturauswahl für Zeitreihenvorhersage mit Benutzerinteraktion
DE112018006377T5 (de) Verschmelzen spärlich besetzter kernels zur approximation eines vollen kernels eines neuronalen faltungsnetzes
DE112020002344T5 (de) Feature engineering zur optimierung von neuronalen netzwerken
DE102018204514A1 (de) Handhaben einer signalsättigung in gepulsten neuronalen netzen
DE112021003761T5 (de) Prädiktive modelle mit zerlegbaren hierarchischen ebenen, die konfiguriert werden, um interpretierbare resultate zu erzeugen
DE102019126788A1 (de) Beschleunigter zugriff auf aus in speichervorrichtungen gespeicherten daten erzeugte rechenergebnisse
DE112021003881T5 (de) Online-training von neuronalen netzen
DE102021108823A1 (de) System für eine flexible leitwerttraverse

Legal Events

Date Code Title Description
R012 Request for examination validly filed