DE102019218947A1 - Hardwarebeschleunigter Betrieb künstlicher neuronaler Netzwerke - Google Patents

Hardwarebeschleunigter Betrieb künstlicher neuronaler Netzwerke Download PDF

Info

Publication number
DE102019218947A1
DE102019218947A1 DE102019218947.4A DE102019218947A DE102019218947A1 DE 102019218947 A1 DE102019218947 A1 DE 102019218947A1 DE 102019218947 A DE102019218947 A DE 102019218947A DE 102019218947 A1 DE102019218947 A1 DE 102019218947A1
Authority
DE
Germany
Prior art keywords
confidences
classes
ann
list
confidence
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
DE102019218947.4A
Other languages
English (en)
Inventor
Rolf Michael Koehler
Pia Petrizio
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 DE102019218947.4A priority Critical patent/DE102019218947A1/de
Priority to US17/103,705 priority patent/US11620817B2/en
Priority to CN202011402793.1A priority patent/CN112926734A/zh
Publication of DE102019218947A1 publication Critical patent/DE102019218947A1/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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2193Validation; Performance evaluation; Active pattern learning techniques based on specific statistical tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • 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
    • 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/045Combinations of networks
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • G06V20/582Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads of traffic signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/69Microscopic objects, e.g. biological cells or cellular parts
    • G06V20/698Matching; Classification

Abstract

Verfahren (100) zum Betreiben eines künstlichen neuronalen Netzwerks, KNN (1), auf einer Hardwareplattform (2), wobei das KNN (1) für die Ermittlung von Konfidenzen (13a-13d) ausgebildet ist, mit denen eingegebene Daten (10) N diskreten Klassen (12a-12d) zuzuordnen sind, und wobei die Hardwareplattform (2) eine dedizierte Baugruppe (22) aufweist, die dazu ausgebildet ist,• aus einer Liste (23) von M > N Konfidenzen (23a-23f) jeweils erweiterte Konfidenzen (24a-24f) zu bilden, indem in jede Konfidenz (23a-23f) eine Identifikationsnummer (25a-25f) ihres Platzes in der Liste (23) einkodiert wird (120), und• die erweiterten Konfidenzen (24a-24f) numerisch zu sortieren (130), wobei• der dedizierten Baugruppe (22) Konfidenzen 1, ..., M-N (23a, 23b), die den minimalen darstellbaren Wert (µ) haben, sowie Konfidenzen M-N+1, ..., M (13a-13d; 23c-23f), die zu den N diskreten Klassen (12a-12d) korrespondieren, zugeführt werden (110a), und/oder• sichergestellt wird, dass diejenigen der dedizierten Baugruppe (22) zugeführten Konfidenzen (13a-13d; 23c-23f), die zu einer der N diskreten Klassen (12a-12d) korrespondieren, einen höheren als den minimalen darstellbaren Wert (µ) haben, und wobei eine nach Konfidenzen (13a-13d) geordnete Rangfolge (12) der Klassen (12a-12d), denen die eingegebenen Daten (10) zuzuordnen sind, aus den ersten N der numerisch sortierten erweiterten Konfidenzen (24a*-24f*) ermittelt wird (140).

