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 PDF

Info

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
Application number
DE102021212454.2A
Other languages
German (de)
Inventor
Lukas Krupp
Christian WIEDE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to DE102021212454.2A priority Critical patent/DE102021212454A1/en
Publication of DE102021212454A1 publication Critical patent/DE102021212454A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, 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]: y = W x = W r x i W i x

Figure DE102021212454A1_0001
y [ k ] = j = 0 N 1 e i 2 π j k N x [ j ] = j = 0 N 1 cos ( 2 π j k N ) x [ j ] i j = 0 N 1 sin ( 2 π j k N ) x [ j ]
Figure DE102021212454A1_0002
As already mentioned, the basis for transforming time-discrete, finite signals into the frequency domain is the discrete Fourier transform (DFT) [2]: y = W x = W right x i W i x
Figure DE102021212454A1_0001
y [ k ] = j = 0 N 1 e i 2 π j k N x [ j ] = j = 0 N 1 cos ( 2 π j k N ) x [ j ] i j = 0 N 1 sin ( 2 π j k N ) x [ j ]
Figure DE102021212454A1_0002

Gleichung (1a) beschreibt die Transformation in den Frequenzbereich für einen Signalvektor x

Figure DE102021212454A1_0003
in Matrix-Vektor-Schreibweise. Für eine Komponente y[k] im Frequenzbereich erfolgt die Berechnung nach Gleichung (1b) über die komponentenweise Multiplikation mit der entsprechenden Zeile der DFT-Matrix W und Summation der Produkte. Die Vektoren x
Figure DE102021212454A1_0004
und y
Figure DE102021212454A1_0005
können dabei reell- oder komplexwertig sein. Die DFT-Matrix W besitzt einen Realteil Wr und einen Imaginärteil Wi und lässt sich wie folgt schreiben: W = ( ( e i 2 π j k N ) k , j ) = W r i W i = ( ( w r ) k , j ) i ( ( w i ) k , j )   = ( ( cos ( 2 π j k N ) ) k , j ) i ( ( sin ( 2 π j k N ) ) k , j )
Figure DE102021212454A1_0006
Equation (1a) describes the transformation into the frequency domain for a signal vector x
Figure DE102021212454A1_0003
in matrix vector notation. For a component y[k] in the frequency domain, the calculation is carried out according to equation (1b) via component-wise multiplication with the corresponding row of the DFT matrix W and summation of the products. The Vectors x
Figure DE102021212454A1_0004
and y
Figure DE102021212454A1_0005
can be real or complex. The DFT matrix W has a real part W r and an imaginary part W i and can be written as follows: W = ( ( e i 2 π j k N ) k , j ) = W right i W i = ( ( w right ) k , j ) i ( ( w i ) k , j ) = ( ( cos ( 2 π j k N ) ) k , j ) i ( ( sin ( 2 π j k N ) ) k , j )
Figure DE102021212454A1_0006

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 1 N .

Figure DE102021212454A1_0007
Da die Invertierung der DFT-Matrix äquivalent zur konjugiert komplexen Darstellung ihrer Komponenten ist, kann die Berechnung der iDFT analog zur Berechnung der DFT erfolgen.The reversal of the DFT, i.e. the transformation of discrete frequency spectra into time-discrete signals, is called inverse DFT (iDFT). It is done by multiplying the inverted DFT matrix W -1 by a vector in the frequency domain and scalar multiplication by a constant factor 1 N .
Figure DE102021212454A1_0007
Since the inversion of the DFT matrix is equivalent to the complex conjugate representation of its components, the iDFT can be calculated analogously to the calculation of the DFT.

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 10a und 10b schematisch dargestellt. Eine DIT bzw. DIF Radix-2-Schmetterlingseinheit setzt sich aus einer komplexen Multiplikation und zwei komplexen Additionen/Subtraktionen zusammen (Vier reale Multiplikationen und sechs reale Additionen/Subtraktionen). Analog lassen sich auch Schmetterlingseinheiten mit mehr als zwei Eingabewerten beschreiben. Eine essenzielle Operation, ist dabei die Multiplikation mit einem Drehfaktor (Engl.: Twiddle Factor) W N k ,

Figure DE102021212454A1_0008
der sich wie folgt schreiben lässt: W N k = e ( i 2 π k N ) = cos ( 2 π k N ) i  sin ( 2 π k N ) = w r , N k i w i , N k
Figure DE102021212454A1_0009
A DIT or DIF Radix-2 butterfly unit are, for example, in 10a and 10b shown schematically. A DIT or DIF radix-2 butterfly unit consists of a complex multiplication and two complex additions/subtractions (four real multiplications and six real additions/subtractions). Analogously, butterfly units with more than two input values can also be described. An essential operation is multiplication by a twiddle factor. W N k ,
Figure DE102021212454A1_0008
which can be written as follows: W N k = e ( i 2 π k N ) = cos ( 2 π k N ) i sin ( 2 π k N ) = w right , N k i w i , N k
Figure DE102021212454A1_0009

Die folgende Formel beschreibt die durchzuführenden Berechnungen bei der Multiplikation mit einem Drehfaktor innerhalb einer DIT/DIF-Radix- n-Schmetterlingseinheit: a = W N k x = ( w r , N k i w i , N k ) ( x r + i x i ) = ( w r , N k x r + w i , N k x i ) + i ( w r , N k x i w i , N k x r )

Figure DE102021212454A1_0010
x und a sind die komplexen Ein- bzw. Ausgaben der Multiplikation.The following formula describes the calculations to be performed when multiplying by a rotation factor within a DIT/DIF radix-n butterfly unit: a = W N k x = ( w right , N k i w i , N k ) ( x right + i x i ) = ( w right , N k x right + w i , N k x i ) + i ( w right , N k x i w i , N k x right )
Figure DE102021212454A1_0010
x and a are the complex inputs and outputs of multiplication, respectively.

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].

US 7 428 564 B2 beschreibt einen FFT-Prozessor mit Adressgenerator zur Umsortierung der Drehfaktoren, sodass gewisse Schmetterlingseinheiten ohne Multiplikation durchgeführt werden können. WO 0 055 757 A1 beschreibt eine schnelle multiplikationslose diskrete Kosinustransformation, bei welcher Multiplikationen über Additionen/Subtraktionen und Schiebeoperationen ersetzt werden. US 8 239 442 beschreibt einen Hardwarebeschleuniger, welcher als FFT-Schmetterlingseinheit oder FIR-Filtereinheit genutzt werden kann. US5917737 beschreibt eine DFT mittels binärer Kernelfunktion und eine statische Umsetzung der DFT als Schaltung für eine feste Anzahl an Eingabewerten. U.S. 7,428,564 B2 describes an FFT processor with an address generator for resorting the rotation factors, so that certain butterfly units can be performed without multiplication. WO 0 055 757 A1 describes a fast multiplication-free discrete cosine transform in which multiplications are replaced by additions/subtractions and shift operations. U.S. 8,239,442 describes a hardware accelerator that can be used as an FFT butterfly unit or FIR filter unit. US5917737 describes a DFT using a binary kernel function and a static implementation of the DFT as a circuit for a fixed number of input values.

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.

