DE102021212454A1 - METHODS OF TRAINING AND/OR EXECUTING A CONVOLUTION-BASED NEURAL NETWORK USING AN APPROXIMATED FOURIER FAST TRANSFORMATION - Google Patents
METHODS OF TRAINING AND/OR EXECUTING A CONVOLUTION-BASED NEURAL NETWORK USING AN APPROXIMATED FOURIER FAST TRANSFORMATION Download PDFInfo
- Publication number
- DE102021212454A1 DE102021212454A1 DE102021212454.2A DE102021212454A DE102021212454A1 DE 102021212454 A1 DE102021212454 A1 DE 102021212454A1 DE 102021212454 A DE102021212454 A DE 102021212454A DE 102021212454 A1 DE102021212454 A1 DE 102021212454A1
- Authority
- DE
- Germany
- Prior art keywords
- convolution
- approximate
- input
- fourier transform
- neural network
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Artificial Intelligence (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Algebra (AREA)
- Discrete Mathematics (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
Beschrieben ist ein Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes (Convolutional Neural Network, CNN) mittels einer approximierten schnellen Fourier-Transformation (AFFT), wobei das Verfahren umfasst: Bereitstellen von mindestens zwei Eingangssignalen; Durchführen einer Faltung, welches umfasst: Approximieren einer Fourier-Transformation für jedes der mindestens zwei Eingangssignale, um mindestens zwei approximierte schnelle Fourier-Transformationen (AFFT) zu erhalten; Berechnen eines Hadamard-Produktes der mindestens zwei approximierten schnellen Fourier-Transformationen (AFFT), um ein approximiertes Faltungsergebnis im Frequenzbereich zu erhalten; Approximieren einer inversen Fourier-Transformation, um eine approximierte Inverse schnelle Fourier-Transformation (iAFFT) zu erhalten; und Ausgeben der Inversen (iAFFT) als approximiertes Faltungsergebnis im Zeitbereich. Außerdem werden ein Schaltung zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes und ein Computerprogrammprodukt beschrieben.A method is described for training and/or executing a convolutional neural network (CNN) using an approximate fast Fourier transform (AFFT), the method comprising: providing at least two input signals; performing a convolution, comprising: approximating a Fourier transform for each of the at least two input signals to obtain at least two approximate fast Fourier transforms (AFFT); calculating a Hadamard product of the at least two approximate Fast Fourier Transforms (AFFT) to obtain an approximate convolution result in the frequency domain; approximating an inverse Fourier transform to obtain an approximate inverse fast Fourier transform (iAFFT); and outputting the inverse (iAFFT) as an approximate convolution result in the time domain. A circuit for training and/or executing a convolution-based neural network and a computer program product are also described.
Description
Die vorliegende Erfindung betrifft ein Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales, eine Schaltung zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales und ein entsprechendes Computerprogrammprodukt.The present invention relates to a method for the approximate calculation of butterfly units of a Fourier transformation of a signal, a circuit for the approximate calculation of butterfly units of a Fourier transformation of a signal, and a corresponding computer program product.
Die fortschreitende Entwicklung des Internet der Dinge (Internet of Things, loT) führt zu einer Omnipräsenz intelligenter Systeme. Diese sind direkt in Anwendungen eingebettet und bestehen aus Sensorik zur Erfassung der Umwelt, Prozessoren zur direkten Datenverarbeitung und Kommunikationsschnittstellen nach außen. Die Verlagerung der zur Verarbeitung notwendigen Berechnungen nah an das Geschehen (Edge Computing) mittels eingebetteter Systeme führt zu neuen Herausforderungen, vor allem hinsichtlich des Ressourcenbedarfs (Energie, Laufzeit, Speicher, etc.). Es werden hierfür optimierte und spezialisierte Systeme und Verfahren angestrebt [1], die auch unter Echtzeitanforderungen bei geringen Latenzen eingesetzt werden können.The progressive development of the Internet of Things (loT) leads to an ubiquity of intelligent systems. These are directly embedded in applications and consist of sensors for recording the environment, processors for direct data processing and external communication interfaces. The relocation of the calculations required for processing close to the action (edge computing) using embedded systems leads to new challenges, especially with regard to resource requirements (energy, runtime, memory, etc.). For this purpose, optimized and specialized systems and methods are sought [1], which can also be used under real-time requirements with low latencies.
Ein für die digitale Signalverarbeitung von z.B. Bild- oder Audiodaten besonders wichtiges Verfahren zur Berechnung von Frequenzspektren oder Faltungen ist die Diskrete Fourier Transformation (DFT) bzw. die schnelle Fourier Transformation (Fast Fourier Transform oder FFT).A method for calculating frequency spectra or convolutions that is particularly important for digital signal processing, e.g.
Außerdem führt die Entwicklung des Internet der Dinge (Internet of Things, loT) zur Erfassung großer Datenmengen. Um dieses Datenaufkommen beherrschen zu können, ist eine Verlagerung der zur Datenverarbeitung notwendigen Berechnungen nah an das Geschehen (Edge Computing) unerlässlich. Zur Extraktion von Wissen aus den erfassten Daten, kommen häufig Modelle und Verfahren des maschinellen Lernens zum Einsatz. Einen für die Verarbeitung von z.B. Bild- oder Audiodaten besonders wichtigen Modelltypen bilden dabei die faltungsbasierten neuronalen Netze (Convolutional Neural Networks, CNNs), welche die Fourier Transformation nutzen können. Die Inferenz und das Training von CNNs zeichnen sich durch einen hohen Berechnungsaufwand auf Grund der großen Anzahl benötigter Faltungsoperationen aus. Der Einsatz von CNNs in ressourcenbeschränkten Edge-Systemen erfordert somit spezialisierte und hinsichtlich des Ressourcenbedarfs (Energie, Laufzeit, Speicher, etc.) optimierte Software- und Hardwarearchitekturen.In addition, the development of the Internet of Things (loT) leads to the collection of large amounts of data. In order to be able to control this volume of data, it is essential to shift the calculations required for data processing close to the action (edge computing). Machine learning models and methods are often used to extract knowledge from the collected data. The convolutional neural networks (CNNs), which can use the Fourier transformation, form a model type that is particularly important for the processing of image or audio data, for example. The inference and the training of CNNs are characterized by a high computational effort due to the large number of convolution operations required. The use of CNNs in edge systems with limited resources therefore requires software and hardware architectures that are specialized and optimized in terms of resource requirements (energy, runtime, memory, etc.).
Grundlage einer Transformation zeitdiskreter, endlicher Signale in den Frequenzbereich bildet, wie bereits erwähnt, die diskrete Fouriertransformation (DFT) [2]:
Gleichung (1a) beschreibt die Transformation in den Frequenzbereich für einen Signalvektor
Die Umkehrung der DFT, also die Transformation diskreter Frequenzspektren in zeitdiskrete Signale, bezeichnet man als inverse DFT (iDFT). Sie erfolgt durch Multiplikation der invertierten DFT-Matrix W-1 mit einem Vektor im Frequenzbereich und einer Skalarmultiplikation mit einem konstanten Faktor
Grundlage für die FFT bzw. die inverse FFT (iFFT) bildet der Algorithmus nach Cooley-Tukey [3] [4] [5]. Das Verfahren erlaubt die Zerlegung einer DFT bzw. iDFT in kleinere DFT-Berechnungsblöcke und sogenannte Schmetterlingseinheiten nach dem Teile-undherrsche-Prinzip. Hierdurch wird bereits die Anzahl benötigter Rechenoperationen verringert. Durch eine rekursive Anwendung des Verfahrens kann zudem eine Darstellung der DFT ausschließlich mit Hilfe der Schmetterlingseinheiten erreicht werden. Die Schmetterlingseinheiten können dabei unterschiedliche Anzahlen von Eingabewerten haben. Eine FFT aus Schmetterlingseinheiten mit n Eingängen bezeichnet man als Radix-n-FFT. Auch FFT-Varianten mit unterschiedlichen Schmetterlingseinheiten (Split-Radix- und Mixed-Radix-FFT) sind bekannt. Abhängig von der Anordnung der Eingabewerte bei der Unterteilung der DFT in die Schmetterlingseinheiten unterscheidet man zudem zwischen der Decimation-in-Time- (DIT) und Decimation-in-Frequency- (DFT) FFT.The basis for the FFT or the inverse FFT (iFFT) is the algorithm according to Cooley-Tukey [3] [4] [5]. The method allows a DFT or iDFT to be broken down into smaller DFT calculation blocks and so-called butterfly units according to the divide-and-conquer principle. This already reduces the number of arithmetic operations required. By using the method recursively, the DFT can be represented exclusively with the help of the butterfly units. The butterfly units can have different numbers of input values. An FFT made up of butterfly units with n inputs is called a radix-n FFT. FFT variants with different butterfly units (split radix and mixed radix FFT) are also known. Depending on the arrangement of the input values when dividing the DFT into butterfly units, a distinction is also made between Decimation-in-Time (DIT) and Decimation-in-Frequency (DFT) FFT.
Eine DIT bzw. DIF Radix-2-Schmetterlingseinheit sind beispielsweise in
Die folgende Formel beschreibt die durchzuführenden Berechnungen bei der Multiplikation mit einem Drehfaktor innerhalb einer DIT/DIF-Radix- n-Schmetterlingseinheit:
Bisherige Ansätze zur Steigerung der Energieeffizienz und Performance der (i)DFT bzw. (i)FFT basieren auf approximativen Berechnungsverfahren mit Hilfe der Quantisierung der Drehfaktoren oder Eingangsgrößen, sowie auf Verfahren zur multiplikationslosen Darstellung der Berechnungen. Verschiedene Arbeiten untersuchen den Einfluss von Quantisierungsbreiten und -arten (Gleichmäßige und ungleichmäßige Quantisierung) auf die resultierende Genauigkeit der FFT und die algorithmische Ableitung optimaler Quantisierungsbreiten für die jeweiligen Anforderungen der Anwendung [6] [7] [8]. Des Weiteren wurde erforscht, wie multiplikationslose Berechnungen der FFT durchgeführt werden können. Dabei werden die ressourcenaufwändigen Multiplikationen meist durch Shift-Operationen und Additionen bzw. Subtraktionen ersetzt, indem die Drehfaktoren mit Hilfe der Sum-of-Powers-of-Two- oder Canonical Signed Digit-Darstellung [9] [10] zerlegt werden oder sogenannte Lifting-Strukturen [11] zum Einsatz kommen. Des Weiteren können Multiplikationen mittels verteilter Arithmetik (Distributed Arithmetic) [12] ersetzt werden.Previous approaches to increasing the energy efficiency and performance of the (i)DFT or (i)FFT are based on approximate calculation methods using the quantization of the rotation factors or input variables, as well as on methods for the multiplication-free representation of the calculations. Various works investigate the influence of quantization widths and types (uniform and non-uniform quantization) on the resulting accuracy of the FFT and the algorithmic derivation of optimal quantization widths for the respective application requirements [6] [7] [8]. Furthermore, it was researched how multiplication-free calculations of the FFT can be carried out. The resource-intensive multiplications are usually replaced by shift operations and additions or subtractions by breaking down the rotation factors using the sum-of-powers-of-two or canonical signed digit representation [9] [10] or so-called lifting -Structures [11] are used. Furthermore, multiplications can be replaced using distributed arithmetic [12].
Bisherige Ansätze zur Beschleunigung faltungsbasierter neuronaler Netze beziehen sich vor allem auf die ressourcenoptimierte Inferenz. Darunter fallen Verfahren zur Quantisierung von Gewichten und Inputs der Netze [13], [14], [15], Verfahren zur Eliminierung von Gewichten, welche nicht maßgeblich zur Funktionsfähigkeit des Netzes beitragen (Pruning) [16], [17], [18] und die automatisierte Suche nach Netzarchitekturen, die an die zugrundeliegende Hardware angepasst sind [19], [20], [21]. Vor allem für die Inferenz quantisierter CNNs existieren zudem Hardwarearchitekturen, welche als anwendungsspezifische integrierte Schaltung (ASIC) [22] oder auf Field Programmable Gate Arrays (FPGAs) [23] umgesetzt wurden.Previous approaches to accelerating convolution-based neural networks mainly relate to resource-optimized inference. This includes methods for quantization of weights and inputs of the networks [13], [14], [15], methods for eliminating weights that do not significantly contribute to the functionality of the network (pruning) [16], [17], [18 ] and the automated search for network architectures that are adapted to the underlying hardware [19], [20], [21]. There are also hardware architectures, especially for the inference of quantized CNNs, which have been implemented as application-specific integrated circuits (ASIC) [22] or on field programmable gate arrays (FPGAs) [23].
Zur Beschleunigung des Trainings faltungsbasierter neuronaler Netze werden Trainingsdaten hinsichtlich ihrer Wichtigkeit vorgefiltert, um Berechnungsschritte, die nicht zur Funktionsfähigkeit des Netzes beitragen, direkt einzusparen [24]. Ein Nachteil dieses Verfahrens liegt in der vollständigen Abhängigkeit des möglichen Optimierungsgrades von den Eingabedaten. Eine tatsächlich mögliche Optimierung ist somit im Voraus nicht bekannt.To accelerate the training of convolution-based neural networks, training data are pre-filtered in terms of their importance in order to directly save calculation steps that do not contribute to the functionality of the network [24]. A disadvantage of this method lies in the complete dependence of the possible degree of optimization on the input data. An actually possible optimization is therefore not known in advance.
Zur Beschleunigung von Training und Inferenz faltungsbasierter neuronaler Netze wird in bestehenden Arbeiten das Faltungstheorem eingesetzt [25], [26], [27]. Die Faltung zwischen einem Input und dem Faltungskern im Zeitbereich kann somit durch eine punktweise Multiplikation im Frequenzbereich ersetzt werden. Durch wiederholten Einsatz der schnellen Fouriertransformation (FFT) und ihrer Inversen kann somit die Anzahl der benötigten Operationen reduziert werden.The convolution theorem is used in existing work to accelerate the training and inference of convolution-based neural networks [25], [26], [27]. The convolution between an input and the convolution core in the time domain can thus be replaced by a point-wise multiplication in the frequency domain. The number of operations required can thus be reduced by repeated use of the Fast Fourier Transform (FFT) and its inverse.
Eine Aufgabe der vorliegenden Erfindung ist es, ein verbessertes Verfahren, eine verbesserte Schaltung und ein verbessertes Computerprogrammprodukt bereit zu stellen, mit welchem/-er ein Ressourcenbedarf einer Inferenz und eines Trainings faltungsbasierter neuronaler Netze, insbesondere von 1D- und 2D-CNNs, reduziert werden kann, um ihren effizienten Einsatz (Inferenz und Training) auf eingebetteten, ressourcenbeschränkten Systemen zu ermöglichen, und gleichzeitig eine Berechnungskomplexität der Faltungsschichten in den faltungsbasierten neuronalen Netzen zu reduzieren.An object of the present invention is to provide an improved method, an improved circuit and an improved computer program product with which resource requirements for inference and training of convolution-based neural networks, in particular of 1D and 2D CNNs, are reduced to enable their efficient use (inference and training) on embedded, resource-constrained systems, while reducing a computational complexity of the convolutional layers in the convolutional-based neural networks.
Diese Aufgabe wird durch die Gegenstände der unabhängigen Patentansprüche gelöst.This object is solved by the subject matter of the independent patent claims.
Der Kerngedanke der vorliegenden Erfindung besteht darin, den Ressourcenbedarf der Inferenz und des Trainings faltungsbasierter neuronaler Netze mittels einer approximierten FFT und ihrer Inversen basierend auf binär und/oder ternär quantisierten Schmetterlingseinheiten zu reduzieren, insbesondere basierend auf einer Quantisierung mit Bitbreiten kleiner oder gleich 8 Bit. Durch eine Reduktion der Berechnungskomplexität der FFT mit Hilfe der Approximation wird gleichzeitig die Berechnungskomplexität der Faltungsschichten in den faltungsbasierten neuronalen Netzen reduziert.The core idea of the present invention is to reduce the resource requirements of the inference and the training of convolution-based neural networks using an approximated FFT and its inverse based on binary and/or ternary quantized butterfly units, in particular based on a quantization with bit widths of less than or equal to 8 bits. By reducing the calculation complexity of the FFT with the help of the approximation, the calculation complexity of the convolution layers in the convolution-based neural networks is reduced at the same time.
Das vorgeschlagene Verfahren bezieht sich auf die Beschleunigung des Trainings und der Inferenz von 1D- und 2D-CNNs durch die Reduktion der Anzahl der für die Faltungsschichten benötigten Operationen. Grundlage der Erfindung bildet die Darstellbarkeit aller Berechnungen der Faltungsschichten bei CNNs für den Forward und Backward Pass als Faltung (1D oder 2D) und die damit verbundene Anwendbarkeit des Faltungstheorems. The proposed method is aimed at accelerating the training and inference of 1D and 2D CNNs by reducing the number of operations needed for the convolutional layers. The basis of the invention is the representability of all calculations of the convolution layers in CNNs for the forward and backward pass as convolution (1D or 2D) and the associated applicability of the convolution theorem.
Vorschlagsgemäß umfasst das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes (Convolutional Neural Network, CNN) mittels einer approximierten schnellen Fourier-Transformation (AFFT) ein Bereitstellen von mindestens zwei Eingangssignalen und ein Durchführen einer Faltung, insbesondere auf Basis der mindestens zwei Eingangssignale. Die Faltung als solche umfasst ein Approximieren einer Fourier-Transformation für jedes der mindestens zwei Eingangssignale, um mindestens zwei approximierte schnelle Fourier-Transformationen (AFFT) zu erhalten; ein Berechnen eines Hadamard-Produktes der mindestens zwei approximierten schnellen Fourier-Transformationen (AFFT), um ein approximiertes Faltungsergebnis im Frequenzbereich zu erhalten; und ein anschließendes Approximieren einer inversen Fourier-Transformation, um eine approximierte Inverse schnelle Fourier-Transformation (iAFFT) zu erhalten. Das Approximieren einer inversen Fourier-Transformation entspricht einem Anwenden einer inversen approximierten schnellen Fourier-Transformation (iAFFT) auf das Ergebnis des Hadamard-Produktes, um eine approximierte Inverse schnelle Fourier-Transformation (iAFFT) zu erhalten. Ein Anwenden der inversen approximierten FFT umfasst ein vorheriges Berechnen der inversen approximierten schnellen Fourier-Transformation (iAFFT). Nach Durchführen der Faltung erfolgt ein Ausgeben der Inversen (iAFFT) als Ausgangssignal in Form eines approximierten Faltungsergebnisses im Zeitbereich. Zum Approximieren der Fourier-Transformation umfasst das Verfahren für jedes der mindestens zwei Eingangssignale ein Zerlegen einer Fourier-Transformation eines Signales in eine Anzahl an Schmetterlingseinheiten mit mindestens zwei Eingabewerten; und ein Approximieren der Schmetterlingseinheiten mittels Quantisierung von zu den Schmetterlingseinheiten zugehörigen tatsächlichen Drehfaktoren, um approximierte Drehfaktoren zu erhalten. Jeder der Drehfaktoren umfasst einen Realteil und einen Imaginärteil, wie beispielsweise in Gleichung (3) dargestellt. Vorliegend werden somit die Schmetterlingseinheiten und damit die Drehfaktoren approximiert, d.h. genähert.According to the proposal, the method for training and/or executing a convolution-based neural network (convolutional neural network, CNN) using an approximate fast Fourier transform (AFFT) includes providing at least two input signals and performing a convolution, in particular on the basis of the at least two input signals . As such, the convolution comprises approximating a Fourier transform for each of the at least two input signals to obtain at least two approximate fast Fourier transforms (AFFT); calculating a Hadamard product of the at least two approximate Fast Fourier Transforms (AFFT) to obtain an approximate convolution result in the frequency domain; and then approximating an inverse Fourier transform to obtain an approximated inverse fast Fourier transform (iAFFT). Approximating an inverse Fourier transform corresponds to applying an inverse approximate fast Fourier transform (iAFFT) to the result of the Hadamard product to obtain an approximate inverse fast Fourier transform (iAFFT). Applying the inverse approximate FFT involves previously calculating the inverse approximate fast Fourier transform (iAFFT). After performing the convolution, the inverse (iAFFT) is output as an output signal in the form of an approximate convolution result in the time domain. To approximate the Fourier transform, the method comprises, for each of the at least two input signals, decomposing a Fourier transform of a signal into a number of butterfly units with at least two input values; and approximating the butterfly units by quantization of actual rotation factors associated with the butterfly units to obtain approximate rotation factors. Each of the rotation factors includes a real part and an imaginary part, such as shown in Equation (3). puts. In the present case, the butterfly units and thus the rotation factors are approximated, ie approximated.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung ist eine Schaltung zur Durchführung von Faltungen im Rahmen des Trainierens und/oder des Ausführens eines faltungsbasierten neuronalen Netzes (Convolutional Neural Network, CNN) mittels einer approximierten schnellen Fourier-Transformation (AFFT) vorgeschlagen, welche auf einem FPGA, insbesondere als ASIC oder als ein Teil eines System-on-Chips (SoCs), realisiert ist. Die Schaltung ist dazu ausgebildet, ein Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes (Convolutional Neural Network, CNN) mittels einer approximierten schnellen Fourier-Transformation (AFFT) durchzuführen.According to a further aspect of the present invention, a circuit for performing convolutions in the context of training and/or executing a convolution-based neural network (Convolutional Neural Network, CNN) by means of an approximate fast Fourier transform (AFFT) is proposed, which is based on an FPGA , In particular as an ASIC or as part of a system-on-chip (SoC), is implemented. The circuit is designed to perform a method for training and/or executing a convolutional neural network (CNN) using an approximate fast Fourier transform (AFFT).
Die für die Faltung zeitdiskreter Signale im Frequenzbereich notwendige FFT bzw. ihre Inverse werden vorschlagsgemäß approximiert, d.h. auch das Ergebnis der Faltung stellt eine Näherung dar. Die Approximation der FFT erfolgt über eine Quantisierung der Drehfaktoren mit Bitbreiten kleiner oder gleich 8 Bit, insbesondere über eine binäre oder ternäre Quantisierung der Drehfaktoren (Bitbreite 1 bzw. 2), und eine anschließende Verrechnung mit einem Korrekturfaktor.The FFT or its inverse required for the convolution of discrete-time signals in the frequency domain are approximated as proposed, i.e. the result of the convolution also represents an approximation binary or ternary quantization of the rotation factors (
Die hierin beschriebenen Lösung der, insbesondere binär oder ternär, approximierten Schmetterlingseinheit bezieht sich auf die Transformation von diskreten Zeitbereichssignalen in den Frequenzbereich mit Hilfe der diskreten Fourier Transformation. Somit kann bei der approximierten FFT (AFFT) die Anzahl der arithmetischen Operationen und der Speicherzugriffe reduziert werden. Besonders die Anzahl energieintensiver Multiplikationen kann bis hin zur multiplikationslosen Ausführbarkeit der FFT maßgeblich reduziert werden.The solution of the butterfly unit approximated, in particular in a binary or ternary manner, as described herein relates to the transformation of discrete time-domain signals into the frequency domain with the aid of the discrete Fourier transformation. The number of arithmetic operations and memory accesses can thus be reduced in the approximated FFT (AFFT). In particular, the number of energy-intensive multiplications can be significantly reduced up to the point where the FFT can be executed without multiplication.
Außerdem ist ein Computerprogrammprodukt vorgeschlagen, welches Befehle umfasst, die bei Ausführung durch einen Computer, diesen veranlassen, das vorgeschlagene Verfahren, insbesondere mit der vorgeschlagenen Schaltung, auszuführen.In addition, a computer program product is proposed which includes instructions which, when executed by a computer, cause the latter to execute the proposed method, in particular with the proposed circuit.
Vorteilhafte Ausgestaltungen der vorliegenden Erfindung sind Gegenstand der abhängigen Patentansprüche. Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen detailliert erläutert. Es zeigen:
-
1 ein detailliertes Ablaufdiagramm zur Berechnung der Parameter der approximierten Schmetterlingseinheiten; -
2 eine schematische Darstellung von binär quantisierten Drehfaktoren; -
3 eine schematische Darstellung von ternär quantisierten Drehfaktoren; -
4 eine mittlere quadratische Abweichung zwischen den Drehfaktoren und den zugehörigen ternär quantisierten approximierten Drehfaktoren für verschiedene Schwellenwerte; -
5 eine mittlere quadratische Abweichung zwischen den Drehfaktoren und den zugehörigen ternär quantisierten approximierten Drehfaktoren für verschiedene Schwellenwerte; -
6 eine in einer Schaltung einsetzbaren Hardwarearchitektur zur multiplikationslosen Berechnung einer binär approximierten Schmetterlingseinheit mit Korrekturfaktor; -
7 eine in einer Schaltung einsetzbaren Hardwarearchitektur zur multiplikationslosen Berechnung einer ternär approximierten Schmetterlingseinheit mit Korrekturfaktor; -
8 eine in einer Schaltung einsetzbaren Hardwarearchitektur zur multiplikationslosen Berechnung einer binär approximierten Schmetterlingseinheit; -
9 eine in einer Schaltung einsetzbaren Hardwarearchitektur zur multiplikationslosen Berechnung einer ternär approximierten Schmetterlingseinheit; -
10a schematische Darstellung einer DIT-Radix-2-Schmetterlingseinheit; -
10b schematische Darstellung einer DIF-Radix-2-Schmetterlingseinheit; -
11 schematischer Ablauf einer approximierten Faltung mittels AFFT zwischen zwei 1 D-Eingaben; -
12 schematischer Ablauf einer approximierten Faltung mittels 2D-AFFT zwischen zwei 2D-Eingaben; und -
13 schematischer Ablauf der 2D-AFFT.
-
1 a detailed flowchart for calculating the parameters of the approximated butterfly units; -
2 a schematic representation of binary quantized rotation factors; -
3 a schematic representation of ternary quantized rotation factors; -
4 a mean square deviation between the rotation factors and the associated ternary quantized approximate rotation factors for different threshold values; -
5 a mean square deviation between the rotation factors and the associated ternary quantized approximate rotation factors for different threshold values; -
6 a hardware architecture that can be used in a circuit for the multiplication-free calculation of a binary approximated butterfly unit with a correction factor; -
7 a hardware architecture that can be used in a circuit for the multiplication-free calculation of a ternary approximated butterfly unit with a correction factor; -
8th a hardware architecture that can be used in a circuit for the multiplication-free calculation of a binary approximated butterfly unit; -
9 a hardware architecture that can be used in a circuit for the multiplication-free calculation of a ternary approximated butterfly unit; -
10a schematic representation of a DIT radix-2 butterfly unit; -
10b schematic representation of a DIF radix-2 butterfly unit; -
11 Schematic sequence of an approximated convolution using AFFT between two 1D inputs; -
12 schematic sequence of an approximated convolution using 2D-AFFT between two 2D inputs; and -
13 schematic sequence of the 2D AFFT.
Einzelne Aspekte der hierin beschriebenen Erfindung sind nachfolgend in den
Sämtlichen Begriffserklärungen, welche in dieser Anmeldung bereitgestellt werden, sind sowohl auf die beschriebenen Verfahren, als auch auf die beschriebenen Schaltungen oder Computerprogrammprodukte anwendbar. Die Begriffserklärungen werden nicht ständig wiederholt, um Redundanzen möglichst zu vermeiden.All definitions of terms provided in this application can be applied both to the methods described and to the circuits or computer program products described. The explanations of terms are not constantly repeated in order to avoid redundancies as far as possible.
Vorliegend werden die Begriffe Eingangssignal synonym zu Eingabewert oder auch Input oder auch zu Eingabedaten verwendet. Ebenfalls synonym zueinander werden die Begriffe Quantisierungswert und Schwellenwert verwendet. Bei den beschriebenen Verfahren kommt es zunächst darauf an, dass ein Wert/Signal zur weiteren Berechnung zu Verfügung gestellt wird. Welche physikalische Bedeutung dieser/-es Wert/Signal haben kann, erschließt sich einem Fachmann jeweils aus dem Kontext, in welchem die beschriebenen Verfahren Anwendung finden bzw. geht im Einzelnen aus der weiteren Beschreibung im Kontext hervor.In the present case, the terms input signal are used synonymously with input value or input or input data. The terms quantization value and threshold value are also used synonymously with one another. In the methods described, it is initially important that a value/signal is made available for further calculation. What physical meaning this/-it value/signal can have is revealed to a person skilled in the art from the context in which the described methods are used or emerges in detail from the further description in the context.
Die vorliegende technische Lehre umfasst einerseits ein Verfahren zur Berechnung der für die optimale Approximation der FFT notwendigen Parameter, welches detaillierter im Ablaufdiagramm nach
Das beschriebene Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales umfasst ein Darstellen einer Anzahl an Schmetterlingseinheiten einer Fourier-Transformation und ein anschließendes Approximieren der Anzahl an Schmetterlingseinheiten mittels Quantisierung von zu den Schmetterlingseinheiten zugehörigen, insbesondere tatsächlichen, Drehfaktoren, um approximierte Drehfaktoren zu erhalten, wobei eine Bitbreite eines quantisierten, approximierten Drehfaktors kleiner oder gleich 8 Bit ist. Wie Gleichung (3) zu entnehmen ist, umfasst ein realer Drehfaktor einen Realteil und einen Imaginärteil.The method described for the approximate calculation of butterfly units of a Fourier transformation of a signal comprises representing a number of butterfly units of a Fourier transformation and then approximating the number of butterfly units by means of quantization of, in particular actual, rotation factors associated with the butterfly units in order to approximate rotation factors obtained, wherein a bit width of a quantized, approximated rotation factor is less than or equal to 8 bits. As can be seen from Equation (3), a real rotation factor includes a real part and an imaginary part.
Die vorliegende Erfindung wird nachfolgend an der binären und ternären Quantisierung der Schmetterlingseinheiten erläutert. Die hierin beschriebene Quantisierung lässt sich jedoch auch auf andere, wie beispielsweise eine quartäre oder quintäre etc. Quantisierung, anwenden.The present invention is explained below on the binary and ternary quantization of the butterfly units. However, the quantization described herein is also applicable to others, such as quaternary or quintary etc. quantization.
Grundlage der binär oder ternär approximierten Schmetterlingseinheit bildet die Approximation der Drehfaktoren
In dem Ablaufdiagramm nach
Nachfolgend wird eine Approximation 160 zunächst an den Beispielen einer binären Quantisierung und einer ternären Quantisierung (Quantisierungsart 190) diskutiert. Bevorzugt erfolgt das hierin beschriebene Verfahren mit einer binären oder ternären Quantisierung. Andere Quantisierungen/ Quantisierungsarten 190 sind jedoch auch möglich.An
Bei der binären Quantisierung wird ein Intervall [rmin, rmax] in zwei Teilbereiche unterteilt und ein Datenpunkt di ∈ [rmin, rmax] entsprechend seiner Zugehörigkeit zu einem der Teilbereichen kodiert bzw. zugeordnet, sodass (di)B ∈ {-1, 1}.In binary quantization, an interval [r min , r max ] is divided into two sub-areas and a data point d i ∈ [r min , r max ] is coded or assigned according to its affiliation with one of the sub-areas, so that (d i ) B ∈ {-1, 1}.
Bei der ternären Quantisierung wird ein Intervall [rmin, rmax] in drei Teilbereiche unterteilt und ein Datenpunkt dj ∈ [rmin, rmax] entsprechend seiner Zugehörigkeit zu einem der Teilbereichen kodiert bzw. zugeordnet, sodass (dj)T ∈ {-1, 0, 1}.In ternary quantization, an interval [r min , r max ] is divided into three sub-areas and a data point d j ∈ [r min , r max ] is coded or assigned according to its affiliation with one of the sub-areas, so that (d j ) T ∈ {-1, 0, 1}.
Bei dem beschriebenen Verfahren wird somit generell ein Datenpunkt entsprechend seiner Zugehörigkeit zu einem der P=2(B-1)+1 Teilbereiche kodiert wird. Hierbei ist B eine natürliche Zahl kleiner oder gleich 8 und gibt die Bitbreite an.In the method described, a data point is thus generally encoded according to its association with one of the P=2 (B-1) +1 partial areas. Here, B is a natural number less than or equal to 8 and indicates the bit width.
Zur Darstellung der zwei bzw. drei möglichen Ausgabewerte der Quantisierung werden ein Bit für die binäre Quantisierung bzw. zwei Bit für die ternäre Quantisierung benötigt. Binäre und ternäre Quantisierung unterscheiden sich durch die resultierende Genauigkeit, d.h. die Abweichung von dem Datenpunkt di. Der Datenpunkt di ist beispielsweise eine Eingabe der Quantisierung. Die Eingabe der Quantisierung umfasst einen Realteil und einen Imaginärteil des zu quantisierenden Drehfaktors. Die Auswahl der Quantisierungsart 190, also ob binär oder ternär, nach dem in
Die Quantisierung der Drehfaktoren 150 wird auf den Real- und Imaginärteil angewendet, welche auf Grund trigonometrischer Beziehungen beide im Intervall [-1, 1] liegen. Die Quantisierungsfunktionen lassen sich allgemein mit
Gleichung (5a) beschreibt die binäre Quantisierung, welche in
Bei dem beschriebenen Verfahren führt die Quantisierung mittels N Bit zu einer Quantisierung der Drehfaktoren in P=2(B-1) + 1 Teilbereiche, wobei B eine natürliche Zahl kleiner oder gleich 8 ist und B die Bitbreite angibt. Bei der binären Quantisierung, bei welcher die Bitbreite ein Bit, also B=1, beträgt, führt die Quantisierung somit zu 2(1-1)+1=20+1=2 Teilbereichen. Bei der ternären Quantisierung, bei welcher die Bitbreite zwei Bit, also B=2, beträgt, führt die Quantisierung somit zu 2(2-1)+1=21+1=3 Teilbereichen. Der Wert 0 (siehe Gleichung (5b) oder (6b)) ist bei der ternären Quantisierung möglich. Hierbei kommt die sog. Mid-Tread-Quantisierung zum Einsatz.In the method described, the quantization by means of N bits leads to a quantization of the rotation factors in P=2 (B-1) +1 partial areas, where B is a natural number less than or equal to 8 and B indicates the bit width. In the case of binary quantization, in which the bit length is one bit, ie B=1, the quantization thus leads to 2 (1-1) +1=2 0 +1=2 partial areas. With ternary quantization, in which the bit length is two bits, ie B=2, the quantization thus leads to 2 (2-1) +1=2 1 +1=3 partial areas. The value 0 (see equation (5b) or (6b)) is possible with ternary quantization. The so-called mid-tread quantization is used here.
Mit Hilfe der binären bzw. ternären Quantisierung lässt sich eine Multiplikation mit den Drehfaktoren durch eine bedingte Entscheidung ersetzen:
Durch das Ersetzen der Multiplikation durch eine bedingte Entscheidung kann die Approximation 170 multiplikationslos (siehe
Bei dem beschriebenen Verfahren wird bevorzugt eine Multiplikation mit den Drehfaktoren bei einer Quantisierung in P Teilbereiche durch eine bedingte Entscheidung ersetzt. Hierdurch kann der Ressourcenbedarf des beschriebenen Verfahrens reduziert werden. In dem Verfahren wird die Quantisierung auf einen Realteil und einen Imaginärteil der realen Drehfaktoren angewendet.In the method described, a multiplication with the rotation factors is preferably replaced by a conditional decision in the case of a quantization in P partial areas. As a result, the resource requirements of the method described can be reduced. In the method, quantization is applied to a real part and an imaginary part of the real rotation factors.
Um den Fehler zwischen den approximierten und tatsächlichen Drehfaktoren zu minimieren, kann zusätzlich ein Korrekturfaktor α verwendet werden. Bevorzugt umfasst das beschriebene Verfahren, insbesondere bei einer binären oder ternären Quantisierung, ein Minimieren eines Fehlers zwischen den approximierten Drehfaktoren und den tatsächlichen Drehfaktoren durch Verwendung eines Korrekturfaktors α. Je nach Wahl des Korrekturfaktors α kann dies zu einer multiplikationslosen Approximation 170 oder zu einer Approximation 180 mit reduzierter Anzahl an notwendigen Multiplikationen führen. Hierbei bezieht sich „Wahl des Korrekturfaktors“ darauf, ob α=1 für alle Drehfaktoren gesetzt wird, wie in 170 der
Sofern α=1 für alle Drehfaktoren gemäß Schritt 170 gesetzt wird, und die Quantisierungsart 190 als binär gewählt wird, erfolgt eine Anwendung 189 der binären Quantisierung qB(w) auf alle Drehfaktoren. Hierbei werden als die quantisierten Drehfaktoren (w)B in Schritt 192 bestimmt, d.h. die approximierten Drehfaktoren. Nach Bestimmung der approximierten Drehfaktoren ist das Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales beendet 194. Die approximierten Drehfaktoren können dann zu einer weiteren Verwendung beispielsweise in einem anschließenden Verfahren verwendet werden.If α=1 is set for all rotation factors according to step 170 and the
Sofern α=1 für alle Drehfaktoren gemäß Schritt 170 gesetzt wird, und die Quantisierungsart 190 als ternär gewählt wird, wird zunächst ein optimaler Schwellenwert t berechnet gemäß Schritt 185. Der Schwellenwert t unterteilt den Wertebereich der Quantisierungsfunktionen bei der ternären Quantisierung in drei Teilbereiche. Anschließend erfolgt unter Verwendung des berechneten Schwellenwerts t 191 erfolgt eine Anwendung 193 der ternären Quantisierung qT(w) auf alle Drehfaktoren. Hierbei werden die quantisierten Drehfaktoren (w)T in Schritt 192 bestimmt, d.h. die approximierten Drehfaktoren. Nach Bestimmung der approximierten Drehfaktoren ist das Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales beendet 194. Die approximierten Drehfaktoren können dann zu einer weiteren Verwendung beispielsweise in einem anschließenden Verfahren verwendet werden.If α=1 is set for all rotation factors according to step 170 and the
Sofern α=aopt für alle Drehfaktoren gemäß Schritt 180 zu bestimmen ist, und die Quantisierungsart 190 als binär gewählt wird, wird zunächst ein optimaler Korrekturfaktor aopt für alle Drehfaktoren in Schritt 187 berechnet. Nach Berechnung des Korrekturfaktors 188 erfolgt eine Anwendung 189 der binären Quantisierung qB(w) auf alle Drehfaktoren. Hierbei werden als die quantisierten Drehfaktoren (w)B in Schritt 192 unter Verwendung des optimalen Korrekturfaktors αopt bestimmt, d.h. die approximierten Drehfaktoren werden bestimmt. Nach Bestimmung der approximierten Drehfaktoren ist das Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales beendet 194. Die approximierten Drehfaktoren können dann zu einer weiteren Verwendung beispielsweise in einem anschließenden Verfahren verwendet werden.If α=a opt is to be determined for all rotation factors according to step 180 and the
Sofern α=αopt für alle Drehfaktoren gemäß Schritt 180 zu bestimmen ist, und die Quantisierungsart 190 als ternär gewählt wird, werden zunächst ein optimaler Schwellenwert t ein optimaler Korrekturfaktor aopt für alle Drehfaktoren in Schritt 186 berechnet. Nach Berechnung des Korrekturfaktors 188 und des Schwellenwertes 191 erfolgt eine Anwendung 193 der ternären Quantisierung qT(w) auf alle Drehfaktoren. Hierbei werden die quantisierten Drehfaktoren (w)T in Schritt 192 unter Verwendung des optimalen Korrekturfaktors αopt und unter Verwendung des optimalen Schwellenwertes t bestimmt, d.h. die approximierten Drehfaktoren werden bestimmt. Nach Bestimmung der approximierten Drehfaktoren ist das Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales beendet 194. Die approximierten Drehfaktoren können dann zu einer weiteren Verwendung beispielsweise in einem anschließenden Verfahren verwendet werden.If α=α opt is to be determined for all rotation factors according to step 180 and the
Die einzelnen Approximationsschritte werden nachfolgen im Detail erläutert. Die Approximation der quantisierten Drehfaktoren lässt sich folglich allgemein beschreiben als:
Der Korrekturfaktor α kann derart bestimmt werden, dass die Approximation der Drehfaktoren nach Gleichung (7) optimal wird. Dies bedeutet, dass der Fehler zwischen dem, insbesondere tatsächlichen, Drehfaktor
Bildet man zur Lösung des Optimierungsproblems die Ableitung des zu minimierenden Ausdrucks nach Gleichung (8) und setzt diese gleich 0, so erhält man nach Äquivalenzumformung für α:
Im Fall der ternären Quantisierung kann zudem für einen beliebigen Korrekturfaktor α der Schwellenwert t gewählt werden, sodass die Approximation optimal wird, d.h. der Fehler zwischen einem tatsächlichen Drehfaktor und dem zugehörigen approximierten Drehfaktor minimal wird. Dazu muss die mittlere quadratische Abweichung zwischen allen Drehfaktoren und ihren Approximationen minimiert werden:
Da die Quantisierungsfunktion qT(w,t) nur partiell differenzierbar ist, kann das Problem nicht analytisch gelöst werden. Zur Lösung können numerische oder grafische Verfahren zum Einsatz kommen. Die
Das beschriebene Verfahren umfasst folglich bevorzugt die Schritte Bilden einer Ableitung des zu minimierenden Fehlers; und Durchführen mindestens einer Äquivalenzumformung, um einen Ausdruck für den Korrekturfaktor α, insbesondere für einen optimalen Korrekturfaktor αopt, zu erhalten. Ferner bevorzugt umfasst das beschriebene Verfahren, insbesondere bei der ternären Quantisierung, ein Wählen des Schwellenwertes t zu einem beliebigen Korrekturfaktor α.The method described therefore preferably comprises the steps of forming a derivation of the error to be minimized; and performing at least one equivalent transformation to obtain an expression for the correction factor α, in particular for an optimal correction factor α opt . The method described also preferably includes, in particular in the case of ternary quantization, a selection of the threshold value t for an arbitrary correction factor α.
Bevorzugt werden ein Schwellenwert oder Quantisierungswerte zur Approximation der Drehfaktoren derart gewählt, dass die approximierten Drehfaktoren sich als Zweierpotenz oder als Summe aus Zweierpotenzen schreiben lassen.A threshold value or quantization values for approximating the rotation factors are preferably chosen in such a way that the approximated rotation factors can be written as a power of two or as a sum of powers of two.
Jede Schmetterlingseinheit der Anzahl an Schmetterlingseinheiten weist ferner eine unterschiedliche Anzahl von Eingabewerten oder eine gleiche Anzahl an Eingabewerten auf. Lediglich die Dimension der Eingabewerte muss einander entsprechen.Each butterfly unit of the number of butterfly units also has a different number of input values or an equal number of input values. Only the dimension of the input values must correspond to each other.
Bevorzugt wird das Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales auf Basis der schnellen Fourier-Transformation FFT durchgeführt wird. Das Verfahren ist für 1D-FFT oder 2D-FFT durchführbar.The method for the approximate calculation of butterfly units of a Fourier transformation of a signal is preferably carried out on the basis of the fast Fourier transformation FFT. The method can be used for 1D FFT or 2D FFT.
Die Multiplikation mit den Drehfaktoren 150 innerhalb der Radix-n-Schmetterlingseinheiten nach Gleichung (4) lässt sich mit dem Korrekturfaktor α wie folgt approximieren:
Die Anzahl der realen Multiplikationen reduziert sich somit von vier (zwischen den Real- und Imaginärteilen von
Mit Gleichung (11) lassen sich entsprechende Hardwarearchitekturen für DIF/DIT-Radix-n-Schmetterlingseinheiten ableiten, die mit Hilfe einer Hardwarebeschreibungssprache auf FPGAs, als ASIC oder als Teil von System-on-Chips (SoCs) realisiert werden können.
Die Schaltung zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales umfasst eine Anzahl an M:1 Multiplexern, wobei M=2, ..., 256 eine natürliche Zahl ist. M gibt die Anzahl der Eingänge der/des Multiplexer(s) an. Die Schaltung ist dazu ausgebildet, eine Multiplikation auf Basis einer Quantisierung von zu Schmetterlingseinheiten zugehörigen, insbesondere tatsächlichen, Drehfaktoren ohne tatsächlichen Hardwaremultiplizierer vor einem Signalfluss durch mindestens einen Multiplexer der Anzahl an Multiplexern zu ersetzen. Die Multiplikationen mit den Drehfaktoren werden dabei durch einen M:1, insbesondere einen 2:1 bzw. 3:1 Multiplexer (BMUX bzw. TMUX), ersetzt. Die 2:1 bzw. 3:1 Multiplexer können insbesondere bei einer binären oder ternären Quantisierung verwendet werden.The circuit for the approximate calculation of butterfly units of a Fourier transform of a signal comprises a number of M:1 multiplexers, where M=2,...,256 is a natural number. M indicates the number of inputs of the multiplexer(s). The circuit is designed to replace a multiplication based on a quantization of, in particular actual, rotation factors associated with butterfly units without actual hardware multipliers before a signal flow by at least one multiplexer of the number of multiplexers. The multiplications with the rotation factors are replaced by an M:1, in particular a 2:1 or 3:1 multiplexer (BMUX or TMUX). The 2:1 or 3:1 multiplexers can be used in particular with binary or ternary quantization.
Anschließend kann die Multiplikation von Real- und Imaginärteil mit dem Korrekturfaktor α und die Verrechnung mit dem zweiten Eingabewert der Schmetterlingseinheit erfolgen, wie dieses beispielsweise in
Der Real- bzw. Imaginärteil der binär bzw. ternär quantisierten Drehfaktoren kann dabei durch ein Bit im binären Fall und zwei Bit im ternären Fall dargestellt werden. Die Bitbreite und Darstellungsform (Integer, Floating Point = Fließkommazahl) der Eingabewerte kann dabei grundsätzlich beliebig sein. Allerdings sollten die Blöcke für Addition, Subtraktion, das Invertieren des Vorzeichens und die Multiplikation mit reduzierter Komplexität im Falle der Quantisierung mit größerer Bitbreite entsprechend der gewählten Bitbreite und Darstellungsform (Integer, Floating Point) der Eingabewerte angepasst sein.The real or imaginary part of the binary or ternary quantized rotation factors can be represented by one bit in the binary case and two bits in the ternary case. The bit width and form of representation (integer, floating point = floating point number) of the input values can in principle be arbitrary. However, the blocks for addition, subtraction, sign inversion and multiplication with reduced complexity should be adapted in the case of quantization with a larger bit width according to the selected bit width and representation form (integer, floating point) of the input values.
Für den Fall α = 1 lässt sich eine Schmetterlingseinheit multiplikationslos approximieren (siehe 170 in
Mit Gleichung (12) lassen sich entsprechende Hardwarearchitekturen für DIF/DIT-Radix-n-Schmetterlingseinheiten ableiten.
Mit dem beschriebenen Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales bzw. der beschriebenen Schaltung zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales können analog zu den in Figs, 6, 7, 8 und 9 gezeigten Hardwarearchitekturen ebenfalls Multiplexer-basierte Architekturen für approximierte Schmetterlingseinheiten mit rein realen Eingabewerten, mehr als zwei Eingabewerten (Radix-n) und DIF-Aufteilung aufgebaut werden. Auch die Vorlagen nach
In jedem Fall ist die Schaltung dazu ausgebildet, das beschriebene Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales durchzuführen.In any case, the circuit is designed to carry out the method described for the approximate calculation of butterfly units of a Fourier transformation of a signal.
Gemäß einem weiteren Aspekt ist ein Computerprogrammprodukt beschrieben, welches Befehle umfasst, die bei Ausführung durch einen Computer, diesen veranlassen, das Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales auszuführen. Das Computerprogrammprosukt ist bevorzugt in einer beschriebenen Schaltung zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales implementiert.According to a further aspect, a computer program product is described which includes instructions which, when executed by a computer, cause the computer to use the method for approximate to calculate butterfly units of a Fourier transform of a signal. The computer program product is preferably implemented in a described circuit for the approximate calculation of butterfly units of a Fourier transformation of a signal.
Durch das beschriebene Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales kann die Anzahl der für eine FFT bzw. iFFT benötigten Multiplikationen und somit die Berechnungskomplexität sowie der Ressourcenverbrauch der Transformation zwischen Zeit- und Frequenzbereich maßgeblich reduziert und die Berechnungsgeschwindigkeit gesteigert werden. Dies ist ein Vorteil gegenüber dem Stand der Technik. Mit dem beschriebenen Verfahren werden somit die vorgestellten Hardwarearchitekturen ermöglicht, welche zur Berechnung einer FFT-Schmetterlingseinheit entweder keine oder eine reduzierte Anzahl an Multiplikationen, jedoch keine Hardwaremultiplizierer, benötigen. Dies geht mit einer Steigerung der Energieeffizienz und der Performance einher.The method described for the approximate calculation of butterfly units of a Fourier transformation of a signal can significantly reduce the number of multiplications required for an FFT or iFFT and thus the calculation complexity and resource consumption of the transformation between the time and frequency domain and the calculation speed can be increased. This is an advantage over the prior art. The described method thus enables the presented hardware architectures, which require either no or a reduced number of multiplications, but no hardware multipliers, to calculate an FFT butterfly unit. This is accompanied by an increase in energy efficiency and performance.
Die Quantisierung der zur Berechnung der FFT benötigten Drehfaktoren führt zudem zu einer Reduktion des Speicherbedarfs. Da das beschriebene Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales und die damit einhergehende Optimierung der FFT auf einer näherungsweisen Berechnung, also eine Approximation, basiert, d.h. einer Reduktion der Genauigkeit des Ergebnisses, besteht ein weiterer Vorteil des beschriebenen Verfahrens in der optimalen Approximation der Drehfaktoren. Dies ermöglicht eine optimale Annäherung des Ergebnisses trotz starker Quantisierung der Drehfaktoren.The quantization of the rotation factors required to calculate the FFT also leads to a reduction in memory requirements. Since the method described for the approximate calculation of butterfly units of a Fourier transformation of a signal and the associated optimization of the FFT is based on an approximate calculation, i.e. an approximation, i.e. a reduction in the accuracy of the result, another advantage of the method described is the optimal approximation of the rotation factors. This enables an optimal approximation of the result despite strong quantization of the rotation factors.
Technische Anwendungsgebiete des beschriebenen Verfahrens und der entsprechenden Schaltung sind in allen Bereichen der digitalen Signalverarbeitung zu finden. Im Bereich der Zustandsüberwachung von Systemen spielt beispielsweise die Analyse von Körperschallsignalen eine entscheidende Rolle. In vielen Fällen werden Zeitbereichssignale mittels Beschleunigungs- oder Acoustic Emission-Sensorik aufgezeichnet. Zur Extraktion relevanter Informationen werden diese diskreten Signale dann mittels FFT-basierter Verfahren im Frequenzbereich oder Zeit-Frequenzbereich untersucht. Auch Sensorsignale anderer Größen werden zur Extraktion relevanter Informationen in den Frequenzbereich oder Zeit-Frequenzbereich transformiert, so z.B. Strom oder Kraft.Technical areas of application of the method described and the corresponding circuit can be found in all areas of digital signal processing. In the field of condition monitoring of systems, for example, the analysis of structure-borne noise signals plays a crucial role. In many cases, time-domain signals are recorded using acceleration or acoustic emission sensors. To extract relevant information, these discrete signals are then examined using FFT-based methods in the frequency domain or time-frequency domain. Sensor signals of other sizes are also transformed into the frequency domain or time-frequency domain in order to extract relevant information, e.g. current or force.
Da das Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales eine schnelle und approximative Berechnung von Frequenzspektren ermöglicht, können relevante Frequenzbänder schnell identifiziert und zur komprimierten Speicherung von Informationen extrahiert werden.Since the method for the approximate calculation of butterfly units of a Fourier transformation of a signal enables fast and approximate calculation of frequency spectra, relevant frequency bands can be quickly identified and extracted for compressed storage of information.
Es ist ferner denkbar, bei dem beschriebenen Verfahren nicht-optimale Parameter, wie hierin beschrieben, zur Approximation der FFT zu verwenden. Außerdem ist es denkbar, andere Hardwarearchitekturen zum Einsatz kommen zu lassen, um die approximative Berechnung einer Schmetterlingseinheit durchzuführen.It is also conceivable to use non-optimal parameters, as described herein, for approximating the FFT in the described method. It is also conceivable to use other hardware architectures in order to carry out the approximate calculation of a butterfly unit.
Ähnliche Analyseverfahren werden ebenfalls zur Verarbeitung von Audiosignalen verwendet. Das beschriebene Verfahren erlaubt es, alle FFT-basierten Verfahren zu approximieren. Da sich weiterhin die 2D-FFT mit Hilfe der 1D-Variante ausdrücken lässt, ist das beschriebene Verfahren ebenfalls auf 2D-Eingabedaten, d.h. auf die FFT-basierte Verarbeitung von z.B. Bilddaten, übertragbar.Similar analysis methods are also used to process audio signals. The method described allows all FFT-based methods to be approximated. Since the 2D FFT can also be expressed using the 1D variant, the method described can also be applied to 2D input data, i.e. to the FFT-based processing of image data, for example.
Zudem kann das Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales durch Ausnutzung des Faltungstheorems, welches besagt, dass Faltungen im Zeitbereich äquivalent zu punktweiser Multiplikation im Frequenzbereich sind, nicht nur für die Signalanalyse, sondern auch für die Signalmanipulation verwendet werden. Damit ist das beschriebene Verfahren ebenfalls in allen Anwendungsgebieten der diskreten Faltung, wie z.B. Regelungssystemen oder in der Akustik einsetzbar.In addition, the method for the approximate calculation of butterfly units of a Fourier transform of a signal by exploiting the convolution theorem, which states that convolutions in the time domain are equivalent to point-by-point multiplication in the frequency domain, can be used not only for signal analysis but also for signal manipulation. The method described can also be used in all areas of application of discrete convolution, such as control systems or in acoustics.
Die Faltung bildet außerdem die Grundlage faltungsbasierter neuronaler Netze (Convolutional Neural Networks, CNN) im Bereich des maschinellen Lernens, welche vor allem für die Echtzeit-Objekterkennung in den Bereichen des autonomen Fahrens oder der Robotik eingesetzt werden. Durch Anwendung des Faltungstheorems ist hierbei eine Reduktion der Berechnungskomplexität und damit eine beschleunigte Berechnung möglich. Mit Hilfe des vorgestellten Verfahrens kann dieser Ansatz nochmal maßgeblich optimiert und beschleunigt werden, indem die Berechnungskomplexität der Transformation reduziert wird. Ein weiteres Anwendungsfeld der Erfindung ist die verlustbehaftete Datenkompression.Convolution also forms the basis of convolutional neural networks (CNN) in the field of machine learning, which are primarily used for real-time object recognition in the fields of autonomous driving or robotics. By using the convolution theorem, a reduction in the complexity of the calculation and thus an accelerated calculation is possible. With the help of the method presented, this approach can again be significantly optimized and accelerated by reducing the computational complexity of the transformation. A further field of application of the invention is lossy data compression.
Auf Basis des Verfahrens zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales kann ein verbessertes Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes (Convolutional Neural Network, CNN) mittels einer approximierten schnellen Fourier-Transformation (AFFT) bereitgestellt werden Das Ausführen eines faltungsbasierten neuronalen Netzes benutzt eine Inferenz, d.h. die Anwendung des trainierten Netzes, um eine Schlussfolgerung oder Vorhersage für eine bestimmte Eingabe zu erhalten. Die für die Inferenz und das Training notwendigen Faltungsberechnungen des faltungsbasierten neuronalen Netzes werden durch die AFFT approximiert.Based on the method for approximately calculating butterfly units of a Fourier transform of a signal, an improved method for training and/or executing a convolutional neural network (CNN) using an approximate Fast Fourier Transform (AFFT) execution can be provided of a convolutional neural network uses inference, ie the application of the trained network to arrive at a conclusion or prediction for a given input. The convolution calculations of the convolution-based neural network required for the inference and the training are approximated by the AFFT.
Das weitere vorgeschlagene Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes mittels einer approximierten schnellen Fourier-Transformation umfasst ein Bereitstellen von mindestens zwei Eingangssignalen. Die Eingangssignale können 1D- oder auch 2D-Signale sein. Beispielsweise kann es sich um Audiosignale und/oder um Bildsignale handeln. Ferner umfasst das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes ein Durchführen einer Faltung. Die Faltung als solche umfasst ein Approximieren einer Fourier-Transformation für jedes der mindestens zwei Eingangssignale, um mindestens zwei approximierte schnelle Fourier-Transformationen (AFFT) zu erhalten; ein Berechnen eines Hadamard-Produktes der mindestens zwei approximierten schnellen Fourier-Transformationen (AFFT), um ein approximiertes Faltungsergebnis im Frequenzbereich zu erhalten; und ein Approximieren einer inversen Fourier-Transformation, um eine approximierte Inverse schnelle Fourier-Transformation (iAFFT) zu erhalten. Das Approximieren einer inversen Fourier-Transformation entspricht einem Anwenden einer inversen approximierten schnellen Fourier-Transformation (iAFFT) auf das Ergebnis des Hadamard-Produktes. Nach dem Durchführen der Faltung umfasst das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes ein Ausgeben der inversen approximierten schnellen Fourier-Transformation (iAFFT) als Ausgangssignal, insbesondere als approximiertes Ergebnis der Faltung in einem Zeitbereich. Wie vorgeschlagen, werden die für die Faltung zeitdiskreter Signale im Frequenzbereich notwendige FFT bzw. ihre Inverse approximiert. Dies hat zur Folge dass auch das Ergebnis der Faltung eine Approximation bzw. Näherung darstellt. Die Approximation der FFT erfolgt wie bereits im Zusammenhang mit dem Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales beschrieben ist, bevorzugt über eine binäre oder ternäre Quantisierung der Drehfaktoren, insbesondere mit einer Bitbreite B von eins bzw. zwei. Denkbar sind aber auch Approximationen mit höheren Bitbreiten, wie dies ebenfalls im Zusammenhang mit dem Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales beschrieben ist. Weiter bevorzugt erfolgt eine anschließende Verrechnung mit dem Korrekturfaktor α. Bei der approximierten FFT (AFFT) kann die Anzahl der arithmetischen Operationen und der Speicherzugriffe reduziert werden. Besonders die Anzahl energieintensiver Multiplikationen kann bis hin zur multiplikationslosen Ausführbarkeit der FFT maßgeblich reduziert werden. Dieser Vorteil lässt sich dann schließlich auf die Faltung übertragen, sodass das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes ebenfalls ressourcenoptimiert arbeiten kann.The further proposed method for training and/or executing a convolution-based neural network using an approximate fast Fourier transformation includes providing at least two input signals. The input signals can be 1D or 2D signals. For example, audio signals and/or image signals can be involved. Furthermore, the method for training and/or executing a convolution-based neural network includes performing a convolution. As such, the convolution comprises approximating a Fourier transform for each of the at least two input signals to obtain at least two approximate fast Fourier transforms (AFFT); calculating a Hadamard product of the at least two approximate Fast Fourier Transforms (AFFT) to obtain an approximate convolution result in the frequency domain; and approximating an inverse Fourier transform to obtain an approximated inverse fast Fourier transform (iAFFT). Approximating an inverse Fourier transform corresponds to applying an inverse approximate fast Fourier transform (iAFFT) to the result of the Hadamard product. After performing the convolution, the method for training and/or executing a convolution-based neural network includes outputting the inverse approximate fast Fourier transform (iAFFT) as an output signal, in particular as an approximate result of the convolution in a time domain. As suggested, the FFT necessary for the convolution of time-discrete signals in the frequency domain or their inverse are approximated. As a result, the result of the convolution also represents an approximation. The FFT is approximated as already described in connection with the method for the approximate calculation of butterfly units of a Fourier transformation of a signal, preferably via a binary or ternary quantization of the rotation factors, in particular with a bit width B of one or two. However, approximations with higher bit widths are also conceivable, as is also described in connection with the method for the approximate calculation of butterfly units of a Fourier transformation of a signal. Subsequent offsetting with the correction factor α is also preferably carried out. With the approximated FFT (AFFT), the number of arithmetic operations and memory accesses can be reduced. In particular, the number of energy-intensive multiplications can be significantly reduced up to the point where the FFT can be executed without multiplication. This advantage can then finally be transferred to the convolution, so that the method for training and/or executing a convolution-based neural network can also work in a resource-optimized manner.
Bevorzugt umfasst das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes zum Approximieren der Fourier-Transformation für jedes der mindestens zwei Eingangssignale ein Zerlegen einer Fourier-Transformation eines Signales in eine Anzahl an Schmetterlingseinheiten mit mindestens zwei Eingabewerten und ein Approximieren der Schmetterlingseinheiten mittels Quantisierung von zu den Schmetterlingseinheiten zugehörigen, insbesondere tatsächlichen, Drehfaktoren, um approximierte Drehfaktoren zu erhalten. Mit anderen Worten zum Approximieren der Fourier-Transformation jedes der mindestens zwei Eingangssignale wird das Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales verwendet. Die bereits gemachten Ausführungen zum Verfahren zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales gelten somit auch für das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes, worauf hiermit Bezug genommen ist. Folglich erfolgt bevorzugt das Approximieren der schnellen Fourier-Transformation über eine Quantisierung von Drehfaktoren. Beim Approximieren der Fourier-Transformation wird eine Multiplikation mit Drehfaktoren bei einer Quantisierung in P Teilbereiche durch eine bedingte Entscheidung ersetzt (siehe Details oben).The method for training and/or executing a convolution-based neural network for approximating the Fourier transform for each of the at least two input signals preferably includes a decomposition of a Fourier transform of a signal into a number of butterfly units with at least two input values and an approximation of the butterfly units by means of quantization of rotation factors associated with the butterfly units, in particular actual rotation factors, in order to obtain approximate rotation factors. In other words, to approximate the Fourier transform of each of the at least two input signals, the method for approximately calculating butterfly units of a Fourier transform of a signal is used. The statements already made regarding the method for the approximate calculation of butterfly units of a Fourier transformation of a signal therefore also apply to the method for training and/or executing a convolution-based neural network, to which reference is hereby made. Consequently, the fast Fourier transformation is preferably approximated via a quantization of rotation factors. When approximating the Fourier transform, a multiplication by rotation factors in a quantization into P bins is replaced by a conditional decision (see details above).
Bevorzugt ist eine Dimension der Eingangssignale beliebig. Jedoch sollten die mindestens zwei Eingangssignale von gleicher Dimension sein, insbesondere bevorzugt jeweils entweder 1D oder jeweils 2D. Die mindestens zwei Eingangssignale weisen bevorzugt die gleiche Dimension auf, können aber unterschiedliche Längen hinsichtlich ihrer Einträge in einer der Dimensionen aufweisen. Die Dimensionen und damit auch die Länge der Einträge in den Dimensionen sind aneinander anzugleichen. Dies kann dadurch erreicht werden, dass Nullen eingefügt (Zero-Padding) werden, um die Dimension der mindestens zwei Eingangssignale aneinander angeglichen. Beispielsweise ist es im 1D-Fall die Länge des Eingabesignale, welche aneinander anzugleichen sind. Im 2D-Fall müsste beispielsweise eine Höhe und eine Breite der Eingangssignale angeglichen werden. Die Begriffe Filterkern und Faltungskern sind Synonyme. Es ist handelt sich dabei um einen Vektor oder eine Matrix die mit einem Eingabesignal gefaltet werden. Ein CNN wendet letztlich eine große Anzahl an Filternen in den Faltungsschichten mithilfe der Faltung auf einen Input an. Beispielsweise haben Faltungskerne in der Regel kleinere Dimensionen als die Eingabewerte, welche vor Anwendung der AFFT wie gerade beschrieben aneinander angeglichen werden sollten.A dimension of the input signals is preferably arbitrary. However, the at least two input signals should be of the same dimension, particularly preferably either 1D or 2D in each case. The at least two input signals preferably have the same dimension, but can have different lengths with regard to their entries in one of the dimensions. The dimensions and thus also the length of the entries in the dimensions must be matched to one another. This can be achieved by inserting zeros (zero padding) in order to match the dimension of the at least two input signals to one another. For example, in the 1D case, it is the length of the input signal, wel are to be aligned with each other. In the 2D case, for example, a height and a width of the input signals would have to be adjusted. The terms filter kernel and convolution kernel are synonyms. It is a vector or matrix that is convolved with an input signal. A CNN ultimately applies a large number of filters in the convolutional layers to an input using the convolution. For example, convolution kernels typically have smaller dimensions than the input values, which should be matched before applying the AFFT as just described.
Bevorzugt wird die Faltung in einem Vorwärtsschritt (Forward Pass) des faltungsbasierten neuronalen Netzes zwischen mindestens einem ersten Eingabewert (Input 1) einer neuronalen Schicht eines ersten Eingangssignals 200a der mindestens zwei Eingangssignale 200 und Faltungskernen 200b der neuronalen Schicht berechnet. Faltungskerne sind durch ein zweites Eingangssignal 200b der mindestens zwei Eingangssignale 200 in den
Bevorzugt wird die Faltung in einem Rückwärtsschritt (Backward Pass) des faltungsbasierten neuronalen Netzes zwischen Eingabewerten (Input 1) einer neuronalen Schicht eines ersten Eingangssignals 200a der mindestens zwei Eingangssignale 200 und Fehlergradienten 200b (Input 2) sowie der Faltung zwischen Filterkernen 200a (Input 1) und den Fehlergradienten 200b (Input 2) berechnet. Fehlergradienten 200b sind durch ein zweites Eingangssignal 200b der mindestens zwei Eingangssignale 200 in den
Vorliegend werden für die Begriffe Faltungskern 200b, Fehlergradient 200b und zweiter Eingabewert 200b dasselbe Bezugszeichen verwendet, um in der Sprache der
Die Faltung als solche erfolgt bevorzugt in einer Dimension (1D) (Siehe
Bevorzugt wird bei einer zwei dimensionalen (2D) Faltung des faltungsbasierten neuronalen Netzes die approximierte schnelle Fourier-Transformation 210 (AFFT) zunächst auf alle Reihen 310 des zwei dimensionalen Eingangssignals 200 und anschließend auf alle Spalten 320 eines Zwischenergebnisses angewendet. Es ist denkbar bei der Faltung eine Overlap-and-Save („Überschneiden - und - Speichern“) oder eine Overlap-and-Add („Überschneiden und Addieren“) Faltung zu nutzen. Bei diesen Faltungen erfolgt eine Zerlegung des Eingangssignals, eine Anwendung der AFFT-basierten Faltung auf die Segmente und den Filterkern, und schließlich eine Rekombination mittels Overlap-and-Add oder Overlap-and-Save. Für 2D-CNNs wird eine 2D-AFFT durchgeführt, die eine 2D-FFT approximiert. Die 2D-AFFT wird dabei nach
Auch das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes kann durch eine Schaltung zur Durchführung von Faltungen im Rahmen des Trainierens und/oder des Ausführens eines faltungsbasierten neuronalen Netzes realisiert werden. Die Schaltung zur Durchführung von Faltungen im Rahmen des Trainierens und/oder Ausführens eines faltungsbasierten neuronalen Netzes (Convolutional Neural Network, CNN) mittels einer approximierten schnellen Fourier-Transformation (AFFT), welche auf einem FPGA, insbesondere als ASIC oder als ein Teil eines System on Chips (SoCs), realisiert, ist dazu ausgebildet, das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes durchzuführen. Insbesondere ist in der Schaltung zur Durchführung von Faltungen im Rahmen des Trainierens und/oder Ausführens eines faltungsbasierten neuronalen Netzes eine Schaltung zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales implementiert. Die Schaltung zum Trainieren und Ausführen eines faltungsbasierten neuronalen Netzes umfasst noch weitere Komponenten, deren prinzipielle Funktionalitäten dem Fachmann bekannt sein sollten und daher nicht weiter ausgeführt werden.The method for training and/or executing a convolution-based neural network can also be implemented by a circuit for performing convolutions as part of the training and/or executing a convolution-based neural network. The circuit for performing convolutions in the context of training and/or executing a convolution-based neural network (Convolutional Neural Network, CNN) by means of an approximate fast Fourier transformation (AFFT), which is implemented on an FPGA, in particular as an ASIC or as part of a system on chips (SoCs), is designed to use the method for training and/or or executing a convolution-based neural network. In particular, a circuit for the approximate calculation of butterfly units of a Fourier transformation of a signal is implemented in the circuit for performing convolutions as part of the training and/or execution of a convolution-based neural network. The circuit for training and executing a convolution-based neural network also includes other components whose basic functionalities should be known to a person skilled in the art and are therefore not explained further.
Ein weiterer Aspekt umfasst ein Computerprogrammprodukt, welches Befehle umfasst, die bei Ausführung durch einen Computer, diesen veranlassen, das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes auszuführen.A further aspect comprises a computer program product comprising instructions which, when executed by a computer, cause it to execute the method for training and/or executing a convolutional neural network.
Durch das beschriebene Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes kann die Anzahl der für die Berechnung von Faltungsschichten in 1D- und 2D-CNNs benötigten arithmetischen Operationen und somit die Berechnungskomplexität sowie der Ressourcenverbrauch gesamter Netze bei Inferenz und Training maßgeblich reduziert und die Berechnungsgeschwindigkeit gesteigert werden. Dies stellt einen wesentlichen Vorteil des Verfahrens zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes bzw. der Schaltung zur Durchführung von Faltungen im Rahmen des Trainierens und/oder des Ausführens eines faltungsbasierten neuronalen Netzes dar. Das Verfahren kann auf softwareprogrammierbaren Prozessoren und in Form dedizierter Hardwarearchitekturen auf FPGAs oder als ASIC umgesetzt werden. Zudem besteht die Möglichkeit das Verfahren in Form softwareprogrammierbarer Hardwarebeschleunigung in System-on-Chips (SoCs) zu integrieren. Durch Anwendung des Faltungstheorems und Berechnung der approximierten Faltung mit Hilfe der AFFT ist es möglich, die Transformationen zwischen Zeit- und Frequenzbereich, die für die ressourcensparende Faltung im Frequenzbereich (Hadamard-Produkt = Punktweise Multiplikation) notwendig sind, ohne oder mit einer reduzierten Anzahl an Multiplikationen umzusetzen. Vor allem sind Hardwaremultiplizierer nicht erforderlich. Dieses ist mit einer Steigerung der Energieeffizienz und der Performance verbunden.The method described for training and/or executing a convolution-based neural network can significantly reduce the number of arithmetic operations required for the calculation of convolution layers in 1D and 2D CNNs and thus the calculation complexity and the resource consumption of entire networks during inference and training and the Calculation speed can be increased. This represents a significant advantage of the method for training and / or running a convolution-based neural network or the circuit for performing convolutions in the context of training and / or running a convolution-based neural network. The method can be on software-programmable processors and in the form of dedicated Hardware architectures can be implemented on FPGAs or as ASIC. There is also the possibility of integrating the method in the form of software-programmable hardware acceleration in system-on-chips (SoCs). By applying the convolution theorem and calculating the approximated convolution using the AFFT, it is possible to use the transformations between the time and frequency domain, which are necessary for the resource-saving convolution in the frequency domain (Hadamard product = point-wise multiplication), with or without a reduced number of implement multiplications. Most importantly, hardware multipliers are not required. This is associated with an increase in energy efficiency and performance.
Technische Anwendungsgebiete des Verfahrens zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes sind in allen Bereichen zu finden, wo CNNs auf ressourcenbeschränkten eingebetteten und Edge-Systemen in Form von Software z.B. auf Mikroprozessoren und Embedded GPUs oder digitaler Hardware z.B. als ASIC oder auf FPGAs eingesetzt werden sollen. Auch eine Integration als softwareprogrammierbare Hardwarebeschleunigung in SoCs ist denkbar. Besonders bemerkenswert ist, dass das beschriebene Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes sowohl für die Inferenz als auch für das Training von CNNs verwendet werden kann.Technical areas of application of the method for training and/or executing a convolution-based neural network can be found in all areas where CNNs are used on resource-constrained embedded and edge systems in the form of software, e.g. on microprocessors and embedded GPUs, or digital hardware, e.g. as ASIC or on FPGAs should be. Integration as software-programmable hardware acceleration in SoCs is also conceivable. It is particularly noteworthy that the method described for training and/or executing a convolution-based neural network can be used for both inference and training of CNNs.
Das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes kann in Bereichen, in denen die CNN-Inferenz ein Rolle spielen, angewendet werden, beispielsweise bei der Bildverarbeitung, insbesondere bei einer Objekterkennung beim autonomen Fahren oder Personentracking in Kamerasystemen, oder bei Anwendungen der Audiosignalverarbeitung, insbesondere bei Natural Language Processing (NLP) für Stichworterkennung und Sprachassistenzsysteme. Auch für intelligente Sensorik im Bereich Predictive Maintenance mit CNN-basierter Signalverarbeitung im Sensor für Diagnose- und Prognoseaufgaben kann das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes nutzbringend eingesetzt werden.The method for training and/or executing a convolution-based neural network can be applied in areas in which CNN inference plays a role, for example in image processing, in particular in object recognition in autonomous driving or person tracking in camera systems, or in applications of Audio signal processing, especially in Natural Language Processing (NLP) for keyword recognition and language assistance systems. The method for training and/or executing a convolution-based neural network can also be used beneficially for intelligent sensor technology in the field of predictive maintenance with CNN-based signal processing in the sensor for diagnostic and forecasting tasks.
Zudem ermöglicht das Verfahren zum Trainieren und/oder Ausführen eines faltungsbasierten neuronalen Netzes das ressourcenschonende Training von CNNs, was im Bereich autonomer, selbst- bzw. unüberwacht lernender Systeme eingesetzt werden kann. Dies kann z.B. für die trainierbare Datenkompression mittels Autoencodern genutzt werden.In addition, the method for training and/or executing a convolution-based neural network enables the resource-saving training of CNNs, which can be used in the area of autonomous, self-learning or unsupervised learning systems. This can be used, for example, for trainable data compression using autoencoders.
Ein Einsatzgebiet aus dem Bereich Predictive Maintenance stellt das autonome Erlernen der Vorhersage von Restlebensdauern kritischer Komponenten von Maschine wie z.B. Wälzlager oder Werkzeuge in CNC-Maschinen dar. Das Annotieren der Daten kann hierbei autonom erfolgen, indem aufgenommene Daten während der Lebenszeit der kritischen Komponente vom eingebetteten System mit Zeitstempeln versehen und mit Hilfe externer Informationen (z.B. aus der Maschinensteuerung) oder unüberwachten Clusteringverfahren das Ende der Lebenszeit der Komponente festgestellt wird. Da über die Lebenszeit der Komponente große Datenmengen aufgenommen werden, die auf Grund begrenzter Speicherressourcen von eingebetteten Systemen und Edge-Systemen nicht effizient zwischengespeichert oder versendet werden können, kann hier ebenfalls die trainierbare Datenkompression mittels CNN-basierter Autoencoder genutzt werden.One area of application in the field of predictive maintenance is the autonomous learning of the prediction of the remaining service life of critical machine components such as roller bearings or tools in CNC machines. The data can be annotated autonomously by recording data during the service life of the critical component from the embedded System is provided with time stamps and the end of the component's lifetime is determined with the help of external information (e.g. from the machine control system) or unsupervised clustering processes. Since large amounts of data are recorded over the lifetime of the component, which are not efficiently cached or sent due to limited memory resources of embedded systems and edge systems the trainable data compression using CNN-based autoencoders can also be used here.
Auch im Bereich der Robotik müssen Aufgaben bzw. Fähigkeiten adaptiv erlernt bzw. erweitert werden. Ein Beispiel ist ein mit einer Kamera ausgestatteter Roboterarm zu Sortierung von Gegenständen auf Basis einer adaptiv erlernten Objekterkennung unter Einbezug von Distanzinformationen, die durch zusätzliche Abstandssensoren während des Betriebs erfasst werden.In the field of robotics, too, tasks and skills must be learned and expanded adaptively. One example is a robotic arm equipped with a camera for sorting objects based on adaptively learned object recognition, including distance information that is recorded by additional distance sensors during operation.
Obwohl manche Aspekte im Zusammenhang mit einem Verfahren beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung einer entsprechenden Vorrichtung darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes und andersherum zu verstehen ist. Auf eine Darstellung der vorliegenden Erfindung in Form einer Vorrichtung wird vorliegend aus Redundanzgründen abgesehen. Einige oder alle der Verfahrensschritte könnten durch einen Hardware-Apparat (oder unter Verwendung eines Hardware-Apparats), wie zum Beispiel einen Mikroprozessor, einen programmierbaren Computer oder einer elektronischen Schaltung durchgeführt werden. Bei einigen Ausführungsbeispielen können einige oder mehrere der wichtigsten Verfahrensschritte durch einen solchen Apparat ausgeführt werden.Although some aspects have been described in the context of a method, it is understood that these aspects also represent a description of a corresponding device, so that a block or a component of a device can also be understood as a corresponding method step or as a feature of a method step and vice versa . For reasons of redundancy, the present invention is not presented in the form of a device. Some or all of the method steps could be performed by (or using) hardware apparatus, such as a microprocessor, a programmable computer, or electronic circuitry. In some embodiments, some or more of the essential process steps can be performed by such an apparatus.
In der vorhergehenden detaillierten Beschreibung wurden teilweise verschiedene Merkmale in Beispielen zusammen gruppiert, um die Offenbarung zu rationalisieren. Diese Art der Offenbarung soll nicht als die Absicht interpretiert werden, dass die beanspruchten Beispiele mehr Merkmale aufweisen als ausdrücklich in jedem Anspruch angegeben sind. Vielmehr kann, wie die folgenden Ansprüche wiedergeben, der Gegenstand in weniger als allen Merkmalen eines einzelnen offenbarten Beispiels liegen. Folglich werden die folgenden Ansprüche hiermit in die detaillierte Beschreibung aufgenommen, wobei jeder Anspruch als ein eigenes separates Beispiel stehen kann. Während jeder Anspruch als ein eigenes separates Beispiel stehen kann, sei angemerkt, dass, obwohl sich abhängige Ansprüche in den Ansprüchen auf eine spezifische Kombination mit einem oder mehreren anderen Ansprüchen zurückbeziehen, andere Beispiele auch eine Kombination von abhängigen Ansprüchen mit dem Gegenstand jedes anderen abhängigen Anspruchs oder einer Kombination jedes Merkmals mit anderen abhängigen oder unabhängigen Ansprüchen umfassen. Solche Kombinationen seien umfasst, es sei denn es ist ausgeführt, dass eine spezifische Kombination nicht beabsichtigt ist. Ferner ist beabsichtigt, dass auch eine Kombination von Merkmalen eines Anspruchs mit jedem anderen unabhängigen Anspruch umfasst ist, selbst wenn dieser Anspruch nicht direkt abhängig von dem unabhängigen Anspruch ist.In the foregoing Detailed Description, in part, various features were grouped together in examples in order to streamline the disclosure. This type of disclosure should not be interpreted as an intention that the claimed examples have more features than are expressly recited in each claim. Rather, as the following claims reflect, subject matter may lie in less than all features of a single disclosed example. Thus the following claims are hereby incorporated into the Detailed Description, where each claim may stand as its own separate example. While each claim may stand as its own separate example, it should be noted that although dependent claims in the claims refer back to a specific combination with one or more other claims, other examples also include a combination of dependent claims with the subject-matter of each other dependent claim or a combination of each feature with other dependent or independent claims. Such combinations are contemplated unless it is stated that a specific combination is not intended. Furthermore, it is intended that a combination of features of a claim with any other independent claim is also included, even if that claim is not directly dependent on the independent claim.
Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software oder zumindest teilweise in Hardware oder zumindest teilweise in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer BluRay Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das die vorgeschlagene Lehre ausführbare digitale Speichermedium computerlesbar sein.Depending on particular implementation requirements, embodiments of the invention may be implemented in hardware, or in software, or at least partially in hardware, or at least partially in software. Implementation can be performed using a digital storage medium such as a floppy disk, a DVD, a BluRay disk, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, a hard disk or other magnetic or optical Memory are carried out on which electronically readable control signals are stored, which can interact with a programmable computer system in such a way or interact that the respective method is carried out. Therefore, the digital storage medium embodying the proposed teaching may be computer-readable.
Manche Ausführungsbeispiele gemäß der hierin beschriebenen Lehre umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Merkmale als Verfahren durchgeführt wird.Some exemplary embodiments according to the teaching described herein thus comprise a data carrier which has electronically readable control signals which are able to interact with a programmable computer system in such a way that one of the features described herein is carried out as a method.
Allgemein können Ausführungsbeispiele der hierin beschriebenen Lehre als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft.In general, exemplary embodiments of the teaching described herein can be implemented as a computer program product with a program code, the program code being effective to carry out one of the methods when the computer program product runs on a computer.
Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.The program code can also be stored on a machine-readable carrier, for example.
Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Merkmals als Verfahren, wobei das Computerprogramm auf einem maschinen-lesbaren Träger gespeichert ist. Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft.Other embodiments include the computer program for performing any of the features described herein as a method, the computer program being stored on a machine-readable medium. In other words, an exemplary embodiment of the method according to the invention is therefore a computer program that has a program code for performing one of the methods described herein when the computer program runs on a computer.
Ein weiteres Ausführungsbeispiel eines vorgeschlagenen Verfahrens ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Merkmale als Verfahren aufgezeichnet ist. Der Datenträger oder das digitale Speichermedium oder das computerlesbare Medium sind typischerweise greifbar und/oder nicht flüchtig.A further embodiment of a proposed method is thus a data carrier (or a digital storage medium or a computer-readable medium) on which the computer program for performing one of the features described herein is recorded as a method. The data carrier or digital storage medium or computer-readable medium is typically tangible and/or non-transitory.
Ein weiteres Ausführungsbeispiel des vorgeschlagenen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.A further exemplary embodiment of the proposed method is therefore a data stream or a sequence of signals which represents the computer program for carrying out one of the methods described herein. For example, the data stream or sequence of signals may be configured to be transferred over a data communication link, such as the Internet.
Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, das dahingehend konfiguriert oder angepasst ist, ein Verfahren zu dem hierin beschriebenen System durchzuführen.Another embodiment includes a processing device, such as a computer or programmable logic device, configured or adapted to perform a method of the system described herein.
Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen des Verfahrens zu dem hierin beschriebenen System installiert ist.A further exemplary embodiment comprises a computer on which the computer program for carrying out the method for the system described herein is installed.
Ein weiteres Ausführungsbeispiel gemäß der Erfindung umfasst eine Vorrichtung oder ein System, die bzw. das ausgelegt ist, um ein Computerprogramm zur Durchführung zumindest eines der hierin beschriebenen Merkmals in Form eines Verfahrens zu einem Empfänger zu übertragen. Die Übertragung kann beispielsweise elektronisch oder optisch erfolgen. Der Empfänger kann beispielsweise ein Computer, ein Mobilgerät, ein Speichergerät oder eine ähnliche Vorrichtung sein. Die Vorrichtung oder das System kann beispielsweise einen Datei-Server zur Übertragung des Computerprogramms zu dem Empfänger umfassen.A further embodiment according to the invention comprises an apparatus or a system which is designed to transmit a computer program for carrying out at least one of the features described herein in the form of a method to a recipient. The transmission can take place electronically or optically, for example. For example, the recipient may be a computer, mobile device, storage device, or similar device. The device or the system can, for example, comprise a file server for transmission of the computer program to the recipient.
Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren und Vorrichtungen durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um das hierin beschriebene Verfahren durchzuführen. Allgemein wird das Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.In some embodiments, a programmable logic device (e.g., a field programmable gate array, an FPGA) may be used to perform some or all of the functionality of the methods and apparatus described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to perform the method described herein. Generally, in some embodiments, the method is performed by any hardware device. This can be hardware that can be used universally, such as a computer processor (CPU), or hardware that is specific to the method, such as an ASIC.
Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.The embodiments described above are merely illustrative of the principles of the present invention. It is understood that modifications and variations to the arrangements and details described herein will occur to those skilled in the art. Therefore, it is intended that the invention be limited only by the scope of the following claims and not by the specific details presented in the description and explanation of the embodiments herein.
Stand der TechnikState of the art
-
[1]
M. Horowitz, „1.1 Computing's Energy Problem (and what we can do about it),“ 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC), 2014 M. Horowitz, "1.1 Computing's Energy Problem (and what we can do about it)," 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC), 2014 -
[2]
J. G. Proakis und D. G. Manolakis, Digital Signal Processing (3rd ed.): Principles, Algorithms, and Applications, Prentice-Hall, Inc., 1996 JG Proakis and DG Manolakis, Digital Signal Processing (3rd ed.): Principles, Algorithms, and Applications, Prentice-Hall, Inc., 1996 -
[3]
J. W. Cooley und J. W. Tukey, „An Algorithm for the Machine Calculation of Complex Fourier Series,“ 1965 JW Cooley and JW Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series," 1965 -
[4]
J. W. Cooley, P. A. W. Lewis und P. D. Welch, „Historical Notes on the Fast Fourier Transform,“ 1967 JW Cooley, PAW Lewis, and PD Welch, "Historical Notes on the Fast Fourier Transform," 1967 -
[5]
J. W. Cooley, P. A. W. Lewis und P. D. Welch, „The Fast Fourier Transform and its Applications,“ 1969 JW Cooley, PAW Lewis, and PD Welch, "The Fast Fourier Transform and its Applications," 1969 -
[6]
W. Liu, Q. Liao, F. Qiao, W. Xia, C. Wang und F. Lombardi, „Approximate Designs for Fast Fourier Transform (FFT) With Application to Speech Recognition,“ IEEE Transactions on Circuits and Systems I: Regular Papers, 2019 Liu W, Liao Q, Qiao F, Xia W, Wang C, Lombardi F, "Approximate Designs for Fast Fourier Transform (FFT) With Application to Speech Recognition," IEEE Transactions on Circuits and Systems I: Regular Papers, 2019 -
[7]
Q. Liao, W. Liu, F. Qiao, C. Wang und F. Lombardi, „Design of Approximate FFT with Bit-width Selection Algorithms,“ 2018 IEEE International Symposium on Circuits and Systems (ISCAS)" 2018 Q Liao, W Liu, F Qiao, C Wang, and F Lombardi, "Design of Approximate FFT with Bit-width Selection Algorithms," 2018 IEEE International Symposium on Circuits and Systems (ISCAS)" 2018 -
[8]
R. Teymourzadeh, M. J. Abigo und M. V. Hoong, „Static quantised radix-2 fast Fourier transform (FFT)/inverse FFT processor for constraints analysis,“ International Journal of Electronics, 2013 R. Teymourzadeh, MJ Abigo, and MV Hoong, "Static quantised radix-2 fast Fourier transform (FFT)/inverse FFT processor for constraints analysis," International Journal of Electronics, 2013 -
[9]
S. C. Chan und P. M. Yiu, „An efficient multiplierless approximation of the fast Fourier transform using sum-of-powers-of-two (SOPOT) coefficients,“ IEEE Signal Processing Letters, 2002 SC Chan and PM Yiu, "An efficient multiplierless approximation of the fast Fourier transform using sum-of-powers-of-two (SOPOT) coefficients," IEEE Signal Processing Letters, 2002 -
[10]
W. Perera und P. Rayner, „Optimal design of multiplierless DFTS and FFTS,“ ICASSP '86. IEEE International Conference on Acoustics, Speech, and Signal Processing, 1986 W Perera and P Rayner, "Optimal design of multiplierless DFTS and FFTS," ICASSP '86. IEEE International Conference on Acoustics, Speech, and Signal Processing, 1986 -
[11]
T. Suzuki, S. Kyochi, Y. Tanaka, M. Ikehara und H. Aso, „Multiplierless lifting based FFT via fast Hartley transform,“ 2013 IEEE International Conference on Acoustics, Speech and Signal Processing, 2013 Suzuki T, Kyochi S, Tanaka Y, Ikehara M, Aso H, "Multiplierless lifting based FFT via fast Hartley transform," 2013 IEEE International Conference on Acoustics, Speech and Signal Processing, 2013 -
[12]
M. Jiang, B. Yang, R. Huang, T. Y. Zhang und Y. Y. Wang, „Multiplierless fast Fourier transform architecture,“ Electronics Letters, 2007 M Jiang, B Yang, R Huang, TY Zhang, and YY Wang, "Multiplierless fast Fourier transform architecture," Electronics Letters, 2007 -
[13]
M. Rastegari, V. Ordonez, J. Redmon und A. Farhadi, „XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks,“ 2016 M Rastegari, V Ordonez, J Redmon, and A Farhadi, "XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks," 2016 -
[14]
I. Hubara, M. Courbariaux, D. Soudry, R. El-Yaniv und Y. Bengio, „Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations,“ 2016 Hubara I, Courbariaux M, Soudry D, El-Yaniv R, and Bengio Y. Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations, 2016 -
[15]
H. Alemdar, V. Leroy, A. Prost-Boucle und F. Petrot, „Ternary Neural Networks for Resource-Efficient AI Applications H Alemdar, V Leroy, A Prost-Boucle, and F Petrot Ternary Neural Networks for Resource-Efficient AI Applications -
[16]
H. Alemdar, V. Leroy, A. Prost-Boucle und F. Petrot, „Ternary Neural Networks for Resource-Efficient AI Applications H Alemdar, V Leroy, A Prost-Boucle, and F Petrot Ternary Neural Networks for Resource-Efficient AI Applications -
[17]
S. Han, H. Mao und W. J. Dally, „Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding,“ 2016 S Han, H Mao, and WJ Dally, "Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding," 2016 -
[18]
H. Li, A. Kadav, I. Durdanovic, H. Samet und H. P. Graf, „Pruning Filters For Efficient ConvNets,“ 2017 H Li, A Kadav, I Durdanovic, H Samet, and HP Graf, "Pruning Filters For Efficient ConvNets," 2017 -
[19]
E. Wang, J. J. Davis, P. Y. K. Cheung und G. A. Constantinides, „LUTNet: Learning FPGA Configurations for Highly Efficient Neural Network Inference,“ 2020 E Wang, JJ Davis, PYK Cheung, and GA Constantinides, "LUTNet: Learning FPGA Configurations for Highly Efficient Neural Network Inference," 2020 -
[20]
W. Jiang, X. Zhang, E. H.-M. Sha, L. Yang, Q. Zhuge, Y. Shi und J. Hu, „Accuracy vs. Efficiency: Achieving Both through FPGA-Implementation Aware Neural Architecture Search,“ 2019. W.Jiang, X.Zhang, EH-M. Sha, L Yang, Q Zhuge, Y Shi, and J Hu, "Accuracy vs. Efficiency: Achieving Both through FPGA-Implementation Aware Neural Architecture Search," 2019. -
[21]
P. Colangelo, O. Segal, A. Speicher und M. Margala, „AutoML for Multilayer Perceptron and FPGA Co-design,“ 2020 P Colangelo, O Segal, A Speicher, and M Margala, "AutoML for Multilayer Perceptron and FPGA Co-design," 2020 -
[22]
F. Conti, P. D. Schiavone und L. Benini, „XNOR Neural Engine: a Hardware Accelerator IP for 21.6 fJ/op Binary Neural Network Inference,“ 2018 F Conti, PD Schiavone, and L Benini, "XNOR Neural Engine: a Hardware Accelerator IP for 21.6 fJ/op Binary Neural Network Inference," 2018 - [23] G. G. Lemieux, J. Edwards, J. Vandergriendt, A. Severance, R. D. laco, A. Raoufy, H. Osmany, T. Watzkay und S. Singhy, „TinBiNN: Tiny Binarized Neural Network Overlay in about 5,000 4-LUTs and 5mW,“ 2019.[23] Lemieux GG, Edwards J, Vandergriendt J, Severance A, laco RD, Raoufy A, Osmany H, Watzkay T and Singhy, TinBiNN: Tiny Binarized Neural Network Overlay in about 5,000 4- LUTs and 5mW,” 2019.
- [24] Y. Wuy, Z. Wangy, Y. Shiz und J. Hu, „Enabling On-Device CNN Training by Self-Supervised Instance Filtering and Error Map Pruning,“ 2020.[24] Y Wuy, Z Wangy, Y Shiz, and J Hu, "Enabling On-Device CNN Training by Self-Supervised Instance Filtering and Error Map Pruning," 2020.
- [25] M. Mathieu, M. Henaff und Y. LeCun, „Fast Training of Convolutional Networks through FFTs,“ 2014.[25] M Mathieu, M Henaff, and Y LeCun, "Fast Training of Convolutional Networks through FFTs," 2014.
- [26] Y. Liang, L. Lu, Q. Xiao und S. Yan, „Evaluating Fast Algorithms for Convolutional Neural Networks on FPGAs,“ 2020.[26] Y Liang, L Lu, Q Xiao, and S Yan, "Evaluating Fast Algorithms for Convolutional Neural Networks on FPGAs," 2020.
- [27] T. Abtahi, C. Shea, A. Kulkarni und T. Mohsenin, „Accelerating Convolutional Neural Network with FFT on Embedded Hardware,“ 2018.[27] T Abtahi, C Shea, A Kulkarni, and T Mohsenin, "Accelerating Convolutional Neural Network with FFT on Embedded Hardware," 2018.
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION
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.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturPatent Literature Cited
- US 7428564 B2 [0012]US7428564B2 [0012]
- WO 0055757 A1 [0012]WO 0055757 A1 [0012]
- US 8239442 [0012]US8239442 [0012]
- US 5917737 [0012]US5917737 [0012]
- US 10902318 B2 [0016]US 10902318 B2 [0016]
- US 9904874 B2 [0016]US 9904874 B2 [0016]
Zitierte Nicht-PatentliteraturNon-patent Literature Cited
- M. Horowitz, „1.1 Computing's Energy Problem (and what we can do about it),“ 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC), 2014 [0111]M. Horowitz, "1.1 Computing's Energy Problem (and what we can do about it)," 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC), 2014 [0111]
- J. G. Proakis und D. G. Manolakis, Digital Signal Processing (3rd ed.): Principles, Algorithms, and Applications, Prentice-Hall, Inc., 1996 [0111]J.G. Proakis and D.G. Manolakis, Digital Signal Processing (3rd ed.): Principles, Algorithms, and Applications, Prentice-Hall, Inc., 1996 [0111]
- J. W. Cooley und J. W. Tukey, „An Algorithm for the Machine Calculation of Complex Fourier Series,“ 1965 [0111]J.W. Cooley and J.W. Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series," 1965 [0111]
- J. W. Cooley, P. A. W. Lewis und P. D. Welch, „Historical Notes on the Fast Fourier Transform,“ 1967 [0111]J.W. Cooley, P.A.W. Lewis and P.D. Welch, "Historical Notes on the Fast Fourier Transform," 1967 [0111]
- J. W. Cooley, P. A. W. Lewis und P. D. Welch, „The Fast Fourier Transform and its Applications,“ 1969 [0111]J.W. Cooley, P.A.W. Lewis and P.D. Welch, "The Fast Fourier Transform and its Applications," 1969 [0111]
- W. Liu, Q. Liao, F. Qiao, W. Xia, C. Wang und F. Lombardi, „Approximate Designs for Fast Fourier Transform (FFT) With Application to Speech Recognition,“ IEEE Transactions on Circuits and Systems I: Regular Papers, 2019 [0111]Liu W, Liao Q, Qiao F, Xia W, Wang C, Lombardi F, "Approximate Designs for Fast Fourier Transform (FFT) With Application to Speech Recognition," IEEE Transactions on Circuits and Systems I: Regular Papers, 2019 [0111]
- Q. Liao, W. Liu, F. Qiao, C. Wang und F. Lombardi, „Design of Approximate FFT with Bit-width Selection Algorithms,“ 2018 IEEE International Symposium on Circuits and Systems (ISCAS)" 2018 [0111]Q Liao, W Liu, F Qiao, C Wang, and F Lombardi, "Design of Approximate FFT with Bit-width Selection Algorithms," 2018 IEEE International Symposium on Circuits and Systems (ISCAS)" 2018 [0111]
- R. Teymourzadeh, M. J. Abigo und M. V. Hoong, „Static quantised radix-2 fast Fourier transform (FFT)/inverse FFT processor for constraints analysis,“ International Journal of Electronics, 2013 [0111]R Teymourzadeh, MJ Abigo and MV Hoong, "Static quantised radix-2 fast Fourier transform (FFT)/inverse FFT processor for constraints analysis," International Journal of Electronics, 2013 [0111]
- S. C. Chan und P. M. Yiu, „An efficient multiplierless approximation of the fast Fourier transform using sum-of-powers-of-two (SOPOT) coefficients,“ IEEE Signal Processing Letters, 2002 [0111]S C Chan and P M Yiu, "An efficient multiplierless approximation of the fast Fourier transform using sum-of-powers-of-two (SOPOT) coefficients," IEEE Signal Processing Letters, 2002 [0111]
- W. Perera und P. Rayner, „Optimal design of multiplierless DFTS and FFTS,“ ICASSP '86. IEEE International Conference on Acoustics, Speech, and Signal Processing, 1986 [0111]W Perera and P Rayner, "Optimal design of multiplierless DFTS and FFTS," ICASSP '86. IEEE International Conference on Acoustics, Speech, and Signal Processing, 1986 [0111]
- T. Suzuki, S. Kyochi, Y. Tanaka, M. Ikehara und H. Aso, „Multiplierless lifting based FFT via fast Hartley transform,“ 2013 IEEE International Conference on Acoustics, Speech and Signal Processing, 2013 [0111]Suzuki T, Kyochi S, Tanaka Y, Ikehara M, Aso H, "Multiplierless lifting based FFT via fast Hartley transform," 2013 IEEE International Conference on Acoustics, Speech and Signal Processing, 2013 [0111]
- M. Jiang, B. Yang, R. Huang, T. Y. Zhang und Y. Y. Wang, „Multiplierless fast Fourier transform architecture,“ Electronics Letters, 2007 [0111]M Jiang, B Yang, R Huang, T Y Zhang, and Y Y Wang, "Multiplierless fast Fourier transform architecture," Electronics Letters, 2007 [0111]
- M. Rastegari, V. Ordonez, J. Redmon und A. Farhadi, „XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks,“ 2016 [0111]M Rastegari, V Ordonez, J Redmon, and A Farhadi, "XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks," 2016 [0111]
- I. Hubara, M. Courbariaux, D. Soudry, R. El-Yaniv und Y. Bengio, „Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations,“ 2016 [0111]Hubara I, Courbariaux M, Soudry D, El-Yaniv R, and Bengio Y, "Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations," 2016 [0111]
- H. Alemdar, V. Leroy, A. Prost-Boucle und F. Petrot, „Ternary Neural Networks for Resource-Efficient AI Applications [0111]H Alemdar, V Leroy, A Prost-Boucle, and F Petrot Ternary Neural Networks for Resource-Efficient AI Applications [0111]
- S. Han, H. Mao und W. J. Dally, „Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding,“ 2016 [0111]Han S, Mao H, and Dally WJ, "Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding," 2016 [0111]
- H. Li, A. Kadav, I. Durdanovic, H. Samet und H. P. Graf, „Pruning Filters For Efficient ConvNets,“ 2017 [0111]H Li, A Kadav, I Durdanovic, H Samet, and H P Graf, "Pruning Filters For Efficient ConvNets," 2017 [0111]
- E. Wang, J. J. Davis, P. Y. K. Cheung und G. A. Constantinides, „LUTNet: Learning FPGA Configurations for Highly Efficient Neural Network Inference,“ 2020 [0111]E Wang, JJ Davis, PYK Cheung, and GA Constantinides, "LUTNet: Learning FPGA Configurations for Highly Efficient Neural Network Inference," 2020 [0111]
- W. Jiang, X. Zhang, E. H.-M. Sha, L. Yang, Q. Zhuge, Y. Shi und J. Hu, „Accuracy vs. Efficiency: Achieving Both through FPGA-Implementation Aware Neural Architecture Search,“ 2019. [0111]W. Jiang, X. Zhang, E.H.-M. Sha, L Yang, Q Zhuge, Y Shi, and J Hu, "Accuracy vs. Efficiency: Achieving Both through FPGA-Implementation Aware Neural Architecture Search," 2019. [0111]
- P. Colangelo, O. Segal, A. Speicher und M. Margala, „AutoML for Multilayer Perceptron and FPGA Co-design,“ 2020 [0111]Colangelo P, Segal O, Speicher A, and Margala M, "AutoML for Multilayer Perceptron and FPGA Co-design," 2020 [0111]
- F. Conti, P. D. Schiavone und L. Benini, „XNOR Neural Engine: a Hardware Accelerator IP for 21.6 fJ/op Binary Neural Network Inference,“ 2018 [0111]F Conti, PD Schiavone, and L Benini, "XNOR Neural Engine: a Hardware Accelerator IP for 21.6 fJ/op Binary Neural Network Inference," 2018 [0111]
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102021212454.2A DE102021212454A1 (en) | 2021-11-04 | 2021-11-04 | METHODS OF TRAINING AND/OR EXECUTING A CONVOLUTION-BASED NEURAL NETWORK USING AN APPROXIMATED FOURIER FAST TRANSFORMATION |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102021212454.2A DE102021212454A1 (en) | 2021-11-04 | 2021-11-04 | METHODS OF TRAINING AND/OR EXECUTING A CONVOLUTION-BASED NEURAL NETWORK USING AN APPROXIMATED FOURIER FAST TRANSFORMATION |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102021212454A1 true DE102021212454A1 (en) | 2023-05-04 |
Family
ID=85983986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102021212454.2A Pending DE102021212454A1 (en) | 2021-11-04 | 2021-11-04 | METHODS OF TRAINING AND/OR EXECUTING A CONVOLUTION-BASED NEURAL NETWORK USING AN APPROXIMATED FOURIER FAST TRANSFORMATION |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102021212454A1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917737A (en) | 1997-08-15 | 1999-06-29 | The United States Of America As Represented By The Secretary Of The Air Force | Fourier transform mechanization using one bit kernel function |
WO2000055757A1 (en) | 1999-03-17 | 2000-09-21 | The Johns Hopkins University | A fast multiplierless transform |
US7428564B2 (en) | 2003-11-26 | 2008-09-23 | Gibb Sean G | Pipelined FFT processor with memory address interleaving |
US8239442B2 (en) | 2008-08-08 | 2012-08-07 | Analog Devices, Inc. | Computing module for efficient FFT and FIR hardware accelerator |
US9904874B2 (en) | 2015-11-05 | 2018-02-27 | Microsoft Technology Licensing, Llc | Hardware-efficient deep convolutional neural networks |
US10902318B2 (en) | 2017-11-06 | 2021-01-26 | Neuralmagic Inc. | Methods and systems for improved transforms in convolutional neural networks |
-
2021
- 2021-11-04 DE DE102021212454.2A patent/DE102021212454A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5917737A (en) | 1997-08-15 | 1999-06-29 | The United States Of America As Represented By The Secretary Of The Air Force | Fourier transform mechanization using one bit kernel function |
WO2000055757A1 (en) | 1999-03-17 | 2000-09-21 | The Johns Hopkins University | A fast multiplierless transform |
US7428564B2 (en) | 2003-11-26 | 2008-09-23 | Gibb Sean G | Pipelined FFT processor with memory address interleaving |
US8239442B2 (en) | 2008-08-08 | 2012-08-07 | Analog Devices, Inc. | Computing module for efficient FFT and FIR hardware accelerator |
US9904874B2 (en) | 2015-11-05 | 2018-02-27 | Microsoft Technology Licensing, Llc | Hardware-efficient deep convolutional neural networks |
US10902318B2 (en) | 2017-11-06 | 2021-01-26 | Neuralmagic Inc. | Methods and systems for improved transforms in convolutional neural networks |
Non-Patent Citations (24)
Title |
---|
ABTAHI, Tahmid [u.a.]: Accelerating convolutional neural network with FFT on embedded hardware. In: IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Bd. 26, 2018, H. 9, S. 1737-1749. - ISSN 1063-8210 (P); 1557-9999 (E). DOI: 10.1109/TVLSI.2018.2825145. URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8392465 [abgerufen am 2021-11-15]. |
E. Wang, J. J. Davis, P. Y. K. Cheung und G. A. Constantinides, „LUTNet: Learning FPGA Configurations for Highly Efficient Neural Network Inference," 2020 |
F. Conti, P. D. Schiavone und L. Benini, „XNOR Neural Engine: a Hardware Accelerator IP for 21.6 fJ/op Binary Neural Network Inference," 2018 |
H. Alemdar, V. Leroy, A. Prost-Boucle und F. Petrot, „Ternary Neural Networks for Resource-Efficient AI Applications |
H. Li, A. Kadav, I. Durdanovic, H. Samet und H. P. Graf, „Pruning Filters For Efficient ConvNets," 2017 |
I. Hubara, M. Courbariaux, D. Soudry, R. El-Yaniv und Y. Bengio, „Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations," 2016 |
J. G. Proakis und D. G. Manolakis, Digital Signal Processing (3rd ed.): Principles, Algorithms, and Applications, Prentice-Hall, Inc., 1996 |
J. W. Cooley und J. W. Tukey, „An Algorithm for the Machine Calculation of Complex Fourier Series," 1965 |
J. W. Cooley, P. A. W. Lewis und P. D. Welch, „Historical Notes on the Fast Fourier Transform," 1967 |
J. W. Cooley, P. A. W. Lewis und P. D. Welch, „The Fast Fourier Transform and its Applications," 1969 |
M. Horowitz, „1.1 Computing's Energy Problem (and what we can do about it)," 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC), 2014 |
M. Jiang, B. Yang, R. Huang, T. Y. Zhang und Y. Y. Wang, „Multiplierless fast Fourier transform architecture," Electronics Letters, 2007 |
M. Rastegari, V. Ordonez, J. Redmon und A. Farhadi, „XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks," 2016 |
MATHIEU, Michael ; HENAFF, Mikael ; LECUN, Yann: Fast training of convolutional networks through FFTs. 06-03-2014. Version 5: arXiv:1312.5851v5. S. 1-9. URL: https://arxiv.org/pdf/1312.5851 [abgerufen am 2021-11-15]. |
P. Colangelo, O. Segal, A. Speicher und M. Margala, „AutoML for Multilayer Perceptron and FPGA Co-design," 2020 |
Q. Liao, W. Liu, F. Qiao, C. Wang und F. Lombardi, „Design of Approximate FFT with Bit-width Selection Algorithms," 2018 IEEE International Symposium on Circuits and Systems (ISCAS)" 2018 |
R. Teymourzadeh, M. J. Abigo und M. V. Hoong, „Static quantised radix-2 fast Fourier transform (FFT)/inverse FFT processor for constraints analysis," International Journal of Electronics, 2013 |
S. C. Chan und P. M. Yiu, „An efficient multiplierless approximation of the fast Fourier transform using sum-of-powers-of-two (SOPOT) coefficients," IEEE Signal Processing Letters, 2002 |
S. Han, H. Mao und W. J. Dally, „Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding," 2016 |
Schmetterlingsgraph. In: Wikipedia, Die freie Enzyklopädie, Bearbeitungsstand: 28. Oktober 2021, 11:26. URL: https://de.wikipedia.org/wiki/Schmetterlingsgraph, [abgerufen am 31.08.2022] |
T. Suzuki, S. Kyochi, Y. Tanaka, M. Ikehara und H. Aso, „Multiplierless lifting based FFT via fast Hartley transform," 2013 IEEE International Conference on Acoustics, Speech and Signal Processing, 2013 |
W. Jiang, X. Zhang, E. H.-M. Sha, L. Yang, Q. Zhuge, Y. Shi und J. Hu, „Accuracy vs. Efficiency: Achieving Both through FPGA-Implementation Aware Neural Architecture Search," 2019. |
W. Liu, Q. Liao, F. Qiao, W. Xia, C. Wang und F. Lombardi, „Approximate Designs for Fast Fourier Transform (FFT) With Application to Speech Recognition," IEEE Transactions on Circuits and Systems I: Regular Papers, 2019 |
W. Perera und P. Rayner, „Optimal design of multiplierless DFTS and FFTS," ICASSP '86. IEEE International Conference on Acoustics, Speech, and Signal Processing, 1986 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112019000336T5 (en) | MASSIVELY PARALLEL NEURAL INFERENCE DATA PROCESSING ELEMENTS | |
EP1405222B9 (en) | Method and device for producing a fingerprint and method and device for identifying an audio signal | |
DE102017125256A1 (en) | Search for a neural architecture | |
DE212020000731U1 (en) | Contrastive pre-training for language tasks | |
DE102018100239A1 (en) | Loop and library fusion | |
DE102018111905A1 (en) | Domain-specific language for generating recurrent neural network architectures | |
DE102016125918A1 (en) | Compressed recurrent neural network models | |
DE112022000106T5 (en) | Transmission fault diagnosis and signal acquisition method, apparatus and electronic device | |
DE112018005205T5 (en) | Compression of completely connected / recurring layers from one or more deep networks by enforcing spatial locality for weight matrices and effecting frequency compression | |
EP1647009B1 (en) | Device and method for processing a signal | |
EP1609084B1 (en) | Device and method for conversion into a transformed representation or for inversely converting the transformed representation | |
EP1654674B1 (en) | Device and method for processing at least two input values | |
DE102021200012A1 (en) | OPTIMIZED QUANTIZATION FOR NEURAL NETWORKS WITH REDUCED RESOLUTION | |
DE112023000011T5 (en) | A primary frequency modulation control system of the thermal power generation unit with small disturbances | |
WO2004013839A1 (en) | Arrangement and method for the generation of a complex spectral representation of a time-discrete signal | |
DE102017218851A1 (en) | Method, device and computer program for creating a deep neural network | |
DE102016222814A1 (en) | METHOD FOR CALCULATING AN OUTPUT OF A NEURONAL NETWORK | |
EP3740904B1 (en) | Method for operating an artificial neural network | |
DE102021127244A1 (en) | Artificial intelligence optimization platform | |
DE112019006317T5 (en) | IMPLEMENTATION OF A MULTI-LAYER NEURAL NETWORK USING A SINGLE PHYSICAL LAYER OF ANALOG NEURONS | |
DE102019210507A1 (en) | Device and computer-implemented method for processing digital sensor data and training methods therefor | |
DE102021212454A1 (en) | METHODS OF TRAINING AND/OR EXECUTING A CONVOLUTION-BASED NEURAL NETWORK USING AN APPROXIMATED FOURIER FAST TRANSFORMATION | |
DE102021212453A1 (en) | METHOD FOR THE APPROXIMATIVE CALCULATION OF BUTTERFLY UNITS OF A FOURIER TRANSFORMATION OF A SIGNAL | |
DE102022108379A1 (en) | Method, system and computer program product for the optimized construction and/or design of a technical component | |
Lee et al. | Discrete cosine transformed images are easy to recognize in vision transformers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0017100000 Ipc: G06F0017140000 |
|
R016 | Response to examination communication |