-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung betrifft ein Optimierungsverfahren für ein künstliches neuronales Netzwerk.
-
TECHNISCHER HINTERGRUND
-
Optimierungsverfahren für Datenstrukturen, wie beispielsweise Bäume, sind bekannt. Diese Optimierungsverfahren werden mit dem englischen Begriff „Pruning“ (deutsch für Beschneiden) bezeichnet. Für Baumstrukturen ist ein solches Optimierungsverfahren beispielsweise in dem deutschsprachigen Wikipedia-Artikel zum Pruning beschrieben: https://de.wikipedia.org/wiki/Pruning.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Vor diesem Hintergrund liegt der vorliegenden Erfindung die Aufgabe zugrunde, ein Optimierungsverfahren für ein künstliches neuronales Netzwerk zu schaffen.
-
Erfindungsgemäß wird diese Aufgabe durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 gelöst.
-
Demgemäß ist vorgesehen:
- - ein Optimierungsverfahren für ein künstliches neuronales Netzwerk mit einer Topologie, die Knoten und Gewichte umfasst, mit den folgenden Schritten: Bereitstellen eines trainierten künstlichen neuronalen Netzwerks, welches zu Eingangsdaten eines Trainingsdatensatzes jeweils Ausgangsdaten ermittelt, wobei die Ausgangsdaten von dem Trainingsdatensatz mit mehreren Datensets umfassend Eingangsdaten und Ausgangsdaten vorgegeben sind; Beschneiden der Topologie des künstlichen neuronalen Netzwerks zu einem ersten beschnittenen künstlichen neuronalen Netzwerk, derart dass der Trainingsdatensatz eine erste Teilmenge mit Datensets, für die das erste beschnittene künstliche neuronale Netzwerk zu den Eingangsdaten jeweils die vorgegebenen Ausgangsdaten ermittelt sowie eine zweite Teilmenge mit Datensets, für die das erste beschnittene künstliche neuronale Netzwerk zu den Eingangsdaten jeweils die vorgegebenen Ausgangsdaten nicht ermittelt; Speichern des ersten beschnittenen künstlichen neuronalen Netzwerks; Beschneiden der Topologie des trainierten künstlichen neuronalen Netzwerks zu einem zweiten beschnittenen künstlichen neuronalen Netzwerk, derart dass das zweite beschnittene künstliche neuronale Netzwerk zumindest die vorgegebenen Ausgangsdaten der Datensets der zweiten Teilmenge ermittelt; Speichern des zweiten beschnittenen künstlichen neuronalen Netzwerks.
-
Fahrzeuge im Sinne dieser Patentanmeldung sind Landfahrzeuge, Luftfahrzeuge oder Wasserfahrzeuge.
-
Ein künstliches neuronales Netzwerk (KNN, englisch artificial neural network - ANN) ist insbesondere ein in einem Rechenprogramm nachgebildetes Netzwerk aus vernetzten künstlichen Neuronen. Die künstlichen Neuronen sind dabei typischerweise auf verschiedenen Schichten (layers) angeordnet. Üblicherweise umfasst das künstliche neuronale Netzwerk eine Eingangsschicht und eine Ausgabeschicht (output layer), deren Neuronenausgabe als einzige des künstlichen neuronalen Netzwerks sichtbar wird. Zwischen der Eingangsschicht und der Ausgabeschicht liegende Schichten werden typischerweise als verdeckte Schichten (hidden layer) bezeichnet. Typischerweise wird zunächst eine Architektur bzw. Topologie eines künstlichen neuronalen Netzwerks initiiert und dann in einer Trainingsphase für eine spezielle Aufgabe oder für mehrere Aufgaben in einer Trainingsphase trainiert.
-
Der Begriff „Topologie eines KNN“ umfasst sämtlich Aspekte bezüglich des Aufbaus eines KNN. Hierunter fallen beispielsweise die Anzahl der Neuronen (Knoten) des KNN, die Aufteilung der Neuronen auf die einzelnen Schichten des KNN, die Anzahl der Schichten eines KNN, die Vernetzung der Neuronen und die Gewichtung der Vernetzung.
-
Das Training des künstlichen neuronalen Netzwerks umfasst dabei typischerweise eine Veränderung eines Gewichts einer Verbindung zwischen zwei künstlichen Neuronen des künstlichen neuronalen Netzwerks. Das Gewicht enthält Information zur Stärke der Berücksichtigung eines Eingangs eines Neurons. Das Training des künstlichen neuronalen Netzwerks kann auch eine Entwicklung von neuen Verbindungen zwischen künstlichen Neuronen, ein Löschen von bestehenden Verbindungen zwischen künstlichen Neuronen, ein Anpassen von Schwellwerten der künstlichen Neuronen und/oder ein Hinzufügen oder ein Löschen von künstlichen Neuronen umfassen.
-
Ein Beispiel für ein künstliches neuronales Netzwerk ist ein flaches künstliches neuronales Netzwerk (shallow neural network), welches oft nur eine einzelne verdeckte Schicht zwischen der Eingabeschicht und der Ausgabeschicht enthält und damit relativ einfach zu trainieren ist. Ein weiteres Beispiel ist ein tiefes künstliches neuronales Netzwerkwerk (deep neural network), welches zwischen der Eingangsschicht und der Ausgabeschicht mehrere verschachtelte verdeckte Schichten von künstlichen Neuronen enthält. Das tiefe künstliche neuronale Netzwerk ermöglicht dabei eine verbesserte Erkennung von Mustern und komplexen Zusammenhängen
-
Beispielsweise kann das künstliche neuronale Netzwerk ein ein- bzw. mehrschichtiges feedforward-Netzwerk oder eine rekurrentes Netzwerk sein. Feedforward-Netzwerke weisen Neuronen auf, die ausschließlich vorwärtsgespeist werden, d.h. ein Neuron wird ausschließlich von höher liegenden Schichten gespeist.
-
Ein rekurrentes Netzwerk weist bidirektional verbundene Neuronen auf, d.h. ein Neuron wird zudem von tiefer liegenden Schichten gespeist. Somit lässt sich bei einem späteren Durchlauf des KNN Information aus eine früheren Durchlauf berücksichtigen, wodurch ein Erinnerungsvermögen geschaffen wird.
-
Intelligenter Algorithmus bedeutet, dass der Algorithmus Mittel der künstlichen Intelligenz, also der Automatisierung intelligenten Verhaltens und dem Maschinenlernen, umfasst. Ein intelligenter Algorithmus ist zum Beispiel ein künstliches neuronales Netzwerk.
-
Trainingsdaten sind in dieser Anmeldung Datenpaare oder Datensets aus Eingangsdaten, die von dem KNN zu verarbeiten sind, sowie (Soll-)Ausgangsdaten, die von dem KNN zu ermitteln sind. Aus den Ausgangsdaten werden Reaktionsdaten bzgl. einer Reaktion auf die Eingangsdaten abgeleitet. Während des Trainings wird das KNN aufgrund eines Vergleichs von Soll-Ausgangsdaten mit dem von dem KNN ermittelten Ist-Ausgangsdaten angepasst, wodurch sich ein Trainingseffekt einstellt.
-
Ein Trainingsdatensatz umfasst mehrere Datensets.
-
Eingangsdaten sind umgebungsbezogene Sensordaten, z.B. Bild-, Radar- und/oder Lidardaten, mit welchen ein KNN gespeist wird.
-
Das KNN ermittelt Ausgangsdaten als Reaktion auf die Eingangsdaten.
-
Ein Datenset ist beispielsweise ein Datenpaar aus Eingangsdaten und Ausgangsdaten oder ein Datentripel aus Eingangsdaten, Ausgangsdaten und einer Reaktion, die aufgrund der Ausgangsdaten ermittelt wird.
-
Der Begriff Laufzeit beschreibt die Zeitdauer, die ein Programm, ausgeführt durch einen Recheneinheit, zur Bewältigung einer Aufgabe benötigt.
-
Computerprogrammprodukte umfassen in der Regel eine Folge von Befehlen, durch die die Hardware bei geladenem Programm veranlasst wird, ein bestimmtes Verfahren durchzuführen, das zu einem bestimmten Ergebnis führt.
-
Die der Erfindung zugrunde liegende Idee ist es, ein trainiertes künstliches neuronales Netzwerk für eine Problemklasse in mehrere Subnetzwerke für jeweils eine sub-Problemklasse zu unterteilen. Dabei sind die Subnetzwerke gegenüber dem trainierten künstlichen neuronalen Netzwerk von einer reduzierten Komplexität, woraus sich eine reduzierte Laufzeit eines der Subnetzwerke gegenüber dem ursprünglichen trainierten künstlichen neuronalen Netzwerk ergibt.
-
Vorzugsweise ist das trainierte künstliche neuronale Netzwerk dabei derart in Subnetzwerke unterteilt, dass die Komplexität der sub-Problemklassen, die von den einzelnen Subnetzwerken gelöst werden, zusammengenommen nicht geringer ist als die Komplexität der Problemklasse des trainierten künstlichen neuronalen Netzwerks.
-
Das künstliche neuronale Netzwerk wird unterteilt, indem dessen struktur stark vereinfacht wird, so dass das künstliche neuronale Netzwerk gezielt Fähigkeiten verlernt.
-
Vorteilhafte Ausgestaltungen und Weiterbildungen ergeben sich aus den weiteren Unteransprüchen sowie aus der Beschreibung unter Bezugnahme auf die Figuren der Zeichnung.
-
Gemäß einer bevorzugten Weiterbildung der Erfindung ist ein künstliches neuronales Netzwerk vorgesehen, welches trainiert wird, um festzustellen, ob ein beschnittenes künstliches neuronales Netzwerk für bestimmte Eingangsdaten geeignete Ausgangsdaten ermittelt. Es versteht sich, dass diese Funktionalität auch durch das erste und/oder durch das zweite beschnittene künstliche neuronale Netzwerk bereitgestellt werden kann. Somit ist es nicht erforderlich, Eingangsdaten auf mehrere beschnittene neuronale Netzwerke anzuwenden, sondern ein geeignetes beschnittenes neuronales Netzwerk auszusuchen. Somit lässt sich Rechenkapazität einsparen.
-
Es versteht sich, dass alternativ auch vorgesehen sein kann, dass mehrere beschnittene künstliche neuronale Netzwerke Eingangsdaten verarbeiten und geeignete Ausgangsdaten oder eine Kombination geeigneter Ausgangsdaten von einem der beschnittenen künstlichen neuronale Netzwerke ausgewählt werden.
-
Gemäß einer bevorzugten Weiterbildung der Erfindung wird der Trainingsdatensatz in wenigstens eine erste und in eine zweite Teilmenge geteilt. Dabei wird das trainierte künstliche neuronale Netzwerk derart beschnitten, dass das erste beschnittene künstliche neuronale Netzwerk zu Trainingsdaten der ersten Teilmenge geeignete Ausgangsdaten ermittelt. Das trainierte künstliche neuronale Netzwerk wird erneut derart beschnitten, dass das zweite beschnittene künstliche neuronale Netzwerk für die zweite Teilmenge des Trainingsdatensatzes geeignete Ausgangsdaten ermittelt.
-
Dementsprechend werden zunächst die erste und zweite Teilmenge festgelegt und im Folgenden das erste und zweite beschnittene neuronale Netzwerk konstruiert.
-
Häufig sind Trainingsdaten von einer bestimmten Struktur. Indem die Trainingsdaten, beispielsweise anhand ihrer Struktur unterteilt werden, lässt sich diese Struktur nutzen, um eine sinnvolle Partition der Trainingsdaten zu generieren. Somit lässt sich sicherstellen, dass in den Subnetzwerken keine Fähigkeit für das Lösen bestimmter struktureller Problemklassen verloren geht.
-
Beispielsweise ist es denkbar, dass die Trainingsdaten Fotos und/oder Videos von Menschen umfassen. In diesem Fall kann vorgesehen sein, dass die Trainingsdaten dahingehend strukturiert sind, ob die Trainingsdaten ein Kind oder einen Erwachsenen zeigen. Dementsprechend ließe sich ein erstes Subnetzwerk zur Erkennung von Erwachsenen konstruieren und ein zweites Subnetzwerk zur Erkennung von Kindern konstruieren.
-
Es versteht sich, dass dieses Beispiel lediglich anschaulicher Natur ist und es sich auch um Strukturen handeln kann, die von einem Menschen nicht erfasst werden, können.
-
Dabei ist es auch zweckmäßig, wenn das erste beschnittene künstliche neuronale Netzwerk die vorgegebenen Ausgangsdaten des Datensets der zweiten Teilmenge nicht ermittelt und/oder das zweite beschnittene künstliche neuronale Netzwerk die vorgegebenen Ausgangsdaten der Datensets der ersten Teilmenge nicht ermittelt. Somit ist gewährleistet, dass die Subnetzwerke so weit wie möglich vereinfacht, also beschnitten, werden und es zwischen den Fähigkeiten zweier Subnetzwerke keine Überschneidungen gibt. Somit lässt sich Rechenleistung und Laufzeit einsparen.
-
Alternativ kann vorgesehen sein, dass für das erste beschnittene künstliche neuronale Netzwerk eine erste und eine zweite Teilmenge des Trainingsdatensatzes ermittelt werden und ein zweites beschnittenes künstliches neuronales Netzwerk konstruiert werden, welches die vorgegebenen Ausgangsdaten zu den Eingangsdaten der Datensets der zweiten Teilmenge ermittelt.
-
Dementsprechend kann vorgesehen sein, dass das trainierte künstliche neuronale Netzwerk zunächst beschnitten wird und die erste und zweite Teilmenge nachfolgend festgelegt wird. Typischerweise ist die Zielsetzung hierbei, eine große Reduktion der Komplexität zu erreichen, beispielsweise indem bestimmte Teilmengen der Knoten und Gewichte des trainierten künstlichen neuronalen Netzwerks in bestimmten Schichten gezielt entfernt werden. Somit lässt sich die Struktur eines künstlichen neuronalen Netzwerks nutzen, indem bestimmte Teilstrukturen des künstlichen neuronalen Netzwerks entfernt werden.
-
Dabei ist es ferner zweckmäßig, wenn das zweite beschnittene künstliche neuronale Netzwerk die vorgegebenen Ausgangsdaten zu den Eingangsdaten der Datensets der ersten Teilmenge nicht ermittelt. Somit ist gewährleistet, dass es zwischen den beschnittenen künstlichen neuronalen Netzwerken keine Überschneidung in Fähigkeiten gibt. Somit lässt sich Rechenleistung und Laufzeit einsparen.
-
Gemäß einer bevorzugten Weiterbildung der Erfindung wird ermittelt, ob die Laufzeit einer künstlichen Intelligenz, welche das erste und das zweite beschnittene künstliche neuronale Netzwerk aufweist, kürzer ist als die Laufzeit des trainierten künstlichen neuronalen Netzwerks.
-
Es versteht sich, dass dabei vorgesehen sein kann, dass Eingangsdaten sowohl auf das erste und das zweite beschnittene künstliche neuronale Netzwerk angewendet werden, und der Algorithmus mit Mitteln der künstlichen Intelligenz im Folgenden geeignete Ausgangsdaten des ersten oder des zweiten beschnittenen künstlichen neuronalen Netzwerks auswählt. Alternativ kann vorgesehen sein, dass der Algorithmus ein geeignetes beschnittenes neuronales Netzwerk für bestimmte Eingangsdaten ermittelt.
-
Somit ist es vorteilhaft, wenn der Algorithmus eine Entscheidungsroutine zur Auswahl eines geeigneten beschnittenen Netzwerks bzw. zur Auswahl von geeigneten Ausgangsdaten aufweist.
-
Sofern die Laufzeit dieser Entscheidungs- und Problemlösungsroutine geringer ist als die Laufzeit des ursprünglichen trainierten künstlichen neuronalen Netzwerkes ist eine Zielsetzung des Verfahrens erreicht.
-
In diesem Fall kann es vorteilhaft sein, das Verfahren wie es vorstehend beschrieben wurde, erneut auf das erste und/oder auf das zweite beschnittene künstliche neuronale Netzwerk anzuwenden.
-
Folglich versteht es sich auch, dass vorgesehen sein kann, zu einem trainierten künstlichen neuronalen Netzwerk auch mehr als zwei beschnittene Subnetzwerke zu konstruieren.
-
Das Computerprogrammprodukt gemäß einer Ausführungsform der Erfindung führt die Schritte eines Verfahrens gemäß der vorangehenden Beschreibung aus, wenn das Computerprogrammprodukt auf einem Computer, insbesondere einem fahrzeuginternen Computer, läuft. Wenn das betreffende Programm auf einem Computer zum Einsatz kommt, ruft das Computerprogrammprodukt einen Effekt hervor, nämlich die Verkürzung der Laufzeit zur Inferenz eines trainierten künstlichen neuronalen Netzwerkes.
-
Es versteht sich, dass eine Recheneinheit, auf welcher mehrere beschnittene künstliche neuronale Netzwerke wie sie vorstehend beschrieben sind, gespeichert sind, vorteilhaft ist.
-
Figurenliste
-
Die vorliegende Erfindung wird nachfolgend anhand der in den schematischen Figuren der Zeichnungen angegebenen Ausführungsbeispiele näher erläutert. Es zeigen dabei:
- 1 ein schematisches Blockdiagramm gemäß einer Ausführungsform der Erfindung.
-
Die beiliegenden Zeichnungen sollen ein weiteres Verständnis der Ausführungsformen der Erfindung vermitteln. Sie veranschaulichen Ausführungsformen und dienen im Zusammenhang mit der Beschreibung der Erklärung von Prinzipien und Konzepten der Erfindung. Andere Ausführungsformen und viele der genannten Vorteile ergeben sich im Hinblick auf die Zeichnungen. Die Elemente der Zeichnungen sind nicht notwendigerweise maßstabsgetreu zueinander gezeigt.
-
In den Figuren der Zeichnungen sind gleiche, funktionsgleiche und gleichwirkende Elemente, Merkmale und Komponenten - sofern nicht anders ausgeführt ist - jeweils mit denselben Bezugszeichen versehen.
-
BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
-
1 zeigt eine Ausführungsform eines Optimierungsverfahrens für ein künstliches neuronales Netzwerk mit einer Topologie, die Kanten, und Gewichte umfasst. In dem Schritt S1 wird ein trainiertes künstliches neuronales Netzwerk bereitgestellt. Das künstliche neuronale Netzwerk ermittelt zu Eingangsdaten eines Trainingsdatensatzes jeweils Ausgangsdaten, die von dem Trainingsdatensatz mit mehreren Datensets umfassend Eingangsdaten und Ausgangsdaten vorgegeben ist. Dementsprechend ist das künstliche neuronale Netzwerk derart aufgebaut, dass dieses die vorgegebenen Ausgangsdaten auf die jeweiligen Eingangsdaten ermittelt, ohne die vorgegebenen Ausgangsdaten zu kennen.
-
In dem Schritt S2 wird die Topologie des trainierten künstlichen neuronalen Netzwerks zu einem ersten beschnittenen künstlichen neuronalen Netzwerk, derart beschnitten, dass der Trainingsdatensatz eine erste Teilmenge mit Datensets, für die das erste beschnittene künstliche neuronale Netzwerk zu den Eingangsdaten jeweils die vorgegebenen Ausgangsdaten ermittelt. Dementsprechend werden Ausgangsdaten einer zweiten Teilmenge der Datensets von dem ersten beschnittenen künstlichen neuronalen Netzwerk zu Eingangsdaten nicht ermittelt.
-
In dem Schritt S3 wird das erste beschnittene künstliche neuronale Netzwerk gespeichert.
-
In dem Schritt S4 wird das trainierte künstliche neuronale Netzwerk erneut zu einem zweiten beschnittenen künstlichen neuronalen Netzwerk beschnitten, derart dass das zweite beschnittene künstliche neuronale Netzwerk zumindest die vorgegebenen Ausgangsdaten der Datensets der zweiten Teilmenge ermittelt.
-
In dem Schritt S5 wird das zweite beschnittene künstliche neuronale Netzwerk gespeichert.
-
Bezugszeichenliste
-
- S1-S5
- Verfahrensschritte