DE102020132028A1 - Bestimmung einer optimierten Struktur für Neuronale Netze, insbesondere für Verwendung in einem Embedded System - Google Patents

Bestimmung einer optimierten Struktur für Neuronale Netze, insbesondere für Verwendung in einem Embedded System Download PDF

Info

Publication number
DE102020132028A1
DE102020132028A1 DE102020132028.0A DE102020132028A DE102020132028A1 DE 102020132028 A1 DE102020132028 A1 DE 102020132028A1 DE 102020132028 A DE102020132028 A DE 102020132028A DE 102020132028 A1 DE102020132028 A1 DE 102020132028A1
Authority
DE
Germany
Prior art keywords
neural network
layer
functional groups
training
connections
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
DE102020132028.0A
Other languages
English (en)
Inventor
Fabian Burger
Isabelle Leang
Ganesh Sistu
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.)
Valeo Schalter und Sensoren GmbH
Original Assignee
Valeo Schalter und Sensoren 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 Valeo Schalter und Sensoren GmbH filed Critical Valeo Schalter und Sensoren GmbH
Priority to DE102020132028.0A priority Critical patent/DE102020132028A1/de
Publication of DE102020132028A1 publication Critical patent/DE102020132028A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren zum Erzeugen einer optimierten Netzwerkstruktur eines neuronalen Netzes (12), insbesondere zur Durchführung einer Bildverarbeitung von Bildinformation wenigstens einer Kamera, insbesondere für ein Fahrunterstützungssystem (10) eines Fahrzeugs, wobei das neuronale Netz (12) eine Mehrzahl Ausgabetasks (16) aufweist, umfassend die Schritte Erzeugen einer Netzwerkstruktur des neuronalen Netzes (12) mit einem Enkoder (18) und einer Mehrzahl Dekoder (20), wobei jeder Dekoder (20) eine Ausgabe für wenigstens einen der Ausgabetasks (16) liefert, Erzeugen einer generischen Netzwerkstruktur des Enkoders (18) mit einer Mehrzahl Schichten (22), Erzeugen von generischen Verbindungen (24) von einer Mehrzahl der Schichten (22) zu einer Mehrzahl der Dekoder (20), wobei jeder der Verbindungen (24) ein Verbindungsrelevanzwert (α_task) zugeordnet ist, Trainieren des neuronalen Netzes (12) mit Trainingsdaten, wobei das Trainieren des neuronalen Netzes (12) ein Trainieren der Verbindungsrelevanzwerte (α_task) zu jeder der Verbindungen (24) umfasst, und Erzeugen der optimierten Netzwerkstruktur unter Verwendung der Verbindungsrelevanzwerte (α_task) zu jeder der Verbindungen (24). Die Erfindung betrifft außerdem ein Fahrunterstützungssystem (10) mit einem neuronalen Netz (12) und einer Mehrzahl Ausgabetasks (16), wobei das Fahrunterstützungssystem (10) wenigstens eine Kamera aufweist, die Eingabedaten für das neuronale Netz (12) bereitstellt und einer eingebetteten Recheneinheit, welche das neuronale Netz (12) mit einer nach dem obigen Verfahren optimierten Netzwerkstruktur implementiert, zuführt.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Erzeugen einer optimierten Netzwerkstruktur eines neuronalen Netzes, insbesondere zur Durchführung einer Bildverarbeitung von Bildinformation wenigstens einer Kamera, insbesondere für ein Fahrunterstützungssystem eines Fahrzeugs, wobei das neuronale Netz eine Mehrzahl Ausgabetasks aufweist, umfassend einen Schritt zum Erzeugen einer Netzwerkstruktur des neuronalen Netzes mit einem Enkoder und einer Mehrzahl Dekoder, wobei jeder Dekoder eine Ausgabe für wenigstens einen der Ausgabetasks liefert.
  • Auch betrifft die vorliegende Erfindung ein Fahrunterstützungssystem mit einem neuronalen Netz und einer Mehrzahl Ausgabetasks, wobei das Fahrunterstützungssystem wenigstens eine Kamera aufweist, die Eingabedaten für das neuronale Netz bereitstellt und einer eingebetteten Recheneinheit, welche das neuronale Netz mit einer nach dem obigen Verfahren optimierten Netzwerkstruktur implementiert, zuführt.
  • In aktuellen Fahrzeugen finden vermehrt Fahrunterstützungssysteme Verwendung, um einen Führer des Fahrzeugs beim Fahren zu unterstützen, oder um verschiedene Funktionen in Bezug auf autonome Fahrfunktionen zu implementieren. In diesem Zusammenhang sind beispielsweise unter dem Begriff ADAS (Advanced driverassistance systems) verschiedene Fahrunterstützungssysteme bekannt, die bereits vielfach Verwendung in aktuellen Fahrzeugen finden.
  • In aktuellen Fahrunterstützungssystemen, insbesondere in solchen basierend auf einer Erfassung der Umgebung mit einer Kamera oder mit mehreren Kameras, finden neuronale Netze vermehrt Einsatz, um unterschiedliche Aufgaben durchzuführen. So ist es beispielsweise verbreitet, Bildinformation der Kameras beispielsweise zu Segmentieren, d.h. die Bildinformation verschiedenen Bildbestandteilen zuzuordnen, oder auch eine Erkennung von Bildinhalten in der Bildinformation durchzuführen, beispielsweise um vorausfahrende Fahrzeuge zu erkennen. Dabei kann die Bildinformation in Form von Einzelbildern oder auch als Videoinformation mit einer Abfolge von Einzelbildern jeder Kamera bereitgestellt werden.
  • In aktuellen Fahrunterstützungssystemen sind dabei neuronale Netze basierend auf Konzepten mit Deep Learning (Tiefes Lernen) verbreitet. Diese neuronalen Netze basieren häufig auf konvolutionellen neuronalen Netzen (convolutional neural networks, CNN) oder auch auf rekurrenten neuronalen Netzen (recurrent neural networks, RNN).
  • Ein allgemeines konvolutionelles neuronales Netz ist beispielhaft in 1 dargestellt. Das dortige konvolutionelle neuronale Netz 1 umfasst eine Eingabeschicht 2, welche Bildinformation von einer nicht gezeigten Kamera empfängt, und eine Mehrzahl innerer Schichten 3, welche unterschiedliche Verarbeitungsschritte durchführen, beispielsweise verschiedene konvolutionelle Schichten und Pooling-Schichten. Das konvolutionelle neuronale Netz 1 umfasst als Ausgabeschicht 4 eine Softmax-Schicht. Benachbarte Schichten 2, 3, 4 sind miteinander verbunden, so dass eine Ausgabe einer Schicht 2, 3, 4 eine Eingabe einer darauffolgenden Schicht 2, 3, 4 bildet. Zwischen einzelnen der Schichten 2, 3, 4 sind zusätzliche Verbindungen 5 ausgebildet, so dass eine Ausgabe einer Schicht 2, 3, 4 eine Eingabe weiterer Schichten 2, 3, 4 bilden kann, die nicht unmittelbar auf die entsprechende Schicht 2, 3, 4 folgen
  • Eine große Herausforderung ist dabei für die Fahrunterstützungssysteme, auf leistungsfähigen Rechnern trainierte neuronale Netze für den Einsatz in eingebettete Systeme (Embedded Systems) zu übertragen. Die eingebetteten Systeme müssen kostengünstig und mit einem geringen Energieverbrauch bereitgestellt werden können, um beispielsweise die autonomen Fahrfunktionen bereitstellen zu können. Auch ist es wichtig, dass unterschiedliche eingebettete Systeme in verschiedenen Fahrzeugen die neuronalen Netze mit einer geeigneten Leistungsfähigkeit implementieren können.
  • Damit wird häufig ein Kompromiss erforderlich zwischen besonders leistungsfähigen neuronalen Netzen, die viel Rechenleistung erfordern und dafür beispielsweise eine gute Qualität bei der Erfassung von Objekten aufweisen, und eingebetteten Implementierungen, die beschränkt sind in Bezug auf Rechenleistung, Speicher und Übertragungsbandweite, wodurch sie typischerweise eine geringere Qualität bei der Erfassung von Objekten aufweisen. Bei diesem Kompromiss wird somit eine Qualität des neuronalen Netzes gegenüber von Kosten einer erforderlichen Implementierung betrachtet, beispielsweise unter Berücksichtigung besonderer Anforderungen von eingebetteten Systemen.
  • Üblicherweise umfassen die neuronalen Netze beispielsweise einen Enkoder, der Bildmerkmale aufschlüsselt, und einen Dekoder, der die aufgeschlüsselten Bildmerkmale weiterverarbeitet, um beispielsweise Objekte zu erkennen, Tiefeninformation zu schätzen oder die Bildinformation semantisch zu segmentieren. In diesem Zusammenhang werden teilweise auch die Begriffe Enkodierer bzw. Dekodierer verwendet. Insbesondere der Enkoder erfordert dabei viele Ressourcen wie Rechenleistung oder Speicher. Typische Enkoder weisen oftmals wenigstens zehn Schichten auf, wobei auch Implementierungen mit 50 bis 100 Schichten verbreitet sind. Ein großer Teil der erforderlichen Rechenleistung des neuronalen Netzes geht damit auf den Enkoder zurück. Um die erforderliche Rechenleistung in den eingebetteten Systemen zu reduzieren, werden bereits sogenannte Multitasking Lernarchitekturen (multitask learning architectures, MTL), die Teile des jeweiligen neuronalen Netzes gemeinsam nutzen, verwendet. So kann ein Enkoder Information für mehrere Dekoder bereitstellen. Der Enkoder wird also von mehreren Dekodern geteilt, wobei jeder Dekoder jeweils eine spezielle Implementierung eines Teils des neuronalen Netzes für eine jeweilige Aufgabe umfasst. Dabei hängt die Leistungsfähigkeit der verschiedenen Dekoder nicht nur von der Implementierung des neuronalen Netzes ab, sondern auch von der bereitgestellten Eingabeinformation oder den Eingabedaten. Beispielsweise hat der Umfang der Eingabedaten wieder unmittelbaren Einfluss auf die Geschwindigkeit der Informationsverarbeitung des neuronalen Netzes.
  • In diesen Multitasking Lernarchitekturen werden von den verschiedenen Dekodern teilweise Informationen aus verschiedenen Schichten des Enkoders verwendet, abhängig von der Art der dazugehörigen Aufgaben oder Tasks. Beispielsweise benötigt ein Segmentierungstask, der jedem Bildpunkt eine Beschriftung zuweist, mehr lokale Information und profitiert daher von einer detaillierten Enkodierung, die Low Level Merkmale aus niedrigeren Schichten bereitstellt, wohingegen ein Klassifizierungstask, der beispielsweise ganze Szenen als „Autobahn“ oder „Landstraße“ klassifiziert, globale Information benötigt, die mit Merkmalen höherer Schichten gefunden werden kann.
  • Aktuell werden Architekturen für die neuronalen Netze, insbesondere für die Verwendung in eingebetteten Systemen, häufig manuell entwickelt, trainiert und auf den eingebetteten Systemen getestet, um deren Leistungsfähigkeit basierend auf KPls zu ermitteln. Die Leistungsfähigkeit betrifft eine Qualität der zugeordneten Aufgaben, d.h. eine Korrektheit erfasster oder klassifizierter Objekte oder einer Segmentierung. Zusätzlich werden erforderliche Rechenleistung und Speicherbedarf ermittelt. Dies ist insbesondere für hochkomplexe Probleme sehr ineffizient. Zwar kann Expertenwissen erfahrener Techniker helfen, um eine gute Basisarchitektur bereitzustellen. Allerdings hängt eine effiziente Architektur auch stark von verwendeten Datensätzen ab, so dass sich oftmals große Unterschiede zwischen einer optimalen Architektur und einem Ansatz mit einer intuitiv vorgegebenen Architektur eines Experten ergeben.
  • Zwar sind auch Ansätze zum automatischen Ermitteln einer besonders geeigneten Architektur bekannt. Diese sind jedoch sehr rechenaufwändig und oftmals nicht universell anwendbar. Die bekannten Ansätze zur Optimierung der Architektur sind insbesondere für neuronale Netze mit mehreren Ausgabetasks nicht geeignet.
  • Ausgehend von dem oben genannten Stand der Technik liegt der Erfindung somit die Aufgabe zugrunde, ein Verfahren zum Erzeugen einer optimierten Netzwerkstruktur eines neuronalen Netzes mit einer Mehrzahl Ausgabetasks, insbesondere zur Durchführung einer Bildverarbeitung von Bildinformation wenigstens einer Kamera, insbesondere für ein Fahrunterstützungssystem eines Fahrzeugs, und ein Fahrunterstützungssystem mit einem solchen neuronalen Netz anzugeben, die eine Bereitstellung und Verwendung von effektiven neuronalen Netzen insbesondere unter Berücksichtigung von Anforderungen für einen Einsatz in eingebetteten Systemen ermöglichen.
  • Die Lösung der Aufgabe erfolgt erfindungsgemäß durch die Merkmale der unabhängigen Ansprüche. Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
  • Erfindungsgemäß ist somit ein Verfahren angegeben zum Erzeugen einer optimierten Netzwerkstruktur eines neuronalen Netzes, insbesondere zur Durchführung einer Bildverarbeitung von Bildinformation wenigstens einer Kamera, insbesondere für ein Fahrunterstützungssystem eines Fahrzeugs, wobei das neuronale Netz eine Mehrzahl Ausgabetasks aufweist, umfassend die Schritte Erzeugen einer Netzwerkstruktur des neuronalen Netzes mit einem Enkoder und einer Mehrzahl Dekoder, wobei jeder Dekoder eine Ausgabe für wenigstens einen der Ausgabetasks liefert, Erzeugen einer generischen Netzwerkstruktur des Enkoders mit einer Mehrzahl Schichten, Erzeugen von generischen Verbindungen von einer Mehrzahl der Schichten zu einer Mehrzahl der Dekoder, wobei jeder der Verbindungen ein Verbindungsrelevanzwert zugeordnet ist, Trainieren des neuronalen Netzes mit Trainingsdaten, wobei das Trainieren des neuronalen Netzes ein Trainieren der Verbindungsrelevanzwerte zu jeder der Verbindungen umfasst, und Erzeugen der optimierten Netzwerkstruktur unter Verwendung der Verbindungsrelevanzwerte zu jeder der Verbindungen.
  • Erfindungsgemäß ist außerdem ein Fahrunterstützungssystem mit einem neuronalen Netz und einer Mehrzahl Ausgabetasks angegeben, wobei das Fahrunterstützungssystem wenigstens eine Kamera aufweist, die Eingabedaten für das neuronale Netz bereitstellt und einer eingebetteten Recheneinheit, welche das neuronale Netz mit einer nach dem obigen Verfahren optimierten Netzwerkstruktur implementiert, zuführt.
  • Grundidee der vorliegenden Erfindung ist es also, eine einfache Optimierung von neuronalen Netzen mit mehreren Aufgaben oder Tasks durchzuführen, um die neuronalen Netze beispielsweise für eine Verwendung in eingebetteten System anpassen zu können. Dabei wird durch das Verfahren eine automatische Optimierung ermöglicht, so dass Expertenwissen, welches aktuell häufig Einfluss in das Design von neuronalen Netzen findet, vernachlässigt werden kann. Das Verfahren basiert darauf, dass nicht nur die Gewichte des neuronalen Netzes durch das Training gelernt werden, sondern zusätzlich die Verbindungen von den einzelnen Schichten zu den verschiedenen Dekodern auf ihre Relevanz geprüft werden. Abhängig davon können für die Funktion des neuronalen Netzes relevante Verbindungen identifiziert werden, genauso wie nicht oder weniger relevante Verbindungen, so dass das neuronale Netz in Bezug auf die Anzahl der Verbindungen optimiert werden kann. Verbindungen können abhängig von den Verbindungsrelevanzwerten für das neuronale Netz bereitgestellt oder weggelassen werden. Auch ist es prinzipiell möglich, zusätzliche Gewichtungen für die Verbindungen anzugeben, so dass ein Dekoder seine Eingangsdaten entsprechend für verschiedene Verbindungen gewichten kann.
  • Die Optimierung berücksichtigt dabei aufgabenspezifische Erfordernisse für das neuronale Netz. Durch die Anzahl der Verbindungen kann die Komplexität des neuronalen Netzes gesteuert werden, wodurch sich eine unmittelbarere Auswirkung auf Laufzeiteigenschaften des neuronalen Netzes ergibt, beispielsweise erforderliche Rechenleistung und erforderlicher Speicher. Da das Training des neuronalen Netzes, d.h. von Gewichten der einzelnen Schichten des neuronalen Netzes, auch ein Training der Verbindungsrelevanzwerte umfasst, kann die während des Trainings des neuronalen Netzes eine Basis für die nachfolgende Optimierung der Netzwerkstruktur erzeugt werden. Das Training des neuronalen Netzes umfasst ein Training von üblicherweise wenigstens mehreren Tausend Gewichten, so dass das Trainieren der Verbindungsrelevanzwerte, die üblicherweise in einer deutlich geringen Anzahl vorliegen, mit nur einem geringen Zusatzaufwand durchgeführt werden. Dadurch kann die Optimierung der Netzwerkstruktur gegenüber existierenden Verfahren sehr effizient durchgeführt werden.
  • Das neuronale Netz ist vorzugsweise ein Konvolutionelles Neuronales Netz (convolutional neural network, CNN) oder ein Rekurrentes Neuronales Netz (recurrent neural network, RNN). Beide Netze basieren auf einer Verwendung ähnliches Schichten und unterschieden sich hauptsächlich durch die Verbindungen zwischen den einzelnen Schichten. Derartige neuronale Netze sind zur Durchführung von Bildverarbeitungsaufgaben basierend auf Bildinformation von einer oder mehreren Kameras weit verbreitet. Entsprechend haben diese neuronalen Netze auch Einzug gefunden in Fahrunterstützungssystemen aktueller Fahrzeuge. Aufgrund einer Vielzahl unterschiedlicher Ausgabetasks in solchen Fahrunterstützungssystemen sind Multitasking Lernarchitekturen und Deep Learning in dem Bereich verbreitet. Ausgabetasks können beispielsweise eine Segmentierung von Bildinformation, wobei die Bildinformation verschiedenen Bildbestandteilen zugeordnet wird, oder eine Erkennung von Bildinhalten in der Bildinformation, beispielsweise um vorausfahrende Fahrzeuge zu erkennen, umfassen.
  • Das Verfahren zum Erzeugen der optimierten Netzwerkstruktur des neuronalen Netzes kann basierend auf dem Training der Verbindungsrelevanzwerte eine automatische Optimierung der Netzwerkstruktur durchführen.
  • Das Erzeugen einer Netzwerkstruktur des neuronalen Netzes mit einem Enkoder und einer Mehrzahl Dekoder betrifft eine zunächst sehr allgemeine Struktur, um insbesondere jedem Ausgabetask einen Dekoder mit einer entsprechenden Ausgabe zuzuordnen. Dadurch wird eine gewünschte Funktion des neuronalen Netzes definiert.
  • Das Erzeugen einer generischen Netzwerkstruktur des Enkoders mit einer Mehrzahl Schichten betrifft eine allgemeine Struktur innerhalb des Enkoders. Die Schichten sind dabei üblicherweise miteinander verbunden, so dass beispielsweise bei dem CNN eine Ausgabe einer Schicht eine Eingabe einer nachfolgenden Schicht bildet. Die Schichten können in an sich bekannter Wiese beispielsweise als Faltungsschichten, Aggregations-Schichten, Subsampling-Schichten und voll verbundene Schichten ausgeführt sein, wobei Schichten einer Art mit unterschiedlichen Konfigurationen verwendet werden können. Beispielsweise können Faltungsschichten Kernelgrößen von 3x3 oder 5x5 aufweisen.
  • Das Erzeugen von generischen Verbindungen von einer Mehrzahl der Schichten zu einer Mehrzahl der Dekoder umfasst Verbindungen von einzelnen Schichten zu den Dekodern, so dass Ausgaben dieser Schichten als Eingaben der entsprechenden Dekoder bereitgestellt werden können. Die Verbindungen sind generisch, da die Verbindungen zur nachfolgenden Optimierung bereitgestellt werden und noch keine detaillierte Aussage über eine Netzwerkstruktur des neuronalen Netzes angeben. Die Anzahl der Verbindungen kann dabei prinzipiell beliebig sein. Vorzugsweise werden alle möglichen Verbindungen zwischen den Schichten und den Dekodern hergestellt, d.h. jede Schicht wird mit jedem Dekoder verbunden. Alternativ können Verbindungen teilweise abhängig von einer Netzstruktur hergestellt werden, um beispielsweise Ausgaben von niedrigeren oder unteren Schichten, die sich nahe einer Eingabeschicht des Enkoders befinden, nicht zu berücksichtigen, oder beispielsweise um Ausgaben höherer Schichten nur einigen Dekodern zuzuführen. Es ist somit beispielsweise eine Kombination einer automatischen Optimierung der Netzwerkstruktur mit Expertenwissen in Bezug auf vorteilhafte Netzwerkstrukturen von neuronalen Netzen möglich, um dadurch die Optimierung besonders effizient durchführen zu können. Jeder der erstellten Verbindungen wird dabei ein Verbindungsrelevanzwert zugeordnet, der individuell für die jeweilige Verbindung ist. Die Verbindungsrelevanzwerte der Verbindungen werden vorzugsweise mit dem gleichen Wert initialisiert, d.h. die generischen Verbindungen haben alle die gleiche Relevanz.
  • Das Trainieren des neuronalen Netzes mit Trainingsdaten erfolgt in an sich bekannter Weise, wodurch Gewichte innerhalb jeder der Schichten angepasst werden. Die Verbindungsrelevanzwerte zu jeder der Verbindungen werden gleichzeitig trainiert, wodurch auch ein Training in Bezug auf die Netzwerkstruktur erfolgt.
  • Schließlich kann die optimierte Netzwerkstruktur unter Verwendung der Verbindungsrelevanzwerte zu jeder der Verbindungen erzeugt werden, wobei hier zusätzlich zu den Verbindungsrelevanzwerten beispielsweise Details in Bezug auf Ressourcen eingebetteter System in die Optimierung einfließen können. Insbesondere erfolgt die Optimierung in Bezug auf Ressourcen eines gewünschten Zielsystems. Dabei kann sich abhängig von einer erforderlichen Leistungsfähigkeit des neuronalen Netzes ergeben, dass die Ressourcen des gewünschten Zielsystems für die Implementierung des neuronalen Netzes nicht ausreichend sind.
  • Das Fahrunterstützungssystem kann eine oder auch mehrere Kameras umfassen. Bei mehreren Kameras kann vorab eine Kombination von Bildinformation der einzelnen Kameras durchgeführt werden, um einen gemeinsamen Datensatz als Bildinformation bereitzustellen. Prinzipiell ist aber auch eine separate Übergabe der Bildinformation mehrerer Kameras an das neuronale Netz möglich. Die Recheneinheit ermöglicht eine Implementierung des neuronalen Netzes. Dazu werden die trainierten Schichten und die Verbindungen gemäß der Optimierung auf die Recheneinheit übertragen. Im Betrieb werden Bilder der Kamera(s) der Recheneinheit zugeführt, um die einzelnen Ausgabetasks durchzuführen.
  • In vorteilhafter Ausgestaltung der Erfindung umfasst das Erzeugen einer generischen Netzwerkstruktur des Enkoders mit einer Mehrzahl Schichten ein Erzeugen von wenigstens einer Schicht mit einer Mehrzahl unterschiedlicher funktionaler Gruppen, und das Erzeugen von generischen Verbindungen von einer Mehrzahl der Schichten zu einer Mehrzahl der Dekoder umfasst ein Erzeugen von einer Mehrzahl Verbindungen von der Mehrzahl unterschiedlicher funktionaler Gruppen der wenigstens einen Schicht zu einer Mehrzahl der Dekoder. Dies ermöglicht eine weitere Generalisierung bei der Erzeugung des neuronalen Netzes. Die funktionalen Gruppen stellen dabei jeweils eine Funktion einer an sich bekannten Schicht eines CNN bereit, beispielsweise einer Faltungsschicht, einer Aggregations-Schicht, einer Subsampling-Schicht oder einer voll verbundenen Schicht, wobei auch mehrere funktionale Gruppen nach der Art gleichartiger Schichten, aber mit unterschiedlichen Konfigurationen, beispielsweise Faltungsschichten mit unterschiedlichen Kernelgrößen von 3x3 oder 5x5, gleichzeitig als funktionale Gruppen innerhalb einer Schicht bereitgestellt werden können. Basierend auf den Verbindungen von den funktionalen Gruppen zu den Dekodern kann eine starke Generalisierung des neuronalen Netzes erfolgen, so dass dessen genaue Netzwerkstruktur erst nach der Optimierung angegeben werden kann. Damit kann eine Implementierung einer Schicht mit einer funktionalen Gruppe erst nach der Optimierung angegeben werden.
  • In vorteilhafter Ausgestaltung der Erfindung umfasst das Erzeugen von wenigstens einer Schicht mit einer Mehrzahl unterschiedlicher funktionaler Gruppen ein Erzeugen der wenigstens einen Schicht mit einer parallelen Anordnung der Mehrzahl unterschiedlicher funktionaler Gruppen. Jede der funktionalen Gruppen erhält also die gleichen Eingabedaten zur Verarbeitung. Die Ausgaben der funktionalen Gruppen werden entsprechend parallel zur Verfügung gestellt.
  • In vorteilhafter Ausgestaltung der Erfindung umfasst das Erzeugen von wenigstens einer Schicht mit einer Mehrzahl unterschiedlicher funktionaler Gruppen ein Erzeugen der wenigstens einen Schicht mit einer nachgeschalteten Anordnung der Mehrzahl unterschiedlicher funktionaler Gruppen. Die funktionalen Gruppen sind also innerhalb einer einzelnen Schicht nachgeschaltet. Eine funktionale Gruppe stellt somit ihre Ausgabe als Eingabe für eine andere funktionale Gruppe innerhalb der Schicht bereit. Eine der funktionalen Gruppen erzeugt eine Ausgabe der entsprechenden Schicht.
  • Prinzipiell sind auch Kombinationen aus einer parallelen Anordnung und einer nachgeschalteten Anordnung funktionaler Gruppen innerhalb einer Schicht möglich.
  • In vorteilhafter Ausgestaltung der Erfindung umfasst das Erzeugen von wenigstens einer Schicht mit einer Mehrzahl unterschiedlicher funktionaler Gruppen ein Erzeugen der Schicht mit einem Kombinationselement zur Kombination der Mehrzahl unterschiedlicher funktionaler Gruppen innerhalb der wenigstens einen Schicht, wobei jeder der Mehrzahl unterschiedlicher funktionaler Gruppen der jeweiligen Schicht ein Schichtrelevanzwert zugeordnet ist, das Trainieren des neuronalen Netzes umfasst ein Trainieren der Schichtrelevanzwerte der Mehrzahl unterschiedlicher funktionaler Gruppen der jeweiligen Schicht, und das Erzeugen der optimierten Netzwerkstruktur erfolgt unter zusätzlicher Verwendung der Schichtrelevanzwerte der Mehrzahl unterschiedlicher funktionaler Gruppen der wenigstens einen Schicht. Damit kann innerhalb jeder der Schichten die Relevanz einer funktionalen Gruppe nicht nur für die Verbindungen zu den Dekodern sondern zusätzlich auch innerhalb des neuronalen Netzes ermittelt und für die Optimierung berücksichtigt werden. Für die Schichtrelevanzwerte gelten die gleichen Prinzipien wie zuvor für die Verbindungsrelevanzwerte erläutert, d.h. Initialisierung, Training und Optimierung erfolgen nach den gleichen Prinzipien.
  • In vorteilhafter Ausgestaltung der Erfindung umfasst das Verfahren ein Erzeugen einer Verlustfunktion mit einer ersten Verlustkomponente, die eine Leistungsfähigkeit des neuronalen Netzes betrifft, und eine zweite Verlustkomponente, die eine Datenverarbeitung durch das neuronale Netz definiert, und das Trainieren des neuronalen Netzes umfasst ein Trainieren des neuronalen Netzes mit der Verlustfunktion. Die Verlustfunktion berücksichtigt also nicht nur die Leistungsfähigkeit des neuronalen Netzes, sondern zusätzlich „Kosten“ für die Erzeugung der Ausgabe, die durch die Verarbeitung der Eingabedaten mit dem neuronalen Netz entstehen. Durch die Definition der „Kosten“ für die Erzeugung der Ausgabe kann beispielsweise eine Optimierung für ein gewünschtes eingebettetes System durchgeführt werden. Die Verlustkomponente kann somit insbesondere verfügbare Ressourcen des eingebetteten Systems individuell berücksichtigen. Die zweite Verlustkomponente dient insbesondere dem Training der Relevanzwerte, d.h. der Verbindungsrelevanzwerte und falls vorhanden der Schichtrelevanzwerte.
  • In vorteilhafter Ausgestaltung der Erfindung umfasst das Erzeugen einer Verlustfunktion ein Bestimmen der zweiten Verlustkomponente, die eine Datenverarbeitung durch das neuronale Netz definiert, basierend auf einer Anzahl erforderlicher Rechenoperationen, Speicheranforderungen und/oder Anforderungen an eine Verarbeitungslatenz. Damit können die Ressourcen des eingebetteten Systems detailliert und individuell berücksichtigt werden, indem unterschiedliche Ressourcen unterschiedlich stark zur zweiten Verlustkomponente beitragen können. Beispielsweise können eine Anzahl erforderlicher Rechenoperationen und Speicheranforderungen unterschiedlich gewichtet werden zur Bestimmung der zweiten Verlustkomponente.
  • In vorteilhafter Ausgestaltung der Erfindung weist das Trainieren des neuronalen Netzes eine erste Trainingsphase, welche ein Trainieren von Gewichten des neuronalen Netzes betrifft, und eine anschließende zweite Trainingsphase, welche ein Trainieren der Verbindungsrelevanzwerte der Verbindungen und/oder der Schichtrelevanzwerte allein oder zusammen mit dem Trainieren der Gewichte des neuronalen Netzes umfasst, auf. Es erfolgt eine Aufteilung des Trainings, so dass zunächst die einzelnen Schichten des neuronalen Netzes selber trainiert werden, und erst im Anschluss ein Training der Relevanzwerte erfolgt, d.h. der Verbindungsrelevanzwerte und falls vorhanden der Schichtrelevanzwerte. Es hat sich in der Praxis als vorteilhaft herausgestellt, das Training der Relevanzwerte, d.h. das Training betreffend die Netzwerkstruktur des neuronalen Netzes, erst durchzuführen, sobald die einzelnen Schichten des neuronalen Netzes selber ein gewisses Training erfahren haben.
  • In vorteilhafter Ausgestaltung der Erfindung umfasst das Erzeugen der optimierten Netzwerkstruktur ein Entfernen von Verbindungen und/oder funktionalen Gruppen basierend auf einem Grenzwert der entsprechenden Verbindungsrelevanzwerte und/oder einem Grenzwert der entsprechenden Schichtrelevanzwerte der funktionalen Gruppen der Schichten. Durch das Entfernen von Verbindungen und/oder funktionalen Gruppen kann das neuronale Netz insbesondere für verfügbare Ressourcen eines Zielsystems angepasst werden. Dies ist beispielsweise bei eingebetteten Systemen wichtig, die nur begrenzte Ressourcen aufweisen. Es können für Verbindungsrelevanzwerte und Schichtrelevanzwerte prinzipiell unabhängige Grenzwerte vorgegeben werden, wobei bei einer Erhöhung der Grenzwerte die Leistungsfähigkeit des neuronalen Netzes sinkt und die erforderlichen Ressourcen abnehmen und umgekehrt.
  • In vorteilhafter Ausgestaltung der Erfindung umfasst das Erzeugen der optimierten Netzwerkstruktur eine differentielle Suche der optimierten Netzwerkstruktur basierend auf den Verbindungsrelevanzwerten der Verbindungen und/oder basierend auf den Schichtrelevanzwerten der funktionalen Gruppen der Schichten. Die differentielle Suche ermöglicht eine Formulierung des Suchproblems als gewichtete graphenbasierte Suche, wobei die Relevanzwerte, d.h. die Verbindungsrelevanzwerte der Verbindungen und/oder die Schichtrelevanzwerte der funktionalen Gruppen der Schichten, durch einen an sich bekannten und effizienten Algorithmus für Rückpropagierung (backpropagation).
  • In vorteilhafter Ausgestaltung der Erfindung umfasst das Erzeugen der optimierten Netzwerkstruktur eine Suche der optimierten Netzwerkstruktur unter Verwendung einer zwei-Schichten-Optimierung. Die zwei-Schichten-Optimierung betrifft einerseits eine Optimierung der Gewichte der einzelnen Schichten des neuronalen Netzes und andererseits eine Optimierung der Relevanzwerte.
  • Die Relevanzwerte, d.h. die Verbindungsrelevanzwerte der Verbindungen und/oder die Schichtrelevanzwerte der funktionalen Gruppen der Schichten, werden üblicherweise als reelle Zahlen in einem Intervall zwischen [0; 1] angegeben.
  • Nachfolgend wird die Erfindung unter Bezugnahme auf die anliegende Zeichnung anhand bevorzugter Ausführungsformen näher erläutert. Die dargestellten Merkmale können sowohl jeweils einzeln als auch in Kombination einen Aspekt der Erfindung darstellen. Merkmale verschiedener Ausführungsbeispiele sind übertragbar von einem Ausführungsbeispiel auf ein anderes.
  • Es zeigt
    • 1 eine schematische Ansicht eines linearen, neuronalen Netzes mit einer Mehrzahl Schichten und Verbindungen zwischen den Schichten,
    • 2 eine schematische Ansicht einer Implementierung eines Fahrunterstützungssystems mit einem neuronalen Netz, das Eingabedaten in einer Eingabeschicht empfängt und Ausgaben für eine Mehrzahl Ausgabetasks bereitstellt, gemäß einer ersten, bevorzugten Ausführungsform,
    • 3 eine schematische Ansicht des neuronalen Netzes aus 2 mit einer Eingabeschicht, die Eingabedaten empfängt, einem Enkoder mit einer Mehrzahl innerer Schichten und einer Mehrzahl Dekoder, wobei jede der Schichten eine Verbindung mit jedem der Dekoder aufweist,
    • 4 eine schematische Ansicht des neuronalen Netzes aus 3 mit einer Mehrzahl innerer Schichten und einer Mehrzahl Dekoder, wobei eine der Schichten beispielhaft mit einer Mehrzahl funktionaler Gruppen dargestellt ist, und die funktionalen Gruppen Verbindungen mit den Dekodern aufweisen,
    • 5 eine schematische Detailansicht einer inneren Schicht des neuronalen Netzes aus 3 mit einer Mehrzahl funktionaler Gruppen, die jeweils Verbindungen mit den Dekodern aufweisen und zusätzlich innerhalb der inneren Schicht verbunden sind, um eine gemeinsame Ausgabe zu bilden,
    • 6 eine schematische Detailansicht von zwei aufeinanderfolgenden inneren Schichten des neuronalen Netzes aus 3 mit jeweils einer Mehrzahl funktionaler Gruppen, die Verbindungen mit den Dekodern aufweisen und zusätzlich innerhalb der jeweiligen inneren Schicht verbunden sind, um eine gemeinsame Ausgabe zu bilden,
    • 7 eine Darstellung einer Matrix von Verbindungsrelevanzwerten einer der inneren Schichten des neuronalen Netzes aus 3, und
    • 8 ein Ablaufdiagramm eines Verfahrens zum Erzeugen einer optimierten Netzwerkstruktur eines neuronalen Netzes gemäß der ersten, bevorzugten Ausführungsform.
  • 2 zeigt eine Implementierung eines Fahrunterstützungssystems 10 gemäß einer ersten, bevorzugten Ausführungsform, das hier im Wesentlichen durch seine eingebettete Recheneinheit dargestellt ist. Das Fahrunterstützungssystems 10 ist eines hier nicht weiter dargestellten Fahrzeugs.
  • Das Fahrunterstützungssystem 10 umfasst ein neuronales Netz 12 mit einer Eingabeschicht 14, wie in 2 dargestellt ist. Das neuronale Netz 12 ist in diesem Ausführungsbeispiel ein konvolutionelles neuronales Netz (convolutional neural network, CNN).
  • Das Fahrunterstützungssystem 10 weist eine oder mehrere Kameras auf, die in den Figuren nicht explizit dargestellt sind. Die Eingabeschicht 14 empfängt Bildinformation als Eingabedaten von den Kameras. Das neuronale Netz 12 ist zur Durchführung einer Bildverarbeitung von Bildinformation der Kamera oder der Kameras für das Fahrunterstützungssystem 10 ausgeführt.
  • Das Fahrunterstützungssystem 10 umfasst außerdem eine Mehrzahl Ausgabetasks 16, denen Ausgaben des neuronalen Netzes 12 zugeführt werden. Die Ausgabetasks 16 oder Aufgaben können beispielsweise umfassen, Bildinformation der Kameras zu Segmentieren, d.h. die Bildinformation verschiedenen Bildbestandteilen zuzuordnen, eine Erkennung von Bildinhalten in der Bildinformation durchzuführen, beispielsweise um vorausfahrende Fahrzeuge zu erkennen, Tiefeninformation zu schätzen oder eine Klassifizierung von Szenen beispielsweise als „Autobahn“ oder „Landstraße“.
  • Nachfolgens wird ein Verfahren zum Erzeugen einer optimierten Netzwerkstruktur des neuronalen Netzes 12 beschrieben. Die 8 zeigt ein Ablaufdiagramm des Verfahrens gemäß einer ersten, bevorzugten Ausführungsform. Das Verfahren wird unter zusätzlichem Bezug auf die 2 bis 7 beschrieben.
  • Das Verfahren beginnt mit Schritt S100, der ein Erzeugen einer Netzwerkstruktur des neuronalen Netzes 12 mit einem Enkoder 18 und einer Mehrzahl Dekoder 20 umfasst. Die Netzwerkstruktur des neuronalen Netzes 12 ist in 2 dargestellt. Jeder der Dekoder 20 liefert in diesem Ausführungsbeispiel eine Ausgabe für einen der Ausgabetasks 16.
  • Schritt S110 betrifft ein Erzeugen einer generischen Netzwerkstruktur des Enkoders 18 mit einer Mehrzahl Schichten 22. Jedes neuronale Netz 12 umfasst eine Eingabeschicht 14 und auch eine hier nicht dargestellte Ausgabeschicht, so dass die als relevante Schichten 22 hier innere Schichten sind des neuronalen Netzes 12 betrachtet werden. Bei den Inneren Schichten 22 handelt es sich um funktionale Schichten des neuronalen Netzes 12.
  • Wie im Detail in 3 dargestellt ist, umfasst der Enkoder 18 n innere Schichten 22. Die Schichten 22 sind dabei miteinander verbunden, so dass eine Ausgabe einer Schicht 22 eine Eingabe einer nachfolgenden Schicht 22 bildet. Jede der Schichten 22 umfasst eine Mehrzahl funktionale Gruppen 26, wie in den 4 und 5 dargestellt ist. Die funktionalen Gruppen 26 stellen jeweils eine Funktion einer an sich bekannten Schicht eines CNN bereit, beispielsweise einer Faltungsschicht, einer Aggregations-Schicht, einer Subsampling-Schicht oder einer voll verbundenen Schicht, wobei auch mehrere funktionale Gruppen 26 nach der Art gleichartiger Schichten, aber mit unterschiedlichen Konfigurationen, beispielsweise Faltungsschichten mit unterschiedlichen Kernelgrößen von 3x3 oder 5x5, gleichzeitig als funktionale Gruppen 26 innerhalb einer Schicht 22 bereitgestellt werden können.
  • Alternativ können einzelne Schichten 22 jeweils als Faltungsschichten, Aggregations-Schichten, Subsampling-Schichten und voll verbundene Schichten ausgeführt sein, wobei Schichten 22 einer Art mit unterschiedlichen Konfigurationen verwendet werden können, beispielsweise Faltungsschichten mit Kernelgrößen von 3x3 oder 5x5.
  • Die Schichten 22 werden jeweils mit einer parallelen Anordnung der unterschiedlichen funktionalen Gruppen 26 bereitgestellt, so dass jede der funktionalen Gruppen 26 die gleichen Eingabedaten als Eingabe 28 zur Verarbeitung erhält. Jede der Schichten 22 umfasst ein Kombinationselement 30 zur Kombination der funktionalen Gruppen 26 innerhalb der jeweiligen Schicht 22. Das Kombinationselement 30 erzeugt eine Kombination von Ausgabeinformation der funktionalen Gruppen 26 als Ausgabe 32 der entsprechenden Schicht 22. Die Ausgabeinformation der funktionalen Gruppen 26 wird somit ebenfalls parallel zur Verfügung gestellt.
  • Innerhalb jeder der Schichten 22 ist jeder der unterschiedlichen funktionalen Gruppen 26 ein Schichtrelevanzwert zugeordnet, der in 6 als α_block bezeichnet ist. Der Schichtrelevanzwert α_block gibt innerhalb der jeweiligen Schicht 22 die Relevanz der funktionalen Gruppe 26 innerhalb des neuronalen Netzes 12 an, d.h. welche der funktionalen Gruppen 26 wie relevant für die jeweils nachgelagerten Schichten 22 sind.
  • Schritt S120 betrifft ein Erzeugen von generischen Verbindungen 24 von jeder der funktionalen Gruppen 26 der einzelnen Schichten 22 zu jedem der Dekoder 20, wobei jeder der Verbindungen 24 ein Verbindungsrelevanzwert zugeordnet ist, der in 6 als α_task bezeichnet ist. In diesem Ausführungsbeispiel wird das neuronale Netz 12 mit einem vollständigen Satz Verbindungen 24 bereitgestellt, d.h. jede funktionale Gruppe 26 jeder Schicht 22 ist mit jedem Dekoder 20 verbunden.
  • Die Verbindungen 24 geben an, dass Ausgabeinformation der entsprechenden funktionalen Gruppen 26 dem jeweiligen Dekoder 20 zugeführt wird.
  • Die Relevanzwerte α_block, α_task, d.h. die Verbindungsrelevanzwerte α_task der Verbindungen 24 und die Schichtrelevanzwerte α_block der funktionalen Gruppen 26 der Schichten 22, werden hier als reelle Zahlen in einem Intervall zwischen [0; 1] angegeben. Die einzelnen Relevanzwerte α_block, α_task sind dabei unabhängig von anderen Relevanzwerten α_block, α_task. Die Relevanzwerte α_block, α_task werden nach der Erzeugung der Netzwerkstruktur des neuronalen Netzes 12 und des Enkoders 18 mit den funktionalen Gruppen 26 sowie der generischen Verbindungen 24 der funktionalen Gruppen 26 mit den Dekodern 20 initialisiert. Die Relevanzwerte α_block, α_task werden in diesem Ausführungsbeispiel mit dem gleichen Wert initialisiert, d.h. alle Verbindungen 24 und funktionale Gruppen 26 haben alle die gleiche Relevanz.
  • 7 zeigt eine Darstellung einer Matrix 34 von Verbindungsrelevanzwerten α_task einer der inneren Schichten 22 des neuronalen Netzes 12. Die Werte der Matrix 34 geben für jede funktionale Gruppe 26 der Schicht 22 die Relevanz für den entsprechenden Dekoder 20 an. Spalten und Zeilen der Matrix 34 entsprechen somit der Anzahl funktionaler Gruppen 26 bzw. Dekoder 20.
  • Schritt S130 betrifft ein Erzeugen einer Verlustfunktion mit einer ersten Verlustkomponente, die eine Leistungsfähigkeit des neuronalen Netzes 12 betrifft, und eine zweite Verlustkomponente, die eine Datenverarbeitung durch das neuronale Netz 12 definiert.
  • Die erste Verlustkomponente dient daher insbesondere dem Training der Gewichte der einzelnen funktionalen Gruppen 26 in den einzelnen Schichten 22 des neuronalen Netzes 12. Die zweite Verlustkomponente dient insbesondere dem Training der Relevanzwerte, d.h. der Verbindungsrelevanzwerte α_task und der Schichtrelevanzwerte α_block.
  • Im Detail wird die zweite Verlustkomponente basierend auf einer Anzahl erforderlicher Rechenoperationen, Speicheranforderungen und/oder Anforderungen an eine Verarbeitungslatenz bestimmt. Dabei können beispielsweise eine Anzahl erforderlicher Rechenoperationen und Speicheranforderungen unterschiedlich gewichtet werden zur Bestimmung der zweiten Verlustkomponente.
  • Schritt S140 betrifft ein Trainieren des neuronalen Netzes 12 mit Trainingsdaten, wobei das Trainieren des neuronalen Netzes 12 ein Trainieren der Verbindungsrelevanzwerte α_task zu jeder der Verbindungen 24 und ein Trainieren der Schichtrelevanzwerte α_block der unterschiedlichen funktionalen Gruppen 26 der einzelnen Schichten 22 umfasst.
  • Das Trainieren des neuronalen Netzes 12 erfolgt mit der wie oben definierten Verlustfunktion.
  • Das Trainieren des neuronalen Netzes 12 erfolgt in zwei Phasen. In einer ersten Trainingsphase erfolgt ausschließlich ein Trainieren von Gewichten des neuronalen Netzes 12. Das Trainieren des neuronalen Netzes 12 mit Trainingsdaten erfolgt in an sich bekannter Weise, wodurch die Gewichte innerhalb der funktionalen Gruppen 26 jeder der Schichten 22 angepasst werden. In einer daran anschließenden zweiten Trainingsphase wird zusätzlich zu dem Trainieren der Gewichte des neuronalen Netzes 12 ein Trainieren der Verbindungsrelevanzwerte α_task der Verbindungen 24 und der Schichtrelevanzwerte α_block durchgeführt. Es erfolgt also eine Aufteilung des Trainings, so dass zunächst die Gewichte der funktionalen Gruppen 26 der einzelnen Schichten 22 des neuronalen Netzes 12 trainiert werden, und erst im Anschluss in der zweiten Phase ein Training der Relevanzwerte α_task, α_block erfolgt, d.h. der Verbindungsrelevanzwerte α_task und der Schichtrelevanzwerte α_block.
  • Das Trainieren des neuronalen Netzes 12 mit den Trainingsdaten erfolgt in an sich bekannter Weise mit einem Algorithmus für Backpropagation. Beispielhaft wird hier Backpropagation mit einem stochastischem Gradientenabstieg durchgeführt. Durch das Training werden somit in an sich bekannter Weise die Gewichte innerhalb jeder der Schichten 22 angepasst werden. Die Verbindungsrelevanzwerte α_task zu jeder der Verbindungen 24 und die Schichtrelevanzwerte α_block werden gleichzeitig auf die an sich bekannte Weise trainiert, d.h. mit Backpropagation.
  • Schritt S150 betrifft ein Erzeugen der optimierten Netzwerkstruktur unter Verwendung der Verbindungsrelevanzwerte α_task zu jeder der Verbindungen 24 und unter zusätzlicher Verwendung der Schichtrelevanzwerte α_block der unterschiedlichen funktionalen Gruppen 26 der einzelnen Schichten 22.
  • Die Optimierung erfolgt in Bezug auf Ressourcen eines gewünschten Zielsystems. Verbindungen 24 und/oder funktionale Gruppen 26 werden basierend auf einem Grenzwert der entsprechenden Verbindungsrelevanzwerte α_task und/oder einem Grenzwert der entsprechenden Schichtrelevanzwerte α_block der funktionalen Gruppen 26 der Schichten 22 entfernt. Dabei können für Verbindungsrelevanzwerte α_task und Schichtrelevanzwerte α_block prinzipiell unabhängige Grenzwerte vorgegeben werden.
  • Alternativ erfolgt eine differentielle Suche der optimierten Netzwerkstruktur des neuronalen Netzes 12 basierend auf den Verbindungsrelevanzwerten α_task der Verbindungen 24 und basierend auf den Schichtrelevanzwerten α_block der funktionalen Gruppen 26 der Schichten 22. Dabei werden erforderliche Verbindungen 24 und funktionale Gruppen 26 identifiziert, und nicht erforderliche Verbindungen 24 und funktionale Gruppen 26 werden entfernt. Es erfolgt eine automatische Optimierung der Netzwerkstruktur des neuronalen Netzes 12 basierend auf dem Training der Verbindungsrelevanzwerte α_task und der Schichtrelevanzwerte α_block.
  • Die Optimierung basiert auf einer zwei-Schichten-Optimierung, wobei neben der Optimierung der Gewichte der einzelnen Schichten 22 des neuronalen Netzes 12 auch eine Optimierung der Relevanzwerte α_task, α_block erfolgt.
  • Bezugszeichenliste
  • 1
    konvolutionelles neuronales Netz (Stand der Technik)
    2
    Eingabeschicht (Stand der Technik)
    3
    innere Schicht (Stand der Technik)
    4
    Ausgabeschicht (Stand der Technik)
    5
    Verbindung (Stand der Technik)
    10
    Fahrunterstützungssystem
    12
    konvolutionelles neuronales Netz
    14
    Eingabeschicht
    16
    Ausgabetask
    18
    Enkoder
    20
    Dekoder
    22
    innere Schicht
    24
    Verbindung
    26
    funktionale Gruppe
    28
    Eingabe
    30
    Kombinationselement
    32
    Ausgabe
    34
    Matrix
    α_task
    Verbindungsrelevanzwert
    α_block
    Schichtrelevanzwert

