DE202021102085U1 - Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen - Google Patents

Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen Download PDF

Info

Publication number
DE202021102085U1
DE202021102085U1 DE202021102085.7U DE202021102085U DE202021102085U1 DE 202021102085 U1 DE202021102085 U1 DE 202021102085U1 DE 202021102085 U DE202021102085 U DE 202021102085U DE 202021102085 U1 DE202021102085 U1 DE 202021102085U1
Authority
DE
Germany
Prior art keywords
network
network configurations
training data
commands
configurations
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.)
Active
Application number
DE202021102085.7U
Other languages
English (en)
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.)
Robert Bosch GmbH
Leibniz Universitaet Hannover
Albert Ludwigs Universitaet Freiburg
Original Assignee
Robert Bosch GmbH
Leibniz Universitaet Hannover
Albert Ludwigs Universitaet Freiburg
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 Robert Bosch GmbH, Leibniz Universitaet Hannover, Albert Ludwigs Universitaet Freiburg filed Critical Robert Bosch GmbH
Priority to DE202021102085.7U priority Critical patent/DE202021102085U1/de
Publication of DE202021102085U1 publication Critical patent/DE202021102085U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Abstract

Vorrichtung zum Ermitteln einer Pareto Menge von Netzkonfigurationen, wobei die Netzkonfigurationen für ein neuronales Netz für eine vorgegebene Anwendung ermittelt werden und die vorgegebene Anwendung in Form von bereitgestellten Trainingsdaten bestimmt ist, wobei die Vorrichtung ein maschinenlesbares Speichermedium umfasst, auf dem Befehle gespeichert sind, die beim Ausführen durch einen Computer bewirkten, dass der Computer ein Verfahren mit folgenden Schritte ausführt:
a) Bereitstellen (S1) einer Mehrzahl von zufällig ausgewählten Netzkonfigurationen (α);
b) Trainieren (S2) von neuronalen Netzen konfiguriert mit den Netzkonfigurationen (α) und abhängig von jeweils zugehörigen ermittelten Hyperparameter (A) auf den bereitgestellten Trainingdsdaten,
wobei das Trainieren (S2) solange ausgeführt wird, bis ein vorgegebenes Budget (b) aufgebraucht ist;
c) Ermitteln (S3) für jedes der trainierten neuronalen Netze eine Performance (accurancy), insbesondere auf einem Teil der bereitgestellten Trainingsdaten;
d) Auswerten (S4) der trainierten neuronalen Netze (α) hinsichtlich vorgegebenen Optimierungszielen (n_pars)
e) Hinzufügen (S5) eines Tupels umfassend Netzkonfigurationen (α), Hyperparameter (A) und Performance (accurancy) und die Optimierungszielen (n_pars) zu einem weiteren Trainingsdatensatz,
f) Erhöhen (S6), insbesondere verdoppeln, des Budget (b);
g) Erzeugen (S7) einer neuen Netzkonfiguration abhängig von dem weiteren Trainingsdatensatz;
h) Wiederhohlen von Schritt b) bis e) mit den neuen Netzkonfigurationen und Reduzieren des weiteren Trainingsdatensatzes und dann Ausführen der Schritte f) und g),
wobei dieser Schritt des Wiederholens solange ausgeführt wird, bis beim Erhöhen des Budgets ein max Budget (bmax) erreicht wird; und
i) Auswählen der Netzkonfigurationen (α) aus dem weiteren Trainingsdatensatz, welche eine Pareto-Menge hinsichtlich der Performance und mindestens eines weiteren Optimierungsziels entspricht.

