Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
TRAINING NEURAL NETWORKS FOR EFFICIENT IMPLEMENTATION ON HARDWARE
Document Type and Number:
WIPO Patent Application WO/2020/178009
Kind Code:
A1
Abstract:
A method (100) for training an artificial neural network, ANN (1), which comprises a plurality of neurons (2), comprising the following steps: • a measure of the quality (11) that the ANN (1) has achieved overall within a past time period is determined (110); • one or more neurons (2) are evaluated on the basis of a measure of their respective quantitative contributions (21) to the determined quality (11) (120); • actions (22), by means of which the evaluated neurons (2) are respectively trained in the further course of the training, and/or weights (23) of said neurons (2) in the ANN (1) are defined on the basis of the evaluations (120a) of the neurons (2) (130). The method (200) according to claim 11, wherein a computing unit (4) having hardware resources for a specified number of neurons (2), layers (3a, 3b) of neurons (2) and/or connections (25) between neurons (2) is selected (205a), and wherein a model (1a) of the ANN (1) having a number of neurons (2), layers (3a, 3b) of neurons (2) and/or connections (25) between neurons (2) that exceeds the specified number is selected (205b).

Inventors:
HEUER FALK (DE)
LENZ PHILIP (DE)
LENGSFELD ALEXANDER (DE)
Application Number:
PCT/EP2020/054054
Publication Date:
September 10, 2020
Filing Date:
February 17, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06N3/04; G06N3/08; G06N3/063
Foreign References:
US5636326A1997-06-03
Other References:
GETHSIYAL AUGASTA M ET AL: "A Novel Pruning Algorithm for Optimizing Feedforward Neural Network of Classification Problems", NEURAL PROCESSING LETTERS, KLUWER ACADEMIC PUBLISHERS, BO, vol. 34, no. 3, 5 August 2011 (2011-08-05), pages 241 - 258, XP019969893, ISSN: 1573-773X, DOI: 10.1007/S11063-011-9196-7
Download PDF:
Claims:
Ansprüche

1. Verfahren (100) zum Trainieren eines künstlichen neuronalen

Netzwerks, KNN (1), welches eine Vielzahl von Neuronen (2) umfasst, mit den Schritten:

• es wird ein Maß für die Qualität (11), die das KNN (1), und/oder ein

Teilbereich des KNN (1), innerhalb eines zurückliegenden Zeitraums insgesamt erzielt hat, ermittelt (110);

• ein oder mehrere Neuronen (2) werden anhand eines Maßes für ihre jeweiligen quantitativen Beiträge (21) zu der ermittelten Qualität (11) bewertet (120);

• Maßnahmen (22), mit denen die bewerteten Neuronen (2) im weiteren Verlauf des Trainings jeweils trainiert werden, und/oder Stellenwerte (23) dieser Neuronen (2) im KNN (1), werden anhand der Bewertungen (120a) der Neuronen (2) festgelegt (130).

2. Verfahren (100) nach Anspruch 1, wobei das Maß für die Qualität ein Maß für den Trainingsfortschritt des KNN (1), ein Maß für die Auslastung der Neuronen einer Schicht oder eines anderen Teilbereichs des KNN (1), und/oder ein Maß für die Auslastung der Neuronen des KNN (1) insgesamt, umfasst.

3. Verfahren (100) nach einem der Ansprüche 1 bis 2, wobei das Maß für die Qualität (11) als gewichtete oder ungewichtete Summe quantitativer Beiträge (21) einzelner Neuronen (2) gewertet wird.

4. Verfahren (100) nach einem der Ansprüche 1 bis 3, wobei eine

Änderung einer Kostenfunktion, auf deren Optimierung das Training des KNN (1) ausgerichtet ist, über den zurückliegenden Zeitraum in das Maß für die Qualität (11) eingeht (111).

5. Verfahren (100) nach einem der Ansprüche 1 bis 4, wobei quantitative Beiträge (21) von Neuronen (2) zu der Qualität (11) umso höher gewichtet werden (121), je kürzer die Erbringung dieser Beiträge (21) zeitlich zurückliegt.

6. Verfahren (100) nach einem der Ansprüche 1 bis 5, wobei Beträge, um die die Gewichte, welche Neuronen (2) in dem KNN (1) zugewiesen sind, bei mindestens einem Trainingsschritt geändert werden, mit einem multiplikativen Faktor verstärkt werden (131), der für Neuronen (2) mit höheren quantitativen Beiträgen (21) geringer ist als für Neuronen (2) mit geringeren quantitativen Beiträgen (21).

7. Verfahren (100) nach einem der Ansprüche 1 bis 6, wobei Neuronen (2) während des Trainings temporär deaktiviert werden (132) mit einer

Wahrscheinlichkeit, die für Neuronen (2) mit höheren quantitativen Beiträgen (21) höher ist als für Neuronen (2) mit geringeren quantitativen Beiträgen (21).

8. Verfahren (100) nach einem der Ansprüche 1 bis 7, wobei der zurückliegende Zeitraum mindestens eine Epoche des Trainings umfasst.

9. Verfahren (100) nach einem der Ansprüche 1 bis 8, wobei Neuronen (2) mit höheren quantitativen Beiträgen (21) höhere Stellenwerte im KNN (1) zugewiesen werden (133) als Neuronen (2) mit niedrigeren quantitativen

Beiträgen (21).