Description

  • Die vorliegende Erfindung betrifft das Betreiben künstlicher neuronaler Netzwerke auf Hardwareplattformen, die eine dedizierte Baugruppe für die Auswertung der von dem Netzwerk gelieferten Ergebnisse aufweist.
  • Stand der Technik
  • Künstliche neuronale Netzwerke, KNN, werden vielfach eingesetzt, um physikalische Messdaten in diskrete Klassen zu klassifizieren, die für die jeweilige Anwendung relevant sind. Beispielsweise werden physikalische Messdaten, die durch Beobachtung des Umfelds eines Fahrzeugs erhalten wurden, dahingehend klassifiziert, auf welche Typen von Objekten diese Messdaten hindeuten.
  • Beispielsweise kann das KNN für jede der diskreten Klassen eine Konfidenz ausgeben, mit der die eingegebenen Daten dieser Klasse zuzuordnen ist. Die Konfidenzen können dann beispielsweise mit der Softmax-Funktion so normiert werden, dass sie im Intervall [0, 1] liegen und in der Summe 1 ergeben.
  • Die Softmax-Funktion erfordert die Berechnung einer Exponentialfunktion. Es ist schwierig, diese Berechnung durch spezialisierte, aber dennoch kostengünstige Hardware zu beschleunigen. Hingegen sind am Markt Hardwareplattformen für einen beschleunigten Betrieb von KNN erhältlich, die lediglich in absteigender Reihenfolge der Konfidenz eine Rangfolge der Klassen angeben, zu denen die eingegebenen Daten gemäß der Aussage des KNN gehören. Speziell die Baugruppe für die Auswertung dieser Rangfolge ist auf eine feste Anzahl diskreter Klassen ausgelegt.
  • Offenbarung der Erfindung
  • Im Rahmen der Erfindung wurde ein Verfahren zum Betreiben eines künstlichen neuronalen Netzwerks, KNN, auf einer Hardwareplattform entwickelt. Das KNN ist für die Ermittlung von Konfidenzen ausgebildet, mit denen eingegebene Daten N diskreten Klassen zuzuordnen sind. Diese Konfidenzen sind allgemein Zahlenwerte, die als Maß für die Wahrscheinlichkeit anzusehen sind, dass die Zuordnung eines eingegebenen Datensatzes (etwa ein von einem Fahrzeug aus aufgenommenes Bild) zu der jeweiligen Klasse (etwa „Bild enthält dieses oder jenes Verkehrszeichen“) im Kontext der jeweiligen Anwendung (etwa zumindest teilweise automatisiertes Steuern eines Fahrzeugs im Straßenverkehr) korrekt ist. Die Konfidenzen sind noch nicht notwendigerweise auf einen Wertebereich zwischen 0 und 1 normiert und müssen in der Summe auch nicht 1 ergeben. Dies wäre die Aufgabe der Softmax-Funktion. Im Rahmen des Verfahrens geht es jedoch darum, möglichst schnell eine Rangfolge der Klassen anzugeben, zu denen die eingegebenen Daten gemäß der Aussage des KNN gehören.
  • Zu diesem Zweck wird eine Hardwareplattform mit der zuvor erwähnten dedizierten Baugruppe verwendet, die dazu ausgebildet ist, aus einer Liste der vom KNN ermittelten Konfidenzen jeweils erweiterte Konfidenzen zu bilden, indem in jede Konfidenz eine Identifikationsnummer ihres Platzes in der Liste einkodiert wird. Die erweiterten Konfidenzen werden dann numerisch sortiert, um auf dieser Basis zu der nach Konfidenzen geordneten Rangfolge der Klassen zu gelangen, denen die eingegebenen Klassen zuzuordnen sind.
  • Wenn es also beispielsweise N=4 diskrete Klassen 1, 2, 3 und 4 gibt, denen die eingegebenen Daten mit Konfidenzen von 0, 5, 2 und 10 zuzuordnen sind, dann kann beispielsweise die Identifikationsnummer des jeweiligen Platzes in der Liste in die dritte Stelle hinter dem Komma einkodiert werden. Die erweiterten Konfidenzen sind dann 0,001, 5,002, 2,003 und 10,004. Die numerische Sortierung in absteigender Reihenfolge ergibt 10,004, 5,002, 2,003, 0,001. Hieraus folgt, dass die korrekte Sortierung der Klassen 4, 2, 3, 1 ist.
  • Bedingt durch die Realisierung in Hardware ist die dedizierte Baugruppe dafür ausgebildet, diese Art der Verarbeitung mit einer festen Anzahl M durchzuführen. Das bedeutet, dass die dedizierte Baugruppe eine Liste von genau M Konfidenzen erwartet. Wenn M nun größer ist als die Anzahl N der zur Verfügung stehenden diskreten Klassen, wird die Liste am Ende mit dem minimalen darstellbaren Wert aufgefüllt. In dem zuvor genannten Beispiel sei dieser minimal darstellbare Wert 0. Wenn die dedizierte Baugruppe nun M=6 Konfidenzen erwartet, es aber nur N=4 Klassen gibt, dann verarbeitet die Baugruppe eine Liste mit den Konfidenzen 0, 5, 2, 10, 0 und 0 zu erweiterten Konfidenzen 0,001, 5,002, 2,003, 10,004, 0,005 und 0,006. Die numerische Sortierung ergibt nun 10,004, 5,002, 2,003, 0,006, 0,005, 0,001 und liefert somit eine Sortierung 4, 2, 3, 6. Dies ist im Kontext der Anwendung, in der es nur vier Klassen gibt, falsch.
  • Das Verfahren stellt nun zwei einzeln oder auch in Kombination einsetzbare Möglichkeiten zur Verfügung, um in Fällen, in denen die dedizierte Baugruppe mehr Konfidenzen erwartet als es diskrete Klassen gibt, genau dieses Verhalten abzustellen.
  • Die erste Möglichkeit ist, der dedizierten Baugruppe Konfidenzen 1, ..., M-N, die den minimalen darstellbaren Wert haben, sowie Konfidenzen M-N+1, ..., M, die zu den N diskreten Klassen korrespondieren, zuzuführen. Die erstgenannten Konfidenzen, die nur deshalb in der Liste stehen, weil dort neben den vom KNN gelieferten N Konfidenzen noch Platz ist, bekommen also die Plätze mit den niedrigsten Identifikationsnummern zugewiesen. Die zugehörigen erweiterten Konfidenzen, in die diese Identifikationsnummern einkodiert sind, stehen also im Ergebnis der numerischen Sortierung ganz hinten. Werden nun aber aus diesem Ergebnis nur N Werte ausgelesen, ergibt sich hieraus die richtige gesuchte Rangfolge der Klassen. Es muss lediglich von den in den erweiterten Konfidenzen einkodierten Identifikationsnummern der Plätze jeweils M-N subtrahiert werden, um zu den N Identifikationsnummern der Klassen zu gelangen.
  • In dem zuvor genannten Beispiel wird der Baugruppe mit dieser Umstellung eine Liste mit den M=6 Konfidenzen 0, 0, 0, 5, 2 und 10 zu einer Liste mit den erweiterten Konfidenzen 0,001, 0,002, 0,003, 5,004, 2,005 und 10,006. Die numerische Sortierung ergibt 10,006, 5, 004, 2,005, 0,003, 0,002, 0,001. Hiervon werden nur die ersten N=4 Werte weiter verwendet. Von den in diese Werte einkodierten Identifikationsnummern 6, 4, 5 und 3 werden jeweils N-M=2 abgezogen, so dass als Endergebnis die korrekte Sortierung 4, 2, 3, 1 der Klassen erhalten wird.
  • Die zweite Möglichkeit ist, sicherzustellen, dass diejenigen der dedizierten Baugruppe zugeführten Konfidenzen, die zu einer der N diskreten Klassen korrespondieren, einen höheren als den minimalen darstellbaren Wert haben. Der minimal darstellbare Wert ist dann also ausschließlich für die „Pseudo-Konfidenzen“ reserviert, mit denen die Liste von N Einträgen auf die von der dedizierten Baugruppe erwarteten M Einträge aufgefüllt wird. Auch auf diese Weise ist sichergestellt, dass nach der numerischen Sortierung der erweiterten Konfidenzen die N zu den verwendeten diskreten Klassen korrespondierenden Werte zuerst in der Liste stehen. Im Unterschied zu der ersten Möglichkeit entfällt hier die Notwendigkeit, nach der numerischen Sortierung der erweiterten Konfidenzen die hierin einkodierten Identifikationsnummern der Plätze durch Abziehen von M-N umzurechnen.
  • Sei etwa in dem zuvor genannten Beispiel die Verarbeitung des KNN darauf ausgerichtet, nur Konfidenzwerte zu produzieren, die mindestens 0,01 betragen. Das KNN liefert dann also Konfidenzen 0,01, 5, 2 und 10, und diese Liste wird um zwei „Pseudo-Konfidenzen“ mit dem minimal darstellbaren Wert 0 ergänzt. Demzufolge sind die erweiterten Konfidenzen 0,011, 5,002, 2,003, 10,004, 0,005 und 0,006. Die numerische Sortierung dieser Liste ergibt 10,004, 5,002, 2,003, 0,011, 0,006 und 0,005. Hiervon werden wieder nur die ersten N=4 Einträge verwendet, und aus den hierin einkodierten Platznummern ergibt sich wiederum die korrekte Sortierung der Klassen 4, 2, 3, 1.
  • Unabhängig davon, welche der beiden Möglichkeiten gewählt wird, ist also der Effekt der gleiche: Die numerische Sortierung der erweiterten Konfidenzen befördert die N Werte, die zu den vom KNN verwendeten Klassen korrespondieren, an den Anfang der erhaltenen Liste, während die M-N Werte, die aus dem Auffüllen der dedizierten Baugruppe zugeführten Liste von N auf M Werte resultieren, dahinter stehen. Indem nun die Rangfolge der Klassen aus den ersten N Werten der numerisch sortierten Liste von erweiterten Konfidenzen ermittelt wird, enthält diese Rangfolge nur Klassen, die von dem KNN auch tatsächlich verwendet werden.
  • Dies wiederum führt dazu, dass der weiteren technischen Anwendung, die Gebrauch von der ermittelten Rangfolge macht, nur gültige Identifikationsnummern von Klassen zugeführt werden. Funktionsstörungen, die aus der Verarbeitung ungültiger Identifikationsnummern resultieren könnten, werden vermieden.
  • Derartige Störungen können unvorhersehbare und zugleich schwer reproduzierbare Folgen haben, so dass sich das Problem, wenn es durch das hier beschriebene Verfahren nicht an der Wurzel beseitigt würde, nur schwer eingrenzen ließe.
  • So ist es beispielsweise in den meisten Arten von Software gängige Programmierpraxis, Informationen, die von einer Routine zur weiteren Verarbeitung an die nächste Routine übergeben werden sollen, in einem bestimmten Bereich im Arbeitsspeicher abzulegen und der nächsten Routine einen Zeiger auf diesen Bereich zu übergeben. Dementsprechend können beispielsweise in einer Steuerungssoftware, die mit den vom KNN gelieferten Ergebnissen arbeitet, aus Identifikationsnummern von Klassen Zeiger auf Speicherbereiche berechnet werden, an denen die als Nächstes zu verarbeitenden Informationen abgelegt sind. Das Vorkommen ungültiger Identifikationsnummern in der Rangfolge (im zuvor genannten Beispiel also 5 oder 6) kann nun dazu führen, dass aus völlig anderen als den vorgesehenen Bereichen im Arbeitsspeicher diejenigen Informationen ausgelesen werden, die zufällig gerade dort stehen. Diese Informationen haben mit der aktuell zu bearbeitenden Aufgabe aller Wahrscheinlichkeit nach nichts zu tun, so dass die weitere Verarbeitung zu unsinnigen Ergebnissen führt, die sich auch noch bei jeder Programmausführung ändern. In diesem Zustand ist die Steuerungssoftware nicht für die Ansteuerung technischer Systeme brauchbar.
  • Was genau der „minimal darstellbare Wert“ im Sinne der vorherigen Ausführungen ist, hängt von dem für die Darstellung der Konfidenzen konkret verwendeten Datentyp ab. In dem zuvor genannten illustrativen Beispiel, in dem nur nichtnegative Zahlen vorkommen, ist der minimal darstellbare Wert 0. In der technischen Anwendung werden vielfach Festkommazahlen verwendet, die durch eine bestimmte Anzahl von Bits dargestellt werden, wobei der Zahlenwert sich durch eine vorgegebene Vorschrift aus den Bits ergibt. Beispielsweise kann ein feste Anzahl von Bits verwendet werden, um den Vorkomma (d.h. den Ganzzahlen-)bereich darzustellen, und die übrigen Bits können verwendet werden, um den Nachkomma (d.h. den Bruchzahlen-)bereich und ggfs. das Vorzeichen zu repräsentieren. Die Festlegung der Kommaposition ist veränderbar und kann den Zahlenwerten angepasst werden.
  • Eine andere Darstellung wären Gleitkommazahlen, die durch eine bestimmte Anzahl von Bits dargestellt werden, wobei der Zahlenwert sich durch eine vorgegebene Vorschrift aus den Bits ergibt. Beispielsweise kann ein erster Anteil der Bits die Mantisse, also die Ziffern der Zahl, und ein zweiter Anteil der Bits den Exponenten zu einer festgelegten Basis, also etwa 2 oder 10, festlegen. Weiterhin kann optional ein weiteres Bit das Vorzeichen repräsentieren. Der minimal darstellbare Wert kann dann beispielsweise der Wert sein, der sich nach der vorgegebenen Vorschrift ergibt, wenn alle Bits 0 sind.
  • In einer besonders vorteilhaften Ausgestaltung ist die dedizierte Baugruppe dazu ausgebildet, in die niederwertigsten Bits einer binären Darstellung einer jeden Konfidenz in der Liste die Identifikationsnummer des Platzes dieser Konfidenz in der Liste einzukodieren. Auf diese Weise ist sichergestellt, dass die Werte der Konfidenzen bei der Weiterverarbeitung zu erweiterten Konfidenzen unabhängig von ihrer konkreten Größenordnung nur in dem minimal möglichen Umfang verändert werden. Die Werte sind also noch hinreichend genau, um in der jeweiligen technischen Anwendung unmittelbar verwendet zu werden, wenn in dieser Anwendung mehr gefragt ist als nur die bloße Rangfolge der Klassen.
  • In einer weiteren besonders vorteilhaften Ausgestaltung wird mindestens eine Verarbeitungsschicht des KNN dahingehend angepasst, dass sie Konfidenzen 1, ..., M-N, die den minimalen darstellbaren Wert haben, sowie Konfidenzen M-N+1, ..., M, die zu den N diskreten Klassen korrespondieren, ausgibt. Auf diese Weise kann die Liste der Konfidenzen unmittelbar aus dem KNN an die dedizierte Baugruppe für die Sortierung übergeben werden. Wenn beispielsweise das Rechenwerk, mit dem die Funktion der letzten Verarbeitungsschicht des KNN ausgeübt wird, auf dem gleichen Chip sitzt wie die für die Sortierung verwendete dedizierte Baugruppe, dann müssen die Konfidenzen diesen Chip nicht verlassen, bevor sie an die dedizierte Baugruppe übergeben werden. Die Übergabe von Daten innerhalb eines Chips ist in der Regel wesentlich schneller als die Übergabe an einen anderen Chip.
  • Beispielsweise kann mindestens eine Verarbeitungsschicht des KNN eine Faltungsschicht sein, die durch Filterparameter charakterisierte Filter auf die Eingabe dieser Verarbeitungsschicht anwendet. So enthält etwa ein „Convolutional Neural Network“ eine Mehrzahl solcher Faltungsschichten. Das Anpassen der Verarbeitungsschicht beinhaltet, Filterparameter, die auf die Konfidenzen 1, ..., M-N wirkende Filter charakterisieren, auf Null zu setzen. Es können dann insbesondere Filterparameter, die auf die Konfidenzen M-N+1, ..., M wirken, zu denjenigen Filterparametern korrespondieren, die vor der Anpassung auf die Konfidenzen 1, ..., N gewirkt haben. Auf diese Weise kann die Ausgabe der Verarbeitungsschicht von N Konfidenzen auf M Konfidenzen angepasst und zugleich so umsortiert werden, dass diejenigen Konfidenzen, mit denen die an die dedizierte Baugruppe übergebene Liste lediglich aufgefüllt wird, in dieser Liste vorne stehen. Hierzu müssen die Konfidenzen ein Rechenwerk, mit dem die Funktion dieser Verarbeitungsschicht realisiert wird, nicht verlassen.
  • Besonders vorteilhaft kann das Anpassen der Verarbeitungsschicht weiterhin beinhalten, eine nach dem Anwenden von Filtern mit auf Null gesetzten Filterparametern erhaltene Ausgabe durch Anwenden eines konstanten Offsets auf den minimalen darstellbaren Wert zu setzen. Offsets zu den übrigen Filtern können dann unverändert bleiben. Die Offsets können also beispielsweise entsprechend der Erweiterung der gelieferten Konfidenzen von N auf M Konfidenzen erweitert werden, indem sie für die ersten M-N Konfidenzen auf den minimal darstellbaren Wert gesetzt werden. Die Offsets zu den Konfidenzen M-N+1, ..., M können zu denjenigen Offsets korrespondieren, die vor der Anpassung zu den Konfidenzen 1, ..., N gehört haben. Auf diese Weise ist sichergestellt, dass diejenigen Konfidenzen, die lediglich zum Auffüllen von N auf M Konfidenzen verwendet wurden, den minimalen darstellbaren Wert haben und somit bei der numerischen Sortierung der erweiterten Konfidenzen auf den hintersten Plätzen der Liste landen.
  • Weiterhin kann das Anpassen der Verarbeitungsschicht beispielsweise beinhalten, Teile ihrer Eingabe, von denen die Konfidenzen 1, ..., M-N abhängen, auf den minimalen darstellbaren Wert zu setzen. Auch diese Änderung ist möglich, ohne dass das Rechenwerk, das die Funktion der Verarbeitungsschicht ausführt, verlassen werden muss. So kann beispielsweise in einem „Convolutional Neural Network“, das „Feature maps“ von einer Faltungsschicht zur nächsten übergibt, bei einer derartigen Übergabe eine zusätzliche „Pseudo-Feature map“ vorangestellt werden, in der alle Werte dem minimalen darstellbaren Wert entsprechen.
  • In einer weiteren besonders vorteilhaften Ausgestaltung wird mindestens eine Verarbeitungsschicht des KNN dahingehend angepasst, dass sie bezüglich der N diskreten Klassen ausschließlich Konfidenzen ausgibt, die höher sind als der minimale darstellbare Wert. Wie zuvor erläutert, werden dann diejenigen Konfidenzen, die lediglich zum Auffüllen der Liste von N auf M Konfidenzen dienen, in der numerischen Sortierung der erweiterten Konfidenzen automatisch auf den hintersten Plätzen landen. Dabei bleibt die Dimensionalität der Ausgabe der Verarbeitungsschicht gleich. Der Eingriff in das KNN ist insoweit weniger gravierend als die Erweiterung auf eine zusätzliche Lieferung von „Pseudo-Konfidenzen“.
  • Um die Verarbeitungsschicht des KNN in dieser Weise anzupassen, können insbesondere beispielsweise Aktivierungsfunktionen von Neuronen oder anderen Verarbeitungseinheiten so angepasst werden, dass sie nur höhere Werte als den minimalen darstellbaren Wert ausgeben. So kann beispielsweise mindestens eine Aktivierungsfunktion in der Verarbeitungsschicht durch eine gleichrichtende Funktion ersetzt werden. Ein Beispiel für eine solche Funktion ist die Rectified Linear Unit (ReLU). Eine Anpassung der Aktivierungsfunktion kann insbesondere beispielsweise bereits zum Zeitpunkt des Trainings erfolgen, so dass Ungenauigkeiten oder Artefakte, die durch diese Anpassung möglicherweise verursacht werden, durch das Training weitestgehend kompensiert werden können.
  • In einer weiteren besonders vorteilhaften Ausgestaltung wird eine Hardwareplattform gewählt, die zusätzlich zu der dedizierten Baugruppe mindestens ein mit der Baugruppe in einer gemeinsamen integrierten Schaltung angeordnetes Rechenwerk für die Ausübung der Funktion mindestens einer Verarbeitungsschicht des KNN umfasst. Derartige Hardwareplattformen sind am Markt verfügbar. Wie bereits erläutert, lässt sich die Abwandlung der Verarbeitung im Sinne des zuvor beschriebenen Verfahrens in vielen Ausführungsformen so in mindestens eine Verarbeitungsschicht des KNN integrieren, dass die Konfidenzen die gemeinsame integrierte Schaltung vor der Übergabe an die dedizierte Baugruppe nicht verlassen müssen. Auf diese Weise bleibt der Geschwindigkeitsvorteil, der aus der Integration des Rechenwerks mit der dedizierten Baugruppe resultiert, in vollem Umfang erhalten. Die Verbesserung dahingehend, dass die letztendlich ermittelte Rangfolge der Klassen keine ungültigen Identifikationsnummern für Klassen enthält, kostet also nur sehr wenig zusätzliche Rechenzeit.
  • In einer besonders vorteilhaften Ausgestaltung werden beim Betrieb des KNN physikalische Messdaten, die mit mindestens einem Sensor erfasst wurden, in das KNN eingegeben. Die diskreten Klassen repräsentieren dann die für die jeweilige technische Anwendung relevanten, aus diesen physikalischen Messdaten gewonnenen Auswertungsprodukte. Die diskreten Klassen können insbesondere
    • • Verkehrszeichen, andere Verkehrsteilnehmer, Fahrbahnbegrenzungen und/oder sonstige Objekte, deren Vorhandensein eine Anpassung des Verhaltens eines den Sensor tragenden Fahrzeugs erforderlich machen kann, und/oder
    • • unterschiedliche semantische Bedeutungen der Messdaten im Hinblick auf eine Verarbeitung von mit dem Sensor aufgenommener Sprache, und/oder
    • • unterschiedliche Qualitätsstufen von in Serie gefertigten Produkten, die mittels des Sensors einer Qualitätskontrolle unterzogen werden, und/oder
    • • unterschiedliche Quellen von Geräuschen, und/oder unterschiedliche Typen von Objekten, deren Auftauchen in einem mittels des Sensors überwachten Bereich ein für diesen Bereich sicherheitsrelevantes Ereignis darstellen kann, und/oder
    • • qualitativ unterschiedliche Zustände einer mittels des Sensors untersuchten biologischen Probe,
    repräsentieren.
  • Das Verfahren stellt in diesem Kontext jeweils sicher, dass alle Konfidenzen sich jeweils nur auf Klassen beziehen, die auch für die jeweilige Anordnung definiert sind. Nur für solche Klassen kennt das jeweils auf der Basis der ermittelten Rangfolge angesteuerte technische System eine angemessene Reaktion. Darüber hinaus kann, wie zuvor erläutert, das Auftreten nicht definierter Identifikationsnummern von Klassen schon auf der tiefen Ebene der Programmausführung auf einem Computer zu schwerwiegenden Fehlfunktionen führen.
  • Die Erfindung bezieht sich weiterhin auch auf ein Verfahren, das die vollständige Wirkkette bis zur Ansteuerung des technischen Systems umfasst. Bei diesem Verfahren wird zunächst ein trainiertes KNN bereitgestellt. Das KNN wird mit dem zuvor beschriebenen Verfahren betrieben. Hierzu bildet das KNN physikalische Messdaten, die mit mindestens einem Sensor erfasst wurden, auf Konfidenzen ab, mit denen es diese Messdaten N diskreten Klassen zuordnet. Weiterhin wird eine nach Konfidenzen geordnete Rangfolge der Klassen ermittelt. Die Konfidenzen, und/oder die Rangfolge, werden zu mindestens einem Ansteuersignal verarbeitet. Ein Fahrzeug, und/oder ein Spracherkennungssystem, und/oder ein System für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder ein System für die Überwachung eines Bereichs, und/oder ein System für die medizinische Bildgebung, wird mit dem Ansteuersignal angesteuert.
  • Indem keine ungültigen Identifikationsnummern für Klassen mehr auftreten, wird nach dem zuvor Erläuterten sichergestellt, dass auch in Betriebssituationen, in denen bestimmten Klassen sehr geringe Konfidenzen zugewiesen werden, das jeweilige technische System immer eine der jeweiligen Betriebssituation angemessene Reaktion ausführt und nicht irgendeine unvorhersehbare Reaktion.
  • 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 zum Betreiben des KNN 1;
    • 2 Veranschaulichung der Wirkung des Schritts 110a im Kontext des Verfahrens 100;
    • 3 Veranschaulichung der Wirkung des Schritts 110b im Kontext des Verfahrens 100;
    • 4 Ausführungsbeispiel des Verfahrens 200 mit vollständiger Wirkkette;
    • 5 Realisierung mit einer Hardwareplattform 2, die Rechenwerk 21 und dedizierte Baugruppe 22 in einer integrierten Schaltung 20 vereint.
  • 1 ist ein Ablaufdiagramm eines Ausführungsbeispiel des Verfahrens 100 zum Betreiben des KNN 1. Im optionalen Schritt 105 wird eine Hardwareplattform 2 gewählt, die ein Rechenwerk 21 für die Ausübung der Funktion mindestens einer Verarbeitungsschicht 11-13 des KNN 1 sowie eine dedizierte Baugruppe 22 in einer integrierten Schaltung 20 vereint. Die dedizierte Baugruppe 22 ist dazu ausgebildet, Konfidenzen 13a-13d, mit denen die in das KNN 1 eingegebenen Daten 10 den verfügbaren diskreten Klassen 12a-12d zuzuordnen sind, so umzukodieren und zu sortieren, dass hieraus leicht die gesuchte Rangfolge 12 der Konfidenzen ermittelt werden kann. Das Zusammenwirken des KNN 1 mit der Baugruppe 22 zu diesem Zweck ist im Folgenden näher dargestellt. Bei den Daten 10 kann es sich gemäß dem optionalen Schritt 106 insbesondere um physikalische Messdaten 3a handeln, die mit mindestens einem Sensor 3 erfasst wurden.
  • Das KNN 1 ist ursprünglich dazu ausgelegt, aus den eingegebenen Daten 10 N Konfidenzen 13a-13d zu ermitteln, mit denen diese Daten 10 jeweils den verfügbaren diskreten Klassen 12a-12d zuzuordnen sind. Die dedizierte Baugruppe 22 erwartet jedoch eine Liste 23 von M > N Konfidenzen 23a-23f. In 1 sind zwei verschiedene Wege aufgezeigt, wie die Konfidenzen 13a-13d so in die Liste 23 überführt werden können, dass die letztendlich erhaltene Rangfolge 12 auf keine ungültigen (d.h., nicht im Kanon der verfügbaren Klassen 12a-12d enthaltenen) Klassen verweist.
  • Gemäß Schritt 110a beginnt die Liste 23 mit M-N Konfidenzen 23a, 23b, die den minimalen darstellbaren Wert (µ) haben. Die Liste 23 wird fortgesetzt mit Konfidenzen 23c-23f, die zu den Konfidenzen 13a-13d, und damit zu den Klassen 12a-12d, korrespondieren. Hier ist es möglich, dass unter den Konfidenzen 13a-13d ebenfalls solche sind, die den minimalen darstellbaren Wert (µ) haben.
  • Gemäß Schritt 110b wird sichergestellt, dass Konfidenzen 13a-13d, 23c-23f, die zu einer der N diskreten Klassen 12a-12d korrespondieren, einen höheren als den minimalen darstellbaren Wert (µ) haben. Hier kann die Liste 23 an beliebiger Stelle mit N-M Pseudo-Konfidenzen 23a, 23b, die den minimalen darstellbaren Wert (µ) haben, auf M Werte aufgefüllt werden.
  • Unabhängig davon, auf welchem Weg die Liste 23 erzeugt wurde, wird in Schritt 120 durch die dedizierte Baugruppe 22 eine Liste 24 von erweiterten Konfidenzen 24a-24f gebildet. Hierzu wird in jede Konfidenz 23a-23f eine Identifikationsnummer 25a-25f ihres Platzes in der Liste 23 einkodiert. In Schritt 130 wird diese Liste 23 numerisch sortiert zu einer Liste 24* von sortierten erweiterten Konfidenzen 24a*-24f*. Aus den ersten N Elementen dieser sortierten Liste 24* wird in Schritt 140 die gesuchte Rangfolge 12 ermittelt.
  • Wie zuvor erläutert, sorgen sowohl der Schritt 110a als auch der Schritt 110b jeweils dafür, dass beim numerischen Sortieren in Schritt 130 die „Pseudo-Konfidenzen“ 23a, 23b, die nicht zu einer der der verfügbaren Klassen 12a-12d korrespondieren, ans Ende der sortierten Liste 24* „verfrachtet“ werden und somit nicht mehr in den in Schritt 140 ausgewerteten ersten N Elementen dieser Liste 24* enthalten sind.
  • Innerhalb des Kastens 110a ist beispielhaft dargestellt, wie gemäß Block 111 die Liste 23 in der beschriebenen Weise durch eine Abänderung der Verarbeitung in den Verarbeitungsschichten 11-13 des KNN 1 direkt im KNN 1 erzeugt werden kann. Gemäß Block 112 können Filterparameter, die auf die „Pseudo-Konfidenzen“ 23a, 23b wirken, auf Null gesetzt werden. Gemäß Block 113 können Ausgaben, die von Faltungsschichten anhand auf Null gesetzter Filterparameter erzeugt wurden, durch Anwenden eines konstanten Offsets auf den minimalen darstellbaren Wert (µ) gesetzt werden. Alternativ oder auch in Kombination hierzu können gemäß Block 114 Teile der Eingabe von Verarbeitungsschichten 11-13, von denen die „Pseudo-Konfidenzen“ 23a, 23b abhängen, durch „Pseudo-Feature maps“ auf den minimalen darstellbaren Wert (µ) gesetzt werden.
  • Innerhalb des Kastens 110b ist beispielhaft dargestellt, wie gemäß Block 115 mindestens eine Verarbeitungsschicht 11-13 des KNN 1 so angepasst werden kann, dass sie bezüglich der N diskreten Klassen 12a-12d ausschließlich Konfidenzen 13a-13d ausgibt, die höher sind als der minimal darstellbare Wert µ. Gemäß Block 116 kann dies insbesondere beispielsweise durch Anpassung der Aktivierungsfunktion von Neuronen oder anderen Verarbeitungseinheiten erfolgen. Gemäß Unterblock 116a kann zu diesem Zweck insbesondere beispielsweise eine Aktivierungsfunktion durch eine gleichrichtende Funktion, wie etwa die ReLU-Funktion, ersetzt werden.
  • In 2 ist veranschaulicht, wie der Schritt 110a im Kontext des Verfahrens 100 wirkt. Die im Schritt 110a erstellte Liste 23 enthält zu Beginn zwei „Pseudo-Konfidenzen“ 23a, 23b mit dem minimal darstellbaren Wert (µ) und wird dann mit den Konfidenzen 13a-13d, die im Kontext der Liste 23 mit 23c-23f bezeichnet sind, fortgesetzt.
  • In der Liste 23 hat jede („Pseudo-“ oder echte) Konfidenz 23a-23f eine Identifikationsnummer 25a-25f, die seinen Platz in der Liste 23 bezeichnet. Aus den Konfidenzen 23a-23f in Verbindung mit diesen Identifikationsnummern 25a-25f werden in Schritt 120 die erweiterten Konfidenzen 24a-24f in der Liste 24 gebildet.
  • Da die „Pseudo-Konfidenzen“ 23a, 23b am Anfang der Liste 23 stehen, haben die Identifikationsnummern 25a, 25b ihrer Plätze in der Liste 23 die niedrigsten Werte. Bei der numerischen Sortierung der Liste 24 in Schritt 130 führt diese Kombination aus den niedrigsten möglichen Konfidenzen 23a, 23b in Verbindung mit den niedrigsten möglichen Identifikationsnummern 25a, 25b dazu, dass die entsprechenden erweiterten Konfidenzen 24a, 24b zu den letzten Elementen 24e*, 24f* der sortierten Liste 24* werden. Dies gilt auch dann, wenn andere Konfidenzen 13a-13d, 23c-23f ebenfalls den kleinstmöglichen Wert (µ) haben.
  • Dementsprechend sind die ersten N Elemente 24a*-24d* der Liste 24* das Sortierungsergebnis der erweiterten Konfidenzen 24c-24f, das sich nur auf gültige Klassen 12a-12d bezieht. Dieses Sortierungsergebnis kann gemäß Schritt 140 als die nach Konfidenzen 13a-13d geordnete Rangfolge 12 verwendet werden. Die in den Elementen 24a*-24d* enthaltenen Identifikationsnummern 25a-25d müssen noch um die Anzahl der „Pseudo-Konfidenzen“ 23a, 23b, hier 2, vermindert werden und entsprechen dann den Nummern der Klassen 12a-12d, auf die die Konfidenzen 13a-13d, 23c-23f, sich beziehen.
  • Zum Vergleich ist in 3 veranschaulicht, wie der Schritt 110b im gleichen Kontext wirkt. Alle „echten“ Konfidenzen 13a-13d bekommen hier Werte, die größer sind als der minimal darstellbare Wert (µ). Die „Pseudo-Konfidenzen“ 23e, 23f, die hier am Ende der Liste 23 gezeichnet sind, aber auch an beliebiger anderer Stelle in der Liste 23 sitzen können, sind daher von vornherein dazu „verdammt“, bei der numerischen Sortierung in Schritt 130 am Ende der sortierten Liste 24* zu landen. Daher stellt sich der gleiche Effekt ein wie in 2 skizziert, nämlich, dass die ersten N Elemente 24a*-24d* der sortierten Liste 24* die gewünschte Rangfolge 12 enthalten. Die in diesen Elementen 24a*-24d* enthaltenen Identifikationsnummern 25a-25d entsprechen unmittelbar den Nummern der Klassen 12a-12d, auf die die Konfidenzen 13a-13d, 23a-23d sich beziehen.
  • 4 zeigt ein Ausführungsbeispiel des Verfahrens 200 mit der vollständigen Wirkkette bis hin zur Ansteuerung technischer Systeme. In Schritt 210 wird ein trainiertes KNN 1 bereitgestellt. In Schritt 220 wird das KNN 1 gemäß dem Verfahren 100 betrieben. Hierbei werden Konfidenzen 13a-13d sowie eine nach diesen Konfidenzen 13a-13d geordnete Rangfolge 12 der Klassen 12a-12d erhalten.
  • In Schritt 230 werden die Konfidenzen 13a-13d, und/oder die Rangfolge 12, zu mindestens einem Ansteuersignal 230a verarbeitet. In Schritt 240 wird ein Fahrzeug 50, ein Spracherkennungssystem 60, ein System 70 für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder ein System 80 für die Überwachung eines Bereichs, und/oder ein System 90 für die medizinische Bildgebung, mit dem Ansteuersignal 230a angesteuert.
  • 5 veranschaulicht die Realisierung des Verfahrens 100 unter Zuhilfenahme einer Hardwareplattform 2, die ein Rechenwerk 21 für die Ausübung der Funktion mindestens einer Verarbeitungsschicht 11-13 des KNN 1 sowie die dedizierte Baugruppe 22 für die Umkodierung 120 und Sortierung 130 in einer integrierten Schaltung 20 vereint.
  • Die in das KNN 1 eingegebenen Daten 10 werden von dem Rechenwerk 21 verarbeitet. Wenn die Generierung der Liste 23 in der beschriebenen Weise durch Anpassung von Verarbeitungsschichten 11-13 des KNN 1 realisiert werden kann, dann kann die Liste 23 mit den insgesamt M Konfidenzen 23a-23f innerhalb der integrierten Schaltung 20 erzeugt und mit höchster Bandbreite an die dedizierte Baugruppe 22 übergeben werden. Die Geschwindigkeit, mit der die hardwarebeschleunigte dedizierte Baugruppe 22 das Umkodieren 120 und Sortieren 130 bewältigt, kann daher voll ausgeschöpft werden, um schnellstmöglich die nach Konfidenzen 13a-13d geordnete Rangfolge 12 zu erhalten.

