Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
QUANTISED TRAINING OF TRAINABLE MODULES
Document Type and Number:
WIPO Patent Application WO/2020/169416
Kind Code:
A1
Abstract:
The invention relates to a method (100) for training a trainable module (1) which maps one or more input variables (11) onto one or more output variables (13) by means of an internal processing chain (12), the method having the following steps: · at least one learning data set (2) is provided (110), which comprises learning values (11a) for the input variables (11) and associated learning values (13a) for the output variables (13); · a list (3) of discrete values (3a-3c) is provided (120), from which the parameters (12a) characterising the internal processing chain (12) are to be selected during the training, the discrete values (3a-3c) being selected such that they can be saved as fixed point numbers with a predetermined number N of bits without any loss of quality; · the learning values (11a) for the input variables (11) in the learning data set (2) are mapped by the trainable module (1) onto assessment values (13b) for the output variables (130); · a predetermined cost function (4) is evaluated (140), which characterises both a deviation of the assessment values (13b) for the output variables (13) from the learning values (13a) for the output variables (13) in the learning data set (2) and a deviation of at least one parameter (12a) of the internal processing chain (12) from at least one discrete value (3a-3c) in the list (3); · at least one parameter (12a) of the internal processing chain (12) is adjusted (150) with the aim of improving the cost function (4) value.

Inventors:
TIMM FABIAN (DE)
ENDERICH LUKAS (DE)
Application Number:
PCT/EP2020/053466
Publication Date:
August 27, 2020
Filing Date:
February 11, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06N3/063; G06N3/08
Domestic Patent References:
WO2018158043A12018-09-07
Foreign References:
US20180314940A12018-11-01
US20190042945A12019-02-07
Other References:
YOOJIN CHOI ET AL: "Learning Low Precision Deep Neural Networks through Regularization", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 1 September 2018 (2018-09-01), XP080912660
ZHEZHI HE ET AL: "Simultaneously Optimizing Weight and Quantizer of Ternary Neural Network using Truncated Gaussian Approximation", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 2 October 2018 (2018-10-02), XP080928897
ASWIN RAGHAVAN ET AL: "BitNet: Bit-Regularized Deep Neural Networks", 16 August 2017 (2017-08-16), XP055545468, Retrieved from the Internet
Download PDF:
Claims:
Ansprüche

1. Verfahren (100) zum Trainieren eines trainierbaren Moduls (1), welches eine oder mehrere Eingangsgrößen (11) durch eine interne Verarbeitungskette (12) auf eine oder mehrere Ausgangsgrößen (13) abbildet, wobei die interne Verarbeitungskette (12) durch einen Satz Parameter (12a) charakterisiert ist, mit den Schritten:

• es wird mindestens ein Lern- Datensatz (2) bereitgestellt (110), der Lern- Werte (11a) der Eingangsgrößen (11) und zugehörige Lern-Werte (13a) der Ausgangsgrößen (13) umfasst;

• es wird eine Liste (3) von diskreten Werten (3a-3c) bereitgestellt (120), aus denen die die interne Verarbeitungskette (12) charakterisierenden Parameter (12a) während des Trainings ausgewählt werden sollen, wobei die diskreten Werte (3a-3c) so gewählt sind, dass sie sich mit einer vorgegebenen Anzahl N von Bits ohne Qualitätsverlust als

Festkommazahl speichern lassen;

• die im Lern- Datensatz (2) enthaltenen Lern-Werte (11a) der

Eingangsgrößen (11) werden durch das trainierbare Modul (1) auf Beurteilungs-Werte (13b) der Ausgangsgrößen abgebildet (130);

• es wird eine vorgegebene Kostenfunktion (4) ausgewertet (140), die

sowohl eine Abweichung der Beurteilungs-Werte (13b) der

Ausgangsgrößen (13) von den im Lern- Datensatz (2) enthaltenen Lern- Werten (13a) der Ausgangsgrößen (13) als auch eine Abweichung mindestens eines Parameters (12a) der internen Verarbeitungskette (12) von mindestens einem diskreten Wert (3a-3c) in der Liste (3)

charakterisiert;

• mindestens ein Parameter (12a) der internen Verarbeitungskette (12) wird angepasst (150) mit dem Ziel, den Wert der Kostenfunktion (4) zu verbessern.

2. Verfahren (100) nach Anspruch 1, wobei die Anzahl N von Bits zwischen 2 und 7, bevorzugt zwischen 2 und 5 und ganz besonders bevorzugt zwischen 2 und 3 gewählt wird.

3. Verfahren (100) nach einem der Ansprüche 1 bis 2, wobei die Liste (3) von diskreten Werten (3a-3c) anhand der bei einem Vortraining des trainierbaren Moduls (1) erhaltenen Werte der Parameter (12a) der internen

Verarbeitungskette (12) ermittelt wird (124), wobei dieses Vortraining folgende Schritte umfasst:

• die in mindestens einem Lern- Datensatz (2) enthaltenen Lern-Werte

(11a) der Eingangsgrößen (11) werden durch das trainierbare Modul (1) auf Beurteilungs-Werte (13b) der Ausgangsgrößen (13) abgebildet (121);

• es wird eine vorgegebene Vortrainings- Kostenfunktion (4a) ausgewertet (122), die eine Abweichung der Beurteilungs-Werte (13b) der

Ausgangsgrößen (13) von den im Lern- Datensatz (2) enthaltenen Lern- Werten (13a) der Ausgangsgrößen (13) charakterisiert;

• mindestens ein Parameter (12a) der internen Verarbeitungskette (12) wird angepasst (123) mit dem Ziel, den Wert der Vortrainings- Kostenfunktion (4a) zu verbessern.

4. Verfahren (100) nach Anspruch 3, wobei ein Wertebereich ermittelt wird, in dem die Parameter (12a) liegen, und wobei diskreten Werte (3a-3c) der Liste (3) abhängig von diesem Bereich ermittelt werden.

