DE102016216944A1 - Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit vereinfachter Aktivierungsfunktion - Google Patents

Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit vereinfachter Aktivierungsfunktion Download PDF

Info

Publication number
DE102016216944A1
DE102016216944A1 DE102016216944.0A DE102016216944A DE102016216944A1 DE 102016216944 A1 DE102016216944 A1 DE 102016216944A1 DE 102016216944 A DE102016216944 A DE 102016216944A DE 102016216944 A1 DE102016216944 A1 DE 102016216944A1
Authority
DE
Germany
Prior art keywords
function
neuron
value
simplified
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102016216944.0A
Other languages
English (en)
Inventor
Andre GUNTORO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102016216944.0A priority Critical patent/DE102016216944A1/de
Priority to PCT/EP2017/072042 priority patent/WO2018046415A1/de
Priority to JP2019533671A priority patent/JP2019530113A/ja
Priority to CN201780054626.2A priority patent/CN109643392A/zh
Priority to US16/328,791 priority patent/US11216721B2/en
Publication of DE102016216944A1 publication Critical patent/DE102016216944A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4824Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices using signed-digit representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Feedback Control In General (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einem in Hardware ausgebildeten fest verdrahteten Rechenkern (11, 13, 14) zur Berechnung eines fest vorgegebenen Rechenalgorithmus in gekoppelten Funktionsblöcken, wobei ein Neuron (20) einer Neuronenschicht des Perzeptronenmodells mithilfe einer Aktivierungsfunktion berechnet wird, wobei die Aktivierungsfunktion eine vereinfachte Sigmoidfunktion und eine vereinfachte tanh-Funktion entspricht, wobei die Aktivierungsfunktion durch Null-Punkt-Spiegelung des negativen Definitionsbereichs der Exponentialfunktion gebildet wird.

Description

  • Technisches Gebiet
  • Die Erfindung betrifft die Berechnung von Funktionsmodellen in einer separaten hartverdrahteten Modellberechnungseinheit, insbesondere zur Berechnung von mehrschichtigen Perzeptronenmodellen.
  • Technischer Hintergrund
  • Funktionen von Steuerungen von technischen Systemen, wie z.B. Verbrennungsmotoren, Elektroantrieben, Batteriespeicher und dergleichen, werden häufig mit Modellen realisiert, die ein mathematisches Abbild des realen Systems darstellen. Jedoch mangelt es bei physikalischen Modellen, insbesondere bei komplexen Zusammenhängen, an der erforderlichen Berechnungsgenauigkeit, und es ist bei heutigen Rechenkapazitäten in der Regel schwierig, derartige Modelle innerhalb der für ein Steuergerät geforderten Echtzeitanforderungen zu berechnen. Für solche Fälle ist angedacht, datenbasierte Modelle zu verwenden, die Zusammenhänge zwischen einer Ausgangsgröße und Eingangsgrößen ausschließlich auf der Basis von mit Hilfe eines Prüfstands oder dergleichen erhaltenen Trainingsdaten beschreiben. Insbesondere eignen sich datenbasierte Modelle zum Modellieren von komplexen Zusammenhängen, bei denen mehrere Eingangsgrößen, zwischen denen Wechselbeziehungen bestehen, in geeigneter Weise in dem Modell berücksichtigt werden. Zudem bietet die Modellierung mit Hilfe von datenbasierten Modellen die Möglichkeit, das Modell durch Hinzufügen von einzelnen Eingangsgrößen zu ergänzen.
  • Datenbasierte Funktionsmodelle basieren in der Regel auf einer großen Anzahl von Stützstellen, um eine für die jeweilige Anwendung ausreichende Modellierungsgenauigkeit zu erreichen. Aufgrund der hohen Anzahl der Stützstellen wird zur Berechnung eines Modellwertes mit einem datenbasierten Funktionsmodell, wie beispielsweise einem Gauß-Prozess-Modell oder einem mehrschichtigen Perzeptronenmodell, eine hohe Rechenkapazität benötigt. Um ein derartiges datenbasiertes Funktionsmodell in einer Steuergeräteanwendung in Echtzeit berechnen zu können, können daher auf einer Hardwareausgestaltung basierende Modellberechnungseinheiten vorgesehen sein.
  • Offenbarung der Erfindung
  • Erfindungsgemäß sind ein Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einem in Hardware ausgebildeten fest verdrahteten Rechenkern zur Berechnung eines fest vorgegebenen Rechenalgorithmus in gekoppelten Funktionsblöcken gemäß Anspruch 1 sowie eine Modellberechnungseinheit, ein Steuergerät und eine Verwendung des Steuergeräts gemäß den nebengeordneten Ansprüchen vorgesehen.
  • Weitere Ausgestaltungen sind in den abhängigen Ansprüchen angegeben.
  • Gemäß einem ersten Aspekt ist ein Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einem in Hardware ausgebildeten fest verdrahteten Rechenkern zur Berechnung eines fest vorgegebenen Rechenalgorithmus in gekoppelten Funktionsblöcken vorgesehen, wobei ein Neuron einer Neuronenschicht des Perzeptronenmodells mithilfe einer Aktivierungsfunktion berechnet wird, wobei die Aktivierungsfunktion eine vereinfachte Sigmoidfunktion und/oder eine vereinfachte tanh-Funktion aufweist, wobei die vereinfachte Sigmoidfunktion und tanh-Funktion durch Null-Punkt-Spiegelung des negativen Definitionsbereichs einer Exponentialfunktion gebildet wird.
  • Eine Idee des obigen Verfahrens besteht darin, eine Berechnungsvorschrift zur Berechnung einer Vereinfachung der Sigmoidfunktion oder der tanh-Funktion als gesamte oder als Teil einer Aktivierungsfunktion in einer hardwarebasierten Berechnungseinheit zur Verfügung zu stellen. Die Berechnungsvorschrift soll insbesondere lediglich die Exponentialfunktion als spezielle Funktion nutzen und ansonsten nur Multiplikationen und Additionen verwenden, um eine zeit- und ressourcenaufwändige Berechnung einer Division zu vermeiden. Dies ermöglicht es ohne das Vorsehen zusätzlich Operationsblöcke eine zur Berechnung eines mehrschichtigen Perzeptronenmodells geeignete Hardware-Berechnungseinheit zu nutzen. Um dies zu erreichen kann die Sigmoidfunktion oder die tanh-Funktion unter Nutzung der Null-Punkt-Spiegelung des negativen Definitionsbereichs der Exponentialfunktion und unter Nutzung von einfach auszulesenden Vorzeichenbits des mit der Aktivierungsfunktion zu beaufschlagenden Werts berechnet werden.
  • Weiterhin kann eine Neuronenschicht des Perzeptronenmodells mit einer Anzahl von Neuronen abhängig von einer oder mehreren Eingangsgrößen eines Eingangsgrößenvektors, von einer Gewichtungsmatrix mit Gewichtungsfaktoren und einen für jedes Neuron vorgegebenen Offsetwert eine Ausgangsgröße für jedes Neuron berechnet werden, wobei für jedes Neuron eine Summe der mit einem durch das Neuron und die Eingangsgröße bestimmten Gewichtungsfaktor gewichteten Werte der Eingangsgrößen mit dem dem Neuron vorgegebenen Offsetwert beaufschlagt, insbesondere addiert, wird und das Ergebnis mit der Aktivierungsfunktion transformiert wird, um die Ausgangsgröße für das Neuron zu erhalten.
  • Es kann vorgesehen sein, die vereinfachte Sigmoidfunktion oder die vereinfachte tanh-Funktion entsprechend einer Variablen als Aktivierungsfunktion auszuwählen.
  • Es kann vorgesehen sein, dass ein Funktionswert der vereinfachten Sigmoidfunktion für einen Wert berechnet wird, indem eine Exponentialfunktion basierend auf einem negativen Betrag des Werts berechnet wird, wobei der Funktionswert bei einem positiven Vorzeichen des Werts als eine Summe aus „1“ und dem Produkt aus „–0,5“ und dem Resultat der Exponentialfunktion und bei einem negativem Vorzeichen als das Produkt aus „0,5“ und dem Resultat der Exponentialfunktion berechnet wird. Auf diese Weise wird das Resultat der Exponentialfunktion mit 0,5 multipliziert und mit dem Ergebnis einer Schrittfunktion beaufschlagt
  • Alternativ kann ein Funktionswert der vereinfachten tanh-Funktion für einen Wert berechnet werden, indem eine Exponentialfunktion basierend auf einem negativen Betrag des Werts berechnet wird, wobei der Funktionswert bei einem positiven Vorzeichen des Werts als eine Summe aus „1“ und dem negativen Resultat der Exponentialfunktion und bei einem negativen Vorzeichen des Werts als eine Summe aus „–1“ und dem Resultat der Exponentialfunktion berechnet wird. Auf diese Weise wird die vereinfachte tanh-Funktion durch Null-Punkt-Spiegelung des negativen Definitionsbereichs der Exponentialfunktion und anschließender Beaufschlagung mit einer Vorzeichenfunktion definiert.
  • Gemäß einem weiteren Aspekt ist eine Modellberechnungseinheit zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einem in Hardware ausgebildeten fest verdrahteten Rechenkern zur Berechnung eines fest vorgegebenen Rechenalgorithmus in gekoppelten Funktionsblöcken vorgesehen, wobei der Rechenkern ausgebildet ist, um für eine Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einer Anzahl von Neuronen abhängig von einer oder mehreren Eingangsgrößen eines Eingangsgrößenvektors, von einer Gewichtungsmatrix mit Gewichtungsfaktoren und einen für jedes Neuron vorgegebenen Offsetwert eine Ausgangsgröße für jedes Neuron zu berechnen, wobei für jedes Neuron eine Summe der mit einem durch das Neuron und die Eingangsgröße bestimmten Gewichtungsfaktor gewichteten Werte der Eingangsgrößen und dem dem Neuron vorgegebenen Offsetwert berechnet wird und das Ergebnis mit einer Aktivierungsfunktion transformiert wird, um die Ausgangsgröße für das Neuron zu erhalten, wobei die Aktivierungsfunktion eine vereinfachte Sigmoidfunktion oder eine vereinfachte tanh-Funktion aufweist und unter Nutzung einer Null-Punkt-Spiegelung des negativen Definitionsbereichs der Exponentialfunktion beaufschlagt um das Ergebnis einer Schritt- oder Vorzeichenfunktion berechnet wird.
  • Weiterhin kann der Rechenkern eine Zustandsmaschine, einen Speicher zum Speichern der einen oder mehreren Eingangsgrößen des Eingangsgrößenvektors, der Gewichtungsmatrix, der für jedes Neuron vorgegebenen Offsetwerten und der Ausgangsgrößen für jedes Neuron, einen oder mehrere Rechenoperationsblöcke, insbesondere einem MAC-Block und einem Aktivierungsfunktions-Berechnungsblock, umfassen.
  • Weiterhin kann der Rechenkern in einem Flächenbereich eines integrierten Bausteins ausgebildet sein.
  • Gemäß einem weiteren Aspekt ist ein Steuergerät mit einem Mikroprozessor und der obigen Modellberechnungseinheit vorgesehen. Insbesondere kann das Steuergerät als eine integrierte Schaltung ausgebildet sein.
  • Gemäß einem weiteren Aspekt ist eine Verwendung des obigen Steuergeräts als ein Steuergerät zur Steuerung eines Motorsystems in einem Kraftfahrzeug vorgesehen.
  • Kurzbeschreibung der Zeichnungen
  • Ausführungsformen werden nachfolgend anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
  • 1 eine schematische Darstellung eines Steuergeräts zum Einsatz für ein Motorsystem in einem Kraftfahrzeugs;
  • 2 eine schematische Darstellung einer Modellberechnungseinheit als Teil des Steuergeräts;
  • 3 eine schematische Darstellung einer Neuronenschicht eines MLP-Modells;
  • 4a4d Darstellungen von möglichen Aktivierungsfunktionen;
  • 5 eine Veranschaulichung des Rechenablaufs zur Berechnung der vereinfachten Sigmoidfunktion;
  • 6 eine grafische Darstellung der einzelnen Funktionskomponenten zur Berechnung der vereinfachten Sigmoidfunktion;
  • 7 eine Veranschaulichung des Rechenablaufs zur Berechnung der vereinfachten tanh-Funktion; und
  • 8 eine grafische Darstellung der einzelnen Funktionskomponenten zur Berechnung der vereinfachten tanh-Funktion.
  • Beschreibung von Ausführungsformen
  • 1 zeigt beispielhaft eine schematische Darstellung eines Steuergeräts 2 für ein Motorsystem 1 mit einem Verbrennungsmotor 3 als ein zu steuerndes technisches System. Das Steuergerät 2 umfasst einen Mikroprozessor 21 und eine Modellberechnungseinheit 22, die als separate Bauteile oder in integrierter Weise in separaten Flächenbereichen auf einem Chip ausgebildet sein können. Insbesondere stellt die Modellberechnungseinheit 22 eine Hardwareschaltung dar, die strukturell von einem Rechenkern des Mikroprozessors 21 getrennt sein kann.
  • Die Modellberechnungseinheit 22 ist im Wesentlichen hartverdrahtet und dementsprechend nicht wie der Mikroprozessor 21 dazu ausgebildet, einen Softwarecode auszuführen und dadurch eine variable durch Software vorgegebene Funktion auszuführen. Mit anderen Worten ist in der Modellberechnungseinheit 22 kein Prozessor vorgesehen, so dass diese nicht durch einen Softwarecode betreibbar ist. Durch die Fokussierung auf eine vorgegebene Modellfunktion wird eine ressourcenoptimierte Realisierung einer solchen Modellberechnungseinheit 22 ermöglicht. In integrierter Aufbauweise kann die Modellberechnungseinheit 22 flächenoptimiert realisiert werden, die zudem schnelle Berechnungen ermöglicht.
  • Das Steuergerät 2 dient im Wesentlichen dazu, Sensorsignale S bzw. Sensorgrößen, die von einer Sensorik in dem Verbrennungsmotor 3 erfasst werden, und/oder externe Vorgaben V zu verarbeiten und zyklisch in fest vorgegebenen Zeitabständen, d.h. periodisch innerhalb einer Zykluszeit von beispielsweise zwischen 1ms und 100ms Werte, oder winkelsynchron (synchron zur Stellung einer Kurbelwelle) in Abhängigkeit zu einem Kurbelwellenwinkel eines betriebenen Verbrennungsmotors von einer oder mehreren entsprechenden Ansteuergrößen A an den Verbrennungsmotor 3 anzulegen, so dass dieser in an sich bekannter Weise betreibbar ist.
  • In 2 ist eine Modellberechnungseinheit 22 ausführlicher dargestellt. Die Modellberechnungseinheit 22 umfasst eine Zustandsmaschine 11, einen Speicher 12 und einen oder mehrere Operationsblöcke, die beispielsweise einen oder mehrere MAC-Blöcke 13 (MAC: Multiply-ACcumulate, für Festkomma- oder Gleitkomma-Berechnung) und einen Aktivierungsfunktion-Berechnungsblock 14 zur Berechnung einer Aktivierungsfunktion. Die Zustandsmaschine 11 und der eine oder die mehreren Operationsblöcke 13, 14 bilden einen Rechenkern ALU der Modellberechnungseinheit 22. Die Operationsblöcke können zusätzlich oder alternativ zu dem MAC-Block einen Multiplizierblock und einen Additionsblock umfassen.
  • Mit Hilfe der Zustandsmaschine 11 können in einem Eingangsgrößenspeicherbereich dem Speicher 12 abgelegte Werte von Eingangsgrößen durch wiederholte Schleifenberechnungen verrechnet werden, um Zwischengrößen bzw. Ausgangsgrößen zu erhalten, die in einen entsprechenden Ausgangsgrößenspeicherbereich des Speichers 12 geschrieben werden.
  • Die Zustandsmaschine 11 ist so ausgelegt, um eine einzelne Neuronenschicht eines mehrschichtigen Perzeptronenmodells zu berechnen. Die Zustandsmaschine 11 kann anhand des nachfolgenden Pseudocodes beschrieben werden:
    Figure DE102016216944A1_0002
  • Mit
  • p7:
    Anzahl der Eingangsgrößen des Eingangsgrößenvektors als Indexwert
    p8:
    minimaler Indexwert bzw. vorgegebener Startindex für die Anzahl der Neuronen
    p6:
    Anzahl der Neuronen als Indexwert
    p3:
    Offsetwert
    p1, p2:
    Variablen für die Eingangstransformation
    p4, p5:
    Variablen für die Ausgangstransformation
  • Mit Hilfe des obigen Pseudocodes lässt sich folgende Berechnung für jedes Neuron der zu berechnenden Neuronenschicht durchführen: y[j] = act(p3[j] + ∑ p7-1 / k=0vj,k·ut[k]) für j = 0...p6 – 1
  • Dieses stellt eine Berechnung für eine Neuronenschicht eines mehrschichtigen Perzeptronenmodells dar, wie es in 3 dargestellt ist.
  • 3 zeigt eine Neuronenschicht von mehreren Neuronen 20, denen Werte von Eingangsgrößen eines Eingangsgrößenvektors ut0...utp6-1 zugeführt werden. Die Werte der Eingangsgrößen werden mit Hilfe einer entsprechenden vorgegebenen Gewichtungsmatrix aus Gewichtungsfaktoren v0...p7-1,0...p6-1 gewichtet. Die Gewichtung erfolgt in der Regel durch multiplikatives Beaufschlagen mit den zugeordneten Gewichtungsfaktoren v0...p7-1,0...p6-1, kann jedoch auch in anderer Weise die Werte des Eingangsgrößenvektors beaufschlagen.
  • Das Ergebnis der Summe der gewichteten Werte des Eingangsgrößenvektors ut0...utp6-1 wird mit einem Offsetwert O0...Op6-1 beaufschlagt, insbesondere additiv beaufschlagt. Das Ergebnis wird mit einer vorgegebenen Aktivierungsfunktion „act“ transformiert. Als Ergebnis erhält man einen entsprechenden Wert eines Ausgangsgrößenvektors y0...yp6-1. Durch das Vorsehen des Offsetwerts O0...Op6-1 für jedes Neuron 20 besteht ein weiterer Freiheitsgrad für die Modellbildung.
  • Durch Festlegen der Laufvariablen p6 kann die Anzahl der Neuronen 20 der zu berechnenden Neuronenschicht eingestellt werden. Ein mehrschichtiges Perzeptronenmodell kann durch Verwenden der Werte des Ausgangsgrößenvektors y0...yp6-1 einer Neuronenschicht als Eingangsgrößenvektor für eine Berechnung einer nachfolgenden Neuronenschicht in der Modellberechnungseinheit 22 verwendet werden, so dass die Anzahl der Neuronenschichten des mehrschichtigen Perzeptronenmodells durch wiederholtes Aufrufen der Funktion gemäß dem obigen Pseudocode bzw. durch wiederholtes Aufrufen der Modellberechnungseinheit 22 realisiert werden kann.
  • Es kann eine Eingangs- und/oder Ausgangstransformation der Eingangsgrößen des Eingangsgrößenvektors bzw. der Ausgangsgrößen des Ausgangsgrößenvektors mithilfe der für jedes Neuron 20 vorgegebenen Normierungsvariablen p1 und p2 bzw. p4 und p5 vorgenommen werden.
  • Die schichtweise Berechnung des MLP-Modells ermöglicht eine schlanke Ausgestaltung der Modellberechnungseinheit 22, so dass deren Flächenbedarf in integrierter Bauweise gering ist. Trotzdem ermöglicht die Modellberechnungseinheit 22 eine Berechnung eines mehrschichtigen Perzeptronenmodells in einfacher Weise durch Rückführung oder Umdefinition der Werte der Ausgangsgrößen des Ausgangsgrößenvektors als Eingangsgrößen eines Eingangsgrößenvektors für die Berechnung einer weiteren Neuronenschicht.
  • Als Aktivierungsfunktion „act“ kann eine von mehreren Aktivierungsfunktionen zur Verfügung gestellt werden, die durch den Aktivierungsfunktion-Berechnungsblock 14 der Modellberechnungseinheit 22 berechnet werden kann. Als Aktivierungsfunktionen können beispielsweise eine Knickfunktion, eine Tangens-Hyberbolicus-Funktion, eine Sigmoidfunktion oder eine lineare Funktion verwendet werden, wie sie in den 4a bis 4d entsprechend dargestellt sind. Mit cfg_activation_function = 0...3 kann die Art der oben beschriebenen Aktivierungsfunktionen ausgewählt werden.
  • Die Berechnung einer Sigmoidfunktion für das Perzeptronenmodell kann beispielsweise durch den Variablenwert cfg_activation_function = 2 angezeigt werden. Die Sigmoidfunktion ist definiert als y = 1 / 1 + exp(–x)
  • Eine solche Berechnung führt aufgrund der enthaltenen Exponentialfunktion und der Division zu einem erheblichen Berechnungsaufwand, insbesondere da dieser in einer Schleifenberechnung vielfach stattfindet. Um die Division zu vermeiden, kann bei der Berechnung einer vereinfachten Sigmoidfunktion der negative Bereich der Exponentialfunktion gespiegelt werden, um einen vollständigen Lösungsbereich für die Sigmoidfunktion bereitzustellen. Dies ermöglicht es, auf die Division zu verzichten und lediglich die Exponentialfunktion für negative Funktionswerte zu verwenden. Durch diese Näherung der Sigmoidfunktion ist es möglich, die Berechnung in einfacher Weise auszuführen.
  • Die vereinfachte Sigmoidfunktion kann beispielsweise durch folgenden Pseudocode ausgeführt werden. In diesem Pseudocode ist vorgesehen, dass ein Vorzeichen des Eingangswerts x, auf den die Sigmoidfunktion angewendet werden soll, ermittelt wird. Dies stellt eine einfache Operation dar, und im Gleitkommaformat kann das Vorzeichenbit hierfür verwendet werden.
    Figure DE102016216944A1_0003
    wobei sgn(x) = –1 für x < 0 und sgn(x) = +1 für x ≥ 0. Insbesondere entspricht bei einer Floating-Point-Darstellung (MSB = Vorzeichenbit, dann Exponentenbits und Mantissenbits) ein Vorzeichenbit von 0 einem positiven Wert und 1 einem negativen Wert, so dass dieses Vorzeichenbit direkt als y3 bzw. als Steuerbit für den Multiplexer benutzt (siehe 5) werden kann.
  • Der Rechenablauf ist grafisch in 5 veranschaulicht.
  • Um nur den Funktionswertebereich der Exponentialfunktion für negative Argumente zu verwenden, wird ein Betrag des Arguments der Exponentialfunktion gebildet und dieser anschließend negiert.
  • Als Nächstes wird das Vorzeichen des Eingangswertes invers auf das Ergebnis der Exponentialfunktion angewendet, um die Null-Punkt-Spiegelung zu vervollständigen. Am einfachsten kann dies durchgeführt werden, in dem das Vorzeichen s des Eingangswertes x (0 für x ≥ 0 und 1 für x < 0) und das Vorzeichen des Ergebnisses der Exponentialfunktion bitweise durch exklusiv-ODER-Operation berechnet wird. Da das Ergebnis der Exponentialfunktion immer positiv ist bzw. ihres Vorzeichen immer 0 ist, kann diese Operation durch einfache Negation des Vorzeichen s durchgeführt werden.
  • Das Ergebnis der Null-Punkt-Spiegelung wird mit einem konstanten Wert von 0,5 multipliziert und anschließend mit der Schrittfunktion (0 wenn negativ, ansonsten 1) beaufschlagt.
  • Alternativ kann die Vorzeichenmanipulation des Ergebnisses der Exponentialfunktion durch Vorgeben eines von der Vorzeicheninformation s des Eingangswertes abhängigen Faktors von –0,5 bzw. +0,5 ersetzt werden, so dass auf die Vorzeichenänderung des Ergebnisses der Exponentialfunktion verzichtet werden kann. Das Ergebnis der Exponentialfunktion wird dann mit dem Faktor multipliziert und anschließend mit der Schrittfunktion aufaddiert.
  • Alternativ kann die Vorzeichenmanipulation durch Operationsauswahl des MAC-Blocks ersetzt werden, in dem abhängig von Vorzeichen s, eine Addition (a + b·c) oder eine Subtraktion (a – b·c) durchgeführt wird.
  • In dem obigen Pseudocode wird zu Beginn der Eingangswert x mit einem konstanten Wert von log(2) multipliziert. Die Konstante log(2) kann in die Eingangswerte während der Modell-Trainingsphase integriert werden, um die Sigmoidfunktion in einfacher Weise möglichst zum gleichen Ausgangswert zu bringen wie die originale Sigmoidfunktion. Damit kann die Multiplikation mit der Konstante log(2) entfallen. Alternativ kann die Multiplikation mit Konstante log(2) beibehalten werden, um die Skalierung während der Modell-Trainingsphase zu vermeiden.
  • In 6 sind die einzelnen Komponenten zur Berechnung der vereinfachten Sigmoidfunktion graphisch dargestellt, wobei e der Funktion g(x) entspricht. Man erkennt die Näherung der Sigmoidfunktion gemäß dem obigen Pseudocode an dem tatsächlichen Verlauf der Sigmoidfunktion. Es wurde festgestellt, dass bei Verwendung der beschleunigten Berechnung der Sigmoidfunktion für ein Perzeptronenmodell keine feststellbaren Ungenauigkeiten des Perzeptronenmodells hervorrufen.
  • Das Perzeptronenmodell kann auch mit einer tanh-Funktion im Fall von cfg_activation_function = 3 beispielsweise berechnet werden.
  • Die tanh-Funktion entspricht mathematisch y = 1 – 2 / 1 + exp(2x)
  • In vergleichbarer Weise kann eine vereinfachte tanh-Funktion entsprechend nachfolgendem Pseudocode berechnet werden.
    Figure DE102016216944A1_0004
  • Auch diese Funktion wird in ähnlicher Weise wie die obige vereinfachte Sigmoidfunktion berechnet, wobei der Multiplikationsfaktor der abschließenden Multiplikations- und Additionsfunktion statt „0,5“ „1“ beträgt. Der Rechenablauf ist grafisch in 7 veranschaulicht.
  • In diesem Fall kann man den MAC-Block durch einen reinen Additionsblock ersetzen. Alternativ, kann man, ähnlich wie bei der zuvor beschriebenen Sigmoidfunktion, auf die Zuweisung des Vorzeichens verzichten, und für die Multiplikation –1 und +1 verwenden oder auch durch eine Operationsauswahl des MAC-Blocks ersetzen.
  • Der Verlauf der tanh-Funktion sowie der im Pseudocode angegebenen Funktionskomponenten und der vereinfachten tanh-Funktion sind in 8 dargestellt, wobei e der Funktion g(x) entspricht.
  • In dem obigen Pseudocode wird zu Beginn der Eingangswert x mit einem konstanten Wert von 1/log(2) multipliziert. Die Konstante 1/log(2) kann für die Eingangswerte während der Modell-Trainingsphase integriert werden, um die tanh-funktion in einfacher Weise möglichst zum gleichen Ausgangswert zu bringen wie die originale tanh-funktion. Damit ist die Multiplikation mit der Konstante 1/log(2) nicht mehr nötig. Alternativ kann die Multiplikation mit Konstante 1/log(2) beibehalten werden, um eine Skalierung während der Modell-Trainingsphase zu vermeiden.
  • Die Verwendung der angenäherten Aktivierungsfunktion ist für die Verwendung in Perzeptronenmodellen möglich, ohne die Modellierungsgenauigkeit zu beeinträchtigen. Weiterhin stellt die oben beschriebene Berechnung der Aktivierungsfunktion eine erhebliche Beschleunigung gegenüber der sonst üblichen Berechnung der Funktionswerte der Sigmoid- oder tanh-Funktionen dar. Dies gelingt insbesondere dadurch, dass eine aufwändige Division vermieden werden kann.

Claims (12)

  1. Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einem in Hardware ausgebildeten fest verdrahteten Rechenkern (11, 13, 14) zur Berechnung eines fest vorgegebenen Rechenalgorithmus in gekoppelten Funktionsblöcken, wobei ein Neuron (20) einer Neuronenschicht des Perzeptronenmodells mithilfe einer Aktivierungsfunktion berechnet wird, wobei die Aktivierungsfunktion eine vereinfachte Sigmoidfunktion und eine vereinfachte tanh-Funktion entspricht, wobei die Aktivierungsfunktion durch Null-Punkt-Spiegelung des negativen Definitionsbereichs der Exponentialfunktion gebildet wird.
  2. Verfahren nach Anspruch 1, wobei eine Neuronenschicht des Perzeptronenmodells mit einer Anzahl von Neuronen (20) abhängig von einer oder mehreren Eingangsgrößen eines Eingangsgrößenvektors, von einer Gewichtungsmatrix mit Gewichtungsfaktoren (vj,k) und einen für jedes Neuron (20) vorgegebenen Offsetwert eine Ausgangsgröße für jedes Neuron (20) berechnet wird, wobei für jedes Neuron (20) eine Summe der mit einem durch das Neuron (20) und die Eingangsgröße bestimmten Gewichtungsfaktor (vj,k) gewichteten Werte der Eingangsgrößen mit dem dem Neuron (20) vorgegebenen Offsetwert (O0...Op6-1, p3[j]) beaufschlagt wird und das Ergebnis mit der Aktivierungsfunktion transformiert wird, um die Ausgangsgröße für das Neuron (20) zu erhalten.
  3. Verfahren nach Anspruch 1 oder 2, wobei die vereinfachte Sigmoidfunktion oder die vereinfachte tanh-Funktion entsprechend einer Variablen als Aktivierungsfunktion ausgewählt werden.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei ein Funktionswert der vereinfachen Sigmoidfunktion für einen Wert berechnet wird, indem eine Exponentialfunktion basierend auf einem negativen Betrag des Werts berechnet wird, wobei der Funktionswert bei einem positiven Vorzeichen des Werts als eine Summe aus „1“ und dem Produkt aus „–0,5“ und dem Resultat der Exponentialfunktion und bei einem negativem Vorzeichen als das Produkt aus „0,5“ und dem Resultat der Exponentialfunktion berechnet wird.
  5. Verfahren nach einem der Ansprüche 1 bis 3, wobei ein Funktionswert der vereinfachten tanh-Funktion für einen Wert berechnet wird, indem eine Exponentialfunktion basierend auf einem negativen Betrag des Werts berechnet wird, wobei der Funktionswert bei einem positiven Vorzeichen des Werts als eine Summe aus „1“ und dem negativen Resultat der Exponentialfunktion und bei einem negativen Vorzeichen des Werts als eine Summe aus „–1“ und dem Resultat der Exponentialfunktion berechnet wird.
  6. Verfahren nach einem der Ansprüche 4 bis 5, wobei das Vorzeichen des Werts durch Auslesen eines Vorzeichenbits des Werts ermittelt wird oder als +1 für positive Werte und –1 für negative Werte ermittelt wird.
  7. Modellberechnungseinheit (22) zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einem in Hardware ausgebildeten fest verdrahteten Rechenkern (11, 13, 14) zur Berechnung eines fest vorgegebenen Rechenalgorithmus in gekoppelten Funktionsblöcken, wobei der Rechenkern (11, 13, 14) ausgebildet ist, um für eine Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit einer Anzahl von Neuronen (20) abhängig von einer oder mehreren Eingangsgrößen eines Eingangsgrößenvektors, von einer Gewichtungsmatrix mit Gewichtungsfaktoren (vj,k) und einen für jedes Neuron (20) vorgegebenen Offsetwert (O0...Op6-1, p3[j]) eine Ausgangsgröße für jedes Neuron (20) zu berechnen, wobei für jedes Neuron (20) eine Summe der mit einem durch das Neuron (20) und die Eingangsgröße bestimmten Gewichtungsfaktor gewichteten Werte der Eingangsgrößen und dem dem Neuron (20) vorgegebenen Offsetwert (O0...Op6-1, p3[j]) berechnet wird und das Ergebnis mit einer Aktivierungsfunktion transformiert wird, um die Ausgangsgröße für das Neuron (20) zu erhalten, wobei die Aktivierungsfunktion eine vereinfachte Sigmoidfunktion oder eine vereinfachte tanh-Funktion umfasst, wobei die Aktivierungsfunktion durch Null-Punkt-Spiegelung des negativen Definitionsbereichs der Exponentialfunktion gebildet wird.
  8. Modellberechnungseinheit (22) nach Anspruch 7, wobei der Rechenkern (11, 13, 14) eine Zustandsmaschine (11) und einen oder mehrere Rechenoperationsblöcke (13, 14), insbesondere einem MAC-Block und einem Aktivierungsfunktions-Berechnungsblock, umfasst und insbesondere einen Speicher (12) zum Speichern der einen oder mehreren Eingangsgrößen des Eingangsgrößenvektors, der Gewichtungsmatrix, der für jedes Neuron (20) vorgegebenen Offsetwerten (O0...Op6-1, p3[j]) und der Ausgangsgrößen für jedes Neuron (20) umfasst.
  9. Modellberechnungseinheit (22) nach einem der Ansprüche 7 bis 8, wobei der Rechenkern (11, 13, 14) in einem Flächenbereich eines integrierten Bausteins ausgebildet ist.
  10. Steuergerät (2) mit einem Mikroprozessor (21) und einer oder mehreren Modellberechnungseinheiten (22) nach einem der Ansprüche 7 bis 9.
  11. Steuergerät (2) nach Anspruch 10, wobei das Steuergerät (2) als eine integrierte Schaltung ausgebildet ist.
  12. Verwendung des Steuergeräts (2) nach Anspruch 10 oder 11 als ein Steuergerät (2) zur Steuerung eines Motorsystems (1) in einem Kraftfahrzeug.
DE102016216944.0A 2016-09-07 2016-09-07 Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit vereinfachter Aktivierungsfunktion Pending DE102016216944A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102016216944.0A DE102016216944A1 (de) 2016-09-07 2016-09-07 Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit vereinfachter Aktivierungsfunktion
PCT/EP2017/072042 WO2018046415A1 (de) 2016-09-07 2017-09-04 Verfahren zur berechnung einer neuronenschicht eines mehrschichtigen perzeptronenmodells mit vereinfachter aktivierungsfunktion
JP2019533671A JP2019530113A (ja) 2016-09-07 2017-09-04 簡略化された活性化関数によって多層パーセプトロンモデルのニューロン層を計算する方法
CN201780054626.2A CN109643392A (zh) 2016-09-07 2017-09-04 利用简化的激活函数计算多层感知器模型的神经元层的方法
US16/328,791 US11216721B2 (en) 2016-09-07 2017-09-04 Method for calculating a neuron layer of a multi-layer perceptron model with simplified activation function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016216944.0A DE102016216944A1 (de) 2016-09-07 2016-09-07 Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit vereinfachter Aktivierungsfunktion

Publications (1)

Publication Number Publication Date
DE102016216944A1 true DE102016216944A1 (de) 2018-03-08

Family

ID=59930317

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016216944.0A Pending DE102016216944A1 (de) 2016-09-07 2016-09-07 Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit vereinfachter Aktivierungsfunktion

Country Status (5)

Country Link
US (1) US11216721B2 (de)
JP (1) JP2019530113A (de)
CN (1) CN109643392A (de)
DE (1) DE102016216944A1 (de)
WO (1) WO2018046415A1 (de)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
FR3090163B1 (fr) * 2018-12-18 2021-04-30 Univ Bourgogne Processeur de traitement de données, procédé et programme d’ordinateur correspondant
US10698853B1 (en) 2019-01-03 2020-06-30 SambaNova Systems, Inc. Virtualization of a reconfigurable data processor
US10768899B2 (en) 2019-01-29 2020-09-08 SambaNova Systems, Inc. Matrix normal/transpose read and a reconfigurable data processor including same
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US11055141B2 (en) 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
US11327923B2 (en) 2019-09-04 2022-05-10 SambaNova Systems, Inc. Sigmoid function in hardware and a reconfigurable data processor including same
JP7191797B2 (ja) 2019-09-20 2022-12-19 株式会社東芝 演算回路
US11327713B2 (en) 2019-10-01 2022-05-10 SambaNova Systems, Inc. Computation units for functions based on lookup tables
CN110879697B (zh) * 2019-10-29 2021-09-28 南京大学 一种近似计算tanh函数的装置
CN110766141A (zh) * 2019-10-29 2020-02-07 南京宁麒智能计算芯片研究院有限公司 一种基于cordic的激活函数混合计算方法及系统
US11327717B2 (en) 2019-11-19 2022-05-10 SambaNova Systems, Inc. Look-up table with input offsetting
US11328038B2 (en) 2019-11-25 2022-05-10 SambaNova Systems, Inc. Computational units for batch normalization
US11150872B2 (en) 2019-12-17 2021-10-19 SambaNova Systems, Inc. Computational units for element approximation
US11836629B2 (en) 2020-01-15 2023-12-05 SambaNova Systems, Inc. Computationally efficient softmax loss gradient backpropagation
US11163715B1 (en) * 2020-05-04 2021-11-02 International Business Machines Corporation CGRA accelerator for weather/climate dynamics simulation
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources
CN114509679B (zh) * 2022-04-20 2022-07-12 中汽信息科技(天津)有限公司 基于深度学习的电池soh预测模型构建方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2792633B2 (ja) 1990-02-09 1998-09-03 株式会社日立製作所 制御装置
US6687597B2 (en) * 2002-03-28 2004-02-03 Saskatchewan Research Council Neural control system and method for alternatively fueled engines
US20150269480A1 (en) * 2014-03-21 2015-09-24 Qualcomm Incorporated Implementing a neural-network processor
US20150278680A1 (en) * 2014-03-26 2015-10-01 Qualcomm Incorporated Training, recognition, and generation in a spiking deep belief network (dbn)
CN105095967B (zh) * 2015-07-16 2018-02-16 清华大学 一种多模态神经形态网络核
CN105550748A (zh) * 2015-12-09 2016-05-04 四川长虹电器股份有限公司 基于双曲正切函数的新型神经网络的构造方法
CN105740619B (zh) * 2016-01-28 2018-06-12 华南理工大学 基于核函数的加权极限学习机污水处理在线故障诊断方法

Also Published As

Publication number Publication date
US11216721B2 (en) 2022-01-04
WO2018046415A1 (de) 2018-03-15
CN109643392A (zh) 2019-04-16
US20190205734A1 (en) 2019-07-04
JP2019530113A (ja) 2019-10-17

Similar Documents

Publication Publication Date Title
DE102016216944A1 (de) Verfahren zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit vereinfachter Aktivierungsfunktion
DE102019114243A1 (de) Architektur für tiefe neuronale Netze unter Verwendung stückweiser linearer Approximation
Anselmi et al. Deep convolutional networks are hierarchical kernel machines
DE102013213420A1 (de) Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
DE202017105528U1 (de) Ausführen von Mittelwert-Poolbildung in Hardware
DE102019122818A1 (de) Neuronale Netzwerkvorrichtung für eine neuronale Netzwerkoperation, Verfahren zum Betreiben einer neuronalen Netzwerkvorrichtung und Anwendungsprozessor, der die neuronale Netzwerkvorrichtung beinhaltet
DE102018109835A1 (de) Verfahren und Vorrichtung zum Ermitteln einer Netzkonfiguration eines neuronalen Netzes
DE112011103206T5 (de) Multiplizieraddierfunktionseinheit zum Ausführen von Scale-, Round-, Getexp-, Round-, Getmant-,Reduce-, Range- und Class-Befehlen
DE102013220432A1 (de) Modellberechnungseinheit für einen integrierten Steuerbaustein zur Berechnung von LOLIMOT
DE102013206264A1 (de) Verfahren und Vorrichtung zur Durchführung einer Berechnung eines datenbasierten Funktionsmodells
DE102018202095A1 (de) Verfahren und Vorrichtung zum Überprüfen einer Neuronenfunktion in einem neuronalen Netzwerk
EP3590078A1 (de) Neuronalnetzsystem
DE102016216951A1 (de) Modellberechnungseinheit und Steuergerät zur wahlweisen Berechnung eines RBF-Modells, eines Gauß-Prozess-Modells und eines MLP-Modells
DE102014225039A1 (de) Verfahren und Vorrichtung zum Bereitstellen von spärlichen Gauß-Prozess-Modellen zur Berechnung in einem Motorsteuergerät
CN114663662A (zh) 超参数搜索方法、装置、计算机设备和存储介质
WO2018046416A1 (de) Modellberechnungseinheit und steuergerät zur berechnung eines mehrschichtigen perzeptronenmodells mit vorwärts- und rückkopplung
DE102013206292A1 (de) Verfahren und Vorrichtung zum Erstellen eines datenbasierten Funktionsmodells
EP3542318B1 (de) Modellberechnungseinheit und steuergerät zur berechnung einer neuronenschicht eines mehrschichtigen perzeptronenmodells
DE102015221819A1 (de) Verfahren und Vorrichtung zum Adaptieren eines datenbasierten Funktionsmodells zur Berechnung in einer Modellberechnungseinheit
DE102015208513A1 (de) Verfahren und Vorrichtung zum Berechnen eines datenbasierten Multi-Output-Funktionsmodells
DE102016216954A1 (de) Modellberechnungseinheit und Steuergerät zur Berechnung einer partiellen Ableitung eines RBF-Modells
DE102020123155A1 (de) Quantisierungsverfahren eines künstlichen neuronalen Netzwerks und Operationsverfahren unter Verwendung eines künstlichen neuronalen Netzwerks
DE102016216948A1 (de) Modellberechnungseinheit und Steuergerät zur Berechnung einer Neuronenschicht eines mehrschichtigen Perzeptronenmodells mit wahlweiser Eingangs- und Ausgangstransformation
DE102017215420A1 (de) Modellberechnungseinheit und Steuergerät zur Berechnung eines RBF-Modells
DE102013224694A1 (de) Verfahren und Vorrichtung zum Ermitteln eines Gradienten eines datenbasierten Funktionsmodells

Legal Events

Date Code Title Description
R012 Request for examination validly filed