DE102021100404A1 - Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug - Google Patents

Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug Download PDF

Info

Publication number
DE102021100404A1
DE102021100404A1 DE102021100404.7A DE102021100404A DE102021100404A1 DE 102021100404 A1 DE102021100404 A1 DE 102021100404A1 DE 102021100404 A DE102021100404 A DE 102021100404A DE 102021100404 A1 DE102021100404 A1 DE 102021100404A1
Authority
DE
Germany
Prior art keywords
hardware
configuration
network
network configuration
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021100404.7A
Other languages
English (en)
Inventor
Christian Unger
Walter Stechele
Alexander Frickenstein
Manoj Rohit Vemparala
Nael Fasfous
Emanuele Valpreda
Naveen Shankar NAGARAJA
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bayerische Motoren Werke AG filed Critical Bayerische Motoren Werke AG
Priority to DE102021100404.7A priority Critical patent/DE102021100404A1/de
Publication of DE102021100404A1 publication Critical patent/DE102021100404A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/086Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Physiology (AREA)
  • Neurology (AREA)
  • Genetics & Genomics (AREA)
  • Feedback Control In General (AREA)

Abstract

Die Erfindung betrifft ein Verfahren (10) zum Bestimmen einer optimierten komprimierten Netzkonfiguration (14) eines neuronalen Netzes (24), die an eine Hardwarekonfiguration (28) zum Ausführen des neuronalen Netzes (24) angepasst ist. Dabei wird die optimierte komprimierte Netzkonfiguration (14) mittels eines genetischen Algorithmus (12) bestimmt. Unterschiedliche, im Vergleich zu einer vorgegebenen und komprimierten Ausgangskonfiguration komprimierte Netzkonfigurationsvariationen (14) werden erzeugt und unter Verwendung der Hardwarekonfiguration (28) hinsichtlich ihrer Genauigkeit und ihres Ressourcenbedarfs getestet. Die einzelnen Netzkonfigurationsvariationen (14) werden jeweils durch ihre Kombination von Bitlängen (18, bw, ba) von Gewichten und Aktivierungen ihrer Schichten (20, AI-1, A') und ihre Anzahl (22) von Schichten (20, AI-1, AI) charakterisiert. Als die optimierte komprimierte Netzkonfiguration (14) wird dann diejenige der getesteten Netzkonfigurationsvariationen (14) ausgegeben, die wenigstens ein vorgegebenes Optimierungskriterium am besten erfüllt. Die Erfindung betrifft weiter eine entsprechend optimierte Assistenzeinrichtung (104) sowie ein damit ausgestattetes Kraftfahrzeug (100).

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration eines mehrschichtigen künstlichen neuronalen Netzes, die an eine Hardwarekonfiguration einer Hardware oder Einrichtung zum Ausführen des neuronalen Netzes angepasst ist. Die Erfindung betrifft weiter eine entsprechende Assistenzeinrichtung mit einer entsprechend abgestimmten Kombination aus einem künstlichen neuronalen Netz und einer Hardware zu dessen Ausführung. Die Erfindung betrifft auch ein Kraftfahrzeug mit einer solchen Assistenzeinrichtung.
  • In der Vergangenheit hat sich gezeigt, dass künstliche neuronale Netze in vielerlei unterschiedlichen technischen Bereichen und Anwendungen großes Potenzial zur verbesserten oder vereinfachten Umsetzung technischer Lösungen unterschiedlichster Aufgaben bieten können. Künstliche neuronale Netze sind jedoch inhärent speicher- und rechenintensiv, sodass aufgrund entsprechender Beschränkungen der jeweils verfügbaren Berechnungs- oder Datenverarbeitungsressourcen eine Anwendung künstlicher neuronaler Netze beispielsweise in mobilen Anwendungsbereichen nicht oder nur eingeschränkt praktikabel ist. Diesem Problem kann beispielsweise durch Komprimierung der neuronalen Netze begegnet werden, um deren Speicher-, Rechen- und Energiebedarf zu reduzieren. Damit kann jedoch auch eine Verringerung der Leistungsfähigkeit bzw. Genauigkeit des jeweiligen komprimierten neuronalen Netzes im Vergleich zu seiner vollständigen, also unkomprimierten Form einhergehen, was letztlich ebenfalls die Praktikabilität der Nutzung neuronaler Netze einschränken kann.
  • Ein Ansatz, um die Rechenkomplexität eines künstlichen neuronalen Netzes zu reduzieren, ist in der DE 10 2018 128 080 A1 in Form eines Verfahrens zur Quantisierung eines künstlichen neuronalen Netzwerkes beschrieben. Bei dem dort beschriebenen Quantisierungsverfahren soll durch Quantisieren eines künstlichen neuronalen Eingabe-Netzwerkes ein künstliches neuronales Ausgabe-Netzwerk erzeugt werden. Dabei werden zweite Parameter durch Quantisieren erster Parameter des Eingabe-Netzwerkes erhalten. Weiter wird eine Probenverteilung von einem künstlichen neuronalen Zwischen-Netzwerk, in welchem die erhaltenen zweiten Parameter auf das Eingabe-Netzwerk angewendet wurden, erhalten. Schließlich wird eine Fraktionallänge für die erhaltene Probenverteilung durch Quantisieren der erhaltenen Probenverteilung erhalten. Ein derart quantisiertes künstliches neuronales Netzwerk kann es ermöglichen, eine verringerte Anzahl von Rechenressourcen zu verwenden.
  • Ein weiteres Verfahren zum Quantisieren von künstlichen neuronalen Netzen ist in der DE 10 2018 121 905 A1 beschrieben. Dort wird eine Eingangsverteilung des künstlichen neuronalen Netzes in mehrere Segmente aufgeteilt. Durch Approximieren jedes dieser Segmente wird eine approximierte Dichtefunktion generiert. Zum Quantisieren des künstlichen neuronalen Netzes wird dann auf Basis der approximierten Dichtefunktion wenigstens ein Quantisierungsfehler, der wenigstens einer Schrittweite entspricht, bestimmt. Auf Basis dieses Quantisierungsfehlers wird dann eine endgültige Schrittweite zum Quantisieren des künstlichen neuronalen Netzes bestimmt. Auch damit kann gegebenenfalls die Rechenkomplexität bei der Ausführung oder Anwendung des künstlichen neuronalen Netzes reduziert werden.
  • Aufgabe der vorliegenden Erfindung ist es, eine effiziente und effektive Anwendung eines künstlichen neuronalen Netzes zu ermöglichen, insbesondere auf besonders aufwandsarme Weise, also beispielsweise mit besonders geringem Kosten- und/oder Zeitaufwand.
  • Diese Aufgabe wird erfindungsgemäß durch die Gegenstände der unabhängigen Patentansprüche gelöst. Mögliche Ausgestaltungen und Weiterbildungen der vorliegenden Erfindung sind in den abhängigen Patentansprüchen, in der Beschreibung und in den Figuren angegeben.
  • Das erfindungsgemäße Verfahren dient zum Bestimmen einer optimierten komprimierten Netzkonfiguration, also einer Konfiguration eines mehrschichtigen künstlichen neuronalen Netzes. Diese Netzkonfiguration ist dabei an eine Hardwarekonfiguration einer Hardwareeinrichtung zum Ausführen des neuronalen Netzes angepasst, also hinsichtlich der Ausführung auf einer Hardware oder Einrichtung in oder mit dieser Hardwarekonfiguration optimiert. Die Netzkonfiguration kann also an die Hardwarekonfiguration angepasst sein. Wie weiter unten noch näher erläutert wird, kann aber ebenso die Hardwarekonfiguration an die Netzkonfiguration angepasst sein. Mit anderen Worten kann also eine Kombination aus einer Netzkonfiguration des neuronalen Netzes und einer Hardwarekonfiguration zum Ausführen des neuronalen Netzes in dieser Netzkonfiguration, die aufeinander abgestimmt oder aneinander angepasst sind, bestimmt oder ermittelt werden.
  • In dem erfindungsgemäßen Verfahren werden eine, insbesondere vollständige bzw. unkomprimierte, Basis- oder Ausgangskonfiguration des neuronalen Netzes und wenigstens eine Hardwarerandbedingung vorgegeben. Die Ausgangskonfiguration des neuronalen Netzes kann beispielsweise durch ein an sich bekanntes unkomprimiertes Ausgangs- oder Basisnetzwerk, zum Beispiel ResNet oder dergleichen, gegeben sein bzw. ein solches neuronales Netz als Startpunkt für die Bestimmung der optimierten komprimierten Netzkonfiguration charakterisieren. Die wenigstens eine Hardwarerandbedingung begrenzt oder definiert Eigenschaften oder Grenzen der Hardwarekonfiguration, die im jeweiligen konkreten Anwendungsfall beispielsweise maximal oder minimal zulässig sind. Es kann also ein entsprechender Satz von Parametern oder Parameterwerten vorgegeben sein, wodurch Grenzen definiert werden, innerhalb derer die letztendlich zu verwendende Hardwarekonfiguration liegt oder welche die - zumindest als Ausgangspunkt - zum Ausführen des neuronalen Netzes zu verwendende Hardwarekonfiguration charakterisiert oder beschreiben. So kann beispielsweise eine bestimmte bzw. eine maximale Speichergröße, eine bestimmte bzw. maximale und/oder minimale Anzahl von Berechnungseinheiten oder Rechenelementen (englisch: processing elements), ein Energiebedarf für eine oder mehrere unterschiedliche Rechen- oder Datenverarbeitungsabläufe und/oder dergleichen mehr vorgegeben sein. Dadurch kann sichergestellt werden, dass ein letztendliches Ergebnis des erfindungsgemäßen Verfahrens realistische bzw. praktikabel umsetzbare Eigenschaften aufweist.
  • Erfindungsgemäß wird die optimierte komprimierte, also die an die Hardwarekonfiguration angepasste Netzkonfiguration mittels eines vorgegebenen genetischen Algorithmus - auch als evolutionärer Algorithmus bezeichnet - bestimmt. Dabei werden unterschiedliche im Vergleich zu der vorgegebenen Ausgangskonfiguration komprimierte Netzkonfigurationsvariationen erzeugt. In den durch diese Netzkonfigurationsvariationen beschriebenen Netzkonfigurationen kann das entsprechend konfigurierte neuronale Netz also beispielsweise mit weniger Speicher-, Rechen- und/oder Energieaufwand ausgeführt, das heißt zur Inferenz, also zum Verarbeiten von bereitgestellten Eingangsdaten, verwendet werden. Diese unterschiedlichen Netzkonfigurationsvariationen werden unter Verwendung bzw. Anwendung der Hardwarekonfiguration hinsichtlich ihrer Genauigkeit und ihres Ressourcenbedarfs getestet. Dazu kann insbesondere ein jeweiliger Ressourcenbedarf modelliert oder abgeschätzt werden. Ebenso könnte aber ein jeweiliger tatsächlicher Ressourcenbedarf ermittelt werden. Mit anderen Worten wird also bestimmt, überprüft oder zumindest abgeschätzt, welche Genauigkeit das neuronale Netz in der jeweiligen Netzkonfigurationsvariation beim Verarbeiten bereitgestellter Eingangsdaten erzielen kann und wie viele bzw. welche, insbesondere hardwarebezogene, Ressourcen dazu notwendig sind. So kann es beispielsweise sein, dass zwei unterschiedliche Netzkonfigurationsvariationen in der Praxis, also bei dem Verarbeiten realer Daten, zu einer nur minimal bzw. vernachlässigbar unterschiedlichen Genauigkeit führen, dafür jedoch einen signifikant unterschiedlichen Ressourceneinsatz erfordern. Der Ressourcenbedarf kann hier beispielsweise Hardwareressourcen, also Hardwarekomponenten bzw. deren Auslegung, Größe, Kapazität, Leistungsfähigkeit und/oder dergleichen Betreffen. Ebenso kann der Ressourcenbedarf einen zum Ausführen des neuronalen Netzes in der jeweiligen Netzkonfiguration notwendigen Aufwand von - etwa durch eine Rechengeschwindigkeit, Parallelverbeitungsfähigkeiten und/oder Latenz der Hardware bestimmter - Zeit, von Energie und/oder dergleichen mehr angeben oder betreffen. Für praktische Anwendungen, insbesondere mobile Einsätze, wie etwa im Bereich der Kraftfahrzeugtechnik, sind sowohl eine möglichst große Genauigkeit als auch ein möglichst geringer Ressourcenbedarfvon wesentlicher Bedeutung, sodass hierdurch eine entsprechende Optimierung, also beispielsweise ein entsprechender Kompromiss, ermöglicht wird.
  • Die einzelnen Netzkonfigurationsvariationen - bzw. aus Sicht des genetischen Algorithmus deren Genotypen - sind erfindungsgemäß jeweils durch ihre Kombination von jeweiligen Bitlängen von Gewichten und Aktivierungen ihrer Schichten und ihre Anzahl von Schichten charakterisiert. Die Gewichte sind anpassbare Parameter des neuronalen Netzes, während die Aktivierungen hier innerhalb des neuronalen Netzes bei der Datenverarbeitung entstehende Zwischenergebnisse oder Zwischenzustände sein oder beschreiben können. So kann eine Aktivierung beispielsweise ein Output einer bestimmten Schicht sein, der dann direkt oder nach einem Verarbeitungsschritt als Input für die jeweils nächste Schicht des neuronalen Netzes dienen kann. Die Bitlängen, auch als Bit-Weiten bezeichnet, beschreiben hier wie viele Bits zum Repräsentieren der jeweiligen Werte verwendet werden bzw. zur Verfügung stehen, also mit welcher Präzision die entsprechenden Werte angegeben werden. Dies ist relevant, da die Speicherung und Verarbeitung beispielsweise eines 16 Bit-Wertes erheblich mehr Ressourcenaufwand erfordern kann als die Speicherung und Verarbeitung beispielsweise eines 2 Bit-Wertes. Die einzelnen Netzkonfigurationsvariationen können sich also dadurch voneinander unterscheiden, dass die Gewichte und/oder Aktivierungen einer, mehrerer oder aller Schichten in jeweils zwei Netzkonfigurationsvariationen unterschiedlich sind. Dies wird auch als Quantisierung oder Quantisierungslevel bezeichnet, sodass das neuronale Netz in den unterschiedlichen Netzkonfigurationsvariationen also unterschiedlich quantisiert sein kann. Die Bitlängen können dabei schichtindividuell oder schichtspezifisch gegeben sein, sodass eine bestimmte Netzkonfigurationsvariation für unterschiedliche ihrer Schichten unterschiedliche Bitlängen vorsehen kann. Dies ist besonders vorteilhaft, da unterschiedliche Bitlängen an unterschiedlichen Stellen innerhalb des neuronalen Netzes unterschiedlich starken Einfluss auf die Genauigkeit und die Performance, also eine Laufzeit und/oder den Energiebedarf für eine bestimmte Datenverarbeitung haben können.
  • Wenigstens diejenige der entsprechend getesteten Netzkonfigurationsvariationen, die wenigstens ein vorgegebenes Optimierungs- oder Optimalitätskriterium am besten erfüllt, wird dann als die optimierte komprimierte Netzkonfiguration ausgegeben. Das vorgegebene Optimierungskriterium kann insbesondere auf der Genauigkeit und dem Ressourcenbedarf basieren. Dabei kann das vorgegebene Optimierungskriterium beispielsweise ein Einzelkriterium sein, aber insbesondere einen Kompromiss oder eine Gesamtbewertung hinsichtlich mehrerer Einzel- oder Subkriterien angeben oder definieren. Die konkrete Formulierung des Optimierungskriteriums kann individuell für einen jeweiligen Anwendungsfall vorgegeben sein.
  • So kann in einem bestimmten Anwendungsfall, beispielsweise bei einer sicherheitskritischen Applikation, die Genauigkeit von besonders großer Bedeutung sein. In einem solchen Fall kann das Optimierungskriterium beispielsweise vorgeben, dass diejenige Netzkonfigurationsvariation verwendet werden soll, die zwar den geringsten Ressourcenbedarf aufweist unter der Bedingung, dass ihre Genauigkeit mindestens einem vorgegebenen Schwellenwert entspricht bzw. nicht oder um höchstens einen vorgegebenen Wert von der mit der Ausgangskonfiguration erreichbaren Genauigkeit abweicht. In einem anderen Anwendungsfall kann hingegen beispielsweise der Ressourcen- oder Energiebedarf von größerer Bedeutung sein, etwa wenn eine harte Bauraum- oder Energieversorgungsbeschränkung gegeben ist. In einem solchen Fall kann beispielsweise das Optimierungskriterium angeben, dass diejenige Netzkonfigurationsvariation zu verwenden ist, bei der sich die Genauigkeit und der Ressourcenbedarf am ehesten die Waage halten, also ausgeglichen sind.
  • Vorliegend erfolgt die Komprimierung des neuronalen Netzes bzw. der ursprünglich bereitgestellten Ausgangskonfiguration also zumindest primär via Quantisierung. Bei der Quantisierung kann die Bitlänge von Datentypen reduziert werden, was es erlaubt, entsprechend größere Datenblöcke, fachsprachlich auch als Tiles bezeichnet, in einen bestimmten Speicherbereich vorgegebener Größe zu laden. Insbesondere niedriglevelige, also prozessornahe Speicherbereiche, beispielsweise Cache- oder Registerspeicher auf einem Computerchip oder die sind hinsichtlich ihrer Kapazität oftmals stark limitiert und unflexibel, sodass in einer verbesserten Ausnutzung dieser Speicherbereiche sowie in einer Reduzierung von Datentransferoperationen in und aus derartigen Speicherbereichen erhebliches Optimierung- bzw. Einsparpotenzial liegen kann.
  • Die Quantisierung für die Gewichte jeweils einer bestimmten Schicht und die Quantisierung der Aktivierungen dieser Schicht können zusammengenommen jeweils ein Basenpaar in einer Repräsentation der Netzkonfigurationsvariationen für den genetischen Algorithmus bilden. Eine Länge eines jeweiligen Genoms der Netzkonfigurationsvariationen ist dabei durch die Anzahl dieser Basenpaare gegeben, kann also insbesondere der Anzahl der Schichten des neuronalen Netzes gemäß der jeweiligen Netzkonfigurationsvariation entsprechen.
  • Der genetische Algorithmus kann über mehrere Generationen hinweg eine Optimierung der Netzkonfigurationen durchführen. Dabei können innerhalb jeder Generation eine oder mehrere Netzkonfigurationsvariationen ausgewählt werden, die für die nächste Generation verwendet werden - als Individuen einer entsprechenden Nachfolgepopulation dieser Generation und/oder als Ausgangspunkt für Veränderungen, also beispielsweise Mutationen und/oder Kombinationen bzw. Kreuzungen zum Erzeugen neuer Netzkonfigurationsvariationen für die jeweilige Nachfolgepopulation. Durch den genetischen Algorithmus wird dazu eine Fitness der Netzkonfigurationsvariationen auf Basis von deren Genauigkeit und Ressourcenbedarf bzw. entsprechenden Abschätzungen bestimmt. Die erste Generation oder Population der Netzkonfigurationsvariationen kann beispielsweise automatisch aus der Ausgangskonfiguration durch zufällige Veränderungen erzeugt werden. Entsprechende Parameter für die Veränderungen, beispielsweise bezüglich der Anzahl und/oder des Umfangs der Veränderungen im Vergleich zu der Ausgangskonfiguration, können je nach Anwendungsfall oder Anforderungen vorgegeben sein.
  • Angesichts der zunehmenden Komplexität künstlicher neuronaler Netze, die eine Vielzahl von Schichten und Parametern aufweisen können, kann sich allein durch das Zulassen mehrerer unterschiedlicher Bitlängen, also Quantisierungslevels bereits ein derartig großer Such- oder Variationsraum, also eine derartig große Anzahl möglicher unterschiedlicher Netzkonfigurationsvariationen ergeben, dass ein vollständiges Testen sämtlicher Möglichkeiten nicht praktikabel möglich ist. Dieser Problematik wird vorliegend durch die Verwendung des genetischen Algorithmus begegnet. Die Netzkonfiguration wird hier also mittels des genetischen Algorithmus hinsichtlich des vorgegebenen Optimierungskriteriums in Abhängigkeit von der Hardwarekonfiguration bzw. den Hardwarerandbedingungen automatisch oder semiautomatisch optimiert.
  • Die Verwendung eines solchen genetischen Algorithmus hat sich dabei als besonders effektiv herausgestellt, um den relativ großen Such- oder Möglichkeitsraum aller Netzkonfigurationsvariationen abzutasten, nach einem Optimum bzw. einer Paretofront zu durchsuchen. Letzteres kann es erlauben, eine optimale Lösung, also Konfiguration, hinsichtlich eines oder mehrerer vorgegebener Optimierungsziele zu finden. Durch die Funktionsweise des genetischen Algorithmus, bei der sich besonders geeignete Netzkonfigurationsvariationen gegen weniger geeignete durchsetzen bzw. ihre hinsichtlich des wenigstens einen vorgegebenen Optimierungskriteriums oder Optimierungsziels wünschenswerten, also zielführenden Eigenschaften vererben können, kann das tatsächliche Testen von Netzkonfigurationsvariationen besonders zuverlässig auf erfolgversprechende Bereiche des gesamten Suchraums konzentriert, also mit anderen Worten die Paretofront exploriert werden. Dies passiert dabei insbesondere automatisch oder semiautomatisch, sodass das erfindungsgemäße Verfahren dementsprechend besonders einfach erfolgreich anwendbar ist.
  • Wird der genetische Algorithmus, also das entsprechende Optimierungsverfahren über mehrere Generationen hinweg ausgeführt, so kann mit jeder neuen Generation bzw. der Auswahl der fittesten, also hinsichtlich des vorgegebenen Optimierungskriteriums am besten geeigneten Netzkonfigurationsvariationen automatisch ein gewisser Anteil des gesamten Suchraums für nachfolgende Such- oder Optimierungsschritte ausgeschlossen werden. Dies kann das Auffinden einer optimalen oder zumindest relativ guten Netzkonfigurationsvariation erheblich beschleunigen bzw. bei gleichem Aufwand im Vergleich zu bisherigen starren Abtast- oder Samplingmustern verbessern.
  • In einer möglichen Ausgestaltung der vorliegenden Erfindung wird zum Testen der unterschiedlichen Netzkonfigurationsvariationen jeweils ein entsprechend konfiguriertes künstliches neuronales Netz erzeugt. Diese gemäß den unterschiedlichen Netzkonfigurationsvariationen erzeugten neuronalen Netze werden hier auch als Kandidatennetze bezeichnet, da sie Kandidaten für das letztlich optimierte komprimierte neuronale Netz darstellen. Diese Kandidatennetz werden zunächst mit vorgegebenen Trainingsdaten antrainiert, also getuned, bevor sowohl eine jeweils vor Erreichen einer maximalen oder endgültigen Konvergenz erreichte absolute Genauigkeit des jeweiligen Kandidatennetzes als auch dessen Verhalten während des Antrainierens verwendet werden, um zu bewerten, wie gut das jeweilige Kandidatennetz, also die jeweilige Netzkonfigurationsvariation, das vorgegebene Optimierungskriterium erfüllt. Die Kandidatennetze werden hier also nicht vollständig oder abschließend trainiert, also nicht so weit trainiert, bis keine weitere Verbesserung mehr möglich ist. Stattdessen werden die Kandidatennetze nur teilweise trainiert. Es werden also beispielsweise nur einige wenige Trainingsschleifen, also Fehlerrückführungsschleifen durchlaufen bzw. Trainingsdurchläufe oder -iterationen durchgeführt. Das Verhalten der Kandidatennetz bzw. der unterschiedlichen Netzkonfigurationsvariationen während dieses Prozesses kann beispielsweise eine dabei auftretende Rate einer Verbesserung der erreichten Genauigkeit, eine Konvergenzgeschwindigkeit oder dergleichen umfassen. Darauf basierend wird also letztlich eine Güte, das heißt das Maß oder der Grad, in dem das vorgegebene Optimierungskriterium erfüllt wird oder erfüllbar ist, für die unterschiedlichen Netzkonfigurationsvariationen abgeschätzt. Auf diese Weise kann signifikant Trainingszeit eingespart werden. Damit wird eine praktikable Möglichkeit geschaffen, eine Vielzahl unterschiedlicher Netzkonfigurationsvariationen mit vertretbarem Zeit- und Kostenaufwand entsprechend zu testen bzw. zu bewerten. Dies kann in der Praxis wertvoller sein, also letztlich zumindest im Durchschnitt zu einem besseren Endergebnis führen als ein vollständiges Trainieren einer geringeren Anzahl unterschiedlicher Netzkonfigurationsvariationen bzw. entsprechender Kandidatennetze, um deren tatsächliche endgültige Genauigkeit als Bewertungs- oder Auswahlgrundlage verwenden zu können.
  • In einer weiteren möglichen Ausgestaltung der vorliegenden Erfindung wird zum Testen der unterschiedlichen Netzkonfigurationsvariationen die Ausführung des neuronalen Netzes in der jeweiligen Netzkonfiguration bzw. Netzkonfigurationsvariation mittels eines Hardwaremodells simuliert. Das Hardwaremodell modelliert dabei virtuell Hardware in der jeweiligen Hardwarekonfiguration. Das Hardwaremodell ist mit anderen Worten also ein Software- oder Computermodell, das selbst keine physisch real vorhandene Hardware umfasst. Die Verwendung eines solchen virtuellen Hardwaremodells anstelle von physischer realer Hardware kann eine größere Flexibilität bieten. So kann das Hardwaremodell beispielsweise schneller und mit weniger Kosten- und/oder Materialaufwand anpassbar sein als physisch reale Hardware. Ebenso kann die Verwendung eines solchen computergestützten Hardwaremodells gegebenenfalls einen tatsächlichen Ressourcenverbrauch der jeweiligen Netzkonfigurationsvariation, also des jeweiligen Kandidatennetzes, beispielsweise eine tatsächliche Ausnutzung der durch das Hardwaremodell modellierten bzw. simulierten virtuellen Hardware besser oder einfacher messbar machen als dies unter Verwendung physischer realer Hardware möglich wäre. Zudem ermöglicht die Verwendung eines solchen Hardwaremodells die Optimierung der Netzkonfiguration zu einem besonders frühen Zeitpunkt in einer jeweiligen Entwicklungsphase, beispielsweise eines entsprechenden Assistenzsystems, in dem das letztendliche optimierte komprimierte neuronale Netz eingesetzt werden soll. Dies ist der Fall, da so beispielsweise virtuelle, also modellierte Hardware verwendet werden kann, die gegebenenfalls physisch noch gar nicht zur Verfügung steht. Damit steht dann mehr Zeit zum Optimieren und Testen zur Verfügung, was letztlich eine bessere Funktionsweise einer entsprechenden Einrichtung oder eines entsprechenden Systems ermöglichen kann.
  • Eine Kernstruktur des Hardwaremodells kann auf zwei Arten generischer Blöcke basieren, also aus entsprechenden Blöcken oder Modulen - sowie gegebenenfalls entsprechenden Verbindungen - aufgebaut oder zusammengesetzt sein. Dabei kann es sich zum einen um Speicherblöcke und zum anderen um Berechnungsblöcke handeln. Die Speicherblöcke können jeweils einen generischen Datenspeicher repräsentieren, während die Berechnungsblöcke jeweils eine generische Berechnungseinheit, also beispielsweise einen Prozessorkern oder dergleichen, oder eine Matrix mehrere elementarer Berechnungseinheiten repräsentieren können. Wie an anderer Stelle erläutert, können diese Blöcke dabei in unterschiedlichen Abstraktionslevels bzw. Detailgraden definiert sein bzw. modelliert oder simuliert werden. Es kann auch eine Hierarchie, also eine hierarchische Struktur in dem Hardwaremodell vorgesehen sein. Dabei kann ein höchstes oder oberstes Hierarchielevel einen größten Datenspeicher repräsentieren, in dem sämtliche zu verarbeitenden Daten gespeichert sind bzw. werden. Speicherblöcke auf einem niedrigsten oder untersten Hierarchielevel können hingegen eine geringere Kapazität aufweisen, sodass sie beispielsweise nur die für einen oder einige wenige Berechnungsschritte benötigten Daten aufnehmen können, und/oder jeweils mit wenigstens einem Berechnungsblock direkt verknüpft sein.
  • Die Fitness, also die Eignung oder Güte, der einzelnen Netzkonfigurationsvariationen, also der entsprechenden Kandidatennetze, als Grundlage für einen Auswahl- oder Vererbungsmechanismus des genetischen Algorithmus kann hier basierend auf mittels des Hardwaremodells bestimmten Messwerten oder Abschätzungen des Ressourcenbedarfs bzw. der Ressourcennutzung und der jeweils erreichten Genauigkeit gemessen oder bestimmt werden. Diese Werte oder Abschätzungen für den Ressourcenbedarf und die Genauigkeit der unterschiedlichen Netzkonfigurationsvariationen können anhand einer mittels des Hardwaremodells simulierten Verarbeitung vorgegebener Testdaten, also beispielsweise eines vorgegebenen Validierungsdatensatzes aus mit ihrer korrekten Annotierung oder Klassifikation gelabelten Bildern oder dergleichen, berechnet, also bestimmt werden.
  • Der genetische Algorithmus kann eine Einzelzieloptimierung oder eine Mehrfach- oder Multizieloptimierung vorsehen, also ein sogenannter SOGA (englisch: Single Objective Genetic Algorithm) oder ein sogenannter MOGA (englisch: Multi Objective Genetic Algorithm) sein. Dementsprechend können zur Optimierung bzw. Minimierung des Ressourcenbedarfs und zur Optimierung bzw. Maximierung der Genauigkeit separate Kosten- oder Verlustfunktionen vorgegeben sein oder die Ziele eines minimierten Ressourcenbedarfs und einer maximierten Genauigkeit in einer einzigen bzw. gemeinsamen Kosten- oder Verlustfunktion für die Evaluierung oder Bewertung der Fitness kombiniert sein.
  • In einer möglichen Weiterbildung der vorliegenden Erfindung wird die Ausführung des neuronalen Netzes in den unterschiedlichen Netzkonfigurationen auf unterschiedlichen virtuell modellierten Hardwarekonfigurationen simuliert, um eine Kombination aus einer Netzkonfiguration für das neuronale Netz und einer Hardwarekonfiguration für die Hardware, also eine Einrichtung zum Ausführen des neuronalen Netzes in der jeweiligen Netzkonfiguration, die hinsichtlich des vorgegebenen Optimierungskriteriums aufeinander abgestimmt, also aneinander angepasst sind, zu bestimmen. Mit anderen Worten werden also nicht nur unterschiedliche Netzkonfigurationsvariationen, sondern auch unterschiedliche Hardwarekonfigurationen getestet. Eine entsprechende Anpassung oder Veränderung der Hardwarekonfiguration, also das Erzeugen unterschiedlicher Hardwarekonfigurationsvariationen, wird durch die Verwendung des Hardwaremodells, also die Software- oder computerbasierte Modellierung bzw. Simulation der zur Ausführung des neuronalen Netzes verwendeten Hardware im Vergleich zur Verwendung physischer realer Hardware signifikant vereinfacht und beschleunigt. Erst durch die Verwendung des Hardwaremodells, also virtueller Hardware, kann auf praktikable Weise eine Vielzahl unterschiedlicher Hardwarekonfigurationen, insbesondere in Kombination mit der Vielzahl unterschiedlicher Netzkonfigurationsvariationen, getestet werden. Durch die Verwendung bzw. das Testen unterschiedlicher Hardwarekonfigurationen kann eine weitere Optimierung erreicht, also letztendlich beispielsweise der Ressourcenbedarf weiter reduziert und/oder die Genauigkeit beispielsweise bei gleichbleibendem Ressourcenbedarf verbessert werden. Dies ist der Fall, da unterschiedliche Netzkonfigurationsvariationen beispielsweise unterschiedliche Anforderungen oder Bedarfe hinsichtlich einer Speichergröße oder einer Anzahl von Berechnungseinheiten auf unterschiedlichen Hierarchielevels haben können.
  • Das hier beschriebene Vorgehen kann auch als Hardwaremodell-in-der-Schleife bzw. Hardwaremodell-in-the-Loop bezeichnet werden. Dabei kann also die Entwicklung bzw. Optimierung des neuronalen Netzes selbst und der zu dessen Ausführung verwendeten Hardware in Kombination bzw. im Wechselspiel miteinander erfolgen. Wie bereits angedeutet, erlaubt das Hardwaremodell die Komprimierung oder Optimierung von neuronalen Netzen, ohne dass die entsprechende, durch das Hardwaremodell repräsentierte bzw. modellierte Ziel-Hardware bereits physisch real verfügbar oder abschließend definiert oder spezifiziert ist. Ebenso ist auf diese Weise eine Beschreibung auf der Registertransferebene (englisch: Register Transfer Level, RTL) - zumindest initial - nicht erforderlich. Das Hardwaremodell bzw. die Verwendung unterschiedlicher Hardwarekonfigurationen erlaubt die Exploration unterschiedlicher Hardwarebeschleuniger zum Ausführen des neuronalen Netzes, bevor oder ohne dass die physisch reale Hardware zur Verfügung steht oder erforderlich ist. Dies ist besonders nützlich, da während einer Entwicklungs- oder Designphase von neuronalen Netzen, beispielsweise für Applikationen im Kontext des autonomen Fahrens, letztendlich zu verwendende Hardware, also Hardwarebeschleuniger zum Ausführen des neuronalen Netzes, oftmals noch nicht zur Verfügung stehen und/oder entsprechende Compiler noch fehleranfällig sind. Dies macht eine klassische Hardware-in-the-Loop-basierte Optimierung unter Verwendung physischer realer Hardware unmöglich oder zumindest unpraktikabel bzw. ineffizient. Im Gegenzug stellen frühe, also noch nicht abschließend entwickelte oder designte, neuronale Netze oftmals keine hinreichend genaue oder verlässliche Grundlage für die bedarfsgerechte Auslegung von Hardware bzw. Hardwarebeschleunigern zum Ausführen des entsprechenden neuronalen Netzes dar. Hier ist also Optimierungspotenzial gegeben, dass durch die vorliegende Erfindung im Vergleich zu herkömmlichen Entwicklungsverfahren verbessert ausgeschöpft werden.
  • Das Hardwaremodell kann vorliegend verwendet werden, um unterschiedliche Ablaufpläne, auch als Schedulings bezeichnet, und unterschiedliche Zuordnungen - auch als Mappings bezeichnet - von einzelnen Berechnungs- oder Datenverarbeitungsschritten zu individuellen Hardwarekomponenten, insbesondere Berechnungsblöcken oder Berechnungseinheiten, für die Ausführung der unterschiedlichen Netzkonfigurationsvariationen, also der unterschiedlichen Kandidatennetze, zu explodieren und zu testen bzw. zu bewerten. Damit können besonders zuverlässig eine oder mehrere unterschiedliche Hardwarekonfigurationen gefunden werden, die hinsichtlich der Ausnutzung der Hardware, also des Ressourcenbedarfs einer oder mehrerer Netzkonfigurationsvariationen, optimiert sind. Je nach konkreter Formulierung des vorgegebenen Optimierungskriteriums können dabei beispielsweise unterschiedliche Hardwarekonfigurationen bestimmt werden, die beispielsweise hinsichtlich ihrer Speichergröße oder Speicherverteilung, ihrer Art, Anzahl und/oder Verknüpfung von Berechnungseinheiten und/oder ihrem Energiebedarf bei der Verarbeitung vorgegebener Daten variieren können. Eine oder mehrere dieser Hardwarekonfigurationen können als Basis oder Input dem genetischen Algorithmus bereitgestellt werden, der damit die Optimierung der Netzkonfiguration, insbesondere eine sogenannte Mischpräzisions-Quantisierung (englisch: mixed-precision quantization) für das neuronale Netz vornimmt oder bestimmt, um eine Optimierung oder Komprimierung hinsichtlich des vorgegebenen Optimierungskriteriums, also etwa hinsichtlich des Speicher-, Rechen- und/oder Energiebedarfs zu erreichen. Das vorgegebene Optimierungskriterium kann dabei wie bereits angedeutet stets auch ein Ziel oder einen oder mehrere Grenz- oder Schwellenwerte für die, insbesondere im jeweiligen Anwendungsfall aufgabenspezifische, Genauigkeit des neuronalen Netzes umfassen, die bei der hardware- oder ressourcenbedarfsbezogenen Optimierung oder Komprimierung automatisch durch den genetischen Algorithmus berücksichtigt werden können.
  • Um den von dem genetischen Algorithmus zu durchsuchenden oder abzutastenden Such- oder Möglichkeitsraum nicht zu groß werden zu lassen, können jeweils eine oder mehrere Hardwarekonfigurationen manuell ausgewählt oder vorgegeben werden. Dies kann beispielsweise jeweils bei einem Generationenwechsel bzw. Generationensprung oder initial auf jedem der an anderer Stelle genannten Abstraktionslevel, also der unterschiedlichen Detailgerade oder Detaillierungs- bzw. Definitionsstufen, der Hardwarekonfiguration erfolgen. Dies stellt eine praktikable Möglichkeit dar, um die gleichzeitige bzw. aufeinander abgestimmte Optimierung des neuronalen Netzes und der zu dessen Ausführung verwendeten Hardware mit vertretbarem Zeit- und Kostenaufwand umzusetzen.
  • In einer möglichen Weiterbildung der vorliegenden Erfindung wird die Ausführung des neuronalen Netzes in den unterschiedlichen Netzkonfigurationen mittels des Hardwaremodells auf mehreren unterschiedlichen modellierten Abstraktionslevels, insbesondere Abstraktionsniveaus oder Detailgraden der Spezifizierung der Hardware, simuliert. Dabei wird auf jeweils einem gröberen, also dem jeweils allgemeineren oder am weniger detaillierten, Abstraktionslevel mittels des genetischen Algorithmus und des vorgegebenen Optimierungskriteriums wenigstens eine beizubehaltende Netzkonfigurationsvariation bestimmt, die dann - sofern es jeweils ein feineres, also weniger allgemeines bzw. ein detaillierteres Abstraktionslevel gibt - an das nächstfeinere Abstraktionslevel weitergereicht. Mit anderen Worten findet hier die Optimierung der Netzkonfiguration bzw. der Kombination aus Netzkonfiguration und Hardware Kombination in einem iterativen top-down-Ansatz über mehrere Hardware-Abstraktionslevel statt. Die Optimierung bzw. die Anpassung oder Spezifizierung der Hardwarekonfiguration kann somit also schrittweise oder stufenweise bzw. iterativ erfolgen.
  • Da auf höheren Abstraktionslevels die Beschreibung der Hardwarekonfigurationen weniger detailliert und somit auch weniger aufwendig ist, können dort mit besonders geringem Aufwand bereits eine Vielzahl unterschiedlicher Grobstrukturen für die Hardwarekonfiguration praktikabel getestet werden. Auf dem nächst niedrigeren, also detaillierteren Abstraktionslevel kann die Beschreibung der Hardwarekonfigurationen oder Hardwarekonfigurationen zwar detaillierter und somit aufwendiger sein, der Such- oder Möglichkeitsraum der zulässigen Hardwarekonfigurationen ist dort jedoch bereits durch die auf dem vorherigen, also übergeordneten Abstraktionslevel vorgenommene Auswahl eingeschränkt, wodurch der letztendliche Aufwand trotz des dann größeren Detaillierungsgrades begrenzt ist bzw. bleibt. Es kann also auf einem Abstraktionslevel eine Auswahl einer oder mehrerer Hardwarekonfigurationen und Netzkonfigurationsvariationen getroffen werden, die dann als Ausgangspunkt oder Input für das nächstfeinere Abstraktionslevel verwendet werden. Für das jeweilige Auswählen der beizubehaltenden oder zu verwendenden Hardwarekonfiguration oder Hardwarekonfigurationen kann ebenfalls das vorgegebene Optimierungskriterium herangezogen werden.
  • Die unterschiedlichen Abstraktionslevel können auch das neuronale Netz bzw. dessen Netzkonfiguration gelten. Mit anderen Worten kann also auch die Netzkonfiguration schrittweise feiner oder detaillierte spezifiziert, also festgelegt werden.
  • Beispielsweise können auf einem groben Abstraktionslevel Parameter wie etwa eine grundlegende Struktur und/oder Größe, also beispielsweise eine Art, Anordnung und Dimension der Schichten des neuronalen Netzes, eine zum Verarbeiten bestimmter Daten, beispielsweise eines einzelnen Bildes, benötigte Gesamtanzahl von Rechenoperationen und eine - zumindest abgeschätzte - aufgabenspezifische Genauigkeit evaluiert werden.
  • Auf einem mittleren Abstraktionslevel kann beispielsweise die Realisierbarkeit oder das Geeignetsein unterschiedlicher Speicherhierarchien zum Puffern und Verschieben von Daten zwischen verschiedenen Speicherlevels oder Speicherarten evaluiert werden, bevor die Berechnungseinheiten oder Berechnungsblöcke erreicht werden. Auf diesem Abstraktionslevel können beispielsweise Parameter wie bei der Datenverarbeitung auftretende Datentransfervolumen, ein Verhältnis zwischen Berechnungs- und Kommunikationsaufwand (englisch compute-to-communication ratio, CTC ratio), auch als CTC-Verhältnis bezeichnet, und eine Anzahl und/oder Häufigkeit von off-Chip Speicherzugriffen, also Speicherzugriffen auf Speicherbereiche oder Speicherelemente, die physisch außerhalb einer Berechnungseinheit oder eines Prozessorkerns angeordnet sind bzw. angeordnet wären, evaluiert, also für die unterschiedlichen Netz- und/oder Hardwarekonfigurationen bestimmt bzw. getestet werden. Entsprechende Werte können dann als Grundlage dienen, um zu entscheiden, welche Architektur oder Infrastruktur und Bandbreite für eine off-Chip zu on-Chip-Kommunikation, also für eine Kommunikation zwischen chip- oder berechnungseinheiteninternen und chip- oder berechnungseinheitenexternen Bereichen oder Komponenten für jeweilige Anforderungen, also beispielsweise hinsichtlich des vorgegebenen Optimierungskriteriums und/oder sonstiger vorgegebener Randbedingungen, geeignet bzw. optimal sind oder sein können.
  • Auf einem feinen Abstraktionslevel kann eine Berechnungsart der Hardware dimensioniert werden. Hier können also spezifische Werte oder Auslegungen hinsichtlich Quantisierungslevels, einer Anzahl von Berechnungseinheiten, einer Größe von Registerspeichern, Datenverschiebungen, die unterstützt werden, und/oder dergleichen mehr bestimmt, also vorgegeben und/oder ausgewählt werden. Im Rahmen des vorliegenden Optimierungsverfahrens kann auf diesem feinen Abstraktionsniveau beispielsweise eine optimierte Zuordnung zwischen individuellen Datenverarbeitungsaufgaben und dazu verwendeten Hardwareressourcen, beispielsweise basierend auf einem zuvor bestimmten oder ausgewählten Scheduling bzw. einer Scheduling-Technik optimiert werden, um eine möglichst genaue Abschätzung dafür zu ermöglichen oder bereitzustellen, welche Vorteile mittels einer bestimmten Hardwarekonfiguration für eine bestimmte Netzkonfiguration bzw. eine bestimmte Quantisierungsstrategie erreicht werden können.
  • Es hat sich gezeigt, dass eine derartige Aufteilung der Optimierung auf beispielsweise unterschiedliche Abstraktionslevel in der Praxis relativ zuverlässig und mit vertretbarem Aufwand zu einem optimalen oder zumindest ausreichend guten Endergebnis führt.
  • In einer möglichen Weiterbildung der vorliegenden Erfindung wird auf jedem Abstraktionslevel jeweils eine Pareto-Optimierung angewendet, um die wenigstens eine beizubehaltende Netzkonfigurationsvariation bzw. wenigstens eine beizubehaltende Kombination aus einer Netzkonfigurationsvariation und einer Hardwarekonfiguration zu bestimmen. Dazu kann insbesondere ein nicht-dominierend sortierender genetischer Algorithmus, wie etwa NSGA-II (englisch: non-dominated sorting genetic algorithm), verwendet werden. Mit anderen Worten wird jeweils wenigstens eine Konfiguration zur Verwendung oder als Basis für das gegebenenfalls nächstfeinere Abstraktionslevel bzw. ein Endergebnis ausgewählt, die auf der Paretofront sämtlicher getesteter Konfigurationen liegt. Damit kann insbesondere oberhalb des feinsten Abstraktionslevels der Designraum für die letztlich zu bestimmende optimierte Netzkonfiguration bzw. die letztlich zu bestimmende optimierte Kombination aus Netz- und Hardwarekonfiguration, für eine gewisse Spanne von nicht-dominierten Lösungen, also Konfigurationen offengehalten werden, bevor das Design bzw. die jeweilige Konfiguration auf dem nächst feineren Abstraktionslevel weiter detailliert oder spezifiziert wird. Dies kann letztlich zu einem besseren Endergebnis, also einer besseren Optimierung und somit letztlich beispielsweise zu einem geringeren Ressourcenbedarf, einer geringeren Latenz und/oder dergleichen mehr bei zumindest im Wesentlichen gleicher Genauigkeit führen.
  • In einer weiteren möglichen Ausgestaltung der vorliegenden Erfindung sieht die Hardwarekonfiguration wenigstens einen vektorisierten Hardwarebeschleuniger vor oder umfasst einen solchen. Dazu kann als Teil des Hardwaremodells eine ausgerichtete oder abgestimmte (englisch: aligned) SIMD-MAC Einheit (englisch: Single Instruction Multiple Data Multiply Accumulate Operations Unit) modelliert werden, die eine vorgegebene gemeinsame Maximalbitlänge aufweist, die sowohl für die Gewichte als auch die Aktivierungen gilt. Die Verwendung eines vektorisierten Hardwarebeschleunigers kann eine besonders zuverlässige und in vielen Anwendungsfällen geeignete Möglichkeit zum Modellieren geeigneter virtueller Hardware darstellen. Zudem können sich damit Optimierungs- bzw. Beschleunigungsmöglichkeiten durch Datenlevel Parallelisierung auf dem Niveau einzelner Berechnungseinheiten ergeben.
  • In einer weiteren möglichen Ausgestaltung der vorliegenden Erfindung sieht die Hardwarekonfiguration wenigstens einen bit-seriellen Hardwarebeschleuniger vor oder umfasst einen solchen. Dabei können bit-serielle Hardwarebeschleuniger mit unterschiedlichen Berechnungsressourcen und Datenflüssen oder Datenströmen modelliert werden. Derartige bit-seriellen Hardwarebeschleuniger bzw. Berechnungseinheiten können unterschiedliche Quantisierungslevels, also unterschiedliche Bitlängen für die Gewichte und die Aktivierungen vorsehen, also für eine weitere Optimierung ausnutzen. Dies kann insbesondere bei relativ kleinen neuronalen Netzen eine weitere Optimierung ermöglichen, da dort die Datenverarbeitung für die Aktivierungen beispielsweise den Gesamtenergiebedarf zur Ausführung des neuronalen Netzes signifikant dominieren kann.
  • In dem Hardwaremodell kann beispielsweise jede individuelle Berechnungseinheit mit einer vorgegebenen festen Anzahl unabhängiger Lanes zum Durchführen paralleler Berechnungen modelliert werden. Zu verarbeitende Daten können dann aus den Registerspeichern über bw x ba Taktzyklen in die Berechnungseinheiten fließen, wobei bw die Bitlängen der Gewichte und ba die Bitlängen der Aktivierungen angibt.
  • Ein weiterer Aspekt der vorliegenden Erfindung ist eine Assistenzeinrichtung, insbesondere für ein Kraftfahrzeug, die ein künstliches neuronales Netz in einer mittels des erfindungsgemäßen Verfahrens bestimmten Netzkonfiguration und eine Hardware zum Ausführen des neuronalen Netzes umfasst. Dabei ist die Netzkonfiguration hinsichtlich des vorgegebenen Optimierungskriteriums auf die Hardware bzw. deren Hardwarekonfiguration abgestimmt bzw. angepasst. Mit anderen Worten ist die erfindungsgemäße Assistenzeinrichtung also zumindest teilweise mittels des erfindungsgemäßen Verfahrens ausgelegt. Die erfindungsgemäße Assistenzeinrichtung kann je nach Design und Training des neuronalen Netzes für unterschiedliche Aufgaben oder Einsatzzwecke eingerichtet sein bzw. verwendet werden. Dies kann beispielsweise autonome oder teilautonome Fahraufgaben oder die autonome oder teilautonome Steuerung von Fahrzeugfunktionen umfassen. Ebenso sind aber andere Einsatzmöglichkeiten auf anderen technischen Gebieten möglich. Die erfindungsgemäße Assistenzeinrichtung kann auch eine Datenschnittstelle, beispielsweise eine Eingangsschnittstelle und eine Ausgangsschnittstelle, einen Datenspeicher, eine Prozessoreinrichtung und/oder dergleichen mehr umfassen. Insbesondere der Datenspeicher und die Prozessoreinrichtung können die Hardware zum Ausführen des neuronalen Netzes bilden oder Teil davon sein. Das neuronale Netz kann in Form einer Software oder eines Computerprogramms vorliegen, die bzw. das auf dem Datenspeicher hinterlegt ist und mittels der Prozessoreinrichtung ausgeführt werden kann. Die Prozessoreinrichtung kann beispielsweise ein Mikrochip, ein Mikrocontroller, ein Mikroprozessor und/oder dergleichen mehr sein oder einen solchen umfassen. Insbesondere für mobile Anwendungen, beispielsweise im Fahrzeugbereich, kann die erfindungsgemäße Assistenzeinrichtung bzw. deren Hardware als eingebettetes Steuergerät, also als sogenannter embedded Controller, ausgeführt sein. Für einen derartigen Anwendungsfall kann die im Zusammenhang mit dem erfindungsgemäßen Verfahren beschriebene Optimierung der Netzkonfiguration des neuronalen Netzes, insbesondere in Kombination mit der Hardwarekonfiguration der Hardware, besonders vorteilhaft sein, da dort typischerweise sowohl besonders hohe Anforderungen an die Genauigkeit bestehen als auch die verfügbaren Ressourcen stark begrenzt sind.
  • Ein weiterer Aspekt der vorliegenden Erfindung ist ein Kraftfahrzeug, das wenigstens eine erfindungsgemäße Assistenzeinrichtung aufweist. Das erfindungsgemäße Kraftfahrzeug kann ebenso beispielsweise eine Sensorik, etwa eine Kamera oder dergleichen, zum Aufnehmen von Daten aufweisen, die dann der Assistenzeinrichtung bzw. deren neuronalem Netz als Eingangsdaten zugeführt werden können. Die Assistenzeinrichtung kann beispielsweise zum Steuern einer Fahr-, Unterstützungs- oder Warnfunktion des Kraftfahrzeugs eingerichtet oder in eine solche Steuerung eingebunden sein.
  • Weitere Merkmale der Erfindung können sich aus den Ansprüchen, den Figuren und der Figurenbeschreibung ergeben. Die vorstehend in der Beschreibung genannten Merkmale und Merkmalskombinationen sowie die nachfolgend in der Figurenbeschreibung und/oder in den Figuren alleine gezeigten Merkmale und Merkmalskombinationen sind nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar, ohne den Rahmen der Erfindung zu verlassen.
  • Die Zeichnung zeigt in:
    • 1 eine schematische Darstellung zum Illustrieren eines Verfahrens zum Bestimmen einer aufeinander abgestimmten Kombination einer Netzkonfiguration eines künstlichen neuronalen Netzes und einer Hardwarekonfiguration einer Hardwareeinrichtung zum Ausführen des neuronalen Netzes;
    • 2 eine schematische Darstellung zur weiteren Veranschaulichung einer iterativen Natur des Verfahrens;
    • 3 eine schematische Darstellung zur weiteren Veranschaulichung des Verfahrens; und
    • 4 eine schematische Darstellung eines Kraftfahrzeugs mit einer Assistenzeinrichtung, die eine entsprechende Kombination aus einer Hardwareeinrichtung und einem darauf ausführbaren künstlichen neuronalen Netz umfasst.
  • In den Figuren sind gleiche und funktionsgleiche Elemente mit den gleichen Bezugszeichen versehen.
  • Künstliche neuronale Netzwerke, insbesondere faltende neuronale Netzwerke (englisch: convolutional neural networks, CNNs), stellen in vielerlei Bereichen heutzutage den Stand der Technik dar, beispielsweise für das sogenannte Computersehen, also eine Bildverarbeitung bzw. Szenenerkennung basierend auf Bildern durch einen Computer, für die Objekterkennung und Objektlokalisierung, für die semantische Segmentierung und dergleichen mehr. Im Zuge der entsprechenden Entwicklung hat dabei auch die Komplexität und damit der Berechnungs- und Datenverarbeitungsaufwand, also der Ressourcenbedarf zur Anwendung oder Ausführung entsprechender neuronaler Netzwerke signifikant zugenommen. Damit ist eine Nutzung entsprechend komplexer neuronaler Netzwerke, insbesondere für Echtzeitanwendungen, nicht mehr ohne Weiteres in allen Einsatzgebieten möglich. Dementsprechend besteht Interesse und Bedarf an Möglichkeiten und Methoden zum Komprimieren komplexer neuronaler Netzwerke, um deren Ressourcenbedarf, insbesondere bei möglichst geringem Genauigkeitsverlust, zu reduzieren.
  • Eine mögliche Komprimierungstechnik stellt die sogenannte Quantisierung dar. Ein mittels Quantisierung komprimiertes komplexes neuronales Netzwerk kann gegebenenfalls mit ausreichender Geschwindigkeit auf vereinfachter Berechnungshardware ausgeführt werden und kann Vorteile hinsichtlich eines Bedarfs an Bauraum bzw. Chip- oder Platinenfläche, hinsichtlich der zum Betrieb der Hardware notwendigen Energie und/oder hinsichtlich einer Latenz bei der Datenverarbeitung mittels des jeweiligen quantisierten neuronalen Netzwerks mit sich bringen. Zudem können Operanden mit reduzierter Bitlänge eine auf der jeweiligen Hardware verfügbare Bandbreite für Datenbewegungen besonders effizient ausnutzen.
  • Problematisch kann dabei jedoch sein, dass Daten oder Repräsentationen mit einer reduzierten Bitlänge auch eine entsprechend reduzierte Informationskapazität aufweisen, sodass entsprechend feine Details oder Nuance, die beispielsweise im Rahmen eines Trainings des neuronalen Netzes mittels eines Gradienten- oder Fehlerrückführungsverfahrens oder dergleichen gelernt wurden, verloren gehen können.
  • Es stellt also eine signifikante Herausforderung dar, ein geeignetes Quantisierungsschema zu finden, das sämtliche angestrebten - gegebenenfalls miteinander widerstreitenden - Ziele, also den reduzierten Ressourcenbedarf bei gleichzeitig beibehaltener Genauigkeit, erfüllen oder bedienen kann. Erschwerend kommt hinzu, dass bei einem mehrschichtigen, also tiefen neuronalen Netzwerk gegebenenfalls nicht alle Schichten die gleiche numerische Präzision, also die gleiche Bitlänge benötigen, was einen Such- oder Möglichkeitsraum sämtlicher Konfigurationen oder Variationen sehr groß werden lässt. Zwar kann generell die Genauigkeit des jeweiligen neuronalen Netzwerks mehr von einer größeren Bitlänge der früheren, also näher an einem Eingang des jeweiligen neuronalen Netzwerks liegenden Schichten als von einer entsprechend größeren Bitlänge der tieferen, also näher an einem Ausgang des neuronalen Netzwerks liegenden Schichten profitieren. Es ist jedoch im konkreten Einzelfall typischerweise für Menschen nicht ohne Weiteres direkt erkennbar, welche Schichten tatsächlich am meisten von einer größeren Bitlänge profitieren können und bei welchen Schichten eine Reduzierung der Bitlänge besonders effektiv den Ressourcenbedarf ohne signifikante Reduzierung der Genauigkeit verringern kann.
  • Um diesen Herausforderungen zu begegnen, wird vorliegend ein - hier als HW-FlowQ bezeichneter - Ansatz vorgeschlagen, der ein Co-Design eines neuronalen Netzwerks und der Hardware zu dessen Ausführung vorsieht bzw. ermöglicht. Dazu zeigt 1 ein schematisches Ablaufschema 10, das diesen Ansatz veranschaulicht. Als Teil von HW-FlowQ ist ein vorgegebener genetischer Algorithmus 12 vorgesehen. Dieser genetische Algorithmus 12 verarbeitet oder agiert mit jeweils mehreren Individuen 14, die Kandidatennetze mit unterschiedlichen Netzkonfigurationen, also unterschiedliche Netzkonfigurationsvariationen darstellen bzw. beschreiben .Diese Individuen 14 bilden gemeinsam eine jeweilige Population 16 einer bestimmten Generation. Für eine bestimmte Generation n kann die Population 16 ausgedrückt werden als Pn = {p0 n, p1 n, ..., pm n} mit den einzelnen Netzkonfigurationen p0 bis pm. Für die nachfolgende Generation n+1 kann deren Population Pn+1 analog repräsentiert werden.
  • Die einzelnen Individuen 14 sind hier durch individuelle Kombinationen von Bitlängen 18 charakterisiert. Dabei sind für eine bestimmte individuelle Schicht 20 jeweils eine Aktivierungsbitlänge ba und eine Gewichtsbitlänge BW definiert bzw. miteinander kombiniert. Ein Spektrum der möglichen Bitlängen kann als Eingangsparameter vorgegeben sein. Vorliegend können beispielsweise Bitlängen 18 von 2 Bit, 4 Bit, 8 Bit und 16 Bit vorgegeben bzw. zulässig sein. Die Paare aus Bitlängen 18, also jeweils einer Aktivierungsbitlänge ba für die Aktivierung der jeweiligen Schicht 20, und der Gewichtsbitlänge bw, also der Bitlängen 18, mit der Gewichte der jeweiligen Schicht 20 repräsentiert werden, definieren insgesamt eine jeweilige Genomlänge 22 des jeweiligen Individuums 14. Die Genomlänge 22 kann also der Anzahl der Schichten 20 der Individuen 14 entsprechen. Die Anzahl der Schichten 20 kann dabei fest vorgegeben oder ein variierbarer Parameter sein.
  • Die Individuen 14 werden dann in ein jeweiliges entsprechend konfiguriertes Kandidatennetz 24 umgesetzt. Ein solches Kandidatennetz 24 kann im vorliegenden Beispiel ihm als Input bereitgestellte Eingangsdaten 26 verarbeiten und für diese Eingangsdaten 26 als Ergebnis oder Output eine Prädiktion Y ausgeben. Je nach Anwendungsfall kann Y beispielsweise eine Klassifikation oder eine semantische Segmentierung eines jeweiligen Bildes oder dergleichen sein. Das hier beispielhaft schematisch angedeutete Kandidatennetz 24 ist ausschnittweise repräsentiert durch eine Vorgängerschicht AI-1 und eine Nachfolgeschicht A' sowie eine Gewichtsmatrix WI. Bezüglich der Nachfolgeschicht A' bildet ein Output der Vorgängerschicht AI-1, also eine nach der Vorgängerschicht AI-1 vorliegende Merkmalskarte, einen Input, der durch Eingangskanaldimensionen hi, wi, ci beschrieben oder charakterisiert werden kann. Letztere sind dabei mit einer entsprechenden Aktivierungsbitlänge ba I-1 repräsentiert. Darauf wird die Gewichtsmatrix WI angewendet. Dabei verwendete Kernels sind hier durch Kerneldimensionen kh, kw repräsentiert. Zum Speichern bzw. Verarbeiten der Gewichtsmatrix WI kann eine zugehörige Gewichtsbitlänge bw I verwendet werden. Als Ergebnis ergibt sich wiederum eine entsprechende Merkmalskarte der Nachfolgeschicht AI, die hier durch Ausgangskanaldimensionen ho, wo, co repräsentiert ist. Dafür kann ebenfalls eine entsprechende schichtindividuelle Aktivierungsbitlänge ba I verwendet werden.
  • Die Verarbeitung der Eingangsdaten 26 in dem jeweiligen Kandidatennetz 24 erfordert in der Praxis letztendlich dafür geeignete Berechnungshardware. Eine solche Berechnungshardware kann jedoch unterschiedlich gestaltet, also konfiguriert sein, was hier schematisch durch mehrere unterschiedliche Hardwarekonfigurationen 28 repräsentiert ist. Die Berechnungshardware zum Ausführen der Kandidatennetze 24 wird in den unterschiedlichen Hardwarekonfigurationen 28 hier jedoch nicht physisch real bereitgestellt, sondern virtuell modelliert. Mit anderen Worten wird also ein jeweiliges Hardwaremodell 30 verwendet, mittels welchem die Verarbeitung der Eingangsdaten 26 durch das jeweilige Kandidatennetz 24 unter Verwendung der jeweiligen Hardwarekonfiguration 28 virtuell simuliert wird.
  • Das jeweilige Hardwaremodell 30 bzw. dessen jeweilige Hardwarekonfiguration 28 wird dabei in einem top-down Ansatz iterativ über mehrere Hardware-Abstraktionslevel definiert, also bestimmt oder ausgewählt. Konkret sind dies hier ein grobes Abstraktionslevel 32, ein mittleres Abstraktionslevel 34 und ein feines Abstraktionslevel 36. Eine Auswahl oder Spezifizierung der Eigenschaften des Hardwaremodells 30 bzw. der durch dieses modellierten Hardware auf dem groben Abstraktionslevel 32 liefert eine entsprechende Grobspezifikation 38. Entsprechend wird auf dem mittleren Abstraktionslevel 34 eine Mittelspezifikation 40 bestimmt oder ausgewählt. Auf oder in dem feinen Abstraktionslevel 36 wird schließlich eine noch detailliertere Feinspezifikation 42 bestimmt oder ausgewählt.
  • Das Hardwaremodell 30 ist hier ausschnittweise und schematisch repräsentiert durch einen externen Speicher 44, bei dem es sich beispielsweise um einen off-Chip-Speicher wie etwa ein DRAM-Modul oder dergleichen handeln kann, einen Chipspeicher 46, bei dem es sich beispielsweise um einen on-Chip-Speicher wie etwa einen Pufferspeicher oder ein SRAM-Modul handeln kann, und eine Anordnung aus mehreren Berechnungseinheiten 54. Der Übersichtlichkeit halber sind hier nur einige der Berechnungseinheiten 54 explizit gekennzeichnet. Entsprechendes gilt auch für andere Komponenten oder Bauteile in 1.
  • Der Chipspeicher 46 umfasst mehrere Register. Beispielsweise können in einem Register des Chipspeichers 46 Eingangsmerkmalskartendaten 48, die einen Input für die Nachfolgeschicht AI repräsentieren, in einem weiteren Register Gewichtsdaten 50, welche die Gewichtsmatrix WI repräsentieren, und in einem weiteren Register Ausgangsmerkmalskartendaten 52, die einen Output der Nachfolgeschicht AI repräsentieren, abgelegt bzw. zwischengespeichert werden. Analog können übrige bei der Verarbeitung der Eingangsdaten 26 durch das jeweilige Kandidatennetz 24 anfallende Daten in entsprechenden, jeweils dafür vorgesehenen Speichern oder Speicherbereichen gespeichert werden.
  • Die Berechnungseinheiten 54 können unterschiedlich ausgestaltet sein, beispielsweise als Vektorbeschleuniger 56 oder als bit-serieller Beschleuniger 58.
  • Abhängig von den jeweiligen Bitlängen 18, der Struktur des jeweiligen Kandidatennetzes 24 und einer Auslegung der durch das Hardwaremodell 30 modellierten Hardware, also beispielsweise eine Größe der Registerspeicher, einer Anzahl der Berechnungseinheiten 54, einer jeweiligen Anbindung und einer jeweiligen Verteilung von individuellen Rechenoperationen können sich unterschiedliche Auslastungen oder Ausnutzungen der modellierten Hardware sowie beispielsweise unterschiedliche Datenbewegungen oder Datenflüsse ergeben.
  • So sind in dem hier dargestellten Beispiel etwa die für die Eingangsmerkmalskartendaten 48 und die Gewichtsdaten 50 vorgesehenen Speicherbereiche nicht maximal gefüllt, also nicht maximal ausgelastet und auch einige der Berechnungseinheiten 54 werden nicht verwendet, was durch entsprechende Kreuze repräsentiert ist. Dies veranschaulicht, dass in der Verbesserung eines entsprechenden Auslastungs- oder Nutzungsgrades noch Optimierungspotenzial liegt. Dies kann im Rahmen des vorliegend beschriebenen Optimierungsverfahrens bzw. ggf. durch eine andere Hardwarekonfigurationsvariation 28 ausschöpfbar sein.
  • Entsprechende Hardwareabschätzungen φ, welche also beispielsweise den jeweiligen Ressourcenbedarf, eine beispielsweise aufgrund von Datenbewegungen zwischen verschiedenen Speicherbereichen entstehende Latenz, einen Grad oder eine Effizienz der Ausnutzung oder Auslastung der jeweiligen Hardware und/oder dergleichen mehr angeben, sowie eine zumindest abgeschätzte Genauigkeit, die sich gemäß der simulierten Verarbeitung der Eingangsdaten 26 für das jeweilige Kandidatennetz 24 bzw. dessen jeweilige Netzkonfiguration ergibt, werden an den genetischen Algorithmus 12 bereitgestellt. Damit wird also eine Rückkopplungsschleife für die Optimierung sowohl der Netzkonfiguration als auch der Hardwarekonfigurationen 28 realisiert. Der genetische Algorithmus 12 umfasst dazu eine Auswahlstufe 60, in welcher in vorgegebener Weise die Fitness der Individuen 14, für welche die Verarbeitung der Eingangsdaten 26 simuliert wurde, bestimmt bzw. bewertet wird. Dies kann beispielsweise anhand eines vorgegebenen Optimierungskriteriums erfolgen.
  • Der genetische Algorithmus 12 umfasst weiter eine Kreuzungsstufe 62 und eine Mutationsstufe 64, durch die weitere Netzkonfigurationsvariationen für die jeweils nächste Generation erzeugt werden. Damit ergibt sich also basierend auf der oder den ausgewählten fittesten Individuen 14 der jeweiligen Population 16 eine jeweilige Nachfolgepopulation 66. Für diese Nachfolgepopulation 66 werden dann erneut entsprechende Kandidatennetze 24 erzeugt und simuliert. Auf diese Weise kann eine iterative Optimierung realisiert werden.
  • Der hier beschriebene Ansatz basiert also auf der Interaktion zwischen den Individuen 14 der im Laufe des Verfahrens erzeugten Populationen 16, 66, also unterschiedlichen Netzkonfigurationsvariationen, mit dem Hardwaremodell 30 bzw. unterschiedlichen Hardwarekonfigurationsvariationen 28 im Kontext des genetischen Algorithmus 12 zum Durchsuchen oder Abtasten des Such- bzw. Möglichkeitsraumes der Netzkonfigurationen für das jeweils zu optimierende bzw. zu komprimierende neuronale Netz.
  • Ein jeweiliger Genotyp eines der Individuen 14 codiert dabei schichtweise Quantisierungslevels für Gewichte und Aktivierungen des neuronalen Netzes. Die Fitness Pp(φ,ψ) der einzelnen Individuen 14 wird dabei durch Hardwareabschätzungen φ für das jeweilige Hardwaremodell 30 bzw. die jeweilige Hardwarekonfigurationsvariation 28 und einen Genauigkeitsterm ψ, der die Genauigkeit des jeweiligen Kandidatennetzes 24, also des neuronalen Netzes in der jeweiligen Netzkonfiguration, beschreibt, gemessen oder angegeben. Die Genauigkeit, also der Genauigkeitsstern ψ wird dabei jeweils für vorgegebene Daten eines Validierungsdatensatzes, hier beispielsweise für die vorgegebenen Eingangsdaten 26, unter Berücksichtigung von deren tatsächlich korrekten Labeln oder Klassifikationen Y bestimmt. Wenn es sich bei dem genetischen Algorithmus 12 um einen Einzelziel-Algorithmus handelt, können die vorgegebenen Optimierungsziele für φ und ψ in einer einzigen Kostenfunktion für die Evaluierung der Fitness F kombiniert werden. Der genetische Algorithmus 12 kann aber ebenso ein Mehrfachziel-Algorithmus sein, beispielsweise NSGA-II. Damit kann die Problematik umgangen werden, eine geeignete gemeinsame Kostenfunktion zu definieren, während gleichzeitig eine flexible Exploration des gesamten Such- oder Designraumes gefördert und ein diversifizierter Satz von pareto-optimalen Lösungen, also Konfigurationen oder Kombinationen von Konfigurationen auf der Pareto-Front, erhalten oder beibehalten werden kann. Die Mehrfachziel-Fähigkeiten einer solchen Implementierung können also ausgenutzt werden, um in einem einzigen Prozess oder Experiment gleichzeitig eine Pareto-Front zu konstruieren, die sowohl hinsichtlich der Genauigkeit als auch hinsichtlich des Energiebedarfs und der Latenz optimiert. Dabei kann beispielsweise ein Hypervolumen der Pareto-Front in jeder Generation gemessen werden, um eine Konvergenz der Suche bzw. Optimierung zu erhalten.
  • Um eine Lösung für die nächste Generation oder als letztendliches Endergebnis auszuwählen, können verschiedene Auswahl- oder Entscheidungstechniken angewendet werden. Beispielsweise kann ausgehend von den polaren Lösungen, also den schlechtesten Lösungen in jeder betrachteten Dimension der Pareto-Optimierung oder Pareto-Front, ein Referenzpunkt extrapoliert werden. Die basierend auf einer euklidischen Distanz am weitesten davon entfernte Lösung, auch als Hypervolumen-Führer bezeichnet, kann einen ausgeglichenen Kompromiss zwischen den Eigenschaften aller auf der Pareto-Front liegenden Lösungen bieten.
  • Um ein robustes Hardware-Software Co-Design zu ermöglichen, sollten unterschiedlichere Repräsentationen oder Konfigurationen der Ziel-Hardwareplattform basierend auf bzw. während der Designphase, also während der Entwicklung zugänglich sein. Wird der Design- oder Optimierungsprozess dabei ausgehend von einer hochleveligen, also stark abstrahierten Repräsentation der Hardware gestartet, ermöglicht dies eine grobkörnige oder grobmaschige Suche nach Hardware-Software-Kombinationen, also Kombinationen aus einer Netzkonfiguration und einer Hardwarekonfiguration, die für einen jeweiligen Anwendungsfall geeignet sind. Nachdem entsprechend auf dem groben Abstraktionslevel einige Parameter festgelegt wurden, kann dann ein Verfeinerungsschritt für ein detaillierteres Design erfolgen. Dies kann je nach Ausgestaltung oder Anforderungen mehrfach wiederholt werden. Die jeweils feinere Detaillierung oder Spezifizierung erfolgt dabei unter Berücksichtigung der zuvor festgelegten Grobspezifikation 38 und somit also nicht in dem gesamten ursprünglich möglichen Such- oder Möglichkeitsraum. In oder nach jeder iterativen Verfeinerung können mehr und mehr implementierungsspezifische Aspekte berücksichtigt werden.
  • Wird auf einem Abstraktionslevel keine geeignete Lösung gefunden, so kann das Verfahren zu einem höheren, also weniger detaillierteren Abstraktionslevel zurückkehren und dort eine oder mehrere andere Lösungen oder Konfigurationen auswählen.
  • Diese Aspekte sind schematisch in 2 und 3 veranschaulicht. In 2 ist schematisch ein Gesamtsuchraum 68 repräsentiert, der sämtliche möglichen Konfigurationen umfasst. Dieser Gesamtsuchraum 68 kann in einer hier schematisch angedeuteten Optimierungsrichtung 78 ausgehend von dem groben Abstraktionslevel 32 hin zu feineren oder detaillierteren Spezifikationen durchlaufen werden. Nach Verlassen des groben Abstraktionslevels 32 und Eintreten in das mittlere Abstraktionslevel 34 ist die Suche nach einer optimalen Lösung dabei durch die am Ende des groben Abstraktionslevels 32 festgelegte Grobspezifikation 38 beschränkt, was hier in Form eines Grobsuchraum 70, der nur eine Teilmenge des Gesamtsuchraum 68 umfasst, repräsentiert ist. Analog kann im weiteren Verlauf des Verfahrens der Suchraum weiter eingeschränkt werden auf einen mittleren Suchraum 72 und schließlich auf einem Kompilierungs- oder Syntheselevel 74 auf einen Feinsuchraum 76. Dieser Feinsuchraum 76 umfasst nur einen Bruchteil des Gesamtsuchraums 68, wobei aber die Wahrscheinlichkeit dafür, dass eine global optimale Lösung innerhalb des tatsächlich betrachteten Feinsuchraums 76 liegt, durch das hier vorgeschlagene iterative Verfahren gegenüber herkömmlichen Optimierungsansätzen signifikant erhöht werden kann. Zur weiteren Verdeutlichung ist hier schematisch auch eine Abstraktionsrichtung 80 angedeutet, der in Richtung eines gröberen oder höheren Abstraktionslevels gefolgt werden kann, wenn das Verfahren in eine Sackgasse führt, also keine geeignete Lösung innerhalb des jeweiligen Teilsuchraums findet.
  • Wenn letztendlich eine als Ziel vorgegebene Kompressionsrate und/oder eine als Ziel oder Minimum vorgegebene Genauigkeit ψ durch die quantisierungsbasierte Optimierung nicht erreicht werden kann, können beispielsweise initiale Vorgaben oder Parameter, die den Ausgangspunkt für die Optimierung auf dem groben Abstraktionslevel 32 darstellen, angepasst werden. Dies kann beispielsweise die unterstützten, also zulässigen Quantisierungslevels und/oder das als Basis oder Ausgangspunkt verwendete unkomprimierte neuronale Netzwerk bzw. dessen grundlegende Architektur betreffen. Ebenso kann ein anderes quantisierungsbasiertes Trainingsschema zum Trainieren bzw. Antrainieren oder Tunen der Kandidatennetze 24 herangezogen werden.
  • In 3 ist der iterative Optimierungsprozess für die drei Abstraktionslevel 32, 34, 36 nochmals repräsentiert. Auf dem groben Abstraktionslevel 32 kann als entsprechender Grobinput 82 das Ausgangsnetzwerk, also eine unkomprimierte Ausgangsnetzkonfiguration für das zu optimierende bzw. zu komprimierende neuronale Netz und eine Liste der unterstützten, also zulässigen Quantisierungslevels, hier also beispielsweise 2 Bit, 4 Bit, 8 Bit und 16 Bit, vorgegeben werden. Im Rahmen einer Groboptimierung 84 auch auf diesem groben Abstraktionslevel 32 kann beispielsweise hinsichtlich einer Fraktionalisierung der Rechenoperationen und einer Kompressionsrate iterativ mittels des genetischen Algorithmus 12 optimiert werden. Dabei ergibt sich jeweils eine Grobabschätzung φc, die hier beispielsweise die Anzahl der fraktionalen Operationen, einen Gesamtspeicherbedarf und die sich nach der Quantisierung ergebende Genauigkeit ψ umfassen können. Daraus ergibt sich als Groboutput 86 am Ende der Iteration oder Optimierung auf dem groben Abstraktionslevel 32 die jeweilige Fitness Fp((φ,ψ).
  • in einem nächsten Schritt entlang der Optimierungsrichtung 78 dient dann auf dem mittleren Abstraktionslevel 34 als entsprechender Mittelinput 88 eine vorgegebene bzw. ausgewählte Speicherhierarchie oder Speicherstruktur, eine Speichergröße und - partitionierung sowie eine verfügbare off-Chip-Bandbreite. In dem durch diese Parameterwerte begrenzten bzw. aufgespannten Designraum erfolgt dann eine Mitteloptimierung 90, also eine iterative Optimierung auf dem mittleren Abstraktionslevel 34. Dabei werden beispielsweise ein sogenanntes Loop Tiling und Loop Reorderung, also eine Aufteilung und eine Festlegung der Berechnungsreihenfolge von Schleifenoperationen optimiert. Dies führt zu einer letztendlichen optimierten mittleren Abschätzung φm, die beispielsweise das CTC-Verhältnis, off-Chip-Speicherzugriffe und Tile-Größen, also Größen von Datenverarbeitungsblöcken, angibt. Darauf basierend wird als entsprechender Mitteloutput 92 erneut eine jeweilige Fitness Fp(φ,ψ) der untersuchten, also getesteten bzw. simulierten, Konfigurationen bestimmt.
  • Weiter der Optimierungsrichtung 78 folgend wird auf dem feinen Abstraktionslevel 36 als dortiger Feininput 94 eine Berechnungsarchitektur, eine Spezifikation der Berechnungseinheiten 54 und eine Spezifikation der unterstützten Datenflüsse oder Datenströme bereitgestellt. Darauf basierend wird auf dem feinen Abstraktionslevel 36 eine Feinoptimierung durchgeführt. Im Rahmen der Feinoptimierung kann beispielsweise ein sogenanntes Loop Unrolling, ein Interleaving und ein sogenanntes Folding und Mapping, also eine Zuordnung zwischen Rechenoperationen und Berechnungseinheiten 54, optimiert werden. Daraus ergibt sich jeweils eine optimierte Feinabschätzung φf, die etwa eine zur Verarbeitung der Eingangsdaten 26 notwendige Gesamtenergie, eine notwendige Energie pro Datentyp, eine Gesamtlatenz, einen Auslastungsgrad der Hardware und ein detailliertes Scheduling, also einen Ablaufplan für die Ausführung der einzelnen Berechnungen, angeben oder umfassen kann. Darauf basierend wird als entsprechender Feinoutput 98 auch hier durch den genetischen Algorithmus 12 die jeweilige Fitness Fp((φ,ψ) bestimmt.
  • Bei Bedarf kann wie bereits erläutert entlang der Abstraktionsrichtung 80 zu einem höheren oder gröberen Abstraktionslevel zurückgekehrt werden, wenn keine der jeweiligen vorgegebenen Kriterien oder Zielvorgaben entsprechende Lösung gefunden wird, also beispielsweise für alle Konfigurationen oder Konfigurationskombinationen deren Fitness Fp((φ,ψ) unterhalb eines vorgegebenen Schwellenwertes liegt.
  • Hier beschriebene Evaluierung der hardwarebezogenen Fitness Fp der unterschiedlichen Individuen 14 der jeweiligen Population 16, 66 sowie die Kombination aus der Optimierung auf den unterschiedlichen Abstraktionslevels 32, 34, 36 und gegebenenfalls auch die Verwendung des genannten Pareto-Front-basierten Quantisierungsansatzes fördert inhärent einen Design- oder Entwicklungsprozess, der zu Synergien und Optimierungen einer letztendlich resultierenden endgültigen Implementierung sowohl auf Hardware- als auch auf Softwareseite bzw. in deren Kombination führt.
  • Das Finden einer optimierten schichtweisen Quantisierungsstrategie sowohl für die Gewichte als auch die Aktivierungen bezogen auf ein Ziel-Hardwaremodell ist ein komplexes Problem. Günstigerweise kann dafür aufgrund der diskreten Natur des entsprechenden Such- bzw. Lösungsraums eine gradientenfreie Optimierung verwendet werden. Der Such- bzw. Lösungsraum ist allein für die Quantisierungsstrategie von der Größe |q|2L, wobei q der Satz zulässigen Quantisierungslevels und L die Anzahl der Schichten 20 angibt. Ein derartiges Problem kann besonders effektiv durch die Verwendung des genetischen Algorithmus 12 gelöst werden.
  • Eine initiale Ausgangspopulation P0 kann zufällig generiert werden. Die Individuen 14 der unterschiedlichen Populationen P0, 16, 66 können jeweils antrainiert, also mit im Vergleich zu einem vollständigen Training reduziertem Aufwand getuned und evaluiert werden. Basierend auf einer konkreten Konfiguration oder Ausgestaltung des genetischen Algorithmus 12 können die Evaluierung für die Genauigkeit ψ und die hardwarebasierten Abschätzungen φ die Fitness F eines jeden Populationsindividuums, beispielsweise für jedes po ∈ P0 definieren.
  • In einer Selektions- oder Auswahlphase kann die Kardinalität der jeweiligen Populationen P0, 16, 66 begrenzt werden, beispielsweise auf |P| = m, wobei m ein vorgegebener Wert sein kann. In dieser Auswahlphase werden also bestimmte Individuen 14 basierend auf deren Fitness beibehalten. Aus diesen beibehaltenen Individuen 14 können wie beschrieben durch die Kreuzungsstufe 62 jeweilige Nachkommen für die jeweilige Nachfolgepopulation 66 erzeugt werden, welche Allele von ihrem jeweiligen zwei Elternindividuen erben. Durch die Mutationsstufe 64 können in den resultierenden Nachkommen jeweils ein oder mehrere Allele verändert werden, um die jeweilige Nachfolgepopulation 66 mit entsprechend diversifizierten Individuen 14 zu bevölkern. Auch diese Nachfolgepopulation 66 durchläuft dann jeweils die gleichen Phasen für die Fitness-Evaluierung wie zuvor die Population 16 bzw. initial die Ausgangspopulation P0. Dies kann insgesamt für eine vorgegebene Anzahl von Generationen erfolgen.
  • Wie bereits angedeutet können unterschiedliche Arten oder Ausprägungen des genetischen Algorithmus 12 verwendet werden, insbesondere ein SOGA oder ein MOGA. Per Definition kann ein SOGA nur eine einzige Belohnungsfunktion bzw. ein einziges Kriterium maximieren bzw. optimieren. Das vorliegend thematisierte Problem betrifft inhärent jedoch mehrere Ziele, nämlich einerseits die Optimierung der Genauigkeit ψ und andererseits die Optimierung der hardwarebezogenen Abschätzungen φ, also des Ressourcenbedarfs bzw. der Ressourcennutzung. Darauf basierend kann eine zu maximierende Belohnungsfunktionen definiert werden, die diese Aspekte in einem einzigen Fitnesswert F kombiniert, beispielsweise als F p = { ( 1 ψ ' ψ b ) log ( φ ' φ ) f u ¨ r SOGA ψ , φ f u ¨ r MOGA
    Figure DE102021100404A1_0001
  • Dabei bezeichnet φ* die hardwarebasierten Abschätzungen des unkomprimierten Ausgangsnetzes bzw. der entsprechenden unkomprimierten Ausgangsnetzkonfigurationsvariation und ψ* deren Genauigkeit. Die hier vorgeschlagene Funktion Fp schafft einen Kompromiss zwischen einer Verbesserung der hardwarebasierten Abschätzungen durch den Logarithmus-Term und einer Beibehaltung der ursprünglichen Genauigkeit ψ* durch den davorstehenden Bruchterm. b kann dabei ein vorgegebener Parameter sein, der eine Grenze für die Degradierung der Genauigkeit Ψ setzt. Wird die Differenz zwischen der ursprünglichen Genauigkeit ψ* und der - in der Praxis in jedem Fall geringeren - Genauigkeit ψ der jeweiligen Netzkonfigurationsvariation >= b, so wird der Bruchterm negativ, was die Fitness Fp des jeweiligen Individuums p inakzeptabel macht, also zu einem Verwerfen der jeweiligen Netzkonfigurationsvariation führen kann.
  • Im Falle der auf NSGA-II basierenden Optimierung wird die Pareto-Optimalität für jedes Individuum p, 14 bezogen auf die jeweilige Gesamtpopulation P evaluiert.
  • Das Verhalten des hier vorgestellten Verfahrens kann durch eine konkrete Ausgestaltung der Auswahlstufe 60, der Kreuzungsstufe 62 und der Mutationsstufe 64 beeinflusst bzw. angepasst werden. Vorliegend wird vorgeschlagen, eine Einzelpunktkreuzung (englisch: Single-Point Crossover) zu verwenden. Damit können mit relativ großer Wahrscheinlichkeit attraktive Bitlängen-zu-Schicht Encodierungen zweier als ausreichend fit bewerteter Individuen 14 realisiert und Abhängigkeiten zwischen verschiedenen Schichten über mehrere Segmente des neuronalen Netzes hinweg beibehalten werden. Für die Mutationsstufe 64 kann eine Mutationswahrscheinlichkeit Pmut vorgegeben werden, mit der ein einzelnes Allel an einem zufällig ausgewählten Genlocus durch ein anderes, beispielsweise zufällig aus dem Satz aller möglichen Allele ausgewähltes Allel ersetzt wird. Dabei kann stets als Bedingung sichergestellt werden, dass alle derart erzeugten Individuen 14 die bis dahin bereits festgelegten Spezifikationen bzw. Randbedingungen beachten bzw. einhalten, also beispielsweise kein unzulässiges Quantisierungslevel vorsehen, das von der Hardware nicht unterstützt wird.
  • Für SOGA kann durch die Auswahlstufe 60 eine Auswahl oder Selektion nach einem vorgegebenen Turnierschema durchgeführt werden, wobei m Turniere durchgeführt werden können, um sämtliche beizubehaltende Individuen 14 der jeweiligen Generation zu bestimmen.
  • Für NSGA-II kann die entsprechende Selektion durch die Auswahlstufe 60 beispielsweise mittels eines sogenannten Crowd-Comparison-Operators, also basierend auf einem Vergleich zwischen Populationen durchgeführt werden.
  • Das jeweilige Hardwaremodell 30 kann im Kern aus zwei Arten generischer Blöcke, nämlich aus Speicherblöcken und Berechnungsblöcken, aufgebaut sein. Durch die Speicherblöcke kann eine vorgesehene Speicherhierarchie nachgebildet, also modelliert werden, wobei das höchste Hierarchielevel einen größten Speicherbereich repräsentieren kann und Speicherblöcke auf dem untersten Hierarchielevel mit einem der Berechnungsblöcke verbunden sind. Die Berechnungsblöcke können hinsichtlich unterschiedlicher Aspekte spezifiziert sein oder werden, wie etwa den unterstützten Quantisierungslevels, einer Anzahl von Berechnungseinheiten 54 und den räumlichen Dimensionen eines Verbindungs-Arrays. Ebenso kann eine Abbildungs- oder Zuordnungsstrategie und/oder ein Datenfluss oder Datenstrom (englisch: Dataflow) in dem jeweiligen Berechnungsblock spezifiziert sein oder werden. Der jeweilige Datenfluss kann dabei bestimmen, welche Kommunikation zwischen verschiedenen Berechnungseinheiten 54 möglich ist oder ob es eine derartige direkte Kommunikation überhaupt geben kann. Entsprechende Eigenschaften der Berechnungseinheiten 54 eines Berechnungsblocks können einen Zuordnungsmechanismus, der einen Mapping zwischen einzelnen Berechnungsschritten und den dafür zu verwendenden Berechnungseinheiten 54 bestimmen kann, beeinflussen. Beispielsweise kann dieser Zuordnungsmechanismus - auch als Mapper bezeichnet - abhängig von den unterstützten Quantisierungslevels und Berechnungsmodi mehr oder weniger Berechnungsschritte, also einzelne Rechenoperationen, einer einzigen Berechnungseinheit 54 zuweisen.
  • Vorliegend können beispielsweise zwei unterschiedliche Arten von Mischpräzisionsberechnungen angewendet werden: vektorisiert und bit-seriellen. Ebenso kann der hier beschriebene HW-FlowQ-Ansatz voneinander unabhängige Schreib- und Lesekosten, also Energie- und/oder Zeitaufwände, für eine off-Chip-Kommunikation, unterschiedliche Speicherblöcke, die Register der Berechnungseinheiten 54 in dem oder den Berechnungsblöcken und/oder dergleichen mehr unterstützen.
  • Der Zuordnungsmechanismus bzw. Mapper kann einen Satz von Regeln für zulässige Datenbewegungen für jeden Datentyp auf dem Array der Berechnungseinheiten 54 basierend auf einem ausgewählten Datenfluss kompilieren. Diese Regeln definieren dabei jedoch nicht direkt eine optimale Zuordnungs- bzw. Mappingstrategie. Der Mapper kann die möglichen Lösungen, also mögliche Zuordnungsstrategien, welche die Regeln respektieren, explorieren und evaluieren, um ein optimales Scheduling hinsichtlich Energiebedarf, Latenz oder einem Kompromiss daraus zu finden. Ebenso können Speicher-Legalitätsprüfungen durchgeführt werden, um praktikable Lösungen angesichts der jeweils gegebenen Größen der Register in den Berechnungseinheiten 54 zu finden. Abhängig von dem jeweiligen Hardwaremodell 30 können die skalaren oder SIMD Vektorbeschleuniger 56 in den Berechnungseinheiten 54 word-aligend sein, wodurch bestimmte Quantisierungslevels mehr oder weniger attraktiv bzw. effizient sein können als andere. Werden hingegen bit-serieller Beschleuniger 58 verwendet, kann eine relative Verbesserung gegebenenfalls für jedes Quantisierungslevel für die Gewichte und/oder Aktivierungen auf dem jeweiligen Berechnungsblock erreicht werden. Dies ist der Fall, da das Word-Alignment auf dem jeweiligen Berechnungsblock unterschiedlich sein kann von dem Word-Alignment außerhalb des Berechnungsblocks liegender, also hierarchisch übergeordneter Speicherblöcke und off-Chip-Verbindungen.
  • Bei der Verarbeitung der Eingangsdaten 26 auftretende Partialsummen können nach jeder Akkumulation bis zu einem Maximum von 2b+ci wachsen. Das Hardwaremodell 30 kann Instanzen der größten möglichen Partialsumme gemäß des größten durch den jeweiligen Beschleuniger unterstützten Quantisierungslevels bmax berücksichtigen. Eine Vergrößerung eines Vektordurchsatzes durch Quantisierung der Gewichte und Aktivierungen kann durch die maximal vorhersehbare Größe des für Partialsummen vorgesehenen Chipspeichers 46 auf der jeweiligen Berechnungseinheiten 54 begrenzt sein. Nach einer vollständigen Akkumulation kann eine Beschleunigung dadurch erreicht werden, dass Ausgabepixel auf dem jeweiligen Quantisierungslevel ba I des Inputs der jeweiligen Nachfolgeschicht AI in den jeweils hierarchisch übergeordneten Speicherbereich zurückgeschrieben werden.
  • Um die Vorteile bei der Berechnung von Mischpräzisionsnetzen mit relativ kleinen Bitlängen 18 abzuschätzen, können wie bereits beschrieben vektorisierte und bit-serielle Berechnungselemente modelliert werden. Eine entsprechende Auswahl kann dabei direkten Einfluss auf das Scheduling haben, da dadurch beeinflusst wird, wie viele Berechnungs- oder Taktzyklen für eine bestimmte Rechenoperationen benötigt werden und wie viele einzigartige Berechnungen derselben Hardware bei unterschiedlichen Bitlängen ba und bw für Aktivierungen und Gewichte zugewiesen werden können.
  • Für Vektorbeschleuniger 56 kann hier jeweils eine ausgerichtete SIMD-MAC Einheit mit einer maximalen Bitlänge bmax sowohl für Gewichte als auch für Aktivierungen modelliert werden. Eine Beschleunigung durch Datenlevel-Parallelisierung auf dem Niveau der Berechnungseinheiten 54 kann damit bei bestimmten diskreten Bitlängen-Stufen auftreten gemäß V s p e e d u p = | b m a x max ( b w , b a ) |
    Figure DE102021100404A1_0002
    Vspeedup ist dabei der an dem größeren der beiden Operanden bw und ba ausgerichtete Vektorisierungsgrad. Dies erlaubt nicht nur mehr parallele Berechnungen während eines bestimmten Berechnungs- oder Taktzyklus, sondern kann auch die Kosten für Speicherzugriffe auf Registerebene reduzieren, die dann in einer einzigen diese Operation auf Vspeedu Daten zugreifen würden, die in das jeweilige SIMD-Register mit Bitlänge bmax passen.
  • Bit-serielle Beschleuniger 58 können hingegen jedes individuelle Quantisierungslevel für beide Operanden bw und ba flexibel ausnutzen. Eine Performanceverbesserung der bit-seriellen Beschleuniger 58 bezüglich einer Berechnung mit maximaler Bitlängen bmax kann repräsentiert werden als B S s p e e d u p = b m a x 2 b w x b a
    Figure DE102021100404A1_0003
  • Der hier vorgestellte HW-FlowQ-Ansatz kann Optima in einem diskreten Such- oder Möglichkeitsraum unterschiedlicher Konfigurationen auffinden und dabei die jeweils aufgabenbezogene Genauigkeit eines zugrundeliegenden, also zu optimierenden neuronalen Netzes bei gleichzeitiger Minimierung hardwarebezogener Kosten oder Aufwände maximieren. HW-FlowQ kann neuronale Netze optimieren durch Finden geeigneter Quantisierungsstrategien basierend auf High Fidelity Hardwaremodel-in-the-Loop Betrachtungen. Unterschiedliche Abstraktionslevels und Design- bzw. Spezifizierungsphasen können dabei systematisch Hyperparameter sowohl für das jeweilige neuronale Netz als auch ein Hardwaredesign einschränken, wodurch entsprechende Co-Design-Synergien ausgenutzt werden können. In einer experimentellen Anwendung konnte beispielsweise ausgehend von ResNet56 bei vernachlässigbarer Differenz der Vorhersagegenauigkeiten der Energiebedarf um 20 % und die Latenz bei der Datenverarbeitung um 45 % reduziert werden im Vergleich zu herkömmlichen Mischpräzisions-Such- bzw. Optimierungsmethoden.
  • Dabei wird in einem top-down Ansatz der initial relativ große Designraum für das Hardwaredesign und Mischpräzisions-Quantisierungen für das neuronale Netz iterativ eingegrenzt durch Verwendung einer Hardwaremodellierung bzw. Hardwaresimulation auf unterschiedlichen Hardware-Abstraktionslevels und die Verwendung des genetischen Algorithmus 12. HW-FlowQ bietet dabei die Flexibilität, einen Einfluss unterschiedlicher Quantisierungen und hardwarespezifischer Designparameter zu bestimmen, ohne dass während der entsprechenden Entwicklungsphase eine endgültige Hardwareplattform bereits physische real finalisiert sein und zur Verfügung stehen muss.
  • HW-FlowQ stellt letztendlich also ein praktikables Verfahren dar, um eine aufeinander abgestimmte Kombination eines neuronalen Netzes und einer Hardware zu dessen Ausführung zu bestimmen bzw. zu entwickeln. Eine derart bestimmte optimierte Kombination kann insbesondere einen im Vergleich zu herkömmlichen auf neuronalen Netzen basierenden Einrichtungen reduzierten Ressourcenbedarf aufweisen und damit insbesondere für mobile Anwendungen geeignet sein. Beispielhaft oder repräsentativ dafür zeigt 4 eine schematische Darstellung eines Kraftfahrzeugs 100. Dieses Kraftfahrzeug 100 weist hier eine Sensorik 102 auf, bei der es sich beispielsweise um eine Kamera zum Aufnehmen von Bildern einer jeweiligen Umgebung des Kraftfahrzeugs 100 handeln kann. Weiter weist das Kraftfahrzeug 100 ein Assistenzsystem 104 auf, das beispielsweise zur Steuerung einer Fahrzeugkomponente 106 des Kraftfahrzeugs 100 eingerichtet sein kann.
  • Das Assistenzsystem 104 umfasst hier eine Eingangsschnittstelle 108 zum Erfassen von durch die Sensorik 102 aufgenommenen bzw. bereitgestellten Sensordaten, beispielsweise Umgebungs- oder Kamerabildern. Weiter umfasst das Assistenzsystem 104 hier einen Datenspeicher 110, in dem vorliegend ein Betriebsprogramm 112 gespeichert ist. Dieses Betriebsprogramm 112 umfasst dabei ein tiefes künstliches neuronales Netz, dessen Konfiguration wie beschrieben mittels des HW-FlowQ-Ansatzes für die Hardware des Assistenzsystems 104 optimiert ist. Zum Ausführen dieses Betriebsprogramms 112 umfasst das Assistenzsystem 104 auch einen Prozessor 114. Zumindest der Datenspeicher 110 und der Prozessor 114 sowie deren Verbindung können der mittels des HW-FlowQ Ansatzes wie beschrieben gemeinsam mit dem neuronalen Netz optimierten Hardware entsprechen. Mittels dieser Hardware können die über die Eingangsschnittstelle 108 empfangenen oder erfassten Daten verarbeitet werden, woraus letztlich beispielsweise ein entsprechendes Steuersignal resultieren, also erzeugt werden kann. Dieses Steuersignal kann dann über eine Ausgangsschnittstelle 116 des Assistenzsystems 104 ausgegeben werden, beispielsweise an die entsprechend zu steuernde Fahrzeugkomponente 106.
  • Insgesamt zeigen die beschriebenen Beispiele wie eine effektive und effiziente Nutzung neuronaler Netze auch in Anwendungen mit strikt begrenzten zur Verfügung stehenden Ressourcen praktikabel und effektiv realisiert werden kann.
  • Bezugszeichenliste
  • 10
    Ablaufschema
    12
    genetischer Algorithmus
    14
    Individuen
    16
    Population
    18
    Bitlängen
    20
    Schicht
    22
    Genomlänge
    24
    Kandidatennetz
    26
    Eingangsdaten
    28
    Hardwarekonfigurationsvariationen
    30
    Hardwaremodell
    32
    grobes Abstraktionslevel
    34
    mittleres Abstraktionslevel
    36
    feines Abstraktionslevel
    38
    Grobspezifikation
    40
    Mittelspezifikation
    42
    Feinspezifikation
    44
    externer Speicher
    46
    Chipspeicher
    48
    Eingangsmerkmalskartendaten
    50
    Gewichtsdaten
    52
    Ausgangsmerkmalskartendaten
    54
    Berechnungseinheiten
    56
    Vektorbeschleuniger
    58
    bit-serieller Beschleuniger
    60
    Auswahlstufe
    62
    Kreuzungsstufe
    64
    Mutationsstufe
    66
    Nachfolgepopulation
    68
    Gesamtsuchraum
    70
    Grobsuchraum
    72
    mittlerer Suchraum
    74
    Syntheselevel
    76
    Feinsuchraum
    78
    Optimierungsrichtung
    80
    Abstraktionsrichtung
    82
    Grobinput
    84
    Groboptimierung
    86
    Groboutput
    88
    Mittelinput
    90
    Mitteloptimierung
    92
    Mitteloutput
    94
    Feininput
    96
    Feinoptimierung
    98
    Feinoutput
    100
    Kraftfahrzeug
    102
    Sensorik
    104
    Assistenzsystem
    106
    Fahrzeugkomponente
    108
    Eingangsschnittstelle
    110
    Datenspeicher
    112
    Betriebsprogramm
    114
    Prozessor
    116
    Ausgangsschnittstelle
    AI-1
    Vorgängerschicht
    AI
    Nachfolgeschicht
    WI
    Gewichtsmatrix
    hi, wi, ci
    Eingangskanaldimensionen
    ho, wo, co
    Ausgangskanaldimensionen
    kh, kw
    Kerneldimensionen
    bA
    Aktivierungsbitlänge
    bW
    Gewichtsbitlänge
    bmax
    Maximalbitlänge
    Prädiktion
    φc
    Grobabschätzung
    φm
    mittlere Abschätzung
    φf
    Feinabschätzung
  • 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
    • DE 102018128080 A1 [0003]
    • DE 102018121905 A1 [0004]

Claims (10)

  1. Verfahren (10) zum Bestimmen einer optimierten komprimierten Netzkonfiguration (14) eines mehrschichtigen künstlichen neuronalen Netzes (24), die an eine Hardwarekonfiguration (28) zum Ausführen des neuronalen Netzes (24) angepasst ist, in dem eine Ausgangskonfiguration des neuronalen Netzes (24) und wenigstens eine Hardwarerandbedingung (82), welche die Eigenschaften der Hardwarekonfiguration (28) begrenzt, vorgegeben werden und die optimierte komprimierte Netzkonfiguration (14) mittels eines vorgegebenen genetischen Algorithmus (12) bestimmt wird, wobei - unterschiedliche im Vergleich zu der Ausgangskonfiguration komprimierte Netzkonfigurationsvariationen (14) erzeugt und unter Verwendung der Hardwarekonfiguration (28) hinsichtlich ihrer Genauigkeit und ihres Ressourcenbedarfs ((φc, (φm, (φf) getestet werden, - die einzelnen Netzkonfigurationsvariationen (14) jeweils durch ihre Kombination von jeweiligen Bitlängen (18, bw, ba) von Gewichten und Aktivierungen ihrer Schichten (20, AI-1, A') und ihre Anzahl (22) von Schichten (20, AI-1, AI) charakterisiert werden, und - wenigstens diejenige der getesteten Netzkonfigurationsvariationen (14), die wenigstens ein vorgegebenes Optimierungskriterium am besten erfüllt, als die optimierte komprimierte Netzkonfiguration (14) ausgegeben wird.
  2. Verfahren (10) nach Anspruch 1, dadurch gekennzeichnet, dass zum Testen der unterschiedlichen Netzkonfigurationsvariationen (14) jeweils ein entsprechend konfiguriertes künstliches neuronales Netz (24) erzeugt und zunächst mit vorgegebenen Trainingsdaten (26) antrainiert wird, bevor sowohl eine jeweils vor Erreichen einer maximalen Konvergenz erreichte absolute Genauigkeit als auch ein Verhalten des jeweiligen neuronalen Netzes (24) während des Antrainierens verwendet wird, um zu bewerten, wie gut die jeweilige Netzkonfiguration (14) das vorgegebene Optimierungskriterium erfüllt.
  3. Verfahren (10) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zum Testen der unterschiedlichen Netzkonfigurationsvariationen (14) die Ausführung des neuronalen Netzes (24) in der jeweiligen Netzkonfiguration (14) mittels eines Hardwaremodells (30), das virtuell Hardware (44, 46, 54, 56, 58) in der Hardwarekonfiguration (28) modelliert, simuliert wird.
  4. Verfahren (10) nach Anspruch 3, dadurch gekennzeichnet, dass die Ausführung des neuronalen Netzes (24) in den unterschiedlichen Netzkonfigurationen (14) auf unterschiedlichen virtuell modellierten Hardwarekonfigurationen (28) simuliert wird, um eine Kombination aus einer Netzkonfiguration (14) und einer Hardwarekonfiguration (28), die hinsichtlich des vorgegebenen Optimierungskriteriums aufeinander abgestimmt sind, zu bestimmen.
  5. Verfahren (10) nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass die Ausführung des neuronalen Netzes (24) in den unterschiedlichen Netzkonfigurationen (14) mittels des Hardwaremodells (30) auf mehreren unterschiedlichen Abstraktionslevels (32, 34, 36) modelliert und simuliert wird, wobei auf jeweils einem gröberen Abstraktionslevel (32, 34, 36) mittels des genetischen Algorithmus (12) und des vorgegebenen Optimierungskriteriums wenigstens eine beizubehaltende Netzkonfigurationsvariation (14) bestimmt wird, die dann sofern es ein noch feineres Abstraktionslevel (34, 36) gibt, an dieses weitergereicht wird.
  6. Verfahren (10) nach Anspruch 5, dadurch gekennzeichnet, dass auf jedem Abstraktionslevel (32, 34, 36) jeweils eine Pareto-Optimierung angewendet wird, um die wenigstens eine beizubehaltende Netzkonfigurationsvariation (14) zu bestimmen.
  7. Verfahren (10) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Hardwarekonfiguration (28) wenigstens einen vektorisierten Hardwarebeschleuniger (56) vorsieht.
  8. Verfahren (10) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Hardwarekonfiguration (28) wenigstens einen bit-seriellen Hardwarebeschleuniger (58) vorsieht.
  9. Assistenzeinrichtung (104), insbesondere für ein Kraftfahrzeug (100), umfassend ein künstliches neuronales Netz (24, 112) in einer mittels eines Verfahrens (10) nach einem der vorhergehenden Ansprüche bestimmten Netzkonfiguration (14) und eine Hardware (110, 114) zum Ausführen des neuronalen Netzes (24), auf die Netzkonfiguration (14) hinsichtlich des vorgegebenen Optimierungskriteriums abgestimmt ist.
  10. Kraftfahrzeug (100), aufweisend eine Assistenzeinrichtung (104) nach Anspruch 9.
DE102021100404.7A 2021-01-12 2021-01-12 Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug Pending DE102021100404A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102021100404.7A DE102021100404A1 (de) 2021-01-12 2021-01-12 Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021100404.7A DE102021100404A1 (de) 2021-01-12 2021-01-12 Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug

Publications (1)

Publication Number Publication Date
DE102021100404A1 true DE102021100404A1 (de) 2022-07-14

Family

ID=82116575

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021100404.7A Pending DE102021100404A1 (de) 2021-01-12 2021-01-12 Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug

Country Status (1)

Country Link
DE (1) DE102021100404A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130790A (zh) * 2023-10-23 2023-11-28 云南蓝队云计算有限公司 一种云计算资源池动态调度方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018121905A1 (de) 2017-09-25 2019-03-28 Samsung Electronics Co., Ltd. Verfahren und Vorrichtung zum Quantisieren von künstlichen neuronalen Netzen
DE102018128080A1 (de) 2017-11-13 2019-05-16 Samsung Electronics Co., Ltd. Verfahren und Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018121905A1 (de) 2017-09-25 2019-03-28 Samsung Electronics Co., Ltd. Verfahren und Vorrichtung zum Quantisieren von künstlichen neuronalen Netzen
DE102018128080A1 (de) 2017-11-13 2019-05-16 Samsung Electronics Co., Ltd. Verfahren und Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130790A (zh) * 2023-10-23 2023-11-28 云南蓝队云计算有限公司 一种云计算资源池动态调度方法
CN117130790B (zh) * 2023-10-23 2023-12-29 云南蓝队云计算有限公司 一种云计算资源池动态调度方法

Similar Documents

Publication Publication Date Title
DE102020105535A1 (de) Neuronale Netzwerkvorrichtung und Verfahren zum Quantisieren von Parametern eines neuronalen Netzwerks
DE102018221413A1 (de) Effektive baustein-ausgestaltung für tiefe konvolutionelle neuronale netzwerke unter verwendung einer suche
DE202019106182U1 (de) Neuronenarchitektursuche mit faktorisiertem hierarchischem Suchraum
Siminelakis et al. Rehashing kernel evaluation in high dimensions
DE112004001214T5 (de) Schnelles Merkmalsauswahlverfahren und System zur Maximalentropiemodellierung
DE102020210965A1 (de) Neuronales graph-transformer-netz-kraftfeld für die vorhersage atomarer kräfte und energien bei moleküldynamiksimulationen
DE102022105748A1 (de) Effiziente optimierung für den einsatz und die ausführung neuronaler netze
DE112019000676T5 (de) Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor
DE112020001774T5 (de) Datensatzabhängiges niedrigrang-zerlegen von neuronalen netzwerken
DE112020002693T5 (de) Verringerung der berechnung in neuralen netzwerken mit selbstmodifizierendem code
DE112021005910T5 (de) Schnellere abdeckungskonvergenz mit automatischer testparameterabstimmung bei eingeschränkter zufallsverifikation
Singh et al. Hetconv: Beyond homogeneous convolution kernels for deep cnns
DE112020003105T5 (de) Schicht für schicht-debugging von neuronalen netzwerken
DE102021100404A1 (de) Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug
DE102022104121A1 (de) Künstliche neuronale netze erzeugt durch sequenzen mit geringer diskrepanz
DE112021005739T5 (de) Erzeugung von peptid-basiertem impfstoff
DE102020110805A1 (de) Verfahren, systeme, herstellungsgegenstände und einrichtungen zum verbessern von codecharakteristiken
DE102021210803A1 (de) Effizientes skalieren der prädiktion des interatomaren potenzials neuronaler netzwerke auf cpu-cluster
DE102020123155A1 (de) Quantisierungsverfahren eines künstlichen neuronalen Netzwerks und Operationsverfahren unter Verwendung eines künstlichen neuronalen Netzwerks
DE102022105810A1 (de) Effiziente Speichernutzungsoptimierung für Einsatz und Ausführung neuronaler Netze
DE202022100124U1 (de) Ein paralleler Webverzeichniskonstruktor (PWDC) zur automatischen Erstellung von Webverzeichnissen
DE102021201597A1 (de) Verwenden von hardware-beschleunigten befehlen
Pawłowski et al. Combinatorial Tiling for Sparse Neural Networks
DE102020132591A1 (de) Auswählen von rechenkernvarianten unter verwendung neuronaler netzwerke
Louati et al. Embedding channel pruning within the CNN architecture design using a bi-level evolutionary approach

Legal Events

Date Code Title Description
R163 Identified publications notified