-
Die vorliegende Erfindung betrifft eine Effizienzsteigerung bei der Verarbeitung von Eingangsgrößen zu Ausgangsgrößen mittels neuronaler Netzwerke, die sich in eine effizientere Implementierung auf Hardware ummünzen lässt.
-
Stand der Technik
-
Damit sich ein Fahrzeug zumindest teilweise automatisiert im Straßenverkehr bewegen kann, ist es erforderlich, das Umfeld des Fahrzeugs zu erfassen und Gegenmaßnahmen einzuleiten, falls eine Kollision mit einem Objekt im Umfeld des Fahrzeugs droht. Auch die Erstellung einer Umfeld-Repräsentation und Lokalisierung sind für sicheres automatisiertes Fahren notwendig.
-
Um aus der physikalischen Beobachtung des Fahrzeugumfelds Entscheidungen bezüglich des weiteren Verhaltens des eigenen Fahrzeugs ableiten zu können, kommen vielfach neuronale Netzwerke zum Einsatz. Analog einem menschlichen Fahrer, der bis zum Erwerb der Fahrerlaubnis typischerweise weniger als 100 Stunden fährt und weniger als 1000 km zurücklegt, können neuronale Netzwerke das aus einem begrenzten Vorrat an Trainingsdaten geschöpfte Wissen auch auf eine Vielzahl weiterer Situationen verallgemeinern, die nicht Gegenstand des Trainings waren.
-
Die Datenverarbeitung mit neuronalen Netzwerken erfordert einen hohen Rechenaufwand und dementsprechend starke Hardwareressourcen. Eine Möglichkeit, bei der Implementierung von neuronalen Netzwerken Speicher zu sparen, ist in der
DE 10 2017 218 889 A1 offenbart.
-
Offenbarung der Erfindung
-
Im Rahmen der Erfindung wurde ein Verfahren zur Verarbeitung von Eingangsgrößen zu Ausgangsgrößen mittels Verarbeitungsblöcken, die in einem neuronalen Netzwerk vernetzt sind, entwickelt. In diesem neuronalen Netzwerk wird die Ausgabe jedes Verarbeitungsblocks durch Anwendung einer parametrisierten nichtlinearen Funktion auf die Eingaben dieses Verarbeitungsblocks mittels mindestens eines elektronischen Rechenwerks gebildet. Die Verarbeitungsblöcke können insbesondere Neuronen, aber auch beliebige andere Verarbeitungseinheiten sein.
-
Die nichtlineare Funktion umfasst mindestens eine Division eines Dividenden durch einen Divisor. Diese Division wird in mindestens einem ersten Verarbeitungsblock nach einem ersten Algorithmus und in mindestens einem zweiten Verarbeitungsblock nach einem zweiten Algorithmus ausgeführt. Dabei gibt es mindestens ein Paar aus einem Dividenden und einem Divisor, für das der erste Algorithmus einen Näherungswert liefert, der näher am Ergebnis der Division liegt als ein vom zweiten Algorithmus gelieferter Näherungswert.
-
Grundsätzlich gibt es Paare von Dividend und Divisor, für die die Division vergleichsweise einfach und schnell durchgeführt werden kann, aber auch solche Paare, für die die Division vergleichsweise schwierig ist und länger dauert. So ist es beispielsweise vergleichsweise einfach, im Binärsystem durch 2 oder im Dezimalsystem durch 10 zu teilen; dies läuft jeweils auf eine einfache Verschiebeoperation hinaus. Insbesondere bei solchen einfachen Divisionen ist der bestmögliche Näherungswert für das Ergebnis der Division, nämlich das exakte Ergebnis selbst, sofort verfügbar. Hingegen ist beispielsweise das Teilen durch 7 im Dezimalsystem vergleichsweise schwierig. Gerade bei den schwierigeren Divisionen kann ein erheblicher Aufwand eingespart werden, wenn für die weitere Verarbeitung eine vergleichsweise ungenauere, dafür aber sehr viel einfacher und schneller erhältliche Näherung des Ergebnisses der Division genügt.
-
Es wurde erkannt, dass gerade die Divisionen bei der Verarbeitung der Eingangsgrößen zu den Ausgangsgrößen einen signifikanten Anteil der Verarbeitungszeit beanspruchen können. Divisionen kommen zwar insgesamt weniger häufig vor als etwa Additionen oder Multiplikationen, aber eine Division kann bis zu 20-mal länger dauern als eine Multiplikation oder Addition.
-
Es wurde weiterhin erkannt, dass es in einem neuronalen Netzwerk mit vielen Verarbeitungsblöcken für das Erreichen einer vorgegebenen Qualitätsanforderung hinsichtlich der Ausgangsgrößen nur bei vergleichsweise wenigen Verarbeitungsblöcken darauf ankommt, dass ein möglichst genauer Näherungswert für das Ergebnis der Division ermittelt wird. Bei den weitaus meisten Verarbeitungsblöcken reicht es aus, die Division mit erheblich reduzierter Genauigkeit auszuführen, um gleichwohl immer noch die vorgegebene Qualitätsanforderung zu erfüllen.
-
Dies wiederum ermöglicht es, Divisionen erheblich schneller auszuführen. So kann beispielsweise bei einem iterativen Algorithmus die maximale Anzahl der Iterationen reduziert werden, um auf Kosten der Genauigkeit Zeit zu gewinnen. Ein Beispiel ist die SRT-Division. Es können also sowohl der erste als auch der zweite Algorithmus jeweils eine SRT-Division umfassen, wobei beim ersten Algorithmus mit der höheren Anforderung an die Genauigkeit die maximale Anzahl der Iterationen höher gesetzt wird als beim zweiten Algorithmus.
-
Die schnellere Ausführung kann wiederum ausgenutzt werden, um bei vorgegebenem Budget an Rechenzeit auf einer vorgegebenen Hardwareplattform eine bessere Qualität der Ausgangsgrößen zu erreichen. Die Qualität kann beispielsweise über die Genauigkeit gemessen werden, mit der Validierungs-Eingangsgrößen, die nicht für das Training verwendet wurden, von dem neuronalen Netzwerk auf zugehörige Validierungs-Ausgangsgrößen abgebildet werden.
-
Es kann aber auch beispielsweise einer der Algorithmen beinhalten, den Divisor auf einen Wert, der den Gang der Division vereinfacht, zu ändern. So ist beispielsweise im Binärsystem eine Division durch 7 vergleichsweise schwierig. Wird aber der Divisor auf 8 geändert, wird das Ergebnis der Division nur wenig verfälscht. Da aber 8 eine Zweierpotenz ist, ist eine Division durch 8 besonders einfach, denn hierzu ist lediglich eine Verschiebung des Dividenden um 3 Bit erforderlich. Besonders vorteilhaft wird somit der Divisor auf die nächste Zweierpotenz gerundet.
-
Wenn der Gang der Division in dieser Weise vereinfacht wird, ist das Ergebnis der Division nicht nur schneller erhältlich, sondern die Division kann auch mit einfacher aufgebauten Rechenwerken durchgeführt werden. So benötigen etwa Rechenwerke, die lediglich auf bitweise Verschiebungen spezialisiert sind, in einer integrierten Schaltung deutlich (etwa um einen Faktor 10) weniger Platz als komplexere Rechenwerke, die eine SRT-Division durch jeden beliebigen Divisor ausführen können.
-
Allgemein wird somit vorteilhaft die Division nach dem ersten Algorithmus mit einem ersten elektronischen Rechenwerk ausgeführt, und die Division nach dem zweiten Algorithmus wird mit einem zweiten elektronischen Rechenwerk ausgeführt, das von dem ersten elektronischen Rechenwerk verschieden ist.
-
In einer besonders vorteilhaften Ausgestaltung durchläuft die Ausgabe des ersten Verarbeitungsblocks weniger weitere Verarbeitungsblöcke als die Ausgabe des zweiten Verarbeitungsblocks, bevor sie in die Bildung mindestens einer Ausgangsgröße eingeht. In einem in Schichten organisierten neuronalen Netzwerk kann dies beispielsweise bedeuten, dass der erste Verarbeitungsblock in einer geringeren Entfernung („Schichttiefe“) von der Ausgabeschicht, die die letztendlichen Ausgangsgrößen ausgibt, angeordnet ist. Je mehr weitere Verarbeitungsblöcke zwischen einer Division und der Bildung einer Ausgangsgröße noch durchlaufen werden, desto mehr Gelegenheit haben diese weiteren Verarbeitungsblöcke, eventuelle Ungenauigkeiten der Division im Nachhinein zu korrigieren.
-
In einer weiteren besonders vorteilhaften Ausgestaltung ist das neuronale Netzwerk in Schichten organisiert. Die Ausgaben von Verarbeitungsblöcken einer Schicht werden jeweils den Verarbeitungsblöcken einer nachfolgenden Schicht als Eingaben zugeführt, oder sie gehen, falls es sich um die letzte Schicht (Ausgabeschicht) des Netzwerks handelt, in die Bildung mindestens einer Ausgangsgröße ein. Der erste Verarbeitungsblock wird nun aus einer Schicht ausgewählt, die weniger Verarbeitungsblöcke enthält als diejenige Schicht, aus der der zweite Verarbeitungsblock ausgewählt wird. Je mehr Verarbeitungsblöcke in einer Schicht vorhanden sind, desto besser können Ungenauigkeiten der Division durch andere Verarbeitungsblöcke innerhalb der gleichen Schicht ausgeglichen werden. Daher kann in Schichten mit mehr Verarbeitungsblöcken stärker an der Genauigkeit der Division gespart werden.
-
In einer weiteren besonders vorteilhaften Ausgestaltung wird ein erster Verarbeitungsblock ausgewählt mit der Maßgabe, dass eine Veränderung der Ausgabe dieses ersten Verarbeitungsblocks einen stärkeren Einfluss auf mindestens eine Ausgangsgröße als eine gleichwertige Veränderung der Ausgabe desjenigen Verarbeitungsblocks, der als zweiter Verarbeitungsblock ausgewählt wird. Dabei muss sich der Vergleich nicht zwingend auf ein und dieselbe Ausgangsgröße beziehen. Es kann also auch ein erster Einfluss, den eine Veränderung der Ausgabe des ersten Verarbeitungsblocks auf eine erste Ausgangsgröße hat, mit einem zweiten Einfluss verglichen werden, den eine Veränderung der Ausgabe des zweiten Verarbeitungsblocks auf eine zweite Ausgangsgröße hat. Wenn die Ausgabe eines Verarbeitungsblocks weniger wichtig für die letztendlich erhaltenen Ausgangsgrößen ist, dann kann also beim Ermitteln dieser Ausgabe an der Genauigkeit gespart werden, mit der Divisionen ausgeführt werden.
-
In einer weiteren besonders vorteilhaften Ausgestaltung wird der erste Verarbeitungsblock so ausgewählt, dass seine Ausgabe mindestens einem weiteren Verarbeitungsblock mit einem höheren Gewicht als Eingabe zugeführt als dies für die Ausgabe des zweiten Verarbeitungsblocks der Fall ist. Dabei ist der weitere Verarbeitungsblock, der die Ausgabe des ersten Verarbeitungsblocks als Eingabe erhält, in der Regel nicht identisch zu dem weiteren Verarbeitungsblock, der die Ausgabe des zweiten Verarbeitungsblocks als Eingabe erhält. Je größer das Gewicht ist, mit dem eine Ausgabe eines Verarbeitungsblocks im nächsten Schritt der Verarbeitung verrechnet wird, desto eher „lohnt“ es sich, beim Ermitteln dieser Ausgabe Aufwand in eine höhere Genauigkeit von Divisionen zu investieren.
-
Die Eingangsgrößen können insbesondere beispielsweise physikalische Messdaten umfassen, die mit mindestens einem Sensor erfasst wurden. Dabei werden in einer besonders vorteilhaften Ausgestaltung physikalische Messdaten gewählt, die durch mehrere voneinander unabhängige Sensoren erfasst wurden, jedoch die gleiche physikalische Dimension haben. Die von den mehreren Sensoren erhaltenen Messergebnisse werden also fusioniert und wirken gemeinsam an der Bildung der Ausgangsgrößen mit. Gerade bei einer solchen Anwendung neuronaler Netzwerke sind im Zuge der Verarbeitung der Eingangsgrößen zu Ausgangsgrößen viele Divisionen erforderlich.
-
In einer beispielhaften Anwendung werden Ultraschallsensoren, die in oder an einem Fahrzeug montiert sind, gewählt. Weiterhin charakterisiert mindestens eine Ausgangsgröße ein durch das Abrollen eines Reifens auf einer Fahrbahn verursachtes Geräusch, und/oder ein durch das Fallen von Niederschlägen verursachtes Geräusch. Eine Auswertung dieser Geräusche liefert wertvolle Informationen über den Zustand des Reifen-Fahrbahn-Kontakts des Fahrzeugs, während zugleich für die Aufnahme der physikalischen Messdaten lediglich diejenigen Sensoren nötig sind, die beispielsweise für die Zwecke von Parkassistenzsystemen ohnehin schon vorhanden sind.
-
In einer weiteren besonders vorteilhaften Ausgestaltung werden physikalische Messdaten gewählt, die mehrere Messgrößen unterschiedlicher physikalischer Dimension enthalten. Weiterhin beinhaltet mindestens eine Ausgangsgröße eine Prognose einer physikalischen Messgröße. Eine Fusion von Messdaten zu mindestens einer Ausgangsgröße ist also auch über Grenzen physikalischer Dimensionen von Messgrößen hinweg möglich.
-
In einem Beispiel für eine solche Fusion umfassen die Messgrößen einen Reibwert (dimensionslos), ein Maß für die Belegung mit Niederschlägen (messbar auf beliebiger Skala, etwa Millimeter Wasserfilm) sowie eine Geschwindigkeit des Fahrzeugs (Meter pro Sekunde). Die Ausgangsgrößen beinhalten eine Prognose des dimensionslosen Reibwerts.
-
Allgemein können die Ausgangsgrößen beispielsweise mindestens eine Klasse einer vorgegebenen Klassifikation, und/oder mindestens einen Regressionswert einer vorgegebenen Regressionsgröße, und/oder eine semantische Segmentierung der physikalischen Messdaten, umfassen. Dies sind die häufigsten Typen von Ausgangsgrößen, die beispielsweise im Kontext von zumindest teilweise automatisiert fahrenden Fahrzeugen, von Systemen für die Qualitätskontrolle von in Serie gefertigten Produkten, von Systemen für die Überwachung von Bereichen (etwa mit Sicherheitskameras) sowie von Systemen für die medizinische Bildgebung ausgewertet werden.
-
Besonders vorteilhaft wird aus der Klasse, und/oder aus dem Regressionswert, und/oder aus der semantischen Segmentierung, ein Ansteuersignal gebildet. Ein Fahrzeug, ein Klassifikationssystem, ein System für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder ein System für die Überwachung von Bereichen, und/oder ein System für die medizinische Bildgebung, mit diesem Ansteuersignal angesteuert. Im Kontext dieser Systeme hat das Einsparen von Genauigkeit bei Divisionen die Wirkung, dass beispielsweise Steuergeräte, in denen die Verarbeitung des neuronalen Netzwerks implementiert ist, mit weniger Rechenwerken auskommen, die zur hochgenauen Berechnung auch schwierigerer Divisionen in der Lage sind. Wird beispielsweise ein solches Rechenwerk eingespart, können auf der in der integrierten Schaltung frei werdenden Fläche etwa 10 Rechenwerke untergebracht werden, die die Divisionen nur deutlich ungenauer berechnen können oder überhaupt nur zur Berechnung bestimmter Klassen von Divisionen in der Lage sind (etwa durch bitweise Verschiebung).
-
Eine Fusion physikalischer Messdaten aus mehreren Quellen kann beispielsweise auch genutzt werden, um die Position eines Fahrzeugs oder eines Mobilgeräts zu bestimmen. Hierzu können beispielsweise Messdaten, die von einem satellitengestützten Navigationssystem (etwa GPS) geliefert wurden, mit Messdaten, die aus dem Empfang terrestrischer Sender (etwa WLAN-Zugangspunkte oder Mobilfunk-Basisstationen) gewonnen wurden, fusioniert werden. Auch können beispielsweise bei der Spracherkennung und bei der Komprimierung von Sprache Audioaufnahmen aus mehreren Quellen miteinander fusioniert werden.
-
Das zuvor beschriebene Verfahren kann sowohl beim Training des neuronalen Netzwerks als auch in seinem Wirkbetrieb, also bei der Inferenz, genutzt werden. Eine Nutzung während des Trainings hat den zusätzlichen Vorteil, dass das neuronale Netzwerk gleich mitlernen kann, mit den in die Ausführung der Divisionen eingeführten Ungenauigkeiten umzugehen.
-
Wie zuvor erläutert, ist es besonders vorteilhaft, wenn von den insgesamt bei der Verarbeitung von Eingangsgrößen zu Eingangsgrößen anstehenden Divisionen ein möglichst großer Anteil mit einem möglichst einfachen Algorithmus ausgeführt werden kann. Dann kann eine Hardwareplattform für die Implementierung dieses neuronalen Netzwerks viele Rechenwerke enthalten, die für die Ausführung dieses einfachen Algorithmus ausgebildet sind, während nur wenige Rechenwerke erforderlich sind, die auch schwierigere Divisionen hochgenau ausführen können.
-
Daher bezieht sich die Erfindung auch auf ein Verfahren zum Trainieren eines neuronalen Netzwerks, welches Eingangsgrößen durch miteinander vernetzte Verarbeitungsblöcke zu Ausgangsgrößen verarbeitet. In dem neuronalen Netzwerk wird die Ausgabe jedes Verarbeitungsblocks durch Anwendung einer parametrisierten nichtlinearen Funktion auf die Eingaben dieses Verarbeitungsblocks mittels mindestens eines elektronischen Rechenwerks gebildet, wobei diese nichtlineare Funktion mindestens eine Division eines Dividenden durch einen Divisor umfasst.
-
Im Rahmen dieses Verfahrens werden Lern- Eingangsgrößen sowie zugehörigen Lern-Ausgangsgrößen, auf die das neuronale Netzwerk die Lern-Eingangsgrößen idealerweise abbilden soll, bereitgestellt. Die Lern-Eingangsgrößen werden durch das neuronale Netzwerk mit dem zuvor beschriebenen Verfahren zu Ausgangsgrößen verarbeitet. Die Parameter der parametrisierten nichtlinearen Funktionen der Verarbeitungsblöcke werden optimiert mit dem Ziel, dass die Ausgangsgrößen nach Maßgabe einer vorgegebenen Kostenfunktion in Einklang mit den Lern-Ausgangsgrößen stehen. Die Parameter können beispielsweise Gewichte umfassen, mit denen Eingaben, die einem jeden Verarbeitungsblock zugeführt werden, zu einer Aktivierung dieses Verarbeitungsblocks verrechnet werden. Die Ausgabe dieses Verarbeitungsblocks kann dann aus der Aktivierung durch Anwendung einer nichtlinearen Funktion, beispielsweise der Rectified Linear Unit (ReLU), ermittelt werden.
-
Zusätzlich werden noch Hyperparameter optimiert, die Algorithmen charakterisieren, nach denen in den Verarbeitungsblöcken Divisionen ausgeführt werden. Bei dieser Optimierung wird das Ziel verfolgt, einen möglichst großen Anteil der Divisionen mit einem möglichst einfachen Algorithmus auszuführen. Die Hyperparameter können beispielsweise eine Festlegung beinhalten, mit welchem von mehreren verfügbaren Algorithmen (etwa SRT-Division oder bitweise Verschiebung) Divisionen eines konkreten Verarbeitungsblocks ausgeführt werden. Die Hyperparameter können beispielsweise auch die maximale Anzahl der Iterationen einer SRT-Division, die in jedem Verarbeitungsblock auszuführen ist, beinhalten.
-
Dies schließt nicht aus, dass beim Training auch noch weitere Hyperparameter optimiert werden, die sich beispielsweise auf die Architektur des neuronalen Netzwerks beziehen können. Das Einsparen von Divisionen und der hierdurch bewirkte Geschwindigkeitsgewinn ermöglicht es, mehr Werte der Hyperparameter zu testen. Weiterhin kann das Training generell mit mehr Verarbeitungsblöcken und/oder ausgehend von vielfältigeren Startwerten durchgeführt werden.
-
Die Verfahren können insbesondere ganz oder teilweise computerimplementiert sein. 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. In diesem Sinne sind auch Steuergeräte für Fahrzeuge und Embedded-Systeme für technische Geräte, die ebenfalls in der Lage sind, maschinenlesbare Anweisungen auszuführen, als Computer anzusehen.
-
Ebenso bezieht sich die Erfindung auch auf einen maschinenlesbaren Datenträger und/oder auf 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.
-
Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand von Figuren näher dargestellt.
-
Figurenliste
-
Es zeigt:
- 1 Ausführungsbeispiel des Verfahrens 100 zur Verarbeitung von Eingangsgrößen 11 zu Ausgangsgrößen 13;
- 2 Beispielhaftes neuronales Netzwerk 1, in dem das Verfahren 100 angewendet wird;
- 3 Ausführungsbeispiel des Verfahrens 200 zum Trainieren eines neuronalen Netzwerks 1.
-
1 ist ein schematisches Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 100 zur Verarbeitung von Eingangsgrößen 11 zu Ausgangsgrößen 13.
-
Die Eingangsgrößen 11 durchlaufen während der Verarbeitung zu Ausgangsgrößen 13 viele Verarbeitungsblöcke 12, wobei gemäß Schritt 110 die Ausgabe 12b jedes Verarbeitungsblocks 12 durch Anwendung einer parametrisierten nichtlinearen Funktion 12c auf die Eingaben 12a dieses Verarbeitungsblocks 12 mittels eines elektronischen Rechenwerks gebildet wird.
-
Die nichtlineare Funktion 12c umfasst mindestens eine Division eines Dividenden durch einen Divisor. Gemäß Schritt 120 wird diese Division in mindestens einem ersten Verarbeitungsblock 12 nach einem ersten Algorithmus 14 und in mindestens einem zweiten Verarbeitungsblock 12' nach einem zweiten Algorithmus 14' ausgeführt. Dabei gibt es mindestens ein Paar aus einem Dividenden und einem Divisor, für das der erste Algorithmus einen Näherungswert liefert, der näher am Ergebnis der Division liegt als ein vom zweiten Algorithmus gelieferter Näherungswert. Die Auswahl des Algorithmus 14, 14' ändert also letztlich die nichtlineare Funktion 12c des jeweiligen Verarbeitungsblocks 12, 12'.
-
Gemäß Schritt 130 umfassen die Ausgangsgrößen 13 mindestens eine Klasse 13a einer vorgegebenen Klassifikation, und/oder mindestens einen Regressionswert 13b einer vorgegebenen Regressionsgröße, und/oder eine semantische Segmentierung 13c von physikalischen Messdaten, die als Eingangsgrößen 11 gewählt wurden. Gemäß Schritt 140 wird aus der Klasse 13a, und/oder aus dem Regressionswert 13b, und/oder aus der semantischen Segmentierung 13c, ein Ansteuersignal 16 gebildet. Gemäß Schritt 150 wird ein Fahrzeug 50, ein Klassifikationssystem 60, ein System 70 für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder ein System 80 für die Überwachung von Bereichen, und/oder ein System 90 für die medizinische Bildgebung, mit diesem Ansteuersignal 16 angesteuert.
-
Innerhalb des Kastens 120 sind mehrere beispielhafte Möglichkeiten angegeben, wie für konkrete Verarbeitungsblöcke 12, 12' der Algorithmus 14, 14' für das Ausführen von Divisionen ausgewählt werden kann.
-
Gemäß Block 121 kann die Ausgabe 12b des ersten Verarbeitungsblocks 12 weniger weitere Verarbeitungsblöcke 12 durchlaufen als die Ausgabe 12b' des zweiten Verarbeitungsblocks 12', bevor sie in die Bildung mindestens einer Ausgangsgröße 13 eingeht.
-
Gemäß Block 122 kann in einem in Schichten 1a-1c organisierten neuronalen Netzwerks 1 der erste Verarbeitungsblock 12 aus einer Schicht 1a-1c ausgewählt werden, die weniger Verarbeitungsblöcke 12 enthält als diejenige Schicht 1a-1c, aus der der zweite Verarbeitungsblock 12' ausgewählt wird.
-
Gemäß Block 123 kann ein erster Verarbeitungsblock 12 mit der Maßgabe ausgewählt werden, dass eine Veränderung der Ausgabe 12b dieses ersten Verarbeitungsblocks 12 einen stärkeren Einfluss auf mindestens eine Ausgangsgröße 13 hat als eine gleichwertige Veränderung der Ausgabe 12b' des Verarbeitungsblocks, der als zweiter Verarbeitungsblock 12' ausgewählt wird.
-
Gemäß Block 124 kann der erste Verarbeitungsblock 12 so ausgewählt werden, dass seine Ausgabe mindestens einem weiteren Verarbeitungsblock 12 mit einem höheren Gewicht als Eingabe zugeführt wird als dies für die Ausgabe 12a' des zweiten Verarbeitungsblocks 12' der Fall ist.
-
Gemäß Block 125 können der erste Algorithmus 14 und der zweite Algorithmus 14' jeweils eine SRT-Division umfassen. Dabei wird die maximale Anzahl der Iterationen der SRT-Division beim ersten Algorithmus 14 höher gesetzt als beim zweiten Algorithmus 14'.
-
Gemäß Block 126 kann mindestens einer der Algorithmen 14, 14' beinhalten, den Divisor auf einen Wert, der den Gang der Division vereinfacht, zu ändern. Dabei kann der Divisor insbesondere gemäß Block 126a auf die nächste Zweierpotenz gerundet werden.
-
Gemäß Block 127 kann die Division nach dem ersten Algorithmus 14 mit einem ersten elektronischen Rechenwerk ausgeführt werden. Die Division nach dem zweiten Algorithmus 14' kann dann gemäß Block 128 mit einem zweiten elektronischen Rechenwerk ausgeführt werden, das von dem ersten elektronischen Rechenwerk verschieden ist.
-
2 zeigt ein beispielhaftes neuronales Netzwerk 1 aus drei Schichten 1a, 1b und 1c, in dem das Verfahren 100 angewendet wird. Die erste Schicht 1a enthält sechs Verarbeitungsblöcke 12, die zweite Schicht 1b vier und die dritte Schicht 1c drei. Die Eingaben 12a, die Verarbeitungsblöcken 12 der ersten Schicht 1a zugeführt werden, sind gleichzeitig die Eingangsgrößen 11 des neuronalen Netzwerks insgesamt. Die Ausgaben 12b aus Verarbeitungsblöcken 12 der Schichten 1a und 1b sind als Eingaben 12a in Verarbeitungsblöcke 12 der jeweils folgenden Schichten 1b bzw. 1c geführt. Die Ausgaben 12c aus Verarbeitungsblöcken 12 der Schicht 1c sind gleichzeitig die Ausgangsgrößen 13 des neuronalen Netzwerks insgesamt.
-
Die Ausgabe 12b eines jeden Verarbeitungsblocks 12 geht durch Anwendung einer parametrisierten nichtlinearen Funktion 12c aus den jeweiligen Eingaben 12a dieses Verarbeitungsblocks 12 hervor. In 2 sind jeweils beispielhaft nur einige der vielen Eingaben 12a eingezeichnet, die einem Verarbeitungsblock 12 zugeführt werden.
-
Die nichtlineare Funktion 12c enthält jeweils mindestens eine Division eines Dividenden durch einen Divisor. Für diese Division stehen Algorithmen 14, 14' zur Verfügung, die Näherungswerte mit verschiedenen Genauigkeiten liefern. In einem beispielhaft eingezeichneten Verarbeitungsblock 12 in der dritten Schicht 1c kommt ein erster Algorithmus 14 zum Einsatz. In einem beispielhaft eingezeichneten Verarbeitungsblock 12' in der ersten Schicht 1a kommt ein zweiter Algorithmus 14' zum Einsatz, der im Vergleich zu dem ersten Algorithmus 14 eine weniger genaue Näherung für das wahre Ergebnis der Division liefert und im Austausch hierfür weniger aufwändig ist. Die hierdurch in der Ausgabe 12b' des Verarbeitungsblocks 12' entstehende Ungenauigkeit wird im Kontext des gesamten neuronalen Netzwerks 1 durch zwei Faktoren im Wesentlichen kompensiert. Zum Einen enthält die erste Schicht 1a im Vergleich zur dritten Schicht 1c deutlich mehr Verarbeitungsblöcke 12. Zum Anderen durchläuft die Ausgabe 12b' des Verarbeitungsblocks 12', die auf einer Division mit geringerer Genauigkeit basiert, noch einen weiteren Verarbeitungsblock 12 in der zweiten Schicht 1b und einen letzten Verarbeitungsblock 12 in der dritten Schicht 1c, bevor sie in die Bildung einer Ausgangsgröße 13 des Netzwerks 1 insgesamt eingeht. Hingegen sind die Ausgaben 12b der Verarbeitungsblöcke 12 in der dritten Schicht 1c gleichzeitig auch die Ausgangsgrößen 13 des Netzwerks 1. Daher kommt es bei den in der dritten Schicht 1c ausgeführten Divisionen mehr auf Genauigkeit an als bei den in der ersten Schicht 1a ausgeführten Divisionen.
-
3 zeigt ein Ausführungsbeispiel des Verfahrens 200 zum Trainieren des neuronalen Netzwerks 1.
-
In Schritt 210 des Verfahrens 210 werden Lern-Eingangsgrößen 11* sowie zugehörige Lern-Ausgangsgrößen 13*, auf die das neuronale Netzwerk 1 die Lern-Eingangsgrößen 11* im trainierten Zustand idealerweise abbilden soll, bereitgestellt.
-
In Schritt 220 werden die Lern-Eingangsgrößen 11* mit den zuvor beschriebenen Verfahren 100 durch das neuronale Netzwerk 1 zu Ausgangsgrößen 13 verarbeitet. Divisionen werden also in Bezug auf eine oder mehrere Verarbeitungsblöcke 12' mit einem weniger genauen Algorithmus 14' ausgeführt als in Bezug auf andere Verarbeitungsblöcke 12.
-
In Schritt 230 werden Parameter 12d der parametrisierten nichtlinearen Funktionen 12c, die das Verhalten der Verarbeitungsblöcke 12, 12' charakterisieren, optimiert mit dem Ziel, dass die Ausgangsgrößen 13 des neuronalen Netzwerks 1 nach Maßgabe einer vorgegebenen Kostenfunktion 15 in Einklang mit den Lern-Ausgangsgrößen 13* stehen. Die fertig optimierten Parameter 12d sind mit dem Bezugszeichen 12d* bezeichnet.
-
Die Algorithmen 14, 14', nach denen in den Verarbeitungsblöcken 12, 12' Divisionen ausgeführt werden, sind durch Hyperparameter 14a charakterisiert. In Schritt 240 werden diese Hyperparameter 14a optimiert mit dem Ziel, einen möglichst großen Anteil der Divisionen mit einem möglichst einfachen Algorithmus 14, 14' auszuführen. Die fertig optimierten Hyperparameter 14a sind mit dem Bezugszeichen 14a* bezeichnet.
-
In dem in 3 gezeigten Beispiel wird für jeden Optimierungsschritt der Hyperparameter 14a die Optimierung 230 der Parameter 12d erneut durchlaufen. Das heißt, das neuronale Netzwerk 1 kompensiert durch ein erneutes Training der Parameter 12d Ungenauigkeiten, die durch die vereinfachte Ausführung von Divisionen entstehen, zumindest teilweise. Die Optimierung 240 der Hyperparameter 14a kann aber auch beispielsweise mit der Optimierung 230 der Parameter 12d zusammengefasst werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 102017218889 A1 [0004]