5. Verfahren (100) nach einem der Ansprüche 1 bis 4, wobei die Anzahl N von Bits, und/oder die Liste (3) der diskreten Werte (3a-3c), angepasst wird (160) mit dem Ziel, den Wert der Kostenfunktion (4) zu verbessern.

6. Verfahren (100) nach einem der Ansprüche 1 bis 5, wobei die diskreten Werte (3a-3c) in der Liste (3) ganzzahlig sind und wobei zahlenmäßig

benachbarte diskrete Werte (3a-3c) sich jeweils um eine Schrittweite D unterscheiden, die eine Zweierpotenz einer nichtnegativen ganzen Zahl ist.

7. Verfahren (100) nach einem der Ansprüche 1 bis 6, wobei die diskreten Werte (3a-3c) in der Liste (3) einheitlich um 0 verteilt sind. 8. Verfahren (100) nach einem der Ansprüche 1 bis 7, wobei jeder der Parameter (12a) auf denjenigen diskreten Wert (3a-3c) aus der Liste (3) gesetzt wird (170), dem er am nächsten ist, und wobei das trainierbare Modul (1) nach dem Setzen (170) der Parameter (12a) auf die diskreten Werte validiert wird (180), wobei das Validieren (180) die folgenden Schritte umfasst:

• es wird eine Vielzahl von Validierungs-Datensätzen (5) bereitgestellt (181), die jeweils Validierungs-Werte (51) der Eingangsgrößen (11) und zugehörige Validierungs-Werte (53) der Ausgangsgrößen (13) umfassen, wobei die Menge der Validierungs-Datensätze (5) nicht deckungsgleich mit der Menge der Lern- Datensätze (2) ist;

• für jeden Validierungs-Datensatz (5) werden die jeweiligen Validierungs- Werte (51) der Eingangsgrößen (11) durch das trainierbare Modul (1) auf Prüf-Werte (13c) der Ausgangsgrößen (13) abgebildet (182);

• es wird geprüft (183), ob die Abweichungen der Prüf-Werte (13c) von den Validierungs-Werten (53) der Ausgangsgrößen (13) ein vorgegebenes Kriterium (55) erfüllen.

9. Verfahren (200) zur Herstellung eines trainierbaren Moduls (1), welches eine oder mehrere Eingangsgrößen (11) durch eine interne Verarbeitungskette (12) auf eine oder mehrere Ausgangsgrößen (13) abbildet, wobei die interne Verarbeitungskette (12) durch einen Satz Parameter (12a) charakterisiert ist, mit den Schritten:

• durch Trainieren mit dem Verfahren (100) nach Anspruch 6 oder 7 jeweils in Verbindung mit Anspruch 8 werden diskrete Werte für die Parameter (12a) der internen Verarbeitungskette (12) ermittelt (210);

• die interne Verarbeitungskette (12) des trainierbaren Moduls (1) wird in einem Rechenwerk (6) implementiert (220), das für die Darstellung und/oder Verarbeitung der die interne Verarbeitungskette (12) charakterisierenden Parameter (12a) in Festkomma-Arithmetik ausgebildet ist;

• die Parameter (12a) werden in dem Rechenwerk (6) auf die zuvor

ermittelten (210) diskreten Werte gesetzt (230).

10. Verfahren mit den Schritten:

• ein trainierbares Modul (1) wird mit dem Verfahren (100) nach einem der Ansprüche 1 bis 9 trainiert;

• das trainierbare Modul (1) wird betrieben, indem ihm eine oder mehrere Eingangsgrößen (11) zugeführt werden;

• abhängig von den vom trainierbaren Modul (11) gelieferten

Ausgangsgrößen (13) wird ein Fahrzeug, ein Roboter, ein

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

11. Trainierbares Modul (1) für die Abbildung einer oder mehrerer

Eingangsgrößen (11) auf eine oder mehrere Ausgangsgrößen (13) mittels einer internen Verarbeitungskette (12), welche durch einen Satz Parameter (12a) charakterisiert ist und in einem Rechenwerk (6) implementiert ist, wobei das Rechenwerk (6) für die Darstellung und/oder Verarbeitung der Parameter (12a) in Festkomma-Arithmetik ausgebildet ist.

12. Trainierbares Modul (1) nach Anspruch 11, ausgebildet als Klassifikator und/oder Regressor für mit mindestens einem Sensor aufgenommene physikalische Messdaten.

13. Computerprogramm, enthaltend maschinenlesbare Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer dazu veranlassen, ein Verfahren (100, 200) nach einem der

Ansprüche 1 bis 10 auszuführen.

14. Maschinenlesbarer Datenträger und/oder Downloadprodukt mit dem Computerprogramm nach Anspruch 13.

15. Computer oder sonstige Recheneinheit mit dem Computerprogramm nach Anspruch 13, und/oder mit dem maschinenlesbaren Datenträger und/oder Downloadprodukt nach Anspruch 14, und/oder in sonstiger Weise spezifisch dazu ausgebildet, ein Verfahren (100, 200) nach einem der Ansprüche 1 bis 10 auszuführen.

Description:
Beschreibung

Titel

Quantisiertes Training trainierbarer Module

Die vorliegende Erfindung betrifft das Training trainierbarer Module, speziell für den Einsatz in Steuergeräten für Fahrzeuge oder in anderen Embedded- Systemen.

Stand der Technik

Für viele anspruchsvolle Klassifikations- und Steuerungsaufgaben, die nur schwer oder gar nicht geschlossen mathematisch modelliert werden können, werden trainierbare Module eingesetzt, die beispielsweise neuronale Netzwerke enthalten. Ein künstliches neuronales Netzwerk, KNN, ist eine

Verarbeitungskette, die in der Regel eine Mehrzahl von Schichten mit Neuronen enthält. Jedes Neuron fasst eine Mehrzahl von Eingangsgrößen mit Gewichten zu einer Aktivierung zusammen. Die in einer Schicht gebildeten Aktivierungen, bzw. ein hieraus durch eine weitere Verarbeitung ermitteltes Ergebnis, werden jeweils der nächsten angrenzenden Schicht zugeführt, bis das KNN vollständig durchlaufen ist und eine oder mehrere Ausgangsgrößen entstehen. Das KNN bildet also nach Maßgabe der internen Verarbeitungskette Werte der