Claims (15)

  1. Verfahren (100) zum Betreiben eines künstlichen neuronalen Netzwerks, KNN (1), auf einer Hardwareplattform (2), wobei das KNN (1) für die Ermittlung von Konfidenzen (13a-13d) ausgebildet ist, mit denen eingegebene Daten (10) N diskreten Klassen (12a-12d) zuzuordnen sind, und wobei die Hardwareplattform (2) eine dedizierte Baugruppe (22) aufweist, die dazu ausgebildet ist, • aus einer Liste (23) von M > N Konfidenzen (23a-23f) jeweils erweiterte Konfidenzen (24a-24f) zu bilden, indem in jede Konfidenz (23a-23f) eine Identifikationsnummer (25a-25f) ihres Platzes in der Liste (23) einkodiert wird (120), und • die erweiterten Konfidenzen (24a-24f) numerisch zu sortieren (130), wobei • der dedizierten Baugruppe (22) Konfidenzen 1, ..., M-N (23a, 23b), die den minimalen darstellbaren Wert (µ) haben, sowie Konfidenzen M-N+1, ..., M (13a-13d; 23c-23f), die zu den N diskreten Klassen (12a-12d) korrespondieren, zugeführt werden (110a), und/oder • sichergestellt wird, dass diejenigen der dedizierten Baugruppe (22) zugeführten Konfidenzen (13a-13d; 23c-23f), die zu einer der N diskreten Klassen (12a-12d) korrespondieren, einen höheren als den minimalen darstellbaren Wert (µ) haben, und wobei eine nach Konfidenzen (13a-13d) geordnete Rangfolge (12) der Klassen (12a-12d), denen die eingegebenen Daten (10) zuzuordnen sind, aus den ersten N der numerisch sortierten erweiterten Konfidenzen (24a*-24f*) ermittelt wird (140).
  2. Verfahren (100) nach Anspruch 1, wobei die dedizierte Baugruppe (22) dazu ausgebildet ist, in die niederwertigsten Bits einer binären Darstellung einer jeden Konfidenz (23a-23f) in der Liste (23) die Identifikationsnummer (25a-25f) des Platzes dieser Konfidenz (23a-23f) in der Liste (23) einzukodieren.
  3. Verfahren (100) nach einem der Ansprüche 1 bis 2, wobei mindestens eine Verarbeitungsschicht (11-13) des KNN (1) dahingehend angepasst wird (111), dass sie Konfidenzen 1, ..., M-N (23a, 23b), die den minimalen darstellbaren Wert (µ) haben, sowie Konfidenzen M-N+1, ..., M (13a-13d; 23c-23f), die zu den N diskreten Klassen (12a-12d) korrespondieren, ausgibt.
  4. Verfahren (100) nach Anspruch 3, wobei die mindestens eine Verarbeitungsschicht (11-13) des KNN (1) eine Faltungsschicht ist, die durch Filterparameter charakterisierte Filter auf die Eingabe dieser Verarbeitungsschicht (11-13) anwendet, und wobei das Anpassen (111) dieser Verarbeitungsschicht (11-13) beinhaltet, Filterparameter, die auf die Konfidenzen 1, ..., M-N (23a, 23b) wirkende Filter charakterisieren, auf Null zu setzen (112).
  5. Verfahren (100) nach Anspruch 4, wobei das Anpassen (111) der Verarbeitungsschicht (11-13) weiterhin beinhaltet, eine nach dem Anwenden von Filtern mit auf Null gesetzten Filterparametern erhaltene Ausgabe durch Anwenden eines konstanten Offsets auf den minimalen darstellbaren Wert (µ) zu setzen (113).
  6. Verfahren (100) nach einem der Ansprüche 3 bis 5, wobei das Anpassen der Verarbeitungsschicht (11-13) beinhaltet, Teile ihrer Eingabe, von denen die Konfidenzen 1, ..., M-N (23a, 23b) abhängen, auf den minimalen darstellbaren Wert (µ) zu setzen (114).
  7. Verfahren (100) nach einem der Ansprüche 1 bis 6, wobei mindestens eine Verarbeitungsschicht (11-13) des KNN (1) dahingehend angepasst wird (115), dass sie bezüglich der N diskreten Klassen (12a-12d) ausschließlich Konfidenzen (13a-13d) ausgibt, die höher sind als der minimale darstellbare Wert (µ).
  8. Verfahren (100) nach Anspruch 7, wobei das Anpassen (115) der Verarbeitungsschicht (11-13) beinhaltet, Aktivierungsfunktionen von Neuronen oder anderen Verarbeitungseinheiten so anzupassen (116), dass sie nur höhere Werte als den minimalen darstellbaren Wert ausgeben.
  9. Verfahren (100) nach Anspruch 8, wobei mindestens eine Aktivierungsfunktion in der Verarbeitungsschicht (11-13) durch eine gleichrichtende Funktion ersetzt wird (116a).
  10. Verfahren (100) nach einem der Ansprüche 1 bis 9, wobei eine Hardwareplattform (2) gewählt wird (105), die zusätzlich zu der dedizierten Baugruppe (22) mindestens ein mit der Baugruppe in einer gemeinsamen integrierten Schaltung (20) angeordnetes Rechenwerk (21) für die Ausübung der Funktion mindestens einer Verarbeitungsschicht (11-13) des KNN (1) umfasst.
  11. Verfahren (100) nach einem der Ansprüche 1 bis 10, wobei physikalische Messdaten (3a), die mit mindestens einem Sensor (3) erfasst wurden, in das KNN (1) eingegeben werden (106) und wobei die diskreten Klassen (12a-12d) • Verkehrszeichen, andere Verkehrsteilnehmer, Fahrbahnbegrenzungen und/oder sonstige Objekte, deren Vorhandensein eine Anpassung des Verhaltens eines den Sensor (3) tragenden Fahrzeugs erforderlich machen kann, und/oder • unterschiedliche semantische Bedeutungen der Messdaten (3a) im Hinblick auf eine Verarbeitung von mit dem Sensor (3) aufgenommener Sprache, und/oder • unterschiedliche Qualitätsstufen von in Serie gefertigten Produkten, die mittels des Sensors (3) einer Qualitätskontrolle unterzogen werden, und/oder • unterschiedliche Quellen von Geräuschen, und/oder unterschiedliche Typen von Objekten, deren Auftauchen in einem mittels des Sensors (3) überwachten Bereich ein für diesen Bereich sicherheitsrelevantes Ereignis darstellen kann, und/oder • qualitativ unterschiedliche Zustände einer mittels des Sensors (3) untersuchten biologischen Probe, repräsentieren.
  12. Verfahren (200) mit den Schritten: • ein trainiertes künstliches neuronales Netzwerk, KNN (1), wird bereitgestellt (210); • das KNN (1) wird mit dem Verfahren (100) nach einem der Ansprüche 1 bis 11 betrieben (220), indem es physikalische Messdaten (3a), die mit mindestens einem Sensor (3) erfasst wurden, auf Konfidenzen (13a-13d) abbildet, mit denen es diese Messdaten (3a) N diskreten Klassen (12a-12d) zuordnet, und eine nach Konfidenzen (13a-13d) geordnete Rangfolge (12) der Klassen (12a-12d) ermittelt wird; • die Konfidenzen (13a-13d), und/oder die Rangfolge (12), werden zu mindestens einem Ansteuersignal (230a) verarbeitet (230); • ein Fahrzeug (50), und/oder ein Spracherkennungssystem 60, und/oder ein System (70) für die Qualitätskontrolle von in Serie gefertigten Produkten, und/oder ein System (80) für die Überwachung eines Bereichs, und/oder ein System (90) für die medizinische Bildgebung, wird mit dem Ansteuersignal (230a) angesteuert (240).
  13. Computerprogramm, enthaltend maschinenlesbare Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer dazu veranlassen, ein Verfahren (100, 200) nach einem der Ansprüche 1 bis 12 auszuführen.
  14. Maschinenlesbarer Datenträger und/oder Downloadprodukt mit dem Computerprogramm nach Anspruch 13.
  15. Computer, ausgerüstet mit dem Computerprogramm nach Anspruch 13, und/oder mit dem maschinenlesbaren Datenträger und/oder Downloadprodukt nach Anspruch 14.