US 10 902 318 B2 beschreibt ein Verfahren zu Optimierung der Anzahl benötigter Speicheroperationen bei Nutzung der FFT oder der Winograd-Transformation zur Berechnung der Faltungen in CNNs. US 9 904 874 B2 beschreibt ein Hardwaresystem zur Verarbeitung von Kamerabildern mittels CNNs. Die CNN-Ausführung wird durch Einsatz eines dedizierten Zeit-Frequenzbereichskonverters beschleunigt. U.S. 10,902,318 B2 describes a method for optimizing the number of memory operations required when using the FFT or the Winograd transform to calculate the convolutions in CNNs. U.S. 9,904,874 B2 describes a hardware system for processing camera images using CNNs. CNN execution is accelerated by using a dedicated time-to-frequency domain converter.

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 (bit width 1 or 2), and subsequent calculation with a correction factor.

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.
Advantageous refinements of the present invention are the subject matter of the dependent patent claims. Preferred embodiments of the present invention are explained in detail below with reference to the accompanying drawings. Show it:
  • 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 1 bis 13 beschrieben. In Zusammenschau der 1 bis 9 und 11 bis 13 wird das Prinzip der vorliegenden Erfindung verdeutlicht, während 10a und 10b eine schematische Darstellung bekannter Schmetterlingseinheiten 500 zeigt. In der vorliegenden Anmeldung betreffen gleiche Bezugszeichen gleiche oder gleichwirkende Elemente, wobei nicht alle Bezugszeichen in allen Zeichnungen, sofern sie sich wiederholen, erneut dargelegt werden.Individual aspects of the invention described herein are described below in the 1 until 13 described. In synopsis of 1 until 9 and 11 until 13 the principle of the present invention is illustrated while 10a and 10b Fig. 5 shows a schematic representation of known butterfly units 500. In the present application, the same reference numbers relate to the same elements or elements with the same effect, with not all reference numbers being presented again in all drawings, insofar as they are repeated.

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 1 dargestellt ist. Andererseits umfasst die vorliegende technische Lehre ein Hardwarearchitektur für Schmetterlingseinheiten, welche schematisch in den 6 bis 9 dargestellt ist und mit Hilfe einer Hardwarebeschreibungssprache auf Field Programmable Gate Arrays (FPGAs), als anwendungsspezifische integrierte Schaltung (ASIC) oder als Teil eines System-on-Chips (SoCs) realisiert werden kann. Die in 6 bis 9 dargestellten Hardwarestrukturen sind somit eine bildliche Darstellung einer hierin vorgeschlagenen Schaltung. Ferner kann auf Basis des Verfahrens zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales 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, welches schematisch in den 11 und 12 skizziert ist.On the one hand, the present technical teaching comprises a method for calculating the parameters required for the optimal approximation of the FFT, which is explained in more detail in the flowchart 1 is shown. On the other hand, the present technical teaching comprises a hardware architecture for butterfly units, which is schematically shown in FIGS 6 until 9 is shown and can be implemented using a hardware description language on Field Programmable Gate Arrays (FPGAs), as an application-specific integrated circuit (ASIC) or as part of a system-on-chips (SoCs). In the 6 until 9 The hardware structures illustrated are thus a pictorial representation of a circuit proposed herein. Furthermore, on the basis of the method for the approximate calculation of butterfly units of a Fourier transformation of a signal, an improved method for training and/or executing a convolution-based neural network (convolutional neural network, CNN) using an approximate fast Fourier transformation (AFFT) can be provided, which schematically in the 11 and 12 is sketched.

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 W N k

Figure DE102021212454A1_0011
mittels binärer oder ternärer Quantisierung. Ferner kann ein Korrekturfaktor die Approximation der Drehfaktoren weiter verbessern.The basis of the binary or ternary approximated butterfly unit is the approximation of the rotation factors W N k
Figure DE102021212454A1_0011
using binary or ternary quantization. Furthermore, a correction factor can further improve the approximation of the rotation factors.