Eingangsgrößen auf Werte der Ausgangsgrößen ab.

Die Gewichte, die Aktivierungen und die hieraus ermittelten Ergebnisse sind in der Regel Gleitkommazahlen (englisch„float“). Um die Vielzahl der beim Training und bei der späteren Verwendung des KNN nötigen Gleitkommaoperationen effizient durchführen zu können, werden häufig Grafikprozessoren, GPUs, verwendet. Dabei wird typischerweise mehr GPU-Arbeitsspeicher benötigt als in Desktop-GPUs standardmäßig verbaut ist. Die WO 2018/158 043 Al offenbart ein Verfahren für die Kodierung von Zahlenwerten in einem KNN, bei dem das höchstwertige Bit speziell für die Kodierung des Werts Null reserviert ist. Auf diese Weise lässt sich besonders schnell prüfen, ob der Wert Null ist.

Offenbarung der Erfindung

Im Rahmen der Erfindung wurde ein Verfahren zum Trainieren eines trainierbaren Moduls entwickelt. Das trainierbare Modul bildet eine oder mehrere Eingangsgrößen durch eine interne Verarbeitungskette auf eine oder mehrere Ausgangsgrößen ab. Die interne Verarbeitungskette ist durch einen Satz Parameter charakterisiert.

Unter einem trainierbaren Modul wird insbesondere ein Modul angesehen, das eine mit anpassbaren Parametern parametrierte Funktion mit großer Kraft zur Verallgemeinerung verkörpert. Die Parameter können beim Training eines trainierbaren Moduls insbesondere dergestalt angepasst werden, dass bei Eingabe von Lern- Eingangsgrößen in das Modul die Werte zugehöriger Lern- Ausgangsgrößen möglichst gut reproduziert werden.

Dabei kann die interne Verarbeitungskette insbesondere beispielsweise ein künstliches neuronales Netzwerk, KNN, umfassen oder auch ein KNN sein. Die Parameter können dann Gewichte umfassen, mit denen Neuronen jeweils eine Mehrzahl von Eingangsgrößen zu einer Aktivierung zusammenfassen.

Bei dem Verfahren wird mindestens ein Lern- Datensatz bereitgestellt, der Lern- Werte der Eingangsgrößen und zugehörige Lern-Werte der Ausgangsgrößen umfasst. Typischerweise wird im Verlauf des Trainings eine Vielzahl von Lern- Datensätzen bereitgestellt, die viele Varianten von eingangsseitig vorgelegten Situationen, mit denen das trainierbare Modul umgehen soll, erfassen.

Es wird eine Liste von diskreten Werten bereitgestellt, aus denen die die interne Verarbeitungskette charakterisierenden Parameter während des Trainings ausgewählt werden sollen. Diese diskreten Werte sind so gewählt, dass sie sich mit einer vorgegebenen Anzahl N von Bits ohne Qualitätsverlust als

Festkommazahl speichern lassen.

Eine Diskretisierung der Modellparameter führt im Allgemeinen zu einem verringerten Speicheraufwand des KNN. Lassen sich diese diskreten Werte zudem verlustfrei als Festkommazahlen ausdrücken, kann eine effiziente Implementierung auf Festkomma- Hardware realisiert werden. Eine solche Festkomma- Hardware ist deutlich preiswerter, energieeffizienter und

platzsparender als Hardware für Gleitkommaberechnungen.

Die gewünschte Festlegung auf die diskreten Werte wird nun von vornherein in das Training des trainierbaren Moduls integriert. Das heißt, dieses Training berücksichtigt nun gleichermaßen sowohl den Wunsch, dass die Lern-Werte der Eingangsgrößen möglichst gut auf die Lern-Werte der Ausgangsgrößen abgebildet werden sollen, als auch den Wunsch, dass die Parameter nur die diskreten Werte annehmen sollen.

Zu diesem Zweck werden die im Lern- Datensatz enthaltenen Lern-Werte der Eingangsgrößen durch das trainierbare Modul auf Beurteilungs-Werte der Ausgangsgrößen abgebildet. Es wird nun eine vorgegebene Kostenfunktion ausgewertet, die sowohl eine Abweichung der Beurteilungs-Werte der

Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen als auch eine Abweichung mindestens eines Parameters der internen Verarbeitungskette von mindestens einem diskreten Wert in der Liste charakterisiert. Mindestens ein Parameter der internen Verarbeitungskette wird angepasst mit dem Ziel, den Wert der Kostenfunktion zu verbessern.

Die Kostenfunktion kann beispielsweise eine Summe sein. In dieser Summe kann der erste Summand die Abweichung der Beurteilungs-Werte der

Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen charakterisieren. Der zweite Summand kann wenigstens eine Bestrafungsgröße umfassen, die die Abweichung des mindestens einen Parameters der internen Verarbeitungskette von dem mindestens einem diskreten Wert in der Liste charakterisiert. Die Summe kann optional auch gewichtet sein. Die Gewichtung kann insbesondere für jede Schicht einzeln vorgenommen werden. So kann beispielsweise eine Gewichtung verwendet werden, die umgekehrt proportional zur Anzahl der Parameter genau dieser Schicht ist.

Die Anpassung des mindestens einen Parameters der internen

Verarbeitungskette kann insbesondere darauf gerichtet sein, den Wert der Kostenfunktion zu optimieren, wie etwa zu minimieren. Diese Optimierung stellt dann eine gleichzeitige Verbesserung sowohl im Hinblick auf die optimale Reproduktion des in den Lern- Datensätzen enthaltenen Wissens als auch im Hinblick auf die Einhaltung der gewünschten Diskretisierung der Parameter dar.

Für die Optimierung kann beispielsweise ein Gradientenabstiegsverfahren oder ein beliebiges anderes Optimierungsverfahren verwendet werden, das anhand des Werts der Kostenfunktion Änderungen eines oder mehrerer Parameter vorschlägt, die im weiteren Verlauf des Trainings den Wert der Kostenfunktion voraussichtlich verbessern.„Voraussichtlich“ bedeutet in diesem