10. Verfahren (100) nach Anspruch 9, wobei Neuronen (2), deren quantitative Beiträge (21) ein vorgegebenes Kriterium erfüllen, im KNN (1) deaktiviert werden (133a).

11. Verfahren (100) nach einem der Ansprüche 9 bis 10, wobei

Verbindungen (25) zwischen Neuronen (2), deren Gewichte ein vorgegebenes Kriterium erfüllen, im KNN (1) deaktiviert werden (133b).

12. Verfahren (100) nach einem der Ansprüche 9 bis 11, wobei die Anzahl der in dem KNN (1), und/oder in einem Teilgebiet des KNN (1), aktivierten Neuronen (2) von einer ersten Anzahl auf eine vorgegebene zweite Anzahl reduziert wird, indem Neuronen (2) mit den geringsten quantitativen Beiträgen (21) deaktiviert werden (133c).

13. Verfahren (200) zum Implementieren eines KN N (1) auf einem vorgegebenen Rechenwerk (4) mit den Schritten:

• ein Modell (la) des KNN (1) wird in einer Trainingsumgebung (5)

außerhalb des Rechenwerks (4) mit dem Verfahren (100) nach einem der Ansprüche 1 bis 12 trainiert (210);

• bei Abschluss des Trainings (210) aktivierte Neuronen (2) und

Verbindungen (25) zwischen Neuronen (2) werden auf dem Rechenwerk (4) implementiert (220).

14. Verfahren (200) nach Anspruch 13, wobei ein Rechenwerk (4) gewählt wird (205a), welches Hardwareressourcen für eine vorgegebene Anzahl von Neuronen (2), Schichten (3a, 3b) von Neuronen (2) und/oder Verbindungen (25) zwischen Neuronen (2) aufweist, und wobei ein Modell (la) des KNN (1) gewählt wird (205b), dessen Anzahl an Neuronen (2), Schichten (3a, 3b) von Neuronen (2) und/oder Verbindungen (25) zwischen Neuronen (2) die vorgegebene Anzahl überschreitet.

15. Verfahren mit den Schritten:

• ein künstliches neuronales Netzwerk, KNN (1), wird mit dem Verfahren (100) nach einem der Ansprüche 1 bis 12 trainiert, und/oder mit dem Verfahren (200) nach einem der Ansprüche 13 bis 14 implementiert;

• das KNN (1) wird betrieben, indem ihm eine oder mehrere

Eingangsgrößen zugeführt werden;

• abhängig von den vom KNN (1) gelieferten Ausgangsgrößen wird ein Fahrzeug, ein Roboter, ein Qualitätskontrollsystem, und/oder ein System zur Überwachung eines Bereichs auf der Basis von Sensordaten, angesteuert.

16. Computerprogramm, enthaltend maschinenlesbare Anweisungen, die, wenn sie auf einem Computer, und/oder auf einem Steuergerät, und/oder auf einem Embedded-System ausgeführt werden, den Computer, das Steuergerät, und/oder das Embedded-System, dazu veranlassen, ein Verfahren nach einem der Ansprüche 1 bis 15 auszuführen.

17. Maschinenlesbarer Datenträger und/oder Downloadprodukt mit dem Computerprogramm nach Anspruch 16.

18. Computer, ausgerüstet mit dem Computerprogramm nach Anspruch 16, mit dem maschinenlesbaren Datenträger bzw. mit dem Downloadprodukt nach Anspruch 17, und/oder in sonstiger Weise spezifisch dazu eingerichtet, ein Verfahren (100, 200) nach einem der Ansprüche 1 bis 15 auszuführen.

Description:
Beschreibung

Titel:

Training neuronaler Netzwerke für effizientes Implementieren auf Hardware

Die vorliegende Erfindung betrifft das Training neuronaler Netzwerke mit dem Ziel, diese neuronalen Netzwerke effizient auf Hardware implementieren zu können, beispielsweise für den Einsatz an Bord von Fahrzeugen.

Stand der Technik

Ein künstliches neuronales Netzwerk, KNN, umfasst eine Eingangsschicht, mehrere Verarbeitungsschichten und eine Ausgangsschicht. Eingangsgrößen werden an der Eingangsschicht in das KNN eingelesen und auf ihrem Weg durch die Verarbeitungsschichten zur Ausgangsschicht anhand einer

Verarbeitungskette verarbeitet, die in der Regel parametrisiert ist. Beim Training des KNN werden diejenigen Werte für die Parameter der Verarbeitungskette ermittelt, mit denen die Verarbeitungskette einen Satz Lern-Werte für die

Eingangsgrößen optimal auf einen zugehörigen Satz Lern-Werte für die

Ausgangsgrößen abbildet.

Die Stärke von KNN liegt darin, dass sie sehr hochdimensionale Daten, wie etwa hochauflösende Bilder, massiv parallel verarbeiten können. Der Preis für diese Parallelverarbeitung ist ein hoher Hardwareaufwand für das Implementieren eines KNN. Typischerweise werden Grafikprozessoren (GPUs) mit großer Speicherausstattung benötigt. Basierend auf der Erkenntnis, dass ein großer Teil der Neuronen in einem tiefen KNN wenig oder gar keinen Beitrag zum von dem KNN gelieferten Endergebnis leistet, offenbart die US 5,636,326 A, die Gewichte von Verbindungen zwischen Neuronen in dem fertig trainierten KNN einem Ausleseprozess („pruning“) zu unterziehen. Damit kann die Anzahl der Verbindungen und Neuronen stark reduziert werden ohne großen Verlust an Genauigkeit.

