DE102019215912A1 - Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks - Google Patents

Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks Download PDF

Info

Publication number
DE102019215912A1
DE102019215912A1 DE102019215912.5A DE102019215912A DE102019215912A1 DE 102019215912 A1 DE102019215912 A1 DE 102019215912A1 DE 102019215912 A DE102019215912 A DE 102019215912A DE 102019215912 A1 DE102019215912 A1 DE 102019215912A1
Authority
DE
Germany
Prior art keywords
data
network
sub
layer
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
DE102019215912.5A
Other languages
English (en)
Inventor
Konrad Groh
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
Original Assignee
Robert Bosch 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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102019215912.5A priority Critical patent/DE102019215912A1/de
Publication of DE102019215912A1 publication Critical patent/DE102019215912A1/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/045Combinations of networks

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

Gemäß einem Ausführungsbeispiel wird ein Verfahren zum computer-implementierten Betreiben eines neuronalen Netzwerks beschrieben, wobei das neuronale Netzwerk eine Folge von mehreren Netzwerk-Schichten und mindestens eine der Folge nachfolgende Netzwerk-Schicht aufweist, wobei das Verfahren das Erzeugen eines Datensatzes mittels der Folge von mehreren Schichten des neuronalen Netzwerks unter Verwendung von Sensordaten, wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine vollständig verbundene Schicht ist oder wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist, das Bilden von mehreren Unterdatensätzen des Datensatzes, wobei jeder Unterdatensatz mehrere Datenwerte aufweist, das Kombinieren der Datenwerte der Unterdatensätze mittels einer Operation, die invariant unter einer Permutation der Unterdatensätze ist; und das Ermitteln eines Klassifikationsergebnisses oder eines Regressionsergebnisses für die Sensordaten mittels der mindestens einen der letzten Netzwerk-Schicht der Folge von mehreren Netzwerk-Schichten nachfolgenden Netzwerk-Schicht aufweist, wobei in dem Fall, dass die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist, die Unterdatensätze Merkmalskarten sind.