Claims (12)

  1. Verfahren zum Erzeugen einer optimierten Netzwerkstruktur eines neuronalen Netzes (12), insbesondere zur Durchführung einer Bildverarbeitung von Bildinformation wenigstens einer Kamera, insbesondere für ein Fahrunterstützungssystem (10) eines Fahrzeugs, wobei das neuronale Netz (12) eine Mehrzahl Ausgabetasks (16) aufweist, umfassend die Schritte Erzeugen einer Netzwerkstruktur des neuronalen Netzes (12) mit einem Enkoder (18) und einer Mehrzahl Dekoder (20), wobei jeder Dekoder (20) eine Ausgabe für wenigstens einen der Ausgabetasks (16) liefert, Erzeugen einer generischen Netzwerkstruktur des Enkoders (18) mit einer Mehrzahl Schichten (22), Erzeugen von generischen Verbindungen (24) von einer Mehrzahl der Schichten (22) zu einer Mehrzahl der Dekoder (20), wobei jeder der Verbindungen (24) ein Verbindungsrelevanzwert (a_task) zugeordnet ist, Trainieren des neuronalen Netzes (12) mit Trainingsdaten, wobei das Trainieren des neuronalen Netzes (12) ein Trainieren der Verbindungsrelevanzwerte (a_task) zu jeder der Verbindungen (24) umfasst, und Erzeugen der optimierten Netzwerkstruktur unter Verwendung der Verbindungsrelevanzwerte (a_task) zu jeder der Verbindungen (24).
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Erzeugen einer generischen Netzwerkstruktur des Enkoders (18) mit einer Mehrzahl Schichten (22) ein Erzeugen von wenigstens einer Schicht (22) mit einer Mehrzahl unterschiedlicher funktionaler Gruppen (26), umfasst, und das Erzeugen von generischen Verbindungen (24) von einer Mehrzahl der Schichten (22) zu einer Mehrzahl der Dekoder (20) ein Erzeugen von einer Mehrzahl Verbindungen (24) von der Mehrzahl unterschiedlicher funktionaler Gruppen (26) der wenigstens einen Schicht (22) zu einer Mehrzahl der Dekoder (20) umfasst.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass das Erzeugen von wenigstens einer Schicht (22) mit einer Mehrzahl unterschiedlicher funktionaler Gruppen (26) ein Erzeugen der wenigstens einen Schicht (22) mit einer parallelen Anordnung der Mehrzahl unterschiedlicher funktionaler Gruppen (26) umfasst.
  4. Verfahren nach einem der Ansprüche 2 oder 3, dadurch gekennzeichnet, dass das Erzeugen von wenigstens einer Schicht (22) mit einer Mehrzahl unterschiedlicher funktionaler Gruppen (26) ein Erzeugen der wenigstens einen Schicht (22) mit einer nachgeschalteten Anordnung der Mehrzahl unterschiedlicher funktionaler Gruppen (26) umfasst.
  5. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass das Erzeugen von wenigstens einer Schicht (22) mit einer Mehrzahl unterschiedlicher funktionaler Gruppen (26) ein Erzeugen der Schicht (22) mit einem Kombinationselement (30) zur Kombination der Mehrzahl unterschiedlicher funktionaler Gruppen (26) innerhalb der wenigstens einen Schicht (22) umfasst, wobei jeder der Mehrzahl unterschiedlicher funktionaler Gruppen (26) der jeweiligen Schicht (22) ein Schichtrelevanzwert (α_block) zugeordnet ist, das Trainieren des neuronalen Netzes (12) ein Trainieren der Schichtrelevanzwerte (α_block) der Mehrzahl unterschiedlicher funktionaler Gruppen (26) der jeweiligen Schicht (22) umfasst, und das Erzeugen der optimierten Netzwerkstruktur unter zusätzlicher Verwendung der Schichtrelevanzwerte (α_block) der Mehrzahl unterschiedlicher funktionaler Gruppen (26) der wenigstens einen Schicht (22) erfolgt.
  6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Verfahren ein Erzeugen einer Verlustfunktion mit einer ersten Verlustkomponente, die eine Leistungsfähigkeit des neuronalen Netzes (12) betrifft, und eine zweite Verlustkomponente, die eine Datenverarbeitung durch das neuronale Netz (12) definiert, umfasst, und das Trainieren des neuronalen Netzes (12) ein Trainieren des neuronalen Netzes (12) mit der Verlustfunktion umfasst.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass das Erzeugen einer Verlustfunktion ein Bestimmen der zweiten Verlustkomponente, die eine Datenverarbeitung durch das neuronale Netz (12) definiert, basierend auf einer Anzahl erforderlicher Rechenoperationen, Speicheranforderungen und/oder Anforderungen an eine Verarbeitungslatenz umfasst.
  8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Trainieren des neuronalen Netzes (12) eine erste Trainingsphase, welche ein Trainieren von Gewichten des neuronalen Netzes (12) betrifft, und eine anschließende zweite Trainingsphase, welche ein Trainieren der Verbindungsrelevanzwerte (α_task) der Verbindungen (24) und/oder der Schichtrelevanzwerte (α_block) allein oder zusammen mit dem Trainieren der Gewichte des neuronalen Netzes (12) umfasst, aufweist.
  9. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Erzeugen der optimierten Netzwerkstruktur ein Entfernen von Verbindungen (24) und/oder funktionalen Gruppen (26) basierend auf einem Grenzwert der entsprechenden Verbindungsrelevanzwerte (α_task) und/oder einem Grenzwert der entsprechenden Schichtrelevanzwerte (α_block) der funktionalen Gruppen (26) der Schichten (22) umfasst.
  10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Erzeugen der optimierten Netzwerkstruktur eine differentielle Suche der optimierten Netzwerkstruktur basierend auf den Verbindungsrelevanzwerten (α_task) der Verbindungen (24) und/oder basierend auf den Schichtrelevanzwerten (α_block) der funktionalen Gruppen (26) der Schichten (22) umfasst.
  11. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das Erzeugen der optimierten Netzwerkstruktur eine Suche der optimierten Netzwerkstruktur unter Verwendung einer zwei-Schichten-Optimierung umfasst.
  12. Fahrunterstützungssystem (10) mit einem neuronalen Netz (12) und einer Mehrzahl Ausgabetasks (16), wobei das Fahrunterstützungssystem (10) wenigstens eine Kamera aufweist, die Eingabedaten für das neuronale Netz (12) bereitstellt und einer eingebetteten Recheneinheit, welche das neuronale Netz (12) mit einer nach dem Verfahren von einem der Ansprüche 1 bis 11 optimierten Netzwerkstruktur implementiert, zuführt.