Offenbarung der Erfindung

Im Rahmen der Erfindung wurde ein Verfahren zum Trainieren eines künstlichen neuronalen Netzwerks, KNN, entwickelt. Damit wird das Ziel verfolgt, das KNN effizient auf Hardware implementieren zu können. Unter„effizient“ kann in diesem Zusammenhang beispielsweise verstanden werden, dass das KNN mit einer beschränkten Konfiguration an Hardwareressourcen auskommt. Unter „effizient“ kann aber auch beispielsweise verstanden werden, dass die

Netzwerkarchitektur, und/oder die Neuronen in einer oder mehreren Schichten des KNN, optimal genutzt und/oder ausgelastet werden. Die genaue Definition von„effizient“ ergibt sich somit aus der konkreten Anwendung, in der das KNN eingesetzt wird.

Bei dem Verfahren wird zu einem beliebigen Zeitpunkt während des ansonsten in beliebiger bekannter Weise ablaufenden Trainings ein Maß für die Qualität, die das KNN, und/oder ein Teilbereich des KNN, innerhalb eines zurückliegenden Zeitraums insgesamt erzielt hat, ermittelt. Die Qualität kann beispielsweise einen Trainingsfortschritt, eine Auslastung der Neuronen einer Schicht oder eines anderen Teilbereichs des KNN, eine Auslastung der Neuronen des KNN insgesamt, sowie auch beliebige, beispielsweise gewichtete, Kombinationen hieraus umfassen. Die genaue Definition von„Qualität“ ergibt sich somit ebenfalls aus der konkreten Anwendung.

Somit kann das Maß für die Qualität beispielsweise ein Maß für den

Trainingsfortschritt des KNN, ein Maß für die Auslastung der Neuronen einer Schicht oder eines anderen Teilbereichs des KNN, und/oder ein Maß für die Auslastung der Neuronen des KNN insgesamt, umfassen.

Es werden ein oder mehrere Neuronen anhand eines Maßes für ihre jeweiligen quantitativen Beiträge zu der ermittelten Qualität bewertet. Maßnahmen, mit denen die bewerteten Neuronen im weiteren Verlauf des Trainings jeweils trainiert werden, und/oder Stellenwerte dieser Neuronen im KNN werden anhand der Bewertungen der Neuronen festgelegt. Diese Maßnahmen können dann im weiteren Training ausgeführt werden. Die festgelegten Stellenwerte der

Neuronen im KNN können auch für die Inferenzphase, also für den späteren Wirkbetrieb des KNN nach dem Training, fortgelten.

Insbesondere kann beispielsweise das Maß für die Qualität als gewichtete oder ungewichtete Summe quantitativer Beiträge einzelner Neuronen gewertet werden.

Es wurde erkannt, dass auf diese Weise bereits während des Trainings der Wunsch berücksichtigt werden kann, die Neuronen des KNN sowie die

Verbindungen zwischen diesen Neuronen optimal auszulasten. Dieser Wunsch kann beispielsweise in ein Optimierungsziel für das Training des KNN münden. Sollte sich während des Trainings heraussteilen, dass trotz des expliziten Wunsches bestimmte Neuronen oder Verbindungen zwischen Neuronen nicht optimal ausgelastet sind, so können diese Neuronen bzw. Verbindungen bereits während des Trainings deaktiviert werden. Dies hat verschiedene Vorteile gegenüber einem nachträglichen„pruning“ nach Abschluss des Trainings.

Sollte sich bereits zu einem frühen Zeitpunkt während des Trainings

heraussteilen, dass bestimmte Neuronen oder Verbindungen zwischen Neuronen weniger relevant sind, so können diese Neuronen bzw. Verbindungen frühzeitig deaktiviert werden. Ab diesem Zeitpunkt fällt während des Trainings für diese Neuronen bzw. Verbindungen kein weiterer Rechenaufwand an. Es wurde erkannt, dass für jedes endgültige Deaktivieren oder Entfernen eines Neurons oder einer Verbindung ein Preis zu zahlen ist in Form des bereits in das Training dieses Neurons bzw. der Verbindung investierten Rechenaufwands. Ab dem Deaktivieren bzw. Entfernen werden die in diesem Neuron, bzw. in dieser Verbindung, verkörperten Erkenntnisse aus dem Training nicht mehr genutzt, d.h., der bereits investierte Aufwand wird verworfen. Der Betrag dieses Aufwands wird vorteilhaft vermindert, analog zur Praxis in der akademischen oder beruflichen Ausbildung, für das Fach ungeeignete Kandidaten möglichst frühzeitig auszusieben. Das gewünschte Endergebnis, nämlich ein fertig trainiertes und zugleich auf die tatsächlich relevanten Neuronen und Verbindungen beschränktes KNN, kann also vergleichsweise schnell erhalten werden.

Die Beschränkung auf die tatsächlich relevanten Neuronen und Verbindungen ist wiederum wichtig für das effiziente Implementieren des fertig trainierten KNN auf Hardware. Insbesondere bei der Nutzung von KN Ns in Steuergeräten für Fahrzeuge, beispielsweise für Fahrassistenzsysteme oder Systeme für das zumindest teilweise automatisierte Fahren, ist die Spezifikation hinsichtlich der zur Verfügung stehenden Hardware häufig bereits festgeschrieben, bevor mit dem Training des KNN begonnen wird. Das fertige KNN ist dann in seiner Größe und Komplexität auf diese gegebenen Hardwareressourcen beschränkt. Zugleich muss es bei der Inferenz, also beim Auswerten von Eingangsgrößen im