Zusammenhang, dass nicht bei jedem Trainingsschritt zwangsläufig eine

Verbesserung des Werts der Kostenfunktion eintreten muss. Es kann im Verlauf des Trainings durchaus auch„Fehltritte“ geben, die den Wert der Kostenfunktion stattdessen verschlechtern. Das Optimierungsverfahren lernt aus diesen „Fehltritten“, so dass die anfängliche Verschlechterung letztendlich doch in eine Verbesserung verkehrt wird.

Die Anzahl N von Bits legt die Anzahl der möglichen diskreten Werte auf maximal 2 N fest. In den Versuchen der Erfinder haben sich Werte von N zwischen 2 und 7, bevorzugt zwischen 2 und 5 und ganz besonders bevorzugt zwischen 2 und 3, als besonders vorteilhaft erwiesen. Dabei ist gerade der letztgenannte engste Bereich kontra-intuitiv, weil prima facie der Eindruck entsteht, dass sich diese Diskretisierung auch in die vom trainierbaren Modul als Ganzes gelieferten Ausgangsgrößen fortpflanzt und diese somit deutlich vergröbert werden. Dies ist jedoch in praktischen Anwendungen nicht der Fall, da das trainierbare Modul bedingt durch die Vielzahl der vorhandenen Parameter nach wie vor durchaus in der Lage ist, das in Form der Lern- Datensätze vorgelegte Wissen differenziert abzubilden. Im Fall von N=2 kann es weiterhin von Vorteil sein, eine symmetrische

Quantisierung bzw. Diskretisierung zu wählen, also die Anzahl der diskreten Werte auf 2 N -1=3 zu verkleinern. Dann ist eine Skalierung zu {-1, 0, 1} möglich. Somit sind nur noch Additionen zum Errechnen der Aktivierung nötig. Da die Skalierung eine Zweierpotenz ist (2 f ), muss das Komma anschließend nur um den jeweiligen Skalierungsfaktor f verschoben werden. Insgesamt sind somit keine Gleitkommaoperationen mehr notwendig, sondern nur noch„günstige“ Additionen und bitweise Verschiebungen.

Die Anzahl N von Bits kann als Stellschraube genutzt werden, um das Training ein und derselben Grundarchitektur für ein trainierbares Modul an verschiedene Anwendungen anzupassen. Wenn die Grundarchitektur gleich bleibt, bewirkt dies, dass die Realisierung der verschiedenen Anwendungen auf Hardware mit einem hohen Gleichteilanteil erfolgen kann, was wiederum die Fertigung vereinfacht und preiswerter macht.

Die Liste der diskreten Werte kann aus einer beliebigen Quelle stammen. Sie kann beispielsweise anhand von Vorwissen über die Anwendung, in der das trainierbare Modul betrieben werden soll, festgelegt werden. Es gibt jedoch auch Möglichkeiten, die Liste der diskreten Werte ganz oder teilweise automatisch festzulegen, wenn solches Vorwissen lückenhaft oder nicht vorhanden ist.

In einer besonders vorteilhaften Ausgestaltung wird die Liste von diskreten Werten anhand der bei einem Vortraining des trainierbaren Moduls erhaltenen Werte der Parameter der internen Verarbeitungskette ermittelt. Dieses

Vortraining kann insbesondere unter Verwendung von Gleitkommazahlen für die Parameter durchgeführt werden, also ohne Quantisierung oder sonstige

Einschränkung der Werte, die die Parameter annehmen können.

Bei dem Vortraining werden die in mindestens einem Lern- Datensatz enthaltenen Lern-Werte der Eingangsgrößen durch das trainierbare Modul auf Beurteilungs- Werte der Ausgangsgrößen abgebildet. Es wird eine vorgegebene Vortrainings- Kostenfunktion ausgewertet, die eine Abweichung der Beurteilungs-Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern- Werten der Ausgangsgrößen charakterisiert. Mindestens ein Parameter der internen Verarbeitungskette wird angepasst mit dem Ziel, den Wert der Vortrainings- Kostenfunktion zu verbessern, insbesondere zu optimieren.

Dabei kann die Vortrainings- Kostenfunktion insbesondere beispielsweise die Abweichung der Beurteilungs-Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen in gleicher Weise charakterisieren wie dies die zuvor beschriebene vorgegebene Kostenfunktion tut. In dem zuvor genannten Beispiel, in dem diese vorgegebene Kostenfunktion eine Summe ist, kann also der Summand, der die Abweichung der Beurteilungs- Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen charakterisiert, beispielsweise unverändert als Vortrainings- Kostenfunktion übernommen werden.

Dies ist jedoch nicht zwingend erforderlich, da im Rahmen des Vortrainings lediglich ein grober Anhaltspunkt hinsichtlich des Wertebereichs gewonnen werden soll, in dem die Parameter liegen. Es kann beispielsweise auch eine Abwandlung des besagten Summanden, oder auch eine ganz andere alternative Vortrainings- Kostenfunktion, verwendet werden, beispielsweise, weil sich eine solche alternative Vortrainings- Kostenfunktion schneller auswerten lässt.

Beispielsweise kann ein Wertebereich ermittelt werden, in dem die Parameter liegen. Die diskreten Werte der Liste können dann abhängig von diesem Bereich ermittelt werden. Sie können beispielsweise äquidistant auf diesen Bereich verteilt werden, und/oder anhand von Häufungspunkten der Werte von

Parametern in diesem Bereich festgelegt werden.