DE102020132028.0A 2020-12-02 2020-12-02 Bestimmung einer optimierten Struktur für Neuronale Netze, insbesondere für Verwendung in einem Embedded System Pending DE102020132028A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020132028.0A DE102020132028A1 (de) 2020-12-02 2020-12-02 Bestimmung einer optimierten Struktur für Neuronale Netze, insbesondere für Verwendung in einem Embedded System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020132028.0A DE102020132028A1 (de) 2020-12-02 2020-12-02 Bestimmung einer optimierten Struktur für Neuronale Netze, insbesondere für Verwendung in einem Embedded System

Publications (1)

Publication Number Publication Date
DE102020132028A1 true DE102020132028A1 (de) 2022-06-02

Family

ID=81586250

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020132028.0A Pending DE102020132028A1 (de) 2020-12-02 2020-12-02 Bestimmung einer optimierten Struktur für Neuronale Netze, insbesondere für Verwendung in einem Embedded System

Country Status (1)

Country Link
DE (1) DE102020132028A1 (de)

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DOERSCH, Carl; ZISSERMAN, Andrew. Multi-task self-supervised visual learning. In: Proceedings of the IEEE International Conference on Computer Vision. 2017. S. 2051-2060.
SZEGEDY, Christian, et al. Inception-v4, inception-resnet and the impact of residual connections on learning. In: Thirty-first AAAI conference on artificial intelligence. 2017.
XIONG, Zhitong; YUAN, Yuan; WANG, Qi. AI-NET: Attention inception neural networks for hyperspectral image classification. In: IGARSS 2018-2018 IEEE International Geoscience and Remote Sensing Symposium. IEEE, 2018. S. 2647-2650.