Wirkbetrieb, mit diesen Hardwareressourcen auskommen, um in der für die jeweilige Anwendung vorgegebenen Antwortzeit die gefragten Ausgangsgrößen zu liefern. Jedes deaktivierte Neuron und jede deaktivierte Verbindung spart bei jeder weiteren Inferenz Rechenaufwand und somit Antwortzeit ein.

Das Deaktivieren von Neuronen oder Verbindungen stellt grundsätzlich einen Eingriff in das KNN dar. Indem dieser Eingriff während des laufenden

Trainingsprozesses erfolgt, kann der Trainingsprozess auf den Eingriff reagieren. Nebenwirkungen des Eingriffs, wie etwa Overfitting auf die Trainingsdaten, eine schlechtere Generalisierung des KNN auf unbekannte Situationen oder eine erhöhte Anfälligkeit für eine Manipulation der Inferenz durch das Vorlegen eines „Adversarial Examples“, können so deutlich vermindert werden. Dies geht, anders als beispielsweise bei der zufälligen Deaktivierung eines bestimmten Prozentsatzes der Neuronen während des Trainings („zufälliger Dropout“), nicht damit einher, dass permanent ein diesem Prozentsatz entsprechender Anteil der gelernten Information ungenutzt bleibt. Ursache hierfür ist, dass das Deaktivieren der Neuronen bzw. Verbindungen von vornherein durch die fehlende Relevanz der fraglichen Neuronen bzw. Verbindungen für die Qualität motiviert ist.

Schließlich wird der Kreis der möglichen Maßnahmen, die in Antwort auf einen geringen quantitativen Beitrag bestimmter Neuronen zur Qualität ergriffen werden können, über das bloße Deaktivieren dieser Neuronen hinaus erweitert. So kann beispielsweise das weitere Training gezielt auf derartige„schwache“ Neuronen fokussiert werden, damit diese eventuell doch noch einen produktiven Beitrag zur Qualität leisten können. Dies ist vergleichbar damit, dass in der Schulausbildung bei Problemen in einem bestimmten Fach meistens Nachhilfe als erste Maßnahme angewendet wird, statt sofort die Begabung des Schülers für dieses Fach zu verneinen.

Der zurückliegende Zeitraum umfasst vorteilhaft mindestens eine Epoche des Trainings, d.h., einen Zeitraum, in dem jeder der verfügbaren Lern- Datensätze, die jeweils Lern-Werte für die Eingangsgrößen und zugehörige Lern-Werte für die Ausgangsgrößen umfassen, einmal verwendet wurde. Die ermittelten quantitativen Beiträge der Neuronen zur Qualität sind dann besser vergleichbar. So ist es durchaus möglich, dass bestimmte Neuronen des KNN auf eine gute Behandlung bestimmter in den Eingangsgrößen vorkommender Situationen „spezialisiert“ sind, d.h., dass diese Situationen diesen Neuronen besonders „liegen“. Wenn ein Zeitraum betrachtet wird, in dem überwiegend diese

Situationen Vorkommen, wird die Leistung dieser Neuronen höher bewertet als sie in Wahrheit ist, denn in anderen Situationen kann die Leistung anderer Neuronen deutlich besser sein. Im Analogon der akademischen Ausbildung entspricht dies einer Prüfung, für die sich der Kandidat selektiv auf ein

bestimmtes Teilgebiet des Prüfungsstoffs vorbereitet hat und„Glück hat“, dass selektiv genau dieses Teilgebiet abgefragt wird. Die Bewertung benachteiligt dann die anderen Kandidaten, deren Wissen weniger tief ins Detail geht, aber das ganze Spektrum des Prüfungsstoffs deutlich besser abdeckt. Die

Berücksichtigung mindestens einer Epoche entspricht einer gerechteren Prüfung mit breit gestreuten Fragen aus dem kompletten Spektrum des Prüfungsstoffs.

In einer besonders vorteilhaften Ausgestaltung geht eine Änderung einer Kostenfunktion (Löss- Funktion), auf deren Optimierung das Training des KNN ausgerichtet ist, über den zurückliegenden Zeitraum in das Maß für die Qualität ein. Dies stellt sicher, dass die Maßnahmen, die in Antwort auf die Bewertung der Neuronen ergriffen werden, nicht im Widerspruch zu dem Ziel stehen, das mit dem Training des KNN letztendlich verfolgt wird.

In einer weiteren besonders vorteilhaften Ausgestaltung werden quantitative Beiträge von Neuronen zu der Qualität umso höher gewichtet, je kürzer die Erbringung dieser Beiträge zeitlich zurückliegt. Auf diese Weise kann

berücksichtigt werden, dass von dem KNN gelerntes Wissen, wie jedes andere Wissen auch, veralten kann, so dass neues Wissen an seine Stelle treten muss.

Wird beispielsweise ausgehend von einem aktuellen Iterationsschritt t ein Zeitraum betrachtet, der N Iterationsschritte zurückreicht, so können die quantitativen Beiträge, die eine Schicht k des KNN in diesem Zeitraum zur Qualität, etwa einem Iterationsfortschritt, des KNN insgesamt geleistet hat, kumuliert und/oder aggregiert werden. Dabei kann insbesondere auch über einen