Alternativ oder auch in Kombination hierzu kann die Anzahl N von Bits, und/oder die Liste der diskreten Werte, auch beim eigentlichen Training i angepasst werden mit dem Ziel, den Wert der Kostenfunktion zu verbessern, insbesondere zu optimieren. Diese Anpassung kann somit in das normale Training des trainierbaren Moduls integriert werden. Wenn die Kostenfunktion sowohl vom Fehler, den das trainierbare Modul bei der Verarbeitung der Lern-Werte der Eingangsgrößen macht, als auch vom Diskretisierungsfehler der Parameter abhängt, dann können beide Arten von Fehlern die Ursache dafür sein, dass der Wert der Kostenfunktion schlecht ist. Dann ist es konsequent, wenn das trainierbare Modul die Behebung des Diskretisierungsfehlers in der gleichen Weise selbst erlernen kann wie die Behebung zu großer Abweichungen von den Lern-Werten der Ausgangsgrößen.

In einer weiteren besonders vorteilhaften Ausgestaltung sind die diskreten Werte in der Liste einheitlich, d.h. symmetrisch, um 0 verteilt. Das heißt, die Werte sind mit gleichbleibendem Abstand (Schrittweite) D um 0 verteilt, wobei die

Schrittweite D eine beliebige Zweierpotenz ist.

Diskrete Werte dieser Art zeichnen sich dadurch aus, dass Rechenoperationen mit diesen Werten besonders einfach auf Festkomma- Hardware implementiert werden können. Eine Skalierung um die Schrittweite D lässt sich als einfache bitweise Verschiebeoperation implementieren.

Beispielsweise können die diskreten Werte in der Liste ganzzahlig sein. Dann können sich insbesondere beispielsweise zahlenmäßig benachbarte diskrete Werte jeweils um eine Schrittweite D unterscheiden, die eine Zweierpotenz einer nichtnegativen ganzen Zahl ist.

In einer weiteren besonders vorteilhaften Ausgestaltung wird jeder der Parameter auf denjenigen diskreten Wert aus der Liste gesetzt, dem er am nächsten ist.

Dies kann ein- oder mehrmals an beliebiger Stelle während des Trainings erfolgen, und/oder nach dem Abschluss des Trainings. Insbesondere durch das ein- oder mehrmalige Setzen auf die diskreten Werte während des Trainings kann das trainierbare Modul es erlernen, mit den Beschränkungen, die die Diskretisierung mit sich bringt, bestmöglich umzugehen und dennoch eine maximale Genauigkeit zu liefern.

In einer weiteren besonders vorteilhaften Ausgestaltung wird das trainierbare Modul nach dem Setzen der Parameter auf die diskreten Werte validiert. Hiermit wird geprüft, ob das trainierbare Modul das in den Lern- Datensätzen enthaltene Wissen wirklich„verstanden“ hat und auf neue Situationen anwenden kann oder ob das trainierbare Modul dieses Wissen lediglich so„auswendig gelernt“ hat, dass es genau auf die bekannten Situationen vorbereitet ist. Zum Validieren wird eine Vielzahl von Validierungs-Datensätzen bereitgestellt, die jeweils Validierungs-Werte der Eingangsgrößen und zugehörige Validierungs- Werte der Ausgangsgrößen umfassen. Dabei ist die Menge der Validierungs- Datensätze nicht deckungsgleich mit der Menge der Lern- Datensätze.

Insbesondere kann die Menge der Validierungs-Datensätze vorteilhaft disjunkt zur Menge der Lern- Datensätze sein.

Für jeden Validierungs-Datensatz werden die jeweiligen Validierungs-Werte der Eingangsgrößen durch das trainierbare Modul auf Prüf-Werte der

Ausgangsgrößen abgebildet. Es wird geprüft, ob die Abweichungen der Prüf- Werte von den Validierungs-Werten der Ausgangsgrößen ein vorgegebenes Kriterium erfüllen. Ein solches Kriterium kann beispielsweise darin bestehen, dass ein, beispielsweise betragsmäßiges oder quadratisches, Mittel der

Abweichungen über alle Validierungs-Datensätze unterhalb eines vorgegebenen Schwellwerts liegt. Alternativ oder auch in Kombination hierzu kann

beispielsweise geprüft werden, ob die maximale Abweichung auf der Menge der Validierungs-Datensätze unterhalb eines vorgegebenen Schwellwerts liegt. Ist das jeweilige Kriterium erfüllt, kann das trainierbare Modul als tauglich für den realen Einsatz befunden werden.

Das Setzen der Parameter auf die diskreten Werte aus der Liste vor der

Validierung hat den Vorteil, dass das trainierbare Modul hiermit in genau dem Zustand geprüft werden kann, in dem es auch später auf Hardware implementiert wird. Durch die Implementierung auf beispielsweise für Festkomma-Arithmetik ausgelegte Hardware wird sich an seinem Verhalten nichts mehr ändern. Das bedeutet, dass die Validierung nicht auf der Hardware erfolgen muss, die später in das Endprodukt mit dem trainierbaren Modul verbaut wird, sondern

stattdessen auf schnellerer, für die Entwicklung und das Training des

trainierbaren Moduls verwendeter Hardware, wie etwa einer GPU, erfolgen kann.

Dies ist insbesondere von Vorteil im Zusammenhang mit sicherheitskritischen Anwendungen beispielsweise im Zusammenhang mit der Steuerung und

Überwachung von Fahrzeugen zu Lande, zu Wasser und in der Luft. Für die Zulassung zum jeweiligen öffentlichen Verkehr wird vielfach eine sehr umfangreiche Validierung zur Auflage gemacht. Diese Validierung wird nun durch die Implementierung auf Hardware, oder auch durch den nachträglichen Wechsel der Hardwareplattform im Zuge der Produktweiterentwicklung, nicht ungültig.

Die für das Training verwendete Kostenfunktion kann beispielsweise die Form

L = L + LR

haben, wobei L ein Anteil ist, der nur die Abweichung der Beurteilungs-Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen charakterisiert, und wobei LR ein Anteil ist, der nur die

Abweichung mindestens eines Parameters der internen Verarbeitungskette von mindestens einem diskreten Wert in der Liste charakterisiert.

Wenn die interne Verarbeitungskette des trainierbaren Moduls nun

beispielsweise ein neuronales Netzwerk, KNN, aus L Schichten umfasst und jede Schicht eine vom Index I der Schicht abhängige Anzahl M® Gewichte umfasst, dann können die zu diskretisierenden Parameter beispielsweise sämtliche Gewichte w® umfassen. Der Anteil LR der Kostenfunktion kann dann

