-
QUERVERWEISE AUF VERWANDTE ANMELDUNGEN
-
Diese Anmeldung beansprucht die Vorteile der koreanischen Patentanmeldungen Nr.
10-2019-0117485 und
10-2020-0029807 , die am 24. September 2019 und am 10. März 2020 beim koreanischen Amt für geistiges Eigentum eingereicht wurden und deren Offenbarung hiermit durch Verweis hierauf hierin in ihrer Gesamtheit enthalten sind.
-
HINTERGRUND
-
Die erfinderischen Konzepte beziehen sich auf ein Quantisierungsverfahren eines künstlichen neuronalen Netzwerks und ein Operationsverfahren, das unter Verwendung des künstlichen neuronalen Netzwerks durchgeführt wird, und insbesondere auf ein Quantisierungsverfahren eines künstlichen neuronalen Netzwerks und ein Operationsverfahren, das unter Verwendung des künstlichen neuronalen Netzwerks durchgeführt wird, wobei ein Erwartungswert eines in einem Quantisierungsprozess auftretenden Fehlers als ein Kompensationsbias erzeugt wird und der erzeugte Kompensationsbias durch ein quantisiertes künstliches neuronales Netzwerk auf ein Operationsergebnis reflektiert wird.
-
Ein künstliches neuronales Netzwerk kann sich auf eine Computervorrichtung oder ein von einer Computervorrichtung durchgeführtes Verfahren zur Erzeugung miteinander verbundener Sätze künstlicher Neuronen (oder neuronaler Modelle) beziehen. Ein künstliches Neuron kann Ausgabedaten erzeugen, indem es einfache Operationen an Eingabedaten durchführt, und die Ausgabedaten können zu einem anderen künstlichen Neuron übertragen werden. Als Beispiel für ein künstliches neuronales Netzwerk kann ein tiefgehendes neuronales Netzwerk (deep neural network) oder tiefgehendes Lernen (deep learning) eine mehrschichtige Struktur aufweisen.
-
ZUSAMMENFASSUNG
-
Die erfinderischen Konzepte sehen ein Quantisierungsverfahren eines künstlichen neuronalen Netzwerks und ein Operationsverfahren, das das künstliche neuronale Netzwerk verwendet, vor, wobei ein Erwartungswert eines in einem Quantisierungsprozess auftretenden Fehlers als Kompensationsbias erzeugt wird und der erzeugte Kompensationsbias durch ein quantisiertes künstliches neuronales Netzwerk auf ein Operationsergebnis reflektiert wird.
-
Nach einem Aspekt der erfinderischen Konzepte wird ein Computersystem, das ein neuronales Netzwerksystem enthält, vorgesehen, das eingerichtet ist, um ein künstliches neuronales Netzwerk (ANN) zu steuern; ein Quantisierungssystem, das eingerichtet ist, um das ANN zu quantisieren, wobei das Quantisierungssystem ferner eingerichtet ist, um Parameter des ANN zu quantisieren, um die quantisierten Parameter des ANN zu erzeugen, um einen Quantisierungsfehler der Parameter des ANN auf der Grundlage der Parameter des ANN und der quantisierten Parameter zu erzeugen, um einen Kompensationsbias auf der Grundlage der quantisierten Parameter und des Quantisierungsfehlers der Parameter des ANN zu erzeugen und um die erzeugten quantisierten Parameter und den Kompensationsbias an das neuronale Netzwerksystem zu übertragen.
-
Nach einem anderen Aspekt der erfinderischen Konzepte wird ein Operationsverfahren vorgesehen, das ein künstliches neuronales Netzwerk (ANN) verwendet, enthaltend Quantifizieren einer Gewichtung und eines Bias des ANN; Erzeugen eines Kompensationsbias durch Kompensation des quantisierten Bias, um einen Fehler aufgrund der Quantisierung zu enthalten; Quantisieren einer Eingabeprobe; Durchführen einer ersten Multiplizieren-Akkumulieren (MAC)-Operation auf der Grundlage der quantisierten Gewichtung des ANN und der quantisierten Eingabeprobe; und Reflektieren des Kompensationsbias auf ein Ergebnis der ersten MAC-Operation.
-
Nach einem anderen Aspekt der erfinderischen Konzepte wird ein Quantisierungsverfahren eines künstlichen neuronalen Netzwerks (ANN) vorgesehen, enthaltend: Quantisieren von Parameters des ANN; Berechnen eines Quantisierungsfehlers der Parameter auf der Grundlage der Parameter des ANN und der quantisierten Parameter; und Erzeugen eines Kompensationsbias auf der Grundlage der quantisierten Parameter und des Quantisierungsfehlers der Parameter.
-
Figurenliste
-
Beispielhafte Ausführungsformen der erfinderischen Konzepte werden aus der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen deutlicher verstanden, in der
- 1 ist eine Ansicht, die ein künstliches neuronales Netzwerk nach Beispielausführungsformen zeigt;
- 2 ist ein Diagramm, das ein Computersystem nach Beispielausführungsformen veranschaulicht;
- 3 ist ein Ablaufdiagramm, das die Operationen eines neuronalen Netzwerksystems, eines Parameterquantisierers, eines Probenquantisierers und eines Bias-Kompensators nach Beispielausführungsformenveranschaulicht;
- 4 ist ein Diagramm zur Erläuterung der Architektur eines Berechnungsgraphs nach Beispielausührungsformen;
- 5 ist ein Diagramm, das eine Operation des Reflektierens eines Erwartungswertes eines Quantisierungsfehlers eines neuronalen Netzwerksystems auf eine quantisierte Operation nach Beispielausführungsformen veranschaulicht;
- 6 ist ein Diagramm, das ein Verfahren zur Erzeugung eines Kompensationsbias nach Beispielausführungsformen veranschaulicht;
- 7 ist ein Diagramm, das ein Verfahren zur Erzeugung eines Kompensationsbias nach Beispielausführungsformen veranschaulicht;
- 8 ist ein Diagramm, das eine Operation des Reflektierens eines Erwartungswertes eines Quantisierungsfehlers eines neuronalen Netzwerksystems auf eine quantisierte Operation nach Beispielausführungsformen veranschaulicht;
- 9 ist ein Ablaufdiagramm, das ein Verfahren zur Bestimmung einer Referenzprobe, einer quantisierten Referenzprobe und eines Quantisierungsfehlers einer Referenzprobe nach Beispielausführungsformen veranschaulicht;
- 10 ist ein Diagramm, das ein Computersystem nach Beispielausführungsformen veranschaulicht;
- 11 ist ein Diagramm, das ein Verfahren zur Erwartung einer nächsten Eingabeprobe nach Beispielausführungsformen veranschaulicht;
- 12 ist ein Diagramm, das ein Verfahren zur Erwartung einer nächsten Eingabeprobe nach Beispielausführungsformen veranschaulicht;
- 13 ist ein Ablaufdiagramm, das ein Verfahren zur Bestimmung einer Referenzprobe, einer quantisierten Referenzprobe und eines Quantisierungsfehlers der Referenzprobe nach Beispielausführungsformen veranschaulicht;
- 14 ist ein Diagramm, das ein Verfahren zur Durchführung einer Operation an einer Eingabeprobe eines nächsten Auftrags durch ein quantisiertes künstliches neuronales Netzwerk (ANN) nach Beispielausführungsformen veranschaulicht;
- 15 ist ein Ablaufdiagramm, das ein Operationsverfahren unter Verwendung einer ANN nach Beispielausführungsformen veranschaulicht;
- 16 ist ein Blockdiagramm, das eine elektronische Vorrichtung nach Beispielausführungsformen veranschaulicht; und
- 17 ist ein Blockdiagramm, das eine elektronische Vorrichtung nach Beispielausführungsformen veranschaulicht.
-
DETKILLIERTE BESCHREIBUNG VON BEISPIELAUSFÜHRUNGSFORMEN
-
1 ist eine Ansicht, die ein künstliches neuronales Netzwerk (ANN) nach Beispielausführungsformen zeigt. 1 ist beispielsweise ein Diagramm, das schematisch die Struktur eines tiefgehenden neuronalen Netzwerks 10 als ein Beispiel für das ANN nach Beispielausführungsformen zeigt.
-
ANN kann sich auf ein Computersystem beziehen, das sich auf ein biologisches neuronales Netzwerk konzentriert, das ein tierisches Gehirn darstellt, im Gegensatz zu klassischen Algorithmen, die Aufgaben nach vordefinierten Bedingungen durchführen, wie z. B. regelbasierte Programmierung, kann ANN durch die Berücksichtigung mehrerer Proben (oder Beispiele) auf die Durchführung von Aufgaben trainiert werden. ANN kann eine Struktur aufweisen, in der künstliche Neuronen (oder Neuronen) verbunden sind, und eine Verbindung zwischen Neuronen kann als Synapse bezeichnet werden. Ein Neuron kann empfangene Signale verarbeiten und die verarbeiteten Signale über die Synapse an ein anderes Neuron übertragen. Die Ausgabe des Neurons kann als „Aktivierung“ bezeichnet werden. Das Neuron und/oder die Synapse können eine variable Gewichtung aufweisen, und der Einfluss des vom Neuron verarbeiteten Signals kann je nach Gewichtung zu- oder abnehmen. Insbesondere die mit einem individuellen Neuron verbundene Gewichtung kann als Bias bezeichnet werden.
-
Ein tiefgehendes neuronales Netzwerk (DNN = Deep Neural Network) oder eine tiefgehende Lernarchitektur kann eine Schichtenstruktur aufweisen, und die Ausgabe einer bestimmten Schicht kann eine Eingabe für eine nachfolgende Schicht sein. In einer solchen mehrschichtigen Struktur kann jede der Schichten entsprechend mehrerer Muster trainiert werden. Künstliche neuronale Netzwerke, wie DNN, können durch eine Anzahl von Verarbeitungsknoten implementiert werden, die jeweils künstlichen Neuronen entsprechen, was eine höhere Rechenkomplexität erfordern kann, um gute Ergebnisse, wie z. B. Ergebnisse mit höherer Genauigkeit, zu erhalten, und dementsprechend viele Rechenressourcen erfordern kann.
-
Bezugnehmend auf 1 kann ein DNN 10 eine Vielzahl von Schichten L1, L2, L3,..., LN enthalten, und die Ausgabe einer Schicht kann über mindestens einen Kanal in eine nachfolgende Schicht eingegeben werden. Die erste Schicht L1 kann zum Beispiel eine Ausgabe an die zweite Schicht L2 über eine Vielzahl von Kanälen CH11... CHlx durch Verarbeiten einer Probe SAM, und die zweite Schicht L2 kann auch eine Ausgabe an die dritte Schicht L3 über eine Vielzahl von Kanälen CH21... CH2y zuführen. Schließlich kann die N-te Schicht LN ein Ergebnis RES ausgeben, und das Ergebnis RES kann mindestens einen auf die Probe SAM bezogenen Wert enthalten. Die Anzahl der Kanäle, über die die Ausgaben der mehreren Schichten L1, L2, L3,..., LN übertragen werden, kann gleich oder unterschiedlich sein. Die Anzahl der Kanäle CH21... CH2y der zweiten Schicht L2 und die Anzahl der Kanäle CH31... CH3z der dritten Schicht L3 können z. B. gleich oder unterschiedlich sein.
-
Die Probe SAM können Eingabedaten sein, die von dem DNN 10 verarbeitet werden. Die Probe SAM kann beispielsweise ein Bild sein, das einen von einer Person geschriebenen Buchstaben enthält, und das DNN 10 kann das Ergebnis RES ausgeben, das einen Wert enthält, der den Buchstaben darstellt, indem der Buchstabe aus dem Bild erkannt wird. Das Ergebnis RES kann eine Vielzahl von Wahrscheinlichkeiten enthalten, die verschiedenen Buchstaben entsprechen, und der einflussreichste Buchstabe unter den verschiedenen Buchstaben kann der höchsten Wahrscheinlichkeit entsprechen. Jede der Vielzahl von Schichten L1, L2, L3,..., LN des DNN 10 kann ihre eigenen Ausgaben erzeugen, indem sie die Probe SAM und die Ausgabe einer vorhergehenden Schicht auf der Grundlage von Werten verarbeitet, die durch das Lernen einer Vielzahl von Bildern, die Buchstaben enthalten, erzeugt wurden, wie z. B. Gewichtung, Bias usw.
-
Das DNN 10 kann eine große Anzahl von Schichten oder Kanälen nach Beispielausführungsformen enthalten, und dementsprechend kann sich die Berechnungskomplexität des DNN 10 erhöhen. Das DNN 10 mit hoher Berechnungskomplexität kann eine Menge Ressourcen erfordern. Um die Berechnungskomplexität des DNN 10 zu reduzieren, kann das DNN 10 daher quantisiert werden. Die Quantisierung des DNN 10 kann sich auf einen Prozess beziehen, bei dem Eingabewerte auf eine Anzahl von Werten abgebildet werden, die kleiner als die Anzahl der Eingabewerte ist, wie z. B. die Abbildung einer reellen Zahl auf eine ganze Zahl durch Runden. Das quantisierte DNN 10 kann eine geringe Berechnungskomplexität aufweisen, kann jedoch aufgrund eines Fehlers im Quantisierungsprozess eine geringere Genauigkeit aufweisen.
-
Wie nachstehend mit Bezug auf die folgenden Zeichnungen beschrieben, kann das nach Beispielausführungsformen quantisierte DNN 10 einen Erwartungswert des im Quantisierungsprozess auftretenden Fehlers auf ein Operationsergebnis reflektieren, und somit kann das DNN 10 eine verbesserte Leistung und/oder geringere Komplexität aufweisen.
-
2 ist ein Diagramm, das ein Computersystem 1000 nach Beispielausführungsformen veranschaulicht.
-
Unter Bezugnahme auf 2 kann das Computersystem 1000 ein Quantisierungssystem 100 und ein neuronales Netzwerksystem 200 enthalten. Das neuronale Netzwerksystem 200 kann ein ANN vorsehen, und das Quantisierungssystem 100 kann das vom neuronalen Netzwerksystem 200 vorgesehene ANN quantisieren und das zumindest teilweise quantisierte ANN dem neuronalen Netzwerksystem 200 zuführen. In 1 sind das neuronale Netzwerksystem 200 und das Quantisierungssystem 100 voneinander getrennt, aber nach Beispielausführungsformen können das neuronale Netzwerksystem 200 und das Quantisierungssystem 100 als ein System implementiert sein.
-
Das neuronale Netzwerksystem 200 kann jedes System sein, das das ANN vorsieht (oder antreibt), und kann auch als eine neuronale Netzwerkvorrichtung bezeichnet werden. Das neuronale Netzwerksystem 200 kann z. B. in einer Verarbeitungsschaltung, z. B. in einem Computersystem, das mindestens einen Prozessor und Speicher enthält, implementiert sein. Als nicht einschränkendes Beispiel kann das neuronale Netzwerksystem 200 sowohl ein stationäres Computersystem, wie etwa ein Desktop-Computer, ein Server usw., als auch ein mobiles Computersystem, wie etwa ein Laptop-Computer, ein Smartphone usw., sein.
-
In Beispielausführungsformen kann das neuronale Netzwerksystem 200 das ANN antreiben und (eine) Information(en) über das ANN dem Quantisierungssystem 100 zuführen. In Beispielausführungsformen kann das neuronale Netzwerksystem 200 das ANN entsprechend der/den vom Quantisierungssystem 100 zugeführten Information(en) antreiben und dem Quantisierungssystem 100 die Information(en) über das angetriebene ANN zuführen.
-
Das Quantisierungssystem 100 kann jedes System sein, das die Quantisierung des ANN durchführt, und kann auch als eine Quantisierungsvorrichtung bezeichnet werden. Das Quantisierungssystem 100 kann z. B. in einer Verarbeitungsschaltung, z. B. in einem Computersystem, das mindestens einen Prozessor und einen Speicher enthält, implementiert sein. Das Quantisierungssystem 100 kann ein stationäres Computersystem oder ein mobiles Computersystem sein. Das Quantisierungssystem 100 kann das ANN auf der Grundlage der Information(en) des ANN, die vom neuronalen Netzwerksystem 200 zugeführt werden, quantisieren.
-
Unter Bezugnahme auf 2 kann das Quantisierungssystem 100 eine neuronale Netzwerk-Schnittstelle 110, einen Parameterquantisierer 120, einen Probenquantisierer 130 und/oder einen Bias-Kompensator 140 enthalten. In Beispielausführungsformen kann jeder von der neuronalen Netzwerk-Schnittstelle 110, dem Parameterquantisierer 120, dem Probenquantisierer 130 und dem Bias-Kompensator 140 in Verarbeitungsschaltungen z. B. als ein durch Logiksynthese implementierter Logikblock, ein von einem Prozessor durchgeführter Softwareblock oder eine Kombination davon implementiert werden. In Beispielausführungsformen kann jedes von der neuronalen Netzwerk-Schnittstelle 110, dem Parameterquantisierer 120, dem Probenquantisierer 130 und dem Bias-Kompensator 140 eine Prozedur als ein Satz einer Vielzahl von Anweisungen sein, die vom Prozessor ausgeführt werden, und können vom Prozessor in einem zugänglichen Speicher gespeichert werden.
-
Die neuronale Netzwerk-Schnittstelle 110 kann eine Schnittstelle bezüglich des Neuronalen Netzwerksystems 200 zu dem Parameterquantisierer 120 und dem Probenquantisierer 130 vorsehen. Die Schnittstelle für neuronale Netzwerke 110 kann beispielsweise Parameter des vom neuronalen Netzwerksystem 200 empfangenen ANN dem Parameterquantisierer 120 und vom Parameterquantisierer 120 empfangene quantisierte Parameter dem neuronale Netzwerksystem 200 zuführen. Außerdem kann die Schnittstelle für neuronale Netzwerke 110 vom neuronalen Netzwerksystem 200 empfangene Proben dem Probenquantisierer 130 zuführen und vom Probenquantisierer 130 empfangene quantisierte Proben dem neuronalen Netzwerksystem 200 zuführen. Darüber hinaus kann die Schnittstelle 110 des neuronalen Netzwerks einen Kompensationsbias, der vom Bias-Kompensator 140 empfangen wird, dem neuronalen Netzwerksystem 200 zuführen.
-
Der Parameterquantisierer 120 kann aus den Parametern, die vom neuronalen Netzwerksystem 200 über die neuronale Netzwerk-Schnittstelle 110 empfangen werden, quantisierte Parameter erzeugen. Der Parameterquantisierer 120 kann beispielsweise eine Gewichtung und einen Bias als Parameter des ANN erhalten und eine quantisierte Gewichtung und einen quantisierten Bias erzeugen. Der Parameterquantisierer 120 kann dem neuronalen Netzwerksystem 200 über die neuronale Netzwerk-Schnittstelle 110 die quantisierte Gewichtung zuführen.
-
Darüber hinaus kann der Parameterquantisierer 120 einen Quantisierungsfehler der Gewichtung und einen Quantisierungsfehler des Bias unter Verwendung der quantisierten Gewichtung und des quantisierten Bias erzeugen. Der Quantisierungsfehler der Gewichtung kann einen Fehler enthalten, der in einem Prozess der Quantisierung der Gewichtung des ANN auftritt. Durch Verwendung der Eigenschaft, dass eine nicht quantisierte Gewichtung gleich der Summe aus der quantisierten Gewichtung und dem Quantisierungsfehler der Gewichtung ist, kann der Parameterquantisierer 120 den Quantisierungsfehler der Gewichtung aus der empfangenen Gewichtung und der quantisierten Gewichtung erzeugen. Darüber hinaus kann der Quantisierungsfehler des Bias einen Fehler enthalten, der in einem Prozess der Quantisierung des Bias des ANN auftritt. Durch Verwendung der Eigenschaft, dass ein nicht quantisierter Bias gleich der Summe aus dem quantisierten Bias und dem Quantisierungsfehler des Bias ist, kann der Parameterquantisierer 120 den Quantisierungsfehler des Bias aus dem empfangenen Bias und dem quantisierten Bias erzeugen.
-
Darüber hinaus kann der Parameterquantisierer 120 den Bias-Kompensator 140 mit (einer) Information(en) versorgen, die zur Erzeugung des Kompensationsbias zur Kompensation eines Fehlers aufgrund der Quantisierung verwendet werden. Der Parameterquantisierer 120 kann dem Bias-Kompensator 140 die quantisierte Gewichtung, den quantisierten Bias, den Quantisierungsfehler der Gewichtung und den Quantisierungsfehler des Bias zuführen.
-
Der Probenquantisierer 130 kann aus Proben, die vom neuronalen Netzwerksystem 200 über die neuronale Netzwerk-Schnittstelle 110 empfangen werden, quantisierte Proben erzeugen. Der Probenquantisierer 130 kann beispielsweise eine Vielzahl von Bildern, Sprachdaten usw. empfangen und quantisierte Bilder, quantisierte Sprachdaten usw. erzeugen. Der Probenquantisierer 130 kann die quantisierten Proben dem neuronalen Netzwerksystem 200 über die Schnittstelle 110 des neuronalen Netzwerks zuführen. Da Parameter und Proben in dem ANN unterschiedliche Eigenschaften aufweisen, können die Quantisierung der Parameter und die Quantisierung der Proben getrennt werden.
-
Der Bias-Kompensator 140 kann den Kompensationsbias zur Kompensation des Fehlers aufgrund der Quantisierung unter Verwendung der vom Parameterquantisierer 120 erhaltenen Information(en) erzeugen. In Beispielausführungsformen kann der Bias-Kompensator 140 den Kompensationsbias durch Kompensation des quantisierten Bias erzeugen, um den Fehler aufgrund der Quantisierung einzubeziehen. Beispiele für die Operation des Bias-Kompensators 140 zur Erzeugung des Kompensationsbias werden nachstehend unter Bezugnahme auf 6 und 7 beschrieben. Der Bias-Kompensator 140 kann den erzeugten Kompensationsbias über die neuronale Netzwerk-Schnittstelle 110 dem neuronalen Netzwerksystem 200 zuführen.
-
Das neuronale Netzwerksystem 200 kann eine Multiplizieren-Akkumulieren (MAC)-Operation auf der Grundlage des vom Parameterquantisierer 120 erhaltenen quantisierten Gewichtung und der vom Probenquantisierer 130 erhaltenen quantisierten Probe durchführen. Darüber hinaus kann das neuronale Netzwerksystem 200 ein endgültiges Operationsergebnis erzeugen, indem es den vom Bias-Kompensator 140 erhaltenen Kompensationsbias in ein MAC-Operationsergebnis umwandelt.
-
3 ist ein Ablaufdiagramm, das die Operationen des neuronalen Netzwerksystems 200, des Parameterquantisierers 120, des Probenquantisierers 130 und des Bias-Kompensators 140 nach Beispielausführungsformen veranschaulicht. 3 ist beispielsweise ein Ablaufdiagramm, das eine Quantisierungsoperation eines ANN des neuronalen Netzwerksystems 200, des Parameterquantisierers 120, des Probenquantisierers 130 und des Bias-Kompensators 140 aus 2 sowie eine Operation unter Verwendung eines quantisierten ANN veranschaulicht.
-
Unter Bezugnahme auf 2 und 3 kann das neuronale Netzwerksystem 200 das ANN enthalten (S100). Darüber hinaus kann das neuronale Netzwerksystem 200 eine Gewichtung W und einen Bias dem Parameterquantisierer 120 als Parameter des ANN zusammen mit einer Quantisierungsanforderung zuführen (S105). Der Parameterquantisierer 120 kann die empfangene Gewichtung W und den Bias quantisieren (S110). Außerdem kann der Parameterquantisierer 120 dem neuronalen Netzwerksystem 200 eine quantisierte Gewichtung q_W zuführen (S110). Das neuronale Netzwerksystem 200 kann die empfangene quantisierte Gewichtung q_W speichern. der Parameterquantisierer 120 die quantisierte Gewichtung q_W, einen quantisierte Bias q_Bias, einen Quantisierungsfehler e_W der Gewichtung und einen Quantisierungsfehler e_Bias des Bias dem Bias-Kompensator 140 zuführen (S120). Die Operationsreihenfolge der Operationen S110 und S120 kann geändert werden.
-
Darüber hinaus kann der Bias-Kompensator 140 einen Kompensationsbias zur Kompensation eines Fehlers aufgrund der Quantisierung auf der Grundlage der empfangenen Information(en) (S125) erzeugen. Der Bias-Kompensator 140 kann beispielsweise den Kompensationsbias auf der Grundlage der empfangenen quantisierten Gewichtung q_W, des quantisierten Bias q_Bias, des Quantisierungsfehlers e_W der Gewichtung und des Quantisierungsfehlers e_Bias des Bias erzeugen. Beispiele für die Operation des Bias-Kompensators 140 zur Erzeugung des Kompensationsbias werden nachstehend unter Bezugnahme auf die 6 und 7 beschrieben. Darüber hinaus kann der Bias-Kompensator 140 einen erzeugten Kompensationsbias q_bias1 dem neuronalen Netzwerksystem 200 zuführen (S130). Das neuronale Netzwerksystem 200 kann den empfangenen Kompensationsbias q_bias1 speichern.
-
Das neuronale Netzwerksystem 200 kann eine neue Probe X erhalten (S135). Dann kann das neuronale Netzwerksystem 200 die Probe X zusammen mit einer Quantisierungsanforderung dem Probenquantisierer 130 zuführen (S140). Darüber hinaus kann der Probenquantisierer 130 die empfangene Probe X quantisieren (S145). Darüber hinaus kann der Probenquantisierer 130 eine quantisierte Probe q_X dem neuronalen Netzwerksystem 200 zuführen (S150). Das neuronale Netzwerksystem 200 kann eine MAC-Operation auf der Grundlage der quantisierten Gewichtung q_W und der quantisierten Probe q_X durchführen (S155). Darüber hinaus kann das neuronale Netzwerksystem 200 ein endgültiges Operationsergebnis erzeugen, indem es den Kompensationsbias q_bias1 auf ein MAC-Operationsergebnis reflektiert (S160).
-
4 ist ein Diagramm zur Erläuterung der Architektur eines Berechnungsgraphen 20 nach Beispielausführungsformen.
-
Unter Bezugnahme auf 4 ist der Berechnungsgraph 20 ein Graph, der ein mathematisches Modell zeigt, das durch Knoten und Kanten ausgedrückt wird. Die Architektur des Berechnungsgraphen 20 kann der Architektur einer ANN oder eines quantisierten ANN entsprechen. Das ANN oder das quantisierte ANN kann zum Beispiel als ein neuronales Faltungsnetz (CNN = Convolution Neural Network) implementiert sein, aber die erfinderischen Konzepte sind nicht darauf beschränkt. Wenn das quantisierte ANN von 4 das CNN ausdrückt, kann der Berechnungsgraph 20 einigen Schichten des CNN entsprechen. Der Berechnungsgraph 20 kann zum Beispiel einer Schicht des CNN entsprechen, die eine MAC-Operation durchführt, wie z. B. einer Faltungsschicht, einer vollständig verbundenen Schicht usw. Nachfolgend wird zur Vereinfachung der Beschreibung ein vom neuronalen Netzwerksystem 200 aus 2 durchgeführtes Verfahren beschrieben, bei dem die MAC-Operation unter Verwendung einer quantisierten Gewichtung und einer quantisierten Probe unter der Prämisse durchgeführt wird, dass der Berechnungsgraph 20 die Faltungsschicht ist.
-
Unter Bezugnahme auf 2 und 4 kann das neuronale Netzwerksystem 200 die Gewichtung W des ANN zusammen mit einer Quantisierungsanforderung dem Parameterquantisierer 120 zuführen und die quantisierte Gewichtung q_W vom Parameterquantisierer 120 erhalten. Zusätzlich kann das neuronale Netzwerksystem 200 die empfangene Eingabeprobe X zusammen mit der Quantisierungsanforderung dem Parameterquantisierer 120 zuführen und die quantisierte Eingabeprobe q_X vom Parameterquantisierer 120 empfangen. Dann kann das neuronale Netzwerksystem 200 die MAC-Operation auf der Grundlage der quantisierten Gewichtung q_W und der quantisierten Eingabeproben q_X durchführen und einen (nicht gezeigten) Bias auf ein MAC-Operationsergebnis reflektieren, um eine quantisierten Ausgabeprobe q_Y zu erzeugen.
-
Die quantisierte Eingabeprobe q_X und die quantisierte Ausgabeprobe q_Y können zweidimensionale oder höherdimensionale Matrizen sein und können entsprechende Aktivierungsparameter aufweisen. Wenn die quantisierte Eingabeprobe q_X und die quantisierte Ausgabeprobe q_Y beispielsweise dreidimensionalen Matrizen entsprechen, können die quantisierte Eingabeprobe q_X und die quantisierte Ausgabeprobe q_Y eine Breite W (oder eine Spalte), eine Höhe H (oder eine Zeile) und eine Tiefe D aufweisen. In einigen Beispielausführungsformen kann die Tiefe D als die Anzahl der Kanäle bezeichnet werden.
-
In der Faltungsschicht kann eine Faltungsoperation auf der quantisierten Eingabeprobe q_X und der quantisierten Gewichtung q_W durchgeführt werden, und als Ergebnis kann die quantisierte Ausgabeprobe q_Y erzeugt werden. Die quantisierte Gewichtung q_W kann die quantisierte Eingabeprobe q_X filtern und kann als Filter oder Kernel bezeichnet werden. Die quantisierte Gewichtung q_W kann eine Kernelgröße K (d. h. die Größe der Gewichtung) aufweisen, und die Tiefe der quantisierten Gewichtung q_W, d. h. die Anzahl der Kanäle der quantisierten Gewichtung q_W, kann gleich der Tiefe D der quantisierten Eingabeprobe q_X sein. Die quantisierte Gewichtung q_W kann verschoben werden, indem die quantisierte Eingabeprobe q_X als Schiebefenster durchlaufen wird. Während jeder Verschiebung kann jedes der in der quantisierten Gewichung q_W enthaltenen Gewichtungen multipliziert und zu allen Werten in einer Region, die die quantisierte Eingabeprobe q_X überlappt, addiert werden. Wenn die quantisierte Eingabeprobe q_X und die quantisierte Gewichtung q_W gefaltet werden, kann ein Kanal der quantisierten Ausgabeprobe q_Y erzeugt werden. Obwohl eine quantisierte Gewichtung q_W in 1 dargestellt ist, können im Wesentlichen eine Vielzahl von quantisierten Gewichtungen q_W und die quantisierte Eingabeprobe q_X so gefaltet werden, dass eine Vielzahl von Kanälen der quantisierten Ausgabeprobe q_Y erzeugt werden kann.
-
Die Durchführung der MAC-Operation unter Verwendung der quantisierten ANN und der quantisierten Eingabe kann im Vergleich zu Beispielausführungsformen, die die MAC-Operation unter Verwendung eines nicht quantisierten ANN und einer nicht quantisierten Eingabe durchführen, einen Fehler verursachen.
-
Die Operation des ANN kann zum Beispiel als folgende Gleichung ausgedrückt werden.
(C ist die Anzahl der Kanäle der Eingabe, K ist eine Kernelgröße, q
w
c,k ist die quantisierte Gewichtung w, e
w
c,k ist ein Quantisierungsfehler der Gewichtung W, q
bias ist ein quantisierter Bias, e
bias ist ein Quantisierungsfehler des Bias, q
x
c,k ist die quantisierte Eingabeprobe X, und e
x
c,k ist ein Quantisierungsfehler der Eingabeprobe X)
-
Die Operation des ANN lässt sich in eine quantisierte Operation(①) und einen Quantisierungsfehler (②) unterteilen. Das Neuronale Netzwerksystem 200 des Standes der Technik konzentrierte sich auf die Implementierung der quantisierten Operation(①), die optimiert wurde, um die Quantisierungsfehler der Gewichtung W und der Eingabeprobe X zu reduzieren, ohne direkte Berücksichtigung des Quantisierungsfehlers (②) (d. h. ohne Reflexion des Quantisierungsfehlers (②) auf die Operation des ANN). Das Neuronale Netzwerksystem 200 kann nach Beispielausführungsformen einen Erwartungswert des Quantisierungsfehlers(②) berechnen und den berechneten Erwartungswert auf die quantisierte Operation (①) reflektieren und dadurch die Genauigkeit des quantisierten ANN erhöhen.
-
In 4 wird zur Vereinfachung der Beschreibung die Operation in einer Schicht des ANN veranschaulicht und beschrieben, aber die Operation des ANN nach der technischen Idee der erfinderischen Konzepte kann im Wesentlichen auf jede einer Vielzahl von Schichten, die das ANN bilden, in der gleichen Weise angewandt werden.
-
5 ist ein Diagramm, das eine Operation des Reflektierens eines Erwartungswertes eines Quantisierungsfehlers des neuronalen Netzwerksystems 200 auf eine quantisierte Operation nach Beispielausführungsformenveranschaulicht.
-
Unter Bezugnahme auf 2, 4 und 5 kann das neuronale Netzwerksystem 200 nach Beispielausführungsformen eine MAC-Operation durchführen, die auf der quantisierten Eingabeprobe q_X und der quantisierten Gewichtung q_W basiert, das vom Quantisierungssystem 100 erhalten wurde. Zusätzlich kann das neuronale Netzwerksystem 200 die quantisierte Ausgabeprobe q_Y erzeugen, indem es anstelle der quantisierten Bias q_bias, die durch einfache Quantisierung eines Bias einer ANN erhalten wird, den Kompensationsbias q_bias1, der durch den Bias-Kompensator 140 des Quantisierungssystems 100 erzeugt wird, auf ein MAC-Operationsergebnis reflektiert,. Der Kompensationsbias q_bias1 kann die gleiche Größe wie die des MAC-Operationsergebnisses aufweisen, wie später in 6 und 7 beschrieben. Daher kann der Kompensationsbias q_bias1 zu allen Werten in einer Region addiert werden, die das Ergebnis der MAC-Operation überlappt. In 5 wird die quantisierte Ausgabeprobe q_Y in Bezug auf einen beliebigen Kanal k angegeben, aber die quantisierte Ausgabeprobe q_Y für jeden Kanal kann im Wesentlichen erzeugt werden.
-
Der Bias-Kompensator
140 kann sowohl den Kompensationsbias
q_bias1, der den Quantisierungsfehler enthält, als auch den quantisierten Bias
q_bias des ANN erzeugen. Insbesondere kann der Bias-Kompensator
140 den Kompensationsbias q_bias1 erzeugen, um eine nachstehende Formel von ③in eine Quantisierungsoperationsgleichung des ANN einzuschließen.
In der vorstehenden Gleichung der Quantisierungsoperation des ANN, sind q
bias, e
bias, q
w
c,k und e
w
c,k Werte, die zuvor durch die Quantisierung des ANN des Probenquantisierers
130 bekannt sind. Allerdings sind q
x
c,k und e
x
c,k Werte, die zum Zeitpunkt der Durchführung der Operationsverarbeitung an der Eingabeprobe X vorher unbekannt sind. Dementsprechend kann der Bias-Kompensator
140 den Kompensationsbias q_bias1 erzeugen, indem q
x
c,k und e
x
c,k einer Referenzprobe X', die die tatsächliche Eingabeprobe X anstatt q
x
c,k und e
x
c,k in Bezug auf die tatsächliche Eingabeprobe X ersetzt.
-
Der Probenquantisierer 130 kann beispielsweise eine Vielzahl von quantisierten Proben und Quantisierungsfehlern der Vielzahl von Proben erzeugen, indem er eine Vielzahl von aus einem Probenpool ausgewählten Proben quantisiert. Der Bias-Kompensator 140 kann qx
c,k unter Verwendung der Vielzahl von quantisierten Proben erzeugen und kann ex
c,k unter Verwendung der Quantisierungsfehler der Vielzahl von Proben erzeugen. Darüber hinaus kann der Bias-Kompensator 140 den Kompensationsbias q_bias1 unter Verwendung vonqx
c,k und ex
c,k erzeugen. Eine spezifische Operation zur Erzeugung des Kompensationsbias q_bias1 unter Verwendung der Vielzahl von Proben wird später unter Bezugnahme auf 9 beschrieben.
-
Als weiteres Beispiel kann der Bias-Kompensator 140 qx
c,k aus einer Eingabeprobe eines nächsten Auftrags, der unter Verwendung der bereits über das ANN verarbeiteten Eingabeproben erwartet wird, und aus ex
c,k der Eingabeprobe des nächsten Auftrags unter Verwendung von Quantisierungsfehlern der bereits verarbeiteten Eingabeproben erzeugen. Darüber hinaus kann der Bias-Kompensator 140 den Kompensationsbias q_bias1 unter Verwendung von qx
c,k und ex
c,k erzeugen. Die spezifische Operation der Erzeugung des Kompensationsbias q_bias1 unter Verwendung der bereits verarbeiteten Eingabeproben wird später unter Bezugnahme auf 10 bis 14 beschrieben.
-
6 ist ein Diagramm, das ein Verfahren zur Erzeugung des Kompensationsbias q_bias1 nach Beispielausführungsformen veranschaulicht. 6 ist zum Beispiel ein Diagramm, das das Verfahren zur Erzeugung des Kompensationsbias, der einen quantisierten Bias und einen Quantisierungsfehler eines ANN enthält, veranschaulicht.
-
Die Wirkungsweise des Kompensationsbias lässt sich durch die folgende Gleichung ausdrücken
(E ist ein Erwartungswert)
-
Vorstehend kann in der letzten Gleichung xc,k die Referenzprobe X' statt der tatsächlichen Eingabeprobe X bezeichnen, und ex
c,k kann unter Verwendung der Referenz-probe X' erzeugt werden. Ein Verfahren zur Bestimmung der Referenzprobe X' und ein Verfahren zur Berechnung des Quantisierungsfehlers ex
c,k der Referenzprobe X' wird später in 9 und 13 beschrieben.
-
Unter Bezugnahme auf 6 kann die letzte vorstehende Gleichung durch die Operation des Bias-Kompensators 140 implementiert werden. Der Bias-Kompensator 140 kann eine erste MAC-Operation auf der Grundlage eines Quantisierungsfehlers e_X' der Referenzprobe X' und der quantisierten Gewichtung q_W durchführen. Darüber hinaus kann der Bias-Kompensator 140 eine zweite MAC-Operation auf der Grundlage der Referenzprobe X' und des Quantisierungsfehlers e_W einer Gewichtung durchführen. Dann kann der Bias-Kompensator 140 ein erstes MAC-Operationsergebnis, ein zweites MAC-Operationsergebnis und den Bias des ANN (der gleich der Summe des quantisierten Bias q_bias und des Quantisierungsfehlers e_bias des Bias ist) addieren, um den Kompensationsbias q_bias1 zu erzeugen.
-
7 ist ein Diagramm, das ein Verfahren zur Erzeugung des Kompensationsbias q_bias1 nach Beispielausführungsformen veranschaulicht. 7 ist zum Beispiel ein Diagramm, das eine modifizierbare Beispielausführungsform von 6 veranschaulicht.
-
Die Operation der Kompensationsbias von
6 lässt sich durch die folgende Gleichung ausdrücken
-
Vorstehend kann in der letzten Gleichung Wc,k die nicht-quantisierte Gewichtung W einer ANN bedeuten. qx
c,k und ex
c,k können unter Verwendung der Referenzprobe X' statt der tatsächlichen Eingabeprobe X erzeugt werden. Ein Verfahren zur Bestimmung des Referenzprobe X' und ein Verfahren zur Berechnung der quantisierten Referenzprobe (qx
c,k ) und des Quantisierungsfehlers (ex
c,k ) der Referenzprobe X' wird später in 9 und 13 beschrieben.
-
Unter Bezugnahme auf 7 kann der letzte vorstehende Ausdruck durch die Operation des Bias-Kompensators 140 umgesetzt werden. Der Bias-Kompensator 140 kann eine dritte MAC-Operation auf der Grundlage des Quantisierungsfehlers e_X' der Referenzprobe X' und der nicht quantisierten Gewichtung W durchführen. Außerdem kann der Bias-Kompensator 140 eine vierte MAC-Operation auf der Grundlage einer quantisierten Referenzprobe q_X' und des Quantisierungsfehlers e_W einer Gewichtung durchführen. Zusätzlich kann der Bias-Kompensator 140 ein drittes MAC-Operationsergebnis, ein viertes MAC-Operationsergebnis und einen Bias eines ANN addieren, um den Kompensationsbias q_bias1 zu erzeugen.
-
Verfahren zur Erzeugung des Kompensationsbias q_bias1 sind in 6 und 7 unterschiedlich, aber ihre Werte können die gleichen sein. Die quantisierte Eingabeprobe q_X von 5 und die Referenzprobe X', die quantisierte Referenzprobe q_X' und der Quantisierungsfehler e_X' der Referenzprobe X' von 6 und 7 können die gleiche Breite W und Höhe H aufweisen. Die quantisierte Gewichtung q_W von 5, die quantisierte Gewichtung q_W und der Quantisierungsfehler e_W der Gewichtung der 6 und 7 können die gleiche Kernelgröße K aufweisen. Dementsprechend kann die Größe des in 6 und 7 erzeugten Kompensationsbias q_bias1 gleich der Größe eines MAC-Operationsergebnisses der quantisierten Gewichtung q_W und der quantisierten Eingabeprobe q_X in einem Kanal von 5 sein. Dementsprechend kann der erzeugte Kompensationsbias q_bias1 zu allen Werten in einer Region addiert werden, die das Ergebnis der MAC-Operation der quantisierten Gewichtung q_W und der quantisierten Eingabeprobe q_X überlappt.
-
8 ist ein Diagramm, das eine Operation zum Reflektieren eines Erwartungswertes eines Quantisierungsfehlers des neuronalen Netzwerksystems 200 auf eine quantisierte Operation nach Beispielausführungsformen veranschaulicht. 8 ist beispielsweise ein Diagramm, das eine modifizierbare Beispielausführungsform von 5 veranschaulicht.
-
Wie vorstehend in 7 beschrieben, kann der Kompensationsbias q_bias1 die gleiche Größe eines MAC-Operationsergebnisses der quantisierten Gewichtung q_W und der quantisierten Eingabeprobe q_X in einem Kanal aufweisen. Nach der modifizierbaren Beispielausführungsform kann der Kompensationsbias q_bias1 eher einen skalaren Wert als eine zweidimensionale Matrixstruktur aufweisen. In Beispielausführungsformen kann der Bias-Kompensator 140 einen zweiten Kompensationsbias q_bias2, der den skalaren Wert aufweist, erzeugen, indem er den Mittelwert der Werte erhält, die den Kompensationsbias q_bias1 bilden. Ein durch den Bias-Kompensator 140 durchgeführtes Verfahren zur Erzeugung des zweiten Kompensationsbias q_bias2, der den skalaren Wert aufweist, ist nicht auf das vorstehend beschriebene Beispiel beschränkt, und es können verschiedene Verfahren angewandt werden.
-
Der Bias-Kompensator 140 kann den erzeugten zweiten Kompensationsbias q_bias2 dem neuronalen Netzwerksystem 200 zuführen. Nach Beispielausführungsformen kann der Bias-Kompensator 140 den Kompensationsbias q_bias1 dem neuronalen Netzwerksystem 200 zuführen und den zweiten Kompensationsbias q_bias2, der den skalaren Wert aufweist, unter Verwendung des vom neuronalen Netzwerksystem 200 empfangenen Kompensationsbias q_bias1 erzeugen.
-
Unter Bezugnahme auf 8 kann das neuronale Netzwerksystem 200 eine MAC-Operation basierend auf der quantisierten Eingabeprobe q_X und der quantisierten Gewichtung q_W durchführen. Darüber hinaus kann das neuronale Netzwerksystem 200 die quantisierte Ausgabeprobe q_Y erzeugen, indem es anstelle der quantisierten Bias q_bias, der durch einfache Quantisierung eines Bias eines ANN erhalten wird, den zweiten Kompensationsbias q_bias2 auf das Ergebnis der MAC-Operation reflektiert. Wie vorstehend beschrieben, kann sich, wenn der zweite Kompensationsbias q_bias2 anstelle des Kompensationsbias q_bias1 verwendet wird, die Effizienz des Speicherplatzes eines Speichers erhöhen, und es kann nur ein skalarer Wert auf das MAC-Operationsergebnis reflektiert werden, wodurch sich die Operationsgeschwindigkeit erhöhen kann.
-
9 ist ein Ablaufdiagramm, das ein Verfahren zur Bestimmung einer Referenzprobe, einer quantisierten Referenzprobe und eines Quantisierungsfehlers einer Referenzprobe nach Beispielausführungsformen veranschaulicht. 9 ist zum Beispiel das Ablaufdiagramm, das das Verfahren zur Bestimmung der Referenzprobe, der quantisierten Referenzprobe und des Quantisierungsfehlers der Referenzprobe zur Erzeugung einer Kompensationsbias veranschaulicht, das vom neuronalen Netzwerksystem 200 und dem Quantisierungssystem 100 von 2 fest verwendet werden kann.
-
Unter Bezugnahme auf 2 und 9 kann das neuronale Netzwerksystem 200 eine Vielzahl von ersten Proben aus einem Probenpool (S210) auswählen. Hierbei kann es sich bei der Vielzahl der ersten Proben um Trainingsproben handeln, die zum Training eines ANN verwendet werden. Die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und die Vielzahl der ersten Proben können Proben sein, die nicht für das Training des ANN verwendet werden, und können sowohl Trainingsproben, die für das Training verwendet werden, als auch die Proben, die nicht für das Training verwendet werden, enthalten.
-
Darüber hinaus kann das neuronale Netzwerksystem 200 über das ANN (S220) Operationen an der Vielzahl der ersten Proben durchführen. Das neuronale Netzwerksystem 200 kann beispielsweise über ein nicht quantisiertes neuronales Netzwerk Operationen an der Vielzahl der ersten Proben durchführen.
-
Darüber hinaus kann das neuronale Netzwerksystem 200 mindestens eine zweite Probe aus der Vielzahl der ersten Proben auf der Grundlage statistischer Verteilungen einer Vielzahl von Ausgabeproben jeder der Schichten, die das ANN (S230) bilden, auswählen. Das neuronale Netzwerksystem 200 kann zum Beispiel die statistischen Verteilungen der Ausgabeproben der Schichten, die ein nicht quantisiertes ANN bilden, z. B. jede von der ersten Schicht L1 bis zur n-ten Schicht Ln von 1, identifizieren. Dabei können die statistischen Verteilungen mindestens eines von einem Mittelwert, einer Varianz, einem Erwartungswert, einer Asymmetrie und einer Kurtosis der Ausgabeproben enthalten und sind nicht auf das vorstehend beschriebene Beispiel beschränkt. Darüber hinaus kann das neuronale Netzwerksystem 200 die mindestens eine zweite Probe aus der Vielzahl der ersten Proben auf der Grundlage der statistischen Verteilungen auswählen. Das neuronale Netzwerksystem 200 kann zum Beispiel die mindestens eine zweite Probe, die einer Ausgabeprobe mit einem Wert nahe dem Mittelwert jeder der Schichten entspricht, aus der Vielzahl der ersten Proben auswählen. Ein Verfahren zum Auswählen der mindestens einen zweiten Probe auf der Grundlage der statistischen Verteilungen ist nicht auf das vorstehend beschriebene Beispiel beschränkt.
-
Dann kann das neuronale Netzwerksystem 200 unter Verwendung der ausgewählten zweiten Probe eine quantisierte zweite Probe und einen Quantisierungsfehler der zweiten Probe berechnen (S240). Das neuronale Netzwerksystem 200 kann beispielsweise eine Operation an der zweiten Probe durch das quantisierte ANN durchführen, um die quantisierte zweite Probe zu berechnen. Dann kann das neuronale Netzwerksystem 200 unter Verwendung der Eigenschaft, dass die Eingabeprobe X gleich der quantisierten Eingabeprobe q_X und dem Quantisierungsfehler e_X der Eingabeprobe ist, den Quantisierungsfehler der zweiten Probe aus der zweiten Probe und der quantisierten zweiten Probe berechnen.
-
Darüber hinaus kann das Quantisierungssystem 100 eine Referenzprobe, eine quantisierte Referenzprobe und/oder einen Quantisierungsfehler der Referenzprobe bestimmen (S250). In Beispielausführungsformen kann das Quantisierungssystem 100 den Mittelwert jedes von der mindestens einen zweiten Probe, der quantisierten zweiten Probe und dem Quantisierungsfehler der zweiten Probe berechnen und den berechneten Mittelwert der zweiten Probe, den Mittelwert der quantisierten zweiten Probe und den Mittelwert des Quantisierungsfehlers der zweiten Probe als Referenzprobe, die quantisierte Referenzprobe bzw. den Quantisierungsfehler der Referenzprobe bestimmen. Ein durch das Quantisierungssystem 100 durchgeführtes Verfahren zur Bestimmung der Referenzprobe, der quantisierten Referenzprobe und/oder des Quantisierungsfehlers der Referenzprobe unter Verwendung des Quantisierungsfehlers der zweiten Probe ist nicht auf das vorstehend beschriebene Beispiel beschränkt, und es können verschiedene Verfahren angewandt werden.
-
Darüber hinaus kann das Quantisierungssystem 100 einen Kompensationsbias auf der Grundlage der bestimmten Referenzprobe, der quantisierten Referenzprobe und/oder des Quantisierungsfehlers der Referenzprobe erzeugen. Bezogen auf 6 kann der Bias-Kompensator 140 des Quantisierungssystems 100 beispielsweise eine erste MAC-Operation basierend auf dem Quantisierungsfehler e_X' der Referenzprobe und der quantisierten Gewichtung q_W durchführen. Darüber hinaus kann der Bias-Kompensator 140 eine zweite MAC-Operation auf der Basis der Referenzprobe X' und des Quantisierungsfehlers e_W einer Gewichtung durchführen. Dann kann der Bias-Kompensator 140 ein erstes MAC-Operationsergebnis, ein zweites MAC-Operationsergebnis und einen Bias des ANN (der gleich der Summe des quantisierten Bias q_bias und des Quantisierungsfehlers e bias des Bias ist) addieren, um den Kompensationsbias q_bias1 zu erzeugen.
-
Unter Bezugnahme auf 7 kann der Bias-Kompensator 140 des Quantisierungssystems 100 alternativ eine dritte MAC-Operation auf der Grundlage des Quantisierungsfehlers e_X' der Referenzprobe und der nicht quantisierten Gewichtung W durchführen. Außerdem kann der Bias-Kompensator 140 eine vierte MAC-Operation auf der Grundlage der quantisierten Referenzprobe q_X' und des Quantisierungsfehlers e_W der Gewichtung durchführen. Zusätzlich kann der Bias-Kompensator 140 ein drittes MAC-Operationsergebnis, ein viertes MAC-Operationsergebnis und den Bias des ANN addieren, um den Kompensationsbias q_bias1 zu erzeugen.
-
Wie vorstehend mit Bezug auf 8 beschrieben, kann der Bias-Kompensator 140 den Mittelwert der Werte erhalten, die den erzeugten Kompensationsbias q_bias1 bilden, wodurch ein zweiter Kompensationsbias q_bias2, der einen skalaren Wert aufweist, erzeugt wird.
-
Wie vorstehend beschrieben, kann der Bias-Kompensator 140 die Referenzprobe, die quantisierte Referenzprobe und/oder den Quantisierungsfehler der Referenzprobe unter Verwendung einer Vielzahl von Proben bestimmen und den Kompensationsbias q_bias1 oder q_bias2 auf der Grundlage der bestimmten Referenzprobe, der quantisierten Referenzprobe und/oder des Quantisierungsfehlers der Referenzprobe erzeugen. Das neuronale Netzwerksystem 200 kann den erzeugten Kompensationsbias q_bias1 oder q_bias2 bei der Operation der Eingabeprobe verwenden. Die erfinderischen Konzepte sind nicht darauf beschränkt, und nach Beispielausführungsformen kann der Bias-Kompensator 140 periodisch oder nichtperiodisch einen Kompensationsbias erzeugen.
-
Der Bias-Kompensator 140 kann die Referenzprobe, die quantisierte Referenzprobe und den Quantisierungsfehler der Referenzprobe unter Verwendung bereits verarbeiteter Eingabeproben bestimmen. Diesbezüglich werden später detaillierte Beschreibungen unter Bezugnahme auf 10 bis 14 gegeben.
-
10 ist ein Diagramm, das ein Computersystem 1000a nach Beispielausführungsformen darstellt. 10 ist zum Beispiel ein Diagramm, das eine modifizierbare Beispielausführungsform von 2 veranschaulicht.
-
Unter Bezugnahme auf 10 kann das Computersystem 1000a ein Quantisierungssystem 100a und das neuronale Netzwerksystem 200 enthalten. Das Quantisierungssystem 100a kann die neuronale Netzwerk-Schnittstelle 110, den Parameterquantisierer 120, den Probenquantisierer 130, einen Bias-Kompensator 140a und einen Probengenerator 150a erzeugen. Das neuronale Netzwerksystem 200, die neuronale Netzwerk-Schnittstelle 110, der Parameterquantisierer 120 und der Probenquantisierer 130 nach den Beispielausführungsformen von 10 können dem neuronalen Netzwerksystem 200, der neuronalen Netzwerk-Schnittstelle 110, dem Parameterquantisierer 120 und dem Probenquantisierer 130 von 1 entsprechen, so dass redundante Beschreibungen davon entfallen.
-
Der Mustergenerator 150a kann in Verarbeitungsschaltungen implementiert werden, z. B. in einem durch Logiksynthese implementierten Logikblock, einem von einem Prozessor ausgeführten Softwareblock oder einer Kombination davon. Unter Bezugnahme auf 10 wird der Beispielgenerator 150a zwar veranschaulicht und beschrieben, dass er im Quantisierungssystem 100a enthalten ist, doch kann der Beispielgenerator 150a nach Beispielausführungsformen in dem System 200 des neuronalen Netzwerks enthalten oder in einer vom System 200 des neuronalen Netzwerks und dem Quantisierungssystem 100a getrennten Konfiguration implementiert sein.
-
Der Probengenerator 150a kann eine Eingabeprobe eines nächsten Auftrags erzeugen, die unter Verwendung mindestens einer Eingabeprobe erwartet wird, die bereits vom neuronalen Netzwerksystem 200 verarbeitet wurde. Der Probengenerator 150a kann beispielsweise die bereits verarbeitete mindestens eine Eingabeprobe analysieren und die Eingabeprobe des nächsten Auftrags nach einem Analyseergebnis erwarten. Darüber hinaus kann der Probengenerator 150a die erwartete Eingabeprobe dem Bias-Kompensator 140a zuführen. Eine detaillierte Beschreibung der vom Probengenerator 150a durchgeführten Operation zur Erzeugung der Eingabeprobe des nächsten Auftrags, die unter Verwendung der bereits verarbeiteten mindestens einen Eingabeprobe erwartet wird, wird später unter Bezugnahme auf 11 und 12 gegeben.
-
Der Bias-Kompensator 140a kann unter Verwendung der empfangenen erwarteten Eingabeprobe einen Kompensationsbias erzeugen. Ein spezifisches, vom Bias-Kompensator 140a durchgeführtes Verfahren zur Erzeugung des Kompensationsbias unter Verwendung der erwarteten Eingabeprobe wird später in 11 beschrieben.
-
11 ist ein Diagramm, das ein Verfahren zur Erwartung einer nächsten Eingabeprobe nach einer Ausführungsform veranschaulicht. 11 ist beispielsweise ein Diagramm, das ein vom Probengenerator 150a von 10 ausgeführtes Verfahren zur Erwartung einer Eingabeprobe eines nächsten Auftrags unter Verwendung mindestens einer bereits verarbeiteten Eingabeprobe veranschaulicht.
-
Eingabeproben, die durch das neuronale Netzwerksystem 200 verarbeitet werden, können kontinuierlich fotografierte Bilder sein. Jedes der kontinuierlich fotografierten Bilder weist einen kleinen Unterschied zu einem Bild in einem vorhergehenden oder nachfolgenden Auftrag auf, und ein Unterschied zwischen den Bildern kann eine zeitliche Richtungsabhängigkeit aufweisen. Dementsprechend kann der Probengenerator 150a die Eingabeprobe des nächsten Auftrags erwarten, indem er eine Differenz zwischen bereits verarbeiteten Eingabeproben, z. B. den kontinuierlich fotografierten Bildern, analysiert. Darüber hinaus kann der Probengenerator 150a die Eingabeprobe des nächsten Auftrags zuführen, die für den Bias-Kompensator 140a erwartet wird. Der Probengenerator 150a kann die bereits verarbeiteten Eingabeproben aus einem (nicht gezeigten) Speicher lesen, der im Quantisierungssystem 100a enthalten ist, oder die bereits verarbeiteten Eingabeproben aus dem neuronalen Netzwerksystem 200 oder einer anderen unterschiedlichen Konfiguration empfangen.
-
Unter Bezug auf 11 kann der Probengenerator 150a unter den bereits bearbeiteten Bildern mit einem Kalman-Filter usw. z. B. Bewegungsvektoren eines N-2-ten Rahmens und eines N-1-ten Rahmens berechnen, die die jüngsten Bilder sind. Darüber hinaus kann der Probengenerator 150a ein Objekt (z. B. eine Person), das sich in einem Bild bewegt, mit Hilfe der berechneten Bewegungsvektoren identifizieren. Darüber hinaus kann der Probengenerator 150a einen erwarteten N-ten Rahmen erzeugen, indem er einen Bewegungspfad im Bild des identifizierten Objekts erwartet.
-
Unter Bezugnahme auf 11 wird der Probengenerator 150a zwar veranschaulicht und beschrieben, wie er das nächste Bild erwartet, wobei zwei neuere Bilder verwendet werden, die erfinderischen Konzepte sind jedoch nicht darauf beschränkt, und zwei oder mehr neuere Bilder können verwendet werden, um das nächste Bild zu erwarten.
-
12 ist ein Diagramm, das ein Verfahren zur Erwartung einer nächsten Eingabeprobe nach Beispielausführungsformen veranschaulicht. 12 ist beispielsweise ein Diagramm, das ein vom Probengenerator 150a von 10 ausgeführtes Verfahren zur Erwartung einer Eingabeprobe eines nächsten Auftrags unter Verwendung mindestens einer bereits verarbeiteten Eingabeprobe veranschaulicht.
-
Der Probengenerator 150a kann ein künstliche Intelligenz (KI)-Modul 151a enthalten. Das KI-Modul 151a kann ein KI-Modul sein, das darauf trainiert wird, die nächste Probe auf der Grundlage der Eingabeprobe zu erwarten. Der Probengenerator 150a kann die mindestens eine bereits verarbeitete Eingabeprobe in das KI-Modul 151a eingeben und eine Ausgabeprobe aus dem KI-Modul 151 an den Bias-Kompensator 140a als nächste Eingabeprobe ausgeben. Das KI-Modul 151a kann als ein durch Logiksynthese implementierter Logikblock, als ein von einem Prozessor ausgeführter Softwareblock oder als eine Kombination davon implementiert werden.
-
Unter Bezugnahme auf 11 und 12 werden die vom neuronalen Netzwerksystem 200 verarbeiteten Eingabeproben als kontinuierlich fotografierte Bilder beschrieben, aber die erfinderischen Konzepte sind nicht darauf beschränkt, und es können verschiedene Arten von Daten wie Sprachdaten oder tiefgehende Daten verwendet werden.
-
13 ist ein Ablaufdiagramm, das ein Verfahren zur Bestimmung einer Referenzprobe, einer quantisierten Referenzprobe und eines Quantisierungsfehlers der Referenzprobe nach Beispielausführungsformen veranschaulicht. 13 ist insbesondere das Ablaufdiagramm, das das Verfahren zur Bestimmung der Referenzprobe, der quantisierten Referenzprobe und des Quantisierungsfehlers der Referenzprobe zur Erzeugung eines Kompensationsbias veranschaulicht, den das neuronale Netzwerksystem 200 und das Quantisierungssystem 100a von 10 bei der Operation einer Eingabeprobe eines nächsten Auftrags verwenden können.
-
Unter Bezugnahme auf 10 und 13 kann das Quantisierungssystem 100a mindestens eine erste Probe aus den bereits verarbeiteten Eingabeproben auswählen (S310). Der Probe-Generator 150a des Quantisierungssystems 100a kann beispielsweise eine voreingestellte Anzahl von ersten Proben aus den bereits verarbeiteten Eingabeproben auswählen. Dabei kann die voreingestellte Anzahl von einem Hersteller oder einem Benutzer festgelegt werden. Der Probengenerator 150a kann beispielsweise 100 kürzlich verarbeitete Bilder als erste Proben aus den bereits verarbeiteten aufeinanderfolgenden Bildern auswählen, wenn es sich bei den Eingabeproben um aufeinanderfolgend fotografierte Bilder handelt.
-
Darüber hinaus erwartet das Quantisierungssystem 100a möglicherweise eine zweite Probe eines nächsten Auftrags auf der Grundlage der ersten Probe (S320). Der Probengenerator 150a kann beispielsweise die voreingestellte Anzahl der ersten Proben analysieren und die zweite Probe des nächsten Auftrags auf der Grundlage eines Analyseergebnisses erwarten. Das vom Probengenerator 150a durchgeführte Verfahren zur Erwartung der zweiten Probe des nächsten Auftrags, kann das gleiche oder im Wesentlichen das gleiche wie das in 11 und 12 beschriebene Verfahren sein. Darüber hinaus kann der Probengenerator 150a die zweite Probe dem Bias-Kompensator 140a zuführen.
-
Dann kann das Quantisierungssystem 100a die erwartete zweite Probe als Referenzprobe bestimmen (S330). Dann kann das Quantisierungssystem 100a den Quantisierungsfehler der Referenzprobe unter Verwendung eines Quantisierungsfehlers der mindestens einen ersten Probe bestimmen (S340). In Beispielausführungsformen kann der Bias-Kompensator 140a den Quantisierungsfehler der Referenzprobe bestimmen, indem er den Mittelwert der Quantisierungsfehler der mindestens einen ersten Probe erhält. Alternativ kann der Bias-Kompensator 140a einen Quantisierungsfehler der zuletzt verarbeiteten Probe unter der mindestens eine ersten Probe identifizieren und den identifizierten Quantisierungsfehler als den Quantisierungsfehler der Referenzprobe bestimmen. Das heißt, der Bias-Kompensator 140a kann den Quantisierungsfehler der Referenz-Probe bestimmen, ohne die Eigenschaft zu verwenden, dass die Eingabeprobe X die gleiche wie die quantisierte Eingabeprobe q_X und der Quantisierungsfehler e_X der Eingabeprobe X ist.
-
Darüber hinaus kann das Quantisierungssystem 100a einen Kompensationsbias auf der Grundlage der bestimmten Referenzprobe und des Quantisierungsfehlers der Referenzprobe erzeugen. Bezogen auf 6 kann der Bias-Kompensator 140a des Quantisierungssystems 100a beispielsweise eine erste MAC-Operation basierend auf dem Quantisierungsfehler e_X' der Referenzprobe und der quantisierten Gewichtung q_W durchführen. Darüber hinaus kann der Bias-Kompensator 140a eine zweite MAC-Operation auf der Basis der Referenzprobe X' und des Quantisierungsfehlers e_W der Gewichtung durchführen. Zusätzlich kann der Bias-Kompensator 140a ein erstes MAC-Operationsergebnis, ein zweites MAC-Operationsergebnis und einen Bias eines ANN (der gleich der Summe der quantisierten Bias q_bias und des Quantisierungsfehlers e bias des Bias ist) addieren, um den Kompensationsbias q_bias1 zu erzeugen.
-
Nach einer modifizierbaren Beispielausführungsform kann das Quantisierungssystem 100a die bestimmte Referenzprobe quantisieren und den Kompensationsbias auf der Grundlage der quantisierten Referenzprobe und des Quantisierungsfehlers der Referenzprobe erzeugen. Unter Bezugnahme auf 7 kann der Bias-Kompensator 140a des Quantisierungssystems 100a beispielsweise eine dritte MAC-Operation auf der Grundlage des Quantisierungsfehlers e_X' der Referenzprobe und der nicht quantisierten Gewichtung W durchführen. Zusätzlich kann der Bias-Kompensator 140a eine vierte MAC-Operation auf der Grundlage der quantisierten Referenzprobe q_X' und des Quantisierungsfehlers e_W der Gewichtung durchführen. Darüber hinaus kann der Bias-Kompensator 140a ein drittes MAC-Operationsergebnis, ein viertes MAC-Operationsergebnis und den Bias des ANN addieren, um den Kompensationsbias q_bias1 zu erzeugen.
-
Wie vorstehend mit Bezug auf 8 beschrieben, kann der Bias-Kompensator 140a den zweiten Kompensationsbias q_bias2, der einen skalaren Wert aufweist, erzeugen, indem er den Mittelwert der Werte erhält, die den erzeugten Kompensationsbias q_bias1 bilden.
-
Wie vorstehend beschrieben, kann der Bias-Kompensator 140a die Referenzprobe, die quantisierte Referenzprobe und/oder den Quantisierungsfehler der Referenzprobe unter Verwendung der bereits verarbeiteten Eingabeproben bestimmen und die zweite Kompensation q_bias1 oder den Bias q_bias2 auf der Grundlage der bestimmten Referenzprobe, der quantisierten Referenzprobe und des Quantisierungsfehlers der Referenzprobe erzeugen. Das neuronale Netzwerksystem 200 kann den erzeugten Kompensationsbias q_bias1 oder den Bias q_bias2 bei der Operation einer Eingabeprobe eines nächsten Auftrags verwenden.
-
14 ist ein Diagramm, das ein Verfahren zur Durchführung einer Operation an einer Eingabeprobe eines nächsten Auftrags durch ein quantisiertes ANN nach Beispielausführungsformen veranschaulicht. 14 ist beispielsweise das Diagramm, das die vom Quantisierungssystem 100a und dem Neuronalen Netzwerksystem 200 von 10 durchgeführte Verfahren zur Durchführung von Operationen an der Eingabeprobe des nächsten Auftrags veranschaulicht. Im Folgenden wird zur Vereinfachung der Beschreibung eine Beschreibung unter der Annahme gegeben, dass die Eingabeproben kontinuierlich fotografierte Bilder sind.
-
Unter Bezugnahme auf 10 und 14 können kontinuierlich fotografierte Bilder Rahmen 0 bis Rahmen N, bei denen es sich um eine Vielzahl von Eingabeproben handelt, nacheinander verarbeitet werden. Wenn die Verarbeitung auf einem Rahmen N-1 abgeschlossen ist, kann das Quantisierungssystem 100a die Verarbeitung auf einem Rahmen N vorbereiten.
-
Das Quantisierungssystem 100a kann beispielsweise mindestens ein Bild aus den bereits verarbeiteten Bildern Rahmen 0 bis Rahmen N-1 auswählen. Bezogen auf 14 kann z. B. der Probengenerator 150a des Quantisierungssystems 100a das Bild N-1 auswählen. Darüber hinaus kann das Quantisierungssystem 100a ein Bild des nächsten Auftrags auf der Grundlage des ausgewählten Bildes erwarten. Bezogen auf 14, kann der Probengenerator 150a zum Beispiel erwarten, dass der Rahmen N basierend auf dem Rahmen N-1 einen erwarteten Rahmen N erzeugt.
-
Darüber hinaus kann das Quantisierungssystem 100a unter Verwendung des Bildes des nächsten Auftrags einen Kompensationsbias erzeugen. Unter Bezugnahme auf 14 kann der Bias-Kompensator 140a beispielsweise den erwarteten Rahmen N vom Probengenerator 150a empfangen und den empfangenen erwarteten Rahmen N als Referenzprobe X' bestimmen. Zusätzlich kann der Bias-Kompensator 140a den Quantisierungsfehler e_X' der Referenzprobe unter Verwendung eines Quantisierungsfehlers von mindestens einem der bereits verarbeiteten Bilder Rahmen 0 bis Rahmen N-1 bestimmen. In Beispielausführungsformen kann der Bias-Kompensator 140a einen Quantisierungsfehler des Rahmens N-1 als Quantisierungsfehler e_X' der Referenzprobe bestimmen oder den Quantisierungsfehler e_X' der Referenzprobe bestimmen, indem er den Mittelwert der Quantisierungsfehler einer voreingestellten Anzahl von zuletzt verarbeiteten Bildern erhält.
-
Quantisierungsfehler der bereits verarbeiteten Bilder Rahmen 0 bis Rahmen N-1 können in einem vorhergehenden Operationsprozess auf den bereits verarbeiteten Bildern Rahmen 0 bis Rahmen N-1 berechnen und im Speicher 160 gespeichert werden. Zum Beispiel können unter Verwendung der Eigenschaft, dass die Eingabeprobe X gleich der quantisierten Eingabeprobe q_X und der Quantisierungsfehler e X der Eingabeprobe ist, die Quantisierungsfehler der bereits verarbeiteten Bilder Rahmen 0 bis Rahmen N-1 berechnet und im Speicher 160 gespeichert werden. Dementsprechend kann der Bias-Kompensator 140a den Quantisierungsfehler von mindestens einem der bereits verarbeiteten Bilder Rahmen 0 bis Rahmen N-1 aus dem Speicher 160 lesen und den Quantisierungsfehler e_X' der Referenzprobe unter Verwendung des Lesefehlers bestimmen. In 14 ist zwar der Speicher 160 dargestellt und als im Quantisierungssystem 100a enthalten beschrieben, aber der Speicher 160 kann in dem neuronalen Netzwerksystem 200 enthalten oder in einer vom neuronalen Netzwerksystem 200 und dem Quantisierungssystem 100a getrennten Konfiguration implementiert werden.
-
Darüber hinaus kann der Bias-Kompensator 140a den Kompensationsbias q_bias1 oder q_bias2 basierend auf der Referenzprobe X' und dem Quantisierungsfehler e_X' der Referenzprobe X' erzeugen. Zusätzlich kann der Bias-Kompensator 140a den erzeugten Kompensationsbias q_bias1 oder q_bias2 über die neuronale Netzwerk-Schnittstelle 110 dem neuronalen Netzwerksystem 200 zuführen.
-
Dann kann der Probenquantisierer 130 den Rahmen N quantisieren, um einen quantisierten Rahmen N zu erzeugen. Außerdem kann der Probenquantisierer 130 den quantisierten Rahmen N dem neuronalen Netzwerksystem 200 über die neuronale Netzwerk-Schnittstelle 110 zuführen.
-
Darüber hinaus kann das neuronale Netzwerksystem 200 eine Operation auf der Grundlage des empfangenen quantisierten Rahmens N und des Kompensationsbias q_bias1 oder q_bias2 durchführen. Das neuronale Netzwerksystem 200 kann beispielsweise die MAC-Operation basierend auf dem quantisierten Rahmen N und einer quantisierten Gewichtung durchführen und den Kompensationsbias q_bias1 oder q_bias2 auf ein MAC-Operationsergebnis reflektieren, um die quantisierte Ausgabeprobe q_Y zu erzeugen.
-
15 ist ein Ablaufdiagramm, das ein Operationsverfahren unter Verwendung eines ANN nach einer Ausführungsform veranschaulicht. 15 ist beispielsweise das Ablaufdiagramm, das das Operationsverfahren unter Verwendung des ANN des Computersystems 1000 oder 1000a von 2 oder 10 veranschaulicht.
-
Unter Bezugnahme auf 2, 10 und 15 kann das Computersystem 1000 oder 1000a Parameter des ANN (S410) quantisieren. Das Quantisierungssystem 100 oder 100a des Computersystems 1000 oder 1000a kann zum Beispiel die Parameter des ANN wie einer Gewichtung und einen Bias quantisieren. Darüber hinaus kann das Computersystem 1000 oder 1000a einen Kompensationsbias erzeugen, indem es den quantisierten Bias so kompensiert, dass er einen Fehler aufgrund der Quantisierung enthält (S420). Dabei kann der Kompensationsbias unter Verwendung mindestens eines von einem quantisierten Gewicht des ANN, einem Quantisierungsfehler der Gewichtung, dem quantisierten Bias, einem Quantisierungsfehler des Bias, einer Referenzprobe, einer quantisierten Referenzprobe und einem Quantisierungsfehler der Referenzprobe erzeugt werden. Die Referenzprobe kann durch eine Vielzahl von Proben bestimmt werden, die sich von einer Eingabeprobe unterscheiden, die gerade verarbeitet wird, oder sie kann durch mindestens eine der Eingabeproben bestimmt werden, die bereits verarbeitet wurden.
-
Außerdem kann das Computersystem 1000 oder 1000a die Eingabeprobe quantisieren (S430). Das Quantisierungssystem 100 oder 100a des Computersystems 1000 oder 1000a kann beispielsweise die Eingabeprobe quantisieren (S430). Darüber hinaus kann das Quantisierungssystem 100 oder 100a die quantisierte Eingabeprobe dem neuronalen Netzwerksystem 200 des Computersystems 1000 oder 1000a zuführen. Außerdem kann das Computersystem 1000 oder 1000a eine MAC-Operation auf der Grundlage der quantisierten Gewichtung und der quantisierten Eingabeprobe durchführen (S440). Das neuronale Netzwerksystem 200 kann beispielsweise die quantisierte Eingabeprobe empfangen und die MAC-Operation auf der Grundlage der quantisierten Gewichtung und der empfangenen quantisierten Eingabeprobe durchführen.
-
Darüber hinaus kann das Computersystem 1000 oder 1000a den Kompensationsbias zur Kompensation des Quantisierungsfehlers auf ein MAC-Operationsergebnis reflektieren (S450). Das neuronale Netzwerksystem 200 des Computersystems 1000 oder 1000a kann ein endgültiges Operationsergebnis erzeugen, indem es den vom Quantisierungssystem 100 oder 100a erhaltenen Kompensationsbias auf das MAC-Operationsergebnis reflektiert. Das Computersystem nach Beispielausführungsformen kann einen Erwartungswert eines Fehlers, der in einem Quantisierungsprozess als Kompensationsbias auftritt, erzeugen und den erzeugten Kompensationsbias durch ein quantisiertes ANN auf ein MAC-Operationsergebnis reflektieren. Dementsprechend kann das Operationsverfahren, das das ANN nach Beispielausführungsformen verwendet, aufgrund der Verwendung des quantisierten ANN eine verringerte Komplexität aufweisen und eine gute Leistung entsprechend der Reflektion des Kompensationsbias aufweisen.
-
16 ist ein Blockdiagramm, das eine elektronische Vorrichtung 300 nach Beispielausführungsformen veranschaulicht.
-
In Beispielausführungsformen kann das Quantisierungssystem 100 oder 100a aus 2 oder 10 als elektronische Vorrichtung 300 aus 16 implementiert werden. Wie in 16 dargestellt, kann die elektronische Vorrichtung 300 einen Systemspeicher 310, einen Prozessor 330, einen Speicher 350, Ein-/Ausgabe (E/A)-Vorrichtungen 370 und/oder Kommunikationsverbindungen 390 enthalten. Die in der elektronischen Vorrichtung 300 enthaltenen Komponenten können kommunikativ miteinander z. B. über einen Bus verbunden sein.
-
Der Systemspeicher 310 kann ein Programm 312 enthalten. Das Programm 312 kann den Prozessor 330 veranlassen, die Quantisierung eines ANN nach Beispielausführungsformen, die Quantisierung einer Eingabeprobe und die Erzeugung eines Kompensationsbias durchzuführen. Das Programm 312 kann beispielsweise eine Vielzahl von Anweisungen enthalten, die vom Prozessor 330 ausgeführt werden können. Darüber hinaus kann die Vielzahl der im Programm 312 enthaltenen Anweisungen vom Prozessor 330 ausgeführt werden, um die Quantisierung des ANN, die Quantisierung der Eingabeprobe oder die Erzeugung der Kompensationsbias durchzuführen. Der Systemspeicher 310 kann als nicht einschränkendes Beispiel einen flüchtigen Speicher, wie etwa einen statischen Speicher mit wahlfreiem Zugriff (SRAM) und dynamischen Speicher mit wahlfreiem Zugriff (DRAM), oder einen nichtflüchtigen Speicher, wie etwa einen Flash-Speicher, enthalten.
-
Der Prozessor 330 kann mindestens einen Kern enthalten, der einen beliebigen Satz von Anweisungen ausführen kann (z. B. Intel Architecture-32 (IA-32), 64-Bit-Erweiterungen IA-32, x86-64, PowerPC, Sparc, MIPS, ARM, IA-64 usw.). Der Prozessor 330 kann im Systemspeicher 310 gespeicherte Anweisungen ausführen und das Programm 312 ausführen, um die Quantisierung des ANN, die Quantisierung der Eingabeprobe oder die Erzeugung des Kompensationsbias durchzuführen.
-
Der Speicher 350 kann möglicherweise keine gespeicherten Daten verlieren, auch wenn die Leistungsversorgung der elektronischen Vorrichtung 300 blockiert ist. Der Speicher 350 kann zum Beispiel auch einen nichtflüchtigen Speicher, wie etwa einen elektrisch löschbaren programmierbaren Festwertspeicher (EEPROM), einen Flash-Speicher, Phasenwechselspeicher mit wahlfreiem Zugriff (PRAM), einen Widerstandsspeicher mit wahlfreiem Zugriff (RRAM), einen Nano-Floating-Gate-Speicher (NFGM), einen Polymerspeicher mit wahlfreiem Zugriff (PoRAM), einen Magnetspeicher mit wahlfreiem Zugriff (MRAM), einen ferroelektrischen Speicher mit wahlfreiem Zugriff (FRAM) usw., und ein Speichermedium, wie etwa ein Magnetband, eine optische Platte und eine Magnetplatte, enthalten. In einigen Beispielausführungsformen kann der Speicher 350 von der elektronischen Vorrichtung 300 entfernbar sein.
-
In Beispielausführungsformen kann der Speicher 350 für die Quantisierung des ANN nach Beispielausführungsformen, die Quantisierung der Eingabeprobe und die Erzeugung der Kompensationsbias das Programm 312 speichern. Und bevor das Programm 312 durch den Prozessor 330 ausgeführt wird, kann das Programm 312 oder zumindest ein Teil davon aus dem Speicher 350 in den Systemspeicher 310 geladen werden. In Beispielausführungsformen kann der Speicher 350 eine in einer Programmiersprache geschriebene Datei speichern, und das von einem Compiler oder dergleichen erzeugte Programm 312 oder zumindest ein Teil davon kann aus der Datei in den Systemspeicher 310 geladen werden.
-
In Beispielausführungsformen kann der Speicher 350 Daten speichern, die vom Prozessor 330 verarbeitet werden sollen und/oder Daten, die vom Prozessor 330 verarbeitet werden. Der Speicher 350 kann z. B. Eingabeproben, quantisierte Eingabeproben und Quantisierungsfehler der Eingabeproben sowie den erzeugten Kompensationsbias usw. speichern.
-
Die E/A-Vorrichtungen 370 können eine Eingabevorrichtung, wie z. B. eine Tastatur und eine Zeigevorrichtung, und eine Ausgabevorrichtung, wie z. B. eine Anzeigevorrichtung und einen Drucker, enthalten. Ein Benutzer kann beispielsweise die Ausführung des Programms 312 durch den Prozessor 330 über die E/A-Vorrichtungen 370 auslösen, die Eingabeprobe eingeben und eine Ausgabeprobe und/oder eine Fehlermeldung usw. identifizieren.
-
Die Kommunikationsverbindungen 390 können den Zugang zu einem Netzwerk außerhalb der elektronischen Vorrichtung 300 ermöglichen. Das Netzwerk kann zum Beispiel mehrere Computersysteme und Kommunikationsverbindungen enthalten, und die Kommunikationsverbindungen können drahtgebundene Verbindungen, optische Verbindungen, Drahtlos-Verbindungen oder jede andere Form von Verbindungen enthalten.
-
17 ist ein Blockdiagramm, das eine elektronische Vorrichtung 400 nach Beispielausführungsformen veranschaulicht. In Beispielausführungsformen kann das neuronale Netzwerksystem 200 aus 2 oder 10 als die elektronische Vorrichtung 400 aus 17 implementiert werden. Die elektronische Vorrichtung 400 kann, als nicht einschränkendes Beispiel, jede mobile elektronische Vorrichtung sein, die durch eine Batterie oder durch Selbsterzeugung betrieben wird, wie z. B. ein Mobiltelefon, ein Tablet-PC, eine tragbare Vorrichtung, eine Vorrichtung für das Internet der Dinge usw.
-
Wie in 17 gezeigt, kann die elektronische Vorrichtung 400 ein Speichersubsystem 410, E/A-Vorrichtungen 430, eine Verarbeitungseinheit 450 und/oder eine Netzwerk-Schnittstelle 470 enthalten, und das Speichersubsystem 410, die E/A-Vorrichtungen 430, die Verarbeitungseinheit 450 und/oder die Netzwerk-Schnittstelle 470 können über einen Bus 490 miteinander kommunizieren. In einigen Beispielausführungsformen können mindestens zwei von dem Speichersubsystem 410, den E/A-Vorrichtungen 430, der Verarbeitungseinheit 450 und der Netzschnittstelle 470 als ein System-on-a-Chip (SoC) in einem Paket enthalten sein.
-
Das Speichersubsystem 410 kann ein RAM 412 und einen Speicher 414 enthalten. Im RAM 412 und/oder im Speicher 414 können von der Verarbeitungseinheit 450 ausgeführte Anweisungen und zu verarbeitende Daten gespeichert werden. Beispielsweise können im RAM 412 und/oder im Speicher 414 Parameter wie Signale, Gewichtungen und Biases eines ANN gespeichert werden. In einigen Beispielausführungsformen kann der Speicher 414 einen nichtflüchtigen Speicher enthalten.
-
Die Verarbeitungseinheit 450 kann eine zentrale Verarbeitungseinheit (CPU) 452, eine Grafikverarbeitungseinheit (GPU) 454, einen digitalen Signalprozessor (DSP) 456 und eine neuronale Verarbeitungseinheit (NPU) 458 enthalten. Anders als in 17 dargestellt, kann die Verarbeitungseinheit 450 in Beispielausführungsformen nur einen Teil der CPU 452, der GPU 454, des DSP 456 und der NPU 458 enthalten.
-
Die CPU 452 kann direkt den Gesamtbetrieb der elektronischen Vorrichtung 400, z. B. eine bestimmte Aufgabe als Reaktion auf eine externe Eingabe, die über die E/A-Vorrichtungen 430 empfangen wird, durchführen oder andere Komponenten der Verarbeitungseinheit 450 anweisen, den Gesamtbetrieb durchzuführen. Die GPU 454 kann Daten für eine Bildausgabe über eine in den E/A-Vorrichtungen 430 enthaltene Anzeigevorrichtung erzeugen oder Daten kodieren, die von einer in den E/A-Vorrichtungen 430 enthaltenen Kamera empfangen werden. Der DSP 456 kann nützliche Daten durch die Verarbeitung eines digitalen Signals, z. B. eines von der Netzwerk-Schnittstelle 470 zugeführten digitalen Signals, erzeugen.
-
Die NPU 458 ist eine dedizierte Hardware für das ANN und kann eine Vielzahl von Rechenknoten enthalten, die zumindest einigen künstlichen Neuronen entsprechen, die das ANN bilden, und zumindest einige der Vielzahl von Rechenknoten können Signale parallel verarbeiten. Da das nach Beispielausführungsformen quantisierte ANN eine höhere Genauigkeit und/oder eine geringere Berechnungskomplexität aufweist, kann das ANN leicht in der elektronischen Vorrichtung 400 von 17 implementiert werden, eine hohe Verarbeitungsgeschwindigkeit aufweisen und z. B. von der kleinen NPU 458 implementiert werden.
-
Die E/A-Vorrichtungen 430 können Eingabevorrichtungen, wie z. B. eine Berührungseingabevorrichtung, eine Toneingabevorrichtung, eine Kamera und Ausgabevorrichtungen, wie z. B. eine Anzeigevorrichtung und eine Tonausgabevorrichtung, enthalten. Wenn z. B. die Sprache des Benutzers über eine Toneingabevorrichtung eingegeben wird, kann die Sprache durch das in der elektronischen Vorrichtung 400 implementierte ANN erkannt und eine entsprechende Operation ausgelöst werden. Darüber hinaus kann bei der Eingabe eines Bildes über die Kamera ein im Bild enthaltenes Objekt durch ein in der elektronischen Vorrichtung 400 implementierte DNN erkannt und dem Benutzer eine Ausgabe wie z. B. virtuelle Realität zugeführt werden. Die Netzwerk-Schnittstelle 470 kann der elektronischen Vorrichtung 400 den Zugang zu einem mobilen Kommunikationsnetzwerk, wie LTE (LTE = Long Term Evolution), 5G usw. oder den Zugang zu einem lokalen Netzwerk, wie etwa Wi-Fi, ermöglichen.
-
Jedes der vorstehend offenbarten Elemente, die das neuronale Netzwerksystem und/oder das Quantisierungssystem enthalten, kann eine Verarbeitungsschaltung enthalten oder in einer Verarbeitungsschaltung implementiert sein, die Logikschaltungen enthaltende Hardware, eine Hardware/Software-Kombination, wie etwa einen Software ausführenden Prozessor, oder eine Kombination davon umfassen kann. Insbesondere kann die Verarbeitungsschaltung beispielsweise im Besonderen eine zentrale Verarbeitungseinheit (CPU), eine arithmetische Logikeinheit (ALU), einen digitalen Signalprozessor, einen Mikrocomputer, ein Field-Programmable-Gate-Array (FPGA), ein System-on-Chip (SoC), eine programmierbare Logikeinheit, einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung (ASIC) usw. enthalten, ist aber nicht darauf beschränkt.
-
In einigen Ausführungsformen kann das künstliche neuronale Netzwerk ANN Organisations- und Verarbeitungsmodelle, wie z. B. konvolutionäre neuronale Netzwerke (CNN), dekonvolutionäre neuronale Netzwerke, rekurrierende neuronale Netzwerke (RNN), die wahlweise Einheiten mit langem Kurzzeitgedächtnis (LSTM) und/oder gattergesteuerte rekurrierende Einheiten (GRU) enthalten, gestapelte neuronale Netzwerke (SNN), dynamische neuronale Netzwerke im Zustandsraum (SSDNN), Deep-Believe-Netzwerke (DBN), generative gegnerische Netzwerke (GANs) und/oder eingeschränkte Boltzmann-Maschinen (RBM), enthalten.
-
Alternativ oder zusätzlich kann das künstliche neuronale Netzwerk ANN auch andere Formen von Modellen des maschinellen Lernens, wie z. B. lineare und/oder logistische Regression, statistische Clusterbildung, Bayes'sche Klassifikation, Entscheidungsbäume, Dimensionalitätsreduktion wie z. B. Hauptkomponentenanalyse und Expertensysteme; und/oder Kombinationen davon, einschließlich Ensembles wie Zufallswälder, enthalten. Solche maschinellen Lernmodelle können auch dazu verwendet werden, verschiedene Dienste und/oder Anwendungen vorzusehen, z. B. kann ein Bildklassifizierungsdienst, ein Benutzerauthentifizierungsdienst auf der Grundlage einer/von Bioinformation(en) oder biometrischer Daten, ein Dienst für ein fortgeschrittenes Fahrerassistenzsystem (ADAS), ein Sprachassistenzdienst, ein Dienst für automatische Spracherkennung (ASR) oder ähnliches von elektronischen Vorrichtungen durchgeführt, ausgeführt oder verarbeitet werden.
-
Während die erfinderischen Konzepte insbesondere nach Beispielausführungsformen gezeigt und beschrieben worden sind, wird davon ausgegangen, dass darin verschiedene Änderungen in Form und Einzelheiten vorgenommen werden können, ohne vom Geist und Umfang der folgenden Ansprüche abzuweichen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- KR 1020190117485 [0001]
- KR 1020200029807 [0001]