Similar Documents

Publication Publication Date Title
EP3785177B1 (de) Verfahren und vorrichtung zum ermitteln einer netzkonfiguration eines neuronalen netzes
DE102018128531A1 (de) System und Verfahren zum Analysieren einer durch eine Punktwolke dargestellten dreidimensionalen Umgebung durch tiefes Lernen
DE112017005651T5 (de) Vorrichtung zur Klassifizierung von Daten
DE102017218889A1 (de) Unscharf parametriertes KI-Modul sowie Verfahren zum Betreiben
DE102018217090A1 (de) Verfahren, künstliches neuronales Netz, Vorrichtung, Computerprogramm und maschinenlesbares Speichermedium zur semantischen Segmentierung von Bilddaten
WO2019001649A1 (de) Wissenstransfer zwischen verschiedenen deep-learning architekturen
DE102018217091A1 (de) Verfahren, künstliches neuronales Netz, Vorrichtung, Computerprogramm und maschinenlesbares Speichermedium zur semantischen Segmentierung von Bilddaten
WO2020069964A1 (de) Verfahren, künstliches neuronales netz, vorrichtung, computerprogramm und maschinenlesbares speichermedium zur semantischen segmentierung von bilddaten
DE102019210507A1 (de) Vorrichtung und computerimplementiertes Verfahren für die Verarbeitung digitaler Sensordaten und Trainingsverfahren dafür
DE102017128082A1 (de) Meta-Architektur-Design für ein CNN-Netzwerk
DE102018206806A1 (de) Verfahren und Vorrichtung zur Umsetzung eines Eingangsbildes einer ersten Domäne in ein Ausgangsbild einer zweiten Domäne
DE102018113621A1 (de) Verfahren zum Trainieren eines konvolutionellen neuronalen Netzwerks zum Verarbeiten von Bilddaten zur Anwendung in einem Fahrunterstützungssystem
DE102019213061A1 (de) Klassifizierung von KI-Modulen
DE102019129029A1 (de) System und verfahren zur objektdetektion
DE102018129871A1 (de) Trainieren eins tiefen konvolutionellen neuronalen Netzwerks zum Verarbeiten von Sensordaten zur Anwendung in einem Fahrunterstützungssystem
DE102020132028A1 (de) Bestimmung einer optimierten Struktur für Neuronale Netze, insbesondere für Verwendung in einem Embedded System
EP3576013A1 (de) Abschätzen eines verlaufs eines schienenpfads
DE102018132627A1 (de) Verfahren zum Erfassen einer Umgebung eines Kraftfahrzeugs mittels zeitlicher Fusion von Bildern durch ein künstliches neuronales Netz; Steuereinheit, Fahrerassistenzsystem; Computerprogrammprodukt
DE102021200643B3 (de) Verfahren zur Umfelderkennung für teilautonome oder autonome Fahrfunktionen eines Kraftfahrzeugs mittels eines neuronalen Netzes
DE102019217952A1 (de) Verfahren und Vorrichtung zum Bereitstellen eines Trainingsdatensatzes zum Trainieren einer KI-Funktion auf eine unbekannte Datendomäne
DE102019217951A1 (de) Verfahren und Vorrichtung zum Bestimmen einer Domänendistanz zwischen mindestens zwei Datendomänen
DE102019213059A1 (de) Verfahren und Datenverarbeitungssystem
DE112022001417T5 (de) Objekterkennungsvorrichtung und objekterkennungsverfahren
DE102021110056A1 (de) Automatische visuelle Wahrnehmung mit globaler Aufmerksamkeit
DE202021102084U1 (de) Vorrichtung zum Ermitteln von Netzkonfigurationen eines neuronalen Netzes unter Erfüllung einer Mehrzahl von Nebenbedingungen

Legal Events

Date Code Title Description
R163 Identified publications notified