Dropout-Tensor berücksichtigt werden, welche Neuronen in der Schickt k in einem gegebenen Iterationsschritt t-n überhaupt aktiv waren. Beispielsweise lassen sich für eine vollvernetzte Schicht k des KNN die Beiträge der jeweils aktiven Neuronen zur Qualität über alle zurückliegenden N Iterationsschritte in einer„Aktivierungsgüte“ zusammenfassen, die sich beispielsweise schreiben lässt als

M, enthält die entsprechende Güte aller einzelnen Neuronen in der Schicht k und hängt vom Zeitschrift t ab.

Hierin ist L die Kostenfunktion (Löss- Funktion). Dementsprechend ist AL t-n die Differenz der Kostenfunktion zwischen dem Zeitschritt t-n und dem Zeitschrift t. Durch den Verfallsparameter g werden die Wirkungen zeitlich verschieden lang zurückliegender Iterationsschritte normiert. Der Dropout-Tensor gibt für jede Schicht k des KNN und für jeden Iterationsschritt t-n an, welche Neuronen der Schicht k im Iterationsschritt t-n jeweils aktiv waren oder nicht. dient also dazu, eine eventuelle vorübergehende Deaktivierung einzelner Neuronen für einzelne Iterationsschritte (Dropout) zu berücksichtigen. Es ist nicht zwingend, dass beim Training des KNN ein Dropout verwendet wird. Je nach Art der Schicht k können ]M^ Vektoren oder Matrizen sein.

Die beschriebene„Aktivierungsgüte“ lässt sich alternativ auch als Funktion der Signale und Gewichte für alle Neuronen der Schicht k ausdrücken. Die Signale sind im weitesten Sinne Aktivierungen der Neuronen, wie etwa mit den Gewichten gewichtete Summen von Eingaben, die den jeweiligen

Neuronen zugeführt werden. lässt sich dann beispielsweise mit .schreiben als

M = normf S /'^ Q^ )\

\n= 0

Hierin bezeichnet x t die Eingaben, die dem KN N als Ganzes zugeführt werden.

In jedem Iterationsschritt werden die Gewichte, die Neuronen in dem KNN zugewiesen sind, nach Maßgabe der Kostenfunktion und der verwendeten Trainingsstrategie (wie etwa Stochastic Gradient Descent, SGD) um bestimmte Beträge geändert. In einer weiteren besonders vorteilhaften Ausgestaltung werden diese Beträge mit einem multiplikativen Faktor verstärkt, der für

Neuronen mit höheren quantitativen Beiträgen zur Qualität geringer ist als für Neuronen mit geringeren quantitativen Beiträgen zur Qualität. Neuronen mit einer aktuell geringeren Leistung werden also stärkeren Lernschritten unterzogen mit dem Ziel, die Leistung hierdurch aktiv zu verbessern, analog zum

Nachhilfeunterricht. Beispielsweise können die Iterationsschritte der Gewichte

durchgeführt werden. In einer weiteren besonders vorteilhaften Ausgestaltung werden Neuronen während des Trainings temporär deaktiviert mit einer Wahrscheinlichkeit, die für Neuronen mit höheren quantitativen Beiträgen zur Qualität höher ist als für Neuronen mit geringeren quantitativen Beiträgen zur Qualität.

Auch diese Maßnahme dient der gezielten Förderung von Neuronen, deren quantitative Beiträge zur Qualität aktuell gering sind. Das temporäre Deaktivieren gerade der leistungsstarken Neuronen zwingt das KNN dazu, auch die schwächeren Neuronen an der Bildung der letztendlichen Ausgangsgrößen zu beteiligen. Dementsprechend erhalten diese schwächeren Neuronen auch vermehrt Feedback aus dem Vergleich der Ausgangsgrößen mit der„ground truth“ in Form der Lern-Werte für die Ausgangsgrößen. Im Ergebnis wird ihre Leistung hierdurch tendenziell besser. Die Situation ist vergleichbar mit der Führung von Schulunterricht in einer Klasse mit heterogenem Leistungsstand. Wenn Fragen des Lehrers immer nur an die starken Schüler gehen, lernen die schwächeren Schüler nicht dazu, so dass der Abstand zwischen den starken und den schwächeren Schülern zementiert oder sogar noch weiter vergrößert wird.

Als weitere Folgewirkung wird durch diese Maßnahme das KNN auch robuster gegen Ausfälle der leistungsstarken Neuronen, denn durch das temporäre Deaktivieren werden genau solche Situationen von dem KNN geübt.

Beispielsweise kann der Dropout-Tensor für t > 0 über eine Bernoulli-

Funktion gesamplet werden. Diese hängt wiederum von der Aktivierungsgüte M, zu einem vorherigen Iterationsschritt ab. Hierdurch ergeben sich die Wahrscheinlichkeiten p k dafür, dass Neuronen einer Schicht k aktiviert sind, zu