Description

  • Die Erfindung betrifft eine Vorrichtung zum Ermitteln einer Mehrzahl von Netzkonfigurationen eines neuronalen Netzes für einen gegebenen Trainingsdatensatz, sodass die Konfigurationen eine Mehrzahl von Nebenbedingungen hinsichtlich Optimierungszielen erfüllen.
  • Stand der Technik
  • Die Eigenschaften von neuronalen Netzen werden maßgeblich durch ihre Architektur bestimmt. Die Architektur eines neuronalen Netzes ist beispielsweise durch dessen Netzkonfiguration definiert, die u.a. durch die Anzahl der Neuronenschichten, die Art der Neuronenschichten (lineare Transformationen, nichtlineare Transformationen, Normalisierung, Verknüpfung mit weiteren Neuronenschichten usw.), die Anzahl der Gewichte und dergleichen gegeben ist. Insbesondere bei zunehmender Komplexität der Anwendungen bzw. der zu lösenden Aufgaben ist das zufällige Auffinden von geeigneten Netzkonfigurationen aufwändig, da jeder Kandidat einer Netzkonfiguration zunächst trainiert werden muss, um dessen Leistungsfähigkeit evaluieren zu können.
  • Aus dem Stand der Technik sind diverse Ansätze zur Architektursuche von neuronalen Netzen, um eine hinsichtlich eines Vorhersagefehlers und hinsichtlich eines oder mehrerer Optimierungsziele optimierte Konfiguration eines neuronalen Netzes für eine bestimmte Anwendung aufzufinden, bekannt.
  • Beispielsweise offenbart EP 19719232 ein Verfahren zum Ermitteln einer geeigneten Netzkonfiguration für ein neuronales Netz für eine vorgegebene Anwendung aus einer Menge von optimalen Netzkonfigurationen.
  • Vorteile der Erfindung
  • Eine Aufgabe der Erfindung ist es, ein Verfahren bereitzustellen, welches ermöglicht, mit geringem Rechenaufwand eine Menge von optimalen Netzkonfigurationen, die jeweils hinsichtlich einer Mehrzahl von Nebenbedingungen optimal sind (also auf einer Pareto-Front liegen), aufzufinden. Die Menge der optimalen Netzkonfigurationen wird im Folgenden auch Pareto-Menge genannt.
  • Ein Vorteil der Erfindung ist es, dass mit dem beanspruchten Verfahren die Pareto-Front weiter in eine positive Richtung verschoben wird, also gegenüber bekannten Verfahren eine überlegenere Pareto-Front aufgefunden werden kann.
  • Ein weiterer Vorteil ist ferner, dass anhand der Pareto-Front diejenige Netzkonfiguration ausgewählt werden kann, die für eine gegebene Hardware mit begrenzten Ressourcen optimal ist. So kann bspw. anhand der Pareto- Front diejenigen Netzkonfigurationen ausgewählt werden, die optimal eine Hardwarebeschränkung (z.B. Speicherplatz, Rechenleistung, Energiebudget, Bandbreite, o.ä.) ausnutzt und unter dieser Einschränkung die höchste Leistungsfähigkeit erzielt. Dies ist ein bedeutender Vorteil, da in vielen praktischen Anwendungen unterschiedlich ausgelegte Hardwarebauteile zur Lösung der gleichen Aufgabe für Kunden bereitgestellt werden und anhand der Pareto-Front effizient die geeigneten Netzkonfigurationen für die unterschiedlich ausgelegten Hardwarebauteile direkt appliziert werden können.
  • Offenbarung der Erfindung
  • In einem ersten Aspekt betrifft die Erfindung ein computerimplementiertes Verfahren zum Ermitteln einer Pareto Menge von Netzkonfigurationen. Unter einer Pareto Menge kann eine Mehrzahl von Netzkonfigurationen verstanden werden, bei welchen es nicht möglich ist, eine (Ziel-) Eigenschaft, insbesondere ein Optimierungsziel, zu verbessern, ohne zugleich eine andere verschlechtern zu müssen. Unter einer Netzkonfiguration kann eine Architektur des neuronalen Netzes verstanden werden, d.h. ein Aufbau, wie beispielsweise durch folgende Merkmale charakterisiert: Anzahl der Schichten, Anzahl der Filter, Größe der Filter, Dropout-Rate, Anzahl der Neuronen pro Schicht, Skip-Connection, Batch-Normalisierungsschichten, Poolingschichten, o.ä.
  • Die Netzkonfigurationen für ein neuronales Netz werden vorzugsweise für eine vorgegebene Anwendung ermittelt und die vorgegebene Anwendung ist in Form von bereitgestellten Trainingsdaten bestimmt.
  • Das Verfahren beginnt mit einem Bereitstellen einer Mehrzahl von zufällig ausgewählten Netzkonfigurationen (α).
  • Daraufhin folgt ein Trainieren von neuronalen Netzen konfiguriert abhängig von bereitgestellten Netzkonfigurationen (α) und abhängig von den jeweils zugehörigen ermittelten Hyperparameter (A) auf den bereitgestellten Trainingsdaten, wobei das Trainieren solange ausgeführt wird, bis ein vorgegebenes Budget (b) aufgebraucht ist; wie zum Beispiel Zeit oder Energie.
  • Daraufhin folgt ein Ermitteln für jedes der trainierten neuronalen Netze eine Performance (accurancy).
  • Daraufhin folgt ein Auswerten der trainierten neuronalen Netze konfiguriert abhängig von bereitgestellten Netzkonfigurationen (α) hinsichtlich vorgegebenen Optimierungszielen (n_pars). Vorzugsweise gibt es eine Mehrzahl von weiteren Optimierungszielen und zumindest ein Optimierungsziel charakterisiert eine beschränkte Ressource einer Hardware. Besonders bevorzugt ist ein Optimierungsziel eine Anzahl von Parametern des neuronalen Netzes (n_pars).
  • Daraufhin folgt ein Hinzufügen eines Tupels umfassend Netzkonfigurationen (α), Hyperparameter (A) und Performance (accurancy) und die Optimierungszielen (n_pars) zu einem weiteren Trainingsdatensatz.
  • Hyperparameter können sein: wie z.B. eine Lernrate, Regularisierungen, ein Lernalgorithums zum Trainieren des neuronalen Netzes (z.B. Ada, SGD, etc.), usw. Daraufhin folgt ein Erzeugen einer neuen Netzkonfiguration abhängig von dem weiteren Trainingsdatensatz derart, dass diese ein vorgebbares Kriterium erfüllt.
  • Daraufhin folgt ein Erhöhen des Budget (b).
  • Daraufhin folgt ein Wiederhohlen der eben genannten Schritte bis ein max Budget erreicht wird.
  • Anschließend folgt ein Auswählen der Netzkonfigurationen (α) aus dem weiteren Trainingsdatensatz, welche eine Pareto-Menge hinsichtlich der Performance und mindestens eines weiteren Optimierungsziels entspricht.
  • Vorzugsweise wird die Pareto-Menge hinsichtlich der Performance der eines Vorhersagefehlers und mindestens eines weiteren Optimierungsziels, wie eine Anzahl der Parameter des neuronalen Netzes ermittelt.
  • Optional kann nach dem das Verfahren zum Ermitteln der Pareto-Front abgeschlossen wurde, ein Auswählen der geeigneten Netzkonfiguration aus der aktuellen Netzkonfigurationsmenge erfolgen. Hierbei kann aus der Menge der optimalen Netzkonfiguration abhängig von einem vorgegebenen Optimierungsziel, diejenige Netzkonfiguration aus der Pareto-Front entnommen werden, die dieses Optimierungsziel erfüllt. Z.B. kann die geeignete Netzkonfiguration aus der aktuellen Netzkonfigurationsmenge basierend auf einer Gesamtkostenfunktion ausgewählt werden, die von dem Vorhersagefehler und Ressourcenkosten hinsichtlich des mindestens eines Optimierungsziels abhängt.
  • Es wird vorgeschlagen, dass wobei für das Erzeugen der Netzkonfigurationen folgende Schritte ausgeführt werden: Auswählen einer Netzkonfiguration oder zumindest zwei Netzkonfigurationen aus dem weiteren Trainingsdatensatz, wobei wenn zumindest zwei Netzkonfigurationen ausgewählt wurde, wird die neue Netzkonfiguration durch eine Kombination der ausgewählten Netzkonfigurationen erzeugt, wobei wenn eine Netzkombination ausgewählt wurde, wird die neue Netzkombination durch eine Mutation der ausgewählten Netzkonfiguration erzeugt,
  • Es wird vorgeschlagen, dass die Mutation der Netzkonfigurationen durch zufälliges Hinzufügen von Schichten oder Kombinieren von zumindest zwei zufällig gezogenen Netzkonfigurationen erfolgt.
  • Vorzugsweise werden hierfür zusätzliche faltende Schichten oder vollvermaschte Schichten an einer zufälligen Position hinzugefügt. D.h. die Netzkonfiguration wird derart verändert, dass diese einen Aufbau des neuronalen Netzes charakterisiert, welches sich gegenüber dem ursprünglichen neuronalen Netz mit der ursprünglichen Netzkonfiguration darin unterscheidet, dass an einer zufälligen Position innerhalb des neuronalen Netzes eine Schicht hinzugefügt wurde.
  • Denkbar ist auch, dass die Mutation durch Netzwerkmorphismen entsprechen vorbestimmten Regeln ausgeführt wird, die mithilfe eines Operators bestimmt sein können. Allgemein ist ein Netzwerkmorphismus ein Operator T, der ein neuronales Netz N auf ein Netz TN abbildet, wobei gilt: N w ( x ) = ( T N ) w ˜ ( x )  f u ¨ x X
    Figure DE202021102085U1_0001
    dabei sind w die Netzparameter (Gewichtungen) des neuronalen Netzes N und w̃ die Netzparameter des variierten neuronalen Netzes TN. X entspricht dem Raum, auf dem das neuronale Netz angewendet wird.
  • Weiterhin wird vorgeschlagen, dass nach dem Hinzufügen des Tupels wird diejenige Netzkonfiguration aus dem weitern Trainingsdatensatz entfernt, die einen geringste Hypervolumenverbesserung (engl. hypervolume improvement) hervorruft.
    Vorteilhaft ist, dass hiermit ein sehr stichprobenineffizient Verfahren erzielt wird. Denn durch die kleinen Budgets zu beginn, wird so schnell wie möglich eine konkurrenzfähige Pareto-Menge gefunden, die dann sukzessive auf größere Budgets feinabgestimmt wird.
  • Weiterhin wird vorgeschlagen, dass für das Erzeugen der Netzkonfigurationen folgende Schritte ausgeführt werden: Auswählen einer Netzkonfiguration mittels BOHB, wobei für BOHB eine Mehrzahl von mehrdimensionalen KDEs verwendet wird.
  • BOHB ist ein Verfahren, welches in der Veröffentlichung Falkner et al „BOHB: Robust and Efficient Hyperparameter Optimization at Scale“, online abrufbar: https://arxiv.org/abs/1807.01774 erläutert wird.
  • Weiterhin wird vorgeschlagen, dass für Parameter der Netzkonfiguration, die einen kontinuierlichen Wertebereich aufweisen, wird ein Gauß'scher Kernel für die KDE verwendet und für Parameter der Netzkonfiguration, welche nicht- kontinuierlichen Wertebereich aufweisen, wird ein Aitchison Aitkenk Kernel verwendet.
  • Dies ist vorteilhaft z. B. für eine Aktivierung von Batch Norm und Pooling für die Parameter der Netzkonfiguration.
  • Weiterhin wird vorgeschlagen, dass zumindest eines der Optimierungsziele eine physikalische Eigenschaft einer Hardwarekomponente charakterisiert, wobei ein neuronales Netz konfiguriert mit einer der Netzkonfigurationen auf der Hardwarekomponente ausgeführt wird.
  • Weiterhin kann eine geeignete Netzkonfiguration aus der Pareto Menge basierend auf einer Gesamtkostenfunktion ausgewählt werden, die von der Performance, insbesondere dem Vorhersagefehler, und Ressourcenkosten hinsichtlich des mindestens eines Optimierungsziels abhängt.
  • Weiterhin wird vorgeschlagen, dass das beim Optimieren der Netzkonfigurationen diese derart eingerichtet werden, dass diese für computerbasiertes Sehen (engl. computer vision), insbesondere für Bildklassifikationen, verwendet werden können.
  • Weiterhin wird vorgeschlagen, dass die Netzkonfigurationen für ein neuronales Netz zur Verwendung als Bildklassifikator optimiert werden. Der Bildklassifikator ordnet ein Eingabebild einer oder mehreren Klassen einer vorgegebenen Klassifikation zu. Als Eingabebilder können beispielsweise Bilder von in Serie gefertigten, nominell identischen Produkten verwendet werden. Der Bildklassifikator kann beispielsweise darauf trainiert sein, die Eingabebilder einer oder mehreren von mindestens zwei möglichen Klassen zuzuordnen, die eine Qualitätsbeurteilung des jeweiligen Produkts repräsentieren.
  • Der Begriff des Bildes umfasst grundsätzlich jede in einem zwei- oder mehrdimensionalen Raster angeordnete Verteilung von Informationen. Diese Informationen können beispielsweise Intensitätswerte von Bildpixeln sein, die mit einer beliebigen Abbildungsmodalität, wie etwa mit einer optischen Kamera, mit einer Wärmebildkamera oder mit Ultraschall, aufgenommen wurden. Es können jedoch auch beliebige andere Daten, wie beispielsweise Audiodaten, Radardaten oder LIDAR-Daten, in Bilder übersetzt und dann gleichermaßen klassifiziert werden.
  • Gemäß einem zweiten Aspekt ist eine Verwendung eines neuronalen Netzes mit einer Netzkonfiguration, die mit dem obigen Verfahren für die vorgegebene Anwendung erstellt worden ist, für die vorgegebene Anwendung, wobei das neuronale Netz insbesondere zur Realisierung von Funktionen eines technischen Systems, insbesondere eines Roboters, eines Fahrzeugs, eines Werkzeugs oder einer Werkmaschine ausgelegt ist. Hier kann z.B. das neuronale Netz konfiguriert mit einer der Netzkonfigurationen, abhängig von einer erfassten Sensorgröße eines Sensors eine Ausgangsgröße ermittelt, abhängig von welcher daraufhin eine Steuergröße mittels z.B. einer Steuereinheit, insbesondere des technischen Systems, ermittelt werden kann.
  • In einem dritten Aspekt betrifft die Erfindung ein Verfahren zum Bereitstellen eines neuronalen Netzes mit einer Netzkonfiguration, die mit einem Verfahren nach dem ersten Aspekt erstellt worden ist, wobei das neuronale Netz insbesondere zur Realisierung von Funktionen eines technischen Systems, insbesondere eines Roboters, eines Fahrzeugs, eines Werkzeugs oder einer Werkmaschine ausgelegt ist.
  • Gemäß einem weiteren Aspekt ist ein Steuergerät, insbesondere zum Steuern von Funktionen eines technischen Systems, insbesondere eines Roboters, eines Fahrzeugs, eines Werkzeugs oder einer Werkmaschine, mit einem neuronalen Netz vorgesehen, das mithilfe des obigen Verfahrens konfiguriert wird.
  • In weiteren Aspekten betrifft die Erfindung eine Vorrichtung sowie ein Computerprogramm, die jeweils eingerichtet sind, die obigen Verfahren auszuführen und ein maschinenlesbares Speichermedium, auf dem dieses Computerprogramm gespeichert ist.
  • Nachfolgend werden Ausführungsformen der Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. In den Zeichnungen zeigen:
    • 1 eine schematische Darstellung eines beispielhaften neuronalen Netzes;
    • 2 eine mögliche Netzkonfiguration eines neuronalen Netzes;
    • 3 ein Flussdiagramm zur Darstellung eines Verfahrens zum Ermitteln einer pareto-optimalen Menge von Netzkonfigurationen für das Ermitteln eines geeigneten Netzkonfigurationskandidaten für eine vorgegebene Anwendung;
    • 4 eine schematische Darstellung einer Pareto-Front von Netz-konfigurationen abhängig von dem Vorhersagefehler und einem weiteren Optimierungsparameter, insbesondere einem Ressourcen-Nutzungsparameter; und
    • 5 einen möglichen Aufbau einer Vorrichtung zum Ausführen des Verfahrens;
  • 1 zeigt exemplarisch einen Aufbau eines neuronalen Netzes 1, das in der Regel aus mehreren kaskadierten Neuronenschichten 2 von jeweils mehreren Neuronen 3 aufweist. Die Neuronenschichten 2 weisen eine Eingangsschicht 2E zum Anlegen von Eingangsdaten, mehrere Zwischenschichten 2Z und eine Ausgangsschicht 2A zum Ausgeben von Berechnungsergebnissen auf.
  • Die Neuronen 3 der Neuronenschichten 2 können dabei einer herkömmlichen Neuronen-Funktion O j = φ ( i = 1 M ( x i w i , j ) θ j )
    Figure DE202021102085U1_0002
    entsprechen, wobei Oj dem Neuronenausgang des Neurons, φ der Aktivierungsfunktion, xi dem jeweiligen Eingangswert des Neurons, wi,j einem Gewichtungsparameter für den i-ten Neuroneneingang in der j-ten Neuronenschicht und θj einer Aktivierungsschwelle entsprechen. Die Gewichtungsparameter, die Aktivierungsschwelle und die Wahl der Aktivierungsfunktion können als Neuronenparameter in Registern des Neurons gespeichert sein.
  • Die Neuronenausgänge eines Neurons 3 können jeweils als Neuroneneingänge an Neuronen 3 der übrigen Neuronenschichten, d. h. einer der nachfolgenden oder einer der vorangehenden Neuronenschichten 2, weitergegeben oder, wenn es sich um ein Neuron 3 der Ausgangsschicht 2A handelt, als ein Berechnungsergebnis ausgegeben werden.
  • So gebildete neuronale Netze 1 können als Software oder mithilfe einer Berechnungshardware realisiert sein, die einen Teil oder das gesamte neuronale Netz als elektronische (integrierte) Schaltung abbildet. Eine solche Berechnungshardware wird üblicherweise dann zum Aufbau eines neuronalen Netzes gewählt, wenn die Berechnung sehr schnell erfolgen soll, was mit Umsetzung in Software nicht zu erreichen wäre.
  • Die Struktur der entsprechenden Software oder Hardware wird durch die Netzkonfiguration vorgegeben, die durch eine Vielzahl von Konfigurationsparametern bestimmt ist. Die Netzkonfiguration bestimmt die Berechnungsvorschriften des neuronalen Netzes. Die Konfigurationsparameter umfassen bei einer herkömmlichen Netzkonfiguration, wie sie beispielsweise in 1 schematisch gezeigt ist, die Anzahl der Neuronenschichten, die jeweilige Anzahl von Neuronen in jeder Neuronenschicht, die Netzparameter, die durch die Gewichtungen, die Aktivierungsschwelle sowie eine Aktivierungsfunktion gegeben sind, Angaben zur Kopplung eines Neurons mit Eingangs- und Ausgangsneuronen und dergleichen.
  • Abgesehen von der oben beschriebenen Netzkonfiguration sind weitere Konfigurationen von neuronalen Netzen möglich, bei der Neuronen vorgesehen sind, die eingangsseitig mit Neuronen aus verschiedenen Neuronenschichten und ausgangsseitig mit Neuronen verschiedener Neuronenschichten gekoppelt sind. Weiterhin können diesbezüglich insbesondere auch Neuronenschichten vorgesehen sein, die eine Rückkopplung vorsehen, d. h. die eingangsseitig mit Neuronenschichten, die bezüglich des Datenflusses ausgangsseitig der betreffenden Neuronenschicht vorgesehen sind. Diesbezüglich zeigt 2 schematisch eine mögliche Konfiguration eines neuronalen Netzes mit mehreren Schichten L1 bis L6, die zunächst in an sich bekannter Weise, wie in 1 schematisch dargestellt, miteinander gekoppelt sind, d.h. Neuroneneingänge sind mit Neuronenausgängen der vorangehenden Neuronenschicht verbunden. Ferner weist die Neuronenschicht L3 einen Bereich auf, der eingangsseitig mit Neuronenausgängen der Neuronenschicht L5 gekoppelt ist. Auch kann die Neuronenschicht L4 vorsehen, eingangsseitig mit Ausgängen der Neuronenschicht L2 verbunden zu sein.
  • Im Folgenden soll ein Verfahren zum Bestimmen einer optimierten Netzkonfiguration für ein neuronales Netz basierend auf einer vorbestimmten Anwendung durchgeführt werden. Die Anwendung bestimmt sich im Wesentlichen durch die Größe von Eingangsgrößenvektoren und der diesen zugeordneten Ausgangsgrößenvektoren, die die Trainingsdaten darstellen, die ein gewünschtes Netzwerkverhalten bzw. eine bestimmte Aufgabenstellung definieren.
  • In 3 ist ein Verfahren zum Ermitteln einer Menge von geeigneten Netzkonfigurationen für ein neuronales Netz bezogen auf eine gewünschte Anwendung beschrieben. Die so erhaltene Menge soll dazu dienen, die Auswahl einer Netzkonfiguration für die gewünschte Anwendung zu erleichtern. Die Netzkonfiguration soll daher ein neuronales Netz angeben, das für eine bestimmte Anwendung einsetzbar und geeignet ist und hinsichtlich eines Vorhersagefehlers und zusätzlich hinsichtlich mindestens eines weiteren Optimierungsziels optimiert ist. Insbesondere soll die Menge an Netzkonfigurationen einer Pareto-Front bzw. einer Pareto-Menge von Netzkonfigurationen entsprechen, die hinsichtlich einer Mehrzahl von Optimierungszielen optimiert sind. Die Optimierungsziele können bspw. sein:
    • Performance, benötigten Ressourcen des neuronalen Netzes 1 in Form von Kosten der jeweiligen Ressource (wie z.B. Anzahl der Parameter), usw. Die Performance kann eine Klassifikationsgenauigkeit oder Vorhersagefehler, z.B. auf Validierungsdaten sein. Weitere Optimierungsziele können Eigenschaften der Ressource zur Berechnungshardware u. a. betreffen, wie z.B.: eine Speichergröße, eine Auswertungsgeschwindigkeit, eine Kompatibilität bezüglich spezieller Hardware, einem Auswertungsenergieverbrauch und dergleichen.
  • Das Flussdiagramm, welches in 3 abgebildet ist, beschreibt eine Ausführungsform des erfindungsgemäßen Verfahrens, um Netzkonfigurationen auf der Pareto-Front zu ermitteln.
  • In Schritt S1 wird ein Bereitstellen (S1) einer Mehrzahl von zufällig ausgewählten Netzkonfigurationen (α) ausgeführt.
  • Daraufhin folgt Schritt S2. Hierbei wird ein Trainieren (S2) von neuronalen Netzen konfiguriert abhängig von bereitgestellten Netzkonfigurationen (α) und abhängig von den jeweils zugehörigen ermittelten Hyperparametern (λ) auf den bereitgestellten Trainingsdaten durchgeführt. Dieser Schritt S2 wird solange ausgeführt wird, bis ein vorgegebenes Budget (b) aufgebraucht ist.
  • Daraufhin folgt ein Ermitteln (S3) für jedes der trainierten neuronalen Netze eine Performance (accurancy) und ein Auswerten (S4) der trainierten neuronalen Netze konfiguriert abhängig von bereitgestellten Netzkonfigurationen (α) hinsichtlich vorgegebenen Optimierungszielen (n_pars).
  • Anschließend folgt ein Hinzufügen (S5) eines Tupels umfassend Netzkonfigurationen (α), Hyperparameter (λ) und Performance (accurancy) und die Optimierungsziele (n_pars) zu einem weiteren Trainingsdatensatz.
  • In dem nachfolgenden Schritt S6 wird ein Erzeugen einer neuen Netzkonfiguration abhängig von dem weiteren Trainingsdatensatz derart, dass diese ein vorgebbares Kriterium erfüllt, ausgeführt.
  • Dann wird das das Budget (b) in Schritt S7 erhöht und die Schritte ab S2 werden wiederholt mit einem reduzierten weiteren Trainingsdatensatzes bis ein max Budget (bmax) erreicht wird.
  • Abschließend folgt ein Auswählen der Netzkonfigurationen (α) aus dem weiteren Trainingsdatensatz, welche eine Pareto-Menge hinsichtlich der Performance und mindestens eines weiteren Optimierungsziels entspricht.
  • In 4 ist beispielsweise der Verlauf einer Pareto-Front (40) hinsichtlich einer Klassifikationsgenauigkeit (acc) und den Ressourcenkosten als weiteres Optimierungsziels (n_par), sowie einzelne Netzkonfigurationen (41) dargestellt. In 4 ist das weitere Optimierungsziel die Anzahl der Parameter n_pars des Netzes. Dargestellt durch 4 wird ein finaler Zustand, in welchem das Verfahren nach 3 da max. Zeitbudget erreicht wurde hat und nahezu konvergiert ist, d.h. die Pareto-Front sich nicht mehr weiter verschiebt. Die Pareto-Fronten (42) wurden durch bekannte Verfahren aus dem Stand der Technik bestimmt.
  • Die nach dem letzten Iterationszyklus (mehrmals ausgeführte Abfolge der Schritt S2 bis S6) ermittelten Netzkonfigurationen der aktuellen Netzkonfigurationsmenge stellen nun eine Grundlage dar, eine geeignete Netzkonfiguration für die durch die Trainingsdaten bestimmte Anwendung auszuwählen. Dies kann beispielsweise durch Vorgeben einer Gesamtkostenfunktion, die den Vorhersagefehler und die Ressourcenkosten berücksichtigt, erfolgen. In der Praxis würde man auf Basis der betreffenden Anwendung entscheiden, welche Netzkonfiguration der aktuellen Netzkonfigurationsmenge (aktuelle Pareto-Front) am besten für die gewählte Anwendung geeignet ist. Dies kann anhand einer Beschränkungsvorgabe erfolgen. Als Beispielszenario kann aus der Pareto-Front eine Netzkonfiguration ausgewählt werden, die eine Netzwerkgröße von z.B. 1GB Speicher nicht übersteigt.
  • Das obige Verfahren ermöglicht in verbesserter Weise die Architektursuche von Netzkonfigurationen zu beschleunigen, da die Evaluierung der Leistungsfähigkeil/ Vorhersagefehler der Varianten von Netzkonfigurationen erheblich schneller vorgenommen werden kann.
  • Die so ermittelten Netzkonfigurationen können für die Auswahl einer geeigneten Konfiguration eines neuronalen Netzes für eine vorgegebene Aufgabe verwendet werden. Die Optimierung der Netzkonfiguration steht in engem Zusammenhang zu der gestellten Aufgabe. Die Aufgabe ergibt sich durch die Vorgabe von Trainingsdaten, so dass vor dem eigentlichen Training zunächst die Trainingsdaten definiert werden müssen, aus denen die optimierte/geeignete Netzkonfiguration für die gestellte Aufgabe ermittelt wird. Beispielsweise können Bilderkennungs- bzw. -klassifikationsverfahren durch Trainingsdaten definiert werden, die Eingangsbilder, Objektzuordnungen, Objektklassifikationen beinhalten. Netzkonfigurationen können auf diese Weise grundsätzlich für alle durch Trainingsdaten definierten Aufgaben bestimmt werden.
  • So kann ein derart konfiguriertes neuronales Netz in einem Steuergerät eines technischen Systems, insbesondere in einem Roboter, einem Fahrzeug, einem Werkzeug oder einer Werkmaschine eingesetzt werden, um abhängig von Eingangsgrößen Ausgangsgrößen zu bestimmen. Als Eingangsgrößen des neuronalen Netzes kommen insbesondere Sensordaten oder abhängig von Sensordaten ermittelte Größen in Frage. Die Sensordaten können von Sensoren des technischen Systems stammen oder von dem technischen System von extern empfangen werden. Abhängig von den Ausgangsgrößen des neuronalen Netzes wird durch eine Recheneinheit des Steuergeräts des technischen Systems mindestens ein Aktor des technischen Systems mit einem Ansteuersignal angesteuert. Beispielsweise so kann eine Bewegung eines Roboters oder Fahrzeugs gesteuert werden oder eine Steuerung einer Antriebseinheit oder eines Fahrerassistenzsystems eines Fahrzeugs erfolgen.
  • 5 zeigt schematisch eine Trainingsvorrichtung 500 umfassend einen Bereitsteller 51, der aus einem Trainingsdatensatz Eingangsbilder bereitstellt. Eingangsbilder werden der zu trainierenden neuronalen Netze 52 zugeführt, die hieraus Ausgangsgrößen ermitteln. Ausgangsgrößen und Eingangsbilder werden einem Beurteiler 53 zugeführt, der hieraus aktualisierte Hyper-/Parameter ermittelt, die dem Parameterspeicher P übermittelt werden und dort die gegenwärtigen Parameter ersetzen.
  • Die vom Trainingsvorrichtung 500 ausgeführten Verfahren können als Computerprogramm implementiert auf einem maschinenlesbaren Speichermedium 54 hinterlegt sein und von einem Prozessor 55 ausgeführt werden.
  • Der Begriff „Computer“ umfasst beliebige Geräte zur Abarbeitung vorgebbarer Rechenvorschriften. Diese Rechenvorschriften können in Form von Software vorliegen, oder in Form von Hardware, oder auch in einer Mischform aus Software und Hardware.
  • 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
    • EP 19719232 [0004]