DE102019218947.4A 2019-12-05 2019-12-05 Hardwarebeschleunigter Betrieb künstlicher neuronaler Netzwerke Pending DE102019218947A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102019218947.4A DE102019218947A1 (de) 2019-12-05 2019-12-05 Hardwarebeschleunigter Betrieb künstlicher neuronaler Netzwerke
US17/103,705 US11620817B2 (en) 2019-12-05 2020-11-24 Hardware-accelerated operation of artificial neural networks
CN202011402793.1A CN112926734A (zh) 2019-12-05 2020-12-04 人工神经网络的硬件加速运行

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102019218947.4A DE102019218947A1 (de) 2019-12-05 2019-12-05 Hardwarebeschleunigter Betrieb künstlicher neuronaler Netzwerke

Publications (1)

Publication Number Publication Date
DE102019218947A1 true DE102019218947A1 (de) 2021-06-10

Family

ID=75962145

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019218947.4A Pending DE102019218947A1 (de) 2019-12-05 2019-12-05 Hardwarebeschleunigter Betrieb künstlicher neuronaler Netzwerke

Country Status (3)

Country Link
US (1) US11620817B2 (de)
CN (1) CN112926734A (de)
DE (1) DE102019218947A1 (de)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5912986A (en) * 1994-06-21 1999-06-15 Eastman Kodak Company Evidential confidence measure and rejection technique for use in a neural network based optical character recognition system
US10685235B2 (en) * 2017-12-28 2020-06-16 Microsoft Technology Licensing, Llc Querying video data with reduced latency and cost
CN111144399B (zh) * 2018-11-06 2024-03-05 富士通株式会社 处理图像的装置和方法
CN110222718B (zh) * 2019-05-09 2023-11-03 华为技术有限公司 图像处理的方法及装置

