-
Die vorliegende Erfindung betrifft eine Vorrichtung, die eingerichtet ist, zur Konstruktion und zum Training neuronaler Netzwerke, insbesondere für den Einsatz in Steuergeräten und anderen Embedded-Systemen mit knappen Hardware- und Energieressourcen.
-
Stand der Technik
-
In Steuergeräten für Fahrzeuge sowie in anderen Embedded-Systemen werden zunehmend neuronale Netzwerke für die Auswertung von Messgrößen eingesetzt. Neuronale Netzwerke zeichnen sich im Vergleich zu anderen Techniken für die Auswertung dadurch aus, dass sie eine große Kraft zur Verallgemeinerung haben. Dadurch können sie nach hinreichendem Training auch bislang ungesehene Situationen zutreffend bewerten und Ansteuersignale erzeugen, die zu einer der Situation angemessenen Reaktion des Fahrzeugs oder sonstigen Systems führen.
-
Der Preis für diese Leistungsfähigkeit ist, dass neuronale Netzwerke vergleichsweise hohe Anforderungen an die Hardwareplattform stellen, auf der sie implementiert sind. Typischerweise werden Grafikprozessoren (GPUs) mit großer Speicherausstattung benötigt. Abgesehen davon, dass der Preis der Hardwareplattform mit ihrer Ausstattung steigt, ist in Steuergeräten für Fahrzeuge und anderen Embedded-Systemen häufig der Platz knapp. Auch die maximale Stromaufnahme ist durch die verwendete Energiequelle, wie etwa das Bordnetz eines Fahrzeugs oder eine Batterie, und/oder durch die maximal zulässige Wärmeabgabe, begrenzt. Daher offenbart die
DE 10 2019 202 816 A1 ein Verfahren zum Trainieren eines neuronalen Netzwerks, bei dem weniger relevante Neuronen und Verbindungen zwischen Neuronen vollständig deaktiviert werden.
-
Offenbarung der Erfindung
-
Im Rahmen der Erfindung wurde ein Verfahren zum Trainieren eines neuronalen Netzwerks mit einer Anordnung aus Neuronen oder anderen Verarbeitungseinheiten entwickelt. Die Architektur dieser Anordnung ist durch Architekturparameter θ, α charakterisiert. Das bedeutet, dass während des Trainings durch eine Änderung der Architekturparameter θ, α die Architektur des neuronalen Netzwerks verändert werden kann. Das Verhalten, das das neuronale Netz auf eine Eingabe hin zeigt, wird durch Neuronenparameter w charakterisiert, die den gemäß der Architektur vorhandenen Neuronen oder anderen Verarbeitungseinheiten zugeordnet sind. Diese Parameter können beispielsweise Gewichte umfassen, mit denen Eingaben, die einem Neuron oder einer anderen Verarbeitungseinheit zugeführt werden, zu einer Aktivierung dieses Neurons, bzw. dieser Verarbeitungseinheit, gewichtet summiert werden. Durch Anwenden einer Nichtlinearität, wie beispielsweise der Rectified Linear Unit (ReLU), kann diese Aktivierung zur letztendlichen Ausgabe des Neurons, bzw. der Verarbeitungseinheit, weiterverarbeitet werden.
-
Das Verfahren beginnt damit, dass die Architekturparameter θ, α initialisiert werden. Weiterhin werden Trainingsdaten bereitgestellt. Sofern das Training ein überwachtes Training ist, sind diese Trainingsdaten zumindest teilweise mit Soll-Ausgaben gelabelt, auf die das neuronale Netzwerk die Trainingsdaten idealerweise abbilden soll.
-
Das neuronale Netzwerk wird anhand der Architekturparameter θ, α aufgestellt. Hierunter ist zu verstehen, dass eine beliebige Laufzeitumgebung bereitgestellt und so konfiguriert wird, dass sie sich wie das durch die Architekturparameter charakterisierte neuronale Netzwerk verhält. Das neuronale Netzwerk kann beispielsweise in Software implementiert und auf einer oder mehreren GPUs ausgeführt werden. Das neuronale Netzwerk kann aber auch beispielsweise durch entsprechende Konfiguration eines FPGA oder eines anderen programmierbaren Logikbausteins in Hardware implementiert werden.
-
Die Trainingsdaten werden von dem neuronalen Netzwerk auf Ausgaben abgebildet. Es wird ein Ausgaben-Gütemaß L* ausgewertet, das die Ausgaben im Hinblick auf die an das neuronale Netzwerk gestellte Aufgabe bewertet. Derartige Gütemaße L* werden auch Loss-Funktion genannt und können beispielsweise beim überwachten Training die Übereinstimmung der vom neuronalen Netzwerk gelieferten Ausgaben mit Soll-Ausgaben messen, mit denen die Trainingsdaten gelabelt sind.
-
Wenn das neuronale Netzwerk beispielsweise als Bildklassifikator ausgebildet ist, können Trainingsdaten Trainingsbilder umfassen, und diese Trainingsbilder können mit Soll-Klassifikations-Scores in Bezug auf eine oder mehrere Klassen einer vorgegebenen Klassifikation gelabelt sein. Das Ausgaben-Gütemaß L* kann dann die Übereinstimmung der vom neuronalen Netzwerk gelieferten Klassifikations-Scores mit den Soll-Klassifikations-Scores anhand einer beliebigen geeigneten Metrik messen.
-
Die Architekturparameter θ, α und die Neuronenparameter w werden mindestens auf zwei Ziele optimiert, wobei diese Optimierungen gleichzeitig oder auch im Wechsel stattfinden können.
-
Zum einen sollen die Architekturparameter θ, α und die Neuronenparameter w dahingehend geändert werden, dass sich bei weiterer Verarbeitung von Trainingsdaten durch das neuronale Netzwerk das Ausgaben-Gütemaß L* verbessert.
-
Zum anderen sollen die Architekturparameter und optional auch die Neuronenparameter dahingehend geändert werden, dass ein Hardwareaufwand für die Implementierung der durch die Architekturparameter charakterisierten Architektur auf einer Hardwareplattform, und/oder ein Energieverbrauch beim Betrieb des neuronalen Netzwerks auf dieser Hardwareplattform, vermindert wird, und/oder mindestens eine vorgegebene Nebenbedingung erfüllt.
-
Zusätzlich kann die Optimierung optional auch noch auf weitere Ziele gerichtet sein. Beispielsweise kann gefordert sein, dass das neuronale Netzwerk auf einer gegebenen Hardwareplattform möglichst schnell ein Ergebnis liefern soll. Insbesondere bei Anwendungen für das zumindest teilweise automatisierte Führen von Fahrzeugen werden häufig Vorhersagen und andere Ergebnisse in Echtzeit benötigt.
-
Das kombinierte Training kann beispielsweise als mehrzieliges Training (multiobjective training) durchgeführt werden. Dann arbeiten die Optimierung auf das Ausgaben-Gütemaß einerseits und die Optimierung im Hinblick auf Hardware- und Energieaufwand andererseits Hand in Hand.
-
So kann beispielsweise eine Änderung der Architektur, die ein Stück Hardware einspart, zunächst bewirken, dass sich die Leistung des neuronalen Netzwerks im Hinblick auf das Ausgaben-Gütemaß L* verschlechtert. Durch weiteres Training der Neuronenparameter w kann das neuronale Netzwerk aber lernen, mit der Einsparung des Stücks Hardware umzugehen und die Aufgaben, die dieses Stück Hardware bislang ausgeführt hat, auf andere Teile der Hardwareplattform zu verlagern.
-
Umgekehrt kann beispielsweise der Lernfortschritt beim Optimieren der Neuronenparameter w zur Folge haben, dass sich die Aktivität des neuronalen Netzwerks auf bestimmte Teilbereiche fokussiert und andere Teilbereiche gar nicht mehr ausgelastet sind. Indem durch eine Änderung der Architekturparameter θ, α diese nicht mehr ausgelasteten Bereiche eingespart werden, kann der Hardware- und Energieaufwand vermindert werden, ohne dass dies zu Lasten der Leistung im Hinblick auf das Ausgaben-Gütemaß geht.
-
Insgesamt kann auf diese Weise ein „Pareto-Zustand“ aufgefunden werden, in dem es nicht mehr möglich ist, im Hinblick auf eines der Ziele eine Verbesserung zu erzielen, ohne im Hinblick auf das jeweils andere Ziel eine Verschlechterung in Kauf zu nehmen.
-
Das kombinierte Training kann aber auch beispielsweise lediglich auf das Ziel gerichtet sein, das Ausgaben-Gütemaß L* zu verbessern, wobei diese Optimierung unter einer vorgegebenen Nebenbedingung erfolgt. Mit einer solchen Nebenbedingung kann beispielsweise ein bestimmtes Budget in Form von Rechenkapazität, Speicherplatz, Einbauraum für die Hardware, Energieverbrauch oder Wärmeabfuhr vorgegeben werden, und es kann dann die optimale Kombination aus Architekturparametern θ, α und Neuronenparametern w gesucht werden, die aus diesem Budget das beste Ausgaben-Gütemaß L* herausholt.
-
Das kombinierte Training kann auch beispielsweise genutzt werden, um ausgehend von einer generischen Version des neuronalen Netzwerks verschiedene Versionen für verschiedene Anwendungen zu erstellen, die nicht gleichzeitig benötigt werden.
-
Wenn beispielsweise ein Bildklassifikator in einem Fahrzeug eingesetzt wird, um Verkehrssituationen zu analysieren, dann benötigt dieser Bildklassifikator bei der Nutzung des Fahrzeugs in manchen Weltregionen Fähigkeiten, die in anderen Weltregionen nicht oder in anderer Form benötigt werden.
-
So herrscht beispielsweise in manchen Regionen Linksverkehr und in anderen Regionen Rechtsverkehr. In den USA sind trotz Rechtsverkehr manche Autobahnausfahrten nur über den linken Fahrstreifen zu erreichen, während in Europa zum Verlassen der Autobahn immer zuerst der rechte Fahrstreifen und dann der Verzögerungsstreifen angesteuert werden muss.
-
Es ist ein vergleichsweise großer Aufwand, für jede Weltregion eine eigene Architektur des neuronalen Netzwerks zu pflegen. Effektiver ist es, von nur einer einzigen Architektur auszugehen und diese dann für den Einsatz in unterschiedlichen Weltregionen unterschiedlich zu trainieren. Wenn das neuronale Netzwerk aber im Prinzip auf alle Situationen in allen Weltregionen trainierbar sein muss, wird es insgesamt sehr groß, und zugleich wird nach dem Training auf eine Weltregion nur noch der für diese Weltregion relevante Anteil genutzt.
-
Mit dem kombinierten Training kann beim Training für jede Weltregion auch gleich die Architektur des neuronalen Netzwerks so angepasst werden, dass sie nur noch diejenigen Bestandteile enthält, die tatsächlich in der jeweiligen Anwendung genutzt werden. Es muss also nicht jeder Fahrer in Europa beispielsweise einen Chip spazieren fahren, der in den USA Verkehrssituationen beim Verlassen der Autobahn über den linken Fahrstreifen richtig einschätzt und in Europa gar keine Funktion hat.
-
In einer besonders vorteilhaften Ausgestaltung ist mindestens ein Architekturparameter θ, α ein Vektor mit mehreren Komponenten, dessen Werte die Ausprägung unterschiedlicher Alternativen für einen Teil dieser Architektur aus einer vorgegebenen Anzahl von Möglichkeiten repräsentieren. Auf diese Weise kann die Auswahl zwischen derartigen Alternativen der numerischen Optimierung zugänglich gemacht werden.
-
Beispielsweise kann das neuronale Netzwerk eine Abfolge von Schichten mit Neuronen bzw. anderen Verarbeitungseinheiten beinhalten. Die Ausgabe mindestens einer Schicht kann dann eine gewichtete Summe von Ausgaben sein, die verschiedene Alternativen für diese Schicht liefern, wobei die Gewichte durch die Architekturparameter θ, α festgelegt sind. Durch die numerische Optimierung kristalliert sich dann idealerweise eine klare Präferenz für eine der Alternativen heraus, die das letztendlich in Hardware zu implementierende neuronale Netzwerk enthalten soll.
-
Besonders vorteilhaft wird der Vektor, der die Alternativen repräsentiert, bei der Optimierung in Richtung auf eine Diskretisierung zu einem Vektor mit nur einer von Null verschiedenen Komponente getrieben. Damit wird das neuronale Netzwerk während des Trainings dazu angeregt, sich für eine der Alternativen zu entscheiden. Das Treiben in Richtung auf eine Diskretisierung kann insbesondere beispielsweise beinhalten, den Vektor einer differenzierbaren Funktion zuzuführen, die die Diskretisierung annähert. So nähert beispielsweise im Eindimensionalen die Sigmoid-Funktion eine Diskretisierung auf die binären Werte 0 und 1 in differenzierbarer Form an.
-
Die Alternativen für die Schicht können beispielsweise Faltungsschichten umfassen, die ihre Eingabe durch Anwenden von für die jeweilige Faltungsschicht spezifischen Filterkernen zu Merkmalskarten in Bezug auf diese Filterkerne verarbeiten. Hierbei können beispielsweise die Größe (etwa 3x3 oder 5x5) und/oder der Inhalt der Filterkerne zwischen den Alternativen variieren.
-
Alternativ oder in Kombination hierzu können die Alternativen für die Schicht Poolingschichten umfassen, die ihre Eingabe nach einer für die jeweilige Poolingschicht spezifischen Vorschrift auf eine niedrigere Dimensionalität zusammenfassen. Auch hier kann beispielsweise die Größe (etwa 3x3 oder 5x5) von Bereichen variiert werden, über die ein Mittelwert oder eine andere zusammenfassende Statistik gebildet wird.
-
In einer besonders vorteilhaften Ausgestaltung wird ein Hardware-Gütemaß
LHW ausgewertet, das den Hardwareaufwand, und/oder den Energieverbrauch, bewertet. Mindestens das Ausgaben-Gütemaß und das Hardware-Gütemaß werden als gewichtete Beiträge in ein Gesamt-Gütemaß L eingebracht. Die Architekturparameter
θ,
α und die Neuronenparameter w werden auf das Ziel optimiert, dieses Gesamt-Gütemaß L zu verbessern. Wie zuvor erläutert, können hierdurch insbesondere Pareto-Zustände zwischen dem Ausgaben-Gütemaß
L* einerseits und dem Hardware-Gütemaß
LHW andererseits aufgefunden werden. Diese Pareto-Zustände können insbesondere davon abhängen, wie das Ausgaben-Gütemaß
L* und das Hardware-Gütemaß
LHW relativ zueinander gewichtet sind.Beispielsweise kann die zulösende Optimierungsaufgabe die Form
haben. Hierin ist
L* das Ausgaben-Gütemaß, das sowohl von Architekturparametern
α als auch von den Gewichten w der Neuronen im neuronalen Netzwerk abhängt.
LHW ist ein Hardware-Gütemaß, das den Hardwareaufwand, und/oder den Energieverbrauch, bewertet.
-
Die Architekturparameter
α können - beispielsweise mit einer Funktion oder
-
Die Funktion g kann beispielweise auch ein neuronales Netzwerk sein.
-
Das Optimum für die Gewichte w kann von λ abhängen, da abhängig von λ Defizite bezüglich des einen Gütemaßes L*, LHW durch bessere Leistungen bezüglich des jeweils anderen Gütemaßes LHW , L* zumindest teilweise ausgeglichen werden können.
-
Insbesondere kann im Zuge des Trainings auch λ variiert werden. Damit können
α,
θ und w in Abhängigkeit vom variierenden λ gelernt werden. Wie unten weiter erläutert wird, kann hierdurch eine vollständige „Pareto-Front“ bestimmt werden, und nicht nur ein einzelner Pareto-Zustand. Die besagte Optimierungsaufgabe lässt sich dann auch schreiben als
-
Die Verallgemeinerung auf weitere Beiträge zum Gesamt-Gütemaß L ist die Optimierungsaufgabe
-
Das Einbringen mehrerer Gütemaße Li in ein Gesamt-Gütemaß L ist nicht auf eine additive Verrechnung beschränkt. Das Gesamt-Gütemaß L kann beispielsweise auch ein Produkt mehrerer Gütemaße Li sein.
-
In einer besonders vorteilhaften Ausgestaltung werden Gewichte λi der zum Gesamt-Gütemaß L zusammengeführten Gütemaße L*, LHW , Li als Samples aus einer Zufallsverteilung gezogen. Anhand der Architekturparameter α (und/oder der Meta-Architekturparameter θ) wird mindestens eine Architektur des neuronalen Netzwerks ermittelt. Für diese Architektur werden anhand der Trainingsdaten die Gütemaße L*, LHW , L ausgewertet. Anschließend wird eine Aktualisierung der Neuronenparameter w ermittelt, die voraussichtlich zu einer Verbesserung des Ausgaben-Gütemaßes L* führt. Weiterhin wird eine Aktualisierung der Architekturparameter α, θ ermittelt, die voraussichtlich zu einer Verbesserung des Hardware-Gütemaßes LHW führt. Eine Verbesserung weiterer Gütemaße Li kann zusätzlich als Optimierungsziel in die Aktualisierung der Neuronenparameter w, und/oder in die Aktualisierung der Architekturparameter θ, α, einfließen. Dies hängt davon ab, in welchem Maße die Neuronenparameter w und die Architekturparameter θ, α sich auf das jeweilige Gütemaß Li auswirken.
-
Beispielsweise können mehrere Gewichte λi aus einer Dirichlet-Verteilung gezogen werden, so dass die Summe dieser Gewichte λi auf 1 normiert ist.
-
Das Ziehen der Gewichte λi aus der Zufallsverteilung bewirkt, dass eine gewisse Variabilität in die λi eingebracht wird. Auf diese Weise kann eine vollständige „Pareto-Front“ ermittelt werden, also die Abhängigkeit des Pareto-Zustandes, in dem das Ausgaben-Gütemaß L* nicht mehr ohne gleichzeitige Verschlechterung des Hardware-Gütemaßes LHW und eventueller weiterer Gütemaße Li verbessert werden kann, von den λi . Dies wiederum ermöglicht Rückschlüsse von der Art, um wieviel besser das eine Gütemaß noch werden kann, wenn dafür beim anderen Gütemaß noch ein kleines Zugeständnis gemacht wird. Wenn etwa um den Preis eines geringfügig erhöhten Stromverbrauchs noch eine drastische Verbesserung des Ausgaben-Gütemaßes L* erzielt werden kann, dann kann es sinnvoll sein, dieses Mehr an Strom irgendwie bereitzustellen und an einer anderen, weniger kritischen Stelle einzusparen.
-
Die Architektur kann in beliebiger Weise aus den Architekturparametern θ, α ermittelt werden, wie beispielsweise durch Einsetzen der Architekturparameter θ, α in einen deterministischen Algorithmus, der diese Architekturparameter θ, α dann beispielsweis auf Typen von Schichten des neuronalen Netzwerks abbilden, die an einer bestimmten Stelle einzusetzen sind. Die Architektur kann aber auch beispielsweise aus einer weiteren, durch die Architekturparameter θ, α charakterisierten Zufallsverteilung gezogen werden. Die Architektur kann auch beispielsweise durch Eingabe der Architekturparameter θ, α in einen Generator, der auf die Erzeugung von Architekturen trainiert ist (etwa im Verbund mit einem Diskriminator im Rahmen eines Generative Adversarial Network, GAN), generiert werden. Sowohl das Ziehen aus einer weiteren Zufallsverteilung als auch das Generieren bewirken, dass Architekturen mit einer größeren Variabilität untereinander untersucht werden. Es kann somit eine Exploration stattfinden, die einen größeren Anteil des möglichen Raumes an Architekturen abdeckt als etwa das Erzeugen von Abwandlungen um eine bestimmte Start-Architektur herum.
-
Hierbei kann insbesondere beispielsweise für jede ermittelte (also etwa gezogene oder generierte) Architektur zunächst geprüft werden, ob bei Nutzung dieser Architektur der Hardwareaufwand, und/oder der Energieverbrauch, mindestens eine vorgegebene Nebenbedingung erfüllt. In Antwort darauf, dass die Nebenbedingung nicht erfüllt ist, kann die ermittelte (also etwa gezogene oder generierte) Architektur verworfen werden. Auf diese Weise können bei der Exploration auch weite „Sprünge“ im Raum der Architekturen gemacht werden, ohne dass man sich durchgängig innerhalb einer wie auch immer geformten Mannigfaltigkeit bewegen muss, in der alle der Randbedingung genügenden Architekturen enthalten sind.
-
In einer weiteren vorteilhaften Ausgestaltung beinhaltet das Hardware-Gütemaß LHW mindestens einen Beitrag, der bei Annäherung des Hardwareaufwands, bzw. des Energieverbrauchs, an eine vorgegebene Grenze die Bewertung durch das Gütemaß LHW exponentiell verschlechtert. Auf diese Weise kann eine quantitative Randbedingung für den Hardwareaufwand, bzw. für den Energieverbrauch, in einer Weise in das Gütemaß LHW eingebracht werden, die differenzierbar ist. Damit können Gradienten des Gütemaßes LHW gebildet und durch das neuronale Netzwerk zurückpropagiert werden.
-
Wie zuvor erläutert, kann das zuvor beschriebene Verfahren insbesondere genutzt werden, um ausgehend von einem vorgegebenen Budget an Hardwareaufwand (etwa in Form von Rechenleistung und/oder Speicherplatz) und/oder Energieverbrauch die optimale Architektur für ein im Rahmen dieses Budgets zu realisierendes neuronales Netzwerk zu finden. Diese Aufgabe stellt sich häufig, wenn ein neuronales Netzwerk für einen bestimmten Zweck in ein Steuergerät und/oder Embedded-System zu integrieren ist. Die Erfindung bezieht sich auch auf ein Verfahren zur Herstellung eines Steuergeräts und/oder Embedded-Systems.
-
Bei diesem Verfahren wird ein mit dem zuvor beschriebenen Verfahren trainiertes neuronales Netzwerk bereitgestellt. Beispielsweise kann diejenige Entität, die das Steuergerät und/oder Embedded-System herstellt, auch das neuronale Netzwerk trainieren. Dies ist jedoch nicht zwingend erforderlich. Vielmehr kann dieses Training beispielsweise auch als Auftragsarbeit an eine andere Entität ausgelagert werden, die über die Rechenleistung und die Trainingsdaten verfügt.
-
Eine durch die optimierten Architekturparameter θ*, α* charakterisierte Architektur für das neuronale Netzwerk wird auf einer Hardwareplattform implementiert. Die Neuronen und/oder anderen Verarbeitungseinheiten des neuronalen Netzwerks werden mit den optimierten Neuronenparametern w* parametriert.
-
Das auf der Hardwareplattform implementierte neuronale Netzwerk wird in das Steuergerät und/oder Embedded-System integriert, so dass ihm mindestens eine durch das Steuergerät und/oder Embedded-System erfasste Messgröße zugeleitet wird. Mindestens ein vom Steuergerät und/oder Embedded-System ausgegebenes Ansteuersignal hängt dann von der Ausgabe ab, auf die das neuronale Netzwerk die mindestens eine Messgröße abbildet.
-
Im Endergebnis liefert das Steuergerät und/oder Embedded-System in Antwort auf die Messgröße, die eine Betriebssituation repräsentiert, ein Ansteuersignal, das besser zu dieser Betriebssituation passt als wenn kein neuronales Netzwerk oder ein nicht gemäß dem zuvor beschriebenen Verfahren trainiertes neuronales Netzwerk genutzt würde.
-
Dieser Vorteil kommt auch in einem weiteren Verfahren zum Tragen, das die Erfindung bereitstellt.
-
Bei diesem Verfahren wird ein wie zuvor beschrieben hergestelltes Steuergerät in ein Fahrzeug integriert. Dem Steuergerät wird mindestens eine Messgröße zugeführt, die mit mindestens einem von dem Fahrzeug mitgeführten Sensor erfasst wurde. Das Fahrzeug wird mit mindestens einem von dem Steuergerät ausgegebenen Ansteuersignal angesteuert.
-
Das neuronale Netzwerk, das in das Steuergerät integriert ist, bewirkt in diesem Kontext, dass das Fahrzeug in Antwort auf das Steuersignal eine Reaktion ausführt, die der durch die Messgröße repräsentierten Verkehrssituation mit einer höheren Wahrscheinlichkeit angemessen ist.
-
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, das beschriebenen Verfahren zum Trainieren des neuronalen Netzwerks 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 zum Trainieren des neuronalen Netzwerks 1;
- 2 Beispielhafte Auswahl zwischen mehreren möglichen Schichttypen 12a-12c für eine konkrete Schicht 12 in einem neuronalen Netzwerk 1;
- 3 Ausführungsbeispiel des Verfahrens 200 zur Herstellung eines Steuergeräts und/oder Embedded-Systems 4;
- 4 Ausführungsbeispiel des Verfahrens 300.
-
1 ist ein schematisches Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 100 zum Trainieren eines neuronalen Netzwerks 1.
-
In Schritt 110 werden die Architekturparameter θ, α, die die Architektur 1a des neuronalen Netzwerks 1a festlegen, initialisiert.
-
In Schritt 120 werden Trainingsdaten 2a bereitgestellt. Diese Trainingsdaten 2a können für ein überwachtes Training des neuronalen Netzwerks 1 mit Soll-Ausgaben, auf die das Netzwerk 1 diese Trainingsdaten 2a abbilden soll, gelabelt sein.
-
In Schritt 130 wird das neuronale Netzwerk 1 anhand der Architekturparameter θ, α aufgestellt. Das heißt, es wird anhand der Architekturparameter θ, α eine Architektur 1a des neuronalen Netzwerks 1 gebildet, die in Software, in Hardware, in der Programmierung eines programmierbaren Logikbausteins (etwa FPGA) oder in sonstiger Weise realisiert werden kann.
-
In Schritt 140 werden die Trainingsdaten 2a von dem neuronalen Netzwerk auf Ausgaben 3 abgebildet.
-
In Schritt 150 wird ein Ausgaben-Gütemaß L* ausgewertet, das die Ausgaben 3 im Hinblick auf die an das neuronale Netzwerk 1 gestellte Aufgabe bewertet. Wenn das Training ein überwachtes Training ist, können beispielsweise die Ausgaben 3 mit zu den Trainingsdaten 2a gehörenden Soll-Ausgaben verglichen werden.
-
In Schritt 160 wird ein Hardware-Gütemaß LHW ausgewertet, das den Hardwareaufwand, und/oder den Energieverbrauch, für das neuronale Netzwerk 1 in der Architektur 1a bewertet.
-
In Schritt 170 werden mindestens das Ausgaben-Gütemaß L* und das Hardware-Gütemaß LHW als gewichtete Beiträge in ein Gesamt-Gütemaß L eingebracht.
-
In Schritt 180 werden die Architekturparameter θ, α und die Neuronenparameter w mindestens auf die Ziele optimiert, dass
- • sich bei weiterer Verarbeitung von Trainingsdaten 2a durch das neuronale Netzwerk 1 das Ausgaben-Gütemaß L* verbessert, sowie zusätzlich
- • ein Hardwareaufwand für die Implementierung der durch die Architekturparameter θ, α charakterisierten Architektur auf einer Hardwareplattform, und/oder ein Energieverbrauch beim Betrieb des neuronalen Netzwerks auf dieser Hardwareplattform, vermindert wird, und/oder mindestens eine vorgegebene Nebenbedingung erfüllt.
-
Insbesondere kann hierfür gemäß Block 181 das Gesamt-Gütemaß L genutzt werden. Die Architekturparameter θ, α und die Neuronenparameter w können also auf das Ziel optimiert werden, dieses Gesamt-Gütemaß L zu verbessern. Die optimierten Architekturparameter θ, α und Neuronenparameter w sind mit den Bezugszeichen θ*, α* bzw. w* bezeichnet.
-
Zu diesem Zweck können gemäß Block 181a Gewichte λi der zum Gesamt-Gütemaß L zusammengeführten Gütemaße L*, LHW , Li als Samples aus einer Zufallsverteilung gezogen werden. Anhand der Architekturparameter θ, α kann dann gemäß Block 181b mindestens eine Architektur 1a ermittelt werden. Wie zuvor erläutert, kann dieser Architektur 1a beispielsweise aus einer weiteren Zufallsverteilung gezogen oder mit einem im Rahmen eines GAN trainierten Generators generiert werden.
-
Gemäß Block 181c kann für jede ermittelte Architektur 1a zunächst geprüft werden, ob bei Nutzung dieser Architektur der Hardwareaufwand, und/oder der Energieverbrauch, mindestens eine vorgegebene Nebenbedingung erfüllt. Wenn dies nicht der Fall ist (Wahrheitswert 0), kann gemäß Block 181d diese Architektur verworfen werden. Es kann dann zum Ermitteln neuer Gewichte λi oder zum Ermitteln einer neuen Architektur 1a zurückverzweigt werden.
-
Ist die Nebenbedingung für die Architektur 1a jedoch erfüllt (Wahrheitswert 1), können gemäß Block 181e für diese Architektur 1a anhand der Trainingsdaten 2a die Gütemaße L*, LHW , Li ausgewertet werden.
-
Gemäß Block 181f kann dann eine Aktualisierung der Neuronenparameter w ermittelt werden, die voraussichtlich zu einer Verbesserung des Ausgaben-Gütemaßes L* führt.
-
Gemäß Block 181g kann eine Aktualisierung der Architekturparameter θ, α ermittelt werden, die voraussichtlich zu einer Verbesserung des Hardware-Gütemaßes LHW führt.
-
2 zeigt beispielhaft, wie während des Trainings mehrere mögliche Alternativen für die Architektur 1a des neuronalen Netzwerks 1a geprüft werden können. In dem in 2 gezeigten Beispiel umfasst das neuronale Netzwerk 1 fünf Schichten 11-15. Der ersten Schicht 11 werden Messgrößen 2 als Eingabedaten zugeführt. Jede Schicht 11-14 gibt ihre jeweilige Ausgabe 11#-14# an die jeweils nachfolgende Schicht 12-15 weiter. Die Ausgabe 15# der letzten Schicht 15 ist zugleich die Ausgabe des neuronalen Netzwerks 1 als Ganzes.
-
In dem in 2 gezeigten Beispiel gibt es für die Schicht 12 drei Alternativen 12a-12c. Alternative 12a ist eine Faltungsschicht mit einem 3x3 Pixel großen Filterkern. Alternative 12b ist eine Faltungsschicht mit einem 5x5 Pixel großen Filterkern. Alternative 12c ist eine Poolingschicht, die jeweils Pixelwerte aus einem 3x3 Pixel großen Bereich zusammenfasst. Die Ausgabe 12# der Schicht 12 ist eine gewichtete Summe von Ausgaben 12a#-12c#, die die verschiedenen Alternativen 12a-12c jeweils liefern. Die Gewichte in dieser Summe sind durch die Architekturparameter θ, α festgelegt. Idealerweise kristallisiert sich während des Trainings eine der Alternativen 12a-12c als bevorzugt heraus.
-
3 ist ein schematisches Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 200 zur Herstellung eines Steuergeräts oder Embedded-Systems 4.
-
In Schritt 210 wird ein mit dem zuvor beschriebenen Verfahren 100 trainiertes neuronales Netzwerk 1 bereitgestellt. Wie zuvor erläutert, legt dieses Training optimierte Architekturparameter θ*, α* sowie optimierte Neuronenparameter w* fest.
-
In Schritt 220 wird eine durch die optimierten Architekturparameter θ*, α* charakterisierte Architektur 1a für das neuronale Netzwerk 1 auf einer Hardwareplattform 5 implementiert.
-
In Schritt 230 werden die Neuronen und/oder anderen Verarbeitungseinheiten des neuronalen Netzwerks 1 mit den optimierten Neuronenparametern w* parametriert.
-
In Schritt 240 wird das auf der Hardwareplattform 5 implementierte neuronale Netzwerk 1 in das Steuergerät und/oder Embedded-System 4 integriert. Das Netzwerk 1 mit der Architektur 1a und Neuronenparametern w* wirkt also auf der Hardwareplattform 5 im Kontext des Steuergeräts und/oder Embedded-Systems 4. Dem Netzwerk 1 wird mindestens eine durch das Steuergerät und/oder Embedded-System 4 erfasste Messgröße 2 zugeleitet. Mindestens ein vom Steuergerät und/oder Embedded-System ausgegebenes Ansteuersignal 6 hängt von der Ausgabe 3 ab, auf die das neuronale Netzwerk 1 die mindestens eine Messgröße 2 abbildet.
-
4 ist ein schematisches Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 300 zur Herstellung eines Steuergeräts und/oder Embedded-Systems 4.
-
In Schritt 310 wird ein mit dem zuvor beschriebenen Verfahren 200 hergestelltes Steuergerät 4 in ein Fahrzeug 50 integriert.
-
In Schritt 320 wird dem Steuergerät 4 mindestens eine Messgröße 2 zugeführt, die mit mindestens einem von dem Fahrzeug 50 mitgeführten Sensor 51 erfasst wurde.
-
In Schritt 330 wird das Fahrzeug 50 mit mindestens einem von dem Steuergerät 4 ausgegebenen Ansteuersignal 6 angesteuert.
-
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 102019202816 A1 [0003]