In einer weiteren besonders vorteilhaften Ausgestaltung der Erfindung werden Neuronen mit höheren quantitativen Beiträgen zur Qualität höhere Stellenwerte im KNN zugewiesen als Neuronen mit geringeren quantitativen Beiträgen zur Qualität. Der Stellenwert kann sich beispielsweise darin manifestieren, mit welchem Gewicht Ausgaben der betreffenden Neuronen berücksichtigt werden, bzw. ob die Neuronen überhaupt aktiviert werden. Diese Ausgestaltung lässt sich insbesondere nutzen, um das KNN auf den für relevanten Teil zu komprimieren. Hierzu können Neuronen, deren quantitative Beiträge zur Qualität ein vorgegebenes Kriterium erfüllen, im KNN deaktiviert werden. Das Kriterium kann beispielsweise als absolutes Kriterium formuliert sein, wie etwa als ein Schwellwert. Das Kriterium kann aber auch beispielsweise als relatives Kriterium formuliert sein, wie etwa als eine Abweichung der quantitativen Beiträge zur Qualität von den quantitativen Beiträgen anderer Neuronen oder von einer zusammenfassenden Statistik hiervon. Eine

zusammenfassende Statistik kann beispielsweise einen Mittelwert, einen Median und/oder Standardabweichungen beinhalten.

Anders als Neuronen, deren Ausgaben lediglich untergewichtet werden, können deaktivierte Neuronen beim Implementieren des fertig trainierten KNN auf Hardware komplett eingespart werden. Je stärker das KNN komprimiert ist, desto weniger Hardwareressourcen werden für das letztendliche Implementieren benötigt.

Analoges gilt, wenn unwichtige Verbindungen zwischen Neuronen in dem KNN deaktiviert werden. Jede dieser Verbindungen kostet bei der Inferenz im Betrieb des KNN zusätzliche Rechenzeit, denn die Ausgabe des Neurons am einen Ende der Verbindung muss mit dem Gewicht der Verbindung multipliziert werden und geht dann in die Aktivierung des Neurons am anderen Ende der Verbindung ein. Wenn das Gewicht der Verbindung von Null verschieden ist, fallen diese Rechenoperationen an und dauern immer gleich lange, egal wie nah das

Gewicht an Null liegen mag und wie wenig das Berücksichtigen dieser

Verbindung letztendlich in der Ausgabe des KNN bewirkt. Daher werden in einer weiteren besonders vorteilhaften Ausgestaltung Verbindungen zwischen

Neuronen, deren Gewichte ein vorgegebenes Kriterium erfüllen, im KNN deaktiviert. Analog zum Kriterium für die quantitativen Beiträge von Neuronen kann das Kriterium absolut oder relativ formuliert sein.

In einer weiteren besonders vorteilhaften Ausgestaltung wird die Anzahl der in dem KNN, und/oder in einem Teilgebiet des KNN, aktivierten Neuronen von einer ersten Anzahl auf eine vorgegebene zweite Anzahl reduziert, indem Neuronen mit den geringsten quantitativen Beiträgen deaktiviert werden. So kann beispielsweise durch die verwendete Hardware die maximale Komplexität des KNN vorgegeben sein.

Die Erfindung bezieht sich auch auf ein Verfahren zum Implementieren eines KNN auf einem vorgegebenen Rechenwerk. Bei diesem Verfahren wird ein Modell des KNN in einer Trainingsumgebung außerhalb des Rechenwerks mit dem zuvor beschriebenen Verfahren trainiert. Bei Abschluss des Trainings aktivierte Neuronen und Verbindungen zwischen Neuronen werden auf dem Rechenwerk implementiert.

Das vorgegebene Rechenwerk kann beispielsweise dazu ausgebildet sein, in ein Steuergerät für ein Fahrzeug eingebaut zu werden, und/oder es kann dazu ausgebildet sein, aus dem Bordnetz eines Fahrzeugs mit Energie versorgt zu werden. Der verfügbare Platz und das Wärmebudget in dem Steuergerät, bzw. die verfügbare Strommenge, begrenzen dann die für die Inferenz des KNN verfügbaren Hardwareressourcen.

Demgegenüber kann die Trainingsumgebung mit deutlich stärkeren Ressourcen ausgestattet sein. Beispielsweise kann ein physischer oder virtueller Rechner mit einem leistungsfähigen Grafikprozessor (GPU) verwendet werden. Es sind nur wenig bis keine Vorab-Überlegungen erforderlich, um mit dem Training beginnen zu können; das Modell sollte lediglich eine gewisse Mindestgröße aufweisen, mit der das zu lösende Problem voraussichtlich hinreichend genau abgebildet werden kann.

Durch das zuvor beschriebene Verfahren kann innerhalb der Trainingsumgebung ermittelt werden, welche Neuronen und Verbindungen zwischen Neuronen wichtig sind. Basierend hierauf kann das KNN für das Implementieren auf dem Rechenwerk komprimiert werden. Wie zuvor beschrieben, kann dies auch direkt automatisch innerhalb der Trainingsumgebung erfolgen.

Es kann also allgemein vorteilhaft ausgehend von einem vorgegebenen

Rechenwerk, welches Hardwareressourcen für eine vorgegebene Anzahl von Neuronen, Schichten von Neuronen und/oder Verbindungen zwischen Neuronen aufweist, ein Modell des KNN gewählt werden, dessen Anzahl an Neuronen, Schichten von Neuronen und/oder Verbindungen zwischen Neuronen die vorgegebene Anzahl überschreitet. Die Komprimierung sorgt dafür, dass das trainierte KNN letztendlich auf die vorgegebene Hardware passt. Hierbei wird angestrebt, dass diejenigen Neuronen und Verbindungen zwischen Neuronen, die letztendlich auf der Hardware implementiert sind, auch die für die Inferenz im Betrieb des KNN wichtigsten sind.

