-
Technisches Gebiet
-
Die vorliegende Offenbarung betrifft Techniken zum Erzeugen eines vereinfachten Computer-implementierten neuronalen Netzwerkes aus einem vorgegebenen neuronalen Netzwerk und Techniken zum Anwenden eines vereinfachten Computerimplementierten neuronalen Netzwerkes.
-
Hintergrund
-
Computer-implementierte neuronale Netzwerke werden vermehrt in verschiedenen technischen Vorrichtungen eingesetzt. Hierbei können die neuronalen Netzwerke für viele technische Vorrichtungen komplexe Strukturen (z.B., mit einer großen Anzahl von Neuronen, Schichten und entsprechenden Verbindungen) aufweisen. Das kann (zu) hohe Anforderungen an die für das Anwenden der neuronalen Netzwerke erforderliche Hardware stellen. Deshalb kann es nötig sein, einen Kompromiss zwischen der Leistungsfähigkeit des Computer-implementierten neuronalen Netzwerkes und seiner Komplexität zu finden.
-
Um das oben erwähnte Problem zu adressieren, wurden so genannte Beschneidungsverfahren („pruning methods“) entwickelt. Diese zielen einerseits darauf ab, die Größe der neuronalen Netzwerke zu reduzieren und ihrer Gesamtstruktur zu vereinfachen, aber andererseits eine gute Gesamtleistung der vereinfachten neuronalen Netzwerke beizubehalten (oder möglichst wenig zu beinträchtigen). Die anhand dieser Verfahren vereinfachten neuronalen Netzwerke können somit z.B. für kleinere technische Geräte mit limitierten Hardware-Ressourcen (wie beispielsweise elektrische Werkzeuge, Garten- oder Hausgeräte usw.) eingesetzt werden. In anderen Beispielen kann es nötig sein, die Bewertungszeit eines Computer-implementierten neuronalen Netzwerkes zu reduzieren, um eine ausreichende schnelle Reaktion einer technischen Vorrichtung zu gewährleisten (z.B. eines autonomen Roboters). Auch dafür kann es vorteilhaft sein, ein Computer-implementiertes neuronales Netzwerk zu vereinfachen.
-
Zusammenfassung der Erfindung
-
Die vorliegende Erfindung betrifft ein Verfahren zum Erzeugen eines vereinfachten Computer-implementierten neuronalen Netzwerkes für eine Vorrichtung. Das Verfahren umfasst das Empfangen eines vorgegebenen neuronalen Netzwerkes, das eine Mehrzahl von neuronalen Netzwerkunterstrukturen in zwei oder mehr Schichten enthält. Das Verfahren umfasst weiterhin das Berechnen eines approximativen neuronalen Netzwerkes für das vorgegebene neuronale Netzwerk und das Berechnen einer Matrix in Bezug auf das approximative neuronale Netzwerk, die Änderungen in einer Verlustfunktion durch das Beschneiden einer oder mehrerer neuronalen Netzwerkunterstrukturen aus der Mehrzahl von neuronalen Netzwerkunterstrukturen beschreibt. Die Matrix berücksichtigt die Änderungen in der Verlustfunktion durch gleichzeitiges Beschneiden von mindestens zwei Netzwerkunterstrukturen aus der Mehrzahl von neuronalen Netzwerkunterstrukturen, die sich innerhalb verschiedener Schichten der zwei oder mehr Schichten des vorgegebenen neuronalen Netzwerkes befinden. Das Verfahren umfasst schließlich das Beschneiden, basierend auf den in der Matrix beschriebenen Änderungen der Verlustfunktion, mindestens einer neuronalen Netzwerkunterstruktur aus der Mehrzahl von neuronalen Netzwerkunterstrukturen, um das vereinfachte neuronale Netzwerk zu erzeugen.
-
Die vorliegende Erfindung umfasst weiterhin die Verwendung des vereinfachten Computer-implementierten neuronalen Netzwerkes in der technischen Vorrichtung sowie Computer-implementierte neuronalen Netzwerke, die mit entsprechenden Verfahren erzeugt werden.
-
Die Techniken der vorliegenden Erfindung zielen darauf ab, ein vereinfachtes neuronales Netzwerk von geringerer Größe (z.B. mit einer geringeren Anzahl von Neuronen, und/oder Verbindungen und/oder Schichten) im Vergleich zum ursprünglichen vorgegebenen neuronalen Netzwerk zu erzeugen. Dabei soll ein Verlust an Gesamtleistung oder Genauigkeit des erzeugten vereinfachten neuronalen Netzwerkes nicht zu groß sein (und im Idealfall kein Verlust an Gesamtleistung oder Genauigkeit eintreten). Solche vereinfachten (beschnittenen) Computerimplementierten neuronalen Netzwerke können geeignet sein für technische Vorrichtungen mit relativ überschaubaren Hardware-Ressourcen (z.B. tragbare Elektro-Geräte oder Geräte ohne ständige Netzwerkverbindung) oder in technischen Umgebungen, in denen eine höhere Berechnungs- und Bewertungsgeschwindigkeit von Nutzen ist (z.B. bei zumindest teilautonomen Fahrzeugen). Allerdings kann die reduzierte Komplexität und/oder erhöhte Berechnungs- und Bewertungsgeschwindigkeit auch für andere technische Umgebungen nützlich sein (z.B. zum Reduzieren eines Stromverbrauchs).
-
Figurenliste
-
- 1a zeigt schematisch ein ursprüngliches trainiertes neuronales Netzwerk vor und nach dem Beschneiden (Vereinfachen). Die Neuronen und ihre Verbindungen sind als Knoten (Kreise) bzw. Kanten (Pfeile) dargestellt.
- 1b zeigt schematisch einen Beschneidungs-Vektor δp, mit dessen Hilfe die Hesse-Matrix H in die Q-Matrix (Matrix, die Änderungen in einer Verlustfunktion durch das Beschneiden einer oder mehrerer neuronaler Netzwerkunterstrukturen aus der Mehrzahl von neuronalen Netzwerkunterstrukturen beschreibt) überführt werden kann. Der Beschneidungs-Vektor δp bezieht sich hier auf den Knoten p des neuronalen Netzwerks und beschreibt eine Änderung der aktuellen Gewichte durch das Beschneiden einer oder mehreren Verbindungen des Knotens p.
- 2a zeigt schematisch alle berechneten Komponenten der Q-Matrix (schwarze Elemente entsprechen größeren Werten) und das Beschneiden unter Verwendung des „Lin Sum OBD“ Beschneidungsverfahrens für ein neuronales Netzwerk, das für den Boston Housing-Datensatz (d.h. einen Standard-Datensatz) erstellt wurde. Die neuronalen Strukturen, die den mit den Linien markierten Komponenten der Q-Matrix entsprechen, werden iterativ entfernt.
- 2b zeigt, wie 2a, schematisch die gleichen Komponenten der Q-Matrix und das Beschneiden unter Verwendung des „Iterative Full OBD“ Beschneidungsverfahrens. Die neuronalen Strukturen, die den mit den weißen Kreisen markierten Komponenten der Q-Matrix entsprechen, werden iterativ entfernt.
- 2c zeigt, wie 2a und 2b, schematisch die gleichen Komponenten der Q-Matrix und das Beschneiden unter Verwendung des „strukturierten OBD“ („structured optimal brain damage“) Beschneidungsverfahrens. Die neuronalen Strukturen, die den mit den weißen Kreisen markierten Komponenten der Q-Matrix entsprechen, werden iterativ entfernt.
- 3 vergleicht die Testverluste für die in den 2a-2c verwendeten Beschneidungsverfahren in Abhängigkeit von unterschiedlichen Werten des Beschneidungsverhältnisses. Das Beschneidungsverhältnis von Null entspricht dem Fall, wenn das vorgegebene neuronale Netzwerk nicht beschnitten wird. In diesem Beispiel ist ein trainiertes neuronales Netzwerk als das vorgegebene neuronale Netzwerk ausgewählt.
-
Ausführliche Beschreibung
-
Die vorliegende Offenbarung betrifft Verfahren zum Erzeugen eines vereinfachten Computer-implementierten neuronalen Netzwerkes aus einem vorgegebenen neuronalen Netzwerk durch Beschneiden seiner Struktur.
-
Ein beispielhaftes neuronales Netzwerk 1 ist in 1a (schematisch) skizziert. Das neuronale Netzwerk kann aus einer Mehrzahl von Neuronen bestehen (ein beispielhaftes Neuron 2 ist in 1a hervorgehoben), die Knoten des neuronalen Netzwerks 1 bilden und miteinander über Kanten 3 verbunden sind. Die Neuronen der Computer-implementierten neuronalen Netzwerke der vorliegenden Offenbarung sind in mehreren Schichten angeordnet (z.B. enthält die dritte Schicht 4 der 1a drei Neuronen). In der vorliegenden Offenbarung werden die Kanten oder Verbindungen, die zu den Neuronen (oder Knoten) hinführen, als Teil der jeweiligen Schicht angesehen (d.h. die Eingangsverbindungen und die Knoten liegen in derselben Schicht). Ein Computer-implementiertes neuronales Netzwerk kann zwei oder mehr, drei oder mehr oder fünf oder mehr Schichten enthalten. Die Neuronen und ihre Verbindungen können unterschiedliche Strukturen aufweisen und mit Hilfe eines Graphen als Knoten bzw. Kanten dargestellt werden. In der vorliegenden Offenbarung wird eine beliebige Untermenge aus Elementen des neuronalen Netzwerks als „neuronale Netzwerkunterstruktur“ bezeichnet. In manchen Beispielen kann eine neuronale Netzwerkunterstruktur ein oder mehrere Kanten, ein oder mehrere Knoten oder eine Kombination aus ein oder mehreren Knoten und Kanten (bspw. ein Knoten und die zum Knoten hin- und vom Knoten wegführenden Kanten) enthalten. Andere als die in 1a gezeigten Netzwerke können zusätzliche Elemente enthalten (z.B. Rückkopplungen oder Speicher). Auch diese Elemente können eine neuronale Netzwerkunterstruktur oder Teil einer solchen sein. In anderen Beispielen kann ein Element des neuronalen Netzwerkes ein Parameter zur Beschreibung des neuronalen Netzwerks sein (dieser Aspekt wird weiter unten genauer erläutert).
-
Die Ausgabe eines bestimmten Neurons j kann von angelegten Eingaben eines oder mehrerer Neuronen i abhängen. Insbesondere kann zuerst eine Summe der gewichteten angelegten Eingaben für Neuron j gebildet werden, wobei ein Gewicht der Form θij von Neuron j zu Neuron i für alle Neuronen definiert werden kann. (θij = 0 kann bedeuteten, dass das Neuron j keine Verbindung mit dem Neuron i aufweist.) Schließlich kann die Ausgabe des Neurons j nach Anwendung einer für das jeweilige Neuron definierten Aktivierungsfunktion auf die zuvor berechnete Summe ermittelt werden. Daher kann ein neuronales Netzwerk in manchen Beispielen durch Angabe seiner Topologie und/oder der Gewichte θij für alle Neuronen definiert werden. Die Gewichte können damit auch Elemente einer neuronalen Netzwerkunterstruktur im Sinne der vorliegenden Offenbarung sein. D.h. eine neuronale Netzwerkstruktur kann ein oder mehrere Gewichte des neuronalen Netzwerks enthalten (die ein oder mehreren Kanten der graphischen Beschreibung des neuronalen Netzwerks entsprechen können). Gemäß der oben eingeführten Sprachreglung gehören alle Gewichte von Verbindungen oder Kanten, die zu Knoten oder Neuronen einer bestimmten Schicht führen, zu dieser einen Schicht. Die Gewichte der Ausgangskanten oder -verbindungen dieser bestimmten Schicht gehören zu einer anderen Schicht.
-
Das Computer-implementierte neuronale Netzwerk kann zum Einsatz in einer gewissen Vorrichtung erstellt und trainiert werden (z.B. vollständig oder unvollständig trainiert sein), um in dieser Vorrichtung anfallende Daten (z.B. Sensordaten) zu verarbeiten und beispielsweise eine für die Überwachung- und/oder Steuerung der Vorrichtung relevante Ausgangsdaten zu berechnen. Somit können die Eigenschaften dieser Vorrichtung oder ihre Reaktion auf bestimmte Ereignisse letztendlich in der Topologie und Gewichten θij des neuronalen Netzwerkes „verborgen“ sein. In anderen Beispielen kann ein neuronales Netzwerk auch durch andere und/oder zusätzliche Parameter als die Gewichte θij beschrieben werden. In der vorliegenden Offenbarung werden die Gewichte θij als beispielhafte Parameter diskutiert. Die hierin beschriebenen Techniken können aber gleichsam für andere Parameter eingesetzt werden.
-
Einige im Stand der Technik verwendeten Verfahren zum Beschneiden von Netzwerkstrukturen aus trainierten neuronalen Netzwerken laufen folgendermaßen ab: Nach Erzeugung eines neuronalen Netzwerkes, dessen Topologie von seiner Aufgabe abhängt, können die Gewichte θ
ij entsprechend gewählt werden. Die Auswahl dieser Gewichte wird als Trainieren oder Lernen des neuronalen Netzwerkes bezeichnet. Dieser Schritt wird auf einem Computer-System ausgeführt. Während eines „überwachten Lernens“ steht eine Mehrzahl von Eingabedatensätzen x
k (z.B. Sensordaten) und eine entsprechende Mehrzahl von gewünschten Ausgabedatensätzen y
k (z.B. ein Zustand einer technischen Vorrichtung oder ihrer Umgebung oder eine Steuergröße) zur Verfügung (d.h. die Eingabe- und Ausgabedatensätze bilden jeweils ein Paar). Der Datensatz, der jeweils aus N Paaren (x
k, y
k), k = 1, ...,N, wird als Trainingsdatensatz bezeichnet. Das Trainieren des neuronalen Netzwerkes kann als Optimierungsproblem formuliert werden, bei dem die Gewichte θ
ij des neuronalen Netzwerkes so angepasst werden müssen, dass die vom neuronalen Netzwerk für die gegebene Eingabe x
k erzeugte Ausgabe
(wobei
eine Übertragungsfunktion des neuronalen Netzwerks für einen Parametersatz θ, z.B. einen Satz von Gewichten, ist) möglichst nahe an der gewünschten Ausgabe y
k liegt. Dieses Optimierungsproblem lässt sich als Minimierung einer Verlustfunktion L
D darstellen (in dieser Offenbarung wird von einer Minimierung der Verlustfunktion gesprochen, auch wenn dieses in manchen Fällen einer Maximierung eines Ausdrucks entspricht). Die Verlustfunktion kann verschiedene Formen annehmen. In einem Beispiel ist die Verlustfunktion eine Funktion der gemittelten Fehlerquadrate („MSE“), bspw.:
-
Die Minimierung kann in Bezug auf alle Gewichte θ
ij durchgeführt werden. Als Ergebnis dieser Minimierung werden trainierte Gewichte
bestimmt, die zu einem lokalen (oder globalen) Minimum der Verlustfunktion L
D führen. Somit wird ein trainiertes neuronales Netzwerk aufgebaut. Das Ziel dieses Trainings besteht nicht nur darin, die gewünschten Ausgaben
in Trainingsphase zu reproduzieren, sondern auch plausible Ausgaben (also unbekannte Ausgaben) für weitere Eingaben x
k liefern zu können.
-
Das trainierte neuronale Netzwerk kann eine komplexe Topologie und eine große Anzahl von Neuronen und Verbindungen aufweisen und daher hohe und unerwünschte Hardwareanforderungen bei der Berechnung verursachen. Wie weiter oben bereits erwähnt, wird dieses komplexe neuronale Netzwerk zunächst mittels der Beschneidungsverfahren vereinfacht, damit es auf der entsprechenden Vorrichtung verwendet werden kann. Auf der rechten Seite von 1a ist ein vereinfachtes (beschnittenes) neuronales Netzwerk 1a gezeigt. Zum Beispiel sind zwischen der obersten und der darunter liegenden Schicht 5 mehrere Kanten (Verbindungen) beschnitten worden. Zusätzlich ist in der vorletzten Schicht 6 ein Knoten samt zugehöriger Kanten beschnitten worden.
-
Diese Vereinfachung kann eine Analyse der jeweiligen Änderungen in der Verlustfunktion LD durch das Beschneiden einer oder mehrerer neuronaler Netzwerkunterstrukturen umfassen. Das Beschneiden einer Struktur kann die Entfernung einer oder mehrerer Verbindungen (d.h. Kanten) zwischen Neuronen und/oder die vollständige Entfernung eines oder mehrerer Neuronen zusammen mit ihren ein- und ausgehenden Verbindungen umfassen. In anderen Fällen (oder in einem anderen Bild) kann das Beschneiden das Entfernen oder auf null setzen ein oder mehrerer Gewichte umfassen (was eine alternative Beschreibung für das Entfernen von ein oder mehreren Verbindungen oder Kanten sein kann). In anderen Fällen können neuronale Netzwerke über die in 1a gezeigten Strukturen hinausgehende Elemente umfassen (z.B. Rückkopplungen oder Speicher). Auch diese Netzwerkunterstrukturen können mit den Verfahren der vorliegenden Offenbarung beschnitten werden.
-
Dabei können in manchen Beispielen Änderungen in der Verlustfunktion aufgrund des Beschneidens von Strukturen durch eine Taylor-Entwicklung der Verlustfunktion L
D in Bezug auf Gewichte θ
ij bis zu einer bestimmten Ordnung approximiert werden. Zum Beispiel kann eine Entwicklung der folgenden Form gegeben sein:
-
Hier ist δθ ein Störungsvektor um einen gegebenen Gewichten-Vektor θ eines vorgegebenen neuronalen Netzwerkes (z.B. eines trainierten neuronalen Netzwerkes mit den Gewichten
), der entsprechende Änderungen in den Gewichten,
nach dem Beschneiden widerspiegelt. δθ
T entsteht durch die Transponierung von δθ. H(θ)=∂
2L
D/∂
2θ ist die Hesse-Matrix, die aus partiellen Ableitungen der zweiten Ordnung der Verlustfunktion L
D(θ) bezüglich der Gewichte θ
ij besteht, die in diesem Beispiel für die trainierten Gewichte
berechnet werden. Dabei gilt (zumindest annähernd) für das trainierte Netzwerk dL
D(θ)/∂θ = 0, weil δL
D(θ) ein Minimum für die trainierten Gewichte
aufweist (zumindest näherungsweise im Rahmen einer vorbestimmten numerischen Genauigkeit). Die Terme höherer Ordnung als die zweite Ordnung in der Taylor-Entwicklung können vernachlässigt werden. Die Änderungen in der Verlustfunktion sind dann durch
gegeben. Wie in
1b veranschaulicht, entspricht
einem Beschneidungs-Vektor der Gewichte
für die entsprechende Unterstruktur (z.B. für den Knoten p). In diesem Fall beschreibt der Beschneidungs-Vektor eine Änderung aktuellen Gewichte durch das Beschneiden einer oder mehreren Verbindungen des Knoten p. Beschneidungs-Vektoren können ebenfalls für andere Netzwerkunterstrukturen definiert werden (z.B. für eine Kombination von zwei oder mehreren Knoten mit entsprechenden eingehenden Kanten, wobei die Knoten innerhalb verschiedener Schichten oder innerhalb einer Schicht liegen oder die Knoten benachbarten Knoten sind).
-
Die Formel für die Taylor-Entwicklung der Verlustfunktion LD ist nur als Beispiel dargestellt und kann je nach den gewählten Normierungen für die jeweiligen Vektoren auch einen anderen Ausdruck annehmen (z.B., kann der Faktor ½ im zweiten Term der oben gezeigten Taylor-Entwicklung in δθ und δθT aufgenommen werden).
-
Die Änderungen in der Verlustfunktion lassen sich für den Fall, wenn mehrere neuronale Netzwerkunterstrukturen beschnitten werden, als Summe über eine Mehrzahl von Komponenten der Matrix, die Änderungen in einer Verlustfunktion durch das Beschneiden einer oder mehrerer von neuronalen Netzwerkunterstrukturen aus der Mehrzahl von neuronalen Netzwerkunterstrukturen beschreibt, darstellen. Beispielsweise kann die Änderungen in der Verlustfunktion in folgender Form bestimmt werden:
wobei die Matrix Q
pq als
definiert ist. Die Laufindizes p und q in der Summe laufen von 1 bis S, wobei S die Gesamtzahl der Netzwerkunterstrukturen bezeichnet. Die Hesse-Matrix H(θ) besteht aus partiellen Ableitungen der zweiten Ordnung ∂
2L
D/∂
2(δθ
ij), und daher hat diese Matrix in der Regel die Nichtdiagonalkomponenten (d.h. die Kreuzterme), die nicht vernachlässigbar klein sein können. Dies lässt sich durch die Tatsache erklären, dass die Verlustfunktion L
D eine nichtlineare Funktion bezüglich der Gewichte θ
ij sein kann. Folglich kann die Matrix Q
pq, die durch die Hesse-Matrix H(θ) definiert ist, auch eine nichtdiagonale Form aufweisen. Zusammenfassend lassen sich die Änderungen der Verlustfunktion in manchen Beispielen als Summe von zwei Termen darstellen:
Der erste Term ist die Summe der Diagonalkomponenten der Matrix Q
pq mit p=q, die die Änderungen der Verlustfunktion durch das Beschneiden jeder Unterstruktur p individuell berücksichtigt. Jede Diagonalkomponente Qpp ist nur durch die entsprechende beschnittene Unterstruktur p gegeben. Der zweite Term stellt nun die Summe aller Nichtdiagonalkomponenten der Matrix Q
pq mit p ≠ q dar. Somit kann jede Nichtdiagonalkomponente Q
pq eine Änderung der Verlustfunktion durch gleichzeitiges Beschneiden sowohl der Unterstruktur p als auch der Unterstruktur q beschreiben. In diesem Sinne kann man von einer Korrelation zwischen den beiden Unterstrukturen p und q sprechen, denn eine solche Änderung der Verlustfunktion tritt nur dann auf, wenn die beiden Unterstrukturen gleichzeitig beschnitten werden.
-
Trotz des scheinbar einfachen Ausdrucks für die Änderungen in der Verlustfunktion kann es einige Schwierigkeiten bei der Berechnung von δLD(θ) geben. Erstens ist normalerweise die Dimension P x P der Hesse-Matrix H(θ) (und folglich der Matrix Qvq) sehr groß, wobei P die Gesamtzahl der Verbindungen in einem neuronalen Netzwerk bezeichnet. Aus diesem Grund wird die Hesse-Matrix in einigen bisher bekannten Verfahren des Standes der Technik durch eine Diagonalmatrix (oder nahezu eine Diagonalmatrix) approximiert. Diese Approximation vernachlässigt jedoch mögliche Korrelationen zwischen den Netzwerkstrukturen im oben definierten Sinne. Dies kann aber zu (teilweise erheblichen) Ungenauigkeiten bei der Einschätzung führen, welche der Netzwerkunterstrukturen Einfluss auf die Leistungsfähigkeit des neuronalen Netzwerkes haben. Zweitens beinhaltet das Berechnen von δLD(θ) eine große Anzahl von Rechenschritten auf einem computerimplementierten System, die mit der Anzahl der Trainingsdatensätze N und die Dimension P des Beschneidungs-Vektors δp gemäß O(N · P2) skaliert. Zudem wird die Anzahl von Rechenschritten völlig unabhängig von der Tatsache, dass die jeweilige Dimension S für eine Netzwerkunterstruktur, deren Beschneiden in Erwägung gezogen wird, wesentlich kleiner als die Gesamtzahl der Verbindungen in einem neuronalen Netzwerk P sein kann. Infolgedessen kann die oben genannte Einschätzung für komplexe Strukturen mit großem P rechnerisch schwer durchführbar werden. Drittens kann sich zusätzlich das Problem ergeben, dass das Trainieren neuronaler Netzwerke (insbesondere solcher, die relativ groß und komplex sind) rechnerisch sehr aufwendige und daher langwierige Aufgabe sein kann. Diese Probleme können die Techniken der vorliegenden Offenbarung in manchen Implementierungen adressieren.
-
Der erste Schritt des Verfahrens zum Erzeugen eines vereinfachten Computerimplementierten neuronalen Netzwerkes der vorliegenden Offenbarung kann beispielweise das Empfangen eines vorgegebenen neuronalen Netzwerkes umfassen, dass eine Mehrzahl von neuronalen Netzwerkunterstrukturen in zwei oder mehr Schichten enthält. Jede Schicht kann beispielweise durch eine Mehrzahl von Neuronen und entsprechende eingehende Verbindungen gegeben sein. Dabei kann eine gewichtete Ausgabe eines Neurons, das in einer Schicht angeordnet ist, eine Eingabe eines anderen Neurons sein, das in einer anderen Schicht angeordnet sein kann. Zum Beispiel enthält das neuronale Netzwerk 1 nach
1a vier Schichten. Für das vorgegebene neuronale Netzwerk können aktuelle Gewichte
gegeben sein. In manchen Fällen kann auch ein für das Training des neuronalen Netzwerkes verwendeter oder ein für ein Training zu verwendender Trainingsdatensatz (x
k, y
k) empfangen werden. In manchen Fällen kann das vorgegebene neuronalen Netzwerk ein trainiertes neuronales Netzwerk sein (z.B. eine Verslustfunktion wurde durch Training minimiert).
-
In anderen Beispielen kann das vorgegebene neuronalen Netzwerk ein unvollständig trainiertes neuronales Netzwerk sein (z.B. eine Verslustfunktion wurde durch Training noch nicht minimiert). In manchen Fällen kann ein unvollständig trainiertes neuronales Netzwerk nur einen Bruchteil der zum vollständigen Training nötigen Trainingsdurchgänge (sogenannte Epochen, die eine vollständige Trainingsiteration über den Trainingsdatensatz, z.B. mit Durchführung eines „Stochastic Gradient Descent“ oder anderen Verfahrens darstellen können) durchlaufen haben (z.B. weniger als 100 Trainingsdurchgänge oder weniger als 20 Trainingsdurchgänge). Die Beschneidungsverfahren der vorliegenden Offenbarung können insbesondere für nicht vollständig trainierte neuronale Netzwerke vorteilhaft sein. Durch das „frühe“ Beschneiden kann sich ein Trainings-Aufwand reduzieren.
-
Der Trainingsdatensatz (xk, yk) kann Daten unterschiedlicher Art enthalten, wobei jeweils in einem Paar Eingangsdaten (xα) und Ausgangsdaten (yα) zu einem Paar zusammengefasst sind (k = 1 ...N). Zum Beispiel können ein Eingangsdatum und ein Ausgangsdatum jeweils ein Skalar (z.B. ein skalarer Messwert), ein Vektor beliebiger Länge sein (d.h. mit Länge eins oder größer) oder eine Matrix sein. Die Eingangsdaten können Umwelteinflüsse oder interne Betriebszustände einer technischen Vorrichtung darstellen. In einem Beispiel können die Eingangsdaten Sensordaten umfassen. Alternativ oder zusätzlich können die Eingangsdaten Bilddaten und/oder Audiodaten umfassen. Die Ausgangsdaten können ein Zustand oder ein erkanntes Ereignis der Vorrichtung oder der Umwelt sein (z.B. der Zustand „Batterie fast leer“ oder „es regnet“ für ein Elektrogerät). In weiteren Beispielen kann die Ausgangsgröße eine Steuergröße (z.B. für einen Aktor) sein oder in sonstiger Art eine Reaktion der Vorrichtung identifizieren.
-
Gemäß der Erfindung wird zunächst ein approximatives neuronales Netzwerk für das vorgegebene neuronale Netzwerk berechnet. Das kann eine Näherung um die aktuellen Gewichte
des vorgegebenen neuronalen Netzwerkes umfassen. Das approximative neuronale Netzwerk kann beispielweise durch eine Linearisierung um die aktuellen Gewichte
erzeugt werden. Zum Beispiel kann das neuronale Netzwerk durch eine Summe einer Auswertung einer Übertragungsfunktion des neuronalen Netzwerks bei einem Satz von Gewichten zuzüglich eines Terms, der linear mit den Gewichten skaliert, approximiert werden. Das kann beispielsweise folgendermaßen beschrieben werden:
wobei
die Gradienten der Übertragungsfunktion des neuronalen Netzwerkes sind, die bei den aktuellen Gewichten
auf einem Trainings-Datensatz berechnet werden. Durch diese Maßnahme können weitere Schritte des Verfahrens Ressourcen-effizienter durchgeführt werden (z.B. mit weniger Rechenschritten auf einem Computer-System).
-
In einem weiteren Schritt des erfindungsgemäßen Verfahrens kann die Matrix Qpq in Bezug auf das bereits erzeugte approximative neuronale Netzwerk berechnet werden, die Änderungen in der Verlustfunktion δLD(θ) beschreibt. Diese Änderungen können, wie oben erläutert, durch das Beschneiden einer oder mehrerer neuronalen Netzwerkunterstrukturen aus der Mehrzahl von neuronalen Netzwerkunterstrukturen bedingt sein. Die Matrix Qpq kann die Änderungen in der Verlustfunktion durch gleichzeitiges Beschneiden von mindestens zwei Netzwerkunterstrukturen aus der Mehrzahl von neuronalen Netzwerkunterstrukturen (d.h. die Matrix Qpq kann die jeweiligen Korrelationen zwischen mindestens zwei Netzwerkunterstrukturen berücksichtigen) beschreiben, die sich innerhalb verschiedener Schichten des vorgegebenen neuronalen Netzwerkes befinden. Zusätzlich kann in manchen Beispielen die Matrix Qpq die Änderungen in der Verlustfunktion durch gleichzeitiges Beschneiden von Netzwerkunterstrukturen berücksichtigen, die sich innerhalb einer Schicht des vorgegebenen neuronalen Netzwerkes befinden. In manchen Beispielen kann die Matrix Änderungen in der Verlustfunktion durch gleichzeitiges Beschneiden von mehreren Paaren der mindestens zwei Netzwerkunterstrukturen aus der Mehrzahl von neuronalen Netzwerkunterstrukturen (bspw. allen möglichen Paaren) beschreiben.
-
Basierend auf einer in der Matrix Qpq beschriebenen Änderungen der Verlustfunktion, z.B. auf Basis einer Mehrzahl (bspw. aller) berechneten Komponenten dieser Matrix (und nicht nur auf Basis der Hauptdiagonalkomponenten wie in einigen Verfahren des Standes der Technik) kann bestimmt werden, welche neuronalen Netzwerkunterstrukturen einen geringen oder sogar vernachlässigbaren Beitrag zur Gesamtleistung des ursprünglichen vorgegebenen neuronalen Netzwerkes leisten (z.B. die Gesamtleistung sinkt nicht mehr als um eine vorbestimmte Maßzahl). Zum Beispiel können in diesem Zusammenhang nur diejenigen Unterstrukturen als die zu beschneidende Unterstrukturen eingestuft werden, die nach einem Beschneiden keinen oder nur einen nicht übersteigenden Anstieg in der Verlustfunktion δLD(θ) verursachen. Die so eingestuften Unterstrukturen können deshalb von dem vorgegebenen neuronalen Netzwerk beschnitten werden, um das Erzeugen eines vereinfachten neuronalen Netzwerkes für die Vorrichtung zu ermöglichen. Das daraus resultierende vereinfachte neuronale Netzwerk kann schneller Daten für eine Vorrichtung liefern und/oder weniger Hardware-Ressourcen benötigen.
-
Dabei kann die oben beschriebene Linearisierung der Approximation in der Verlustfunktion entsprechen, wenn die aus dem Beschneiden resultierenden Änderungen in δL
D(θ) unter Verwendung einer Taylorreihe zweiter Ordnung des vorgegebenen neuronalen Netzwerkes um seine aktuellen Gewichte
approximiert werden. In manchen Fällen werden die ersten Ableitungen der Verlustfunktion nach ihren Gewichten, ∂L
D(θ)/∂θ, nicht verschwinden, wenn das vorgegebene neuronale Netzwerk kein trainiertes neuronales Netzwerk ist (sondern ein nur teilweise trainiertes neuronales Netzwerk).
-
Des Weiteren kann beispielweise das Verfahren das Berechnen der oben beschriebenen Gradienten Φ(X) des vorgegebenen neuronalen Netzwerkes um die aktuellen Gewichte umfassen. In einem Beispiel kann das Berechnen der Gradienten Φ(X) eine aktuelle Matrix X verwenden, die die Eingangsdaten der N Paare des Eingabedatensatzes enthalten kann. Danach können die Gradienten Φ(X) mit einem Beschneidungs-Vektor (auch als Störungsvektor bezeichnet) δq der Netzwerkunterstruktur multipliziert werden, um einen zweiten Vektor ϕq= ϕ(X)δq der Dimension N zu erhalten, wobei jeder Beschneidungs-Vektor (δP) einer zu beschneidenden Netzwerkunterstruktur zugeordnet ist. Auf diese Weise kann eine Mehrzahl von zweiten Vektoren ϕq (nämlich S zweiten Vektoren) hergeleitet werden, um mögliche strukturelle Veränderung in dem vorgegebenen neuronalen Netzwerk zu berücksichtigen. Die Berechnungskosten werden für diese Schritte wie O(N · P) skalieren. In anderen Beispielen kann das Berechnen der Gradienten Φ(X) und der zweite Vektor ϕq unter Verwendung des Jakobi-Vektorproduktes implementiert werden. Das kann wiederum rechnerisch effizienter sein als manche Verfahren des Stands der Technik.
-
Wie bereits erwähnt, kann in einem Beispiel das vorgegebene neuronale Netzwerk ein trainiertes neuronales Netzwerk sein. In diesem Fall kann ein Trainings-Datensatz (X) aus einer Mehrzahl von Paaren (X = {(x
i,y
i)|i ≤ n}) bestehen, wobei jedes Paar aus Eingabesätzen und jeweiligen Ausgabensätzen der technischen Vorrichtung gebildet wird, und wobei das vorgegebene neuronale Netzwerk die jeweiligen Ausgabensätze für die Eingabesätze jedes Paares erzeugen kann. Darüber hinaus kann ein Vektor der ersten Ableitungen der Verlustfunktion nach ihren Gewichten, der nach einem Einsatz der trainierten Gewichte
berechnet wird, einen Wert annehmen (∂L
D (θ)/∂θ = 0), der einem lokalen (oder globalen) Minimum der Verlustfunktion entspricht (im Rahmen einer vorbestimmten Genauigkeit). In diesem Beispiel kann das Berechnen aller Komponenten der Matrix Q
pq durch das Berechnen des Skalarproduktes der erhaltenen zweiten Vektoren ϕ
p und ϕ
q aus der Mehrzahl von zweiten Vektoren für eine Mehrzahl von Paaren (z.B. für jedes Paar) von neuronalen Netzwerkunterstrukturen des trainierten neuronalen Netzwerkes durchgeführt werden
-
In anderen Beispielen kann das vorgegebene neuronale Netzwerk ein unvollständig trainiertes neuronales Netzwerk sein (wobei der Begriff „unvollständig trainiert“ in dem oben eingeführten Sinne verstanden werden kann), indem ein Vektor der ersten Ableitungen der Verlustfunktion nach ihren Gewichten, der nach einem Einsatz der aktuellen Gewichte
berechnet wird, einen Wert annehmen kann (z.B. einen wesentlich von Null abweichenden Wert mit ∂L
D(θ)/∂θ ≠0), der keinem lokalen Minimum der Verlustfunktion für die aktuellen Gewichte entspricht. In diesem Fall wird die Verlustfunktion kein lokales Minimum für die aktuellen Gewichte aufweisen. In einem Beispiel kann das übliche Trainieren eines neuronalen Netzwerkes nach wenigen Optimierungsschritten (Epochen) abgebrochen werden, und das resultierende neuronale Netzwerk kann als das vorgegebene neuronale Netzwerk für das Verfahren der vorliegenden Offenbarung verwendet werden. In einem anderen Beispiel kann ein neuronales Netzwerk durch bestimmte Gewichtswerte initialisiert werden. Das initialisierte neuronale Netzwerk kann dann sofort in dem erfindungsgemäßen Verfahren implementiert und als das vorgegebene neuronale Netzwerk betrachtet werden. Die Verwendung des unvollständig trainierten neuronalen Netzwerkes kann sich besonderes dann anbieten, wenn das übliche Trainieren eines neuronalen Netzwerkes rechnerisch aufwendig oder aufgrund limitierter Hardware-Ressourcen gar nicht möglich ist.
-
Das Berechnen der Matrix Q
pq unter Verwendung des unvollständig trainierten neuronales Netzwerkes kann drei Schritte umfassen. Zunächst können, wie im ersten Beispiel des trainierten neuronalen Netzwerkes, die Skalarprodukte der erhaltenen zweiten Vektoren ϕ
p und ϕ
q aus der Mehrzahl von zweiten Vektoren für eine Mehrzahl von Paaren (z.B. für jedes Paar) von neuronalen Netzwerkunterstrukturen des unvollständig trainierten neuronalen Netzwerkes berechnet werden. In dieser Weise kann ein (erster) Beitrag sowohl für die Hauptdiagonalkomponenten als auch für die Nebendiagonalkomponenten berechnet werden. Des Weiteren wird ein zweiter Betrag zu den Hauptdiagonalkomponenten der Matrix Q
pq berücksichtigt, der durch das Berechnen des Skalarproduktes eines Vektors der ersten Ableitungen der Verlustfunktion nach der Mehrzahl von Beschneidungs-Vektoren δ
p, in den anschließend die aktuellen Gewichte eingesetzt werden, und der Mehrzahl von ersten Vektoren δ
p durchgeführt wird. Abschließend werden die beiden Beiträge addiert. Das kann zum Beispiel in folgender Form passieren
Q
pq wobei δ
pq das Kronecker-Delta ist.
-
Unabhängig davon, ob in den Verfahren ein trainiertes oder ein unvollständig trainiertes neuronales Netzwerk als das vorgegebene neuronale Netzwerk verwendet wird, können die Berechnungskosten der Matrix Qpq in manchen Fällen mit O(N·S2) skalieren. Zusammengefasst können die Gesamtberechnungskosten des erfindungsgemäßen Verfahrens mit O(N · S2)+ O(N · P) skalieren, um alle Komponenten der Matrix Qpq zu berechnen. Damit kann das Verfahren der vorliegenden Erfindung einen Gewinn an Berechnungskosten aufweisen, besonders im Fall größerer Strukturen mit S « P, weil das direkte Berechnen der Matrix Qpq wesentlich mehr Rechenschritte O(N · P2) erfordern kann.
-
Im nächsten Schritt des Verfahrens und in Übereinstimmung mit den obigen Diskussionen wird die Information in der Matrix Qpq verwendet, um abzuschätzen, welche Unterstrukturen beschnitten werden können.
-
Dabei können in einem ersten Verfahren zuerst alle Komponenten in jeder Spalte der Matrix Qpq summiert werden, um eine Mehrzahl von Summen zu erhalten. Danach wird iterativ eine Mehrzahl von neuronalen Netzwerkunterstrukturen unter Berücksichtigung der errechneten Summen entfernt. Das kann zum Beispiel ausgehend von einer neuronalen Netzwerkunterstruktur, für die einen kleinsten Betrag einer Summe der Mehrzahl von Summen berechnet wird, geschehen. Diese neuronalen Netzwerkunterstrukturen kann als erste entfernt werden. Das Ergebnis dieses sogenannten „Lin Sum OBD“ („optimal brain damage“) Beschneidungsverfahrens ist beispielhaft für ein neuronales Netzwerk in 2a dargestellt, das für den Boston Housing-Datensatz (d.h. einen Standard-Datensatz) erstellt wurde. Vier beispielhafte Spalten 7a-d sind auf dieser Figur gezeigt, wobei der Betrag der Summe durch eine Dichte der Punktierung illustriert ist. Die rechte Spalte 7d weist die kleinste Summe auf. Daher kann die zugehörige neuronale Netzwerkunterstruktur als erste beschnitten werden.
-
In einem alternativen Verfahren wird zunächst eine neuronale Netzwerkunterstruktur entfernt, die einem kleinsten Betrag einer Hauptdiagonalkomponente der Matrix Qpq entspricht. Danach wird eine Mehrzahl von neuronalen Netzwerkunterstrukturen iterativ entfernt, wobei jede zu entfernende nachfolgende neuronale Netzwerkunterstruktur einem kleinsten Betrag einer Summe von einer Mehrzahl von Summen aus einer Hauptdiagonalkomponente und Nichtdiagonalkomponenten der Matrix entspricht, die sich auf zuvor entfernte neuronale Netzwerkunterstrukturen beziehen. Das Beispiel der Anwendung dieses „Iterative Full OBD“ Beschneidungsverfahrens für dasselbe neuronale Netzwerk wie in 2a ist in 2b gezeigt. Beispielhafte Diagonal- und Nichtdiagonalkomponenten sind durch Kreise dargestellt, wobei die Größe eines Kreises umgekehrt proportional zur Größe der Hauptdiagonalkomponente / der Summe der Hauptdiagonalkomponente und Nichtdiagonalkomponenten ist.
-
In einem weiteren alternativen Verfahren kann eine neuronale Netzwerkunterstruktur, die einer Hauptdiagonalkomponente der Matrix (Qpq) mit einem vordefinierten Wert entspricht, optional einer kleinsten Hauptdiagonalkomponente der Matrix (Qpq) zuerst entfernt werden. In einem Beispiel können zunächst die berechneten Hauptdiagonalkomponenten der Matrix Qpq in aufsteigender Reihenfolge angeordnet werden. Dann wird eine neuronale Netzwerkunterstruktur entfernt, die der kleinsten Hauptdiagonalkomponente entspricht. Als nächstes umfasst das erfindungsgemäße Verfahren das iterative Entfernen einer Mehrzahl von neuronalen Netzwerkunterstrukturen, wobei jede zu entfernende nachfolgende neuronale Netzwerkunterstruktur einem nächstgrößeren Wert der angeordneten Hauptdiagonalkomponenten entspricht. Das Ergebnis dieses „strukturierten OBD“ („structured optimal brain damage“) Beschneidungsverfahrens für dasselbe neuronale Netzwerk wie in 2a und 2b ist als Beispiel in 2c dargestellt. Beispielhafte Diagonalkomponenten sind durch Kreise dargestellt, wobei die Größe eines Kreises umgekehrt proportional zur Größe der Hauptdiagonalkomponente ist.
-
In 3 sind die Testverluste für die in den 2a-2c verwendeten Beschneidungsverfahren in Abhängigkeit von unterschiedlichen Werten des Beschneidungsverhältnisses verglichen. Das Beschneidungsverhältnis von Null entspricht dem Fall, wenn das vorgegebene neuronale Netzwerk nicht beschnitten wird. In diesem Beispiel ist ein trainiertes neuronales Netzwerk als das vorgegebene neuronale Netzwerk ausgewählt. Die Gesamtleistung des beschnittenen Netzwerkes für das „Iterative Full OBD“ Verfahren bzw. für das „strukturierten OBD“ Verfahren bleibt für die Werte des Beschneidungsverhältnisses weniger als 0.7 bzw. 0.4 praktisch unbeeinträchtigt, wie diese Figur veranschaulicht.
-
Im Allgemeinen werden alle drei oben genannten Beschneidungsverfahren so lange durgeführt, bis eine Größe des vereinfachten neuronalen Netzwerkes unter eine gewünschte Größe fällt. In einem Beispiel kann die gewünschte Größe durch eine minimale Anzahl der Neuronen im vereinfachten neuronalen Netzwerk oder innerhalb einer Schicht des vereinfachten neuronalen Netzwerkes gegeben werden. In anderen Beispielen kann die gewünschte Größe durch eine minimale Anzahl von Verbindungen zwischen Neuronen im vereinfachten neuronalen Netzwerk oder durch eine minimale Anzahl von Verbindungen zwischen Neuronen innerhalb einer Schicht des vereinfachten neuronalen Netzwerkes definiert werden. Die gewünschte Größe kann auch beispielweise als eine minimale Anzahl unbeschnittener Schichten oder Strukturen des vereinfachten neuronalen Netzwerkes gegeben werden. In anderen Beispielen werden die Beschneidungsverfahren so lange durchgeführt, bis eine Gesamtleistung des vereinfachten neuronalen Netzwerkes unter einen vordefinierten Schwellenwert fällt. Zum Beispiel kann die Gesamtleistung mit Hilfe von Testverlusten eingeschätzt werden (siehe z.B. 3), die wiederum anhand der Verlustfunktion berechnet werden können. In einem Bespiel kann der vordefinierte Schwellenwert als Verhältnis zwischen der Gesamtleistung des vereinfachten und des vorgegebenen neuronalen Netzwerkes definiert werden. In einem anderen Beispiel kann der vordefinierte Schwellenwert einer ausgewählten Zahl entsprechen.
-
Wie bereits besprochen, können die vereinfachten Computer-implementierten neuronalen Netzwerke dieser Offenbarung in verschiedenen technischen Anwendungen zum Einsatz kommen. Generell betrifft die vorliegende Offenbarung auch Verfahren, zum einen das Beschneiden eines Computer-implementierten neuronalen Netzwerkes und danach das Benutzen des Computer-implementierten neuronalen Netzwerkes in einer technischen Vorrichtung. Das Benutzen kann beispielsweise umfassen das Steuern (oder Regeln) der technischen Vorrichtung durch das vereinfachte neuronale Netzwerk, die Erkennung eines Betriebszustands (z.B. einer Fehlfunktion) der technischen Vorrichtung oder eines Zustands der Umwelt der technischen Vorrichtung durch das vereinfachte neuronale Netzwerk oder Bewertung eines Betriebszustands der technischen Vorrichtung oder eines Zustands der Umwelt der technischen Vorrichtung durch das vereinfachte neuronale Netzwerk. In diesem Fall können die Eingangsdaten Zustandsdaten bzgl. eines internen Zustands der Vorrichtung enthalten (z.B. zumindest teilweise Sensordaten). Zusätzlich oder alternativ können die Eingangsdaten Zustandsdaten bzgl. der Umgebung der Vorrichtung enthalten (z.B. zumindest teilweise Sensordaten). Die Ausgangsdaten des vereinfachten neuronalen Netzwerks können einen Betriebszustand oder andern internen Zustand der Vorrichtung charakterisieren (z.B. ob ein Fehler oder kritischer Betriebszustand vorliegt oder nicht). Die Ausgangsdaten können verwendet werden, um die Vorrichtung in Antwort auf den charakterisierten Betriebszustand oder auf einen anderen internen Zustand zu steuern. Alternativ oder zusätzlich können die Ausgangsdaten Steuerdaten für die Vorrichtung enthalten.
-
In manchen Fällen kann die Vorrichtung ein Elektrogerät sein (z.B. ein Werkzeug, ein Haushaltsgerät oder ein Gartengerät). In anderen Beispielen kann die Vorrichtung eine Vorrichtung im Internet der Dinge („Internet of Things“) sein. Alternativ oder zusätzlich kann die Vorrichtung eine batteriebetriebene Vorrichtung sein. Wir oben beschrieben können die vereinfachten Computer-implementierten neuronalen Netzwerke in diesen Umgebungen vorteilhaft sein, weil sie verhältnismäßig Ressourcen-effizient ausgelegt sein können.
-
Das vereinfachte Computer-implementierten neuronalen Netzwerk kann eingesetzt werden zur Klassifikation einer Zeitreihe, insbesondere der Klassifizierung von Bilddaten (d.h. die Vorrichtung ist ein Bildklassifikator). Die Bilddaten können zum Beispiel Kamera-, Lidar-, Radar-, Ultraschall- oder thermische Bilddaten sein (z.B. erzeugt von entsprechenden Sensoren). Die Bilddaten können Einzelbilder oder Videodaten umfassen. In manchen Beispielen kann das Computer-implementierte neuronale Netzwerk für eine Überwachungsvorrichtung (zum Beispiel eines Herstellungsprozesses und/oder zur Qualitätssicherung) oder für ein medizinisches Bildgebungssystem (zum Beispiel zum Befunden von diagnostischen Daten) ausgelegt sein oder in einer solchen Vorrichtung eingesetzt werden. Der Bildklassifikator kann dazu ausgelegt sein, Bilddaten zu empfangen und in mehrere Klassen zu klassifizieren. Das kann in manchen Beispielen Abbilden von Eingangsdaten in Form eines Eingangsvektors einer Dimension (Rn), der Bilddaten enthält, auf Ausgangsdaten in Form eines Ausgangsvektors einer zweiten Dimension (Rm), der ein Klassifikationsergebnis darstellt, umfassen. Beispielweise können Komponenten des Eingangsvektors eine Mehrzahl von empfangenen Bilddaten darstellen. Jede Komponente des Ausgangsvektors kann ein Ergebnis einer Bildklassifikation darstellen, das anhand des vereinfachten Computerimplementierten neuronalen Netzwerkes berechnet wird. In manchen Beispielen kann die Bildklassifikation eine semantische Segmentierung eines Bildes (z.B. bereichsweise pixelweise Klassifikation des Bildes) umfassen. Die Bildklassifikation kann beispielweise eine Objektklassifikation sein. Zum Beispiel kann das Vorhandensein eines oder mehrerer Objekte in den Bilddaten detektiert werden (z.B. in einem Fahrerassistenzsystem, um Verkehrsschilder oder Fahrspuren automatisch zu erkennen).
-
In anderen Beispielen (oder zusätzlich) kann das Computer-implementierte neuronale Netzwerk ausgelegt sein oder eingesetzt werden, um den Betriebszustand und/oder die Umgebung eines zumindest teilautonomen Roboters zu überwachen. Der zumindest teilautonome Roboter kann ein autonomes Fahrzeug sein (oder ein anderes zumindest teilautonomes Fortbewegungs- oder Transportmittel). In anderen Beispielen kann der zumindest teilautonome Roboter ein Industrieroboter sein. In anderen Beispielen kann die Vorrichtung eine Maschine oder eine Gruppe von Maschinen (z.B. einer Industrielage) sein. Zum Beispiel kann ein Betriebszustand einer Werkzeugmaschine überwacht werden. In diesen Beispielen kann die Ausgangsdaten y Information bezüglich des Betriebszustands und/oder der Umgebung der jeweiligen technischen Vorrichtung enthalten.
-
In weiteren Beispielen kann das zu überwachende System ein Kommunikationsnetzwerk sein. In manchen Beispielen kann das Netzwerk ein Telekommunikationsnetzwerk (z.B. ein 5G Netzwerk) sein. In diesen Beispielen können die Eingangsdaten x Auslastungsdaten in Knoten des Netzwerks und die Ausgangsdaten y Information bezüglich der Zuteilung von Ressourcen (z.B. Kanäle, Bandbreite in Kanälen des Netzwerks oder andere Ressourcen) enthalten. In anderen Beispielen kann eine Netzwerkfehlfunktion erkannt werden.
-
In anderen Beispielen (oder zusätzlich) kann das Computer-implementierte neuronale Netzwerk ausgelegt sein oder eingesetzt werden zur Steuerung (oder Regelung) einer technischen Vorrichtung. Die Vorrichtung kann wiederum eine der oben (oder unten) diskutierten Vorrichtungen sein (z.B. ein zumindest teilautonomer Roboter oder eine Maschine). In diesen Beispielen kann die Ausgangsdaten y eine Steuergröße des jeweiligen technischen Systems enthalten.
-
In wieder anderen Beispielen (oder zusätzlich) kann das Computer-implementierte neuronale Netzwerk ausgelegt sein oder eingesetzt werden, um ein Signal zu filtern. In manchen Fällen kann das Signal ein Audiosignal oder ein Videosignal sein. In diesen Beispielen kann die Ausgangsdaten y ein gefiltertes Signal enthalten.
-
Die Verfahren zum Erzeugen und Anwenden eines vereinfachten Computerimplementierten neuronalen Netzwerkes der vorliegenden Offenbarung können auf einem computerimplementierten System ausgeführt werden. Das computerimplementierte System kann mindestens einen Prozessor, mindestens einen Speicher (der Programme enthalten kann, die, wenn ausgeführt, die Verfahren der vorliegenden Offenbarung ausführen) sowie mindestens eine Schnittstelle für Eingänge und Ausgänge aufweisen. Das computerimplementierte System kann ein „Stand-alone“ System oder ein verteiltes System sein, dass über ein Netzwerk (z.B. das Internet) kommuniziert.
-
Die vorliegende Offenbarung betrifft auch (vereinfachte) Computer-implementierte neuronalen Netzwerke, die mit den Verfahren der vorliegenden Offenbarung erzeugt werden. Die vorliegende Offenbarung betrifft auch Computerprogramme, welche eingerichtet sind, alle Schritte der Verfahren der vorliegenden Offenbarung auszuführen. Darüber hinaus betrifft die vorliegende Offenbarung maschinenlesbares Speichermedien (z.B. optische Speichermedien oder Festspeicher, beispielsweise FLASH-Speicher), auf denen Computerprogramme gespeichert sind, welche eingerichtet sind, alle Schritte der Verfahren der vorliegenden Offenbarung auszuführen.