-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum Komprimieren eines Neuronalen Netzes. Ferner betrifft die Erfindung ein Computerprogramm und ein Datenträgersignal.
-
Moderne Fahrerassistenzsysteme und Fahrfunktionen zum automatisierten Fahren verwenden zunehmend maschinelles Lernen, um unter anderem die Fahrzeugumgebung einschließlich anderer Verkehrsteilnehmer (z.B. Fußgänger und weitere Fahrzeuge) zu erkennen und deren Verhalten zu beschreiben. Hierbei erfolgt die Auswertung von Eingangsdaten (Input) aus verschiedenen Quellen (z.B. Kameras, Radar, Lidar) durch tiefe Neuronale Netze, welche an diesen unter anderem eine pixelweise Klassifikationen vornehmen (semantische Segmentierung) oder Umschließungsrahmen (bounding box) erkannter Objekte erzeugen.
-
In beiden Fällen werden üblicherweise Faltungsnetze (convolutional neural networks, CNN) eingesetzt, welche im Training die Gewichte sogenannter Filter basierend auf dem Input parametrisieren. Die verwendeten Faltungsnetze nutzen hierbei zunehmend eine Vielzahl von Filtern und Schichten (layer), sodass der benötigte Zeit- bzw. Rechenaufwand zur Verarbeitung (Inferenz) von Eingangsdaten zu Ausgaben (Output) zunimmt. Da der Anwendung von Neuronalen Netzen im Bereich des automatischen Fahrens aufgrund der dynamischen Umgebung harte Einschränkungen bezüglich einer benötigten Rechenzeit obliegen und gleichzeitig die in Fahrzeugen einsetzbare Hardware (Rechenkapazitäten) nicht beliebig skaliert werden kann, ist die Größe des Neuronalen Netzes ein limitierender Faktor im Hinblick auf die Einsatzmöglichkeiten in solchen Systemen.
-
Es existieren mehrere Verfahren, um ein Neuronales Netz zu verkleinern bzw. zu komprimieren und hierdurch sowohl einen Speicherbedarf als auch eine benötigte Rechenleistung zu reduzieren.
-
Sogenanntes Prunen (engl. Pruning) versucht die Größe des Neuronalen Netzes durch Entfernen von einzelnen Elementen, das heißt von Neuronen, Parametern bzw. ganzen Filtern etc. zu verringern. Hierbei ist die Wahl der zu entfernenden Elemente von Bedeutung. Unterschiedliche Elemente können die Ausgabe des Netzes unterschiedlich stark beeinflussen.
-
Es gilt also, durch ausgewählte Strategien diejenigen Elemente zu selektieren, deren Entfernung die geringsten Auswirkungen auf die Ausgabe(-qualität) verursacht und dabei zugleich eine möglichst große Anzahl an Elementen zu prunen, um eine signifikante Verkleinerung des Neuronalen Netzes und somit möglichst geringe Inferenz- und Trainingszeiten zu erreichen.
-
Aus der
US 2018/0336468 A1 sind Systeme und Verfahren zum Prunen eines Faltungsnetzes (CNN) bekannt. Das Verfahren umfasst das Extrahieren von Faltungsschichten aus einem trainierten CNN, wobei jede Faltungsschicht eine Kernelmatrix mit mindestens einem in einem entsprechenden Ausgangskanal der Kernelmatrix ausgebildeten Filter enthält, einem Merkmalskartensatz mit einer Merkmalskarte (feature map), die jedem Filter entspricht. Für jeden Kernel wird ein absolutes Kernelgewicht bestimmt und über jeden Filter aufsummiert, um eine Stärke jedes Filters zu bestimmen. Die Stärke jedes Filters wird mit einer Schwelle verglichen und ein Filter wird entfernt, wenn die bestimmte Stärke unterhalb der Schwelle liegt. Eine Merkmalskarte (feature map), die jedem der entfernten Filter entspricht, wird entfernt, um das CNN zu prunen. Das CNN wird erneut trainiert, um ein gepruntes CNN mit weniger Faltungsschichten zu erzeugen.
-
Aus der
US 2018/0114114 A1 sind ein Verfahren, ein computerlesbares Medium und ein System zum Prunen eines Neuronalen Netzes bekannt. Das Verfahren umfasst die Schritte des Empfangens von Gradienten erster Ordnung einer Kostenfunktion relativ zu Schichtparametern für ein trainiertes Neuronales Netz und des Berechnens eines Pruningkriteriums für jeden Schichtparameter basierend auf dem Gradienten erster Ordnung, der dem Schichtparameter entspricht, wobei das Pruningkriterium eine Wichtigkeit jedes Neurons angibt, das in dem trainierten neuronalen Netz enthalten ist und dem Schichtparameter zugeordnet ist. Das Verfahren umfasst die zusätzlichen Schritte des Identifizierens mindestens eines Neurons mit der geringsten Wichtigkeit und des Entfernens des mindestens einen Neurons aus dem trainierten Neuronalen Netz, um ein gepruntes Neuronales Netzwerk zu erzeugen.
-
Als weitere Kompressionsverfahren sind beispielsweise eine Quantisierung, ein Teacher-Student-Learning oder AutoML for Model Compression (AMC) bekannt. Im Rahmen der Quantisierung wird die Anzahl der Bits reduziert, welche nötig sind, um Parameter eines Neuronalen Netzes zu repräsentieren. Es werden also keine Parameter bzw. ganze Filter entfernt, sondern schneller zu verarbeitende Darstellungen der Parameter gewählt und somit eine effizientere Verarbeitung auf einer gegebenen Hardware erreicht. Beim Teacher-Student Learning werden statt einem einzelnen Neuronalen Netz zwei Modelle trainiert. Hierbei fungiert das erste als „Lehrer“ (teacher) und das zweite als „Schüler“ (student). Das Schüler-Modell wird hierbei ebenfalls mittels der Eingangsdaten des Lehrer-Modells trainiert. Dabei gibt das Lehrer-Modell in jedem Schritt Informationen an das Schüler-Modell weiter, sodass sich das Schüler-Modell an das Lehrer-Modell anpassen kann. In der Regel wird für das resultierende Schüler-Modell eine kleinere Architektur des Neuronalen Netzes verwendet. Beim AutoML for Model Compression (AMC) wird ein bereits trainiertes Neuronales Netz durch einen Agenten komprimiert, welcher durch die vorhandenen Schichten iteriert und von jeder Schicht verschiedene Kenngrößen erhält. Basierend auf diesen Kenngrößen gibt der Agent eine Anweisung (action), mit welcher Rate die jeweils betrachtete Schicht zu komprimieren ist. Wenn alle Schichten komprimiert sind, wird eine Auswertung des Modells auf Testdaten durchgeführt und an den Agenten verteilt (reward).
-
Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren und eine Vorrichtung zum Komprimieren eines Neuronalen Netzes zu verbessern.
-
Die Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Patentanspruchs 1, und eine Vorrichtung mit den Merkmalen des Patentanspruchs 9 gelöst. Vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen.
-
Insbesondere wird ein Verfahren zum Komprimieren eines Neuronalen Netzes zur Verfügung gestellt, wobei ein trainiertes Neuronales Netz erhalten wird, wobei mindestens eine Strukturinformation des trainierten Neuronalen Netzes extrahiert oder erhalten wird, wobei das trainierte Neuronale Netz zum Komprimieren in Abhängigkeit der mindestens einen Strukturinformation in Teilmengen unterteilt wird, wobei für jede Teilmenge jeweils ein Kompressionsverfahren in Abhängigkeit von mindestens einer Eigenschaft der jeweiligen Teilmenge gewählt und verwendet wird, und wobei das komprimierte Neuronale Netz bereitgestellt wird.
-
Ferner wird insbesondere eine Vorrichtung zum Komprimieren eines Neuronalen Netzes geschaffen, umfassend eine Recheneinrichtung, wobei die Recheneinrichtung dazu eingerichtet ist, ein trainiertes Neuronales Netz zu erhalten, mindestens eine Strukturinformation des trainierten Neuronalen Netzes zu extrahieren oder zu erhalten, das trainierte Neuronale Netz zum Komprimieren in Abhängigkeit der mindestens einen Strukturinformation in Teilmengen zu unterteilen, und für jede Teilmenge jeweils ein Kompressionsverfahren in Abhängigkeit von mindestens einer Eigenschaft der jeweiligen Teilmenge zu wählen und zu verwenden, und das komprimierte Neuronale Netz bereitzustellen.
-
Das Verfahren und die Vorrichtung ermöglichen es, ein Neuronales Netz verbessert zu komprimieren, da für einzelne Teilmengen des Neuronalen Netzes verschiedene Kompressionsverfahren verwendet werden können. Anders ausgedrückt: Es wird nicht ein Kompressionsverfahren für das gesamte Neuronale Netz verwendet, sondern es kann für jede Teilmenge des Neuronalen Netzes, das heißt für verschiedene Untereinheiten bzw. Unterblöcke etc., jeweils ein hierfür am besten geeignetes Kompressionsverfahren verwendet werden. Hierbei wird insbesondere davon ausgegangen, dass ein trainiertes Neuronales Netz, dessen Teilmengen jeweils lokal optimal komprimiert werden, insgesamt gegenüber einer Kompression des gesamten Neuronalen Netzes mittels nur eines einzigen Kompressionsverfahrens verbessert ist. Dies wird erreicht, indem ein fertig trainiertes Neuronales Netz zum Komprimieren in Abhängigkeit von mindestens einer Strukturinformation in Teilmengen unterteilt wird. Die mindestens eine Strukturinformation wird entweder aus einer Struktur des trainierten Neuronalen Netzes extrahiert oder die mindestens eine Strukturinformation wird bereitgestellt und erhalten. Die mindestens eine Strukturfunktion umfasst insbesondere eine Beschreibung des Neuronalen Netzes im Hinblick auf eine Struktur, das heißt der einzelnen Bestandteile, wie z.B. funktionale Blöcke, Schichten etc., und deren jeweilige Verknüpfung miteinander. Die mindestens eine Strukturinformation beschreibt daher insbesondere einen inneren strukturellen Aufbau des Neuronalen Netzes. Für jede der bestimmten Teilmengen wird, insbesondere aus einem Katalog von mehreren Kompressionsverfahren, ein jeweils zu verwendendes Kompressionsverfahren in Abhängigkeit von mindestens einer Eigenschaft der jeweiligen Teilmenge gewählt und verwendet. Das Komprimieren erfolgt dann insbesondere iterativ für jede der bestimmten Teilmengen. Hierzu wird jeweils eine Teilmenge des Neuronalen Netzes mittels des zugehörig gewählten Kompressionsverfahrens komprimiert, während die anderen Teilmengen des Neuronalen Netzes in dieser Zeit unverändert bleiben bzw. nicht komprimiert werden. Ist diese Teilmenge des Neuronalen Netzes komprimiert, so wird die nächste Teilmenge komprimiert, während die anderen Teilmengen unverändert bleiben. Sind alle Teilmengen mit dem jeweils gewählten Kompressionsverfahren komprimiert, ist das Komprimieren beendet. Das derart komprimierte Neuronale Netz wird anschließend bereitgestellt. Das Bereitstellen umfasst insbesondere ein Ausgeben des komprimierten Neuronalen Netzes, beispielsweise in Form eines die Struktur und die Gewichtungen bzw. Parameter des komprimierten Neuronalen Netzes beschreibenden digitalen Datensatzes. Das Bereitstellen kann auch ein Übermitteln des komprimierten Neuronalen Netzes an ein Steuergerät, beispielsweise eines Fahrzeugs, und/oder ein Hinterlegen des komprimierten Neuronalen Netzes in einem Speicher des Steuergeräts umfassen, sodass das komprimierte Neuronale Netz dort angewendet werden kann.
-
Ein Vorteil des Verfahrens und der Vorrichtung ist, dass eine Kompression des Neuronalen Netzes verbessert werden kann, da für jede der bestimmten Teilmengen des Neuronalen Netzes das am besten geeignete Kompressionsverfahren gewählt und verwendet werden kann. Insbesondere kann hierdurch eine jeweils lokal optimale Kompression des Neuronalen Netzes erreicht werden. Hierdurch lassen sich für das gesamte komprimierte Neuronale Netz schnellere Inferenzzeiten, ein geringerer Bedarf an Speicherplatz und eine Reduktion der benötigten Rechenleistung und Rechenzeit während des Ausführens und in der Folge ein reduzierter Energiebedarf realisieren. Durch das gezielte Auswählen von Kompressionsverfahren für jede der Teilmengen kann insbesondere sichergestellt werden, dass eine im Neuronalen Netz vorhandene Redundanz minimiert wird. Durch die Möglichkeit, jedes der Kompressionsverfahren für die Teilmengen einzeln zu wählen, können beim Komprimieren zusätzlich unterschiedliche Schwerpunkte bzw. Zielsetzungen für jede der Teilmengen gesetzt werden (z.B. verringerte Laufzeit, eine verbesserte Stabilität etc.).
-
Ein Neuronales Netz ist insbesondere ein Künstliches Neuronales Netz, insbesondere ein Faltungsnetz (engl. convolutional neural network). Das Neuronale Netz ist insbesondere auf eine bestimmte Funktion trainiert, beispielsweise eine Wahrnehmung von Fußgängern in erfassten Kamerabildern. Das Neuronale Netz umfasst insbesondere mindestens eine Strukturinformation, die eine Struktur des Neuronalen Netzes beschreibt, und Parameter, die beispielsweise Gewichtungen von Aktivierungsfunktionen einzelner Neuronen oder von Filtern etc., beschreiben. Bei einem trainierten Neuronalen Netz wurden die Parameter insbesondere mit Hilfe eines Trainingsdatensatzes bestimmt.
-
Als Kompressionsverfahren können bekannte Kompressionsverfahren, wie z.B. Quantisierung, Teacher-Student-Learning und AutoML für Model Compression (AMC) verwendet werden.
-
Insbesondere können als Kompressionsverfahren Pruningverfahren verwendet werden. Prunen soll hierbei insbesondere bedeuten, dass die jeweils betrachtete Teilmenge des Neuronalen Netzes in seiner Struktur verändert, insbesondere beschnitten bzw. verkleinert wird. Dies erfolgt durch Entfernen von Elementen und/oder Teilen (z.B. Parameter oder Eingangskanäle etc.) der Elemente aus der Teilmenge des Neuronalen Netzes. Auf Grund der geänderten, insbesondere beschnittenen, Struktur, kann die geprunte Teilmenge des Neuronalen Netzes mit einer geringeren Rechenleistung und mit einem verringerten Speicherbedarf auf Eingangsdaten angewandt werden. Die geprunte Teilmenge des Neuronalen Netzes ist dann in ihrer Struktur komprimiert.
-
Das Auswählen der zu prunenden Elemente der Teilmenge des Neuronalen Netzes kann auf verschiedene Arten erfolgen. In einer einfachen Ausführungsform werden beispielsweise diejenigen Elemente der Teilmenge des Neuronalen Netzes zum Prunen ausgewählt, die den geringsten Einfluss auf ein Ausgangsergebnis der Teilmenge des Neuronalen Netzes und/oder des Neuronalen Netzes aufweisen. Es kann ferner auch vorgesehen sein, dass Elemente ausgewählt werden, an deren Ausgängen Aktivierungen stets unterhalb eines vorgegebenen Schwellenwertes liegen.
-
Die ausgewählten Elemente werden beispielsweise in Form einer Liste bzw. Tabelle oder Datenbank gesammelt und zusammengestellt. In der Liste bzw. Tabelle oder Datenbank ist beispielsweise eine eindeutige Kennzeichnung eines jeweils ausgewählten Elements vermerkt sowie gegebenenfalls weitere Eigenschaften oder Werte, wie beispielsweise eine maximale, minimale und/oder durchschnittliche Aktivierung des betrachteten Elements. Insbesondere umfasst die Liste bzw. die Tabelle oder Datenbank ein jeweils verwendetes Auswahlkriterium bzw. ein zu dem jeweils verwendeten Auswahlkriterium zugehörigen Wert des jeweiligen Elements. Insbesondere können die einzelnen Elemente in der Liste bzw. Tabelle oder Datenbank nach einer Rangfolge sortiert werden. Das Prunen wird dann in Abhängigkeit der Rangfolge durchgeführt. Beispielsweise wird eine vorgegebene Anzahl von obersten Rängen geprunt.
-
Beispielhaft genannt seien die folgenden Pruningverfahren:
- - Fisher-Pruning: Für jedes Filter des Neuronalen Netzes werden die Kosten des Entfernens berechnet und so ein Ranking der Kosten für alle Filter erstellt. Die Kosten werden hierbei definiert als die (gewichtete) Summe aus einer Schätzung für die entstehende Zunahme des Loss (Differenz zwischen inferierten Ausgangswerten und einer Grundwahrheit) und der Reduktion der rechnerischen Komplexität, wobei die Komplexität als Anzahl der benötigten floating point Operationen (FLOPS) beschrieben wird.
- - Magnitude Pruning: Hierbei werden Verknüpfungen mit den kleinsten Gewichtungen entfernt.
- - Similarity Pruning: Hierbei wird eine Rangfolge in Abhängigkeit von Ähnlichkeiten und Zusammenhängen erzeugt. Die Rangfolge begünstigt hierbei Filter, für die keine ähnlichen Filter existieren, gegenüber Filtern, für die ähnliche Filter existieren. Die Ähnlichkeit kann zum Beispiel mittels Jensen-Shannon-Divergenz, linearer Abhängigkeit, Cosinus-Ähnlichkeit oder Methoden der Anomalie-Erkennung bestimmt werden.
-
Insbesondere ist vorgesehen, dass das komprimierte Neuronale Netz nach dem Komprimieren nachtrainiert wird. Hierzu werden dem komprimierten Neuronalen Netz erneut Trainingsdaten zugeführt und das komprimierte Neuronale Netz in an sich bekannter Weise trainiert.
-
Teile der Vorrichtung, insbesondere die Recheneinrichtung, können einzeln oder zusammengefasst als eine Kombination von Hardware und Software ausgebildet sein, beispielsweise als Programmcode, der auf einem Mikrocontroller oder Mikroprozessor ausgeführt wird.
-
Das Verfahren kann als computerimplementiertes Verfahren ausgeführt werden. Insbesondere kann das Verfahren mittels einer Datenverarbeitungseinrichtung ausgeführt werden. Die Datenverarbeitungseinrichtung umfasst insbesondere mindestens eine Recheneinrichtung und mindestens eine Speichereinrichtung.
-
Es wird insbesondere auch ein Computerprogramm geschaffen, umfassend Befehle, die bei der Ausführung des Computerprogramms durch einen Computer diesen veranlassen, die Verfahrensschritte des offenbarten Verfahrens gemäß einer beliebigen der beschriebenen Ausführungsformen auszuführen.
-
Darüber hinaus wird insbesondere auch ein Datenträgersignal geschaffen, das das vorgenannte Computerprogramm überträgt.
-
In einer Ausführungsform ist vorgesehen, dass das Unterteilen und/oder Auswählen des Kompressionsverfahrens zumindest teilweise in Abhängigkeit von einer bereitgestellten Funktionalität der jeweiligen Teilmenge des trainierten Neuronalen Netzes erfolgt. In der Regel weist ein Neuronales Netz mehrere funktionale Bausteine auf, wie beispielsweise Merkmalsextraktoren (Feature-Extraktoren), Fusionsblöcke, Tiefenschätzer, Instanzsegmentierungen, optische Ströme, Regionsvorschläge, Klassifikatoren etc. Durch das Unterteilen und/oder Auswählen des Kompressionsverfahrens in Abhängigkeit von der jeweils von der Teilmenge bereitgestellten Funktionalität, kann das für jeden dieser Bausteine am besten geeignete Kompressionsverfahren verwendet werden. So hat sich zum Beispiel herausgestellt, dass das Verfahren des Fisher-Pruning besonders gut zum Komprimieren von Teilmengen eignet, die eine Funktionalität von Merkmalsextraktoren bereitstellen. Entsprechend wird beispielsweise für alle solche Teilmengen, die Merkmalsextraktoren bereitstellen, in dem trainierten Neuronalen Netz das Kompressionsverfahren des Fisher-Pruning ausgewählt und verwendet. Andere Teilmengen, die andere Funktionalitäten bereitstellen, können hingegen mit anderen Kompressionsverfahren komprimiert werden.
-
In einer Ausführungsform ist vorgesehen, dass das Unterteilen und/oder Auswählen des Kompressionsverfahrens zumindest teilweise in Abhängigkeit von einer Position der jeweiligen Teilmenge innerhalb des trainierten Neuronalen Netzes erfolgt. Beispielsweise können Schichten des Neuronalen Netzes in Abhängigkeit einer Position innerhalb des Neuronalen Netzes zu Teilmengen zusammengefasst werden und anschließend mit einem jeweils gewählten Kompressionsverfahren komprimiert werden. Beispielsweise kann zwischen Anfangsschichten, mittleren Schichten und Ausgangsschichten unterschieden werden.
-
Ein jeweils am besten zum Komprimieren einer betrachteten Teilmenge des Neuronalen Netzes geeignetes Kompressionsverfahren kann insbesondere empirisch ermittelt werden, indem unterschiedliche Kompressionsverfahren im Hinblick auf ein gewünschtes Ergebnis (z.B. eine benötigte Rechenleistung und/oder eine Speicherbedarf und/oder eine funktionale Güte etc.) miteinander verglichen werden. Aus den Vergleichsergebnissen lassen sich dann Abhängigkeiten und Regeln darüber ableiten, welche Kompressionsverfahren besonders für bestimmte Arten und/oder Positionen von Teilmengen geeignet sind und welche nicht.
-
In einer Ausführungsform ist vorgesehen, dass beim Auswählen eines jeweiligen Kompressionsverfahrens für die bestimmten Teilmengen ein heuristisches Verfahren verwendet wird. Die Heuristiken können hierbei beispielsweise auf Grundlage der voranstehend beschriebenen empirischen Versuchsreihen bestimmt werden. Insbesondere wird hierbei durch eine Heuristik ein zu erwartender Effekt eines Kompressionsverfahrens in Bezug auf eine Laufzeit und/oder einen Energiebedarf und/oder einen Speicherbedarf und/oder in Bezug auf eine Position und/oder eine Größe der zu komprimierenden Teilmenge beschrieben. Es kann vorgesehen sein, dass die Heuristiken durch wiederholtes Anwenden des Verfahrens und hierbei gewonnener Erkenntnisse schrittweise angepasst und/oder verbessert werden. Ferner ist es möglich, die Heuristiken zumindest teilweise von menschlichen Experten erstellen und/oder überprüfen und/oder anpassen zu lassen.
-
Es kann vorgesehen sein, dass beim Auswählen der Kompressionsverfahren einzelne Einflussparameter gewichtet berücksichtigt werden. Insbesondere können die Heuristiken mit Hilfe von gewichteten Einflussparametern ein jeweiliges Ergebnis liefern. Dies ist insbesondere von Vorteil, wenn keine eindeutigen Aussagen zu einem am besten geeigneten Kompressionsverfahren vorhanden oder möglich sind. Die jeweils miteinander zu vergleichenden Kompressionsverfahren werden dann beispielsweise auf Grundlage einer Gewichtungsfunktion miteinander über einen jeweiligen Summenwert verglichen und ausgewählt.
-
In einer Ausführungsform ist vorgesehen, dass das jeweilige Kompressionsverfahren in Abhängigkeit von mindestens einem Optimierungskriterium durchgeführt wird. Optimierungskriterien sind hierbei beispielsweise die folgenden: eine funktionale Güte bzw. Genauigkeit des (komprimierten) Neuronalen Netzes, eine benötigte Rechenleistung (der betrachteten Teilmenge) und/oder ein benötigter Speicherplatz (der betrachteten Teilmenge). Es ist hierbei insbesondere vorgesehen, dass die jeweils einzeln durchgeführten Kompressionen der Teilmengen des Neuronalen Netzes jeweils nach dem mindestens einen Optimierungskriterium erfolgt. Insbesondere wird beim Komprimieren einer Teilmenge eine Optimierung nach dem mindestens einen Optimierungskriterium des gesamten Neuronalen Netzes betrachtet. Ist ein Optimierungskriterium beispielsweise eine benötigte Laufzeit, so wird die Teilmenge mittels des zugehörigen Kompressionsverfahrens komprimiert und bei jedem Iterationsschritt wird eine Laufzeit des Neuronalen Netzes bestimmt. Das Kompressionsverfahren wird dann derart ausgeführt bzw. parametriert, dass diese Laufzeit optimiert, insbesondere minimiert, wird.
-
Es kann vorgesehen sein, dass das mindestens eine Optimierungskriterium in Abhängigkeit von mindestens einer Eigenschaft eines Steuergeräts gewählt und/oder festgelegt wird, auf dem nach dem Komprimieren das komprimierte Neuronale Netz ausgeführt werden soll. Die Eigenschaften können beispielsweise eine zur Verfügung stehende Rechenleistung und/oder einen zur Verfügung stehenden Speicherplatz umfassen. Hierbei kann vorgesehen sein, dass diese Eigenschaften vor dem Komprimieren bei dem Steuergerät abgefragt werden.
-
In einer Ausführungsform ist vorgesehen, dass das Auswählen und/oder das Ausführen des jeweiligen Kompressionsverfahrens in Abhängigkeit von mindestens einer geographischen Information und/oder mindestens einer Kontextinformation erfolgt. Hierdurch kann das Kompressionsverfahren beispielsweise an geographische Gegebenheiten, wie z.B. bestimmte Merkmale in der Umgebung, die mittels des Neuronalen Netzes verarbeitet werden, und/oder an einen situativen Kontext, wie beispielsweise einen Umfeldkontext (z.B. Stadt, Autobahn, Landstraße, Parkhaus etc.), angepasst werden.
-
In einer Ausführungsform ist vorgesehen, dass das Komprimieren unter Berücksichtigung von erfassten Sensordaten erfolgt. Hierdurch können Eigenschaften der Sensordaten berücksichtigt werden. Insbesondere können hierdurch Kompressionsverfahren gewählt werden, die für eine bestimmte Art von Sensordaten inhaltlich und/oder strukturell besser geeignet sind.
-
Insbesondere kann vorgesehen sein, bei einem Einsatz des trainierten Neuronalen Netzes in einer Fahrzeugflotte aus Fahrzeugen das Komprimieren des Neuronalen Netzes jeweils nur auf bestimmte Fahrzeuge der Fahrzeugflotte zu beschränken. Hierbei kann insbesondere eine geographisch, beispielsweise regional, beschränkte und/oder angepasste Kompression des Neuronalen Netzes erfolgen. Hierbei wird das Komprimieren beispielsweise im Fahrzeug in Abhängigkeit einer geographischen Position und/oder mindestens einer Kontextinformation durchgeführt. Auf diese Weise können fahrzeugindividuell komprimierte Neuronale Netze bereitgestellt werden.
-
In einer Ausführungsform ist vorgesehen, dass das Neuronale Netz eine Funktion für das automatisierte Fahren eines Fahrzeugs und/oder für eine Fahrerassistenz des Fahrzeugs und/oder für eine Umfelderfassung und/oder Umfeldwahrnehmung bereitstellt.
-
Ein Fahrzeug ist insbesondere ein Kraftfahrzeug. Ein Fahrzeug kann prinzipiell jedoch auch ein anderes Land-, Luft-, Wasser-, Schienen- oder Raumfahrzeug sein.
-
Weitere Merkmale zur Ausgestaltung der Vorrichtung ergeben sich aus der Beschreibung von Ausgestaltungen des Verfahrens. Die Vorteile der Vorrichtung sind hierbei jeweils die gleichen wie bei den Ausgestaltungen des Verfahrens.
-
Nachfolgend wird die Erfindung anhand bevorzugter Ausführungsbeispiele unter Bezugnahme auf die Figuren näher erläutert. Hierbei zeigen:
- 1 eine schematische Darstellung einer Ausführungsform der Vorrichtung zum Komprimieren eines Neuronalen Netzes;
- 2 ein schematisches Flussdiagramm zur Verdeutlichung von Ausführungsformen des Verfahrens zum Komprimieren eines Neuronalen Netzes.
-
In 1 ist eine schematische Darstellung einer Ausführungsform der Vorrichtung 1 zum Komprimieren eines Neuronalen Netzes 10 gezeigt. Die Vorrichtung 1 umfasst eine Recheneinrichtung 2 und eine Speichereinrichtung 3. Die Recheneinrichtung 2 kann auf die Speichereinrichtung 3 zugreifen und Rechenoperationen auf darin hinterlegten Daten ausführen. Die Recheneinrichtung 2 führt das in dieser Offenbarung beschriebene Verfahren aus.
-
Der Recheneinrichtung 2 wird ein trainiertes Neuronales Netz 10 zugeführt, wobei die Recheneinrichtung 2 das trainierte Neuronale Netz 10 erhält. Insbesondere empfängt die Recheneinrichtung 2 das trainierte Neuronale Netz 10 mittels einer hierfür eingerichteten Schnittstelle (nicht gezeigt). Es ist insbesondere vorgesehen, dass das trainierte Neuronale Netz 10 eine Funktion für das automatisierte Fahren eines Fahrzeugs und/oder für eine Fahrerassistenz des Fahrzeugs und/oder für eine Umfelderfassung und/oder Umfeldwahrnehmung bereitstellt.
-
Die Recheneinrichtung 2 extrahiert oder erhält mindestens eine Strukturinformation des trainierten Neuronalen Netzes 10. Diese mindestens eine Strukturinformation umfasst insbesondere eine Information zum strukturellen Aufbau des trainierten Neuronalen Netzes 10. In Abhängigkeit der mindestens einen Strukturinformation wird das trainierte Neuronale Netz 10 in Teilmengen unterteilt.
-
Für jede Teilmenge wählt die Recheneinrichtung 2 jeweils ein Kompressionsverfahren in Abhängigkeit von mindestens einer Eigenschaft der jeweiligen Teilmenge aus. Eine solche Eigenschaft kann beispielsweise eine Funktionalität oder eine Position der Teilmenge innerhalb des Neuronalen Netzes 10 sein. Die jeweilige Teilmenge des Neuronalen Netzes 10 wird mittels des jeweils gewählten Kompressionsverfahrens komprimiert.
-
Das Komprimieren wird nacheinander für alle Teilmengen mittels des jeweils gewählten Kompressionsverfahrens durchgeführt, wobei beim Komprimieren einer Teilmenge die anderen Teilmengen, das heißt sowohl bereits komprimierte als auch noch nicht komprimierte, jeweils unverändert bleiben. Zum Beurteilen eines Effektes des Komprimierens einzelner Teilmengen wird insbesondere in jedem Fall das gesamte Neuronale Netz betrachtet.
-
Sind alle Teilmengen mittels des jeweils gewählten Kompressionsverfahrens komprimiert, so wird das komprimierte Neuronale Netz 11 bereitgestellt, und insbesondere in Form eines digitalen Datenpakets ausgegeben.
-
Es kann vorgesehen sein, dass das komprimierte Neuronale Netz 11, insbesondere als digitales Datenpaket, an ein Steuergerät 51, beispielsweise eines Fahrzeugs, übermittelt wird, und dort in einen Speicher geladen wird. Das Steuergerät 51 kann anschließend das komprimierte Neuronale Netz 11 ausführen und beispielsweise auf erfassten Sensordaten anwenden. Hierbei können aufgrund der Kompression eine benötigte Laufzeit, eine benötigte Rechenleistung und/oder ein Speicherbedarf verringert werden.
-
In 2 ist ein schematisches Flussdiagramm zur Verdeutlichung von Ausführungsformen des Verfahrens zum Komprimieren eines Neuronalen Netzes 10 gezeigt. Es ist vorgesehen, dass das Verfahren in einem Backendserver 20 ausgeführt wird. Der Backendserver 20 ist beispielsweise wie die in der 1 gezeigte Vorrichtung 1 ausgebildet.
-
Dem Backendserver 20 werden ein trainiertes Neuronales Netz 10 und Parameter 12 zugeführt, wobei die Parameter 12 das Komprimieren steuern und beispielsweise mindestens ein Optimierungskriterium 13 umfassen.
-
Es ist hierbei insbesondere vorgesehen, dass das trainierte Neuronale Netz 10 eine Funktion für das automatisierte Fahren eines Fahrzeugs und/oder für eine Fahrerassistenz des Fahrzeugs und/oder für eine Umfelderfassung und/oder Umfeldwahrnehmung bereitstellt.
-
Das Komprimieren wird mittels einer vom Backendserver 20 bereitgestellten Kontrollfunktion 21 gesteuert. Die Kontrollfunktion 21 erhält hierzu die Parameter 12. Die Kontrollfunktion 21 organisiert das Komprimieren des trainierten Neuronalen Netzes 10 und hat hierzu Einblick in sämtliche Zwischenergebnisse. Insbesondere organisiert die Kontrollfunktion 21 das iterative Komprimieren.
-
Mittels einer Splitterfunktion 22 wird das trainierte Neuronale Netz 10 in mehrere Teilmengen I, II, III, IV, V unterteilt. Dies erfolgt in Abhängigkeit von mindestens einer Strukturinformation 14, welche aus dem trainierten Neuronalen Netz 10 extrahiert wird oder auf andere Weise erhalten, beispielsweise separat vom trainierten Neuronalen Netz 10 empfangen, wird.
-
Es kann hierbei vorgesehen sein, dass das Unterteilen zumindest teilweise in Abhängigkeit von einer bereitgestellten Funktionalität der jeweiligen Teilmenge I, II, III, IV, V des trainierten Neuronalen Netzes 10 erfolgt. Eine Funktionalität kann hierbei beispielsweise die folgende sein: Merkmalsextraktoren, Fusionsblöcke, Tiefenschätzer, Instanzsegmentierung, optische Ströme, Regionsvorschläge, Klassifikatoren etc. Für die jeweiligen Funktionalitäten werden dann jeweils zugehörige, diese Funktionalitäten bereitstellende, Teilmengen aus Elementen des Neuronalen Netzes 10 gebildet.
-
Alternativ oder zusätzlich kann vorgesehen sein, dass das Unterteilen zumindest teilweise in Abhängigkeit von einer Position der jeweiligen Teilmenge I, II, III, IV, V innerhalb des trainierten Neuronalen Netzes 10 erfolgt. Die Position definiert beispielsweise, an welcher Stelle einer Verarbeitungskette innerhalb des trainierten Neuronalen Netzes 10 die jeweils betrachtete Teilmenge I, II, III, IV, V sich befindet. In einem einfachen Beispiel können beispielsweise Anfangsschichten, Mittelschichten und Endschichten unterschieden werden.
-
Eine Auswahlfunktion 23 wählt für jede der Teilmengen I, II, III, IV, V jeweils ein Kompressionsverfahren in Abhängigkeit von mindestens einer Eigenschaft der jeweiligen Teilmenge I, II, III, IV, V aus einem Katalog 24 aus. Hierbei ist insbesondere vorgesehen, dass beim Auswählen eines jeweiligen Kompressionsverfahrens für die bestimmten Teilmengen I, II, III, IV, V ein heuristisches Verfahren verwendet wird. Die hierbei verwendeten Heuristiken werden beispielsweise empirisch gewonnen, das heißt mittels gezielter Versuchsreihen, bei denen für verschiedene Teilmengen verschiedene Kompressionsverfahren verwendet werden, deren Effekt anschließend nach bestimmten Zielkriterien ausgewertet werden.
-
Der Katalog 24 von Kompressionsverfahren umfasst insbesondere Pruningverfahren, kann aber auch andere Arten von Kompressionsverfahren umfassen. Als Pruningverfahren seien beispielshaft genannt: Fisher Pruning, Magnitude Pruning und Similarity Pruning. Als sonstige Kompressionsverfahren seien beispielhaft genannt: Quantisierung, Teacher-Student Learning und AutoML for Model Compression (AMC).
-
Sind die jeweiligen Kompressionsverfahren ausgewählt, so werden die Teilmengen I, II, III, IV, V jeweils einzeln mittels zentraler Kompressionsmodule 25 komprimiert. Dies erfolgt insbesondere, indem stets jeweils eine der Teilmengen I, II, III, IV, V komprimiert wird, während die anderen Teilmengen I, II, III, IV, V unverändert bleiben. Um das jeweilige Kompressionsergebnis zu beurteilen, wird das gesamte Neuronale Netz 10 betrachtet. Ist eine Teilmenge I, II, III, IV, V komprimiert, so werden die restlichen Teilmengen I, II, III, IV, V jeweils einzeln komprimiert. Im gezeigten Beispiel könnte die folgende Reihenfolge beim Komprimieren verwendet werden: zuerst Teilmenge I, dann Teilmenge II, dann Teilmenge III, dann Teilmenge IV und zuletzt Teilmenge V.
-
Es kann vorgesehen sein, dass das Komprimieren, insbesondere das Prunen, unter Berücksichtigung von Trainingsdaten 30 erfolgt. Dies ermöglicht es, Eigenschaften der Trainingsdaten 30 bzw. einer zugehörigen Datendomäne zu berücksichtigen.
-
Sind alle Teilmengen I, II, III, IV, V komprimiert, so kann das komprimierte Neuronale Netz 11 mittels einer Finetuningfunktion 26 nachtrainiert werden. Hierzu werden die Trainingsdaten 30 verwendet.
-
Das komprimierte Neuronale Netz 11 wird anschließend bereitgestellt, und insbesondere in Form eines digitalen Datenpakets ausgegeben. Anschließend kann es beispielsweise in einen Speicher eines Steuergeräts geladen werden, sodass eine Funktionalität des komprimierten Neuronalen Netzes 11 von dem Steuergerät bereitgestellt werden kann.
-
Es kann alternativ vorgesehen sein, dass das trainierte Neuronale Netz 10 nach dem Unterteilen und Auswählen der jeweiligen Kompressionsverfahren außerhalb des Backendservers 20, insbesondere in einem Fahrzeug 50 einer Fahrzeugflotte, komprimiert wird. Die jeweils ausgewählten Kompressionsverfahren werden an verteilte Kompressionsmodule 27 übermittelt, beispielsweise über eine Luftschnittstelle (nicht gezeigt). Das Komprimieren wird dann mittels der verteilten Kompressionsmodule 27 durchgeführt. Ein Vorteil hierbei ist, dass Sensordaten 31 aus einer aktuellen Sensordatendomäne, beispielsweise aus einem aktuellen Umfeld oder Kontext (z.B. eines Fahrzeugs), beim Komprimieren berücksichtigt werden können. Beispielsweise kann eine beim Prunen für Aktivierungen von Elementen der Teilmenge I, II, III, IV, V des trainierten Neuronalen Netzes 10 erstellte Rangfolge ausgehend von den Sensordaten 31 erstellt werden, die dem Neuronalen Netz 10 als Eingangsdaten zugeführt werden. Das Komprimieren kann dann gezielt für eine zugehörige Sensordatendomäne erfolgen. Das derart mittels der verteilten Kompressionsmodule 27 komprimierte Neuronale Netz 11 wird anschließend mittels der Finetuningfunktion 26 nachtrainiert und bereitgestellt.
-
Insbesondere ist vorgesehen, dass das jeweilige Kompressionsverfahren in Abhängigkeit von mindestens einem Optimierungskriterium 13 durchgeführt wird. Das mindestens eine Optimierungskriterium 13 kann beispielsweise eines oder mehrere der folgenden umfassen: eine funktionale Güte bzw. Genauigkeit des (komprimierten) Neuronalen Netzes 11, eine benötigte Rechenleistung (der betrachteten Teilmenge I, II, III, IV, V) und/oder ein benötigter Speicherplatz (der betrachteten Teilmenge I, II, III, IV, V). Das trainierte Neuronale Netz 10 kann hierdurch gezielt unter Beachtung vorgegebener Randbedingungen optimiert werden.
-
Ferner kann vorgesehen sein, dass das Auswählen und/oder das Ausführen des jeweiligen Kompressionsverfahrens in Abhängigkeit von mindestens einer geographischen Information 15 und/oder mindestens einer Kontextinformation 16 erfolgt.
-
Es kann vorgesehen sein, dass das mindestens eine Optimierungskriterium 13 in Abhängigkeit von Eigenschaften eines Steuergerätes festgelegt wird, auf dem das komprimierte Neuronale Netz 11 anschließend ausgeführt werden soll. Solche Eigenschaften können beispielsweise eine bereitgestellte Rechenleistung oder ein zur Verfügung stehender Speicherplatz sein.
-
Bezugszeichenliste
-
- 1
- Vorrichtung
- 2
- Recheneinrichtung
- 3
- Speichereinrichtung
- 10
- trainiertes Neuronales Netz
- 11
- komprimiertes Neuronales Netz
- 12
- Parameter
- 13
- Optimierungskriterium
- 14
- Strukturinformation
- 15
- geographische Information
- 16
- Kontextinformation
- 20
- Backendserver
- 21
- Kontrollfunktion
- 22
- Splitterfunktion
- 23
- Auswahlfunktion
- 24
- Katalog von Kompressionsverfahren
- 25
- zentrales Kompressionsmodul
- 26
- Finetuningfunktion
- 27
- verteiltes Kompressionsmodul
- 30
- Trainingsdaten
- 31
- Sensordaten
- 50
- Fahrzeug
- 50
- Steuergerät
- I bis V
- Teilmengen
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 2018/0336468 A1 [0007]
- US 2018/0114114 A1 [0008]