-
Die Erfindung betrifft ein Verfahren und System zum Bereitstellen einer Rechenressourcen-optimierten Netzwerk-Architektur eines künstlichen neuronalen Netzwerks, insbesondere in Abhängigkeit einer hardwareseitigen Rechenressourcen-Begrenzung.
-
Stand der Technik
-
Trainierte künstliche neuronale Netzwerke (KNNs) weisen zumeist eine hohe Redundanz in ihren Gewichten auf. Das heißt, dass viele Gewichte nicht unbedingt notwendig, um eine leistungsfähige Funktion des neuronalen Netzwerks insbesondere im Inferenzfall zu ermöglichen. Da die Anzahl der Gewichte die Komplexität einer dem künstlichen neuronalen Netzwerk zugrundeliegenden Netzwerkarchitektur stark beeinfluss, und dazu führt, dass mit steigender Anzahl an Gewichten eine immer höhere Rechenleistung zum Ausführen des künstlichen neuronalen Netzwerks, jedoch auch zum Trainieren benötigt wird, besteht ein Bedarf, die Anzahl an Gewichten pro Schicht des Netzwerks zu möglichst gering zu halten, und dennoch eine leistungsstarke Funktion des KNNs zu gewährleisten.
-
Um die Gewichte zu reduzieren, werden die KNNs zumeist während des Trainings regularisiert. Gewichte, denen nach der Regularisierung eine kleine Norm zugeschrieben wird, werden dann eliminiert, da sie für die Funktionalität des KNNs als nicht signifikant erachtet werden. Dieses Eliminieren von Gewichten ist auch als „Pruning“ bekannt. Oftmals wird nach dem Pruning ein eventuell auftretender Leistungsverlust des Gewichte-reduzierten KNNs bewertet.
-
Eine Aufgabe der Erfindung ist es, ein Verfahren sowie ein System zum Bereitstellen einer Rechenressourcen-optimierten Netzwerk-Architektur eines künstlichen neuronalen Netzwerks, KNNs, insbesondere in Abhängigkeit einer hardwareseitigen Rechenressourcen-Begrenzung.
-
Die Aufgabe wird gelöst, durch ein computerimplementiertes Verfahren zum Bereitstellen einer Rechenressourcen-optimierten Netzwerk-Architektur eines künstlichen neuronalen Netzwerks, insbesondere in Abhängigkeit einer hardwareseitigen Rechenressourcen-Begrenzung, gemäß den Merkmalen des Patentanspruchs 1. Die Aufgabe wird gelöst, durch ein System zum Bereitstellen einer Rechenressourcen-optimierten Netzwerk-Architektur eines künstlichen neuronalen Netzwerks, insbesondere in Abhängigkeit einer hardwareseitigen Rechenressourcen-Begrenzung, gemäß den Merkmalen des Patentanspruchs 11.
-
Offenbarung der Erfindung
-
Vorliegend wird ein Verfahren zum Bereitstellen einer Rechenressourcen-optimierten Netzwerk-Architektur eines künstlichen neuronalen Netzwerks, insbesondere in Abhängigkeit einer hardwareseitigen Rechenressourcen-Begrenzung angegeben;
das Verfahren aufweisend die Schritte:
- - Bereitstellen eines, insbesondere trainierten, Ursprungs-KNNs mit einer Netzwerkarchitektur, die eine, insbesondere nichtlineare, verkettete, Funktion repräsentiert, durch die ein d-dimensionaler Eingangsraum auf einen N-dimensionalen Ausgangsraum abbildbar ist, und ferner aufweisend eine Vielzahl von Gewichten;
- - Bereitstellen eines Trainingsdatensatzes und/oder eines Validierungsdatensatzes;
- - Partitionieren des d-dimensionalen Eingangsraums in eine Vielzahl von Zellen auf Basis der Netzwerkarchitektur des Ursprungs-KNNs, wobei die einzelnen Zellen jeweils voneinander durch mindestens eine jeweils Gewicht-spezifische Hyperebene und/oder Hyper-Menge trennbar sind;
- - Erzeugen, insbesondere durch Anwendung von Pruning, einer vorbestimmten Anzahl an veränderten KNNs, die jeweils eine im Vergleich zu dem Ursprungs-KNN eine veränderte Netzwerkarchitektur aufweisen, insbesondere in Abhängigkeit der partitionierten Zellen und/oder der Gewicht-spezifischen Hyperebenen und/oder Hyper-Mengen;
- - Partitionieren (S5) des jeweiligen Eingangsraums der vorbestimmten Anzahl an veränderten KNNs jeweils in eine Vielzahl von Zellen auf Basis der jeweiligen Netzwerkarchitektur;
- - Bestimmen mindestens eines Ähnlichkeitsmaßes mindestens einer Netzwerkarchitektur des jeweiligen, veränderten KNNs zu der Netzwerkarchitektur des Ursprungs-KNN auf Basis eines Vergleichs der Partitionierung des Ursprungs-KNNs mit einer jeweiligen Partitionierung des jeweils veränderten KNNs;
- - Auswählen mindestens eines veränderten KNNs auf Basis des Ähnlichkeitsmaßes;
- - Nachtrainieren des ausgewählten, veränderten KNNs auf Basis des bereitgestellten Trainingsdatensatzes und/oder Validieren des ausgewählten, veränderten KNNs auf Basis des bereitgestellten Validierungsdatensatzes; und
- - Bereitstellen des nachtrainierten, veränderten KNNs.
-
Grundsätzlich ist es auch möglich, eine ganze Klasse von KNNs auszuwählen, die ein vorbestimmtes Ähnlichkeitsmaß erfüllen. Das Verfahren zielt darauf ab, dasjenige KNN f zu finden, das ein Ursprungs-KNN F möglichst gut strukturell, d.h., in Bezug auf die Netzwerkarchitektur, annähert, das jedoch einen gegenüber dem Ursprungs-KNN reduzierten und/oder optimierten NetzwerkStruktur-Aufbau hat, und somit effizienter arbeitet und insbesondere weniger Rechenressourcen und/oder Rechenkapazität benötigt.
-
Es versteht sich, dass die erfindungsmäßen Schritte sowie weitere optionale Schritte nicht notwendigerweise in der aufgezeigten Reihenfolge ausgeführt werden müssen, sondern auch in einer anderen Reihenfolge ausgeführt werden können. Ferner können weitere Zwischenschritte vorgesehen sein. Die einzelnen Schritte können zudem einen oder mehrere Unterschritte umfassen, ohne dass hierdurch der Umfang des erfindungsgemäßen Verfahrens verlassen wird.
-
Mit anderen Worten erfolgt durch das vorliegende Verfahren eine Zerlegung bzw. Partitionierung des d-dimensionalen Eingangsraums des Ursprungs-KNNs in eine endliche Anzahl von Zellen (engl. „faces“). In bzw. innerhalb jeder dieser Zellen ist ein Ausgang des Ursprungs-KNNs vorzugsweise konstant, wenn es sich bei der Funktion des KNNs um die Lösung einer Klassifikationsaufgabe handelt. In bzw. innerhalb jeder dieser Zellen ist ein Ausgang des Ursprungs-KNNs vorzugsweise linear, wenn es sich bei der Funktion des KNNs um die Lösung einer Regressionsaufgabe handelt. Durch das Verfahren erfolgt ein Pruning des Ursprungs-KNNs.
-
Vorliegend wird aus einer Anzahl von ermittelten KNNs dasjenige KNN ausgewählt, welches dem Ursprungs-KNN bezüglich seiner Netzwerkarchitektur am ähnlichsten ist. Vorliegend kommt hierzu ein Pruning-Verfahren zur Anwendung, das dazu ausgebildet ist, das zum Ursprungs-KNN ähnlichste KNN zu bestimmen. Dabei wird eine vorbestimmte Anzahl von geprunten KNNs zugrunde gelegt, um die Ähnlichkeitsbestimmung anzustellen.
-
Eine Hyperebene ist ein mathematischer Begriff, der in einem mehrdimensionalen Raum definiert wird. In einem zweidimensionalen Raum ist eine Hyperebene eine Gerade, in einem dreidimensionalen Raum eine Ebene. Allgemein betrachtet ist eine Hyperebene in einem n-dimensionalen Raum eine (n-1)-dimensionale Fläche, die den Raum in zwei Teile aufteilt. In KNNs werden Hyperebenen verwendet, um Klassen oder Entscheidungsgrenzen zu definieren, indem sie den Raum in Regionen unterteilen, die verschiedenen Kategorien oder Zuständen entsprechen.
-
Eine Hyper-Menge ist eine Erweiterung des Konzepts der Hyperebene. Statt einer einzelnen Hyperebene handelt es sich bei einer Hyper-Menge um eine Ansammlung von Hyperebenen im Raum. Diese Hyperebenen können in ihrer Gesamtheit dazu dienen, komplexe räumliche Strukturen zu definieren. Hyper-Mengen werden in KNNs verwendet, um komplexere Entscheidungsgrenzen zu modellieren, die nicht einfach durch einzelne Hyperebenen beschrieben werden können.
-
Der Eingangsraum (auch Merkmalsraum genannt) bezieht sich auf den Raum, in dem die Eingangsdaten eines Neuronalen Netzwerks existieren. Jede Dimension des Eingangsraums entspricht einem bestimmten Merkmal oder einer bestimmten Eigenschaft der Eingangsdaten. Zum Beispiel könnten die Pixelwerte eines Bildes in einem Bildklassifizierungsnetzwerk den Eingangsraum bilden.
-
Der Ausgangsraum bezieht sich auf den Raum der Ausgabewerte eines Neuronalen Netzwerks. Dieser Raum hängt von der Art des Netzwerks ab. In einem Klassifikationsnetzwerk mit mehreren Klassen könnte der Ausgangsraum Vektoren enthalten, die die Wahrscheinlichkeiten für jede Klasse darstellen. In einem neuronalen Netzwerk für Regression könnte der Ausgangsraum numerische Werte repräsentieren.
-
Beim „Pruning“ handelt es sich um einen Prozess des Entfernens von Neuronen oder Verbindungen aus einem Neuronalen Netzwerk, um das Netzwerk kompakter zu machen, Overfitting zu reduzieren und die Effizienz zu steigern. Pruning kann auf verschiedene Weisen erfolgen, wie zum Beispiel das Entfernen von Neuronen mit geringer Aktivierung oder das Entfernen von Gewichten mit niedriger Bedeutung. Allgemein steht Pruning vorliegend für jegliche Art der Optimierung einer Netzwerkarchitektur eines KNNs.
-
In einer bevorzugten Ausführungsform weist das Ursprungs-KNN eine d-dimensionale Anzahl an Eingangsgrößen auf. Derartige Eingangsgrößen können beispielsweise Sensorsignale aufweisen. Die Eingangsgrößen können vorprozessiert, beispielsweise normiert und/oder von einem Zeitbereiche in einen Frequenzbereich oder von einem Frequenzbereich in einen Zeitbereich transformiert und/oder gefiltert und/oder geglättet oder ähnliches sein. Die Formulierung „d-dimensional“ bedeutet, dass vorzugsweise d verschiedene Signale als Eingangsgrößen verfügbar sind. Somit wird eine Eingangsraum der Dimension d aufgespannt. Die Netzwerkarchitektur weist ferner eine Vielzahl von Biasterme auf. In einem KNN das Bias-Term vorzugsweise eine Konstante, die zu den gewichteten Eingaben jedes Neurons hinzugefügt wird, bevor die, vorzugsweise nicht-lineare, Aktivierungsfunktion angewendet wird. Es kann als eine Art Verschiebung interpretiert werden, die die Aktivierung des Neurons beeinflusst. Das Bias hilft dabei, den Aktivierungsbereich und die allgemeine Fähigkeit des Netzwerks zur Anpassung an die Daten zu steuern. Das Bias-Term ermöglicht es einem Neuron, aktiviert zu werden, auch wenn alle gewichteten Eingaben gleich null sind. Dadurch kann das Netzwerk flexibler auf verschiedene Muster und Zusammenhänge in den Daten reagieren. In einem mehrschichtigen neuronalen Netzwerk hat jedes Neuron normalerweise seinen eigenen Bias-Wert. Das Partitionieren des d-dimensionalen Eingangsraums in eine Vielzahl von Zellen auf Basis der Netzwerkarchitektur weist mindestens folgende Schritte auf: Bestimmen von Hyperebenen und/oder Hyper-Mengen in Abhängigkeit der Eingangsgrößen, mindestens einer Teilmenge der Vielzahl von Gewichten und einer Teilmenge der Vielzahl von Biasterme. Wie genau die Partitionierung des Eingangsraumes sowie auch die der nachfolgenden Räume der Netzwerkschichten erfolgt, ist detailliert in der Figurenbeschreibung beschrieben, worauf hier explizit Bezug genommen wird.
-
In einer bevorzugten Ausführungsform weist die, insbesondere durch das Anwendung von Pruning, erzeugte veränderte Netzwerkarchitektur der veränderten KNNs bezüglich des Ursprungs-KNNs eine geringere Anzahl an Gewichten in mindestens einer Netzwerkschicht und/oder eine verringerte Anzahl an Netzwerkschichten und/oder eine erhöhte Anzahl an Netzwerkschichten auf. Hierdurch werden KNNs bestimmt, die gegenüber dem Ursprungs-KNN mit einer verringerten Rechenleistung betrieben werden können, also weniger Rechenressourcen benötigen.
-
In einer bevorzugten Ausführungsform weist das Bestimmen des mindestens einen Ähnlichkeitsmaßes ein Vergleichen eines Überschneidungsvolumens der Partitionierung des Ursprungs-KNNs mit einer jeweiligen Partitionierung des jeweils veränderten KNNs auf.
-
In einer bevorzugten Ausführungsform weist das Bestimmen des mindestens einen Ähnlichkeitsmaßes auf:
- - Identifizieren von Zellen der Partitionierung des Ursprungs-KNNs, die Datenpunkte aufweisen, die mit Datenpunkten aus dem Trainingsdatensatz und/oder dem Validierungsdatensatz korrespondieren;
- - Identifizieren von Zellen der jeweiligen Partitionierung des jeweils veränderten KNNs, die die identifizierten Zellen der Partitionierung des Ursprungs-KNNs schneiden;
- - Bestimmen eines jeweiligen Überschneidungsvolumens der jeweiligen Zellen; und
- - Ermitteln der jeweiligen Ähnlichkeitsmaßes auf Basis des jeweiligen Überschneidungsvolumens.
-
Mit anderen Worten werden die Zellen A1, ... , Am der Partition Z des Ursprungs-KNNs identifiziert, die Trainingsdaten und/oder Validierungsdaten X enthalten. Für jede Zelle An ∈ (A1,...,Am) werden Zellen B1,...,Bj der jeweiligen Partition Zi der jeweiligen veränderten KNNs identifiziert, die die Zellen An schneiden. Es wird vorzugsweise das Volumen vol(An) gemessen und/oder bestimmt. Für jede Zelle B1,...,Bj wird vorzugsweise das Volumen vol(An ∩ B1),...,vol(An ∩ Bj) gemessen. Es werden vorzugsweise die Zellen Br bestimmt, bei denen der Vorhersagwert des Ursprungs-KNNs und des geprunten bzw. veränderten KNNs übereinstimmen.
-
In einer bevorzugten Ausführungsform weist das Ermitteln der jeweiligen Ähnlichkeitsmaßes auf Basis des jeweiligen Überschneidungsvolumens auf:
- - Bestimmen eines jeweiligen Zellvolumens der jeweiligen Zellen des Ursprungs-KNNs und des jeweiligen veränderten KNNs;
- - Bestimmen derjenigen Zellen des jeweiligen veränderten KNNs, bei denen ein jeweiliger Vorhersagewert der jeweiligen Zelle mit einem jeweiligen Vorhersagewert einer jeweiligen Zelle des Ursprungs-KNNs übereinstimmen;
- - Addieren der Zellvolumina derjenigen Zellen, bei denen der jeweilige Vorhersagewert übereinstimmt;
- - Bestimmen von Quotienten aus dem jeweiligen Zellvolumen der in dem jeweiligen Vorhersagewert übereinstimmenden Zellen und der addierten Zellvolumina;
- - Addieren der bestimmten Quotienten normieren auf eine Gesamtanzahl an Zellen des jeweiligen veränderten KNNs zum Erzeugen eines des Ähnlichkeitsmaßes,
wobei das Ähnlichkeitsmaßes 1 ergibt, wenn die Vorhersagewerte in allen Zellen übereinstimmen, und wobei das Ähnlichkeitsmaßes 0 ergibt, wenn die Vorhersagewerte in keiner der Zellen übereinstimmen.
-
Mit anderen Worten, werden die Volumen vol(An ∩ Br) der übereinstimmenden Vorhersagen addiert (Summe). Es wird vorzugsweise der jeweilige Quotient aus vol(An)/Summe gebildet. Die Quotienten werden vorzugsweise addiert und durch die Anzahl der Zellen A1,...,Am geteilt. Der so bestimmte Wert wird vorzugsweise zurückgegeben. Damit ist der Wert 1, falls das geprunte KNN das Gleiche auf den Zellen A1, ... , Am ausgibt, wie das Ursprungs-KNN und der Quotient ist Null falls die Vorhersagen nie übereinstimmen. Der Algorithmus gibt vorzugsweise das ähnlichste geprunte KNN oder eine Klassen von ähnlichen KNNs zurück.
-
In einer bevorzugten Ausführungsform weist das Bestimmen von Quotienten aus dem jeweiligen Zellvolumen der in dem jeweiligen Vorhersagewert übereinstimmenden Zellen und der addierten Zellvolumina auf: Gewichten aus Basis eines jeweiligen Zellvolumens der jeweiligen Zellen des veränderten KNNs und/oder des Ursprungs-KNNs.
-
In einer bevorzugten Ausführungsform gilt für den d-dimensionalen Eingangsraum: d = 10, vorzugsweise d < 10, besonders bevorzugt d < 6, wobei d ein Element der positiven, natürlichen Zahlenmenge ist. Bevorzugt handelt es sich bei dem KNNs also um ein kleindimensionales Netzwerk. Für KNNs höherer Dimension wäre die Partitionierung nämlich nur mit einem ungleich höheren Rechenaufwand aufgrund der Vielzahl an Eingangsvariablen möglich.
-
In einer bevorzugten Ausführungsform wird das Verfahren iterativ durchgeführt, wobei das jeweils ausgewählte, veränderte KNNs nach jedem Iterationsschritt als Ursprungs-KNN für den folgenden Iterationsschritt fungiert. In einer weiteren Ausprägung kann die Erfindung in einer Optimierungsschleife genutzt werden, um das KNN iterativ zu verbessern.
-
Hierbei sind grundsätzlich zwei verschiedene, sich jedoch überschneidende Ausprägungen möglich:
- Ausprägung 1:
- Gestartet wird vorzugsweise mit einem geprunten KNN f1. Das KNN f1 wird vorzugsweise basierend auf dem vorstehend beschreiben Verfahren hinsichtlich eines Ähnlichkeitsmaßes bzw. Gütemaßes bezüglich eines Ursprungs-KNN bewertet. Das KNN f1 wird dabei vorzugsweise strukturell verändert, z.B. indem, ein Neuron in einer Schicht weggelassen wird. Hierdurch entsteht ein gegenüber f1 verändertes KNN f2. Alternativ oder ergänzend kann auch eine ganze Schicht weggelassen oder eine Schicht hinzugefügt werden. Das geänderte KNN f2 wird wiederum hinsichtlich eines Ähnlichkeitsmaßes bewertet. Ist f2 besser als f1 wird mit f2 iterativ weiter verbessert. Ist f1 besser als f2 wird die Änderung f2 vorzugsweise verworfen und f1 wird weiter verändert.
- Ausprägung 2:
- Die Ausprägung 2 ist ähnlich zur Ausprägung 1, nur dass eine ganze Klasse von Netzen f1,f2,...,fk in jedem Iterationsschritt betrachtet wird. Man geht also vorzugsweise von k Netzwerken aus. Ändert diese k-KNN strukturell, indem z.B. Teile der Architekturen re-kombiniert werden. Die veränderten KNNs werden jeweils bewertet. Die k-besten KNNs aus den veränderten KNNs aus dem letzten Iterationsschritt und dem aktuellen Iterationsschritt werden vorzugsweise behalten.
-
In einer bevorzugten Ausführungsform ist das Verfahren in Form eines genetischen Algorithmus ausgebildet, durch den das jeweils ausgewählte, veränderte KNN oder eine vorbestimmte Menge an ausgewählten KNNs pro Evolutionsstufe vorzugsweise fortlaufend an das Ursprungs-KNN angepasst wird.
-
In einem zweiten Aspekt wird ein System zum Bereitstellen einer Rechenressourcen-optimierten Netzwerk-Architektur eines künstlichen neuronalen Netzwerks, insbesondere in Abhängigkeit einer hardwareseitigen Rechenressourcen-Begrenzung, angegeben. Das System aufweisend, eine Bereitstellungseinrichtung, die zum Ausführen der folgenden Schritte ausgebildet ist: Bereitstellen eines, insbesondere trainierten, Ursprungs-KNNs mit einer Netzwerkarchitektur, die eine, insbesondere nichtlineare, verkettete, Funktion repräsentiert, durch die ein d-dimensionaler Eingangsraum auf einen N-dimensionalen Ausgangsraum abbildbar ist, und ferner aufweisend eine Vielzahl von Gewichten; Bereitstellen eines Trainingsdatensatzes und/oder eines Validierungsdatensatzes; und eine Auswerte- und/oder Recheneinrichtung, die zum Ausführen der folgenden Schritte ausgebildet ist: Partitionieren des d-dimensionalen Eingangsraums in eine Vielzahl von Zellen auf Basis der Netzwerkarchitektur des Ursprungs-KNNs, wobei die einzelnen Zellen jeweils voneinander durch mindestens eine jeweils Gewicht-spezifische Hyperebene und/oder Hyper-Menge trennbar sind; Erzeugen, insbesondere durch Anwendung von Pruning, einer vorbestimmten Anzahl an veränderten KNNs, die jeweils eine im Vergleich zu dem Ursprungs-KNN eine veränderte Netzwerkarchitektur aufweisen, insbesondere in Abhängigkeit der partitionierten Zellen und/oder der Gewicht-spezifischen Hyperebenen und/oder Hyper-Mengen; Partitionieren des jeweiligen Eingangsraums der vorbestimmten Anzahl an veränderten KNNs jeweils in eine Vielzahl von Zellen auf Basis der jeweiligen Netzwerkarchitektur; Bestimmen mindestens eines Ähnlichkeitsmaßes mindestens einer Netzwerkarchitektur des jeweiligen, veränderten KNNs zu der Netzwerkarchitektur des Ursprungs-KNN auf Basis eines Vergleichs der Partitionierung des Ursprungs-KNNs mit einer jeweiligen Partitionierung des jeweils veränderten KNNs; Auswählen mindestens eines veränderten KNNs auf Basis des Ähnlichkeitsmaßes; Nachtrainieren des ausgewählten, veränderten KNNs auf Basis des bereitgestellten Trainingsdatensatzes und/oder Validieren des ausgewählten, veränderten KNNs auf Basis des bereitgestellten Validierungsdatensatzes; wobei die Bereitstellungseinrichtung zum Bereitstellen des nachtrainierten, veränderten KNNs ausgebildet ist.
-
Die für das Verfahren genannten Ausführungsformen gelten in gleicher oder ähnlicher Weise für das System.
-
Vorliegend ist auch eine Steuer- und/oder Recheneinrichtung beansprucht, die dazu ausgebildet ist, eine Regressionsaufgabe und/oder eine Klassifizierungsaufgabe durch Ausführen des gemäß dem vorliegenden Verfahren bereitgestellten, trainierten, optimierten KNN auszuführen. Die Steuer- und/oder Recheneinrichtung kann rein beispielhaft in einem autonomen Fahrzeug und/oder einem Robotiksystem und/oder einer industriellen Maschine umfasst sein. Eine derartige Steuer- und/oder Recheneinrichtung kann beispielsweise als eingebettete Einrichtung in einer Anlage oder in einem System genutzt werden. Allgemein kann das vorliegende Verfahren besonders für kleindimensionale, künstliche neuronale Netzwerke genutzt werden. Beispielsweise kann das vorliegende, optimierte KNN als virtueller Sensor mit bis zu zehn, vorzugsweise bis zu 5-dimensionalen Eingängen genutzt werden. Ebenfalls kann das vorliegend bereitgestellte KNN für die Merkmalsdetektion in größeren KNNs, beispielsweise zur autarken Kantendetektion, genutzt werden. Andere Beispiele für virtuelle Sensoren im Fahrzeug sind virtuelle Temperatursensoren (z.B. am Stator/Rotor eines E-Motors oder an einem Injektormagnet), Masseschätzer für ein Einspritzsystem, Verkokungsmodelle und/oder virtuelle Sensoren für Abgaskonzentrationen. Prinzipiell ist das vorliegende Verfahren bzw. das dadurch bereitgestellte KNN anwendbar bei sämtlichen virtuellen Sensoren, die eingesetzt werden bei Nichtmontierbarkeit, hohem Kostendruck, komplexem Messaufbau für Serienprodukt.
-
Zudem kann das vorliegend optimierte und bereitgestellte KNN zur Bestimmung eines Korrekturfaktors zur Berechnung für die Anzeige eines aktuellen Verbrauchs eines Motors in einem Fahrzeug genutzt werden. Dabei bietet das vorliegende KNN eine Alternative zu bekannten Verfahren, die ein „Einfahren eines Injektors“ benötigen und ggf. nicht immer funktionieren. Dieses Verhalten kann in einem Kennfeld parametriert sein. Zudem erfordern erhöhte Anforderungen der EU den Einsatz alternativer Verfahren. Durch die Kompaktheit bzw. geringe Komplexität des vorliegend optimierten KNNs wird eine derartige Alternative bereitgestellt.
-
Zudem kann das vorliegend optimierte und bereitgestellte KNN zur Detektion eines Change-Points aus einem diskreten Gyroskopsignal, beispielsweise zur Sturzerkennung, genutzt werden. Dabei ist es von Vorteil, dass die Eingangsvektoren hier kleindimensional sind, und dadurch eine Anwendung des vorliegenden Optimierungsverfahrens optimal durchgeführt werden kann, um ein optimiertes KNN bereitzustellen.
-
Zudem kann das vorliegend optimierte und bereitgestellte KNN als Kantenfilter bei der Bildverarbeitung verwendet werden. Beispielhaft kann dies an einer Baggerschaufel erläutert werden, wobei das KNN als Teil der Regelschleife der Baggerschaufel einsetzbar ist. Die Übertragungsfunktion des Baggerjoysticks zur Zylinderposition der Schaufel kann dabei mit einem solchen, vorliegend optimierten KNN modelliert werden. Dabei werden vorzugsweise kleindimensionale Netzwerke mit einer einfachen Netzwerkarchitektur, beispielsweise der Größe 3-15-15-1 und/oder 2-15-7- 1, betrachtet. Bei derartig kleinen KNNs können die Zerlegungen beispielsweise in weniger als 5 Sekunden bestimmt werden.
-
Insbesondere kann das vorliegende KNN aufgrund seiner Niedrigdimensionalität als Surrogatefunktion genutzt werden, in der das KNN eine Lösung einer partiellen Differentialgleichung darstellt, welche selbstständig nicht in Echtzeit rechenbar ist.
-
Erfindungsgemäß ist auch ein Computerprogramm mit Programmcode beansprucht, um zumindest Teile des erfindungsgemäßen Verfahrens in einer seiner Ausführungsformen auszuführen, wenn das Computerprogramm auf einem Computer ausgeführt wird. Mit anderen Worten wird ein Computerprogramm(-produkt), umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren/die Schritte des erfindungsgemäßen Verfahrens in einer seiner Ausführungsformen auszuführen.
-
Erfindungsgemäß ist auch ein computerlesbarer Datenträger mit Programmcode eines Computerprogramms vorgeschlagen, um zumindest Teile des erfindungsgemäßen Verfahrens in einer seiner Ausführungsformen auszuführen, wenn das Computerprogramm auf einem Computer ausgeführt wird. Mit anderen Worten betrifft die Erfindung ein computerlesbares (Speicher-) Medium, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren/die Schritte des erfindungsgemäßen Verfahrens in einer seiner Ausführungsformen auszuführen.
-
Die beschriebenen Ausgestaltungen und Weiterbildungen lassen sich beliebig miteinander kombinieren.
-
Weitere mögliche Ausgestaltungen, Weiterbildungen und Implementierungen der Erfindung umfassen auch nicht explizit genannte Kombinationen von zuvor oder im Folgenden bezüglich der Ausführungsbeispiele beschriebenen Merkmalen der Erfindung.
-
Kurze Beschreibung der Zeichnungen
-
Die beiliegenden Zeichnungen sollen ein weiteres Verständnis der Ausführungsformen der Erfindung vermitteln. Sie veranschaulichen Ausführungsformen und dienen im Zusammenhang mit der Beschreibung der Erklärung von Prinzipien und Konzepten der Erfindung.
-
Andere Ausführungsformen und viele der genannten Vorteile ergeben sich im Hinblick auf die Zeichnungen. Die dargestellten Elemente der Zeichnungen sind nicht notwendigerweise maßstabsgetreu zueinander gezeigt.
-
Es zeigen:
- 1 beispielhafte Hyperebenen in zur Partitionierung eines Eingangsraumes;
- 2 die Darstellung aus 1 mit zusätzlichen Codierungsinformationen;
- 3 eine beispielhafte Darstellung einer erfolgten Partitionierung mit zweidimensionalen offenen Mengen;
- 4 eine beispielhafte Darstellung von offenen 1-dimensionalen Mengen;
- 5 eine beispielhafte Darstellung von drei 0-dimensionalen Mengen;
- 6 eine beispielhafte Darstellung einer Partitionierung eines 10-dimensionalen Eingangsraumes einer ersten Schicht eines KNNs;
- 7 eine beispielhafte Darstellung einer Partitionierung eines 10-dimensionalen Eingangsraumes einer zweiten Schicht eines KNNs;
- 8 ein beispielhaftes Flussdiagramm eines Ausführungsbeispiels des vorliegenden Verfahrens;
- 9 eine beispielhafte Darstellung eines Eingangsraumes der ersten Schicht eines Ursprungs-KNNs;
- 10 eine beispielhafte Darstellung eines Eingangsraumes der ersten Schicht eines optimierten KNNs;
- 11 eine beispielhafte Darstellung eines Eingangsraumes der zweiten oder einer weiteren Schicht eines Ursprungs-KNNs; und
- 12 eine beispielhafte Darstellung eines Eingangsraumes der zweiten oder einer weiteren Schicht eines optimierten KNNs.
-
In den Figuren der Zeichnungen bezeichnen gleiche Bezugszeichen gleiche oder funktionsgleiche Elemente, Bauteile oder Komponenten, soweit nichts Gegenteiliges angegeben ist.
-
Die Partitionierung des Eingangsraumes in bezüglich ihrer mathematischen Grundlagen mit Bezugnahme auf die 1 bis 7 beschrieben. Die vorliegende Erfindung wird mit Bezugnahme auf die 8 bis 12 erläutert.
-
Die Partitionierung gemäß dem vorliegenden Verfahren betrachtet vorzugsweise ein mehrschichtiges neuronales Netz KNN mit ReLu-Nichtlinearitäten als Aktivierungsfunktion. D.h., das das KNN eine Funktion F: Rm1 → Rmk+1 definiert.
-
Es gilt:
mit Gewichtsmatrizen A
1, ... , A
k, und Biases-Termen b
1, ... , b
k. Hierbei sind A
1 Matrizen d.h. lineare Abbildungen zwischen reellen Vektorräumen A
1: R
m1 → R
m2,
A2: R
m2 → R
m3,..., A
k: R
mk → R
mk+1 ebenso sind b
1 ∈ Rm2, ..., bk ∈ R
mk+1 Vektoren eines reellen Vektorraums.
Insgesamt ist F vorzugsweise eine verkettete Abbildung F: R
m1 → R
mk+1 des m1-dimensionalen euklidischen Raumes R
m1 in den mk+1-dimensionalen euklidischen Raum R
mk+1.
-
Um die Notation zu reduzieren, wird d = m1 und N = mk+1 gesetzt, das heißt das hier untersuchte Netz F: Rd → RN ist eine Funktion des d-dimensionalen euklidischen Raumes Rd in den N-dimensionalen euklidischen Raum RN.
-
Wird eine Regression modelliert ist die Beschreibung der Funktion F(x) vorzugsweise beendet. Das (Ursprungs-KNN) gibt dann vorzugsweise den Wert F(x) als Ausgabewert bzw. Vorhersagewert zurück.
-
Im Falle einer Klassifikation des Eingangssignals x in mk+1-Klassen, folgt auf den Ausgang F(x) vorzugsweise eine Softmaxfunktion. Dadurch werden die Komponenten von F(x) = (f1(x), f2(x), ... , fmk+1(x)) vorzugsweise positiv, und auf Eins normiert, d.h., für alle Eingangsgrößen x gilt: f1(x), ... ‚ fmk+1(x) ≥ 0 für alle x und Summe f1(x) + ... + fmk+1(x) = 1.
-
Die Klassifikation erfolgt vorzugsweise mit einer Argmax-Funktion, die den Index des Vektors g1(x), ..., gmk+1(x) zurückgibt an der der g(x) Maximal ist.
-
Nachdem die Grundlagen erläutert wurden, wird nachfolgend näher die Partitionierung des Eingangsraumes beschrieben. Die Schichten des KNNs partitionieren den Eingangsraum vorzugsweise in Zellen. Hierbei sind erste Schicht (Eingangsschicht), mittlere Schichten (auch nachfolgende Schichten oder auf die Eingangsschicht folgende Schichten), und letzte Schicht (auch Ausgabeschicht), im Falle eines Klassifikationsnetzes vorzugsweise zu unterscheiden.
-
In der ersten Schicht es Netzes, bestehend aus einem Paar von Gewichtsmatrix A
1 und Biasterme b
1, und einer ReLu-Nichtlinearität ϕ (Aktivierungsfunktion), wird ein Eingangsvektor x mit der Gewichtsmatrix A
1 multipliziert, der Bias-Term b
1 wird addiert, der resultierende Vektor A
1x + b
1 einer komponentenweise ReLu ϕ(A
1x + b
1) zugeführt. Auf Komponentenebene bedeutet dies:
-
Zur leichteren Lesbarkeit haben wir hier d = m1 und m = m2 gesetzt.
-
Im Folgenden werden zudem die Spaltenvektoren von A
1 mit den Vektoren h
1, ... , hm einbezogen.
-
Diese Vektoren und der Bias-Term definieren vorzugsweise jeweils offene Halbräume.
-
Des Weiteren werden vorzugsweise zum Zwecke der Partitionierung Hyperebenen eingeführt.
-
Dieses System von Halbräumen und Hyperebenen partitioniert den Eingangsraum Rn vorzugsweise in Zellen. Dieser Zusammenhang ist in den 1 und 2 beispielhaft dargestellt. Dabei sind in den 1 und 2 drei Hyperebenen H0, H1, H2 dargestellt, die gemäß den obigen Gleichungen erzeugt werden. In 2 werden die jeweiligen die Hyperebenen H0, H1, H2 zusammen mit ihren offenen Halbräumen dargestellt. Des Weiteren sind in 2 drei beispielhafte Punkte (Vertices) mit ihrer jeweiligen Codierung dargestellt.
-
3 zeigt die verschiedenen Zellen, die durch die Hyperebenen H0, H1, H2 erzeugt werden. Dabei sind in 4 insgesamt 7 Zellen gezeigt, die jeweils zweidimensionale offene Menge definieren.
-
In 4 sind eindimensionale Zellen gezeigt, die eindimensionale relative-offene Mengen definieren.
-
In 5 sind 0-Zellen gezeigt, die null-dimensionale Mengen, d.h., Vertices bzw. Punkte definieren.
-
Mit anderen Worten, wird jedem Element x ∈ Rm1 wird ein Codierung code(x) ∈ {-1,0,1}min der Art zugeordnet, dass an der k-ten Stelle ein -1 eingesetzt wird, im Falle, dass 〈h1,x〉 +b1 1 < 0, eine 0, falls 〈h1,x〉 +b1 1 = 0 und eine +1, falls h1,x 〉 +b1 1 > 0 gilt. In dieser Art und Weise ist vorzugsweise jedes Element des Eingangsraums durch einen Code in eindeutiger Weise definiert.
-
Die Hyperebenen H1 0, H2 0,..., Hm 0 der ersten Schicht erzeugen n-dimensional Zellen (oder auch n-Faces). Hierbei sind die n-Zellen die Zusammenhangskomponenten des Komplements der Vereinigung der Hyperebenen. Bezugnehmend auf 3 bedeutet dies, dass die drei Linien die drei Hyperebenen repräsentieren, wobei eine Vereinigung dieser Linien eine abgeschlossene Menge (vorzugsweise als Mengen von Punkten) definiert. Das Komplement dieser abgeschlossenen Menge ist vorzugsweise eine jeweils offene Menge, die den Eingangsraum in Zusammenhangskomponenten unterteilt (die blauen Flächen F1 2,..., F7 2.
-
Der (relativ offenen Zusammenhangskomponenten) des Randes der n-Faces sind die (n-1)-Zellen (siehe 3 und 4). Das Dreieck F4 2 hat vorzugsweise einen aus drei Seiten bestehenden Rand, der vorzugsweise jeweils durch begrenzende Hyperebenen bzw. Hypermengen definiert wird. Diese Ränder sind vorzugsweise die drei 1-Zellen.
-
Rekursiv werden so die k-Zellen als Rand von k+1-Zellen definiert, bis am Ende 0-Zellen entstehen, diese sind vorzugsweise Punkte des Eingangsraums.
-
Zusammenhang zu neuronalen Netzen:
- In jedem n-Face kann der Ausgang der ersten Schicht des neuronalen ReLu-KNNs als lineare Abbildung aufgefasst werden.
-
Von k-Schicht zu (k+1)-Schicht
Jede weitere Schicht eines ReLu KNNs partitioniert die durch die vorherigen Schichten erzeugten n-Zellen vorzugsweise weiter. Hierbei ist jede n-Zelle vorzugsweise einzeln zu betrachten.
-
Ausgangsschicht bei einer Regression:
- Im Falle einer Regression ist der Partitionierungsprozess beendet. Hierbei ist die letzte Schicht bzw. die Ausgangsschicht vorzugsweise eine lineare Abbildung auf den Ausgängen der vorletzten Schicht. Es erfolgt vorzugsweise keine weitere Partitionierung des Eingangsraums.
-
Ausgangsschicht bei einer Klassifikation:
- In den vorherigen Schritten wurde eine Partitionierung Pk des Eingangsraums in n-Zellen (in der Eingangsschicht), (n-1)-Zellen (in der weiteren Schicht) usw. erzeugt. Die n-Zellen werden auch in der letzten Schicht, der Ausgangsschicht partitioniert. Hierbei werden vorzugsweise alle n-Zellen durchlaufen, wobei folgende Schritte durchgeführt werden können:
- 1. Es wird ein Matrix-Vektor Paar L, l bestimmt, welches einen linearen Zusammenhang in einer n-Zelle beschreibt. Dies erfolgt beispielsweise, indem:
- a. Es wird ein innerer Punkt x ̌ der n-Zelle bestimmt, indem z.B. ein gemeinsamer Mittelpunkt der Vertices der n-Zellen gebildet wird.
- b. Für jede Schicht werden vorzugsweise die aktiven Merkmale bestimmt. Ferner werden vorzugsweise interaktiv lineare Abbildung und Bias-Term bestimmt, indem:
- i. es wird A1x̌ + b1 gebildet.
- ii. Es werden die Zeilen bestimmt, bei denen der Vektor A1x̌ + b1 negativ ist.
- iii. Es wird eine neues Matrix-Vektor-Paar gebildet, wobei der Matrix A1 entspricht, vorzugsweise nur mit dem Unterschied, dass an den Zeilen des Vektors A1x̌ + b1 negativ ist, und die Zeilen von auf null gesetzt werden. In dieser Art und Weise gilt für den gewählten Punkt x
- iv. Nun wird dies analog für die weiteren Schichten des KNNs durchgeführt:
- v. Es wird vorzugsweise ein A2((A1x̌ + b1)) + b2 gebildet, wobei die Zeilen bestimmt werden, in denen der Vektor negativ A2(ϕ(A1x̌ + b1)) + b2 ist.
- vi. Es wird ein neues Matrix-Vektor-Paar gebildet, wobei der Matrix A2 entspricht, nur dass an den Zeilen des Vektors A2(ϕ(A1x̌ + b1)) + b2 negativ ist, und die Zeilen von auf null gesetzt werden.
- vii. In dieser Art und Weise können L und I eingeführt werden, so dass in der untersuchten Zelle gilt:
- 2. Nun wird aus dem Matrix-Vektor-Paar L, l eine neues Matrix-Vektor-Paar (H, d) in folgender Weise bestimmt:
- a. Es wird eine mit Nullen initialisierte Matrix H der Größe (0.5 * AnzahlKlassen * (AnzahlKlassem - 1)) × d, und ein mit Nullen initialisierter Vektor d der Länge 0.5 * AnzahlKlassen * (AnzahlKlassen - 1)) gebildet.
- b. Es werden alle Kombinationen aus zwei Elementen der möglichen Ausgabeklassen durchlaufen.
- i. für zwei Klassen 1,2 gibt es nur eine mögliche Kombination (1,2)
- ii. für drei Klassen 1,2,3 gibt drei mögliche Kombinationen (1,2), (1,3), (2,3)
- iii. für vier Klassen 1,2,3,4 gibt es sechs mögliche Kombinationen (1,2), (1,3), (1,4), (2,3),(2,4), (3,4) usw.
- c. Für jede Kombination i, j werden folgende Differenzen des i-ten Spaltenvektors vom j-ten Spaltenvektor von L gebildet, und analog dazu die Differenz des i-ten Eintrags des Biases vom j-ten Eintrag des Biases.
- 3. Die Zelle wird nun durch diese Matrix H und Bias-Term b weiter partitioniert.
- 4. Durch die Konstruktion wird die durch die Argmax-Funktion bestimmte Klasse des Netzes konstant in jeder Zelle. Die Matrix H und er Biasterm identifizieren diejenigen Stellen des Eingangsraums in denen F(x) zwei Komponenten gleicher Größe besitzt, dies sind die Klassengrenzen des neuronalen Netzes.
-
Somit wurde vorstehend die Partitionierung bzw. Zerlegung des Eingangsraums in Zellen bzw. Faces beschrieben, wobei in jeder Zelle (d.h. jedem n-Face) der Partitionierung bzw. Zerlegung das KNN konstant ist.
-
In den 6 und 7 sind bezüglich der vorstehend beschrieben Partitionierung noch weitere Beispiele gezeigt. Die beispielhaften Partitionierungen des Eingangsraums sind anhand eines 2->10->5->4 Klassifikations-KNNs dargestellt. 6 zeigt eine Partitionierung des Eingangsraums durch die erste Schicht. Dargestellt sind zehn Hyperebenen, die durch die Gewichtsmatrizen und BiasTerme erzeugt sind. 7 zeigt die Partitionierung des Eingangsraums nach der zweiten Schicht. Jede 2-Zellen der Partitionierung in 7 wird durch fünf Hyperebenen der zweiten Schicht weiter partitioniert. Es ist grundsätzlich auch möglich, dass die zweite Schicht keinen (Partitionierungs-) Effekt in einer Zelle hat.
-
8 zeigt ein Flussdiagramm eines Ausführungsbeispiels des vorliegenden Verfahrens. Das Verfahren kann in einer beliebigen Ausführungsform zumindest teilweise durch ein System 1 ausgeführt werden, das hierzu mehrere nicht näher dargestellte Komponenten, beispielsweise eine oder mehrere Bereitstellungseinrichtungen und/oder mindestens eine Auswerte- und Recheneinrichtung umfassen kann. Es versteht sich, dass die Bereitstellungseinrichtung gemeinsam mit der Auswerte- und Recheneinrichtung ausgebildet sein kann, oder von dieser unterschiedlich sein kann. Ferner kann das System eine Speichereinrichtung und/oder eine Ausgabeeinrichtung und/oder eine Anzeigeeinrichtung und/oder eine Eingabeeinrichtung umfassen.
-
Das computerimplementierte Verfahren umfasst erfindungsgemäß mindestens die folgenden Schritte:
- - Bereitstellen (S1) eines, insbesondere trainierten, Ursprungs-KNNs mit einer Netzwerkarchitektur, die eine, insbesondere nichtlineare, verkettete, Funktion repräsentiert, durch die ein d-dimensionaler Eingangsraum auf einen N-dimensionalen Ausgangsraum abbildbar ist, und ferner aufweisend eine Vielzahl von Gewichten;
- - Bereitstellen (S2) eines Trainingsdatensatzes und/oder eines Validierungsdatensatzes;
- - Partitionieren (S3) des d-dimensionalen Eingangsraums in eine Vielzahl von Zellen auf Basis der Netzwerkarchitektur des Ursprungs-KNNs, wobei die einzelnen Zellen jeweils voneinander durch mindestens eine jeweils Gewicht-spezifische Hyperebene und/oder Hyper-Menge trennbar sind;
- - Erzeugen (S4), insbesondere durch Anwendung von Pruning, einer vorbestimmten Anzahl an veränderten KNNs, die jeweils eine im Vergleich zu dem Ursprungs-KNN eine veränderte Netzwerkarchitektur aufweisen, insbesondere in Abhängigkeit der partitionierten Zellen und/oder der Gewicht-spezifischen Hyperebenen und/oder Hyper-Mengen;
- - Partitionieren (S5) des jeweiligen Eingangsraums der vorbestimmten Anzahl an veränderten KNNs jeweils in eine Vielzahl von Zellen auf Basis der jeweiligen Netzwerkarchitektur;
- - Bestimmen (S6) mindestens eines Ähnlichkeitsmaßes mindestens einer Netzwerkarchitektur des jeweiligen, veränderten KNNs zu der Netzwerkarchitektur des Ursprungs-KNN auf Basis eines Vergleichs der Partitionierung des Ursprungs-KNNs mit einer jeweiligen Partitionierung des jeweils veränderten KNNs;
- - Auswählen (S7) mindestens eines veränderten KNNs auf Basis des Ähnlichkeitsmaßes;
- - Nachtrainieren (S8) des ausgewählten, veränderten KNNs auf Basis des bereitgestellten Trainingsdatensatzes und/oder Validieren des ausgewählten, veränderten KNNs auf Basis des bereitgestellten Validierungsdatensatzes; und
- - Bereitstellen (S9) des nachtrainierten, veränderten KNNs.
-
Die 9 bis 12 zeigen das vorliegende Verfahren beispielhaft für eine Partitionierung eines Eingangsraumes durch ein Ursprungs-KNN mit zwei hidden-Layers, und für vier Ausgangsklassen (Netzarchitektur: 2->10->10-4).
-
9 zeigt ein Ursprungs-KNN mit in einer Darstellung eines partitionierten Eingangsraums. Die 10 bis 12 zeigen gegenüber dem Ursprungs-KNN veränderte KNN. Eine vorletzte Schicht des KNNs zerlegt den Eingangsraum vorzugsweise in 2-faces, 1-faces, usw. Um die Trainingsdaten unterscheiden zu können, ist es bevorzugt, die letzte Schicht auch zu betrachten. Die Kreise stellen vorzugsweise die Trainingsdaten des Ursprungs-KNNs dar. Man erkennt die konstanten Klassen der Look-Up-Table. Ferner ist ersichtlich, wie diese Klassen zu den Daten passen.