DE102022205547A1 - Verfahren zum Trainieren eines Convolutional Neural Networks - Google Patents

Verfahren zum Trainieren eines Convolutional Neural Networks Download PDF

Info

Publication number
DE102022205547A1
DE102022205547A1 DE102022205547.0A DE102022205547A DE102022205547A1 DE 102022205547 A1 DE102022205547 A1 DE 102022205547A1 DE 102022205547 A DE102022205547 A DE 102022205547A DE 102022205547 A1 DE102022205547 A1 DE 102022205547A1
Authority
DE
Germany
Prior art keywords
cnn
network
layer
candidate
cnns
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
DE102022205547.0A
Other languages
English (en)
Inventor
Stephan Kirstein
Linda Schubert
Stefan Hegemann
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.)
Continental Automotive Technologies GmbH
Original Assignee
Continental Automotive Technologies GmbH
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 Continental Automotive Technologies GmbH filed Critical Continental Automotive Technologies GmbH
Priority to DE102022205547.0A priority Critical patent/DE102022205547A1/de
Publication of DE102022205547A1 publication Critical patent/DE102022205547A1/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/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

Die Erfindung betrifft ein Verfahren (1) zum Trainieren eines Convolutional Neural Networks, CNNs. Dabei wird ein Trainingsdatensatz (2) für das CNN bereitgestellt, umfassend eine Vielzahl an Eingabedaten und den Eingabedaten zugehörigen Ausgabedaten. Des Weiteren wird ein Anfangs-CNNs (3) umfassend eine Eingabeschicht (12) und eine Ausgabeschicht (13) als CNN (4) einer ersten Stufe bereitgestellt. Die folgenden Trainingsschritte werden iterativ durchgeführt, wobei n eine natürliche Zahl größer oder gleich eins ist: Erstellen von zumindest zwei Kandidaten-CNNs (6) der (n+1)-ten Stufe durch Durchführen von zumindest zwei verschiedenen Modifikationen (5) des CNNs (4) der n-ten Stufe; Lernen (7) von Netzwerkgewichten der zumindest zwei Kandidaten-CNNs (6) der (n+1)-ten Stufe mittels des Trainingsdatensatzes (2); Erstellen einer Bewertung (8) der zumindest zwei Kandidaten-CNNs (6) der (n+1)-ten Stufe; und Auswahl des Kandidaten-CNNs (6) aus den zumindest zwei Kandidaten-CNNs (6) mit der besten Bewertung (8) als CNN (4) der (n+1)-ten Stufe. Das iterative Verfahrens bei Erfüllen einer Abbruchsbedingung abgebrochen, wobei bei Erfüllen der Abbruchsbedingung n+1 gleich N ist. Sodann wird das CNN aus den CNNs (4) der j-ten Stufe mit der besten Bewertung (8) als trainiertes CNN (11) ausgewählt, wobei j eine natürliche Zahl größer oder gleich 1 und kleiner oder gleich N ist und das trainierte CNN (11) wird ausgegeben.

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft ein Verfahren zum Trainieren eines Convolutional Neural Networks (CNNs) sowie ein Fahrzeug mit einer Rechnereinheit, die dazu ausgebildet ist, das gemäß besagtem Verfahren trainierte CNN auszuführen.
  • Hintergrund
  • Convolutional Neural Networks (CNNs) können dank vorangeschrittener Rechentechnik auf immer kompliziertere Sachverhalte mit zunehmender Komplexität angewendet werden. Häufig werden dazu vordefinierte und vortrainierte Netzwerke als Grundlage für neue Problemstellungen herangezogen. Dabei wird die zugrundeliegende Topologie vor allem durch den jeweiligen Designer des ursprünglichen Netzwerkes definiert.
  • Solange unbegrenzt Rechenzeit zur Verfügung steht, sind solche Ansätze eine gute Wahl. Jedoch sind oft bei deren Integration in ein komplexeres System (z.B. einer automatisierten Fahrfunktion bei einem Fahrzeug) Grenzen gesetzt, die durch die Begrenzung der Prozessoreinheiten des Steuergerätes oder des elektrisch/thermischen Budgets entstehen. Je kleiner daher das Netzwerk, das noch hinreichend gute Ergebnisse liefert, desto besser. Ein kleineres Netzwerk reduziert zudem auch die Gefahr des Overfittings, also dem auswendig lernen einer oft viel zu kleinen Trainingsbeispielmenge.
  • Um Netzwerke zu verkleinern gibt es verschiedene Pruning Strategien, die aber meist zu einer Verschlechterung der Netzwerkperformance führen.
  • Eine Alternative hierzu bildet ein selbst-organisierendes Training von CNNs.
  • Beispielsweise analysiert ein inkrementelles Verfahren vor allem den Netzwerkfehler, der oft ein Abstandsmaß basierend auf einer gewählten Norm ist, um geeignete Stellen im Netzwerk für neue Ressourcen zu identifizieren. Oft wird dann nur ein einzelnes Neuron in den größten Fehler-HotSpot generiert. Dies ermöglicht automatisch, dass das Netzwerk schnell eine gute Performance erreicht bzw. entlang des Lernfortschritts der Zeitpunkt gewählt werden kann, der die minimalen Güteanforderungen erfüllt. In CNNs dauert es jedoch sehr lange, bis dieses Verfahren zu einem trainierten CNN führt.
  • Zusammenfassung
  • Es ist daher die Aufgabe der Erfindung, ein verbessertes, insbesondere ein beschleunigtes, Verfahren zum Trainieren eines Convolutional Neural Networks (CNNs) bereitzustellen. Es ist ferner die Aufgabe der Erfindung, ein Fahrzeug mit einer Rechnereinheit bereitzustellen, wobei die Rechnereinheit ein derart trainiertes CNN ausführt. Diese Aufgabe wird durch den Gegenstand der unabhängigen Patentansprüche gelöst. Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen und der folgenden Beschreibung.
  • Ein Aspekt der Erfindung betrifft ein Verfahren zum Trainieren eines Convolutional Neural Networks (CNNs). Unter CNN wird dabei insbesondere ein künstliches neuronales Netz verstanden, das insbesondere zumindest je eine Faltungsschicht und Poolingschicht aufweist.
  • Das Verfahren umfasst das Bereitstellen eines Trainingsdatensatzes für das CNN. Der Trainingsdatensatz umfasst eine Vielzahl an Eingabedaten und den Eingabedaten zugehörigen Ausgabedaten. Die Ausgabedaten sind dabei beispielsweise manuell als gewünschte Ausgaben zu den jeweiligen Eingabedaten erzeugt worden.
  • Des Weiteren wird ein Anfangs-CNN bereitgestellt. Das Anfangs-CNN umfasst dabei mindestens eine Eingabeschicht und eine Ausgabeschicht.
  • Es werden nun iterativ die folgenden Trainingsschritte durchgeführt. Dabei wird das Anfangs-CNN als CNN einer ersten Stufe genommen. Auf diesem CNN der ersten Stufe werden zumindest zwei verschiedene Modifikationen durchgeführt, so dass zumindest zwei Kandidaten-CNNs der zweiten Stufe erhalten werden, wobei jedes der Kandidaten-CNNs durch eine der Modifikationen aus dem CNN der ersten Stufe entstanden ist.
  • Für jedes der so erhaltenen Kandidaten-CNNs werden nun die Netzwerkgewichte mittels des Trainingsdatensatzes gelernt. Dazu kann der Trainingsdatensatz in zwei Teile aufgeteilt werden, nämlich einen Lerndatensatz und einen Testdatensatz. Die Eingabedaten des Lerndatensatzes werden dazu der Eingabeschicht des Kandidaten-CNNs zugeführt und, wenn das Kandidaten-CNN aus den Eingabedaten Ausgaben erzeugt hat, werden diese mit den Ausgabedaten des Lerndatensatzes verglichen. Aufgrund dieses Vergleichs werden dann die Netzwerkgewichte des Kandidaten-CNNs angepasst. Dies kann beispielsweise durch Gradienten-Abstiegsverfahren aber auch durch Gradienten-Aufstiegsverfahren erfolgen. Mittels des Testdatensatzes wird zudem der Lernfortschritt des Kandidaten-CNNs überwacht und ein Ende des Lernens bestimmt, beispielsweise, wenn die Verbesserung nur noch sehr gering ist oder wenn sogar mit fortschreitendem Lernen eine Verschlechterung eintritt, was ein Zeichen für beginnendes Overfitting ist.
  • Die so erhaltenen Kandidaten-CNNs werden sodann hinsichtlich ihrer Güte bewertet. Dabei wird dann das Kandidaten-CNN mit der besten Bewertung als CNN der zweiten Stufe ausgewählt.
  • Es wird nun iterativ weiter verfahren, wobei jeweils aus dem CNN der n-ten Stufe durch Modifikationen Kandidaten-CNNs der (n+1)-ten Stufe erstellt werden, die Netzwerkgewichte gelernt werden, eine Bewertung erstellt wird und das Kandidaten-CNN der (n+1)-ten Stufe mit der besten Bewertung als CNN der (n+1)-ten Stufe verwendet wird. Hierbei ist n eine natürliche Zahl größer oder gleich eins.
  • Nach jeder Iteration wird auch eine Abbruchsbedingung geprüft und, falls diese Abbruchsbedingung erfüllt ist, wird das iterative Verfahren abgebrochen. Der Wert für n+1, bei dem das iterative Verfahren abgebrochen wird, wird mit N bezeichnet.
  • Aus den CNNs der j-ten Stufe, wobei j eine natürliche Zahl größer oder gleich 1 und kleiner oder gleich N ist, wird nun das mit der besten Bewertung ausgewählt, als trainiertes CNN bezeichnet und ausgegeben.
  • Mit anderen Worten werden die Netzwerkgewichte für verschiedene CNNs, die jeweils unterschiedlich modifiziert wurden, unabhängig voneinander gelernt. Es wird dann das CNN übernommen und als Ausgangspunkt für die nächste Iteration verwendet, das die beste Bewertung erhält.
  • Das wie oben beschriebene, durch inkrementelle Modifikationen erhaltene trainierte CNN ist ein kleines CNN, das gerade so groß ist, wie es der Trainingsdatensatz verlangt. Es eignet sich daher insbesondere für kleinere Recheneinheiten. Des Weiteren wird dadurch, dass das trainierte CNN vergleichsweise klein ist, die Gefahr des Overfittings reduziert.
  • In einigen Ausführungsformen weist das Anfangs-CNN eine minimale Struktur zwischen der Eingabeschicht und der Ausgabeschicht auf. Aufbauend auf dieser minimalen Struktur wird dann das CNN durch die Modifikationen vergrößert. Durch das inkrementelle Training des CNNs entstehen viele Zwischenstufen der finalen Ausprägung, dies hilft vor allem bei der Auswahl des geeigneten Netzwerkes für ein vorgegebenes Budget an Rechenoperationen.
  • In einigen Ausführungsformen weist die minimale Struktur keine oder nur eine Netzwerkschicht zwischen der Eingabeschicht und der Ausgabeschicht auf. Zu den Modifikationen zählen in diesem Fall also insbesondere Hinzufügungen von Netzwerkschichten.
  • In einigen Ausführungsformen weist die minimale Struktur eine vorgegebene Anzahl an Netzwerkschichten zwischen der Eingabeschicht und der Ausgabeschicht auf. Diese vorgegebene Anzahl an Netzwerkschichten stellt so eine gewisse Grundstruktur bereit, insbesondere welche Operationen in den Schichten stattfinden können. Dies dient als eine grobe Orientierung für das inkrementelle Lernverfahren, an welchen Stellen des Netzwerkes Modifikationen durchgeführt werden können. Die Netzwerkschichten zwischen der Eingabeschicht und der Ausgabeschicht weisen dabei insbesondere eine geringe Anzahl an Neuronen auf. Unter einer geringen Anzahl an Neuronen wird dabei zumindest ein Neuron pro Netzwerkschicht verstanden, die Anzahl der Neuronen pro Netzwerkschicht kann aber auch ungefähr der Anzahl an Neuronen in der Ausgabeschicht entsprechen.
  • In einigen Ausführungsformen umfassen die Modifikationen grobe Modifikationen, wobei die groben Modifikationen das Hinzufügen von großen Blöcken an Neuronen umfassen.
  • In einer Ausführungsform orientiert sich eine grobe Modifikation anhand der ursprünglichen CNN Netzwerktopologie. Vor allem in Hinsicht auf der maximalen Anzahl an möglichen Faltungsschichten, aber auch an sinnvollen Gruppierungen von Netzwerkblöcken.
  • Alternativ, oder zusätzlich, dazu umfassen die Modifikationen mittelfeine Modifikationen, die das Verändern der Dimensionierung der einzelnen großen Blöcke, das Verändern von Transferfunktionen und/oder das Verändern von Poolingoperationen umfassen. Durch diese mittelfeinen Modifikationen werden also die einzelnen Blöcke verfeinert. Als Beispiele für Transferfunktionen seien lineare Funktionen, Sigmoid-Funktionen, tangens hyperbolicus-Funktionen, Gaußsche Funktionen, Heaviside-Funktionen und Rampenfunktionen genannt.
  • Alternativ, oder zusätzlich, dazu umfassen die Modifikationen feine Modifikationen, die das Hinzufügen und/oder Entfernen von wenigen Neuronen, insbesondere von einzelnen Neuronen umfassen. Mit wenigen Neuronen ist dabei eine Anzahl an Neuronen gemeint, die deutlich geringer, also beispielsweise einen Faktor 10 geringer, als die Anzahl der Neuronen in einem großen Block ist.
  • In einigen Ausführungsformen werden die großen Blöcke zu einer oder mehreren bestehenden Netzwerkschichten hinzugefügt. Dies ist insbesondere dann von Vorteil, wenn die minimale Struktur viele Netzwerkschichten mit einer geringen Anzahl an Neuronen aufweist, da diese Netzwerkschichten durch das Hinzufügen der großen Blöcke vergrößert werden. Sofern die großen Blöcke bei einer Modifikation zu mehr als einer bestehenden Netzwerkschicht hinzugefügt werden, dann sind diese mehreren Netzwerkschichten vorzugsweise benachbarte Netzwerkschichten, beispielsweise eine Faltungsschicht und eine Poolingschicht.
  • In einigen Ausführungsformen sind die großen Blöcke zumindest eine Netzwerkschicht. Es wird dem CNN bei der Modifikation also zumindest eine ganze Netzwerkschicht hinzugefügt. Vorzugsweise werden dem CNN gleich eine Faltungsschicht und eine benachbarte Poolingschicht hinzugefügt. Das Hinzufügen einer Poolingschicht ist dabei besonders vorteilhaft, da eine Poolingschicht einen guten Kompromiss zwischen schneller Konvergenz der Datenmenge, das heißt, Datenkompression, und der Weitergabe essenzieller Informationen darstellt.
  • In einigen Ausführungsformen wird der Ort, an dem die großen Blöcke hinzugefügt werden, zufällig ausgewählt, es handelt sich hier also um eine zufallsbasierte Auswahlstrategie. Insbesondere, wenn das CNN noch eine geringe Anzahl an Netzwerkschichten aufweist, ist diese Auswahlstrategie von Vorteil, da sie viele Möglichkeiten erprobt ohne einem Schema folgen zu müssen. Bei einem schon großen CNN mit vielen Netzwerkschichten hingegen, kann die zufallsbasierte Auswahlstrategie zu langsam zu einem konvergierenden Ergebnis führen und/oder eine zu große Anzahl an parallelen Kandidaten-CNNs beanspruchen.
  • Alternativ, oder zusätzlich, können Veränderungen der Netzwerkgewichte beim Lernen des CNNs der vorhergehenden Stufe analysiert werden. Insbesondere eine hohe Amplitude der durch ein geändertes Netzwerkgewicht hervorgerufenen Veränderungen deutet auf eine vielversprechende Stelle hin, so dass die großen Blöcke vorzugsweise in der Nähe der Netzwerkschichten, die diese hohen Amplituden verursachen, hinzugefügt werden.
  • Alternativ, oder zusätzlich, kann der Ort des Hinzufügens ausgehend von der Eingabeschicht und der Ausgabeschicht hin zur Mitte des CNNs erfolgen. Es wird also mit fortschreitenden Iterationen von den Netzwerkgrenzen zur Mitte des Netzwerkes hin vorgegangen.
  • In einigen Ausführungsformen werden die groben Modifikationen vor den mittelfeinen und/oder feinen Modifikationen und/oder die mittelfeinen Modifikationen vor den feinen Modifikationen durchgeführt. Insbesondere werden also zunächst die groben Modifikationen, dann die mittelfeinen Modifikationen und zuletzt die feinen Modifikationen durchgeführt. Die Kriterien, wann von einer Art der Modifikation zur nächsten Art der Modifikation gewechselt wird, können dabei beispielsweise dadurch festgelegt werden, dass eine vorgegebene Schwelle eines Maßes des Netzwerkfehlers unterschritten wird, oder dass eine Veränderung des Maßes des Netzwerkfehlers eine weitere vorgegebene Schwelle unterschreitet.
  • In einigen Ausführungsformen werden beim Lernen der Netzwerkgewichte alle Netzwerkgewichte verändert. In jedem iterativen Zyklus sind also alle Netzwerkgewichte plastisch, also auch Netzwerkteile früherer Iterationen können noch verändert werden. Mit fortschreitender Größe des CNNs führt dies jedoch zu einer langen Dauer des Trainings.
  • Alternativ, oder zusätzlich, können die Netzwerkgewichte in Abhängigkeit von der Iteration, bei der die Neuronen dem Netzwerk hinzugefügt wurden, verändert werden. Dabei werden die Netzwerkgewichte von neu hinzugefügten Neuronen stärker verändert werden als die Netzwerkgewichte von früher hinzugefügten Neuronen. Das heißt, dass die Lernrate mit steigendem Alter des jeweiligen inkrementell gelernten Blocks immer weiter sinkt. Somit können neue Informationen im Netzwerk abgelegt werden, ohne bereits gelerntes Wissen auszulöschen. Dies ermöglicht weiterhin ein Nachtrainieren von großen CNNs, eine schnelle Prototypengenerierung sowie kontinuierliches Trainieren.
  • Alternativ, oder zusätzlich, können nur die Netzwerkgewichte, deren Neuronen in der letzten Iteration dem Netzwerk hinzugefügt wurden, verändert werden. Auch hier wird bereits gelerntes Wissen beibehalten.
  • Es ist denkbar, dass die zuvor genannten Varianten zum Lernen der Netzwerkgewichte in unterschiedlichen Phasen des iterativen Verfahrens auftreten: während am Anfang noch alle Netzwerkgewichte verändert werden, werden zu einem späteren Zeitpunkt im iterativen Verfahren die Netzwerkgewichte in Abhängigkeit von der Iteration, bei der die Neuronen dem Netzwerk hinzugefügt wurden, verändert, oder nur noch die Netzwerkgewichte verändert, deren Neuronen in der letzten Iteration hinzugefügt wurden.
  • In einigen Ausführungsformen ist die Bewertung ein Maß eines Netzwerkfehlers. Beispielsweise kann die Bewertung als Summe der quadratischen Abweichungen der vom CNN erzeugten Ausgabe und der Ausgabedaten des Trainingsdatensatzes definiert werden. Alternativ dazu kann die Bewertung ein Maß eines Performancegewinns sein, beispielsweise eine Kombination aus dem Maß des Netzwerkfehlers und der dafür benötigten Rechenleistung.
  • In einigen Ausführungsformen ist die Abbruchsbedingung ein Unterschreiten der Veränderung eines Maßes eines Netzwerkfehlers von der vorherigen Iteration zur aktuellen Iteration unter eine vordefinierte erste Schwelle. Das heißt, das iterative Verfahren wird abgebrochen, wenn sich die vom CNN gelieferten Ergebnisse nicht mehr oder nur noch kaum verbessern. Alternativ ist die Abbruchsbedingung ein Unterschreiten des Maßes des Netzwerkfehlers unter eine vordefinierte zweite Schwelle. Das heißt, das iterative Verfahren wird abgebrochen, wenn eine gewünschte Netzwerkleistung erreicht ist.
  • In einigen Ausführungsformen sind die Eingabedaten Sensordaten, insbesondere von Sensoren eines Fahrzeugs, und insbesondere die Ausgabedaten Klassifikationen der Eingabedaten. Das heißt, dass das CNN eine direkte Sensorauswertung bietet. Zu den Sensoren, die die Sensordaten liefern, können beispielsweise Kameras, Stereokameras, Infrarotkameras, Radar und/oder Lidar zählen. Die Klassifikationen der Eingabedaten sind dann beispielsweise bestimmte Objekte und/oder Objektgruppen, die mit Hilfe der Sensordaten erkannt werden können.
  • In einigen Ausführungsformen werden aktuelle Sensordaten eines Fahrzeugs mittels des trainierten CNNs ausgewertet und die Ergebnisse dieser Auswertung in einem Fahrerassistenzsystem und/oder in einem autonomen Fahrsystem verwendet. Dadurch, dass das trainierte CNN klein ist und wenig Rechenleistung beansprucht, kann es auch leicht vom Steuergerät des Fahrzeugs ausgeführt werden und dabei trotzdem eine gute Leistung bringen.
  • Ein weiterer Aspekt der Erfindung betrifft ein Fahrzeug, umfassend zumindest einen Sensor, ein Fahrerassistenzsystem und/oder ein autonomes Fahrsystem sowie eine Rechnereinheit, die dazu ausgebildet ist, ein gemäß der obigen Beschreibung trainiertes CNN auszuführen. Die Vorteile dieses Fahrzeugs ergeben sich aus den in der obigen Beschreibung genannten Vorteilen.
  • Zur weiteren Verdeutlichung wird die Erfindung anhand von in den Figuren abgebildeten Ausführungsformen beschrieben. Diese Ausführungsformen sind nur als Beispiel, nicht aber als Einschränkung zu verstehen.
  • Kurze Beschreibung der Figuren
  • Dabei zeigt:
    • 1 einen Flowchart eines Ausführungsbeispiels eines Verfahrens zum Trainieren eines Convolutional Neural Networks;
    • 2a eine schematische Darstellung eines CNNs einer ersten Stufe;
    • 2b - 2d schematische Darstellungen von Kandidaten-CNNs;
    • 3a eine schematische Darstellung eines CNNs einer n-ten Stufe; und
    • 3b - 3d schematische Darstellungen von Kandidaten-CNNs.
  • Detaillierte Beschreibung von Ausführungsformen
  • 1 zeigt ein Ausführungsbeispiel eines Verfahrens 1 zum Trainieren eines Convolutional Neural Networks (CNNs).
  • Zunächst wird ein Trainingsdatensatz 2 für das CNN bereitgestellt, der eine Vielzahl an Eingabedaten und den Eingabedaten zugehörigen Ausgabedaten umfasst.
  • Des Weiteren wird ein Anfangs-CNN 3 bereitgestellt, das eine Eingabeschicht und eine Ausgabeschicht umfasst. Das Anfangs-CNN 3 wird sodann als CNN 4 einer ersten Stufe verwendet.
  • Auf dem CNN 4 der ersten Stufe werden verschiedene Modifikationen 5.1, 5.2 und 5.3 durchgeführt. Dabei sind die drei verschiedenen Modifikationen 5 hier nur exemplarisch zu verstehen. Es kann sich auch nur um zwei verschiedene Modifikationen 5 handeln, die Anzahl an verschiedenen Modifikationen 5 kann aber auch deutlich größer sein. Die so durch die Modifikationen 5 erhaltenen CNNs werden als Kandidaten-CNNs 6.1, 6.2 und 6.3 bezeichnet.
  • Bei diesen Kandidaten-CNNs 6 werden nun Netzwerkgewichte mittels des Trainingsdatensatzes 2 gelernt 7.1, 7.2 und 7.3. Sodann werden die gelernten Kandidaten-CNNs 6 mittels des Trainingsdatensatzes 2 bewertet 8.1, 8.2 und 8.3. Die Bewertung 8 ist dabei beispielsweise ein Maß eines Netzwerkfehlers oder ein Maß eines Performancegewinns.
  • Sodann wird ein Vergleich 9 der Bewertungen 8.1, 8.2 und 8.3 durchgeführt. Insbesondere wird dabei das Kandidaten-CNN 6 bestimmt, das die beste Bewertung 8 erhalten hat. Die beste Bewertung 8 ist dabei beispielsweise die Bewertung 8 mit dem kleinsten Netzwerkfehler oder die Bewertung 8 mit dem größten Performancegewinn. Das so ausgewählte Kandidaten-CNN 6 wird dann zusammen mit seiner Bewertung 8 zur Prüfung 10 übergeben.
  • Bei der Prüfung 10 wird zunächst geprüft, ob eine Abbruchsbedingung erfüllt ist. Eine solche Abbruchsbedingung ist beispielsweise ein Unterschreiten einer Veränderung des Maßes des Netzwerkfehlers unter eine vordefinierte erste Schwelle. Alternativ dazu kann die Abbruchsbedingung ein Unterschreiten des Maßes des Netzwerkfehlers unter eine vordefinierte zweite Schwelle sein.
  • Ist die Abbruchsbedingung nicht erfüllt, wird eine weitere Iteration des Verfahrens 1 durchgeführt, indem das ausgewählte Kandidaten-CNN 6 als CNN 4 der nächsten Stufe verwendet wird. Ist hingegen die Abbruchsbedingung erfüllt, wird das ausgewählte Kandidaten-CNN 6 als trainiertes CNN 11 ausgegeben.
  • Mit dem hier vorgestellten Verfahren 1 lassen sich kleine trainierte CNNs 11 erzeugen, die wenig Rechenleistung benötigen und trotzdem gute Ergebnisse liefern.
  • 2a zeigt eine schematische Darstellung eines CNNs 4 einer ersten Stufe. Dieses CNN 4 weist eine Eingabeschicht 12, eine Ausgabeschicht 13 sowie mehrere Netzwerkschichten 14.1, 14.2 und 14.3 zwischen der Eingabeschicht 12 und der Ausgabeschicht 13 auf. Die Eingabeschicht 12, Ausgabeschicht 13 und die Netzwerkschichten 14 umfassen dabei eine Mehrzahl an Neuronen, die der Übersichtlichkeit halber nicht mit einem extra Bezugszeichen versehen sind. Des Weiteren sind die Verbindungen von den Neuronen einer Schicht zu den Neuronen der folgenden Schicht dargestellt. Es versteht sich, dass es sich hier nur um eine schematische Darstellung handelt und dass in einem echten CNN 4 die Anzahl der Neuronen pro Schicht 12, 13, 14 größer sein wird, die unterschiedlichen Schichten 12, 13, 14 unterschiedliche Anzahlen von Neuronen aufweisen können und auch eine andere Anzahl an Netzwerkschichten 14 vorhanden sein kann.
  • 2b zeigt eine schematische Darstellung eines Kandidaten-CNNs 6.1, das durch Hinzufügen eines Blocks an Neuronen zur Netzwerkschicht 14.1 entstanden ist.
  • Ebenso zeigen 2c und 2d schematische Darstellungen von Kandidaten-CNNs 6.2 und 6.3, die durch Hinzufügen eines Blocks an Neuronen zur Netzwerkschicht 14.2 bzw. 14.3 entstanden sind.
  • Im weiteren Verfahren 1 werden, wie oben beschrieben, die Netzwerkgewichte der Kandidaten-CNNs 6.1, 6.2 und 6.3 gelernt und die so erhaltenen Kandidaten-CNNs 6 bewertet. Das Kandidaten-CNN 6 mit der besten Bewertung wird dann als CNN 4 der nächsten Stufe übernommen.
  • 3a zeigt eine schematische Darstellung eines CNNs 4 einer n-ten Stufe. Dieses CNN 4 weist eine Eingabeschicht 12, eine Ausgabeschicht 13 sowie mehrere Netzwerkschichten 14.1 und 14.2 zwischen der Eingabeschicht 12 und der Ausgabeschicht 13 auf. Auf die Darstellung der einzelnen Neuronen sowie die Verbindungen der einzelnen Neuronen zueinander wurde aus Gründen der Übersichtlichkeit verzichtet.
  • 3b zeigt eine schematische Darstellung eines Kandidaten-CNNs 6.1, das durch Hinzufügen einer weiteren Netzwerkschicht 14.3 zwischen der Eingabeschicht 12 und der ersten Netzwerkschicht 14.1 entstanden ist. Dabei wäre es auch möglich, bei einer Modifikation mehr als eine Netzwerkschicht einzufügen, beispielsweise eine Faltungsschicht und eine Poolingschicht.
  • Ebenso zeigen 3c und 3d schematische Darstellungen von Kandidaten-CNNs 6.2 und 6.3, die durch Hinzufügen eines weiteren Netzwerkschicht 14.3 zwischen der ersten Netzwerkschicht 14.1 und der zweiten Netzwerkschicht 14.2 bzw. zwischen der zweiten Netzwerkschicht 14.2 und der Ausgabeschicht 13 entstanden sind.
  • Im weiteren Verfahren 1 werden, wie oben beschrieben, die Netzwerkgewichte der Kandidaten-CNNs 6.1, 6.2 und 6.3 gelernt und die so erhaltenen Kandidaten-CNNs 6 bewertet. Das Kandidaten-CNN 6 mit der besten Bewertung wird dann als CNN 4 der nächsten Stufe übernommen.
  • Bezugszeichenliste
  • 1
    Verfahren
    2
    Trainingsdatensatz
    3
    Anfangs-CNN
    4
    CNN
    5
    Modifikationen
    6
    Kandidaten-CNNs
    7
    Lernen
    8
    Bewertung
    9
    Vergleich
    10
    Prüfung
    11
    trainiertes CNN
    12
    Eingabeschicht
    13
    Ausgabeschicht
    14
    Netzwerkschicht