beispielsweise die Form

haben, worin der Index q im Subtrahenden den jeweils nächstliegenden diskreten Wert des entsprechenden Gewichts bezeichnet.

Partielle Differentiation dieses Ausdrucks nach den Gewichten ergibt

Das bedeutet, dass die Gewichte w® umso stärker optimiert werden, je größer der jeweilige Quantisierungsfehler ist. D (i) ist die jeweilige Schrittweite der Quantisierung für die Schicht I. Der erste Fall in der Fallunterscheidung kann praktisch vernachlässigt werden, da die Gewichte w® zu Beginn des Trainings eines KNN in der Regel mit zufälligen Gleitkomma-Werten initialisiert werden. Die Wahrscheinlichkeit, dass ein solcher Wert genau auf eine Quantisierungsstufe fällt, geht gegen Null. Die Erfindung bezieht sich auch auf ein Verfahren zur Herstellung eines trainierbaren Moduls, welches eine oder mehrere Eingangsgrößen durch eine interne Verarbeitungskette auf eine oder mehrere Ausgangsgrößen abbildet. Dabei ist die interne Verarbeitungskette durch einen Satz Parameter

charakterisiert.

Bei diesem Verfahren werden zunächst mit dem beschriebenen Verfahren diskrete Werte für die Parameter der internen Verarbeitungskette des trainierbaren Moduls ermittelt, und optional wird das trainierbare Modul anschließend validiert. Danach wird die interne Verarbeitungskette des trainierbaren Moduls in einem Rechenwerk implementiert, das für die Darstellung und/oder Verarbeitung der die interne Verarbeitungskette charakterisierenden Parameter in Festkomma-Arithmetik ausgebildet ist. Hierbei kann das

Implementieren insbesondere umfassen, entsprechende Hardware

bereitzustellen. Die Parameter werden in dem Rechenwerk auf die zuvor ermittelten diskreten Werte gesetzt.

Wie zuvor erläutert, kann bei diesem Verfahren für die eigentliche Entwicklung und eventuelle Validierung des trainierbaren Moduls schnelle Gleitkomma- Hardware genutzt werden. Anschließend kann das trainierbare Modul auf Festkomma- Hardware implementiert werden, ohne dass sich an seinem

Verhalten noch etwas ändert. Bei der Inferenz im Betrieb des trainierbaren Moduls ergibt sich durch die Festkomma-Arithmetik ein deutlicher Laufzeitvorteil gegenüber einer Implementierung auf Hardware mit vergleichbaren Kosten und/oder vergleichbarem Energieverbrauch.

Dementsprechend bezieht sich die Erfindung auch auf ein weiteres Verfahren.

Bei diesem Verfahren wird ein trainierbares Modul zunächst mit dem zuvor beschriebenen Verfahren zum Trainieren trainiert. Das trainierbare Modul wird anschließend betrieben, indem ihm eine oder mehrere Eingangsgrößen zugeführt werden. Abhängig von den vom trainierbaren Modul 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. Dass dieses Verfahren angewendet wurde, kann am fertigen trainierbaren Modul insbesondere den„Fingerprint“ hinterlassen, dass dieses Festkomma-Hardware für die Darstellung und/oder Verarbeitung der Parameter aufweist. Die Erfindung bezieht sich daher auch auf ein trainierbares Modul für die Abbildung einer oder mehrerer Eingangsgrößen auf eine oder mehrere Ausgangsgrößen mittels einer internen Verarbeitungskette, welche durch einen Satz Parameter charakterisiert ist und in einem Rechenwerk implementiert ist. Das Rechenwerk ist für die Darstellung und/oder Verarbeitung der Parameter in Festkomma-Arithmetik ausgebildet.

Wie zuvor erläutert, können derartige trainierbare Module insbesondere in Steuergeräten für Fahrzeuge und anderen Embedded-Systemen verbaut werden. Gerade bei derartigen Geräten besteht trotz des Erfordernisses einer zuverlässigen Funktion des trainierbaren Moduls ein hoher Kostendruck, was die zu verwendende Hardware angeht. Übliche für die Entwicklung etwa von KN Ns verwendete GPUs können mehrere tausend Euro kosten und eine elektrische Leistung beanspruchen, die im Bordnetz etwa eines Pkw nur mit Mühe aufzubringen ist. Festkomma- Hardware ist deutlich preiswerter sowie zugleich deutlich energieeffizienter und platzsparender. Daher bezieht sich die Erfindung auch auf ein Steuergerät für ein Fahrzeug, und/oder ein Embedded-System, mit dem zuvor beschriebenen trainierbaren Modul, und/oder mit einem sonstigen mit einem der zuvor beschriebenen Verfahren trainierten und/oder hergestellten trainierbaren Modul.

Das trainierbare Modul kann insbesondere als Klassifikator und/oder Regressor für mit mindestens einem Sensor aufgenommene physikalische Messdaten ausgebildet sein. 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 beschriebenen Verfahren können ganz oder teilweise computerimplementiert sein. Sie können beispielsweise Teil einer computerimplementierten Entwicklungsumgebung für trainierbare Module sein. Auch die Implementierung der internen Verarbeitungskette des trainierbaren Moduls im Rahmen seiner Herstellung kann computerimplementiert sein, beispielsweise im Wege einer automatisierten Fertigung. Daher bezieht sich die Erfindung auch auf ein Computerprogramm mit maschinenlesbaren Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer dazu veranlassen, eines der beschriebenen Verfahren auszuführen. Ebenso bezieht sich die Erfindung auch auf einen maschinenlesbaren Datenträger und/oder ein Downloadprodukt mit dem Computerprogramm.

Die Erfindung bezieht sich weiterhin auch auf einen Computer oder eine sonstige Recheneinheit mit dem beschriebenen Computerprogramm, und/oder mit dem beschriebenen maschinenlesbaren Datenträger und/oder Downloadprodukt. Der Computer, bzw. die Recheneinheit, kann auch in sonstiger Weise spezifisch dazu ausgebildet sein, eines der beschriebenen Verfahren auszuführen. Eine solche spezifische Ausbildung kann beispielsweise in einem oder mehreren