Die Erfindung bezieht sich auch auf ein weiteres Verfahren. Bei diesem

Verfahren wird ein künstliches neuronales Netzwerk, KNN, zunächst mit dem zuvor beschriebenen Verfahren zum Trainieren trainiert, und/oder mit dem zuvor beschriebenen Verfahren zum Implementieren auf einem Rechenwerk implementiert. Das KNN wird anschließend betrieben, indem ihm eine oder mehrere Eingangsgrößen zugeführt werden. Abhängig von den vom KNN gelieferten Ausgangsgrößen wird ein Fahrzeug, ein Roboter, ein

Qualitätskontrollsystem, und/oder ein System zur Überwachung eines Bereichs auf der Basis von Sensordaten, angesteuert.

Bei den beschriebenen Verfahren kann insbesondere ein KNN gewählt werden, das als Klassifikator und/oder Regressor für mit mindestens einem Sensor aufgenommene physikalische Messdaten ausgebildet ist. Es ermöglicht dann auch in Anwendungen, in denen nur beschränkte Hardware, eine beschränkte Energiemenge oder ein beschränkter Einbauraum zur Verfügung steht, eine aussagekräftige und auf viele Situationen verallgemeinerbare Auswertung der physikalischen Messdaten durch Künstliche Intelligenz. Der Sensor kann beispielsweise ein bildgebender Sensor, ein Radarsensor, ein Lidar-Sensor oder ein Ultraschallsensor sein.

Die Verfahren können insbesondere ganz oder teilweise in einer Software implementiert sein, die den unmittelbaren Kundennutzen bewirkt, dass ein KNN in Relation zum Hardwareaufwand und zum Energieverbrauch für die Inferenz in seinem Betrieb bessere Ergebnisse liefert. Die Erfindung bezieht sich daher auch auf ein Computerprogramm mit maschinenlesbare Anweisungen, die, wenn sie auf einem Computer, und/oder auf einem Steuergerät, und/oder auf einem Embedded-System ausgeführt werden, den Computer, das Steuergerät, und/oder das Embedded-System, dazu veranlassen, eines der beschriebenen Verfahren auszuführen. Steuergeräte und Embedded-Systeme können also mindestens in dem Sinne als Computer anzusehen sein, dass ihr Verhalten ganz oder teilweise durch ein Computerprogramm charakterisiert ist. Somit umfasst der Begriff„Computer“ beliebige Geräte zur Abarbeitung vorgebbarer

Rechenvorschriften. Diese Rechenvorschriften können in Form von Software vorliegen, oder in Form von Hardware, oder auch in einer Mischform aus Software und Hardware.

Ebenso bezieht sich die Erfindung auch auf einen maschinenlesbaren

Datenträger oder ein Downloadprodukt mit dem Computerprogramm. Ein Downloadprodukt ist ein über ein Datennetzwerk übertragbares, d.h. von einem Benutzer des Datennetzwerks downloadbares, digitales Produkt, das

beispielsweise in einem Online-Shop zum sofortigen Download feilgeboten werden kann.

Weiterhin kann ein Computer mit dem Computerprogramm, mit dem

maschinenlesbaren Datenträger bzw. mit dem Downloadprodukt ausgerüstet sein, und/oder in beliebiger sonstiger Weise spezifisch dazu eingerichtet sein, eines der beschriebenen Verfahren auszuführen. Eine solche spezifische Einrichtung kann beispielsweise mit feldprogrammierbaren Gatteranordnungen (FPGAs) und/oder anwendungsspezifischen integrierten Schaltkreisen (ASICs) realisiert werden.

Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand von Figuren näher dargestellt.

Ausführungsbeispiele

Es zeigt:

Figur 1 Ausführungsbeispiel des Verfahrens 100 zum Trainieren eines KNN 1; Figur 2 Ausführungsbeispiel des Verfahrens 200 zum Implementieren des KNN 1 auf einem Rechenwerk 4;

Figur 3 Beispielhafte Komprimierung eines KNN 1.

Figur 1 zeigt ein Ausführungsbeispiel des Verfahrens 100. Das Verfahren 100 ist eingebettet in das in bekannter Weise ablaufende Training des KNN 1, das unter anderem das Beaufschlagen des KNN 1 mit Lern- Werten für Eingangsgrößen, den Vergleich der vom KNN 1 gebildeten Ausgangsgrößen mit den Lern- Werten für die Ausgangsgrößen sowie die Änderung der Parameter innerhalb des KNN nach Maßgabe der Kostenfunktion umfasst. Diese Schritte sind der

Übersichtlichkeit halber in Figur 1 nicht eingezeichnet.

In Schritt 110 wird zu einem beliebigen Zeitpunkt und in einer beliebigen Phase des Trainingsprozesses ein Maß für die Qualität 11, die das KNN innerhalb eines vorgegebenen zurückliegenden Zeitraums erzielt hat, ermittelt. Gemäß Block 111 kann insbesondere die Änderung der beim Training des KNN 1 genutzten Kostenfunktion in das Maß für die Qualität 11 eingehen.