Claims (15)

  1. Verfahren (1) zum Trainieren eines Convolutional Neural Networks, CNNs, umfassend: Bereitstellen eines Trainingsdatensatzes (2) für das CNN, umfassend eine Vielzahl an Eingabedaten und den Eingabedaten zugehörigen Ausgabedaten; Bereitstellen eines Anfangs-CNNs (3) umfassend eine Eingabeschicht (12) und eine Ausgabeschicht (13) als CNN (4) einer ersten Stufe; iteratives Durchführen der folgenden Trainingsschritte, wobei n eine natürliche Zahl größer oder gleich eins ist: Erstellen von zumindest zwei Kandidaten-CNNs (6) der (n+1)-ten Stufe durch Durchführen von zumindest zwei verschiedenen Modifikationen (5) des CNNs (4) der n-ten Stufe; Lernen (7) von Netzwerkgewichten der zumindest zwei Kandidaten-CNNs (6) der (n+1)-ten Stufe mittels des Trainingsdatensatzes (2); Erstellen einer Bewertung (8) der zumindest zwei Kandidaten-CNNs (6) der (n+1)-ten Stufe; Auswahl des Kandidaten-CNNs (6) aus den zumindest zwei Kandidaten-CNNs (6) mit der besten Bewertung (8) als CNN (4) der (n+1)-ten Stufe, Abbruch des iterativen Verfahrens bei Erfüllen einer Abbruchsbedingung, wobei bei Erfüllen der Abbruchsbedingung n+1 gleich N ist; Auswahl des CNNs aus den CNNs (4) der j-ten Stufe mit der besten Bewertung (8) als trainiertes CNN (11), wobei j eine natürliche Zahl größer oder gleich 1 und kleiner oder gleich N ist; und Ausgabe des trainierten CNNs (11).
  2. Verfahren (1) nach Anspruch 1, wobei das Anfangs-CNN (3) eine minimale Struktur zwischen der Eingabeschicht (12) und der Ausgabeschicht (13) aufweist.
  3. Verfahren (1) nach Anspruch 2, wobei die minimale Struktur keine oder nur eine Netzwerkschicht (14) zwischen der Eingabeschicht (12) und der Ausgabeschicht (13) aufweist.
  4. Verfahren (1) nach Anspruch 2, wobei die minimale Struktur eine vorgegebene Anzahl an Netzwerkschichten (14) zwischen der Eingabeschicht (12) und der Ausgabeschicht (13) aufweist, wobei insbesondere jede der Netzwerkschichten (14) zwischen der Eingabeschicht (12) und der Ausgabeschicht (13) eine geringe Anzahl an Neuronen aufweisen.
  5. Verfahren (1) nach einem der Ansprüche 1 bis 4, wobei die Modifikationen (5) zumindest eines der folgenden umfassen: grobe Modifikationen, umfassend das Hinzufügen von großen Blöcken an Neuronen; mittelfeine Modifikationen, umfassend das Verändern der Dimensionierung der einzelnen großen Blöcke, das Verändern von Transferfunktionen und/oder das Verändern von Poolingoperationen; und feine Modifikationen, umfassend das Hinzufügen und/oder Entfernen von wenigen Neuronen, insbesondere von einzelnen Neuronen.
  6. Verfahren (1) nach Anspruch 5, wobei die großen Blöcke zu einer oder mehreren bestehenden Netzwerkschichten (14) hinzugefügt werden.
  7. Verfahren (1) nach Anspruch 5 oder 6, wobei die großen Blöcke zumindest eine Netzwerkschicht (14), ganz insbesondere eine Faltungsschicht und eine Poolingschicht, sind.
  8. Verfahren (1) nach einem der Ansprüche 5 bis 7, wobei bei den groben Modifikationen der Ort des Hinzufügens von großen Blöcken nach zumindest einer der folgenden Varianten erfolgt: zufälliges Auswählen des Orts des Hinzufügens; Analyse der Veränderungen der Netzwerkgewichte beim Lernen (7) des CNNs (4) der vorhergehenden Stufe und Auswahl des Orts des Hinzufügens in der Nähe von Veränderungen mit einer hohen Amplitude; und Auswählen des Orts des Hinzufügens ausgehend von der Eingabeschicht (12) und der Ausgabeschicht (13) hin zur Mitte des CNNs.
  9. Verfahren (1) nach einem der Ansprüche 5 bis 8, wobei die groben Modifikationen vor den mittelfeinen und/oder feinen Modifikationen und/oder die mittelfeinen Modifikationen vor den feinen Modifikationen durchgeführt werden.
  10. Verfahren (1) nach einem der Ansprüche 1 bis 9, wobei das Lernen der Netzwerkgewichte nach zumindest einer der folgenden Varianten erfolgt: Verändern aller Netzwerkgewichte; Verändern der Netzwerkgewichte in Abhängigkeit von der Iteration, bei der die Neuronen dem Netzwerk hinzugefügt wurden, wobei die Netzwerkgewichte von neuer hinzugefügten Neuronen stärker verändert werden als die Netzwerkgewichte von früher hinzugefügten Neuronen; und Verändern nur der Netzwerkgewichte, deren Neuronen in der letzten Iteration dem Netzwerk hinzugefügt wurden.
  11. Verfahren (1) nach einem der Ansprüche 1 bis 10, wobei die Bewertung (8) ein Maß eines Netzwerkfehlers oder ein Maß eines Performancegewinns ist.
  12. Verfahren (1) nach einem der Ansprüche 1 bis 11, wobei die Abbruchsbedingung ein Unterschreiten der Veränderung eines Maßes eines Netzwerkfehlers von der vorherigen Iteration zur aktuellen Iteration unter eine vordefinierte erste Schwelle oder ein Unterschreiten des Maßes des Netzwerkfehlers unter eine vordefinierte zweite Schwelle ist.
  13. Verfahren (1) nach einem der Ansprüche 1 bis 12, wobei die Eingabedaten Sensordaten, insbesondere von Sensoren eines Fahrzeugs, sind und insbesondere die Ausgabedaten Klassifikationen der Eingabedaten sind.
  14. Verfahren (1) nach Anspruch 13, ferner umfassend: Auswerten von aktuellen Sensordaten mittels des trainierten CNNs (11); und Verwenden der Ergebnisse der Auswertung in einem Fahrerassistenzsystem und/oder in einem autonomen Fahrsystem.
  15. Fahrzeug, umfassend zumindest einen Sensor, ein Fahrerassistenzsystem und/oder ein autonomes Fahrsystem sowie eine Rechnereinheit, die dazu ausgebildet ist, ein gemäß Anspruch 13 trainiertes CNN (11) auszuführen.
