DE102018128080A1 - Verfahren und Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes - Google Patents

Verfahren und Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes Download PDF

Info

Publication number
DE102018128080A1
DE102018128080A1 DE102018128080.7A DE102018128080A DE102018128080A1 DE 102018128080 A1 DE102018128080 A1 DE 102018128080A1 DE 102018128080 A DE102018128080 A DE 102018128080A DE 102018128080 A1 DE102018128080 A1 DE 102018128080A1
Authority
DE
Germany
Prior art keywords
sample
artificial neural
parameters
neural network
fractional
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
DE102018128080.7A
Other languages
English (en)
Inventor
Do-Yun Kim
Han-young YIM
Byeoung-su KIM
Nak-woo Sung
Jong-Han Lim
Sang-Hyuck Ha
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102018128080A1 publication Critical patent/DE102018128080A1/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/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • 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
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/047Probabilistic or stochastic networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Nonlinear Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Feedback Control In General (AREA)

Abstract

Ein Quantisierungsverfahren für ein künstliches neuronales Netzwerk zum Erzeugen eines künstlichen neuronalen Ausgabe-Netzwerkes durch Quantisieren eines künstlichen neuronalen Eingabe-Netzwerkes enthält: Erhalten zweiter Parameter durch Quantisieren erster Parametern des künstlichen neuronalen Eingabe-Netzwerkes; Erhalten einer Probenverteilung von einem künstlichen neuronalen Zwischen-Netzwerk, in welchem die erhaltenen zweiten Parameter auf das künstliche neuronale Eingabe-Netzwerk angewendet wurden; und Erhalten einer Fraktionallänge für die erhaltene Probenverteilung durch Quantisieren der erhaltenen Probenverteilung.