Description

  • Verschiedene Ausführungsbeispiele betreffen allgemein eine Vorrichtung und ein Verfahren zum Trainieren eines neuronalen Netzwerks.
  • Neuronale Netze haben heutzutage ein breites Anwendungsspektrum, und werden z.B. eingesetzt, um Objekte auf Bilddaten zu erkennen oder Roboter und selbstfahrende Fahrzeuge zu steuern. Dank ihrer Vielzahl an Parameter können sie sehr komplexe Datensätze verarbeiten, und werden in der Regel mit dem Ziel trainiert für spätere unbekannte Eingabedaten gute Vorhersagen (engl.: predictions) zu treffen, z.B. die Objekte in einem Bild möglichst richtig zu klassifizieren.
  • Beim Trainieren eines neuronalen Netzwerks kann es allerdings passieren, dass das Netzwerk sich zu stark an den Besonderheiten der Trainingsdaten anpasst. Diese unerwünschte Überanpassung (engl.: overfitting) am Trainingsdatensatz führt dazu, dass das neuronale Netz zwar sehr gute Vorhersagen für die Trainingsdaten liefert, aber nicht immer gute Vorhersagen für spätere, unbekannte Eingabedaten. Eine Überanpassung des Netzwerks tritt fast immer ab einer gewissen Trainingsdauer ein, deshalb wurden mehrere Verfahren vorgeschlagen und entwickelt, um die Überanpassung von Netzwerken zu verringern bzw. damit die Überanpassung erst nach einer hohen Anzahl an Epochen auftritt. Einige der verwendeten Verfahren zur Reduzierung der Überanpassung sind zum Beispiel die L1-Regularisierung, die L2-Regularisierung oder das Dropout-Verfahren.
  • Das Verfahren und die Vorrichtung mit den Merkmalen der unabhängigen Ansprüche ermöglichen es eine Überanpassung des neuronalen Netzes an einem Datensatz, z.B. an einem Trainingsdatensatz, zu verhindern bzw. zu reduzieren und/oder unterschiedliche Symmetrien in die Netzstruktur einzuprägen, wobei der Grad der Symmetrien flexibel per Schicht verteilt werden kann.
  • Im Folgenden werden weitere Beispiele beschrieben:
    • Ein Verfahren zum computer-implementierten Betreiben eines neuronalen Netzwerks, wobei das neuronale Netzwerk eine Folge von mehreren Netzwerk-Schichten und mindestens eine der Folge nachfolgende Netzwerk-Schicht aufweist, aufweisend das Erzeugen eines Datensatzes mittels der Folge von mehreren Schichten des neuronalen Netzwerks unter Verwendung von Sensordaten, wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine vollständig verbundene Schicht ist oder
    • wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist, das Bilden von mehreren Unterdatensätzen des Datensatzes, wobei jeder Unterdatensatz mehrere Datenwerte aufweist,
    • das Kombinieren der Datenwerte der Unterdatensätze mittels einer Operation, die invariant unter einer Permutation der Unterdatensätze ist, und das Ermitteln eines Klassifikationsergebnisses oder eines Regressionsergebnisses für die Sensordaten mittels der mindestens einen der letzten Netzwerk-Schicht der Folge von mehreren Netzwerk-Schichten nachfolgenden Netzwerk-Schicht, wobei in dem Fall, dass die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist, die Unterdatensätze Merkmalskarten sind. Das in diesem Absatz beschriebene Verfahren bildet ein erstes Beispiel.
  • Das Bilden von mehreren Unterdatensätzen des Datensatzes und das folgende Kombinieren der Datenwerte der gebildeten Unterdatensätze mittels einer bezüglich einer Permutation der Unterdatensätze invarianten Operation beschreiben ein Regularisierungsverfahren, welches z.B. eine Überanpassung des Netzwerks an einem Datensatz verhindert bzw. reduziert, d.h. die Generalisierbarkeit des neuronalen Netzwerks erhöht. Durch das Kombinieren der gebildeten Unterdatensätze können unterschiedliche Symmetrien explizit in die Netzstruktur eingeprägt werden, wobei das neuronale Netzwerk insbesondere die Art der Symmetrie lernen kann. Das neuronale Netzwerk wird durch das Anwenden des Verfahrens gemäß dem ersten Beispiel bessere Vorhersagen für (Eingangs-)Sensordaten liefern.
  • Im Unterschied zum Dropout-Verfahren können durch das Kombinieren der gebildeten Unterdatensätze der Grad der Symmetrien flexibel per Schicht verteilt werden.
  • Das Verfahren kann ferner das Steuern mindestens eines Aktuators unter Verwendung des Klassifikationsergebnisses oder des Regressionsergebnisses aufweisen. Die in diesem Absatz genannten Merkmale in Kombination mit dem ersten Beispiel bilden ein zweites Beispiel.
  • Die Ausgabe des (trainierten) neuronalen Netzwerks kann abgespeichert werden um für weitere Prozesse, Systeme, Verfahren, etc. zur Verfügung zu stehen. Insbesondere kann eine Steuervorrichtung auf die abgespeicherte Ausgabe des neuronalen Netzwerks zugreifen (oder die Ausgabe direkt erhalten) um damit z.B. ein autonomes Fahrzeug zu steuern.
  • Die Steuerung des Aktuators erfolgt zum Beispiel., um eine Bremse eines autonomen Fahrzeuges zu betätigen. Dies könnte zum Beispiel erfolgen nachdem das Netzwerk in den Sensordaten eine Gefahr und/oder ein Hindernis festgestellt hat und die Steuervorrichtung eine Reduzierung der Geschwindigkeit des Fahrzeuges als notwendig betrachtet.
  • Das Verfahren kann ferner aufweisen, dass die Sensordaten digitale Bilddaten sind. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis zweiten Beispiel bilden ein drittes Beispiel.
  • Das Verfahren ist insbesondere geeignet um mit digitale Bilddaten als (Eingangs-) Sensordaten verwendet zu werden, z.B. für die Objekt-Klassifizierung bei autonomen Fahrzeugen oder für visuelle Inspektionssysteme.
  • Das Verfahren kann ferner das Bilden einer Mehrzahl von disjunkten Gruppen mit jeweils mehreren Unterdatensätzen des Datensatzes aufweisen, wobei innerhalb jeder Gruppe von Unterdatensätzen die Datenwerte der Unterdatensätze mittels der Operation, die invariant unter einer Permutation der Unterdatensätze ist, kombiniert werden. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis dritten Beispiel bilden ein viertes Beispiel.
  • Die Datenwerte der Unterdatensätze werden nur innerhalb einer Gruppe mittels der Operation miteinander kombiniert, d.h. die gewählte Gruppierung der Unterdatensätze ermöglicht es bestimmte Symmetrien, sowie den Grad der Symmetrien, explizit in die Netzarchitektur bzw. im Merkmalsraum einzuprägen. Im Unterschied zum Dropout-Verfahren können also durch das Kombinieren der gebildeten Unterdatensätze der Grad der Symmetrien flexibel per Schicht verteilt werden.
  • Dadurch, dass die Gruppen disjunkt sind, d.h. dass keine einzelne Merkmalskarte in mehreren Gruppen enthalten ist, wird insbesondere sichergestellt, dass keine Merkmalskarte vom neuronalen Netzwerk stärker gewichtet bzw. bevorzugt wird. Typischerweise, um z.B. eine Überanpassung des Netzwerks zu vermeiden bzw. zu reduzieren, wird das Verfahren also mit disjunkten Gruppen ausgeführt.
  • Das Verfahren kann ferner aufweisen, dass die Operation zum Kombinieren der Datenwerte der Unterdatensätze durch Anwenden einer Funktion auf Datenwerte unterschiedlicher Unterdatensätze erfolgt, die symmetrisch in ihren Argumenten ist. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis vierten Beispiel bilden ein fünftes Beispiel.
  • Dadurch, dass die benutzte Funktion zum Kombinieren der Datenwerte der Unterdatensätze symmetrisch in ihren Argumenten ist, wird sichergestellt, dass das Kombinieren der Unterdatensätze unabhängig von einer Permutation der Unterdatensätze ist.
  • Das Verfahren kann ferner aufweisen, dass die Funktion ein Maximum, ein Minimum, eine Summe oder eine Sortierung der Datenwerte der Unterdatensätze berechnet. Die in diesem Absatz genannten Merkmale in Kombination mit dem fünften Beispiel bilden ein sechstes Beispiel.
  • Diese beispielhafte Auflistung zeigt nur ein paar der möglichen symmetrischen Funktionen die verwendet werden können, um die Datenwerte der Unterdatensätze miteinander zu kombinieren.
  • Das Verfahren kann ferner aufweisen, dass die Datenwerte der Unterdatensätze mittels der Operation punktweise kombiniert werden. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis sechsten Beispiel bilden ein siebtes Beispiel.
  • Typischerweise werden die Datenwerte der Unterdatensätze mittels der Operation punktweise miteinander kombiniert. Dadurch ist es z.B. möglich, dass Werte die sich auf eine bestimmte Position in den Eingangssensordaten zurückführen lassen, z.B. auf eine bestimme Position in einem digitalen Eingangsbild zurückführen lassen, miteinander kombiniert werden.
  • Das Verfahren kann ferner aufweisen, dass die Datenwerte der Unterdatensätze mittels der Operation gemäß einer Anordnung der Unterdatensätze entlang einer Dimension punktweise entlang der Dimension kombiniert werden. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis siebten Beispiel bilden ein achtes Beispiel.
  • Typischerweise werden die Datenwerte der Unterdatensätze mittels der Operation entlang einer Dimension punktweise entlang dieser Dimension miteinander kombiniert. Zum Beispiel, falls die Unterdatensätze Matrizen sind, werden die jeweiligen einzelnen Datenwerte der Zeilen und/oder der Spalten der Matrizen mittels der Operation miteinander kombiniert.
  • Das Verfahren kann ferner aufweisen, dass die letzte Schicht der Folge der mehreren Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist und die Unterdatensätze Merkmalskarten sind, wobei die Sensordaten digitale Bilddaten sind, und wobei die Datenwerte der Merkmalskarten, die mittels einer Operation kombiniert werden, von der Folge von mehreren Schichten aus dem gleichen Pixelbereich des Eingangsbildes erzeugt wurden. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis achten Beispiel bilden ein neuntes Beispiel.
  • In einem neuronalen Konvolutionsnetzwerk werden in einer ersten Konvolutionsschicht eine Mehrzahl von Konvolutionsfilter über ein digitales Eingangsbild verschoben. Daraus resultieren sogenannte Merkmalskarten, die dann einer weiteren Schicht des Konvolutionsnetzwerks weitergegeben werden. In den späteren (Konvolutions-)Schichten des neuronalen Konvolutionsnetzwerks lassen sich einzelne Datenwerte der Merkmalskarten auf bestimmte Pixelbereiche bzw. Pixel des digitalen Eingangsbildes zurückführen. In diesem Beispiel werden Datenwerte der Merkmalskarten die sich aus dem gleichen Pixelbereich des Eingangsbildes zurückführen lassen miteinander kombiniert. Dies ist zum Beispiel sinnvoll, damit das neuronale Konvolutionsnetzwerks sich nicht zu stark auf spezielle Eigenschaften von bestimmte Pixelbereichen des digitalen Eingangsbilds konzentriert. In anderen Worten wird dadurch eine Überanpassung des neuronalen Konvolutionsnetzwerks vermieden bzw. reduziert, d.h. die Generalisierbarkeit des Netzwerks wird erhöht.
  • Das Verfahren kann ferner aufweisen, dass das neuronale Netzwerk ein neuronales Konvolutionsnetzwerk ist. Die in diesem Absatz genannten Merkmale in Kombination mit irgendeinem von dem ersten Beispiel bis neunten Beispiel bilden ein zehntes Beispiel.
  • Wie oben erläutert können bei einem Konvolutionsnetzwerk Merkmalskarten symmetrisiert werden, um somit eine Überanpassung des Netzwerks zu vermeiden oder zumindest zu reduzieren.
  • Eine Vorrichtung, die eingerichtet ist, um das Verfahren nach irgendeinem von dem ersten Beispiel bis zum elften Beispiel auszuführen. Die in diesem Absatz beschriebene Vorrichtung bildet ein elftes Beispiel.
  • Die Vorrichtung kann ferner einen Aktuator und eine Steuervorrichtung zum Steuern des Aktuators unter Verwendung des Klassifikationsergebnisses oder Regressionsergebnisses aufweisen. Die in diesem Absatz genannte Merkmale in Kombination mit dem elften Beispiel bilden ein zwölftes Beispiel.
  • Ein Fahrassistenzsystem, aufweisend zumindest einen Bildgebungssensor, der eingerichtet ist, um digitale Bilddaten bereitzustellen, und eine Vorrichtung nach irgend von dem zwölften Beispiel bis zum dreizehnten Beispiel, wobei das neuronale Netzwerk eingerichtet ist, die digitalen Bilddaten zu klassifizieren, und wobei das Fahrassistenzsystem eingerichtet ist, ein Fahrzeug unter Verwendung der klassifizierten digitalen Bilddaten zu steuern. Das in diesem Absatz beschriebene Fahrassistenzsystem bildet ein dreizehntes Beispiel.
  • Analog zu dem oben beschriebenen Verfahren ermöglicht eine solche Vorrichtung bzw. ein Fahrassistenzsystem die Vermeidung von Überanpassung des Netzwerks. Insbesondere im Kontext des autonomen Fahrens kann damit eine robuste Objekterkennung, und damit eine zuverlässige Fahrzeugsteuerung erreicht werden.
  • Ein Verfahren zum computer-implementierten Trainieren eines neuronalen Netzwerks, wobei das neuronale Netzwerk eine Folge von mehreren Netzwerk-Schichten und mindestens eine der Folge nachfolgende Netzwerk-Schicht aufweisend das Erzeugen eines Trainings-Datensatzes mittels der Folge von mehreren Schichten des neuronalen Netzwerks unter Verwendung von Trainings-Sensordatensätze, die Trainings-Eingangsdaten und zugehörigen Trainings-Zieldaten enthalten, wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine vollständig verbundene Schicht ist oder wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist, das Bilden von mehreren Trainings-Unterdatensätzen des Trainings-Datensatzes, wobei jeder Trainings-Unterdatensatz mehrere Trainings-Datenwerte aufweist, das Kombinieren der Trainings-Datenwerte der Trainings-Unterdatensätze mittels einer Operation, die invariant unter einer Permutation der Trainings-Unterdatensätze ist; das Ermitteln eines Klassifikationsergebnisses oder eines Regressionsergebnisses für die Trainings-Sensordaten mittels der mindestens einen der letzten Netzwerk-Schicht der Folge von mehreren Netzwerk-Schichten nachfolgenden Netzwerk-Schicht, und das Anpassen des neuronalen Netzwerks gemäß einem Vergleich des Klassifikationsergebnisses oder des Regressionsergebnisses mit den Trainings-Zieldaten, wobei in dem Fall, dass die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist, die Trainings-Unterdatensätze Merkmalskarten sind. Das in diesem Absatz beschriebene Trainingsverfahren bildet ein fünfzehntes Beispiel.
  • Das Verfahren zum computer-implementierten Trainieren eines neuronalen Netzwerks durch das Bilden von mehreren Unterdatensätzen des Datensatzes und das folgende Kombinieren der Datenwerte der gebildeten Unterdatensätze mittels einer bezüglich einer Permutation der Unterdatensätze invarianten Operation beschreiben ein Regularisierungsverfahren, welches z.B. eine Überanpassung des Netzwerks am Trainings-Datensatz verhindert bzw. reduziert, d.h. die Generalisierbarkeit des neuronalen Netzwerks erhöht. Durch das Kombinieren der gebildeten Unterdatensätze können unterschiedliche Symmetrien explizit in die Netzstruktur eingeprägt werden, wobei das neuronale Netzwerk insbesondere die Art der Symmetrie lernen kann.
  • Ein Computerprogramm kann Programminstruktionen aufweisen, die eingerichtet sind, wenn sie von einem oder von mehreren Prozessoren ausgeführt werden, das Verfahren nach einem oder mehreren der vorhergehenden Beispiele auszuführen.
  • Das Computerprogramm kann in einem maschinenlesbaren Speichermedium gespeichert sein.
  • Ausführungsbeispiele der Erfindung sind in den Figuren dargestellt und werden im Folgenden näher erläutert. In den Zeichnungen beziehen sich gleiche Bezugszeichen überall in den mehreren Ansichten allgemein auf dieselben Teile. Die Zeichnungen sind nicht notwendig maßstabsgerecht, wobei der Schwerpunkt stattdessen allgemein auf die Darstellung der Prinzipien der Erfindung liegt.
    • 1 zeigt ein Beispiel für die Objekterkennung beim autonomen Fahren.
    • 2 zeigt ein Beispiel eines neuronalen Netzwerks.
    • 3 zeigt ein Beispiel eines neuronalen Konvolutionsnetzwerks.
    • 4 zeigt eine beispielhafte Anordnung um Bilddaten mit einem neuronalen Konvolutionsnetzwerk einschließlich einer Symmetrisierungsschicht zu klassifizieren.
    • 5 zeigt verschiedene Beispiele wie Eingangsdaten von einer Symmetrisierungsschicht kombiniert werden können.
    • 6 zeigt ein Flussdiagramm, dass ein computer-implementiertes Verfahren zum Betreiben eines neuronalen Netzwerks veranschaulicht.
  • Beim maschinellen Lernen wird eine Funktion gelernt, die Eingabedaten auf Ausgabedaten abbildet. Beim Lernen (beispielsweise dem Training eines neuronalen Netzwerks und/oder Modells) wird aus einem Eingabedatensatz (auch bezeichnet als Trainingsdatensatz), der zu jeder Eingabe eine gewünschte Ausgabe (z.B. eine gewünschte Klassifikation der Eingabedaten) vorgibt, die Funktion derart bestimmt, dass sie diese Zuordnung von Eingaben auf Ausgaben bestmöglich abbildet.
  • Ein Beispiel für eine Anwendung einer solchen maschinell gelernten Funktion ist die Objektklassifizierung für das autonome Fahren, wie es in 1 veranschaulicht ist.
  • Es ist zu beachten, dass im Folgenden Bilder bzw. Bilddaten sehr allgemein als eine Sammlung von Daten, die einen oder mehreren Objekte oder Muster darstellen, aufgefasst werden. Die Bilddaten können von Sensoren bereitgestellt werden die sichtbares oder unsichtbares Licht messen, wie z.B. Infrarot- oder Ultraviolettlicht, Ultraschall- oder Radarwellen, oder andere elektromagnetische oder akustische Signale.
  • Im Beispiel für die Objekterkennung beim autonomen Fahren 100 von 1 ist ein Fahrzeug 101, beispielsweise ein PKW oder LKW, mit einer Fahrzeugsteuereinrichtung 102 versehen.
  • Die Fahrzeugsteuereinrichtung 102 weist Datenverarbeitungskomponenten auf, z.B. einen Prozessor (z.B. eine CPU (Zentraleinheit)) 103 und einen Speicher 104 zum Speichern von Steuersoftware, gemäß der die Fahrzeugsteuereinrichtung 102 arbeitet, und Daten, die von dem Prozessor 103 verarbeitet werden.
  • Beispielsweise weist die gespeicherte Steuerungssoftware (Computerprogramm-) Anweisungen auf, die, wenn der Prozessor sie ausführt, bewirken, dass der Prozessor 103 ein oder mehrere neuronale Netzwerke 107 implementiert.
  • Die im Speicher 104 gespeicherten Daten können beispielsweise Bilddaten beinhalten, die von einer oder mehreren Kameras 105 erfasst werden. Die eine oder mehreren Kameras 105 können beispielsweise ein oder mehrere Graustufen- oder Farbfotos der Umgebung des Fahrzeugs 101 aufnehmen.
  • Die Fahrzeugsteuereinrichtung 102 kann basierend auf den Bilddaten ermitteln, ob und welche Objekte, z.B. feste Objekte wie Verkehrszeichen oder Straßenmarkierungen oder bewegliche Objekte wie Fußgänger, Tiere und andere Fahrzeuge in der Umgebung des Fahrzeugs 101 vorhanden sind.
  • Das Fahrzeug 101 kann dann von der Fahrzeugsteuereinrichtung 102 gemäß den Ergebnissen der Objektbestimmung gesteuert werden. So kann die Fahrzeugsteuereinrichtung 102 beispielsweise einen Aktuator 106 (z.B. eine Bremse) steuern, um die Geschwindigkeit des Fahrzeugs zu steuern, z.B. um das Fahrzeug zu bremsen.
  • Wie oben erwähnt erfolgt im Beispiel von 1 die Steuerung auf der Grundlage einer Bildklassifizierung, die von einem neuronalen Netzwerk durchgeführt wird.
  • 2 zeigt ein Beispiel für ein neuronales Netzwerk 200, das eingerichtet ist, Eingabedaten auf Ausgabedaten abzubilden, zum Beispiel kann das neuronale Netzwerk eingerichtet sein um Bilder in eine vordefinierte Anzahl von Klassen zu klassifizieren.
  • In diesem Beispiel beinhaltet das neuronale Netzwerk 200 eine Eingangsschicht 201, zwei versteckte Schichten (engl.: hidden layers) 202a und 202b und eine Ausgangsschicht 203.
  • Es ist zu beachten, dass das neuronale Netzwerk 200 ein vereinfachendes Beispiel für ein tatsächliches neuronales Netzwerk ist, welches viel mehr Verarbeitungsknoten und versteckte Schichten beinhalten kann.
  • Die Eingabedaten entsprechen der Eingabeschicht 201 und können im Allgemeinen als eine mehrdimensionale Anordnung von Werten angesehen werden, z.B. kann ein Eingabebild als eine zweidimensionale Anordnung von Werten betrachtet werden, die den Pixelwerten des Bildes entsprechen.
  • Die Eingabe der Eingangsschicht 201 wird mit den Verarbeitungsknoten 204 verbunden. Ein Knoten 204 multipliziert jede Eingabe mit einem Gewicht und summiert die berechneten Werte. Zusätzlich kann ein Knoten 204 einem Bias zur Summe hinzufügen.
  • Den Knoten 204 folgt typischerweise eine nichtlineare Aktivierungsfunktion 205, z.B. eine ReLU-Einheit (f(x)= max(0,x)) oder eine Sigmoidfunktion (f(x)=1/(1+exp(-x))). Der resultierende Wert wird dann an die nächste Schicht ausgegeben.
  • Die verborgenen Schichten 202a und 202b können vollständig verbundene Schichten sein, wie in 2 dargestellt, wobei jeder Knoten einer Schicht mit jedem Knoten einer anderen Schicht verbunden ist.
  • Die verborgenen Schichten können aber auch nicht-vollständig verbundene Schichten sein, z.B. Konvolutions- oder Pooling-Schichten im Fall eines neuronalen Konvolutionsnetzwerks.
  • Die Ausgabeschicht 203 empfängt Werte von der vorhergehenden verborgenen Schicht 202b. Typischerweise verarbeitet die Ausgabeschicht 203 diese empfangenen Werte und gibt sie dann zur weiteren Verarbeitung aus. Zum Beispiel, im Falle, dass das neuronalen Netzwerks zur Bildklassifizierung dient, wandelt die Ausgabeschicht 203 die empfangene Werte in Wahrscheinlichkeiten um, wobei diese Wahrscheinlichkeiten anzeigen, dass ein Bild einer der vordefinierten Klassen entspricht. Die Klasse mit der höchsten Wahrscheinlichkeit kann dann von der Ausgabeschicht 203 als vorhergesagte Klasse zur weiteren Verarbeitung ausgegeben werden.
  • Neuronale Konvolutionsnetzwerke (engl.: convolutional neural network, CNN) sind eine besondere Art von neuronalen Netzwerken, die insbesondere gut geeignet sind, um Bilddaten zu analysieren und zu klassifizieren.
  • Es ist zu beachten, dass die Klassifizierung eines Bildes als gleichwertig mit der Klassifizierung eines Objekts, das im Bild dargestellt ist, angesehen werden kann. Wenn ein Originalbild mehrere Objekte aufweist, wie beim autonomen Fahren, kann eine Segmentierung (möglicherweise durch ein anderes neuronales Netzwerk) durchgeführt werden, so dass jedes Segment ein Objekt zeigt und die Segmente als Eingang für das Bild klassifizierende neuronale Netzwerk verwendet werden.
  • 3 zeigt ein Beispiel eines neuronalen Konvolutionsnetzwerks 300.
  • Die Eingabedaten entsprechen einer Eingabeschicht 301, zum Beispiel sind die Eingabedaten RGB-Bilder, die als drei zweidimensionale Matrizen (die den Pixelwerten des Bildes entsprechen) betrachtet werden können. Die drei Matrizen können auch als ein einziges dreidimensionales Feld betrachtet werden, das auch Tensor genannt wird. Ein Tensor kann als ein n-dimensionales Feld (engl.: Array) angesehen werden, bzw. kann als eine Verallgemeinerung einer Matrix verstanden werden, z.B. ist eine Zahl ein nulldimensionaler Tensor, ein Vektor ein eindimensionaler Tensor, eine Matrix ein zweidimensionaler Tensor, ein Würfel aus Zahlen ein dreidimensionaler Tensor, ein Vektor aus Würfeln ein vierdimensionaler Tensor, eine Matrix aus Würfeln ein fünfdimensionaler Tensor, und so weiter.
  • Neuronale Konvolutionsnetzwerke verwenden oft drei- und vierdimensionale Tensoren, z.B. können mehrere RGB-Bilder als vierdimensionale Tensoren aufgefasst werden (Anzahl der Bilder × Anzahl der Kanäle (z.B. drei) × Höhe × Breite).
  • Die Eingabedaten werden von einer ersten Konvolutionsschicht 302 verarbeitet. In einer Konvolutionsschicht (oder Faltungsschicht) werden die Eingabedaten durch Konvolutionsfilter, auch Faltungsfilter genannt, modifiziert, die als eine (zwei- oder dreidimensionale) Anordnung von Werten betrachtet werden können.
  • Die Konvolutionsfilter nehmen eine Teilmenge der Eingabedaten, und führen eine Konvolution (Faltung) auf sie durch. Sie können so interpretiert werden, dass sie mögliche Merkmale in den Eingangsdaten repräsentieren, z.B. eine bestimmte Form. Die Ausgabe jedes Konvolutionsfilters ist eine Merkmalskarte (engl.: feature map).
  • Typischerweise werden die Konvolutionsfilter „pixelweise“ über die gesamten Eingabedaten verschoben. Beispielsweise sind bei RGB-Bildern als Eingabedaten die Konvolutionsfilter dreidimensionale Tensoren, und werden über alle „Pixel“ (Elemente) der Bilder verschoben. Es können aber auch andere Schrittgrößen (engl.: stride) für die Filter gewählt werden, z.B. eine Schrittgröße von 2, d.h. nur jeder zweite Wert wird betrachtet.
  • Dabei ist an den Rändern der Eingabedaten nicht zwangsläufig für alle Werte eines Filters ein Wert in der Eingabe vorhanden, z.B. an den Rändern einer Matrix über der ein 3x3-Filter verschoben wird.
  • Eine Möglichkeit der Randbehandlung besteht darin, den Filter nur solange er vollständig in der Eingabe liegt zu verschieben, was aber die Ausgabedimension gegenüber der Eingabedimension verringern kann. Zum Beispiel würde sich bei einem 3x3-Filter der über eine Matrix verschoben wird die Ausgabedimension um 2x2 gegenüber der Eingabedimension verringern.
  • Um die Ausgabedimension nicht zu verringern, gibt es eine andere Möglichkeit der Randbehandlung, die darin besteht die Eingabedaten durch auffüllen (engl.: padding) zu erweitern. Üblicherweise werden dabei die Ränder mit Nullen aufgefüllt (engl.: zero padding). Zum Beispiel wird eine Eingabematrix auf allen vier Seiten mit Nullen aufgefüllt damit die Ausgabe eines 3x3-Filter (der über die aufgefüllte Matrix verschoben wird) die gleiche Dimension wie die ursprüngliche Eingabematrix hat. Es kann auch so aufgefüllt werden, dass die Dimension der Ausgabe größer wird als die Dimension der Eingabe.
  • In der Konvolutionsschicht 302 folgt nach den Konvolutionsfiltern typischerweise eine nichtlineare Aktivierungsfunktion (nicht in 3 gezeigt), z.B. eine ReLU Einheit.
  • Die Daten werden dann an eine Pooling-Schicht 303 weitergegeben. In der Pooling-Schicht 303 wird ebenfalls ein Filter über die Eingabedaten verschoben, wobei dieses Filter in der Regel das Maximum oder den Durchschnitt aus mehreren Eingabewerte ausgibt. Typischerweise hat dieser Filter eine Schrittgröße größer als eins, z.B. eine Schrittgröße von zwei oder drei. Zum Beispiel wird ein 2x2-Filter mit einer Schrittgröße von zwei über eine Eingabematrix verschoben, welcher das Maximum von jeweils vier Eingabewerten liefert.
  • In anderen Worten kann eine Pooling-Schicht als eine Form des nichtlinearen Down-Samplings betrachtet werden, bei dem die Menge an Daten reduziert wird, indem die Ausgaben mehrerer Knoten in der nächsten Schicht zu einem einzigen Knoten kombiniert werden, z.B. durch die Aufnahme des Maximalwerts der Ausgaben.
  • In der Pooling-Schicht 303 gibt es typischerweise keine Aktivierungsfunktion, deshalb kann das Pooling auch als Teil einer Konvolutionsschicht (oder einer anderen Schicht) angesehen werden (üblicherweise hat jede Schicht eines neuronalen Netzwerks eine Aktivierungsfunktion).
  • Nach der Pooling-Schicht 303 folgt eine zweite Konvolutionsschicht 304, auf die wiederum eine zweite Pooling-Schicht 305 folgt.
  • Es ist zu beachten, dass auf einer Konvolutionsschicht auch eine weitere Konvolutionsschicht folgen kann, und dass viel mehr Konvolutions- und/oder Pooling-Schichten Teil eines neuronalen Konvolutionsnetzwerks sein können.
  • Nach der zweiten Pooling-Schicht 305 folgen eine oder mehrere vollständig verbundene Schichten (engl.: fully connected layers) 306. Davor wird der von der zweiten Pooling-Schicht 305 erhaltene Tensor zu einem (eindimensionalen) Vektor verflacht (engl.: flattening).
  • Eine Ausgabeschicht 307 empfängt die Daten aus der letzten vollständig verbundenen Schicht 306.
  • Die Daten der Ausgabeschicht 307 können noch (z.B. als Teil der Ausgabeschicht) verarbeitet werden, beispielsweise werden die empfangenen Werte in Wahrscheinlichkeiten bzw. Wahrscheinlichkeitsvektoren umgewandelt, z.B. durch die Anwendung der Softmax-Funktion ( f ( x ) = e x p ( v i ) k = 1 K e x p ( v k ) ,
    Figure DE102019215912A1_0001
    wobei die vi, i = 1,...,K, die empfangenen Werte sind) oder der Sigmoid-Funktion auf sie, und dann die Klasse mit der höchste Wahrscheinlichkeit zur weiteren Verarbeitung ausgegeben.
  • Es ist zu beachten, dass ein neuronaler Konvolutionsnetzwerk nicht zwangsläufig eine (oder mehrere) vollständig verbundene Schicht besitzen muss (bzw. am Ende aufweisen muss).
  • Es ist des Weiteren auch möglich, dass ein neuronaler Konvolutionsnetzwerk mehrere Schichten parallel verarbeitet.
  • Ein typisches Problem, das während des Trainings eines neuronalen Netzwerks bzw. eines neuronalen Konvolutionsnetzwerks auftaucht, ist die Überanpassung (engl.: overfitting) des Netzwerks an den Trainingsdaten. Diese Überanpassung ist unerwünscht, denn das neuronale Netzwerk soll eine möglichst gute Generalisierbarkeit haben, d.h. möglichst gut ihm unbekannte Daten bzw. Objekte klassifizieren.
  • Überanpassung lässt sich in Systemen mit vielen Parametern wie modernen neuronalen Netzwerken fast nicht vermeiden. Jedoch lässt sich die Überanpassung reduzieren bzw. der Zeitpunkt an dem die Überanpassungseffekte auftreten lässt sich verschieben, d.h. die Überanpassung tritt dann erst nach einer gewissen (hohen) Anzahl an Epochen auf.
  • Eine Möglichkeit die Überanpassung eines neuronalen Netzwerks an den Trainingsdaten zu reduzieren sind sogenannte Regularisierungsverfahren, wie z.B. die Ll-Regularisierung oder die L2-Regularisierung, die ein neuronales Netzwerk bestrafen, wenn es zu komplex wird, z.B., wenn zu hohe Gewichte der Knoten vorhanden sind.
  • Dies wird erreicht durch Hinzunahme eines Extra-Terms in der Verlustfunktion des Modells, wobei die Verlustfunktion eine Funktion ist, die während des Trainings optimiert (z.B. minimiert) wird. Die Verlustfunktion kann verstanden werden als ein Maß für wie groß der Unterschied zwischen den tatsächlichen Objekten in den Trainingsbildern und die vom neuronalen Netzwerk vorhergesagten Objekten ist, in anderen Worten die Verlustfunktion kann verstanden werden als ein Maß für wie groß der Fehler der Klassifizierung ist.
  • Ein anderes beliebtes Verfahren, um die Überanpassung zu reduzieren ist das Dropout-Verfahren. Beim Dropout-Verfahren bekommt jeder Knoten (außer die Knoten der Ausgabeschicht) des neuronalen Netzwerks einen Hyperparameter p, die sogenannte Dropout-Rate. Die Dropout-Rate p ist die Wahrscheinlichkeit, dass ein Knoten in einer Epoche nicht aktiviert wird. Beispielsweise ist die Dropout-Rate 0.5, d.h. in jeder Epoche werden (zufällig) die Hälfte der Knoten des neuronalen Netzwerks nicht aktiviert.
  • Im Folgenden wird eine beispielhafte Anordnung gemäß einer Ausführungsform beschrieben, welche einen neuronalen Konvolutionsnetzwerk enthält und eine Überanpassung des Netzwerks an den Trainingsdaten verhindert bzw. reduziert.
  • 4 zeigt eine beispielhafte Anordnung 400, um Bilddaten mit einem neuronalen Konvolutionsnetzwerk einschließlich einer Symmetrisierungsschicht zu klassifizieren.
  • Es ist zu beachten, dass die in 4 gezeigte Anordnung nur auf schematische Weise zeigt wie die Bilddaten klassifiziert werden.
  • Ein Sensor 401 liefert Sensordaten 403 an einen Speicher 402. Zum Beispiel ist der Sensor 401 eine Kamera, die Bilddaten aufnimmt und an einen Speicher 402 weitergibt.
  • Die im Speicher 402 gespeicherten Sensordaten 403 werden an einer Eingabeschicht 405 des neuronalen Konvolutionsnetzwerks 404 weitergegeben.
  • Von der Eingabeschicht 405 werden die Daten an die erste Konvolutionsschicht 406 weitergegeben.
  • In der ersten Konvolutionsschicht 406 werden eine Mehrzahl von Konvolutionsfiltern 407 über die Eingangsdaten bzw. den Eingangstensor verschoben. Die daraus resultierenden Merkmalskarten werden dann an eine Symmetrisierungsschicht 408 weitergegeben.
  • Die Symmetrisierungsschicht 408 erhält die Daten bzw. Merkmalskarten von der ersten Konvolutionsschicht 406, und teilt diese in mehreren Gruppen 409 auf.
  • Es ist zu beachten, dass die Symmetrisierungsschicht 408 sich nicht nur hinter der ersten Konvolutionsschicht 406 befinden kann, sondern sich nach jeder Konvolutions- oder vollständig verbundenen Schicht innerhalb des neuronalen Konvolutionsnetzwerks 404 befinden kann, z.B. kann sich die Symmetrisierungsschicht 408 nach einer Schicht, nach zwei Schichten, nach drei Schichten, ..., nach einer Folge von n Schichten des neuronalen Konvolutionsnetzwerks 404 befinden. Des Weiteren kann das neuronale Konvolutionsnetzwerk 404 mehrere Symmetrisierungsschichten aufweisen.
  • Beispielsweise hat die Symmetrisierungsschicht 408 folgende Funktionsweise:
    • Die Symmetrisierungsschicht 408 erhält n Eingangsdaten der Form X d 1 × × d n × N
      Figure DE102019215912A1_0002
      zum Beispiel können die Eingangsdaten RGB-Bilder der Größe d1 × d2 mit N = 3 Kanälen, oder dreidimensionale Merkmalskarten der Größe d1 × d2 × N sein.
    • Des Weiteren hat die Symmetrisierungsschicht 408 einen Parameter k < n, und für jede Zahl l = 1,..., k eine dazugehörige Teilmenge Tl.
    • Die Teilmengen Tl werden mit einer Liste natürlicher Zahlen (j1, ... , jk) deren Summe n = j1 + ... + jk ergibt, erzeugt. Die Teilmengen Tl werden zum Beispiel so definiert, dass T1 aus den ersten j1 Elemente der geordneten Menge {1, ..., n} besteht, T2 aus den nächsten j2 Elemente der geordneten Menge {1, ..., n} besteht, und so weiter. In anderen Worten, es gilt
    T 1 = ( X 1 , X 2 , X j 1 ) , T 2 = ( X j 1 + 1 , X j 1 + 2 , X j 1 + j 2 ) , T 3 = ( X j 1 + j 2 + 1 , X j 1 + j 2 + 2 , X j 1 + j 2 + j 3 ) ,
    Figure DE102019215912A1_0003
    und so weiter.
  • Die n Eingangsdaten werden somit von der Symmetrisierungsschicht 408 in k verschiedene Gruppen 409 eingeteilt, wobei die erste Gruppe G1 die durch Teilmenge T1 definierten Elemente enthält, die zweite Gruppe G2 die durch die Teilmenge T2 definierten Elemente enthält, und so weiter.
  • Beispielsweise erhält die Symmetrisierungsschicht 408 n = 100 Eingangsdaten, und unterteilt die Eingangsdaten in k= 2 Gruppen mit jeweils 90 und 10 Elementen, oder in k = 3 Gruppen mit jeweils 50, 25 und 25 Elementen, oder in k = 4 Gruppen mit jeweils 30, 20, 45 und 5 Elementen, und so weiter. Es sind alle Partitionen von n möglich.
  • Es ist zu beachten, dass die Symmetrisierungsschicht 408 nicht notwendigerweise alle (aus einer vorherigen Schicht) erhaltenen n Eingangsdaten bzw. Elemente in eine der k Gruppen einteilt, und dass ein erhaltenes Element nicht notwendigerweise lediglich einer Gruppe zugewiesen werden muss, sondern auch mehreren Gruppen zugeordnet werden kann.
  • Jede Gruppe kann als Tensor angesehen werden, der gebildet wird aus einer Anordnung der Gruppenelemente entlang einer Dimension.
  • Die Elemente der Gruppen 409 werden dann durch eine Funktion F symmetrisiert, für die gilt: F l ( T l ) = F l ( σ ( T l ) )  bzw .
    Figure DE102019215912A1_0004
    F l ( X i 1 , X i j l ) = F l ( X σ ( i 1 ) , , X σ ( i j l ) )
    Figure DE102019215912A1_0005
    wobei T l = ( X i 1 , , X i j l )
    Figure DE102019215912A1_0006
    und σ eine beliebige Permutation aus der symmetrischen Gruppe Sn ist (wobei Sn aus allen Permutationen der Menge {1, ..., n} besteht).
  • In anderen Worten können die Elemente in beliebiger Reihenfolge an die Funktion F übergeben werden, ohne den Ausgangswert von F zu verändern, d.h. der Ausgangswert von F ist unabhängig von einer Permutation der Elemente der Gruppen 409.
  • Beispielsweise gibt die Symmetrisierungsschicht 408 dann k Ausgangsdatensätze Y d 1 × d n × M
    Figure DE102019215912A1_0007
    aus.
  • Die Funktion F kann durch die Anwendung von einer Symmetrisierungsfunktion f gegeben sein, die einzelnen Komponenten (z.B. Datenwerte oder Matrixeinträge) unterschiedlicher Gruppenelemente miteinander kombiniert. Beispielsweise kombiniert die Symmetrisierungsfunktion f einzelne Datenwerte unterschiedlicher Gruppenelemente punktweise entlang einer Dimension miteinander (z.B. punktweise entlang der letzten Dimension).
  • Ist beispielsweise die erste Gruppe G1 gegeben durch G1 = (X1, X2, X3) (d.h. j1= 3) mit: X 1 = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] , X 2 = [ b 11 b 12 b 13 b 21 b 22 b 23 b 31 b 32 b 33 ] , X 3 = [ b 11 b 12 b 13 b 21 b 22 b 23 b 31 b 32 b 33 ]
    Figure DE102019215912A1_0008
  • Dann gibt die Symmetrisierungsschicht 408 für die erste Gruppe G1 die Matrix Y 1 = F ( X 1 , X 2 , X 3 ) = [ f ( a 11 , b 11 , c 11 ) f ( a 12 , b 12 , c 12 ) f ( a 13 , b 13 , c 13 ) f ( a 21 , b 21 , c 21 ) f ( a 22 , b 22 , c 22 ) f ( a 23 , b 23 , c 23 ) f ( a 31 , b 31 , c 31 ) f ( a 32 , b 32 , c 32 ) f ( a 33 , b 33 , c 33 ) ]
    Figure DE102019215912A1_0009
    aus (d.h. M=1 in diesem Beispiel), wobei die Funktion f symmetrisch ist, d.h. es gilt: f ( a , b , c ) = f ( a , c , b ) = f ( b , a , c ) = f ( b , c , a ) = f ( c , a , b ) = f ( c , b , a ) ,
    Figure DE102019215912A1_0010
    und somit auch F ( X 1 , X 2 , X 3 ) = F ( X 1 , X 3 , X 2 ) = F ( X 2 , X 1 , X 3 ) = F ( X 2 , X 3 , X 1 ) = F ( X 3 , X 1 , X 2 ) F ( X 3 , X 2 , X 1 ) .
    Figure DE102019215912A1_0011
  • Die Symmetrisierungsfunktion f kann beispielsweise das Maximum, das Minimum, die Summe oder eine Sortierung der Komponenten der Gruppenelemente sein.
  • Beispielsweise kann die Symmetrisierungsfunktion f eine Mittelung bewirken, und dadurch verhindern, dass einzelne vom neuronalen Konvolutionsnetzwerk 404 erlernte Merkmale für die Klassifikation zu dominant sind bzw. werden.
  • Es ist zu beachten, dass die Symmetrisierungsschicht 408 nicht notwendigerweise die Elemente punktweise symmetrisiert.
  • Die Symmetrisierungsschicht 408 kann beispielweise folgendermaßen in Programmcode (hier in Python unter Verwendung von TensorFlow) implementiert werden:
    Figure DE102019215912A1_0012
  • Die Symmetrisierungsschicht 408 erhöht die Generalisierbarkeit des neuronalen Konvolutionsnetzwerks 404, d.h. sie verhindert bzw. reduziert eine Überanpassung des Netzwerks an den Trainingsdaten. Des Weiteren prägt die Symmetrisierungsschicht 408 Symmetrien im Merkmalsraum in die Architektur des neuronalen Konvolutionsnetzwerks 404 ein, wobei das Netzwerk die Art der Symmetrie lernen kann.
  • Im Unterschied zum Dropout-Verfahren kann der Grad der Symmetrien flexibel per Schicht verteilt werden, z.B. durch die Wahl der Anzahl der Gruppen bzw. durch die Gruppengröße.
  • Die Symmetrisierungsschicht 408 gibt die berechneten Ausgangsdaten Y an die nächste Schicht des neuronalen Konvolutionsnetzwerks 404 weiter, hier an eine zweite Konvolutionsschicht 410.
  • Die zweite Konvolutionsschicht 410 enthält eine Mehrzahl von Konvolutionsfiltern 407, die über die Daten verschoben werden, und gibt dann die Merkmalskarten an einer vollständig verbundenen Schicht 411 weiter.
  • Es ist zu beachten, dass das neuronale Konvolutionsnetzwerks 404 noch (viele) weitere Schichten enthalten kann, z.B. Konvolutionsschichten, Pooling-Schichten, Symmetrisierungsschichten und vollständig verbundene Schichten.
  • Die vollständig verbundene Schicht 411 verarbeitet die empfangenen Daten, und gibt sie dann an eine Ausgabeschicht 412 weiter.
  • Die Ausgabeschicht 412 verarbeitet die empfangenen Werte und gibt sie dann zur weiteren Verarbeitung an einem Speicher 413 aus. Beispielsweise wandelt die Ausgabeschicht die Werte in Wahrscheinlichkeiten mit einer Softmax-Funktion um, und gibt dann die Klasse mit der höchsten Wahrscheinlichkeit zur weiteren Verarbeitung an Speicher 413 aus.
  • Der Speicher 413 enthält die von Ausgabeschicht 412 ausgegebenen Daten, z.B. die durch den neuronalen Konvolutionsnetzwerk 404 vorhergesagten Klassen der Eingangsbilder bzw. Eingangsobjekte. Des Weiteren können auch die Eingangsbilder in Speicher 413 abgespeichert sein.
  • Auf Basis der in Speicher 413 vorhandenen Daten steuert eine Steuervorrichtung 414 einen Aktuator 415.
  • Beispielsweise kann die Steuervorrichtung 414, im Kontext eines autonomen Fahrzeuges, wie in 1 dargestellt, abhängig vom Ergebnis der Klassifizierung durch das neuronalen Konvolutionsnetzwerks 404 (z.B. wurde vom neuronalen Netzwerk auf dem Eingangsbild ein Fußgänger ermittelt) einen Aktuator steuern, der die Geschwindigkeit des Fahrzeugs anpasst, z.B. zum Betätigen der Bremsen des Fahrzeugs.
  • Wie oben erwähnt, gibt es verschiedene Möglichkeiten wie die Symmetrisierungsschicht 408 die Elemente einer Gruppe kombinieren bzw. symmetrisieren kann.
  • Insbesondere kann die beispielhafte Anordnung 400 gemäß einer Ausführungsform verwendet werden um ein neuronales Netzwerk bzw. ein Konvolutionsnetzwerk zu trainieren, wobei die Symmetrisierungsschicht 408 eine Überanpassung des Netzwerks an die Trainingsdaten verhindert und Symmetrien im Merkmalsraum in die Architektur des Netzwerks einprägt. Das trainierte Netzwerk kann dann z.B. im Rahmen eines V&V-Prozesses (Verifizierungs- und Validierungs-Prozesses) verwendet werden.
  • 5 zeigt verschiedene Beispiele, wie Eingangsdaten von einer Symmetrisierungsschicht, beispielsweise Symmetrisierungsschicht 408, kombiniert werden können.
  • Die Eingangsdaten der Symmetrisierungsschicht werden in k Gruppen gruppiert, z.B. kann eine Gruppe von Elementen 501 zwei oder drei Elemente (z.B. Merkmalskarten) enthalten.
  • In 502 werden die Elemente einer Gruppe mit drei bzw. zwei Elementen punktweise (durch eine Funktion f) kombiniert.
  • In 503 werden die Elemente einer Gruppe (durch eine Funktion f) zeilenweise kombiniert.
  • In 504 werden die Elemente einer Gruppe (durch eine Funktion f) spalten-und zeilenweise kombiniert.
  • Die Ausgabedaten 505 nach dem Kombinieren der Elemente einer Gruppe haben die gleiche oder eine kleinere Dimension, wie die Dimension eines einzelnen Elements der Gruppe. Jedoch ist zu beachten, dass es möglich ist die Elemente einer Gruppe mehrmals zu symmetrisieren, d.h. mit verschiedenen Symmetrisierungsfunktionen f, und für jede Symmetrisierung einen Ausgabewert auszugeben. In solch einem Fall könnte die Dimension der Ausgabedaten größer sein als die Dimension der einzelnen Elemente.
  • Es ist zu beachten, dass noch weitere Möglichkeiten für das Kombinieren der Gruppenelemente in einer Symmetrisierungsschicht möglich sind.
  • Zusammenfassend wird gemäß verschiedenen Ausführungsformen ein Verfahren bereitgestellt, wie es in 6 dargestellt ist.
  • 6 zeigt ein Flussdiagramm 600, das ein Verfahren zum computer-implementierten Betreiben eines neuronalen Netzwerks, wobei das neuronale Netzwerk eine Folge von mehreren Netzwerk-Schichten und mindestens eine der Folge nachfolgende Netzwerk-Schicht aufweist, veranschaulicht.
  • In 601, wird ein Datensatz mittels der Folge von mehreren Schichten des neuronalen Netzwerks unter Verwendung von Sensordaten erzeugt, wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine vollständig verbundene Schicht ist oder wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist.
  • In 602 werden mehrere Unterdatensätze des Datensatzes, wobei jeder Unterdatensatz mehrere Datenwerte aufweist, gebildet.
  • In 603 werden die Datenwerte der Unterdatensätze mittels einer Operation kombiniert, die invariant unter einer Permutation der Unterdatensätze ist.
  • In 604 wird ein Klassifikationsergebnis oder ein Regressionsergebnis für die Sensordaten mittels der mindestens einen der letzten Netzwerk-Schicht der Folge von mehreren Netzwerk-Schichten nachfolgenden Netzwerk-Schicht ermittelt.
  • Es ist zu beachten, dass in dem Fall, dass die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist, die Unterdatensätze Merkmalskarten sind.
  • Gemäß verschiedenen Ausführungsbeispielen wird in anderen Worten in ein neuronales Netzwerk eine Schicht eingefügt, die eine Überanpassung des neuronalen Netzwerks an Trainingsdaten verhindert bzw. reduziert und/oder unterschiedliche Symmetrien explizit in die Netzstruktur einprägt, wobei der Grad der Symmetrien flexibel per Schicht verteilt wird. Basierend auf Eingangssensordaten und durch eine Folge von Schichten des neuronalen Netzwerks wird ein Datensatz erzeugt, und dann von der eingefügten Schicht in mehrere Unterdatensätze unterteilt. Die Datenwerte der Unterdatensätze werden dann von der eingefügten Schicht auf symmetrische Weise miteinander kombiniert und zur Weiterverarbeitung an einer nachfolgenden Schicht des neuronalen Netzwerks ausgegeben.
  • Das in 6 gezeigte Verfahren zum computer-implementierten Betreiben eines neuronalen Netzwerks kann insbesondere für das Trainieren des neuronalen Netzwerks basierend auf Trainingssensordaten verwendet werden.
  • Die Verfahrensschritte 602, d.h. das Bilden von mehreren Unterdatensätzen des Datensatzes und 603, d.h. das Kombinieren der Datenwerte der Unterdatensätze mittels einer Operation, bilden eine Symmetrisierungsschicht des neuronalen Netzwerks.
  • Das in 6 gezeigte Verfahren kann ferner aufweisen, dass der Datensatz die vollständige Ausgabe der letzten Schicht der Folge von mehreren Schichten des neuronalen Netzwerks ist, und dass jeder Datenwert des Datensatzes zu einem der mehreren Unterdatensätze zugeordnet wird.
  • Das in 6 gezeigte Verfahren kann ferner aufweisen, dass jeweils mehrere Unterdatensätze des Datensatzes zu einer Gruppe gebildet werden, wobei innerhalb jeder Gruppe von Unterdatensätzen die Datenwerte der Unterdatensätze mittels der Operation kombiniert werden
  • Das in 6 gezeigte Verfahren kann ferner aufweisen, dass die letzte Netzwerk-Schicht der Folge von mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist und dass die Unterdatensätze Merkmalskarten sind, und dass mindestens eine Merkmalskarte in mehreren Gruppen enthalten ist.
  • Das in 6 gezeigte Verfahren kann ferner aufweisen, dass der erzeugte Datensatz aus einem oder mehreren Tensoren besteht, und insbesondere, dass die Unterdatensätze alle Tensoren gleicher Dimension sind.
  • Das in 6 gezeigte Verfahren kann ferner aufweisen, dass die nachfolgende Schicht des neuronalen Netzwerks zur Weiterverarbeitung der kombinierten Unterdatensätze eine Konvolutionsschicht, eine Pooling-Schicht, eine vollständig verbundene Schicht, eine Symmetrisierungsschicht oder eine Ausgabeschicht ist.
  • Das in 6 gezeigte Verfahren kann ferner aufweisen, dass jeder Unterdatensatz für jede Position einer Mehrzahl von Positionen einen Datenwert aufweist und die Datenwerte gleicher Positionen kombiniert werden.
  • Das neuronale Netzwerk kann zum Verarbeiten jeglicher Art von Sensordaten verwendet werden, z.B. Videodaten, Radardaten, LiDAR(Light Detection and Ranging)-Daten, Ultraschalldaten, Bewegungsdaten etc. Die Ausgabe des neuronalen Netzwerks können Steuerdaten sein (oder zumindest die Grundlage von Steuerdaten, die durch ein weiterverarbeitendes System erzeugt werden), z.B. für eine Computer-gesteuerte Maschine wie einen Roboter, ein Fahrzeug, ein Haushaltsgerät, ein elektrisches Werkzeug, eine Maschine zur Herstellung eines Produkts, eine persönlicher Assistent oder ein Zugangskontrollsystem oder auch ein Informationsübertragungssystem wie eine Überwachungssystem oder ein medizinisches (Bildgebungs-)system. Gemäß einer Ausführungsform wird das neuronale Netzwerk für eine solche Anwendung trainiert.
  • Das Verfahren, die Vorrichtung und das Fahrerassistenzsystem können mittels einer oder mehrerer Schaltungen implementiert werden. In einer Ausführungsform kann eine „Schaltung“ als jede Art von Logik-implementierender Entität verstanden werden, welche Hardware, Software, Firmware oder eine Kombination davon sein kann. Daher kann in einer Ausführungsform eine „Schaltung“ eine hartverdrahtete Logikschaltung oder eine programmierbare Logikschaltung, wie beispielsweise ein programmierbarer Prozessor, zum Beispiel ein Mikroprozessor sein. Eine „Schaltung“ kann auch Software sein, die von einem Prozessor implementiert bzw. ausgeführt wird, zum Beispiel jede Art von Computerprogramm. Jede andere Art der Implementierung der jeweiligen Funktionen kann in Übereinstimmung mit einer alternativen Ausführungsform als eine „Schaltung“ verstanden werden.
  • Obwohl die Erfindung vor allem unter Bezugnahme auf bestimmte Ausführungsformen gezeigt und beschrieben wurde, sollte es von denjenigen, die mit dem Fachgebiet vertraut sind, verstanden werden, dass zahlreiche Änderungen bezüglich Ausgestaltung und Details daran vorgenommen werden können, ohne vom Wesen und Bereich der Erfindung, wie er durch die nachfolgenden Ansprüche definiert wird, abzuweichen. Der Bereich der Erfindung wird daher durch die angefügten Ansprüche bestimmt, und es ist beabsichtigt, dass sämtliche Änderungen, welche unter den Wortsinn oder den Äquivalenzbereich der Ansprüche fallen, umfasst werden.