DE102022205547.0A 2022-05-31 2022-05-31 Verfahren zum Trainieren eines Convolutional Neural Networks Pending DE102022205547A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022205547.0A DE102022205547A1 (de) 2022-05-31 2022-05-31 Verfahren zum Trainieren eines Convolutional Neural Networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022205547.0A DE102022205547A1 (de) 2022-05-31 2022-05-31 Verfahren zum Trainieren eines Convolutional Neural Networks

Publications (1)

Publication Number Publication Date
DE102022205547A1 true DE102022205547A1 (de) 2023-11-30

Family

ID=88696775

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022205547.0A Pending DE102022205547A1 (de) 2022-05-31 2022-05-31 Verfahren zum Trainieren eines Convolutional Neural Networks

Country Status (1)

Country Link
DE (1) DE102022205547A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021247737A1 (en) 2020-06-04 2021-12-09 Google Llc Automatic selection of quantization and filter removal optimization under energy constraints
DE102021200643B3 (de) 2021-01-25 2022-03-31 Volkswagen Aktiengesellschaft Verfahren zur Umfelderkennung für teilautonome oder autonome Fahrfunktionen eines Kraftfahrzeugs mittels eines neuronalen Netzes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021247737A1 (en) 2020-06-04 2021-12-09 Google Llc Automatic selection of quantization and filter removal optimization under energy constraints
DE102021200643B3 (de) 2021-01-25 2022-03-31 Volkswagen Aktiengesellschaft Verfahren zur Umfelderkennung für teilautonome oder autonome Fahrfunktionen eines Kraftfahrzeugs mittels eines neuronalen Netzes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HE, Xin; ZHAO, Kaiyong; CHU, Xiaowen: AutoML: A Survey of the State-of-the-Art. arXiv preprint arXiv:1908.00709v6, 2021