Description

  • HINTERGRUND
  • Vorrichtungen und Verfahren, die mit einer oder mehreren beispielhaften Ausführungsformen übereinstimmen, betreffen ein künstliches neuronales Netzwerk, und insbesondere ein Verfahren und eine Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerks.
  • Ein künstliches neuronales Netzwerk (KNN) kann eine Rechenvorrichtung betreffen oder ein Verfahren, das von einer Rechenvorrichtung ausgeführt wird, um miteinander verbundene Sätze künstlicher Neuronen (oder Neuronenmodellen) zu erzeugen. Künstliche Neuronen können Ausgabedaten erzeugen, indem sie einfache Operationen an den Eingabedaten ausführen, und die Ausgabedaten können an andere künstliche Neuronen übertragen werden. Ein tiefgehendes neuronales Netzwerk (bzw. Deep-Neural-Network) (DNN) oder eine tiefgehende Lernarchitektur (bzw. Deep-Learning-Architektur), als ein Beispiel für ein KNN, können eine Mehrschichtstruktur aufweisen. Schichten eines KNN können Parameter aufweisen und es können mehrere Probenverteilungen erzeugt werden, indem jede der Schichten entsprechend mehreren Proben trainiert wird.
  • ZUSAMMENFASSUNG
  • Aspekte einer oder mehreren beispielhaften Ausführungsformen sehen ein Verfahren und eine Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes (KNN) vor, durch welches ein beliebiges KNN mit einer hohen Genauigkeit quantisiert wird.
  • Gemäß einem Aspekt einer beispielhaften Ausführungsform ist ein Quantisierungsverfahren für ein künstliches neuronales Netzwerk (KNN) zum Erzeugen eines Ausgabe-KNN durch Quantisieren eines Eingabe-KNN vorgesehen, wobei das KNN-Quantisierungsverfahren enthält: Erhalten zweiter Parameter durch Quantisieren erster Parametern des Eingabe-KNN; Erhalten einer Probenverteilung von einem Zwischen-KNN, in welchem die erhaltenen zweiten Parameter auf das Eingabe-KNN angewendet wurden; und Erhalten einer Fraktionallänge (bzw. Nachkommastellenlänge) für die erhaltene Probenverteilung durch Quantisieren der erhaltenen Probenverteilung.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist eine Vorrichtung zum Erzeugen eines künstlichen neuronalen Ausgabe-Netzwerkes (bzw. Ausgabe-KNN) durch Quantisieren eines Eingabe-KNN vorgesehen, wobei die Vorrichtung enthält: einen Speicher, der computerausführbare Anweisungen speichert; und zumindest einen Prozessor, der konfiguriert ist, die gespeicherten computerausführbaren Anweisungen auszuführen: einen Parameterquantisierer, der konfiguriert ist, durch Quantisieren erster Parameter des Eingabe-KNN zweite Parameter zu erhalten; eine neuronale Netzwerkschnittstelle, die konfiguriert ist, eine Probenverteilung von einem Zwischen-KNN zu erhalten, in welchem die erhaltenen zweiten Parameter auf das Eingabe-KNN angewendet wurden; und einen Probenquantisierer, der konfiguriert ist, eine Fraktionallänge für die erhaltene Probenverteilung zu erhalten.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist ein Verfahren zur Quantisierung eines neuronalen Gleitkomma-Netzwerkes vorgesehen, wobei das Verfahren enthält: Erhalten von quantisierten Parametern durch Quantisieren von Parametern in einer gleichen Kategorie in dem neuronalen Gleitkomma-Netzwerk; Erhalten einer Probenverteilung von einem künstlichen neuronalen Semi-Festkomma-Netzwerk (Semi-Festkomma-KNN), in welchem die erhaltenen quantisierten Parametern auf das neuronale Gleitkomma-Netzwerk angewendet wurden; und Erhalten einer Fraktionallänge für die erhaltene Probenverteilung.
  • Gemäß einem Aspekt einer anderen beispielhaften Ausführungsform ist eine Vorrichtung zur Quantisierung eines neuronalen Gleitkomma-Netzwerkes (Gleitkomma-KNN) vorgesehen, wobei die Vorrichtung enthält: einen Speicher, der computerausführbare Anweisungen speichert; und zumindest einen Prozessor, der konfiguriert ist, die gespeicherten computerausführbaren Anweisungen auszuführen; einen Parameterquantisierer, der konfiguriert ist, quantisierte Parameter zu erhalten durch Quantisieren von Parametern in einer gleichen Kategorie in dem neuronalen Gleitkomma-Netzwerk; eine neuronale Netzwerkschnittstelle, die konfiguriert ist, eine Probenverteilung von einem künstlichen neuronalen Semi-Festkomma-Netzwerk (Semi-Festkomma-KNN) zu erhalten, in welchem die erhaltenen Parameter auf das neuronale Gleitkomma-Netzwerk angewendet wurden; und einen Probenquantisierer, der konfiguriert ist, eine Fraktionallänge für die erhaltene Probenverteilung zu erhalten.
  • Figurenliste
  • Eine oder mehrere beispielhafte Ausführungsformen werden anhand der folgenden detaillierten Beschreibung in Kombination mit den begleitenden Zeichnungen besser verstanden werden, in welchen:
    • 1 ein Blockschaubild eines Quantisierungssystems und eines neuronalen Netzwerksystems gemäß einer beispielhaften Ausführungsform ist;
    • 2 ein Schaubild ist, das ein Beispiel eines künstlichen neuronalen Netzwerkes (KNN) zeigt, gemäß einer beispielhaften Ausführungsform;
    • 3 ein Flussdiagramm eines Verfahrens zur Quantisierung eines KNN ist, gemäß einer beispielhaften Ausführungsform;
    • 4 ein Flussdiagramm eines Beispiels für den Vorgang S200 von 3 ist, gemäß einer beispielhaften Ausführungsform;
    • 5 ein Flussdiagramm eines Beispiels für den Vorgang S600 von 3 ist, gemäß einer beispielhaften Ausführungsform;
    • 6A-6C ein Beispiel für den Vorgang S620 von 5 zeigen, gemäß einer beispielhaften Ausführungsform;
    • 7 ein Flussdiagramm eines Beispiels für den Vorgang S660 von 5 ist, gemäß einer beispielhaften Ausführungsform;
    • 8 ein Flussdiagramm eines Beispiels für den Vorgang S680 von 3 ist, gemäß einer beispielhaften Ausführungsform;
    • 9 ein Flussdiagramm eines Beispiels für den Vorgang S682 von 8 ist, gemäß einer beispielhaften Ausführungsform;
    • 10A und 10B Flussdiagramme von Beispielen für den Vorgang S684 von 8 sind, gemäß einer oder mehreren beispielhaften Ausführungsformen;
    • 11 ein Blockdiagramm eines Rechensystems gemäß einer beispielhaften Ausführungsform ist; und
    • 12 ein Blockdiagramm einer mobilen Rechenvorrichtung gemäß einer beispielhaften Ausführungsform ist.
  • DETAILLIERTE BESCHREIBUNG VON BEISPIELHAFTEN AUSFÜHRUNGSFORMEN
  • Im Folgenden werden eine oder mehrere beispielhafte Ausführungsformen zusammen mit den sie begleitenden Zeichnungen ausführlich beschrieben, wobei sich gleichartige Bezugszeichen durchgängig auf gleichartige Elemente beziehen. Wie hierin verwendet umfasst der Begriff „und/oder“ alle Kombinationen von einem oder mehreren der zugehörigen aufgeführten Elemente. Ebenso ändern Ausdrücke wie „zumindest eine(r) von“, wenn sie einer Liste von Elementen vorangestellt werden, die gesamte Liste von Elementen und ändern nicht die einzelnen Elemente der Liste.
  • 1 ist ein Blockdiagramm eines Quantisierungssystems 100 und eines neuronalen Netzwerksystems 200 gemäß einer beispielhaften Ausführungsform. Das neuronale Netzwerksystem 200 kann ein künstliches neuronales Netzwerk (KNN) bereitstellen, und das Quantisierungssystem 100 kann das durch das neuronale Netzwerksystem 200 bereitgestellte KNN quantisieren und kann dem neuronalen Netzwerksystem 200 ein KNN bereitstellen, von welchem zumindest ein Teil quantisiert worden ist.
  • Das KNN kann ein Rechensystem betreffen, das von einem biologischen neuronalen Netzwerk, welches ein Gehirn eines Tieres bildet, inspiriert ist. Das KNN kann lernen Aufgaben auszuführen, indem es mehrere Proben (oder Beispiele) berücksichtigt, im Gegensatz zu klassischen Algorithmen, die Aufgaben gemäß vordefinierten Bedingungen ausführen, wie zum Beispiel die regelbasierte Programmierung. Das KNN kann eine Struktur aufweisen, in welcher künstliche Neuronen (oder Neuronen) miteinander verbunden sind. Die Verbindung zwischen den Neuronen kann als Synapse bezeichnet werden. Jedes von den Neuronen kann ein empfangenes Signal verarbeiten und ein verarbeitetes Signal durch die Synapse zu einem anderen Neuron übertragen. Die Ausgabe des Neurons kann als „Aktivierung“ bezeichnet werden. Das Neuron und/oder die Synapse können sich ändernde Gewichtungen aufweisen, und der Einfluss eines von dem Neuron verarbeiteten Signals kann abhängig von seiner Gewichtung zunehmen oder abnehmen. Insbesondere kann die Gewichtung, die einem Einzelneuron zugeordnet ist, als Bias bezeichnet werden.
  • Ein tiefgehendes neuronales Netzwerk (DNN) oder eine tiefgehende Lemarchitektur kann eine Schichtstruktur aufweisen, und eine Ausgabe einer bestimmten Schicht kann eine Eingabe einer darauffolgenden Schicht sein. In solch einer Mehrschichtstruktur kann jede Schicht entsprechend mehreren Proben trainiert werden. Ein KNN, wie zum Beispiel das DNN, kann durch eine Mehrzahl von Verarbeitungsknoten realisiert sein, wobei jeder einem künstlichen Neuron entspricht, und kann eine hohe Rechenkomplexität und Rechenressourcen nutzen, um gute (z.B. hochgenaue) Ergebnisse zu erzielen.
  • Um die Rechenkomplexität zu reduzieren kann ein KNN quantisiert werden. Quantisierung kann einen Prozess betreffen bei welchem Eingabewerte einer Anzahl von Werten, die kleiner als die Anzahl der Eingabewerte ist, zugeordnet werden, ähnlich wie die Zuordnung einer reellen Zahl zu einer Ganzzahl durch Rundung. Quantisierung kann in einem KNN beispielsweise auf Schichtaktivierungen, Gewichtungen, Bias, Schwellenwerte, Eingabe/Ausgabe-Verteilungen) usw. angewendet werden. Ein quantisiertes KNN kann es ermöglichen, eine verringerte Anzahl von Rechenressourcen zu verwenden.
  • Die Quantisierung eines KNN kann mit einem Prozess der Umwandlung eines neuronalen Gleitkomma-Netzwerkes in ein neuronales Festkomma-Netzwerk einhergehen. Die Umwandlung eines neuronalen Gleitkomma-Netzwerkes in ein neuronales Festkomma-Netzwerk kann ein Bestimmen (z.B. Erhalten) einer Fraktionallänge (bzw. Nachkommastellenlänge) des neuronalen Festkomma-Netzwerkes enthalten. Gleitkommazahlen können Vorzeichen, Exponenten und signifikante Stellen (oder Mantisse) enthalten, während Festkommazahlen Ganzzahlteile (bzw. Vorkommaanteile) und Bruchteile (bzw. Nachkommaanteile) enthalten können. Bei manchen Beispielen können die Ganzzahlteile der Festkommazahlen Vorzeichenbits enthalten. Ein KNN, das Gleitkommazahlen verwendet, d.h. ein neuronales Gleitkomma-Netzwerk, kann eine hohe Genauigkeit und eine hohe Rechenkomplexität aufweisen, während ein KNN, das Festkommazahlen verwendet, d.h. ein neuronales Festkomma-Netzwerk, eine geringere Genauigkeit und geringere Rechenkomplexität aufweisen kann.
  • Aufgrund einer Austauschbeziehung zwischen Ergebnisgenauigkeit und Rechenkomplexität in dem KNN kann die Quantisierung des KNN zu einer Variation der Genauigkeit führen, und die Variation der Genauigkeit kann von einem Quantisierungsverfahren abhängen. Wie im Folgenden mit Bezug auf die Zeichnungen beschrieben kann das Quantisierungssystem 100 gemäß einer beispielhaften Ausführungsform ein effizientes Mittel zur Quantisierung eines KNN bereitstellen. Entsprechend kann das Quantisierungssystem 100 eine Quantisierung bezüglich eines beliebigen KNN bereitstellen und kann ein quantisiertes KNN mit der gleichen Leistungsfähigkeit wie die Leistungsfähigkeit des beliebigen KNN bereitstellen. Aufgrund des quantisierten KNN mit hoher Genauigkeit können die Rechenressourcen zum Ausführen des KNN verringert werden, und infolgedessen kann das Anwendungsnetzwerk des KNN erheblich erweitert werden.
  • Das neuronale Netzwerksystem 200 kann ein beliebiges System sein, das ein KNN bereitstellt (oder betreibt) und kann als eine neuronale Netzwerkvorrichtung bezeichnet werden. Zum Beispiel kann das neuronale Netzwerksystem 200 ein Rechensystem sein, das zumindest einen Prozessor und einen Speicher enthält. Als nicht einschränkendes Beispiel kann das neuronale Netzwerksystem 200 sowohl ein mobiles Rechensystem sein, wie zum Beispiel ein Laptop-Computer, ein Tablet-Computer oder ein Smartphone, als auch ein stationäres Rechensystem, wie zum Beispiel ein Desktop-Computer, eine Workstations oder ein Server.
  • Gemäß einer oder mehreren beispielhaften Ausführungsformen kann das neuronale Netzwerksystem 200 ein neuronales Gleitkomma-Netzwerk betreiben und kann dem Quantisierungssystem 100 Informationen über das neuronale Gleitkomma-Netzwerk bereitstellen. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann das neuronale Netzwerksystem 200 ein KNN gemäß der von dem Quantisierungssystem 100 empfangenen Information betreiben und kann dem Quantisierungssystem 100 Information über das betriebene KNN bereitstellen. In 1 sind das neuronale Netzwerksystem 200 und das Quantisierungssystem 100 getrennte Systeme. Allerdings können bei einer oder mehreren beispielhaften Ausführungsformen das neuronale Netzwerksystem 200 und das Quantisierungssystem 100 als Einzelsystem ausgebildet sein.
  • Das Quantisierungssystem 100 kann ein beliebiges System sein, das Quantisierung gemäß einer oder mehrerer beispielhaften Ausführungsformen durchführt und kann als eine Quantisierungsvorrichtung bezeichnet werden. Das Quantisierungssystem 100 kann beispielsweise ein Rechensystem sein, das zumindest einen Prozessor und einen Speicher enthält. Das Quantisierungssystem 100 kann ein stationäres Rechensystem oder ein mobiles Rechensystem sein. Das Quantisierungssystem 100 kann ein KNN quantisieren, basierend auf der von dem neuronalen Netzwerksystem 200 bereitgestellten Information über das KNN. Hier kann ein zu quantisierendes KNN als ein Eingabe-KNN bezeichnet werden, und ein KNN, das durch Quantisieren des Eingabe-KNN erzeugt wird, kann als ein Ausgabe-KNN bezeichnet werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann das Eingabe-KNN ein neuronales Gleitkomma-Netzwerk enthalten und das Ausgabe-KNN kann ein neuronales Festkomma-Netzwerk enthalten.
  • Wie in 1 dargestellt kann das Quantisierungssystem 100 eine neuronale Netzwerkschnittstelle 120, einen Parameterquantisierer 140 und einen Probenquantisierer 160 enthalten. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann jedes von der neuronalen Netzwerkschnittstelle 120, dem Parameterquantifizierer 140 und dem Probenquantifizierer 160 mit einem durch Logiksynthese implementierten Logikblock, einem von einem Prozessor ausgeführten Softwareblock, oder einer Kombination davon implementiert werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann jedes von der neuronalen Netzwerkschnittstelle 120, dem Parameterquantisierer 140 und dem Probenquantisierer 160 eine Prozedur sein, d.h. ein Satz von Anweisungen, welche von einem Prozessor ausgeführt werden, und können in einem Speicher gespeichert werden, auf den der Prozessor zugreifen kann.
  • Die neuronale Netzwerkschnittstelle 120 kann dem Parameterquantisierer 140 und dem Probenquantisierer 160 eine Schnittstelle für das neuronale Netzwerksystem 200 bereitstellen. Die neuronale Netzwerkschnittstelle 120 kann beispielsweise die Parameter eines Eingabe-KNN, die sie von dem neuronalen Netzwerksystem 200 empfängt, dem Parameterquantisierer 140 bereitstellen, und kann quantisierte Parameter, die sie von dem Parameterquantisierer 140 empfängt, dem neuronalen Netzwerksystem 200 bereitstellen. Darüber hinaus kann die neuronale Netzwerkschnittstelle 120 eine Probenverteilung, die sie von dem neuronalen Netzwerksystem 200 empfängt, dem Probenquantisierer 160 bereitstellen und kann eine quantisierte Probenverteilung, die sie von dem Probenquantisierer 160 empfängt, oder eine Fraktionallänge (z.B. FLsam von 5) dem neuronalen Netzwerksystem 200 bereitstellen.
  • Der Parameterquantisierer 140 kann die quantisierten Parameter (im Folgenden als Ausgabe-Parameter oder zweite Parameter bezeichnet) aus den Parametern erzeugen (z.B. erhalten), die er von dem neuronale Netzwerksystem 200 über die neuronale Netzwerkschnittstelle 120 empfängt (im Folgenden als Eingabe-Parameter oder erste Parameter bezeichnet). Wie unten mit Bezug auf 2 beschrieben kann ein KNN verschiedene Parameter enthalten, und eine Quantisierung des KNN kann eine Quantisierung dieser Parameter enthalten. Der Parameterquantisierer 140 kann zumindest einige der Parameter des Eingabe-KNN quantisieren und entsprechend können die Parameter des Eingabe-KNN vor der Probenverteilung quantisiert werden. Wie im Folgenden mit Bezug auf 2 beschrieben kann eine Quantisierung der Parameter getrennt von der Quantisierung der Probenverteilungen sein, weil Parameter und Probenverteilungen in einer KNN verschiedene Merkmale haben können. Der Parameterquantisierer 140 kann über die neuronale Netzwerkschnittstelle 120 die quantisierten Parameter dem neuronalen Netzwerksystem 200 bereitstellen. Beispiele eines Vorgangs des Parameterquantisierers 140 werden im Folgenden mit Bezug auf 4 beschrieben werden.
  • Der Probenquantisierer 160 kann quantisierte Probenverteilungen (im Folgenden als Ausgabe-Probenverteilungen bezeichnet) aus den Probenverteilungen erzeugen (z.B. erhalten), die er von dem neuronalen Netzwerksystem 200 über die neuronale Netzwerkschnittstelle 120 empfängt (im Folgenden als Eingabe-Probenverteilungen bezeichnet). Die Eingabe-Probenverteilungen können eine andere Form aufweisen als die artverwandten Verteilungen, wie zum Beispiel eine Gauß-Verteilung, eine Laplace-Verteilung und eine Gamma-Verteilung. Wie im Folgenden beschrieben braucht der Probenquantisierer 160 gemäß einer oder mehreren beispielhaften Ausführungsformen nicht bezüglich der Form der Probenverteilungen beschränkt sein und kann eine Quantisierung mit einer verbesserten Genauigkeit bereitstellen, bezogen auf eine Probenverteilung mit einer beliebigen Form.
  • Gemäß einer oder mehreren beispielhaften Ausführungsformen kann der Probenquantisierer 160 Probenverteilungen empfangen, die von einem KNN erzeugt werden, das durch Anwenden der von dem Parameterquantisierer 140 erhaltenen quantisierten Parameter auf das Eingabe-KNN erhalten wird. In der vorliegenden Beschreibung kann das KNN, das durch Anwenden der von dem Parameterquantisierer 140 erhaltenen quantisierten Parameter auf das Eingabe-KNN erhalten wird, als ein Zwischen-KNN bezeichnet werden. Insbesondere kann, während ein neuronales Gleitkomma-Netzwerk in ein neuronales Festkomma-Netzwerk umgewandelt wird, ein KNN, das durch Anwenden quantisierter Parameter auf das neuronale Gleitkomma-Netzwerk erhalten wird, als ein neuronales Semi-Festkomma-Netzwerk bezeichnet werden. Der Probenquantisierer 160 quantisiert Probenverteilungen, die durch die quantisierten Parameter erzeugt werden, die auf das quantisierte KNN, nämlich das Ausgabe-KNN, angewendet werden sollen. Somit kann eine Quantisierungsgenauigkeit bezüglich den Probenverteilungen des Ausgabe-KNN verbessert werden. Anders ausgedrückt können Quantisierungsfehler in Bezug auf die Probenverteilungen verringert werden. Beispiele eines Vorgangs des Probenquantisierers 160 werden im Folgenden mit Bezug auf 5, 6A - 6C, 7 - 9 und 10A - 10B beschrieben werden.
  • 2 ist ein Schaubild, das ein Beispiel eines KNN gemäß einer beispielhaften Ausführungsform zeigt. Im Detail ist 2 ein Schaubild, das die Struktur eines DNN 20, als ein Beispiel eines KNN, schematisch darstellt.
  • Wie in 2 gezeigt kann das DNN 20 eine Mehrzahl von Schichten enthalten, d.h. die ersten bis n-ten Schichten L1, L2, L3,... und Ln, und Ausgaben von jeder von den ersten bis n-ten Schichten L1, L2, L3, ... und Ln können in eine nachfolgende Schicht durch zumindest einen Kanal eingegeben werden. Zum Beispiel kann die erste Schicht L1 durch eine Mehrzahl von Kanälen CH11 bis CHlx der zweiten Schicht L2 Ausgaben bereitstellen, indem eine Probe SAM verarbeitet wird, und die zweite Schicht L2 kann durch eine Mehrzahl von Kanälen CH21 bis CH2y der dritten Schicht L3 auch Ausgaben bereitstellen. Schließlich kann die n-te Schicht Ln ein Ergebnis RES ausgeben, und das Ergebnis RES kann zumindest einen Wert enthalten, der der Probe SAM zugehörig ist. Die Anzahlen der Kanäle, durch welche die Ausgaben der ersten bis n-ten Schichten L1, L2, L3,... und Ln jeweils geliefert werden, können gleich sein oder voneinander verschieden sein. Zum Beispiel kann die Anzahl der Kanäle CH21 bis CH2y der zweiten Schicht L2 gleich der Anzahl der Kanäle CH31 bis CH3z der dritten Schicht L3 sein oder davon verschieden sein.
  • Die Probe SAM kann Eingabe-Daten entsprechen, die von dem DNN 20 verarbeitet werden. Die Probe SAM kann beispielsweise ein Bild sein, das einen von einer Person mit einem Stift geschriebenen Buchstaben enthält, und das DNN 20 kann durch Erkennen des Buchstabens aus dem Bild das Ergebnis RES ausgeben, das einen Wert enthält, der den Buchstaben repräsentiert. Das Ergebnis RES kann eine Mehrzahl von Wahrscheinlichkeiten enthalten, die verschiedenen Buchstaben entsprechen, und der wahrscheinlichste Buchstabe unter den verschiedenen Buchstaben kann einer höchsten Wahrscheinlichkeit entsprechen. Jede von den ersten bis n-ten Schichten L1, L2, L3,... und Ln des DNN 20 kann ihre eigenen Ausgaben erzeugen, durch Verarbeitung der Probe SAM oder den Ausgaben einer vorausgehenden Schicht basierend auf vordefinierten Parametern (z.B. Gewichtungen, Bias, Schwellenwerte, etc.) oder auf Parametern (z.B. Gewichtungen, Bias, Schwellenwerte, etc.), die durch Lernen einer Mehrzahl von Bildern, die Buchstaben enthalten, erzeugt werden. Wie in 2 gezeigt kann die zweite Schicht L2 beispielsweise einen Gewichtungssatz W, der eine Mehrzahl von Gewichtungen w1 ,... und wp enthält, einen Bias-Satz B, der eine Mehrzahl von Bias b1 ,..., und bq enthält, und einen Schwellenwertsatz T, der eine Mehrzahl von Schwellenwerten t1 ,..., und tr enthält, enthalten und kann ferner andere Parameter, die nicht spezifisch in 2 gezeigt werden, enthalten.
  • Gemäß einer oder mehreren beispielhaften Ausführungsformen können zumindest einige der Parameter der DNN 20 durch den Parameterquantisierer 140 von 1 quantisiert werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann der Parameterquantisierer 140 Parameter für jede von der Mehrzahl von Schichten L1, L2, L3,... und Ln unabhängig voneinander quantisieren oder kann Parameter für jeden von der Mehrzahl von Kanälen (z.B. CH 21,... und CH2y) unabhängig voneinander quantisieren. Gemäß einer oder mehreren beispielhaften Ausführungsformen können die Parameter von zumindest zwei Schichten gemeinsam quantisiert werden, und die Parameter von zumindest zwei Kanälen können gemeinsam quantisiert werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen können die Gewichtungen, die Bias und die Schwellenwerte unabhängig voneinander quantisiert werden, oder Parameter von zumindest zwei verschiedenen Arten können gemeinsam quantisiert werden. Eine oder mehrere beispielhafte Ausführungsformen werden im Folgenden unter Bezugnahme auf eine Darstellung von Quantisierungsgewichten als Parameter beschrieben, wobei davon ausgegangen wird, dass eine oder mehrere andere beispielhafte Ausführungsformen nicht darauf beschränkt sind.
  • Die DNN 20 kann eine Aktivierungsfunktion zwischen den Schichten enthalten. Die Aktivierungsfunktion kann eine Ausgabe einer vorausgehenden Schicht in eine Eingabe einer nachfolgenden Schicht umwandeln. Wie in 2 gezeigt kann beispielsweise eine Aktivierungsfunktion f2 eine nichtlineare Funktion sein, zum Beispiel eine gleichgerichtete lineare Einheit (ReLU), eine parametrisierte gleichgerichtete lineare Einheit (PReLU), ein Tangens Hyperbolicus (tanh) oder eine Sigmoidfunktion, und kann eine Ausgabe der zweiten Schicht L2 zwischen der zweiten Schicht L2 und der dritten Schicht L3 in nichtlinearer Weise umwandeln.
  • Gemäß einer oder mehreren beispielhaften Ausführungsformen kann der Probenquantisierer 160 von 1 als Probenverteilung nicht nur eine Eingabe einer Aktivierungsfunktion empfangen, nämlich einen Vor-Aktivierungswert, sondern auch eine Ausgabe der Aktivierungsfunktion, und kann Quantisierung ausführen. Darüber hinaus kann die neuronale Netzwerkschnittstelle 120 von 1 gemäß einer oder mehreren beispielhaften Ausführungsformen eine Eingabe-Verteilung in Einheiten von Schichten und/oder Kanälen des KNN (z.B. DNN 20) erhalten. Die Probenverteilungen, die von dem Probenquantisierer 160 von 1 empfangenen werden, können beispielsweise von den Ausgaben erhalten werden, die von einer Schicht durch eine Mehrzahl von Kanälen erzeugt werden, oder von einer Ausgabe, die einem Kanal entspricht.
  • 3 ist ein Flussdiagramm eines Verfahrens zur Quantisierung eines KNN, gemäß einer beispielhaften Ausführungsform. Zum Beispiel kann das Verfahren von 3 von dem Quantisierungssystem 100 von 1 ausgeführt werden. Im Folgenden wird 3 mit Bezug auf 1 beschrieben werden.
  • Bezugnehmend auf 3 können bei Vorgang S200 Parameter des KNN quantisiert werden. Zum Beispiel kann der Parameterquantisierer 140 von 1 quantisierte Parameter erzeugen, die einer gegebenen Fraktionallänge entsprechen, und eine endgültige Fraktionallänge (zum Beispiel FLpar von 4) für die Parameter kann basierend auf einem Quantisierungsfehler der quantisierten Parameter bestimmt werden. Ein Beispiel des Vorgangs S200 wird im Folgenden mit Bezug auf 4 beschrieben werden.
  • Bei Vorgang S400 können von einem KNN, auf welches die quantisierten Parameter angewendet wurden, Probenverteilungen erhalten werden. Der Parameterquantisierer 140 von 1 kann beispielsweise über die neuronale Netzwerkschnittstelle 120 die quantisierten Parameter dem neuronalen Netzwerksystem 200 bereitstellen, und das neuronale Netzwerksystem 200 kann ein Zwischen-KNN betreiben, das durch Anwenden der quantisierten Parameter auf ein Eingabe-KNN erhalten wird. Die neuronale Netzwerkschnittstelle 120 kann eine Probenverteilung des Zwischen-KNN von dem neuronale Netzwerksystem 200 empfangen, und kann die empfangene Probenverteilung als eine Eingabe-Probenverteilung dem Probenquantisierer 160 bereitstellen.
  • Bei Vorgang S600 können die Probenverteilungen quantisiert werden. Der Probenquantisierer 160 von 1 kann beispielsweise die Eingabe-Probenverteilung, die eine beliebige Form aufweist, in zumindest zwei Probengruppen aufteilen, und kann jede von den Probengruppen unabhängig voneinander an eine kontinuierliche Wahrscheinlichkeitsverteilung (CPD) approximieren. Der Probenquantisierer 160 kann basierend auf der kontinuierlichen Wahrscheinlichkeitsverteilung (CPD) eine optimale Schrittweite berechnen (z.B. erhalten) und kann von der berechneten Schrittweite eine Fraktionallänge (zum Beispiel FLsam von 5) zum Quantisieren der Eingabe-Probenverteilung bestimmen (z.B. erhalten). Beispiele des Vorgangs S600 werden im Folgenden mit Bezug auf 5, 6A - 6C, 7-9 und 10A -10B beschrieben werden.
  • 4 ist ein Flussdiagramm eines Beispiels des Vorgangs S200 von 3, gemäß einer beispielhaften Ausführungsform. Wie vorstehend mit Bezug auf 3 beschrieben können bei Vorgang S200' von 4 die Parameter des KNN quantisierten werden. Wie in 4 gezeigt kann Vorgang S200' eine Mehrzahl von Vorgängen S210 bis S260 enthalten. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann Vorgang S200' von 4 von dem Parameterquantisierer 140 von 1 ausgeführt werden. 4 wird nun mit Bezug auf 1 beschrieben werden.
  • Bei Vorgang S210 kann eine Initialisierung durchgeführt werden, indem eine Variable i gleich eins gesetzt wird. Die Variable i kann ein Index sein, der jede aus einer Mehrzahl von Fraktionallängen anzeigt, und Evaluierungswerte, die jeweils der Mehrzahl von Fraktionallängen entsprechen, können in darauffolgenden Vorgängen berechnet werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann die Mehrzahl von Fraktionallängen von einem System bestimmt (z.B. erhalten) werden, auf welchem ein quantisiertes KNN angebracht werden soll (z.B. 400 von 12). Zum Beispiel kann eine Mehrzahl von erhältlichen Fraktionallängen gemäß einer Bitbreite des Systems bestimmt werden. Bei dem Beispiel von 4 können, wenn k eine positive Ganzzahl ist, k Fraktionallängen FL1 , ... und FLk verwendet werden, und die Variable i kann sequentiell von 1 bis k ansteigen.
  • Bei Vorgang S220 können die Parameter gemäß einer i-ten Fraktionallänge FLi quantisiert werden und ein Quantisierungsfehler kann berechnet werden. Wenn eine Fraktionallänge gegeben ist, können die Parameter quantisiert werden, und der Quantisierungsfehler kann aus noch nicht quantisierten Parametern (d.h. Eingabeparameter oder erste Parameter) und aus quantisierten Parametern (d.h. Ausgabeparameter oder zweite Parameter) berechnet werden. Wenn eine Gewichtung, die aus einer Gewichtung wj gemäß der i-ten Fraktionallänge FLi quantisiert wird, beispielsweise Q(wj , FLi ) ist, kann ein Quantisierungsfehler Eij durch Verwenden von [Gleichung 1] berechnet werden. E i j = | w j Q ( w j , F L i ) |
    Figure DE102018128080A1_0001
  • Bei Vorgang S230 kann ein der i-ten Fraktionallänge FLi entsprechender Evaluierungswert berechnet werden. Der Evaluierungswert kann einen Wert anzeigen, welcher die Quantisierungsleistung repräsentiert, basierend auf dem Quantisierungsfehler von [Gleichung 1] oder einem Quantisierungsfehler, der anders als der Quantisierungsfehler von [Gleichung 1] definiert ist. Als nicht einschränkendes Beispiel kann der Evaluierungswert ein mittlerer quadratischer Fehler (MSE), ein Signal-Quantisierungsrausch-Verhältnis (SQNR) oder dergleichen sein. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann ein Evaluierungswert Dw (FLi ) für die in dem Gewichtungssatz W enthaltenen Gewichtungen bei der gegebenen i-ten Fraktionallänge FLi durch Verwenden von [Gleichung 2] berechnet werden. D w ( F L i ) = w j W ( E i j ) 2
    Figure DE102018128080A1_0002
  • Bei Vorgang S240 kann bestimmt werden, ob die Variablen i identisch zu k ist. Anders ausgedrückt kann überprüft werden, ob für alle k Fraktionallängen FL1, ... und FLk die Evaluierungswerte berechnet wurden. Wenn die Variable i nicht identisch mit k ist, kann bei Vorgang S250 die Variable i um 1 erhöht werden und dann kann Vorgang S220 ausgeführt werden. Andererseits kann, wenn die Variable i identisch mit k ist, der Vorgang S260 durchgeführt werden.
  • Bei Vorgang S260 kann eine Fraktionallänge FLpar für die Parameter bestimmt (z.B. erhalten) werden, basierend auf den Evaluierungswerten. Anders ausgedrückt können bei den Vorgängen S220 bis S240 k Evaluierungswerte berechnet werden und bei Vorgang S260 kann bestimmt werden, dass eine der k Fraktionallänge FL1, ... und FLk die Fraktionallänge FLpar für die Parameter ist. Zum Beispiel kann, wenn ein Evaluierungswert durch Verwenden von [Gleichung 2] berechnet wird, eine Fraktionallänge, die einem minimalen Evaluierungswert aus den k Evaluierungswerten entspricht, ausgewählt werden. Im Gegensatz zu den Probenverteilungen können die Parameter des Eingabe-KNN deterministische Werte sein und wie vorstehend beschrieben kann eine Fraktionallänge bestimmt werden, die einen Quantisierungsfehler minimiert. Das Verfahren von 4 ist bloß ein Beispiel des Vorgangs S200 von 3 und verschiedene Quantisierungsverfahren, die dem Verfahren von 4 ähnlich sind oder davon verschieden sind, können im technischen Umfang des erfinderischen Konzepts verwendet werden, um die Parameter zu quantisieren.
  • 5 ist ein Flussdiagramm eines Beispiels des Vorgangs S600 von 3, gemäß einer beispielhaften Ausführungsform. Wie oben mit Bezug auf 3 beschrieben können bei Vorgang S600' von 6 Probenverteilungen quantisiert werden. Im Detail zeigt 5 ein Beispiel des Quantisierens einer einzelnen Probenverteilung und wie in 5 gezeigt kann Vorgang S600' eine Mehrzahl von Vorgängen S620, S640, S660 und S680 enthalten. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann Vorgang S600' von 5 von dem Probenquantisierer 160 von 1 ausgeführt werden. 5 wird nun mit Bezug auf 1 beschrieben werden.
  • Bei Vorgang S620 kann eine Probenverteilung (oder eine Eingabe-Probenverteilung) in zumindest zwei Probengruppen aufgeteilt werden. Gemäß einer beispielhaften Ausführungsform können statistische Merkmale verwendet werden, um die Probenverteilung zu quantisieren. Entsprechend kann, um die statistischen Merkmale der Probenverteilung abzuleiten, die Probenverteilung in zumindest zwei Probengruppen SG1 , SG2 , ... aufgeteilt werden und die Probengruppen SG1 , SG2 ... können unabhängig voneinander approximiert werden. Ein Beispiel für Vorgang S620 wird im Folgenden mit Bezug auf 6 beschrieben werden.
  • Bei Vorgang S640 können die Probengruppen jeweilig an kontinuierliche Wahrscheinlichkeitsverteilungs approximiert werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen können die Merkmalsgruppen SG1 , SG2 ,..., die bei Vorgang S620 erzeugt werden, jeweilig an die kontinuierliche Wahrscheinlichkeitsverteilungen (CPDs) approximiert werden, durch Schätzen zumindest eines Parameters von jeder der kontinuierlichen Wahrscheinlichkeitsverteilungen (CPDs). Zum Beispiel kann jede von den Merkmalsgruppen an eine generalisierte Gamma-Verteilung, eine Gauß-Verteilung oder eine Laplace-Verteilung approximiert werden. Um die Parameter der kontinuierliche Wahrscheinlichkeitsverteilungen (CPDs) abzuschätzen, kann als nicht einschränkendes Beispiel ein Moment-verwendendes-Verfahren, das einen Mittelwert, eine Varianz oder dergleichen, verwendet, ein Maximum-Likelihood-Verfahren, ein numerisches rechenbasiertes Verfahren oder dergleichen verwendet werden. Entsprechend können zumindest zwei kontinuierliche Wahrscheinlichkeitsverteilungen (CPDs) CPD1, CPD2,..., die Parameter mit eindeutigen Werten aufweisen, aus den zumindest zwei Probengruppen SG1 , SG2 ,... berechnet werden.
  • Gemäß einer oder mehreren beispielhaften Ausführungsformen kann jede der Probengruppen SG1 , SG2 ,... an eine generalisierte Gamma-Verteilung p(x) mit vier Parametern α, β, λ und µ, wie in [Gleichung 3] gezeigt, approximiert werden. p ( x ) = μ | x | β e λ | x | α ,  wobei  < x < , β > 1,   α > 0,
    Figure DE102018128080A1_0003
    und α und β können exponentielle Zerfallsparameter sein. Wenn α = 1 können die vier Parameter α, β, λ und µ aus einem Mittelwert mx und einer Varianz σx 2 berechnet werden, entsprechend dem in [Gleichung 4] gezeigten Moment-verwendenden-Verfahren. α = 1, β = m x 2 / σ x 2 1, λ = m x / σ x 2 ,  and  μ = λ m x 2 / σ x 2 2 Γ ( m x 2 / σ x 2 )
    Figure DE102018128080A1_0004
  • Bei Vorgang S660 können Schrittweiten, die den Probengruppen entsprechen, berechnet werden. Anders ausgedrückt können die Schrittweiten aus den Probengruppen und den aus den Probengruppen abgeleiteten kontinuierlichen Wahrscheinlichkeitsverteilungen (CPDs) berechnet werden. Zum Beispiel kann aus einer Probengruppe und einer kontinuierlichen Wahrscheinlichkeitsverteilung (CPD) ein Quantisierungsfehler berechnet werden, und eine Schrittweite mit einem niedrigen Quantisierungsfehler kann berechnet werden. Entsprechend können die jeweiligen den Probengruppen entsprechenden Schrittweiten Δ1, Δ2, ... berechnet werden. Ein Beispiel des Vorgangs S660 wird im Folgenden mit Bezug auf 7 beschrieben werden.
  • Bei Vorgang S680 kann eine Fraktionallänge für die Probenverteilung ausgewählt werden. Zum Beispiel kann zumindest eine Kandidaten-Fraktionallänge aus den in Vorgang S660 berechneten Schrittweiten berechnet werden, und eine von den zumindest einen Kandidaten-Fraktionallängen kann als eine Fraktionallänge FLsam für die Probenverteilung ausgewählt werden. Beispiele des Vorgangs S680 werden im Folgenden mit Bezug auf 8, 9,10A und 10B beschrieben werden.
  • 6A-6C zeigen ein Beispiel des Vorgangs S620 von 5, gemäß einer beispielhaften Ausführungsform. Wie vorstehend mit Bezug auf 5 beschrieben kann bei Vorgang S620 eine Probenverteilung in zumindest zwei Probengruppen aufgeteilt werden. Im Detail zeigen 6A-6C ein Beispiel eines Vorgangs, bei dem eine Probenverteilung SD in zwei Probengruppen SG1 und SG2 aufgeteilt wird.
  • Bezugnehmend auf 6A kann die Probenverteilung SD von einem KNN, auf welches quantisierte Parameter angewendet wurden, bereitgestellt werden. Bezugnehmend auf 6B kann die Probenverteilung SD in zwei auf Null basierende Probengruppen SG1 und SG2 aufgeteilt werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann die Probenverteilung SD in eine erste Probengruppe SG1 , die negative Proben und Null enthält, und eine zweite Probengruppe SG2 , die positive Proben enthält, aufgeteilt werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann die Probenverteilung SD in eine erste Probengruppe SG1 , die negative Proben enthält, und eine zweite Probengruppe SG2 , die Null und positive Proben enthält, aufgeteilt werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann die Probenverteilung SD in eine erste Probengruppe SG1 , die negative Proben enthält, und eine zweite Probengruppe SG2 , die positive Proben enthält, aufgeteilt werden und die Null kann ausgenommen sein. Bezugnehmend auf 6C können die erste Probegruppe SG1 und die zweite Probengruppe SG2 unabhängig voneinander an eine erste kontinuierliche Wahrscheinlichkeitsverteilung CPD1 beziehungsweise eine zweite kontinuierliche Wahrscheinlichkeitsverteilung CPD2 approximiert werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann jede von der ersten Probengruppe SG1 und der zweiten Probengruppe SG2 an eine generalisierte Gamma-Verteilung approximiert werden, und Parameter der ersten kontinuierliche Wahrscheinlichkeitsverteilung CPD1 und der zweiten kontinuierlichen Wahrscheinlichkeitsverteilung CPD2 können durch Verwenden von [Gleichung 3] und [Gleichung 4] geschätzt werden.
  • 7 ist ein Flussdiagramm eines Beispiels des Vorgang S660 von 5, gemäß einer beispielhaften Ausführungsform. Wie oben mit Bezug auf 5 beschrieben können bei Vorgang S660' von 7 Schrittweiten berechnet werden, die den Probenverteilungen entsprechen. Im Detail zeigt 7 ein Beispiel einer Schrittweitenberechnung basierend auf einer einzelnen Probengruppe SGj und einer kontinuierlichen Wahrscheinlichkeitsverteilung CPDj, an welche die Probengruppe SGj approximiert worden ist. Wie in 7 gezeigt kann Vorgang S660' den Vorgang S662 und den Vorgang S664 enthalten.
  • Bei Vorgang S662 kann eine Überlast-Verzerrung und eine Granular-Verzerrung berechnet werden. Die Überlast-Verzerrung kann einen Fehler repräsentieren, der durch eine Eingabe verursacht wird, die von einem beschränkten Bereich abweicht, wenn die Eingabe in dem beschränkten Bereich quantisiert wird. Der Abstand zwischen den Quantisierungsergebnissen innerhalb des beschränkten Bereichs der Eingabe kann als Granularität bezeichnet werden, und die Granular-Verzerrung kann einen Fehler repräsentieren, der durch diesen Abstand verursacht wird. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann, wenn ein (-L, L)-Abschnitt gleichförmig quantisiert wird, ein Quantisierungsgrad Si wie in [Gleichung 5] dargestellt werden. S i = ( y i Δ 2 , y i + Δ 2 ) ,   1 i N
    Figure DE102018128080A1_0005
  • Entsprechend kann eine Überlast-Verzerrung D N o v e r ( L )
    Figure DE102018128080A1_0006
    wie in [Gleichung 6] definiert werden. D N o v e r ( L ) = L ( x y N ) 2 p ( x ) d x ,   y i = L + ( i 1 2 ) Δ
    Figure DE102018128080A1_0007
  • Eine Granular-Verzerrung D N g r a n ( L )
    Figure DE102018128080A1_0008
    kann wie in [Gleichung 7] definiert werden. D N g r a n ( L ) = i = 1 N S i ( x y i ) 2 p ( x ) d x ,   y i = L + ( i 1 2 ) Δ
    Figure DE102018128080A1_0009
  • Entsprechend können die Überlast-Verzerrung D N o v e r ( L )
    Figure DE102018128080A1_0010
    und die Granular-Verzerrung D N g r a n ( L ) ,
    Figure DE102018128080A1_0011
    die der Probengruppe SGj und der kontinuierlichen Wahrscheinlichkeitsverteilung CPDj entsprechen, berechnet werden.
  • Bei Vorgang S664 kann eine Schrittweite aus der Überlast-Verzerrung und der Granular-Verzerrung berechnet werden. Zum Beispiel kann wie in [Gleichung 8] gezeigt, eine Gesamtverzerrung Dj aus der Überlast-Verzerrung D N o v e r ( L )
    Figure DE102018128080A1_0012
    und der Granular-Verzerrung D N g r a n ( L )
    Figure DE102018128080A1_0013
    berechnet werden. D j = D j o v e r + D j g r a n
    Figure DE102018128080A1_0014
  • Gemäß einer oder mehreren beispielhaften Ausführungsformen kann, wenn die Überlast-Verzerrung D N o v e r ( L )
    Figure DE102018128080A1_0015
    und die Granular-Verzerrung D N g r a n ( L )
    Figure DE102018128080A1_0016
    durch Verwenden von [Gleichung 6] und [Gleichung 7] berechnet werden, eine Schrittweite ΔN berechnet werden, welche die Gesamtverzerrung Dj , welche eine Summe der Überlast-Verzerrung D N o v e r ( L )
    Figure DE102018128080A1_0017
    und der Granular-Verzerrung D N g r a n ( L )
    Figure DE102018128080A1_0018
    ist, minimiert. Zum Beispiel kann die Schrittweite ΔN, welche die Gesamtverzerrung Dj minimiert, durch Verwenden von [Gleichung 9] berechnet werden, wenn die kontinuierliche Wahrscheinlichkeitsverteilung CPDj eine generalisierte Gamma-Verteilung ist. Δ N = 2 L N / N ,  wobei  L N = [ 2  ln  N λ ( 2 1 + β α ) ln ln  N λ 1 λ ln ( 2 1 ( 1 + β ) α 2 λ ( 1 + β ) / α 3 μ ) + ε N ] 1 / α , ε N 1 λ ln [ ( 1 + 2 α  ln  N N ) ( 1 + 3 3 α + 2 β 2 α  ln  N ) ( 1 + 1 2  ln  N ( ( 2 1 + β α ln ln  N + ln ( 2 1 ( 1 + β ) α 2 λ ( 1 + β ) / α 3 μ ) ) ) 2 ( 1 + β ) / α ] Δ N = 2 L N / N L N = [ 2  ln  N λ ( 2 1 + β α ) ln ln  N λ 1 λ ln ( 2 1 ( 1 + β ) α 2 λ ( 1 + β ) / α 3 μ ) + ε N ] 1 / α , L N = [ 2  ln  N λ ( 2 1 + β α ) ln ln  N λ 1 λ ln ( 2 1 ( 1 + β ) α 2 λ ( 1 + β ) / α 3 μ ) + ε N ] 1 / α ,
    Figure DE102018128080A1_0019
  • Als solches kann die Schrittweite ΔN, welche die Gesamtverzerrung Dj minimiert, basierend auf einer geschlossenen Form berechnet werden. Im Gegensatz zur vorstehenden Beschreibung kann gemäß einer oder mehreren beispielhaften Ausführungsformen, wenn sich aus der kontinuierlichen Wahrscheinlichkeitsverteilung keine geschlossene Form ergibt, zur Berechnung einer Schrittweite eine numerische Analyse verwendet werden.
  • Wie vorstehend beschrieben kann die Schrittweite Δj, die der Probengruppe SGj entspricht, bei Vorgang S660' berechnet werden. Infolgedessen können zumindest zwei Schrittweiten berechnet werden, die jeweils zumindest zwei Probengruppen entsprechen. Wenn beispielsweise die Probenverteilung SD in die erste Probengruppe SG1 und die zweite Probengruppe SG2 aufgeteilt wird, wie vorstehend unter mit Bezug auf die 6A-6C beschrieben, können die erste Schrittweite Δ1 und die zweite Schrittweite Δ2, die der ersten Probengruppe SG1 bzw. der zweiten Probengruppe SG2 entsprechen, berechnet werden. 8, 9,10A und 10B, die Beispiele des Vorgangs S680 von 5 darstellen, der nach Vorgang S660 von 5 durchgeführt wird, werden nun unter der Annahme beschrieben werden, dass die Probenverteilung SD in die erste Probengruppe SG1 und die zweite Probengruppe SG2 aufgeteilt wird und die erste Schrittweite Δ1 und die zweite Schrittweite Δ2 werden berechnet. Es versteht sich jedoch, dass eine oder mehrere andere beispielhafte Ausführungsformen nicht darauf beschränkt sind.
  • 8 ist ein Flussdiagramm eines Beispiels des Vorgangs S680 von 3, gemäß einer beispielhaften Ausführungsform. Wie vorstehend mit Bezug auf 5 beschrieben kann bei Vorgang S680' von 8 die Fraktionallänge FLsam für eine Probenverteilung ausgewählt werden. Wie in 8 gezeigt kann Vorgang S680' den Vorgang S682 und den Vorgang S684 enthalten.
  • Bei Vorgang S682 können Kandidaten-Fraktionallängen berechnet werden. Ein Bereich der Kandidaten-Fraktionallängen kann beispielsweise aus der ersten Schrittweite Δ1 und der zweiten Schrittweite Δ2 bestimmt (z.B. erhalten) werden, und Fraktionallängen, die in dem Bereich enthalten sind, können als die Kandidaten-Fraktionallängen bereitgestellt werden. Entsprechend kann ein Kandidaten-Fraktionallängen-Satz FL_SET erzeugt werden, der zumindest eine Kandidaten-Fraktionallänge enthält. Ein Beispiel des Vorgangs S682 wird im Folgenden mit Bezug auf 9 beschrieben werden.
  • Bei Vorgang S684 kann eine Kandidaten-Fraktionallänge ausgewählt (z.B. erhalten oder bestimmt) werden. Eine Kandidaten-Fraktionallänge, die einen minimalen Quantisierungsfehler liefert, kann beispielsweise aus dem Kandidaten-Fraktionallängen-Satz FL_SET ausgewählt werden, und entsprechend kann die Fraktionallänge FLsam für die Probenverteilung schließlich berechnet werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann die Kandidaten-Fraktionallänge durch Verwenden verschiedener Verfahren ausgewählt werden, und einige Beispiele des Vorgangs S684 werden im Folgenden mit Bezug auf 10A und 10B beschrieben werden.
  • 9 ist ein Flussdiagramm eines Beispiels des Vorgangs S682 von 8, gemäß einer beispielhaften Ausführungsform. Wie vorstehend mit Bezug auf 8 beschrieben können bei Vorgang S682' von 9 Kandidaten-Fraktionallängen erzeugt werden. Wie in 9 gezeigt kann Vorgang S682' den Vorgang S682_2 und Vorgang S682_4 enthalten.
  • Bei Vorgang S682_2 kann ein Bereich der Kandidaten-Fraktionallängen bestimmt werden. Gemäß einer oder mehreren beispielhaften Ausführungsformen können die Fraktionallängen der Schrittweiten, die an die ersten und zweiten Schrittweiten Δ1 und Δ2 angrenzen, berechnet werden. Zum Beispiel können vier Fraktionallängen, die den Schrittweiten entsprechen, die an die erste Schrittweite Δ1 und die zweite Schrittweite Δ2 angrenzen, wie in [Gleichung 10] berechnet werden. FL 1 , ceil = ceil ( log 2 Δ 1 ) FL 1 , floor = floor ( log 2 Δ 1 ) FL 2 , ceil = ceil ( log 2 Δ 2 ) FL 2 , floor = floor ( log 2 Δ 2 )
    Figure DE102018128080A1_0020
  • In [Gleichung 10] kann „ceil ()“ eine Aufrundungsfunktion sein, und „FLOOR ()“ kann eine Abrundungsfunktion sein. Als nächstes wird der Bereich der Kandidaten-Fraktionallängen bestimmt werden, basierend auf einer maximalen Fraktionallänge und einer minimalen Fraktionallänge aus den berechneten Fraktionallängen. Der Kandidaten-Fraktionallängen-Satz SL_SET kann beispielsweise wie in [Gleichung 11] definiert werden. FL_SET = { x | min ( FL 1,  ceil , FL 1,  floor , FL 2,  ceil , FL 2,  floor ) M m a r g i n x max ( FL 1,  ceil , FL 1,  floor , FL 2,  ceil , FL 2,  floor ) + M m a r g i n }
    Figure DE102018128080A1_0021
  • In [Gleichung 11] können eine erste Toleranz Mmargin und eine zweite Toleranz Nmargin verwendet werden, um einen Fehler zu korrigieren, der aufgrund einer Differenz zwischen einer Eingabe-Probenverteilung und einer Probenverteilung, an welche die Eingabe-Probenverteilung approximiert wird, (d.h. eine CPD) auftreten kann. Wie in [Gleichung 11] kann eine untere Grenze der Kandidaten-Fraktionallängen als ein Wert bestimmt werden, der durch Subtraktion der ersten Toleranz Mmargin von einem Minimalwert der Parameter von [Gleichung 10] erhalten wird, und eine obere Grenze der Kandidaten-Fraktionallängen kann als ein Wert bestimmt werden, der durch Addition der zweiten Toleranz Nmargin zu einem Maximalwert der Parameter von [Gleichung 10] erhalten wird. Gemäß einer oder mehreren beispielhaften Ausführungsformen können die erste Toleranz Mmargin und die zweite Toleranz Nmargin so eingestellt werden, dass sie Maximalwerte innerhalb eines Bereichs sind, der durch eine Rechenkomplexität oder einer Leistungsfähigkeit (oder Rechenressourcen) des Quantisierungssystems 100 von 1 erlaubt ist, und dementsprechend kann der Bereich der Kandidaten-Fraktionallängen erweitert werden.
  • 10A und 10B sind Flussdiagramme von Beispielen des Vorgangs S684 von 8, gemäß einer oder mehreren beispielhaften Ausführungsformen. Im Detail zeigt 10A ein Beispiel gemäß einer geschlossenen Form, und 10 B zeigt ein Beispiel gemäß eines stichprobenbasierten Verfahrens. Wie vorstehend mit Bezug auf 8 beschrieben kann bei den Vorgängen S684a und S684b von 10A und 10B eine Kandidaten-Fraktionallänge ausgewählt werden. Beschreibungen, die sich zwischen 10A und 10B überschneiden, werden nun weggelassen werden.
  • Bezugnehmend auf 10A kann Vorgang S684a den Vorgang S684_2a und den Vorgang S684_4a enthalten. Bei Vorgang S684_2a können Quantisierungsfehler gemäß den Kandidaten-Fraktionallängen berechnet werden. Die Quantisierungsfehler können berechnet werden, indem verschiedene Verfahren verwendet werden, wie zum Beispiel ein MSE und ein SQNR. Ein Quantisierungsfehler, der einer Kandidaten-Fraktionallänge FL aus den Kandidaten-Fraktionallängensatz FL_SET entspricht, der aus einer generalisierten Gamma-Verteilung wie zum Beispiel [Gleichung 3] und [Gleichung 4] berechnet wird, kann berechnet werden, indem [Gleichung 12] verwendet wird. D ^ O ( FL ) = ρ D ^ N ( FL α 1 β 1 λ 1 μ 1 ) + ( 1 ρ ) D ^ N ( FL α 2 β 2 λ 2 μ 2 ) D ^ N ( L ^ N α β λ μ ) = 1 12 ( 2 L ^ N N ) 2 + 4 μ ( α λ ) 3 e λ L N α L N 3 α β 3 F L F L _ S E T
    Figure DE102018128080A1_0022
  • In [Gleichung 12] zu zeigt ρ einen Wert an, der Gewichtungen der ersten Probengruppe SG1 und der zweiten Probengruppe SG2 bestimmt und kann beispielsweise wie in [Gleichung 13] definiert werden. ρ = # negativer Proben # aller Proben
    Figure DE102018128080A1_0023
  • Entsprechend können Quantisierungsfehler berechnet werden, die den Kandidaten-Fraktionallängen entsprechen, die in dem Kandidaten-Fraktionallängen-Satz FL_SET enthalten sind.
  • Bei Vorgang S684_a kann eine Kandidaten-Fraktionallängen basierend auf den Quantisierungsfehlem ausgewählt werden. Zum Beispiel kann basierend auf den wie in [Gleichung 12] berechneten Quantisierungsfehlern eine Kandidaten-Fraktionallänge, die einen minimalen Quantisierungsfehler liefert, als die Fraktionallänge FLsam für die Probenverteilung ausgewählt werden. Anders ausgedrückt kann die Fraktionallänge FLsam für die Probenverteilung wie in [Gleichung 14] ausgewählt werden. FL sam = arg min FL FL_SET D ^ O ( FL )
    Figure DE102018128080A1_0024
  • Bezugnehmend auf 10B kann Vorgang S684b die Vorgänge S684_2b, S684_4b und S684_6b beinhalten. Bei Vorgang S684_2b können Test-Probenverteilungen gemäß den Kandidaten-Fraktionallängen erhalten werden. Zum Beispiel kann der Probenquantisierer 160 von 1 die Kandidaten-Fraktionallängen, die in dem Kandidaten-Fraktionallängensatz FL_SET enthalten sind, über die neuronale Netzwerkschnittstelle 120 dem neuronalen Netzwerksystem 200 von 1 bereitstellen, und das neuronale Netzwerksystem 200 kann Probenverteilungen erzeugen, nämlich Test-Probenverteilungen, indem die künstlichen neuronalen Netze (KNNs), auf welche die Kandidaten-Fraktionallängen jeweils angewendet wurden, betrieben werden. Entsprechend kann der Probenquantisierer 160 über die neuronale Netzwerkschnittstelle 120 Test-Probenverteilungen SDTest1 , SDTest2 , ... von dem neuronalen Netzwerksystem 200 empfangen.
  • Bei Vorgang S684_4b können Quantisierungsfehler gemäß den Test-Probenverteilungen berechnet werden. Die Quantisierungsfehler können aus den Test-Probenverteilungen und den Probenverteilungen durch Verwenden verschiedener Verfahren berechnet werden, zum Beispiel einem MSE und einem SQNR. Entsprechend können Quantisierungsfehler erzeugt werden, die den Kandidaten-Fraktionallängen entsprechen, die in dem Kandidaten-Fraktionallängen-Satz FL_SET enthalten sind.
  • Bei Vorgang S684_6b kann eine Kandidaten-Fraktionallänge basierend auf den Quantisierungsfehlern ausgewählt werden. Bei Vorgang S684_6b kann zum Beispiel eine Kandidaten-Fraktionallänge, die einen minimalen Quantisierungsfehler liefert, als die Fraktionallänge SLsam für die Probenverteilung ausgewählt werden.
  • 11 ist ein Blockschaubild eines Rechensystems 300 gemäß einer beispielhaften Ausführungsform. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann das Quantisierungssystem 100 von 1 ausgeführt werden, indem das Computersystem 300 von 11 verwendet wird. Bezugnehmend auf 11 kann das Rechensystem 300 einen Systemspeicher 310, einen Prozessor 330, einen Speicher 350, Eingabe/Ausgabevorrichtungen (I/O-Vorrichtungen) 370 und Kommunikationsverbindungen 390 enthalten. Die Komponenten des Rechensystems 300 können miteinander verbunden sein, z.B. über einen Bus.
  • Der Systemspeicher 310 kann ein Programm 312 enthalten. Das Programm 312 kann es dem Prozessor 330 erlauben, ein KNN gemäß einer oder mehreren beispielhaften Ausführungsformen zu quantisieren. Das Programm 312 kann zum Beispiel eine Mehrzahl von Anweisungen enthalten, die durch den Prozessor ausführbar sind, und ein KNN kann quantisiert werden wenn die Mehrzahl von Anweisungen des Programms 312 von dem Prozessor 330 ausgeführt werden. Nicht einschränkende Beispiele des Systemspeichers 310 können einen flüchtigen Speicher enthalten, wie zum Beispiel ein statisches Random Access Memory (SRAM) und ein dynamisches Random Access Memory (DRAM), und einen nichtflüchtigen Speicher, wie zum Beispiel einen Flash-Speicher.
  • Der Prozessor 330 kann zumindest einen Kern enthalten, der in der Lage ist einen beliebigen Satz Anweisungen auszuführen (z.B. Intel Architektur-32 (IA-32), 64-Bit Extension IA-32, x86-64, PowerPC, Sparc, MIPS, ARM und IA-64). Der Prozessor 330 kann Anweisungen ausführen, die in dem Systemspeicher 310 gespeichert sind, und kann durch Ausführen des Programms 312 ein KNN quantisieren.
  • Der Speicher 350 darf keine gespeicherten Daten verlieren, selbst wenn eine den Rechensystem 300 zugeführte Leistung unterbrochen wird. Der Speicher 350 kann zum Beispiel ein nichtflüchtiger Speicher sein, wie zum Beispiel ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM), ein Flash-Speicher, ein Phase-change Random Access Memory (PRAM), ein Resistive Random Access Memory (PRAM), ein Nano-Floating-Gate-Speicher (NFGM), ein Polymer Random Access Memory (PoRAM), ein Magnetic Random Access Memory (MRAM), ein Ferroelectric Random Access Memory (FRAM), oder ein Speichermedium, wie beispielsweise ein Magnetband, eine optische Disk oder eine magnetische Disk. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann der Speicher 350 abnehmbar an den Rechensystem angebracht sein.
  • Gemäß einer oder mehreren beispielhaften Ausführungsformen kann der Speicher 350 ein Programm 312 zur Quantisierung eines KNN gemäß einer beispielhaften Ausführungsform enthalten, und das Programm 312 oder zumindest ein Teil davon kann aus dem Speicher 350 in den Systemspeicher 310 geladen werden bevor das Programm 312 von dem Prozessor 330 ausgeführt wird. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann der Speicher eine Datei, die in einer Programmiersprache geschrieben ist, speichern, und ein von einem Compiler oder dergleichen erzeugtes Programm 312 oder zumindest ein Teil des Programms 312 kann aus der Datei in den Systemspeicher 310 geladen werden.
  • Gemäß einer oder mehreren beispielhaften Ausführungsformen kann der Speicher 350 Daten speichern, die vom Prozessor 330 zu verarbeiten sind, und/oder vom Prozessor 350 verarbeitet wurden. Der Speicher 350 kann zum Beispiel die Parameter und die Probenverteilung von 2 speichern, kann die quantisierten Parameter und die Probenverteilung speichern, und kann Daten speichern, die während der Quantisierung eines Parameters oder einer Probenverteilung erzeugt werden, zum Beispiel eine Schrittweite und eine Fraktionallänge.
  • Die I/O-Vorrichtungen 370 können eine Eingabevorrichtung enthalten, wie zum Beispiel eine Tastatur oder eine Zeigevorrichtung, und eine Ausgabevorrichtung, wie zum Beispiel einen Drucker oder eine Anzeige. Ein Benutzer kann zum Beispiel die Ausführung des Programms 312 durch den Prozessor 330 mittels den I/O-Vorrichtungen 370 auslösen, kann einen Parameter und eine Probenverteilung eingeben, und kann einen quantisierten Parameter, eine quantisierte Probenverteilung und/oder eine Fehlernachricht überprüfen.
  • Die Kommunikationsverbindungen 390 können einen Zugriff auf ein Netzwerk außerhalb des Rechensystems 300 bereitstellen. Das Netzwerk kann zum Beispiel mehrere Rechensysteme und Kommunikationsverbindungen enthalten, und die Kommunikationsverbindungen können Drahtverbindungen, optische Verbindungen, drahtlose Verbindungen oder eine beliebige andere Art von Verbindungen enthalten.
  • 12 ist ein Blockschaubild einer mobilen Rechenvorrichtung 400 gemäß einer beispielhaften Ausführungsform des erfinderischen Konzepts. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann ein neuronales Festkomma-Netzwerk, das gemäß einer beispielhaften Ausführungsform quantisierten ist, in der mobilen Rechenvorrichtung implementiert sein. Als ein nicht einschränkendes Beispiel kann die mobile Rechenvorrichtung 400 eine beliebige elektronische Vorrichtung sein, zum Beispiel ein Mobiltelefon, ein Tablet-PC, eine tragbare Vorrichtung und eine Internet-der-Dinge-Vorrichtung, welche von einer Batterie, einer externen Leistungsversorgung oder durch Eigenstromerzeugung versorgt wird.
  • Bezugnehmend auf 12 kann die mobile Rechenvorrichtung 400 ein Speichersubsystem 410, I/O-Vorrichtungen 430, eine Verarbeitungseinheit 450 und eine Netzwerkschnittstelle 470 enthalten. Das Speichersubsystem 410, die I/O-Vorrichtungen 430, die Verarbeitungseinheit 450 und die Netzwerkschnittstelle 470 können über einen Bus 490 miteinander kommunizieren. Gemäß einer oder mehreren beispielhaften Ausführungsformen können zumindest zwei von dem Speichersubsystem 410, den I/O-Vorrichtungen 430, der Verarbeitungseinheit 450 und der Netzwerkschnittstelle 470 als Ein-Chip-System (SoC) in einem Paket beinhalten enthalten sein.
  • Das Speichersubsystem 410 kann einen RAM 412 und einen Speicher 414 enthalten. Der RAM 412 und/oder der Speicher 414 können Anweisungen speichern, die von der Verarbeitungseinheit 450 ausgeführt werden, und Daten, die von der Verarbeitungseinheit 450 verarbeitet werden. Der RAM 412 und/oder der Speicher 414 können Variablen speichern, wie zum Beispiel Signale, Gewichtungen, Bias und Schwellenwerte eines KNN und können auch Parameter eines künstlichen Neurons (oder Rechenknotens) eines KNN speichern. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann der Speicher 414 einen nichtflüchtigen Speicher beinhalten.
  • Die Verarbeitungseinheit 450 kann zumindest eine von einer Zentralverarbeitungseinheit (bzw. Prozessor) (CPU) 452, einer Grafikverarbeitungseinheit (bzw. Graphikprozessor) (GPU) 454, einem digitalen Signalprozessor (DSP) 456 und einer neuronalen Verarbeitungseinheit (NPU) 458 enthalten. Gemäß einer oder mehreren beispielhaften Ausführungsformen kann die Verarbeitungseinheit 450 beispielsweise eine oder nur einige von der CPU 452, der GPU 454, der DSP 456 und der NPU 458 enthalten.
  • Die CPU 452 kann den gesamten Betrieb der mobilen Rechenvorrichtung 400 steuern. Die CPU 452 kann zum Beispiel infolge einer externen Eingabe, die über die I/O-Vorrichtungen 430 empfangen wird, eine bestimmte Aufgabe direkt ausführen, oder kann andere Komponenten der Verarbeitungseinheit 450 anweisen eine Aufgabe auszuführen. Die GPU 454 kann Daten für ein Bild erzeugen, das durch eine Anzeige ausgegeben wird, die in den I/O-Vorrichtungen 430 enthalten ist, und kann Daten codieren, die sie von einer Kamera empfängt, die in den I/O Vorrichtungen 430 enthalten ist. Der DSP 456 kann nützliche Daten erzeugen, indem ein digitales Signal verarbeitet wird, zum Beispiel ein digitales Signal, das von der Netzwerkschnittstelle 470 bereitgestellt wird.
  • Die NPU 458, welche eine dedizierte Hardware für ein KNN ist, kann eine Mehrzahl von Rechenknoten enthalten, die zumindest einigen künstlichen Neuronen, die das KNN bilden, entsprechen, und zumindest einige von der Mehrzahl von Rechenknoten können ein Signal parallel verarbeiten. Ein KNN, das gemäß einer beispielhaften Ausführungsform quantisiert ist, zum Beispiel ein DNN, weist eine niedrige Rechenkomplexität und eine hohe Genauigkeit auf, und kann somit leicht in der mobilen Rechenvorrichtung 400 von 12 betrieben werden, kann eine hohe Verarbeitungsgeschwindigkeit aufweisen, und kann zum Beispiel auch von einer einfachen und kleinen NPU 458 ausgeführt werden.
  • Die I/O Vorrichtungen 430 können Eingabevorrichtungen, zum Beispiel eine Berührungseingabevorrichtung, eine Schalleingabevorrichtung und eine Kamera, enthalten sowie Ausgabevorrichtungen, wie zum Beispiel eine Anzeige und eine Schallausgabevorrichtung. Wenn beispielsweise die Stimme eines Benutzers über die Schalleingabevorrichtung eingegeben wird, kann die Sprache von einem in der mobilen Rechenvorrichtung 400 implementierten DNN erkannt werden, und ein entsprechender Vorgang kann ausgelöst werden. Darüber hinaus kann, wenn ein Bild durch die Kamera eingegeben wird, ein Objekt in dem Bild von dem in der mobilen Rechenvorrichtung 400 implementierten DNN erkannt werden, und eine Ausgabe, wie zum Beispiel eine virtuelle Realität, kann dem Benutzer bereitgestellt werden. Die Netzwerkschnittstelle 470 kann der mobilen Rechenvorrichtung 400 Zugang zu einem mobilen Kommunikationsnetzwerk, wie zum Beispiel Long Term Evolution (LTE) oder 5G, gewähren, und Zugang zu einem lokalen Netzwerk, wie zum Beispiel WiFi, gewähren.
  • Eine oder mehrere beispielhafte Ausführungsform wurden im Detail gezeigt und vorstehend mit Bezug auf die Zeichnungen beschrieben. Die hier verwendete Terminologie dient nur zur Beschreibung beispielhafter Ausführungsformen und soll keine Einschränkung des erfinderischen Konzepts sein. Daher wird von Fachleuten verstanden, dass verschiedene Form und-und Detailänderungen vorgenommen werden können, ohne vom Umfang des erfinderischen Konzepts, wie es in den beigefügten Ansprüchen definiert ist, abzuweichen.