Claims (9)

  1. Vorrichtung zum Ermitteln einer Pareto Menge von Netzkonfigurationen, wobei die Netzkonfigurationen für ein neuronales Netz für eine vorgegebene Anwendung ermittelt werden und die vorgegebene Anwendung in Form von bereitgestellten Trainingsdaten bestimmt ist, wobei die Vorrichtung ein maschinenlesbares Speichermedium umfasst, auf dem Befehle gespeichert sind, die beim Ausführen durch einen Computer bewirkten, dass der Computer ein Verfahren mit folgenden Schritte ausführt: a) Bereitstellen (S1) einer Mehrzahl von zufällig ausgewählten Netzkonfigurationen (α); b) Trainieren (S2) von neuronalen Netzen konfiguriert mit den Netzkonfigurationen (α) und abhängig von jeweils zugehörigen ermittelten Hyperparameter (A) auf den bereitgestellten Trainingdsdaten, wobei das Trainieren (S2) solange ausgeführt wird, bis ein vorgegebenes Budget (b) aufgebraucht ist; c) Ermitteln (S3) für jedes der trainierten neuronalen Netze eine Performance (accurancy), insbesondere auf einem Teil der bereitgestellten Trainingsdaten; d) Auswerten (S4) der trainierten neuronalen Netze (α) hinsichtlich vorgegebenen Optimierungszielen (n_pars) e) Hinzufügen (S5) eines Tupels umfassend Netzkonfigurationen (α), Hyperparameter (A) und Performance (accurancy) und die Optimierungszielen (n_pars) zu einem weiteren Trainingsdatensatz, f) Erhöhen (S6), insbesondere verdoppeln, des Budget (b); g) Erzeugen (S7) einer neuen Netzkonfiguration abhängig von dem weiteren Trainingsdatensatz; h) Wiederhohlen von Schritt b) bis e) mit den neuen Netzkonfigurationen und Reduzieren des weiteren Trainingsdatensatzes und dann Ausführen der Schritte f) und g), wobei dieser Schritt des Wiederholens solange ausgeführt wird, bis beim Erhöhen des Budgets ein max Budget (bmax) erreicht wird; und i) Auswählen der Netzkonfigurationen (α) aus dem weiteren Trainingsdatensatz, welche eine Pareto-Menge hinsichtlich der Performance und mindestens eines weiteren Optimierungsziels entspricht.
  2. Vorrichtung nach Anspruch 1, wobei die gespeicherten Befehle derart ausgebildet sind, dass das Verfahren, das der Computer ausführt, wenn diese Befehle auf dem Computer ausgeführt werden, derart abläuft, dass für das Erzeugen der Netzkonfigurationen folgende Schritte ausgeführt werden: Auswählen einer Netzkonfiguration oder zumindest zwei Netzkonfigurationen aus dem weiteren Trainingsdatensatz, wobei, wenn zumindest zwei Netzkonfigurationen ausgewählt wurden, wird die neue Netzkonfiguration durch eine Kombination der ausgewählten Netzkonfigurationen erzeugt, wobei wenn eine Netzkombination ausgewählt wurde, wird die neue Netzkombination durch eine Mutation der ausgewählten Netzkonfiguration erzeugt.
  3. Vorrichtung nach Anspruch 1 oder 2, wobei die gespeicherten Befehle derart ausgebildet sind, dass das Verfahren, das der Computer ausführt, wenn diese Befehle auf dem Computer ausgeführt werden, derart abläuft, dass beim Reduzieren des weiteren Trainingsdatensatzes wird diejenige Netzkonfiguration aus dem weitern Trainingsdatensatz entfernt, die eine geringste Hypervolumenverbesserung (engl. hypervolume improvement) hervorruft.
  4. Vorrichtung nach Anspruch 3, wobei die gespeicherten Befehle derart ausgebildet sind, dass das Verfahren, das der Computer ausführt, wenn diese Befehle auf dem Computer ausgeführt werden, derart abläuft, dass die Hypervolumenverbesserung abhängig von einer nicht-dominanten Sortierung (engl. non-dominated sorting) und von jeweils einer Menge von Netzkonfigurationen mit und ohne der ausgewählten Netzkonfiguration ermittelt wird, wobei die Hypervolumenverbesserung eine Differenz zwischen einem aufgespanntem Hypervolumen mit und ohne der Netzkonfiguration charakterisiert.
  5. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die gespeicherten Befehle derart ausgebildet sind, dass das Verfahren, das der Computer ausführt, wenn diese Befehle auf dem Computer ausgeführt werden, derart abläuft, dass für das Erzeugen der Netzkonfigurationen folgende Schritte ausgeführt werden: Auswählen einer Netzkonfiguration mittels BOHB, wobei für BOHB eine Mehrzahl von mehrdimensionalen KDEs verwendet wird.
  6. Vorrichtung nach Anspruch 5, wobei die gespeicherten Befehle derart ausgebildet sind, dass das Verfahren, das der Computer ausführt, wenn diese Befehle auf dem Computer ausgeführt werden, derart abläuft, dass für Parameter der Netzkonfiguration, die einen kontinuierlichen Wertebereich aufweisen, wird ein Gauß'scher Kernel für die KDE verwendet und für Parameter der Netzkonfiguration, welche nicht- kontinuierlichen Wertebereiche aufweisen, wird ein Aitchison Aitkenk Kernel verwendet.
  7. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die gespeicherten Befehle derart ausgebildet sind, dass das Verfahren, das der Computer ausführt, wenn diese Befehle auf dem Computer ausgeführt werden, derart abläuft, dass zumindest ein Optimierungsziel eine physikalische Eigenschaft einer Hardwarekomponente charakterisiert, wobei ein neuronales Netz konfiguriert mit einer der Netzkonfigurationen auf der Hardwarekomponente ausgeführt wird.
  8. Steuergerät zum Trainieren eines neuronalen Netzes, wobei das Steuergerät ein maschinenlesbares Speichermedium umfasst, auf dem Befehle gespeichert sind, die beim Ausführen durch das Steuergerät bewirkten, dass dieses das Verfahren nach einem der Ansprüche 1 bis 7 ausführt.
  9. System zum Klassifizieren von Bilddaten, wobei das System wenigstens einen optischen Sensor, welcher ausgebildet ist, Bilddaten bereitzustellen, und ein Steuergerät nach Anspruch 8 aufweist, wobei das Steuergerät ausgebildet ist, durch den wenigstens einen optischen Sensor bereitgestellte Bilddaten zu klassifizieren.