Also Published As

Publication number Publication date
US20210174108A1 (en) 2021-06-10
US11620817B2 (en) 2023-04-04
CN112926734A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
DE102005026040B4 (de) Parametrierung eines Simulations-Arbeitsmodells
DE102017218889A1 (de) Unscharf parametriertes KI-Modul sowie Verfahren zum Betreiben
DE10316381A1 (de) Verfahren zum Training von neuronalen Netzen
EP3948688A1 (de) Training für künstliche neuronale netzwerke mit besserer ausnutzung der lern-datensätze
DE102019124018A1 (de) Verfahren zum Optimieren von Tests von Regelsystemen für automatisierte Fahrdynamiksysteme
DE102017218851A1 (de) Verfahren, Vorrichtung und Computerprogramm zur Erstellung eines tiefen neuronalen Netzes
DE102019218947A1 (de) Hardwarebeschleunigter Betrieb künstlicher neuronaler Netzwerke
DE102020119853B3 (de) Verfahren zum Steuern eines Automatisierungssystems mit Visualisierung von Programmobjekten eines Steuerprogramms des Automatisierungssystems und Automatisierungssystem
WO2020216622A1 (de) Erkennung und behebung von rauschen in labels von lern-daten für trainierbare module
EP3637354A1 (de) Verfahren zur suche eines programmcodes für ein elektronisches gerät in einer datenbank
DE102022207482B4 (de) Computerimplementiertes Verfahren zum Bestimmen eines Datenqualitätsindex, Computerprogramm und Steuereinheit
DE102016113310A1 (de) Verfahren zur Bewertung von Aussagen einer Mehrzahl von Quellen zu einer Mehrzahl von Fakten
DE102021204343A1 (de) Steuergerät zum Erzeugen von Trainingsdaten zum Trainieren eines Algorithmus des maschinellen Lernens
WO2022152683A1 (de) Ermitteln einer konfidenz eines künstlichen neuronalen netzwerks
DE102020213830A1 (de) Verfahren und System zur Bereitstellung einer Diagnoseinformation
DE102021204059A1 (de) Verarbeiten eines Bildes
WO2020193481A1 (de) Verfahren und vorrichtung für training und herstellung eines künstlichen neuronalen netzes
Kim Global Sensitivity Analysis of Life Cycle Assessment
DE102022206892A1 (de) Verfahren zum Bestimmen einer optimalen Architektur eines künstlichen neuronalen Netzes
DE102022207072A1 (de) Verfahren zum Ermitteln einer optimalen Architektur eines künstlichen neuronalen Netzes
DE102021123597A1 (de) Verfahren und Steuergerät zur automatisierten Applikation von Fahrerassistenzsystemen im Serienbetrieb
EP4307121A1 (de) Computerimplementiertes verfahren zum konfigurieren eines virtuellen testsystems und trainingsverfahren
DE102007043870A1 (de) Verfahren und Vorrichtung zur Klassifikation von Daten
DE102020211996A1 (de) Vorrichtung und Verfahren zum Automatisieren des maschinellen Lernens
DE102020206506A1 (de) Verfahren zum Testen unterschiedlicher Architekturen eines künstlichen neuronalen Netzes