Similar Documents

Publication Publication Date Title
DE202017102235U1 (de) Trainingssystem
DE202017102238U1 (de) Aktorsteuerungssystem
EP3785177A1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neurona-len netzes
DE3853880T2 (de) Einrichtung zur mustererkennung.
EP3701433B1 (de) Verfahren, vorrichtung und computerprogramm zur erstellung eines tiefen neuronalen netzes
WO2014187828A1 (de) Methode zur ermittlung eines modells einer ausgangsgrösse eines technischen systems
WO2020094534A1 (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
EP0901658B1 (de) Verfahren zur optimierung eines fuzzy-regelsatzes durch einen rechner
EP3785169A1 (de) Verfahren und vorrichtung zur umsetzung eines eingangsbildes einer ersten domäne in ein ausgangsbild einer zweiten domäne
DE102019214625A1 (de) Verfahren, Vorrichtung und Computerprogramm zum Erstellen eines künstlichen neuronalen Netzes
DE202019105304U1 (de) Vorrichtung zum Erstellen eines künstlichen neuronalen Netzes
DE102022205547A1 (de) Verfahren zum Trainieren eines Convolutional Neural Networks
EP0890153A1 (de) Verfahren zur ermittlung von zur entfernung geeigneten gewichten eines neuronalen netzes mit hilfe eines rechners
DE69120854T2 (de) Lernverfahren fÜr Datenverarbeitungssystem
WO2020193481A1 (de) Verfahren und vorrichtung für training und herstellung eines künstlichen neuronalen netzes
DE102019115092A1 (de) Bestimmen einer Objekterkennungsrate eines künstlichen neuronalen Netzes zur Objekterkennung für ein automatisiertes Kraftfahrzeug
DE102019216973A1 (de) Lernverfahren für neuronale netze basierend auf evolutionären algorithmen
DE202019105256U1 (de) Vorrichtung zum Erstellen eines maschinellen Lernsystems
DE102018217966A1 (de) Verfahren zum Steuern oder Regeln eines technischen Systems
DE102021208472B3 (de) Computerimplementiertes Verfahren zum Trainieren eines Machine-Learning-Modells für ein Fahrzeug oder einen Roboter
DE102021132025A1 (de) Verfahren zum Bestimmen ähnlicher Szenarien, Trainingsverfahren und Trainingssteuergerät
DE202021102084U1 (de) Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen
DE102021115425A1 (de) Verfahren zum Übertragen eines Netzwerkverhaltens eines trainierten Startnetzwerkes auf ein Zielnetzwerk ohne Verwendung eines Originaldatensatzes
DE102021214552A1 (de) Verfahren zum Evaluieren eines trainierten tiefen neuronalen Netz
DE202019102339U1 (de) Vorrichtung zur Erzeugung eines Bildes

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, 30165 HANNOVER, DE