DE202021102085.7U 2021-04-19 2021-04-19 Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen Active DE202021102085U1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE202021102085.7U DE202021102085U1 (de) 2021-04-19 2021-04-19 Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE202021102085.7U DE202021102085U1 (de) 2021-04-19 2021-04-19 Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen

Publications (1)

Publication Number Publication Date
DE202021102085U1 true DE202021102085U1 (de) 2021-05-05

Family

ID=75962874

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202021102085.7U Active DE202021102085U1 (de) 2021-04-19 2021-04-19 Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen

Country Status (1)

Country Link
DE (1) DE202021102085U1 (de)

Similar Documents

Publication Publication Date Title
EP3785177B1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neuronalen netzes
DE102018008685A1 (de) Verfahren zum Trainieren eines künstlichen neuronalen Netzes, künstliches neuronales Netz, Verwendung eines künstlichen neuronalen Netzes sowie entsprechendes Computerprogramm maschinenlesbares Speichermedium und entsprechende Vorrichtung
EP3748551A1 (de) Verfahren, vorrichtung und computerprogramm zum einstellen eines hyperparameters
DE102019210507A1 (de) Vorrichtung und computerimplementiertes Verfahren für die Verarbeitung digitaler Sensordaten und Trainingsverfahren dafür
DE102019214625A1 (de) Verfahren, Vorrichtung und Computerprogramm zum Erstellen eines künstlichen neuronalen Netzes
DE102021207613A1 (de) Verfahren zur Qualitätssicherung eines Systems
EP3785178A1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neuronalen netzes
DE202019105304U1 (de) Vorrichtung zum Erstellen eines künstlichen neuronalen Netzes
DE202021102085U1 (de) Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen
DE102021109756A1 (de) Verfahren und Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen
DE202021102086U1 (de) Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen
DE202021102084U1 (de) Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen
DE102021109757A1 (de) Verfahren und Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen
DE102013225768A1 (de) Verfahren und Vorrichtung zum Ermitteln eines LOLIMOT-Modells
DE102021109754A1 (de) Verfahren und Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen
WO2021063572A1 (de) Vorrichtung und verfahren zum verarbeiten von daten eines neuronalen netzes
DE102019207911A1 (de) Verfahren, Vorrichtung und Computerprogramm zur Vorhersage einer Lernkurve
WO2020207786A1 (de) Verfahren, vorrichtung und computerprogramm zum betreiben eines tiefen neuronalen netzes
DE202019103233U1 (de) Vorrichtung zum Einstellen eines Hyperparameters
DE202019105256U1 (de) Vorrichtung zum Erstellen eines maschinellen Lernsystems
EP3956820B1 (de) Verfahren, vorrichtung und computerprogramm zum erstellen eines neuronalen netzes
DE102021208158A1 (de) Verfahren und Vorrichtung zum Erzeugen eines lokal linearen Modellbaumes
WO2022129203A1 (de) Verfahren zum trainieren eines ml-systems, ml-system, computerprogramm, maschinenlesbares speichermedium und vorrichtung
EP1835442A2 (de) Bewertungsvorrichtung, Verfahren und Computerprogramm
DE202021103700U1 (de) Vorrichtung zum Erzeugen eines künstlichen neuronalen Netzes

Legal Events

Date Code Title Description
R207 Utility model specification