In Schritt 120 werden mehrere Neuronen 2 anhand eines Maßes für ihre jeweiligen quantitativen Beiträge 21 zu der zuvor ermittelten Qualität 11 bewertet. Dabei können insbesondere gemäß Block 121 diese Beiträge 21 umso höher gewichtet werden, je kürzer die Erbringung der Beiträge 21 zeitlich zurückliegt. Diese Beiträge 21 können beispielsweise aus der zuvor im Detail beschriebenen

Aktivierungsgüte ]M^ ermittelt werden. Insbesondere können Werte der Aktivierungsgüte ]M^ direkt als Beiträge 21 genutzt werden.

Anhand der hierbei entstandenen Bewertungen 120a werden in Schritt 130 Maßnahmen 22 für das weitere Training der bewerteten Neuronen 2, und/oder Stellenwerte 23 dieser bewerteten Neuronen 2 in dem KNN 1, festgelegt.

Im Einzelnen können Beträge, um die die Gewichte von Neuronen 2 bei mindestens einem Trainingsschritt geändert werden, gemäß Block 131 mit einem multiplikativen Faktor verstärkt werden, der für stärker zur Qualität 11

beitragende Neuronen 2 geringer ist als für schwächer zur Qualität 11 beitragende Neuronen 2.

Gemäß Block 132 können Neuronen 2 während des Trainings temporär deaktiviert werden, wobei die Wahrscheinlichkeit einer solchen Deaktivierung für Neuronen 2 mit höheren quantitativen Beiträgen 21 zur Qualität 11 höher ist als für Neuronen 2 mit geringeren quantitativen Beiträgen 21 zur Qualität 11.

Gemäß Block 133 können Neuronen 2 mit höheren quantitativen Beiträgen 21 zur Qualität 11 höhere Stellenwerte im KN N 1 zugewiesen werden als Neuronen 2 mit niedrigeren quantitativen Beiträgen 21.

Dies kann beispielsweise beinhalten, dass Neuronen 2, deren quantitative Beiträge 21 ein vorgegebenes Kriterium erfüllen, gemäß Unterblock 133a deaktiviert werden. Auch können gemäß Unterblock 133b Verbindungen 25 zwischen Neuronen 2, deren Gewichte ein vorgegebenes Kriterium erfüllen, deaktiviert werden. Gemäß Unterblock 133c kann die Anzahl der aktivierten Neutronen gezielt auf eine vorgegebene Anzahl reduziert werden, indem

Neuronen 2 mit den geringsten quantitativen Beiträgen 21 zur Qualität 11 deaktiviert werden.

Figur 2 zeigt ein Ausführungsbeispiel des Verfahrens 200 zum Implementieren des KNN 1 auf einem vorgegebenen Rechenwerk 4. Im optionalen Schritt 205a kann ein Rechenwerk 4 mit beschränkten Ressourcen hinsichtlich der Anzahl von Neuronen 2, Schichten 3a, 3b mit Neuronen 2, und/oder Verbindungen 25 zwischen Neuronen 2, vorausgewählt werden. Das Modell la des KNN kann dann so gewählt werden, dass es eine Anzahl an Neuronen 2, Schichten 3a, 3b bzw. Verbindungen 25 aufweist, die über der jeweiligen Grenze des

Rechenwerks 4 liegt. Insbesondere kann gemäß dem optionalen Schritt 206 ein Rechenwerk 4 gewählt werden, das dazu ausgebildet ist, in ein Steuergerät für ein Fahrzeug eingebaut zu werden, und/oder aus dem Bordnetz eines Fahrzeugs mit Energie versorgt zu werden. In Schritt 210 wird das KNN 1 gemäß dem zuvor beschriebenen Verfahren 100 trainiert. Bei Abschluss des Trainings 210 aktivierte Neuronen 2 und

Verbindungen 25 zwischen Neuronen 2 werden in Schritt 220 auf dem

Rechenwerk 4 implementiert. Wie zuvor beschrieben, kann die Komprimierung während des Trainings 210 ein zu großes KNN für beschränkte

Hardwareressourcen„passend machen“. Wenn dies nicht ausreicht, kann nach Abschluss des Trainings 210 eine weitere Auslese der Neuronen 2, Schichten 3a, 3b, bzw. Verbindungen 25, erfolgen.

Figur 3 zeigt den Effekt der Komprimierung an einem beispielhaften KNN 1. Dieses KNN 1 umfasst zwei Schichten 3a und 3b mit jeweils vier Neuronen 2, deren beispielhafte quantitative Beiträge 21 zur Qualität 11 des KNN 1 insgesamt jeweils angegeben sind.

In dem in Figur 3a gezeigten Zustand sind die beiden Schichten 3a und 3b noch voll miteinander vernetzt, d.h., jedes Neuron 2 der ersten Schicht 3a ist mit jedem Neuron 2 der zweiten Schicht 3b verbunden, und alle Neuronen 2 sind noch aktiv.

In dem in Figur 3b gezeigten Zustand wurde die Regel angewendet, dass alle Neuronen 2 mit quantitativen Beiträgen 21 von weniger als 0,5, sowie die zu diesen Neuronen 2 führenden Verbindungen 25, deaktiviert werden. Dieser Regel sind die gestrichelt umrandeten Neuronen in der ersten Schicht 3a zum Opfer gefallen. Dadurch ist die Zahl der noch aktiven Verbindungen 25 von 16 auf 8 halbiert worden, was den Rechenaufwand für die Inferenz im Betrieb des KNN 1 entsprechend vermindert.