Claims (14)

  1. Verfahren zum computer-implementierten Betreiben eines neuronalen Netzwerks, wobei das neuronale Netzwerk eine Folge von mehreren Netzwerk-Schichten und mindestens eine der Folge nachfolgende Netzwerk-Schicht aufweist, das Verfahren aufweisend: Erzeugen eines Datensatzes mittels der Folge von mehreren Schichten des neuronalen Netzwerks unter Verwendung von Sensordaten, wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine vollständig verbundene Schicht ist oder wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist; Bilden von mehreren Unterdatensätzen des Datensatzes, wobei jeder Unterdatensatz mehrere Datenwerte aufweist; Kombinieren der Datenwerte der Unterdatensätze mittels einer Operation, die invariant unter einer Permutation der Unterdatensätze ist; und Ermitteln eines Klassifikationsergebnisses oder eines Regressionsergebnisses für die Sensordaten mittels der mindestens einen der letzten Netzwerk-Schicht der Folge von mehreren Netzwerk-Schichten nachfolgenden Netzwerk-Schicht; wobei in dem Fall, dass die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist, die Unterdatensätze Merkmalskarten sind.
  2. Verfahren gemäß Anspruch 1, ferner aufweisend Steuern mindestens eines Aktuators unter Verwendung des Klassifikationsergebnisses oder des Regressionsergebnisses.
  3. Verfahren gemäß einem der Ansprüche 1 oder 2, wobei die Sensordaten digitale Bilddaten sind.
  4. Verfahren gemäß einem der Ansprüche 1 bis 3, ferner aufweisend: Bilden einer Mehrzahl von disjunkten Gruppen mit jeweils mehreren Unterdatensätzen des Datensatzes; wobei innerhalb jeder Gruppe von Unterdatensätzen die Datenwerte der Unterdatensätze mittels der Operation, die invariant unter einer Permutation der Unterdatensätze ist, kombiniert werden.
  5. Verfahren gemäß einem der Ansprüche 1 bis 4, wobei die Operation zum Kombinieren der Datenwerte der Unterdatensätze durch Anwenden einer Funktion auf Datenwerte unterschiedlicher Unterdatensätze erfolgt, die symmetrisch in ihren Argumenten ist.
  6. Verfahren gemäß Anspruch 5, wobei die Funktion ein Maximum, ein Minimum, eine Summe oder eine Sortierung der Datenwerte der Unterdatensätze berechnet.
  7. Verfahren gemäß einem der Ansprüche 1 bis 6, wobei die Datenwerte der Unterdatensätze mittels der Operation punktweise kombiniert werden.
  8. Verfahren gemäß einem der Ansprüche 1 bis 7, wobei die Datenwerte der Unterdatensätze mittels der Operation gemäß einer Anordnung der Unterdatensätze entlang einer Dimension punktweise entlang der Dimension kombiniert werden.
  9. Verfahren gemäß einem der Ansprüche 1 bis 8, wobei die letzte Schicht der Folge der mehreren Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist und die Unterdatensätze Merkmalskarten sind, wobei die Sensordaten digitale Bilddaten sind, und wobei die Datenwerte der Merkmalskarten, die mittels einer Operation kombiniert werden, von der Folge von mehreren Schichten aus dem gleichen Pixelbereich des Eingangsbildes erzeugt wurden.
  10. Verfahren gemäß einem der Ansprüche 1 bis 9, wobei das neuronale Netzwerk ein neuronales Konvolutionsnetzwerk ist.
  11. Vorrichtung, die eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 10 auszuführen.
  12. Vorrichtung gemäß Anspruch 11, ferner aufweisend: einen Aktuator; und eine Steuervorrichtung zum Steuern des Aktuators unter Verwendung des Klassifikationsergebnisses oder Regressionsergebnisses.
  13. Fahrassistenzsystem, aufweisend: zumindest einen Bildgebungssensor, der eingerichtet ist, um digitale Bilddaten bereitzustellen; und eine Vorrichtung nach einem der Ansprüche 11 oder 12; wobei das neuronale Netzwerk eingerichtet ist, die digitalen Bilddaten zu klassifizieren; und wobei das Fahrassistenzsystem eingerichtet ist, ein Fahrzeug unter Verwendung der klassifizierten digitalen Bilddaten zu steuern.
  14. Verfahren zum computer-implementierten Trainieren eines neuronalen Netzwerks, wobei das neuronale Netzwerk eine Folge von mehreren Netzwerk-Schichten und mindestens eine der Folge nachfolgende Netzwerk-Schicht aufweist, das Verfahren aufweisend: Erzeugen eines Trainings-Datensatzes mittels der Folge von mehreren Schichten des neuronalen Netzwerks unter Verwendung von Trainings-Sensordatensätze, die Trainings-Eingangsdaten und zugehörigen Trainings-Zieldaten enthalten, wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine vollständig verbundene Schicht ist oder wobei die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist; Bilden von mehreren Trainings-Unterdatensätzen des Trainings-Datensatzes, wobei jeder Trainings-Unterdatensatz mehrere Trainings-Datenwerte aufweist; Kombinieren der Trainings-Datenwerte der Trainings-Unterdatensätze mittels einer Operation, die invariant unter einer Permutation der Trainings-Unterdatensätze ist; Ermitteln eines Klassifikationsergebnisses oder eines Regressionsergebnisses für die Trainings-Sensordaten mittels der mindestens einen der letzten Netzwerk-Schicht der Folge von mehreren Netzwerk-Schichten nachfolgenden Netzwerk-Schicht; und Anpassen des neuronalen Netzwerks gemäß einem Vergleich des Klassifikationsergebnisses oder des Regressionsergebnisses mit den Trainings-Zieldaten; wobei in dem Fall, dass die letzte Netzwerk-Schicht der Folge der mehreren Netzwerk-Schichten des neuronalen Netzwerks eine Konvolutionsschicht ist, die Trainings-Unterdatensätze Merkmalskarten sind.