In dem Ablaufdiagramm nach 1 werden bei einem Start 110 zunächst Eingabedaten 120, welche N Werte umfassen können, wobei N eine natürliche Zahl ist und eine Anzahl an Eingabedaten angibt. N kann beispielsweise eine Anzahl an erfassten Daten (Samples) eines Eingabesignals sein. Es gilt: N = Anzahl der Inputsamples. Die Eingabewerte/- signale 120 definieren die zugrundeliegende diskrete Fourier-Transformation (DFT). Die Eingabewerte 120 sind insbesondere erfasste Signale. Die DFT wird in einer Zerlegung 130 in Schmetterlingseinheiten in einem Schmetterlingsgraph oder Graphstruktur 140 dargestellt. Die Graphstruktur 140, welche eine Anzahl von Schmetterlingseinheiten 500 umfasst, (siehe 10a, 10b) kann beispielsweise für einen Nutzer visuell dargestellt werden. Hierbei können beispielsweise eine Darstellungsform der Schmetterlingseinheiten 500, wie in den 10a und 10b dargestellt, verwendet werden. Mit anderen Worten, zunächst erfolgt ein Darstellen einer Anzahl an Schmetterlingseinheiten einer Fourier-Transformation. Das Darstellen 130 ist zunächst als Zerlegen 130 einer Matrix des Gesamtsystems in Schmetterlingseinheiten (Untermatrizen) zu verstehen, sodass weitere Rechenoperationen durchgeführt werden könne. Ferner kann das Darstellen 130 als für einen Nutzer visuell sichtbar machen verstanden werden, beispielsweise in Form einer Graphstruktur 140. Die Schmetterlingseinheiten umfassen Drehfaktoren 150, welche es zu approximieren gilt. Hierzu werden die Drehfaktoren quantisiert, d.h. in Teilbereiche aufgeteilt. Jeder Drehfaktor 150 gehört zu einer Schmetterlingseinheit.In the flow chart after 1 At a start 110, input data 120 are first used, which can include N values, where N is a natural number and specifies a number of input data. For example, N can be a number of acquired data (samples) of an input signal. The following applies: N = number of input samples. The input values/signals 120 define the underlying Discrete Fourier Transform (DFT). The input values 120 are, in particular, detected signals. The DFT is represented in a butterfly graph or graph structure 140 in a butterfly decomposition 130 . The graph structure 140, which comprises a number of butterfly units 500 (see 10a , 10b ) can be displayed visually for a user, for example. Here, for example, a form of representation of the butterfly units 500, as in the 10a and 10b shown, are used. In other words, a number of butterfly units of a Fourier transform are first represented. The representation 130 is initially as a decomposition 130 of a matrix of the overall system into butterflies units (sub-matrices) so that further arithmetic operations can be carried out. Furthermore, the representation 130 can be understood as making it visually visible to a user, for example in the form of a graph structure 140. The butterfly units include rotation factors 150, which are to be approximated. For this purpose, the rotation factors are quantized, ie divided into sub-areas. Each rotation factor 150 corresponds to a butterfly unit.

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 approximation 160 is first discussed below using the examples of a binary quantization and a ternary quantization (quantization type 190). The method described here preferably takes place with a binary or ternary quantization. However, other quantizations/quantization types 190 are also possible.

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 1 dargestellten Verfahren kann durch den Anwender oder durch eine Abschätzung, welche durch einen Algorithmus ausgeführt werden kann, erfolgen. Im Falle einer Abschätzung mittels eines Algorithmus entfällt eine direkte Entscheidung durch den Nutzer. Um eine Berechnung der Abschätzung zu starten, gibt der Nutzer ein Beispielssignal und einen benötigten Genauigkeitsrichtwert in ein den Algorithmus ausführendes Programm ein. Das Programm kann dann automatisch abschätzen, insbesondere ableiten, welche Art der Quantisierung sinnvoll ist. Der Nutzer kann ebenfalls darüber entscheiden oder mittels der Abschätzung kann bestimmt werden, ob eine multiplikationslose Approximation 170 erfolgen soll, bei der ein Korrekturfaktor α=1 für alle Drehfaktoren gilt, oder ob eine Approximation 180 mit reduzierter Anzahl an notwendigen Multiplikationen erfolgen soll, bei der ein optimaler Wert für den Korrekturfaktor α=αopt für alle Drehfaktoren zu bestimmen ist. Ein Setzen von α=αopt in Schritt 180 der 1 bedeutet also, setze αopt als Parameter in der Berechnung ein, welcher im Rahmen eines Minimierungsproblems zu bestimmen ist.One bit for binary quantization and two bits for ternary quantization are required to represent the two or three possible output values of the quantization. Binary and ternary quantization differ in the resulting accuracy, ie the deviation from the data point d i . For example, the data point d i is an input of the quantization. The quantization input includes a real part and an imaginary part of the rotation factor to be quantized. The selection of the quantization type 190, i.e. whether binary or ternary, after the in 1 The method presented can be done by the user or by an estimation, which can be carried out by an algorithm. In the case of an estimation using an algorithm, there is no direct decision by the user. To start a calculation of the estimate, the user inputs a sample signal and a required accuracy estimate into a program running the algorithm. The program can then automatically estimate, in particular derive, which type of quantization makes sense. The user can also decide on this or the estimation can be used to determine whether a multiplication-free approximation 170 should be carried out, in which a correction factor α=1 applies to all rotation factors, or whether an approximation 180 should be carried out with a reduced number of necessary multiplications, in which an optimal value for the correction factor α=α opt is to be determined for all rotation factors. Setting α=α opt in step 180 of 1 means that α opt is used as a parameter in the calculation, which is to be determined as part of a minimization problem.

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 w { w r , N k , w i , N k }