Claims (25)

  1. Quantisierungsverfahren für ein künstliches neuronales Netzwerk zum Erzeugen eines künstlichen neuronalen Ausgabe-Netzwerkes durch Quantisieren eines künstlichen neuronalen Eingabe-Netzwerkes, wobei das Quantisierungsverfahren für ein künstliches neuronales Netzwerk aufweist: Erhalten zweiter Parameter durch Quantisieren erster Parameter des künstlichen neuronalen Eingabe-Netzwerkes; Erhalten einer Probenverteilung von einem künstlichen neuronalen Zwischen-Netzwerk, in welchem die erhaltenen zweiten Parameter auf das künstliche neuronal Eingabe-Netzwerk angewendet wurden; und Erhalten einer Fraktionallänge (FLsam) für die erhaltene Probenverteilung durch Quantisieren der erhaltenen Probenverteilung.
  2. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 1, wobei das Erhalten der zweiten Parameter aufweist: Erhalten quantisierter Parameter durch Quantisieren (S220) der ersten Parameter gemäß einer gegebenen Fraktionallänge, und Berechnen von Quantisierungsfehlern (S684_2a; S684_4b) zwischen den ersten Parametern und den erhaltenen quantisierten Parametern; Berechnen (S230) eines Evaluierungswertes der gegebenen Fraktionallänge, basierend auf den berechneten Quantisierungsfehlern; und Erhalten (S260) einer endgültigen Fraktionallänge (FLsam) für die zweiten Parameter, basierend auf einer Mehrzahl von Evaluierungswerten, die einer Mehrzahl von Fraktionallängen entspricht.
  3. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 2, wobei: das Berechnen (S230) des Evaluierungswertes ein Berechnen einer Summe von Quadraten der berechneten Quantisierungsfehler als den Evaluierungswert aufweist; und das Erhalten (S260) der endgültigen Fraktionallänge ein Bestimmen einer Fraktionallänge, die einem minimalen Evaluierungswert aus der Mehrzahl von Evaluierungswerten entspricht, als die endgültige Fraktionallänge aufweist.
  4. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß einem der Ansprüche 1 bis 3, wobei: das künstliche neuronale Eingabe-Netzwerk Schichten (L1 bis Ln) und Kanäle (CH11 bis CH1x, CH21 bis CH2y, CH31 bis CH3z) aufweist, die jeweils zumindest einen Parameter aufweisen; und die ersten Parameter einen oder mehrere Parameter aus dem zumindest einen Parameter jeder der Schichten (L1 bis Ln) und der Kanäle (CH11 bis CH1x, CH21 bis CH2y, CH31 bis CH3z) aufweisen.
  5. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 4, wobei die ersten Parameter zumindest eines von Gewichtungen (w1 bis wp), Bias (b1 bis bq) und Schwellenwerten (t1 bis tr) aufweisen.
  6. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß einem der Ansprüche 1 bis 5, wobei das Erhalten der Fraktionallänge (FLsam) für die erhaltene Probenverteilung aufweist: Aufteilen (S620) der erhaltenen Probenverteilung in eine Mehrzahl von Probengruppen (SG1, SG2); Approximieren (S640) der Mehrzahl von Probengruppen (SG1, SG2) an eine Mehrzahl von kontinuierlichen Wahrscheinlichkeitsverteilungen (CPD1, CPD2), jeweilig; Erhalten einer Mehrzahl von Schrittweiten (Δ1, Δ2), basierend auf der Mehrzahl von Probengruppen (SG1, SG2) und der Mehrzahl von kontinuierlichen Wahrscheinlichkeitsverteilungen (CPD1, CPD2); und Auswählen der Fraktionallänge (FLsam), basierend auf der erhaltenen Mehrzahl von Schrittweiten.
  7. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 6, wobei das Aufteilen (S620) der erhaltenen Probenverteilung in die Mehrzahl von Probengruppen (SG1, SG2) ein Aufteilen der erhaltenen Probenverteilung in eine erste Probengruppe, die negative Proben und Null enthält, und eine zweite Probengruppe, die positive Proben enthält, aufweist.
  8. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 6, wobei: das Aufteilen (S620) der Probenverteilung in die Mehrzahl von Probengruppen (SG1, SG2) ein Aufteilen der Probenverteilung in eine erste Probengruppe und eine zweite Probengruppe aufweist; und die erste Probengruppe negative Proben enthält und die zweite Probengruppe Null und positive Proben enthält.
  9. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 6, wobei: das Aufteilen (S620) der Probenverteilung in die Mehrzahl von Probengruppen (SG1, SG2) ein Aufteilen der Probenverteilung in eine erste Probengruppe und eine zweite Probengruppe aufweist: und die erste Probengruppe negative Proben enthält und die zweite Probengruppe positive Proben enthält.
  10. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß einem der Ansprüche 6 bis 9, wobei das Approximieren (S640) der Mehrzahl von Probengruppen (SG1, SG2) ein Approximieren der Mehrzahl von Probengruppen an eine generalisierte Gamma-Verteilung, eine Gauß-Verteilung oder eine Laplace-Verteilung aufweist.
  11. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß einem der Ansprüche 6 bis 10, wobei das Erhalten der Mehrzahl von Schrittweiten (Δ1, Δ2) aufweist: Erhalten (S662) einer Überlast-Verzerrung (Dover) und einer Granular-Verzerrung (Dgran) gemäß einer Schrittweite für jede von der Mehrzahl von kontinuierlichen Wahrscheinlichkeitsverteilungen; und Erhalten (S664) jeder der Mehrzahl der Schrittweiten (Δ1, Δ2), basierend auf der erhaltenen Überlast-Verzerrung (Dover) und der erhaltenen Granular-Verzerrung (Dgram).
  12. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß einem der Ansprüche 6 bis 11, wobei das Auswählen (S680) der Fraktionallänge (FLsam) aufweist: Erhalten (S682) von Kandidaten-Fraktionallängen, basierend auf der erhaltenen Mehrzahl von Schrittweiten (Δ1, Δ2); und Auswählen (S684) einer aus den erhaltenen Kandidaten-Fraktionallängen als die Fraktionallänge (FLsam).
  13. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 12, wobei das Erhalten (S684) der Kandidaten Fraktionallängen aufweist: Erhalten (S682_2) von Fraktionallängen, die den Schrittweiten entsprechen, die an die erhaltene Mehrzahl von Schrittweiten (Δ1, Δ2) angrenzen; und Bestimmen (S682_4) eines Bereichs von Fraktionallängen, basierend auf den erhaltenen Fraktionallängen.
  14. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 13, wobei: das Bestimmen (S682_4) des Bereichs der Fraktionallängen aufweist: Bestimmen eines Wertes, der durch Subtrahieren einer ersten Toleranz von einer minimalen Fraktionallänge aus den erhaltenen Fraktionallängen erhalten wird, als die untere Grenze des Bereichs, und Bestimmen eines Wertes, der durch Addieren einer zweiten Toleranz zu einer maximalen Fraktionallänge aus den erhaltenen Fraktionallängen erhalten wird, als die obere Grenze des Bereichs; und die erste Toleranz und die zweite Toleranz werden basierend auf einer Leistungsfähigkeit des Quantisierungsverfahrens für ein künstliches neuronales Netzwerk bestimmt.
  15. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 13 oder 14, wobei das Auswählen (S684) der einen aus den erhaltenen Kandidaten-Fraktionallängen aufweist: Berechnen (S684_2a) der Fehler, die den erhaltenen Kandidaten-Fraktionallängen entsprechen, basierend auf den erhaltenen Kandidaten-Fraktionallängen und der Mehrzahl von kontinuierlichen Wahrscheinlichkeitsverteilungen (CPD1, CPD2); und Auswählen (S684_4a) der einen Kandidaten-Fraktionallänge, basierend auf den berechneten Fehlern.
  16. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß Anspruch 13 oder 14, wobei das Auswählen der einen aus den erhaltenen Kandidaten-Fraktionallängen aufweist: Erhalten (S684_2b) von Test-Probenverteilungen von künstlichen neuronalen Test-Netzwerken, die jeweils von den erhaltenen Kandidaten-Fraktionallängen abhängen; Berechnen (S684_4b) der Fehler, die den erhaltenen Test-Probenverteilungen entsprechen, basierend auf den erhaltenen Test-Probenverteilungen und der Mehrzahl von kontinuierlichen Wahrscheinlichkeitsverteilungen; und Auswählen (S684_6b) der einen Kandidaten-Fraktionallänge, basierend auf den berechneten Fehlern.
  17. Quantisierungsverfahren für ein künstliches neuronales Netzwerk gemäß einem der Ansprüche 1 bis 16, ferner aufweisend, Erhalten eines künstlichen neuronalen Festkomma-Netzwerkes als das künstliche neuronale Ausgabe-Netzwerk, basierend auf den erhaltenen zweiten Parametern und der erhaltenen Fraktionallänge.
  18. Vorrichtung zum Erzeugen eines künstlichen neuronalen Ausgabe-Netzwerkes durch Quantisieren eines künstlichen neuronalen Eingabe-Netzwerkes, wobei die Vorrichtung aufweist: einen Speicher (310), der computerausführbare Anweisungen (312) enthält;. zumindest einen Prozessor (330), der konfiguriert ist, die gespeicherten computerausführbaren Anweisungen (312) auszuführen, um zu implementieren: einen Parameterquantisierer (140), der konfiguriert ist, durch Quantisieren erster Parameter des künstlichen neuronalen Eingabe-Netzwerkes zweite Parameter zu erhalten; eine neuronale Netzwerkschnittstelle, die konfiguriert ist, eine Probenverteilung von einem künstlichen neuronalen Zwischen-Netzwerk zu erhalten, in welchem die erhaltenen zweiten Parameter auf das künstliche neuronale Eingabe-Netzwerk angewendet wurden; und einen Probenquantisierer (160), der konfiguriert ist, eine Fraktionallänge für die erhaltene Probenverteilung zu erhalten.
  19. Die Vorrichtung gemäß Anspruch 18, wobei: das künstliche neuronale Eingabe-Netzwerk Schichten (L1 bis Ln) und Kanäle (CH11 bis CH1x, CH21 bis CH2y, CH31 bis CH3z) aufweist, die jeweils zumindest einen Parameter aufweisen; und die ersten Parameter einen oder mehrere Parameter aus dem zumindest einen Parameter jeder der Schichten (L1 bis Ln) und der Kanäle (CH11 bis CH1x, CH21 bis CH2y, CH31 bis CH3z) aufweisen.
  20. Die Vorrichtung gemäß Anspruch 19, wobei die ersten Parameter zumindest eines von Gewichtungen (w1 bis wp), Bias (b1 bis bq) und Schwellenwerten (t1 bis tr) aufweisen.
  21. Die Vorrichtung gemäß einem der Ansprüche 18 bis 20, wobei die neuronale Netzwerkschnittstelle (120) ferner konfiguriert ist, zumindest eine Kandidaten-Fraktionallänge für die Probenverteilung, die von dem Probenquantisierer (160) empfangen wird, einem künstlichen neuronalen Test-Netzwerk bereitzustellen, und eine Test-Probenverteilung von dem künstlichen neuronalen Test-Netzwerk zu erhalten; und der Probenquantisierer (160) ferner konfiguriert ist, eine aus der zumindest einen Kandidaten-Fraktionallänge als die Fraktionallänge für die Probenverteilung zu bestimmen, basierend auf der erhaltenen Test-Probenverteilung.
  22. Verfahren zum Quantisieren eines neuronalen Gleitkomma-Netzwerkes, wobei das Verfahren aufweist: Erhalten quantisierter Parameter durch Quantisieren von Parameter in derselben Kategorie in dem neuronalen Gleitkomma-Netzwerk; Erhalten einer Probenverteilung von einem künstlichen neuronalen Semi-Festkomma-Netzwerk in welchem die erhaltenen quantisierten Parameter auf das neuronale Gleitkomma-Netzwerk angewendet wurden; und Erhalten einer Fraktionallänge für die erhaltene Probenverteilung.
  23. Das Verfahren gemäß Anspruch 22, wobei: das neuronale Gleitkomma-Netzwerk Schichten (L1 bis Ln) und Kanäle (CH11 bis CH1x, CH21 bis CH2y, CH31 bis CH3z) aufweist, die jeweils zumindest einen Parameter aufweisen; und die Parameter in der gleichen Kategorie einen oder mehrere Parameter aus dem zumindest einen Parameter jeder der Schichten (L1 bis Ln) und der Kanäle (CH11 bis CH1x, CH21 bis CH2y, CH31 bis CH3z) aufweisen.
  24. Das Verfahren gemäß Anspruch 23, wobei die Parameter in der gleichen Kategorie zumindest eines von Gewichtungen (w1 bis wp), Bias (b1 bis bq) und Schwellenwerten (t1 bis tr) aufweisen.
  25. Das Verfahren gemäß einem der Ansprüche 22 bis 24, wobei das Erhalten der Fraktionallänge für die erhaltene Probenverteilung aufweist: Aufteilen (S620) der erhaltenen Probenverteilung in eine Mehrzahl von Probengruppen (SG1, SG2); Approximieren (S640) der Mehrzahl von Probengruppen (SG1, SG2) an eine Mehrzahl von kontinuierlichen Wahrscheinlichkeitsverteilungen (CPD1, CPD2), jeweilig; Auswählen (S680) der Fraktionallänge, basierend auf der Mehrzahl von kontinuierlichen Wahrscheinlichkeitsverteilungen (CPD1, CPD2).