feldprogrammierbaren Gatteranordnungen (Field Programmable Gate Array, FPGA), und/oder in einem oder mehreren anwendungsspezifischen integrierten Schaltkreisen (Application Specific Integrated Circuit, ASIC) verkörpert sein.

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 trainierbaren Moduls 1;

Figur 2 Ausführungsbeispiel des Verfahrens 200 zur Herstellung eines trainierbaren Moduls 1;

Figur 3 Ausführungsbeispiel des trainierbaren Moduls 1; Figur 4 Beispielhafte qualitative Auswirkung des Verfahrens 100 auf die

Parameter 12a der internen Verarbeitungskette 12 des trainierbaren Moduls 1;

Figur 5 Beispielhafte Entwicklung der Parameter 12a im Verlauf des Verfahrens 100;

Figur 6 Beispielhafter Verlauf des Konvergierens der Parameter 12a in verschiedenen Schichten a-d eines künstlichen neuronalen Netzwerks.

Figur 1 ist ein Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 100 zum Trainieren eines trainierbaren Moduls 1. In Schritt 110 wird mindestens ein Lern- Datensatz 2 bereitgestellt, der Lern-Werte 11a der Eingangsgrößen 11 des trainierbaren Moduls 1 sowie Lern-Werte 13a der Ausgangsgrößen 13 des trainierbaren Moduls 1 umfasst. Weiterhin wird in Schritt 120 eine Liste 3 diskreter Werte 3a-3c bereitgestellt, aus denen die die interne Verarbeitungskette 12 des trainierbaren Moduls 1 charakterisierenden Parameter 12a ausgewählt werden sollen. Diese diskreten Werte 3a-3c sind so gewählt, dass sie sich mit einer vorgegebenen Anzahl N von Bits ohne Qualitätsverlust als Festkommazahl speichern lassen.

Die Liste 3 der diskreten Werte 3a-3c kann beispielsweise mit Hilfe eines Vortrainings des trainierbaren Moduls 1 ermittelt werden. Dieses Vortraining kann sich ebenfalls die in Schritt 110 bereitgestellten Lern- Datensätze 2 zu Nutze machen.

In dem in Figur 1 innerhalb des Kastens 120 gezeigten Beispiel für das

Vortraining werden gemäß Block 121 die Lern-Werte 11a der Eingangsgrößen 11 durch das trainierbare Modul 1 auf Beurteilungs-Werte 13b der Ausgangsgrößen abgebildet. Gemäß Block 122 wird eine Vortrainings- Kostenfunktion 4a ausgewertet, die eine Abweichung der Beurteilungs-Werte 13b der

Ausgangsgrößen von den im Lern- Datensatz 2 enthaltenen Lern-Werten 13a der Ausgangsgrößen 13 charakterisiert. Gemäß Block 123 wird in Abhängigkeit des so ermittelten Werts der Vortrainings- Kostenfunktion 4a mindestens ein Parameter 12a der internen Verarbeitungskette 12 des trainierbaren Moduls 1 angepasst.

Aus den so erhaltenen Werten der Parameter 12a kann schließlich gemäß Block 124 die Liste 3 der diskreten Werte 3a-3c ermittelt werden. Beispielsweise kann ein Intervall ermittelt werden, in dem die Parameter 12a liegen, und die diskreten Werte 3a-3c können, beispielsweise äquidistant, über dieses Intervall verteilt werden.

In Schritt 130 beginnt das eigentliche Training des trainierbaren Moduls 1. Hier werden die Lern-Werte 11a wiederum durch das trainierbare Modul 1 auf Beurteilungs-Werte 13b der Ausgangsgrößen abgebildet. Die anschließend in Schritt 140 ausgewertete Kostenfunktion 4 hängt jedoch im Unterschied zur Vortrainings- Kostenfunktion 4a im optionalen Vortraining nicht nur von der Abweichung der Beurteilungs-Werte 13b von den Lern-Werten 13a ab, sondern charakterisiert zusätzlich auch eine Abweichung mindestens eines Parameters 12a der internen Verarbeitungskette 12 von mindestens einem diskreten Wert 3a-3c in der Liste 3. In Schritt 150 wird in Abhängigkeit des so ermittelten Werts der Kostenfunktion 4 mindestens ein Parameter 12a der internen

Verarbeitungskette 12 angepasst.

Üblicherweise werden viele Lern- Datensätze 2 verwendet, und diese Lern- Datensätze 2 werden auch in einer Vielzahl von Epochen immer wieder durch das trainierbare Modul 1 verarbeitet. Jedes Mal, wenn geänderte Werte für die Parameter 12a der internen Verarbeitungskette 12 ermittelt werden, können diese auf das trainierbare Modul 1 zurückgespielt werden und so unmittelbar die darauffolgenden Verarbeitungen von Lern- Datensätzen 2 beeinflussen. Das Training kann beispielsweise enden, wenn eine vorgegebene Abbruchbedingung erreicht ist. Die Abbruchbedingung kann beispielsweise ein Schwellwert für die Kostenfunktion, und/oder eine für das Training zur Verfügung stehende Zeit, und/oder das Absolvieren einer vorgegebenen Anzahl von Epochen, umfassen.

Das Training in Schritt 130 kann beispielsweise mit zufälligen Werten für die Parameter 12a initialisiert werden. Wenn jedoch bereits ein Vortraining durchgeführt wurde, um die Liste 3 der diskreten Werte 3a-3c festzulegen, dann können die im Rahmen dieses Vortrainings ermittelten Parameter 12a als Startwerte verwendet werden. Auf diese Weise wird der in dieses Vortraining investierte Aufwand optimal ausgenutzt.

Alternativ oder auch in Kombination zum Vortraining kann in Schritt 160 die Anzahl N von Bits, und/oder die Liste 3 der diskreten Werte 3a-3c, in