Figure DE102021212454A1_0012
beschreiben: q B ( w ) = ( w ) B = { 1, w < 0 1, w 0
Figure DE102021212454A1_0013
q T ( w , t ) = ( w ) T = { 1, w < t 0, | w | t 1, w > t
Figure DE102021212454A1_0014
The quantization of the rotation factors 150 is applied to the real and imaginary parts, which both lie in the interval [-1, 1] due to trigonometric relationships. The quantization functions can generally be w { w right , N k , w i , N k }
Figure DE102021212454A1_0012
describe: q B ( w ) = ( w ) B = { 1, w < 0 1, w 0
Figure DE102021212454A1_0013
q T ( w , t ) = ( w ) T = { 1, w < t 0, | w | t 1, w > t
Figure DE102021212454A1_0014

Gleichung (5a) beschreibt die binäre Quantisierung, welche in 2 schematisch gezeigt ist. Gleichung (5b) beschreibt die ternäre Quantisierung, welche in 3 schematisch gezeigt ist. In den 2 und 3 ist die binäre bzw. ternäre Quantisierung vom Imaginärteil 215 und dem Realteil 225 der Drehfaktoren 150 jeweils im Intervall [-1, 1] gegenüber einem Wellenvektor k dargestellt. Bei der ternären Quantisierung beschreibt der Parameter t ∈ [0, 1] einen Schwellenwert, der das Intervall [-1, 1] durch Anwendung im positiven und negativen Bereich in die drei Teilbereiche 301, 302 und 303 unterteilt. In 3 ist der Schwellenwert als gestrichelte Linien 300 im positiven (t) und negativen (-t) Bereich dargestellt. Die gestrichelten Linien 300 verlaufen parallel zur k-Achse. In dem ersten Teilbereich 301 liegen die Werte der Drehfaktoren w r / i , N k ,

Figure DE102021212454A1_0015
welche dem halboffenen Intervall ] t, 1] der Quantisierungsfunktion qT(w) zuzuordnen sind. In dem zweiten Teilbereich 302 liegen die Werte der Drehfaktoren 150, welche dem halboffenen Intervall ] -t, -1] der Quantisierungsfunktion qT(w) zuzuordnen sind. In dem dritten Teilbereich 303 liegen die Werte der Drehfaktoren 150, welche dem geschlossenen Intervall [-t, t] der Quantisierungsfunktion qT(w) zuzuordnen sind. In_2 sind die zwei Teilbereiche 201 und 202 wie folgt zuzuordnen. In dem ersten Teilbereich 202 liegen die Werte der Drehfaktoren w r / i , N , k
Figure DE102021212454A1_0016
welche dem geschlossenen Intervall [0 , 1] der Quantisierungsfunktion qB(w) zuzuordnen sind. In dem zweiten Teilbereich 201 liegen die Werte der Drehfaktoren 150, welche dem halboffenen Intervall ] 0, -1] der Quantisierungsfunktion qB(w) zuzuordnen sind Die 2 und 3 zeigen somit die binäre bzw. ternär quantisierten Drehfaktoren, welche durch Gleichung (3) beschrieben sind.Equation (5a) describes the binary quantization, which is used in 2 is shown schematically. Equation (5b) describes the ternary quantization, which is used in 3 is shown schematically. In the 2 and 3 the binary or ternary quantization of the imaginary part 215 and the real part 225 of the rotation factors 150 is shown in the interval [−1, 1] in relation to a wave vector k. In ternary quantization, the parameter t ∈ [0, 1] describes a threshold value that divides the interval [-1, 1] into the three sub-ranges 301, 302 and 303 by using it in the positive and negative range. In 3 the threshold is shown as dashed lines 300 in the positive (t) and negative (-t) regions. The dashed lines 300 run parallel to the k-axis. The values of the rotation factors are in the first sub-area 301 w right / i , N k ,
Figure DE102021212454A1_0015
which are to be assigned to the half-open interval ] t, 1] of the quantization function q T (w). The values of the rotation factors 150, which are to be assigned to the half-open interval ]−t,−1] of the quantization function q T (w), lie in the second sub-area 302 . The values of the rotation factors 150, which are to be assigned to the closed interval [-t, t] of the quantization function q T (w), lie in the third sub-area 303 . In_ 2 the two partial areas 201 and 202 are to be assigned as follows. The values of the rotation factors lie in the first partial area 202 w right / i , N , k
Figure DE102021212454A1_0016
which are to be assigned to the closed interval [0, 1] of the quantization function q B (w). The values of the rotation factors 150, which are to be assigned to the half-open interval ] 0, -1] of the quantization function q B (w) Die, are in the second sub-area 201 2 and 3 thus show the binary or ternary quantized rotation factors, which are described by equation (3).

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: ( w ) B x = { x , ( w ) B = 1 x , ( w ) B = 1

Figure DE102021212454A1_0017
( w ) T x = { x , ( w ) T = 1 0, ( w ) T = 0 x , ( w ) T = 1
Figure DE102021212454A1_0018
With the help of binary or ternary quantization, a multiplication with the rotation factors can be replaced by a conditional decision: ( w ) B x = { x , ( w ) B = 1 x , ( w ) B = 1
Figure DE102021212454A1_0017
( w ) T x = { x , ( w ) T = 1 0, ( w ) T = 0 x , ( w ) T = 1
Figure DE102021212454A1_0018

Durch das Ersetzen der Multiplikation durch eine bedingte Entscheidung kann die Approximation 170 multiplikationslos (siehe 1) oder zumindest mit einer reduzierten Anzahl an Multiplikationen 180 erfolgen. Die Gleichungen (5a) und (5b) geben jeweils quantisierte Drehfaktoren 192 (s. 1) der binären bzw. ternären Quantisierung an.By replacing the multiplication with a conditional decision, the approximation 170 can be made multiplication-free (see 1 ) or at least with a reduced number of multiplications 180. Equations (5a) and (5b) each give quantized rotation factors 192 (see 1 ) of binary or ternary quantization.

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 1 angegeben, oder ob α=αopt für alle Drehfaktoren zu bestimmen ist, wie in 180 der 1 angegeben.In order to minimize the error between the approximated and actual rotation factors, a correction factor α can also be used. The method described preferably includes, in particular in the case of a binary or ternary quantization, minimizing an error between the approximated rotation factors and the actual rotation factors by using a correction factor α. Depending on the selection of the correction factor α, this can lead to an approximation 170 without multiplication or to an approximation 180 with a reduced number of necessary multiplications. Here “choice of correction factor” refers to whether α=1 is set for all rotation factors, as in 170 der 1 given, or whether α=α opt is to be determined for all rotation factors, as in 180 der 1 specified.

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 quantization type 190 is selected as binary, the binary quantization q B (w) is applied 189 to all rotation factors. Here, as the quantized rotation factors (w) B are determined in step 192, ie the approximated rotation factors. After the approximate rotation factors have been determined, the method for the approximate calculation of butterfly units of a Fourier transformation of a signal is ended 194. The approximate rotation factors can then be used for further use, for example in a subsequent method.

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 quantization type 190 is selected as ternary, an optimal threshold value t is first calculated according to step 185. The threshold value t divides the value range of the quantization functions in ternary quantization into three sub-ranges. Then, using the calculated threshold value t 191 , the ternary quantization q T (w) is applied 193 to all rotation factors. Here, the quantized rotation factors (w) T are determined in step 192, ie the approximated rotation factors. After the approximate rotation factors have been determined, the method for the approximate calculation of butterfly units of a Fourier transformation of a signal is ended 194. The approximate rotation factors can then be used for further use, for example in a subsequent method.

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 quantization type 190 is selected as binary, an optimal correction factor a opt for all rotation factors is first calculated in step 187 . After the correction factor 188 has been calculated, the binary quantization q B (w) is applied 189 to all rotation factors. Here, as the quantized rotation factors (w) B are determined in step 192 using the optimal correction factor α opt , ie the approximated rotation factors are determined. After the approximate rotation factors have been determined, the method for the approximate calculation of butterfly units of a Fourier transformation of a signal is ended 194. The approximate rotation factors can then be used for further use, for example in a subsequent method.

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 quantization type 190 is selected as ternary, an optimal threshold value t and an optimal correction factor a opt for all rotation factors are first calculated in step 186 . After the correction factor 188 and the threshold value 191 have been calculated, the ternary quantization q T (w) is applied 193 to all rotation factors. Here, the quantized rotation factors (w) T are determined in step 192 using the optimal correction factor α opt and using the optimal threshold value t, ie the approximated rotation factors are determined. After the approximate rotation factors have been determined, the method for the approximate calculation of butterfly units of a Fourier transformation of a signal is ended 194. The approximate rotation factors can then be used for further use, for example in a subsequent method.

Die einzelnen Approximationsschritte werden nachfolgen im Detail erläutert. Die Approximation der quantisierten Drehfaktoren lässt sich folglich allgemein beschreiben als: W N k = w r , N k i w i , N k α ( ( w r , N k ) B / T i ( w i , N k ) B / T ) = α ( W N k ) B / T

Figure DE102021212454A1_0019
The individual approximation steps are explained in detail below. The approximation of the quantized rotation factors can consequently be described in general as: W N k = w right , N k i w i , N k a ( ( w right , N k ) B / T i ( w i , N k ) B / T ) = a ( W N k ) B / T
Figure DE102021212454A1_0019

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 W N k

Figure DE102021212454A1_0020
und der Approximation α ( W N k ) B/T
Figure DE102021212454A1_0021
minimiert wird. Dies kann durch folgendes Optimierungsproblem beschrieben werden: min α | W N k α ( W N k ) B / T | = min α | W N k α ( W N k ) B / T |   = min α | ( w r , N k α ( w r , N k ) B / T ) i ( w i , N k α ( w i , N k ) B / T ) |   = min α ( w r , N k α ( w r , N k ) B / T ) 2 + ( w i , N k α ( w i , N k ) B / T ) 2
Figure DE102021212454A1_0022
The correction factor α can be determined in such a way that the approximation of the rotation factors according to equation (7) becomes optimal. This means that the error between the, particularly actual, rotation factor W N k
Figure DE102021212454A1_0020
and the approximation a ( W N k ) B/T
Figure DE102021212454A1_0021
is minimized. This can be described by the following optimization problem: at least a | W N k a ( W N k ) B / T | = at least a | W N k a ( W N k ) B / T | = at least a | ( w right , N k a ( w right , N k ) B / T ) i ( w i , N k a ( w i , N k ) B / T ) | = at least a ( w right , N k a ( w right , N k ) B / T ) 2 + ( w i , N k a ( w i , N k ) B / T ) 2
Figure DE102021212454A1_0022

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 α: α = w r , N k ( w r , N k ) B / T + w i , N k ( w i , N k ) B / T ( ( w r , N k ) B / T ) 2 + ( ( w i , N k ) B / T ) 2 = α o p t

Figure DE102021212454A1_0023
If, to solve the optimization problem, the derivation of the expression to be minimized is formed according to equation (8) and set equal to 0, then after equivalent transformation for α we get: a = w right , N k ( w right , N k ) B / T + w i , N k ( w i , N k ) B / T ( ( w right , N k ) B / T ) 2 + ( ( w i , N k ) B / T ) 2 = a O p t
Figure DE102021212454A1_0023

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: min t 1 N k = 0 N 1 | W N k α q T ( W N k , t ) | 2

Figure DE102021212454A1_0024
In the case of ternary quantization, the threshold value t can also be chosen for any correction factor α, so that the approximation becomes optimal, ie the error between an actual Rotation factor and the associated approximate rotation factor becomes minimal. To do this, the mean square deviation between all rotation factors and their approximations must be minimized: at least t 1 N k = 0 N 1 | W N k a q T ( W N k , t ) | 2
Figure DE102021212454A1_0024

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 4 und 5 zeigen beispielhaft den nach Gleichung (10) zu optimierenden Term (mittlere quadratische Abweichung zwischen tatsächlichem und approximiertem Drehfaktor) für N = 1024 und α = 1 (4) sowie N = 1024 und α = αopt (5). Die resultierende mittlere quadratische Abweichung 400 zwischen tatsächlichem und approximiertem Drehfaktor ist jeweils gegenüber dem Schwellenwert t aufgetragen. Das Minimum der Funktion, welche die Mittlere quadratische Abweichung zwischen tatsächlichem und approximiertem Drehfaktor beschreibt, und damit die optimalen Schwellenwerte liegen bei t = 0.5 für α = 1 (4) und bei t = 0.38 für α = αopt (5).Since the quantization function q T (w,t) is only partially differentiable, the problem cannot be solved analytically. Numerical or graphical methods can be used to solve the problem. The 4 and 5 show an example of the term to be optimized according to equation (10) (mean square deviation between actual and approximate rotation factor) for N = 1024 and α = 1 ( 4 ) as well as N = 1024 and α = α opt ( 5 ). The resulting mean square deviation 400 between the actual and approximate rotation factor is in each case plotted against the threshold value t. The minimum of the function, which describes the mean square deviation between the actual and the approximate rotation factor, and thus the optimal threshold values are at t = 0.5 for α = 1 ( 4 ) and at t = 0.38 for α = α opt ( 5 ).

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: a a * = ( W N k ) B / T x = α ( ( w r , N k ) B / T + i ( w i , N k ) B / T ) ( x r + i x i )   = α ( ( w r , N k ) B / T x r ( w i , N k ) B / T x i )   + i α ( ( w r , N k ) B / T x i + ( w i , N k ) B / T x r )

Figure DE102021212454A1_0025
The multiplication with the rotation factors 150 within the radix-n-butterfly units according to equation (4) can be approximated with the correction factor α as follows: a a * = ( W N k ) B / T x = a ( ( w right , N k ) B / T + i ( w i , N k ) B / T ) ( x right + i x i ) = a ( ( w right , N k ) B / T x right ( w i , N k ) B / T x i ) + i a ( ( w right , N k ) B / T x i + ( w i , N k ) B / T x right )
Figure DE102021212454A1_0025

Die Anzahl der realen Multiplikationen reduziert sich somit von vier (zwischen den Real- und Imaginärteilen von W N k

Figure DE102021212454A1_0026
und x) auf zwei, da nur noch die Real- und Imaginärteile des Ergebnisses mit dem Korrekturfaktor α multipliziert werden müssen. Bei dem Korrekturfaktor α handelt e sich um eine a-priori bekannte Konstante. A-priori bekannte Konstante bedeutet vorliegend, dass der Korrekturfaktor α nach Anwendung des Verfahrens aber vor Anwendung in der Applikation (Hardware/ Schaltung 100) bekannt ist. Eine Multiplikation mit dem Korrekturfaktor 188, wie in den 6 und 7 gezeigt ist, kommt somit ohne Hardware-Multiplizierer aus.The number of real multiplications thus reduces from four (between the real and imaginary parts of W N k
Figure DE102021212454A1_0026
and x) to two, since only the real and imaginary parts of the result have to be multiplied by the correction factor α. The correction factor α is a constant that is known a priori. In the present case, a constant known a priori means that the correction factor α is known after the method has been used but before it is used in the application (hardware/circuit 100). A multiplication by the correction factor 188, as in the 6 and 7 is shown, thus does not require a hardware multiplier.

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. 6 und 7 zeigen beispielhaft eine Vorlage für eine Umsetzung einer Hardwarestruktur einer binären bzw. ternären DIT-Radix-2-Schmetterlingseinheit mit Korrekturfaktor α. Die Vorlagen nach 6 und 7 dienen zur Umsetzung der Hardwarestruktur in einer Schaltung zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales. Die Schaltung ist bevorzugt auf einem FPGA, insbesondere als ASIC oder als ein Teil eines System on Chips (SoCs), realisiert.Equation (11) can be used to derive corresponding hardware architectures for DIF/DIT radix-n butterfly units, which can be implemented using a hardware description language on FPGAs, as an ASIC or as part of system-on-chips (SoCs). 6 and 7 show an example of a template for implementing a hardware structure of a binary or ternary DIT radix-2 butterfly unit with correction factor α. The templates after 6 and 7 serve to implement the hardware structure in a circuit for the approximate calculation of butterfly units of a Fourier transformation of a signal. The circuit is preferably implemented on an FPGA, in particular as an ASIC or as part of a system on chips (SoCs).

6 und 7 zeigen eine in einer Schaltung 100 einsetzbaren Hardwarearchitektur zur multiplikationslosen Berechnung einer binär (6) bzw. ternäre (7) approximierten Schmetterlingseinheit 500 mit Korrekturfaktor 188, wobei Multiplexer (BMUX/TMUX) 600 in der Schaltung 100 vorgesehen sind. 8 und 9 zeigen eine in einer Schaltung 100 einsetzbaren Hardwarearchitektur zur multiplikationslosen Berechnung einer binär (8) bzw. ternär (9) approximierten Schmetterlingseinheit 500, wobei Multiplexer (BMUX/TMUX) 600 in der Schaltung 100 vorgesehen sind. Die 6 bis 9 zeigen somit die Hardwarearchitektur, welche notwendig ist, um die Schritte 170 bis 194 gemäß 1 zu realisieren. 6 and 7 show a hardware architecture that can be used in a circuit 100 for the multiplication-free calculation of a binary ( 6 ) or ternary ( 7 ) approximated butterfly unit 500 with correction factor 188, multiplexers (BMUX/TMUX) 600 being provided in circuit 100. 8th and 9 show a hardware architecture that can be used in a circuit 100 for the multiplication-free calculation of a binary ( 8th ) or ternary ( 9 ) approximated butterfly unit 500, where multiplexers (BMUX/TMUX) 600 are provided in the circuit 100. The 6 until 9 thus show the hardware architecture, which is necessary to carry out the steps 170 to 194 according to 1 to realize.

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 6 und 7 skizziert ist. Bevorzugt ist die Schaltung daher dazu ausgebildet, ein Ausgabesignal an einem Multiplexer mit einem zweiten Eingabewert zu verrechnen. Ferner bevorzugt ist die Schaltung daher dazu ausgebildet, vor einer Verrechnung mit dem zweiten Eingabewert einen Realteil und einen Imaginärteil des Ausgabesignals an dem Multiplexer mit einem Korrekturfaktor α zu verrechnen.The real and imaginary parts can then be multiplied by the correction factor α and calculated using the second input value of the butterfly unit, as is the case, for example, in 6 and 7 is sketched. The circuit is therefore preferably designed to calculate an output signal at a multiplexer with a second input value. Furthermore, the circuit is preferably designed to calculate a real part and an imaginary part of the output signal at the multiplexer with a correction factor α before a calculation with the second input value.

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 1) und Gleichung (4) kann weiter vereinfacht werden zu: a a * * = ( W N k ) B / T x = ( ( w r , N k ) B / T + i ( w i , N k ) B / T ) ( x r + i x i )   = ( ( w r , N k ) B / T x r ( w i , N k ) B / T x i )   + i ( ( w r , N k ) B / T x i + ( w i , N k ) B / T x r )

Figure DE102021212454A1_0027
For the case α = 1, a butterfly unit can be approximated without multiplication (see 170 in 1 ) and equation (4) can be further simplified to: a a * * = ( W N k ) B / T x = ( ( w right , N k ) B / T + i ( w i , N k ) B / T ) ( x right + i x i ) = ( ( w right , N k ) B / T x right ( w i , N k ) B / T x i ) + i ( ( w right , N k ) B / T x i + ( w i , N k ) B / T x right )
Figure DE102021212454A1_0027

Mit Gleichung (12) lassen sich entsprechende Hardwarearchitekturen für DIF/DIT-Radix-n-Schmetterlingseinheiten ableiten. 8 und 9 zeigen beispielhaft eine Vorlage für eine Umsetzung einer Hardwarestruktur einer multiplikationslosen binären bzw. ternären DIT-Radix-2-Schmetterlingseinheit.Equation (12) can be used to derive corresponding hardware architectures for DIF/DIT radix-n butterfly units. 8th and 9 show an example of a template for implementing a hardware structure of a multiplication-free binary or ternary DIT radix-2 butterfly unit.

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 8 und 9 dienen zur Umsetzung der Hardwarestruktur in einer Schaltung zur approximativen Berechnung von Schmetterlingseinheiten einer Fourier-Transformation eines Signales. Die Schaltung ist bevorzugt auf einem FPGA, insbesondere als ASIC oder als ein Teil eines System on Chips (SoCs), realisiert.With the method described for the approximate calculation of butterfly units of a Fourier transformation of a signal or the circuit described for the approximate calculation of butterfly units of a Fourier transformation of a signal, analogous to the hardware architecture shown in FIGS. 6, 7, 8 and 9, multiplexer based architectures for approximate butterfly units with purely real input values, more than two input values (radix-n) and DIF partitioning can be built. Also the templates 8th and 9 serve to implement the hardware structure in a circuit for the approximate calculation of butterfly units of a Fourier transformation of a signal. The circuit is preferably implemented on an FPGA, in particular as an ASIC or as part of a system on chips (SoCs).

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.

11 und 12 zeigen den prinzipiellen Ablauf der approximierten Faltung für 1D- bzw. 2D-Eingssignale. 11 und 12 stellen die Faltung nach der Angleichung der Dimensionen der beiden Inputs dar. Gemäß 11 werden zwei 1D-Eingabewerte gefaltet und gemäß 12 werden zwei 2D-Eingabewerte gefaltet. Beiden 11 und 12 gemein ist nach dem Bereitstellen der Eingabewerte 200 das Berechnen der approximierten Fourier-Transformation AFFT 210 und das anschließende Berechnen eines Hadamard-Produktes 220 und das Berechnen der approximierten inversen schnellen Fourier-Transformation (iAFFT) 230. Schließlich wird ein einziges Ausgabesignal 240 ausgegeben, welches dieselbe Dimension wie die zwei Eingabewerte 200 aufweist. 11 and 12 show the basic process of the approximated convolution for 1D and 2D input signals. 11 and 12 represent the convolution after matching the dimensions of the two inputs. According to 11 two 1D input values are convolved and according to 12 two 2D input values are convolved. Both 11 and 12 After the input values 200 have been provided, the common feature is the calculation of the approximate Fourier transform AFFT 210 and the subsequent calculation of a Hadamard product 220 and the calculation of the approximate inverse fast Fourier transform (iAFFT) 230. Finally, a single output signal 240 is output which has the same dimension as the two input values 200.

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 11 und 12 dargestellt. Da die Faltungskerne 200b in der Regel kleinere Dimensionen besitzen als das erste Eingangssignal 200a, müssen die Signale 200a, 200b vor Anwendung der AFFT aneinander angeglichen werden. Dies kann durch einfügen von Nullen (Zero-Padding) erreicht werden.The convolution is preferably calculated in a forward step (forward pass) of the convolution-based neural network between at least one first input value (Input 1) of a neural layer of a first input signal 200a of the at least two input signals 200 and convolution cores 200b of the neural layer. Convolution kernels are through a second input signal 200b of the at least two input signals 200 in the 11 and 12 shown. Since the convolution cores 200b generally have smaller dimensions than the first input signal 200a, the signals 200a, 200b must be matched to one another before the AFFT is applied. This can be achieved by inserting zeros (zero padding).

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 11 und 12 dargestellt. Der Rückwärtsschritt setzt sich also aus der Faltung zwischen den Eingabedaten 200a der jeweiligen Schicht (Input 1) und den Fehlergradienten 200b (Input 2) sowie der Faltung zwischen den Filterkernen 200a (Input 1) und den Fehlergradienten 200b (Input 2) zusammen. Auch hier muss eine Angleichung der Dimensionen ggf. durchgeführt werden.The convolution in a backward step (backward pass) of the convolution-based neural network between input values (input 1) of a neural layer of a first input signal 200a of the at least two input signals 200 and error gradients 200b (input 2) and the convolution between filter kernels 200a (input 1) is preferred. and calculates the error gradient 200b (Input 2). Error gradients 200b are due to a second input signal 200b of the at least two input signals 200 in the 11 and 12 shown. The backward step is composed of the convolution between the input data 200a of the respective layer (input 1) and the error gradient 200b (input 2) as well as the convolution between the filter cores 200a (input 1) and the error gradient 200b (input 2). Here, too, the dimensions may need to be adjusted.

Vorliegend werden für die Begriffe Faltungskern 200b, Fehlergradient 200b und zweiter Eingabewert 200b dasselbe Bezugszeichen verwendet, um in der Sprache der 11 und 12 herauszustellen, dass abhängig davon, ob ein Rückwärtsschritt (Backward Pass) oder ein Vorwärtsschritt (Forward Pass) des faltungsbasierten neuronalen Netzes erfolgt, das zweite Eingangssignal 200b physikalisch zwar eine andere Bedeutung hat, es sich jedoch stets um ein Eingabesignal 200 handelt. Analoges gilt für die Terme Filterkern 200a, Eingabedaten 200a und erstes Eingangssignal 200a.The same reference numerals are used here for the terms convolution kernel 200b, error gradient 200b and second input value 200b in order to be understood in the language of FIG 11 and 12 to point out that depending on whether a backward step (backward pass) or a forward step (forward pass) of the convolution-based neural network takes place, the second input signal 200b has a different physical meaning, but it is always an input signal 200. The same applies to the terms filter core 200a, input data 200a and first input signal 200a.

Die Faltung als solche erfolgt bevorzugt in einer Dimension (1D) (Siehe 11) oder in zwei Dimensionen (2D) (siehe 12). Auch höhere Dimensionen als 2D wären denkbar.The folding as such is preferably in one dimension (1D) (See 11 ) or in two dimensions (2D) (see 12 ). Dimensions higher than 2D would also be conceivable.

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 13 durch die gewöhnliche AFFT realisiert. 13 zeigt den Ablauf der 2D-AFFT, welche den Blöcken 210 in 12 entsprechen.In the case of a two-dimensional (2D) convolution of the convolution-based neural network, the approximate fast Fourier transformation 210 (AFFT) is preferably first applied to all rows 310 of the two-dimensional input signal 200 and then to all columns 320 of an intermediate result. It is conceivable to use an overlap-and-save (“overcut and save”) or an overlap-and-add (“overlap and add”) fold during the fold. With these convolutions, the input signal is broken down, the AFFT-based convolution is applied to the segments and the filter core, and finally a recombination by means of overlap-and-add or overlap-and-save. For 2D CNNs, a 2D AFFT is performed that approximates a 2D FFT. The 2D AFFT will follow 13 realized by the ordinary AFFT. 13 shows the course of the 2D-AFFT, which follows blocks 210 in 12 are equivalent to.

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. [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 .[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 .
  2. [2] J. G. Proakis und D. G. Manolakis, Digital Signal Processing (3rd ed.): Principles, Algorithms, and Applications, Prentice-Hall, Inc., 1996 .[2] JG Proakis and DG Manolakis, Digital Signal Processing (3rd ed.): Principles, Algorithms, and Applications, Prentice-Hall, Inc., 1996 .
  3. [3] J. W. Cooley und J. W. Tukey, „An Algorithm for the Machine Calculation of Complex Fourier Series,“ 1965 .[3] JW Cooley and JW Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series," 1965 .
  4. [4] J. W. Cooley, P. A. W. Lewis und P. D. Welch, „Historical Notes on the Fast Fourier Transform,“ 1967 .[4] JW Cooley, PAW Lewis, and PD Welch, "Historical Notes on the Fast Fourier Transform," 1967 .
  5. [5] J. W. Cooley, P. A. W. Lewis und P. D. Welch, „The Fast Fourier Transform and its Applications,“ 1969 .[5] JW Cooley, PAW Lewis, and PD Welch, "The Fast Fourier Transform and its Applications," 1969 .
  6. [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 .[6] 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. [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 .[7] 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. [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 .[8th] 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. [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 .[9] 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. [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 .[10] 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. [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 .[11] 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. [12] M. Jiang, B. Yang, R. Huang, T. Y. Zhang und Y. Y. Wang, „Multiplierless fast Fourier transform architecture,“ Electronics Letters, 2007 .[12] M Jiang, B Yang, R Huang, TY Zhang, and YY Wang, "Multiplierless fast Fourier transform architecture," Electronics Letters, 2007 .
  13. [13] M. Rastegari, V. Ordonez, J. Redmon und A. Farhadi, „XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks,“ 2016 .[13] M Rastegari, V Ordonez, J Redmon, and A Farhadi, "XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks," 2016 .
  14. [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 .[14] 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. [15] H. Alemdar, V. Leroy, A. Prost-Boucle und F. Petrot, „Ternary Neural Networks for Resource-Efficient AI Applications “.[15] H Alemdar, V Leroy, A Prost-Boucle, and F Petrot Ternary Neural Networks for Resource-Efficient AI Applications “.
  16. [16] H. Alemdar, V. Leroy, A. Prost-Boucle und F. Petrot, „Ternary Neural Networks for Resource-Efficient AI Applications “.[16] H Alemdar, V Leroy, A Prost-Boucle, and F Petrot Ternary Neural Networks for Resource-Efficient AI Applications “.
  17. [17] S. Han, H. Mao und W. J. Dally, „Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding,“ 2016 .[17] S Han, H Mao, and WJ Dally, "Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding," 2016 .
  18. [18] H. Li, A. Kadav, I. Durdanovic, H. Samet und H. P. Graf, „Pruning Filters For Efficient ConvNets,“ 2017 .[18] H Li, A Kadav, I Durdanovic, H Samet, and HP Graf, "Pruning Filters For Efficient ConvNets," 2017 .
  19. [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 .[19] E Wang, JJ Davis, PYK Cheung, and GA Constantinides, "LUTNet: Learning FPGA Configurations for Highly Efficient Neural Network Inference," 2020 .
  20. [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. [20] 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. [21] P. Colangelo, O. Segal, A. Speicher und M. Margala, „AutoML for Multilayer Perceptron and FPGA Co-design,“ 2020 .[21] P Colangelo, O Segal, A Speicher, and M Margala, "AutoML for Multilayer Perceptron and FPGA Co-design," 2020 .
  22. [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 .[22] 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. [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. [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. [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. [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. [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)

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.A method of 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, which includes: 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 Output of the inverse (iAFFT) as an approximate convolution result in the time domain. Verfahren nach Anspruch 1, welches zum Approximieren der Fourier-Transformation für jedes der mindestens zwei Eingangssignale folgendes umfasst: Zerlegen einer Fourier-Transformation eines Signales in eine Anzahl an Schmetterlingseinheiten mit mindestens zwei Eingabewerten; Approximieren der Schmetterlingseinheiten mittels Quantisierung von zu den Schmetterlingseinheiten zugehörigen Drehfaktoren, um approximierte Drehfaktoren zu erhalten.procedure after claim 1 , comprising for approximating the Fourier transform for each of the at least two input signals: decomposing a Fourier transform of a signal into a number of butterfly units having at least two input values; approximating the butterfly units by quantization of rotation factors associated with the butterfly units to obtain approximate rotation factors. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Approximieren der schnellen Fourier-Transformation über eine Quantisierung von Drehfaktoren erfolgt.Method according to one of the preceding claims, in which the approximation of the fast Fourier transformation takes place via a quantization of rotation factors. Verfahren nach Anspruch 3, wobei beim Approximieren der Fourier-Transformation eine Multiplikation mit Drehfaktoren bei einer Quantisierung in P Teilbereiche durch eine bedingte Entscheidung ersetzt wird.procedure after claim 3 , where when approximating the Fourier transform, a multiplication with rotation factors is replaced by a conditional decision in the case of a quantization in P sub-regions. Verfahren nach einem der vorhergehenden Ansprüche, wobei eine Dimension der Eingangssignale beliebig ist.Method according to one of the preceding claims, wherein a dimension of the input signals is arbitrary. Verfahren nach einem der vorhergehenden Ansprüche, wobei die mindestens zwei Eingangssignale von gleicher Dimension sind, insbesondere wird durch Einfügen von Nullen die Dimension der mindestens zwei Eingangssignale aneinander angeglichen.Method according to one of the preceding claims, wherein the at least two input signals are of the same dimension, in particular the dimension of the at least two input signals is adjusted to one another by inserting zeros. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Faltung in einem Vorwärtsschritt (Forward Pass) des faltungsbasierten neuronalen Netzes zwischen Eingabewerten (Input 1) einer neuronalen Schicht eines ersten Eingangssignals der mindestens zwei Eingangssignale und Faltungskernen (Input 2) der neuronalen Schicht berechnet wird.Method according to one of the preceding claims, in which the convolution in a forward step (Forward Pass) of the convolution-based neural network between input values (Input 1) of a neural layer of a first input signal of the at least two input signals and convolution kernels (Input 2) of the neural layer is calculated. Verfahren nach einem der vorhergehenden Ansprüche 1 bis 7, bei dem die Faltung in einem Rückwärtsschritt (Backward Pass) des faltungsbasierten neuronalen Netzes zwischen Eingabewerten (Input 1) einer neuronalen Schicht eines ersten Eingangssignals der mindestens zwei Eingangssignale und Fehlergradienten (Input 2) sowie der Faltung zwischen Filterkernen (Input 1) und den Fehlergradienten (Input 2) berechnet wird.Method according to any of the preceding Claims 1 until 7 , in which the convolution in a backward step (backward pass) of the convolution-based neural network between input values (Input 1) of a neural layer of a first input signal of the at least two input signals and error gradients (Input 2) and the convolution between filter kernels (Input 1) and the error gradients (Input 2) is calculated. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Faltung in einer Dimension (1 D) oder in zwei Dimensionen (2D) erfolgt.Method according to one of the preceding claims, in which the folding is carried out in one dimension (1D) or in two dimensions (2D). Verfahren nach einem der vorhergehenden Ansprüche, wobei bei einer zwei dimensionalen (2D) Faltung des faltungsbasierten neuronalen Netzes die approximierte schnelle Fourier-Transformation (AFFT) zunächst auf alle Reihen des zwei dimensionalen Eingangssignals und anschließend auf alle Spalten eines Zwischenergebnisses angewendet wird.Method according to one of the preceding claims, wherein in a two-dimensional (2D) convolution of the convolution-based neural network, the approximate fast Fourier transform (AFFT) is first applied to all rows of the two-dimensional input signal and then to all columns of an intermediate result. 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 als FPGA, insbesondere als ASIC oder als ein Teil eines System on Chips (SoCs), realisiert ist und die Schaltung dazu ausgebildet ist, ein Verfahren nach einem der Ansprüche 1 bis 10 durchzuführen.Circuit for performing convolutions as part of the training and/or execution of a convolution-based neural network (convolutional neural network, CNN) using an approximate fast Fourier transform (AFFT), which as an FPGA, in particular as an ASIC or as part of a system on chips (SoCs), is implemented and the circuit is designed to use a method according to one of Claims 1 until 10 to perform. Computerprogrammprodukt, umfassend Befehle, die bei Ausführung durch einen Computer, diesen veranlassen, das Verfahren nach einem der Ansprüche 1 bis 10 auszuführen.A computer program product comprising instructions which, when executed by a computer, cause the computer to carry out the method according to any one of Claims 1 until 10 to execute.
DE102021212454.2A 2021-11-04 2021-11-04 METHODS OF TRAINING AND/OR EXECUTING A CONVOLUTION-BASED NEURAL NETWORK USING AN APPROXIMATED FOURIER FAST TRANSFORMATION Pending DE102021212454A1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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