DE102018128080.7A 2017-11-13 2018-11-09 Verfahren und Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes Pending DE102018128080A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170150707A KR20190054454A (ko) 2017-11-13 2017-11-13 인공 신경망의 양자화 방법 및 장치
KR10-2017-0150707 2017-11-13

Publications (1)

Publication Number Publication Date
DE102018128080A1 true DE102018128080A1 (de) 2019-05-16

Family

ID=66335776

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018128080.7A Pending DE102018128080A1 (de) 2017-11-13 2018-11-09 Verfahren und Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes

Country Status (5)

Country Link
US (1) US11823028B2 (de)
KR (1) KR20190054454A (de)
CN (1) CN109784470A (de)
DE (1) DE102018128080A1 (de)
TW (1) TWI806922B (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021100404A1 (de) 2021-01-12 2022-07-14 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug
DE102021112821A1 (de) 2021-05-18 2022-11-24 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Verkehrszeichenerkennung für ein Assistenzsystem eines Fahrzeugs mit einer bit-seriellen architekturaufweisenden Recheneinrichtung sowie Recheneinrichtung für ein Fahrzeug

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3336763A1 (de) * 2016-12-14 2018-06-20 Conti Temic microelectronic GmbH Vorrichtung zur klassifizierung von daten
US12014273B2 (en) * 2018-12-12 2024-06-18 Kneron (Taiwan) Co., Ltd. Low precision and coarse-to-fine dynamic fixed-point quantization design in convolution neural network
EP3772022A1 (de) * 2019-06-12 2021-02-03 Shanghai Cambricon Information Technology Co., Ltd Verfahren zur bestimmung von quantisierungsparametern in einem neuronalen netzwerk und zugehörige produkte
WO2021036908A1 (zh) * 2019-08-23 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
EP4020321A4 (de) * 2019-08-23 2024-01-17 Anhui Cambricon Information Technology Co., Ltd. Datenverarbeitungsverfahren, vorrichtung, computervorrichtung und speichermedium
WO2021036890A1 (zh) * 2019-08-23 2021-03-04 安徽寒武纪信息科技有限公司 数据处理方法、装置、计算机设备和存储介质
CN110717585B (zh) * 2019-09-30 2020-08-25 上海寒武纪信息科技有限公司 神经网络模型的训练方法、数据处理方法和相关产品
US12014184B2 (en) 2019-10-31 2024-06-18 SK Hynix Inc. Arithmetic devices for neural network including an input distribution signal generation circuit, an output distribution signal generation circuit, and an output distribution signal compensation circuit
US11915125B2 (en) 2019-10-31 2024-02-27 SK Hynix Inc. Arithmetic devices for neural network
US11386947B2 (en) 2019-10-31 2022-07-12 SK Hynix Inc. Arithmetic devices conducting auto-load operation for writing the activation functions
US11954457B2 (en) 2019-10-31 2024-04-09 SK Hynix Inc. Arithmetic devices for neural network including a function storage circuit and an activation function circuit
KR20210076687A (ko) 2019-12-16 2021-06-24 삼성전자주식회사 뉴럴 프로세싱 장치 및 뉴럴 프로세싱 장치에서 뉴럴 네트워크를 처리하는 방법
KR20210083935A (ko) * 2019-12-27 2021-07-07 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
US20230421764A1 (en) * 2020-11-18 2023-12-28 Intellectual Discovery Co., Ltd. Neural network feature map quantization method and device
US11490085B2 (en) * 2021-01-14 2022-11-01 Tencent America LLC Model sharing by masked neural network for loop filter with quality inputs

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010140613A1 (ja) 2009-06-03 2010-12-09 学校法人中部大学 物体検出装置
JP5846553B2 (ja) 2010-09-13 2016-01-20 国立大学法人東京工業大学 属性の学習及び転移システム、認識器生成装置、認識器生成方法及び認識装置
JP5618787B2 (ja) * 2010-11-29 2014-11-05 キヤノン株式会社 レポート作成支援装置及びその作成支援方法、並びにプログラム
US9053391B2 (en) 2011-04-12 2015-06-09 Sharp Laboratories Of America, Inc. Supervised and semi-supervised online boosting algorithm in machine learning framework
CA2779232A1 (en) 2011-06-08 2012-12-08 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of Industry Through The Communications Research Centre Canada Sparse coding using object extraction
TWI484357B (zh) 2011-12-02 2015-05-11 Inst Information Industry 量化式資料分析方法以及量化式資料分析裝置
US9002060B2 (en) 2012-06-28 2015-04-07 International Business Machines Corporation Object retrieval in video data using complementary detectors
US20140098883A1 (en) * 2012-10-09 2014-04-10 Nokia Corporation Method and apparatus for video coding
WO2015017796A2 (en) 2013-08-02 2015-02-05 Digimarc Corporation Learning systems and methods
US20160293167A1 (en) 2013-10-10 2016-10-06 Google Inc. Speaker recognition using neural networks
WO2016054778A1 (en) 2014-10-09 2016-04-14 Microsoft Technology Licensing, Llc Generic object detection in images
US20160328644A1 (en) 2015-05-08 2016-11-10 Qualcomm Incorporated Adaptive selection of artificial neural networks
US10373050B2 (en) 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US10262259B2 (en) 2015-05-08 2019-04-16 Qualcomm Incorporated Bit width selection for fixed point neural networks
US10402750B2 (en) 2015-12-30 2019-09-03 Facebook, Inc. Identifying entities using a deep-learning model
US10831444B2 (en) 2016-04-04 2020-11-10 Technion Research & Development Foundation Limited Quantized neural network training and inference
US10621486B2 (en) 2016-08-12 2020-04-14 Beijing Deephi Intelligent Technology Co., Ltd. Method for optimizing an artificial neural network (ANN)
CN106779053A (zh) 2016-12-15 2017-05-31 福州瑞芯微电子股份有限公司 一种基于影响因子和神经网络的知识点摸底方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021100404A1 (de) 2021-01-12 2022-07-14 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Bestimmen einer optimierten komprimierten Netzkonfiguration, Assistenzeinrichtung und Kraftfahrzeug
DE102021112821A1 (de) 2021-05-18 2022-11-24 Bayerische Motoren Werke Aktiengesellschaft Verfahren zur Verkehrszeichenerkennung für ein Assistenzsystem eines Fahrzeugs mit einer bit-seriellen architekturaufweisenden Recheneinrichtung sowie Recheneinrichtung für ein Fahrzeug

Also Published As

Publication number Publication date
TW201933193A (zh) 2019-08-16
TWI806922B (zh) 2023-07-01
CN109784470A (zh) 2019-05-21
KR20190054454A (ko) 2019-05-22
US20190147322A1 (en) 2019-05-16
US11823028B2 (en) 2023-11-21

Similar Documents

Publication Publication Date Title
DE102018128080A1 (de) Verfahren und Vorrichtung zur Quantisierung eines künstlichen neuronalen Netzwerkes
DE102018121905A1 (de) Verfahren und Vorrichtung zum Quantisieren von künstlichen neuronalen Netzen
DE112018005227T5 (de) Merkmalsextraktion mithilfe von multi-task-lernen
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
DE102019111995A1 (de) Training eines künstlichen neuronalen Netzes unter Verwendung von flexiblen Gleitkommatensoren
DE112018004693T5 (de) Verbessern der effizienz eines neuronalen netzes
DE102021200012A1 (de) Optimierte quantisierung für neuronale netze mit verringerter auflösung
DE102012009502A1 (de) Verfahren zum Trainieren eines künstlichen neuronalen Netzes
DE112020005610T5 (de) Identifizieren von optimalen gewichtungen zum verbessern einervorhersagegenauigkeit bei methoden für maschinelles lernen
DE102015201688A1 (de) Verfahren und systeme zur analyse von gesundheitsdaten
DE112017008151T5 (de) Schaltungen geringer tiefe als quantenklassifikatoren
DE112020004031T5 (de) Systembezogene selektive quantisierung für in der leistungsfähigkeit optimiertes verteiltes deep learning
DE102019109631A1 (de) Tiefes komprimiertes netzwerk
DE102015201690A1 (de) Verfahren und systeme zur analyse eines finanzdatensatzes
DE112021005910T5 (de) Schnellere abdeckungskonvergenz mit automatischer testparameterabstimmung bei eingeschränkter zufallsverifikation
DE112021002866T5 (de) Modelltreueüberwachung und -neuerstellung zur entscheidungsunterstützung eines fertigungsverfahrens
DE112021001968T5 (de) Driftregularisierung zum entgegenwirken einer variation in driftkoeffizienten für analoge beschleuniger
CN111126860B (zh) 任务分配方法、任务分配装置和电子设备
DE112022000915T5 (de) Erstellen eines statistischen modells und auswerten der modellleistung
DE102020123155A1 (de) Quantisierungsverfahren eines künstlichen neuronalen Netzwerks und Operationsverfahren unter Verwendung eines künstlichen neuronalen Netzwerks
DE102018101166A1 (de) Automatisierte verfahren zur umwandlung in ein datenformat geringerer genauigkeit
CN114372560A (zh) 一种神经网络训练方法、装置、设备及存储介质
DE102020132591A1 (de) Auswählen von rechenkernvarianten unter verwendung neuronaler netzwerke
Ziou Using maximum weighted likelihood to derive Lehmer and H\" older mean families
DE102018209901A1 (de) Recheneinheit, Verfahren und Computerprogramm zum Multiplizieren zumindest zweier Multiplikanden

Legal Events

Date Code Title Description
R012 Request for examination validly filed