DE102019215912.5A 2019-10-16 2019-10-16 Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks Pending DE102019215912A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102019215912.5A DE102019215912A1 (de) 2019-10-16 2019-10-16 Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019215912.5A DE102019215912A1 (de) 2019-10-16 2019-10-16 Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks

Publications (1)

Publication Number Publication Date
DE102019215912A1 true DE102019215912A1 (de) 2021-04-22

Family

ID=75268346

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019215912.5A Pending DE102019215912A1 (de) 2019-10-16 2019-10-16 Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks

Country Status (1)

Country Link
DE (1) DE102019215912A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022208405A1 (de) 2022-08-12 2024-02-15 Continental Autonomous Mobility Germany GmbH Verfahren zur Bestimmung einer Parklücke und einer Zielposition eines Fahrzeugs in der Parklücke

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022208405A1 (de) 2022-08-12 2024-02-15 Continental Autonomous Mobility Germany GmbH Verfahren zur Bestimmung einer Parklücke und einer Zielposition eines Fahrzeugs in der Parklücke

Similar Documents

Publication Publication Date Title
DE102019214402A1 (de) Verfahren und vorrichtung zum verarbeiten von daten mittels eines neuronalen konvolutionsnetzwerks
DE102017127592A1 (de) Verfahren zum Klassifizieren von Bildszenen in einem Fahrunterstützungssystem
DE102019100575A1 (de) Verfahren und system zum erzeugen eines bereichsbildes unter verwendung von daten mit geringer tiefe
WO2010040668A1 (de) Verfahren und einrichtung zur analyse von umgebungsobjekten und/oder umgebungsszenen, wie zur objekt- und szenenklassensegmentierung
DE102019209560A1 (de) Vorrichtung und Verfahren zum Trainieren eines neuronalen Netzwerks
EP3557487B1 (de) Generieren von validierungsdaten mit generativen kontradiktorischen netzwerken
DE112020000448T5 (de) Kameraselbstkalibrierungsnetz
DE102020110157A1 (de) Bilderkennungsvorrichtung
DE102018119467B4 (de) Verfahren zum durchführen eines autonomen betriebs eines fahrzeugs durch tiefes räumlich-zeitliches lernen
DE102020209538A1 (de) Vorrichtung und Verfahren zum Ermitteln einer physikalischen Eigenschaft eines physikalischen Objekts
DE102019115244A1 (de) Aktivieren des null-bypasses und des weight-pruning in neuronalen netzwerken für fahrzeugwahrnehmungssysteme
DE102019209644A1 (de) Verfahren zum Trainieren eines neuronalen Netzes
DE102021207613A1 (de) Verfahren zur Qualitätssicherung eines Systems
DE102019215912A1 (de) Verfahren und vorrichtung zum computer-implementierten betreiben eines neuronalen netzwerks
DE102022204722A1 (de) Verfahren zum Trainieren eines neuronalen Konvolutionsnetzwerks
DE102022100545A1 (de) Verbesserte objekterkennung
DE102021133977A1 (de) Verfahren und System zur Klassifikation von Szenarien eines virtuellen Tests sowie Trainingsverfahren
DE102020211596A1 (de) Verfahren zum Generieren eines trainierten neuronalen Faltungs-Netzwerks mit invarianter Integrationsschicht zum Klassifizieren von Objekten
DE102021200568A1 (de) Computerimplementiertes verfahren zur analyse der relevanz visueller parameter zum trainieren eines computer-vision -modells
DE102019216184A1 (de) Verfahren zum Robustifizieren eines Neuronalen Netzes gegen adversariale Störungen
WO2021180470A1 (de) Verfahren zur qualitätssicherung eines beispielbasierten systems
DE102020202973A1 (de) Verfahren und Vorrichtung zum Verarbeiten von Bildern
DE102019210167A1 (de) Robusteres Training für künstliche neuronale Netzwerke
DE102019130484A1 (de) Verfahren und Vorrichtung zum Anlernen eines Ensembles von neuronalen Netzen
DE102017127170A1 (de) Verfahren zur Fahrzeugerfassung für ein Kraftfahrzeug mit einem Fahrunterstützungssystem

Legal Events

Date Code Title Description
R163 Identified publications notified