Abhängigkeit des Werts der Kostenfunktion 4 angepasst werden.

In Schritt 170 können die Parameter 12a auf diejenigen diskreten Werte 3a-3c aus der Liste 3 gesetzt werden, die ihnen jeweils am nächsten liegen. Optional kann das trainierbare Modul 1 anschließend in Schritt 180 validiert werden. Wenn das trainierbare Modul 1 schließlich auf Hardware implementiert wird, wird es genau das gleiche Verhalten zeigen wie in der Validierung 180.

Im Rahmen der Validierung wird gemäß Block 181 eine Vielzahl von

Validierungs-Datensätzen 5 bereitgestellt. Diese Validierungs-Datensätze 5 umfassen jeweils Validierungs-Werte 51 der Eingangsgrößen 11 und zugehörige Validierungs-Werte 53 der Ausgangsgrößen 13. Dabei ist die Menge der Validierungs-Datensätze 5 nicht deckungsgleich mit der Menge der Lern- Datensätze 2. Besonders vorteilhaft sind diese beiden Mengen disjunkt.

Gemäß Block 182 werden für jeden Validierungs-Datensatz 5 die jeweiligen Validierungs-Werte 51 der Eingangsgrößen 11 durch das trainierbare Modul 1 auf Prüf-Werte 13c der Ausgangsgrößen 13 abgebildet. Gemäß Block 183 wird geprüft, ob die Abweichungen der Prüf-Werte 13c von den Validierungs-Werten 53 ein vorgegebenes Kriterium 55 erfüllen. Ist dies der Fall, wird das trainierte trainierbare Modul 1 als tauglich für den realen Einsatz befunden.

Figur 2 ist ein Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 200 zur Herstellung eines trainierbaren Moduls 1. In Schritt 210 wird das trainierbare Modul mit dem Verfahren 100 trainiert, und es werden ganzzahlige Werte für die Parameter 12a der internen Verarbeitungskette 12 des trainierbaren Moduls 1 ermittelt. Dabei unterscheiden sich zahlenmäßig benachbarte diskrete Werte 3a- 3c sich jeweils um eine Schrittweite D, die eine Zweierpotenz einer

nichtnegativen ganzen Zahl ist. Wie zuvor beschrieben, lässt sich dann die Darstellung und/oder Verarbeitung dieser Parameter besonders gut in Festkomma-Arithmetik implementieren. In Schritt 220 wird eine solche Implementierung auf einem Rechenwerk 6, das für die Darstellung und/oder Verarbeitung der Parameter 12a in Festkomma- Arithmetik ausgebildet ist, vorgenommen. In Schritt 230 werden die Parameter 12a in dem Rechenwerk auf die in Schritt 210 ermittelten ganzzahligen Werte gesetzt.

Figur 3 zeigt ein Ausführungsbeispiel des trainierbaren Moduls 1. Das trainierbare Modul 1 ist in einem Rechenwerk 6 implementiert, das für die Darstellung und/oder Verarbeitung der Parameter 12a in Festkomma-Arithmetik ausgebildet ist. Mit der beispielhaft als künstliches neuronales Netzwerk, KNN, gezeichneten und durch die Parameter 12a charakterisierten internen

Verarbeitungskette 12 werden im Betrieb des trainierbaren Moduls 1 eine oder mehrere Eingangsgrößen 11 auf eine oder mehrere Ausgangsgrößen 13 abgebildet.

Figur 4 zeigt qualitativ die Auswirkung des Verfahrens 100 auf die Struktur, die das Spektrum der Parameter 12a zeigt. In den Diagrammen ist jeweils die Häufigkeit p der Werte der Parameter 12a über diesen Werten aufgetragen.

Diagramm (a) zeigt eine uniforme Verteilung, so wie sie beispielsweise bei einer Initialisierung der Parameter 12a mit zufälligen Werten entsteht. Diagramm (b) zeigt eine Normalverteilung, die bei einem herkömmlichen Training ohne

Einschränkung auf diskrete Werte 3a-3c aus einer Liste 3 entsteht. Diagramm (c) zeigt eine multimodale Verteilung, die beim Training mit dem Verfahren 100 für drei beispielhaft eingezeichnete diskrete Werte 3a-3c entsteht. Die optimale theoretische Verteilung für diese drei Quantisierungsstufen 3a-3c wäre die in Diagramm (d) gezeigte Dirac-Verteilung mit drei Dirac-Pulsen.

Figur 5 zeigt beispielhaft am realen Training eines trainierbaren Moduls 1 mit einem KNN als interner Verarbeitungskette 12 auf dem Benchmark- Datensatz „CIFAR-10“, wie sich die Häufigkeiten p von Werten der Parameter 12a einer konkreten Schicht in dem KNN in Abhängigkeit der Epochenzahl e entwickeln. Zu Beginn des Trainings (e=0) sind die Parameter 12a näherungsweise normalverteilt wie in der Prinzipskizze in Diagramm (b) von Figur 4. Mit zunehmender Epochenzahl e nähert sich die Verteilung immer mehr der in Diagramm (c) von Figur 4 gezeigten multimodalen Verteilung an.

Figur 6 zeigt anhand des gleichen realen Trainings, welcher Prozentsatz r der Parameter 12a in verschiedenen Schichten a-d des KNN in einem

Trainingszeitraum, der von der jeweils angegebenen Epoche 10 Epochen zurückreicht,„rotiert“ ist, d.h., von einer Mode der multimodalen Verteilung zu einer anderen gewechselt ist. Die Schichten a-c sind Faltungsschichten und stehen in der Schichtenfolge des KNN an erster, dritter bzw. fünfter Stelle. Die Schicht d ist eine vollvernetzte Schicht und steht in der Schichtenfolge des KNN an siebter Stelle. Es zeigt sich, dass die Parameter 12a in den verschiedenen Schichten sich unterschiedlich schnell endgültig für eine der Moden

„entscheiden“. Ab einer Epochenzahl e von etwa 180 ist diese Entscheidung jedoch überall im KNN zementiert.