WO2023237498A1 - Dispositif de traitement de donnees par voie d'apprentissage, procede, programme et systeme correspondant - Google Patents

Dispositif de traitement de donnees par voie d'apprentissage, procede, programme et systeme correspondant Download PDF

Info

Publication number
WO2023237498A1
WO2023237498A1 PCT/EP2023/065015 EP2023065015W WO2023237498A1 WO 2023237498 A1 WO2023237498 A1 WO 2023237498A1 EP 2023065015 W EP2023065015 W EP 2023065015W WO 2023237498 A1 WO2023237498 A1 WO 2023237498A1
Authority
WO
WIPO (PCT)
Prior art keywords
analog
digital
primitives
parameters
electronic circuit
Prior art date
Application number
PCT/EP2023/065015
Other languages
English (en)
Inventor
Valentin Gies
Sebastian MARZETTI
Valentin BARCHASZ
Original Assignee
Universite De Toulon
Centre National De La Recherche Scientifique
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 Universite De Toulon, Centre National De La Recherche Scientifique filed Critical Universite De Toulon
Publication of WO2023237498A1 publication Critical patent/WO2023237498A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/38Circuit design at the mixed level of analogue and digital signals
    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • 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/09Supervised learning

Definitions

  • the disclosure relates to the field of signal processing. More particularly, the invention relates to the field of signal processing in a constrained system, particularly in a system constrained in terms of energy consumption.
  • the temperature may be normally constant: there is no need to transfer this low-level data because the relevant events only occur when there is a significant change insofar.
  • the detection of this event should be carried out locally, by increasing the semantic level of the signal to be transferred remotely. In this case, an alert can be sent remotely, avoiding the need to transfer low-level raw data.
  • This need for local processing raises a problem: how to implement complex processing and in particular processing based on artificial intelligence in embedded LoT type architectures? Indeed, avoiding permanently transferring all sensor data involves their local processing. This is necessary and was highlighted in the European Commission's text on communications and digital guidelines, setting a target of 80% of data processing carried out locally.
  • a mixed processing technique (analog-digital) is used to replace convolutional neural network type solutions, while learning the parameters of the global model, these parameters including analog parameters and digital parameters, from a base of labeled data.
  • This mixed architecture is called primitive neural network (or Primitive Neural Network (PNN) in English).
  • the disclosure relates to a method for determining implementation parameters of an electronic circuit intended to be implemented by a computer or a data processor, said electronic circuit being configured to carry out the processing of a signal input, the electronic circuit comprising an analog portion comprising a plurality of parameterizable analog primitives and a digital portion comprising a plurality of parameterizable digital primitives, the implementation parameters of the electronic circuit comprising parameters of the plurality of parameterizable analog primitives and parameters parameters of the plurality of configurable digital primitives, the digital portion being coupled to the analog portion via at least one analog-to-digital converter and/or at least one analog comparator with or without hysteresis.
  • Such a method comprises a phase of learning said parameters of the plurality of parameterizable analog primitives and said parameters of the plurality of parameterizable digital primitives, said learning phase being joint with the parameters of the plurality of parameterizable analog primitives and the parameters of the plurality of configurable digital primitives.
  • the learning phase comprises at least one iteration of the following steps, carried out using a learning database of labeled signals: loading of current parameters of the plurality of configurable analog primitives and of the plurality of configurable digital primitives; extraction, by the analog portion, as a function of the current parameters of the plurality of analog primitives, of temporal information from the input signals and/or frequency information from these same signals.
  • a learning database of labeled signals loading of current parameters of the plurality of configurable analog primitives and of the plurality of configurable digital primitives; extraction, by the analog portion, as a function of the current parameters of the plurality of analog primitives, of temporal information from the input signals and/or frequency information from these same signals.
  • This intermediate data structure can be formed by the juxtaposition of the information extracted by the analog portion from the signals of the learning database; this structure is for example a tensor, classification, by the digital portion, according to the current parameters of the plurality of digital primitives, and from the intermediate data structure, of the plurality of detected events, delivering a plurality of portions classified signals; calculation, from the plurality of classified signal portions, of a classification error rate (Err); correction of the current parameters of the plurality of configurable analog primitives and of the plurality of parameterizable digital primitives as a function of the error rate (Err).
  • this structure is for example a tensor, classification, by the digital portion, according to the current parameters of the plurality of digital primitives, and from the intermediate data structure, of the plurality of detected events, delivering a plurality of portions classified signals; calculation, from the plurality of classified signal portions, of a classification error rate (Err); correction of the current parameters of the plurality of configurable analog primitives and of the plurality of parameterizable
  • the learning phase ends when the classification error rate (Err) is less than a predetermined threshold and/or when a target electrical consumption, in operational operation, of said electronic circuit is reached.
  • Err classification error rate
  • the step of correcting the current parameters of the plurality of configurable analog primitives and of the plurality of configurable digital primitives comprises at least one iteration of the following joint optimization sequence: optimization of the digital portion by backpropagation, then optimization of the analog portion using iterative digital simulation methods.
  • the digital portion comprises at least one neural network adapted to classify the signals received via analog/digital converters and in that the parameters of the plurality of configurable digital primitives include at least weights and through said neural network.
  • the digital portion is, by default, on standby.
  • the analog portion comprises at least one band-pass filter, said band-pass filter making it possible to identify frequencies of interest and in that the parameters of the plurality of configurable analog primitives comprise at least cut-off frequencies of said bandpass filter and in that the analog portion comprises a plurality of trigger nodes with a view to waking up said digital portion on the basis of an identification of said frequencies of interest.
  • the disclosure also relates to an electronic circuit configured to carry out the processing of an input signal according to the method of determining implementation parameters of said electronic circuit, said electronic circuit comprising an analog portion and a portion digital, the digital portion being coupled to the analog portion via one or more analog-to-digital converters, and/or analog comparators with or without hysteresis.
  • the analog portion includes a plurality of analog primitives parameterized according to a first set of parameters and in that the digital portion comprises a plurality of digital primitives parameterized according to a second set of parameters, said first and said second set of parameters belonging to the implementation parameters of said electronic circuit, said first and said second set having been the subject of joint learning according to the method previously presented.
  • the plurality of configurable analog primitives comprises primitives belonging to the group comprising: passive and/or active filters, envelope detectors, multipliers, operational amplifier assemblies, diodes, analog convolutions, integrators, derivatives, delay.
  • the analog portion of the electronic circuit is divided into a first part, called signal preprocessing part, and a second part called moment extraction part, the output of the signal preprocessing part being connected to the input of the moment extraction part, the output of the moment extraction part being directly connected using at least one analog/digital converter and/or an analog comparator.
  • the disclosure also relates to the use of an electronic circuit configured to carry out the processing of an input signal according to a method for determining implementation parameters of this electronic circuit, said electronic circuit comprising an analog portion and a digital portion, the digital portion being coupled to the analog portion via at least one analog-digital converter or at least one analog comparator, the analog portion comprising a plurality of analog primitives configurable according to a first set of parameters and the digital portion comprising a plurality of digital primitives configurable according to a second set of parameters.
  • This use is remarkable in that it includes a step of loading the first and the second set of parameters having been the subject of joint learning according to the method previously presented.
  • learning can be controlled/executed by a program, implemented within a processor, to control in particular the convergence of the learning parameters.
  • the different steps of the methods according to the present disclosure are implemented by one or more software or computer programs, comprising software instructions intended to be executed by a data processor of an execution terminal according to the present technique and being designed to control the execution of the different stages of the processes, implemented at the level of a communication terminal, a remote server and/or a blockchain, as part of a distribution of the processing to be carried out and determined by scripted source code or compiled code.
  • the present technique also targets programs, capable of being executed by a computer or by a data processor, these programs comprising instructions for controlling the execution of the steps of the processes as mentioned above.
  • a program may use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable shape.
  • the present technique also targets an information medium readable by a data processor, and comprising instructions for a program such as mentioned above.
  • the information carrier can be any entity or terminal capable of storing the program.
  • the medium may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or even a magnetic recording means, for example a mobile medium (memory card) or a hard drive or SSD.
  • the information carrier may be a transmissible medium such as an electrical or optical signal, which may be carried via an electrical or optical cable, by radio or by other means.
  • the program according to the present technique can in particular be downloaded over an Internet type network.
  • the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in executing the method in question.
  • the present technique is implemented by means of software and/or hardware components.
  • module can correspond in this document to a software component as well as to a hardware component or to a set of hardware and software components.
  • a software component corresponds to one or more computer programs, one or more subprograms of a program, or more generally to any element of a program or software capable of implementing a function or a set of functions, as described below for the module concerned.
  • Such a software component is executed by a data processor of a physical entity (terminal, server, gateway, set-top-box, router, etc.) and is capable of accessing the hardware resources of this physical entity (memories, recording media, communication buses, electronic input/output cards, user interfaces, etc.).
  • a hardware component corresponds to any element of a hardware assembly capable of implementing a function or a set of functions, according to what is described below for the module concerned. It may be a programmable hardware component or one with an integrated processor for executing software, for example an integrated circuit, a smart card, a memory card, an electronic card for executing firmware ( firmware), etc.
  • FIG. 1 represents the general architecture of the network according to the present disclosure
  • FIG. 3 is an example of the structure of the analog portion of the network according to the disclosure.
  • FIG. 4 illustrates a one-dimensional signal before manual labeling
  • FIG. 5 represents the one-dimensional signal of Figure 4 after manual labeling
  • FIG. 6 illustrates the training of the network with the input labeled data and the intermediate data generated by the analog portion
  • FIG. 7 illustrates the training of the network with the input labeled data and the subdata generated by the analog portion. Optimization of the parameters of the analog portion to start filtering data that is not part of the targets;
  • FIG. 10 Illustrates a circuit according to the present disclosure
  • FIG. 11 illustrates the architecture of a microcontroller according to the present disclosure
  • FIG. 12 illustrates a portion of the input signal database and corresponding labels
  • FIG. 13 illustrates a network comprising three primitives
  • FIG. 15 presents three examples of the labeled raw data from the pressure sensor
  • FIG. 18 illustrates a first network of primitives
  • FIG. 20 illustrates a three-layer neural network, connectable to the complete primitive network of Figure 19;
  • FIG. 21 illustrates a three-layer neural network, connectable to the complete primitive network of Figure 19;
  • the disclosure relates, in a first aspect, to a device comprising an electronic circuit which comprises an analog portion and a digital portion.
  • the analog portion is remarkable in that it includes configurable functionalities (FPAA, FPMA).
  • This analog portion includes a plurality of potentially usable functionalities (notably filters), called “features” or “primitives”. These features can be independently activated and configured so that their power consumption is limited to the uses made of them.
  • the potential number of configurable functionalities that can be implemented essentially depends on the complexity of the analog portion.
  • the circuit also includes a digital portion. This digital potion is interfaced with the analog portion via analog/digital converters.
  • the digital portion for its part, notably includes an electronic decision-making circuit (of the artificial neural network or expert system type for example) digitally implanted.
  • an electronic decision-making circuit of the artificial neural network or expert system type for example
  • it typically includes a few hundred or more neurons depending on the intended application and the targeted power consumption.
  • the input signals are therefore processed using a mixed architecture in which the analog portion is implemented to carry out a first series of data processing (processing of the signals of higher frequency, extraction of moments, etc.) and these data obtained from the input analog signals are provided to the neural network, on the digital portion for processing at lower frequencies and obtaining the results (e.g. classifications of input signals).
  • This architecture makes it possible to meet the needs for energy consumption limitations.
  • An important characteristic of the disclosure relates to the general configuration of the proposed electronic circuit: the learning of the analog and digital parameters of such a circuit is carried out globally and includes both the learning of the parameters of the digital neural network and , at the same time, learning the parameters of the primitives of the analog portion.
  • the circuit is usable in many situations and can have a single certification, which also reduces implementation costs.
  • the network of primitives constitutes a mixed electronic architecture (analog and digital) intended to implement embedded artificial intelligence for decision-making or pattern identification, targeting ultra-low-cost applications. consumption with a joint optimization of energy consumption and classification accuracy, with the following particularities:
  • the proposed technique differs from other classic architectures for embedded AI comprising a fixed analog front-end circuit and a digital portion implementing neural networks: the proposed technique allows end-to-end joint learning of the parameters of the analog and digital parts (Fig. . 1).
  • the proposed technique makes it possible to obtain ultra-low consumption systems and networks of limited size.
  • the architecture is divided into two distinct portions (analog/digital) ( Figure 1) corresponding to very different signal frequencies in order to optimize energy consumption.
  • High-frequency processing is carried out in analog, resulting in a gain of a factor of 100 in power compared to digital, while low-frequency processing is carried out digitally.
  • the transition from one to the other is done using one or more analog-to-digital converters using data from moment extractors (these make it possible to drastically reduce the useful frequency of the signal (for example filters, averagers, detector peak)), one or more analog-to-digital converters making it possible to acquire portions of limited size of the high frequency input signals or processed by the analog network, the use of digital rising or falling edges from comparators with or without hysteresis analog.
  • the analog portion is made up of analog primitives: passive and/or active filters, envelope detectors, multipliers, operational amplifier assemblies (adders, subtracters, phase shifters, etc.), diodes, analog convolutions (wavelets for example).
  • the concrete implementation is similar to an FPAA, with a structure successively coupling programmable analog input point ending with moment extractors, analog/digital converters (ADC), comparators and digital processor optimized for neural calculations.
  • the architecture brings model diversity to the classical neural networks/CNN paradigm: learning can be carried out on something other than neurons (Figure 2: “E”: input, “PA1” to “PA7” (primitives analog), “PD1” to “PD7” (digital primitives) and “S” (output), and in particular on primitives that cannot be easily modeled by neurons, for example a multiplier, a filter, a correlator between signals or a time delay (“PA1” to “PA7”).
  • the learning evaluation criterion depends on the quality of classification, but also on the power consumed by the network and the complexity of the network at the electronic level.
  • the way we learn is particular due to the presence of moment extraction operators which break or limit the possibility of doing gradient backpropagation.
  • the optimization technique is therefore different from that of traditional learning: we iterate a learning process optimizing the analog portion by gradient descent, after having previously optimized the digital network at each step of calculating the analog gradient. To do this at each stage of optimization:
  • This intermediate training data set dependent on analog operations, is used for classical network learning of the digital portion. Once this learning of the digital portion has been carried out, the process is repeated by varying the parameters of the analog portion, so as to be able to calculate a gradient according to the parameters of the analog portion so as to optimize them.
  • Global analog/digital optimization is potentially algorithmically expensive, but it remains calculable given the fact that we are targeting applications implemented in architectures with limited capacities. Furthermore, since this optimization is carried out “offline”, the computing resources do not pose any difficulties at this stage.
  • the learning phase comprises at least one iteration of the following steps, performed using a labeled signal training database:
  • Extraction (A2) by the analog portion, as a function of the current parameters of the plurality of analog primitives, of temporal information (IT) from the input signals (Sig.E) and/or frequency information (IF) from these same signals; the latter can correspond to a plurality of moments of the signals from the learning database;
  • A3 using previously extracted temporal and/or frequency information, of an intermediate data structure (SDI), formed for example by the juxtaposition of information extracted by the analog portion from the signals in the training database; the structure can be a tensor.
  • SDI intermediate data structure
  • Classification (A4) by the digital portion, according to the current parameters of the plurality of digital primitives (PC), and from the intermediate data structure (SDI), of the plurality of events detected by the analog part, delivering a plurality of classified signal portions (PSC);
  • the learning presented in relation to Figure 22 is exemplified by the following explanations.
  • a starting point is a one-dimensional signal as shown in fig. 4.
  • the input signal can also be multi-channel. For the present description a single channel signal is used. First, this signal is manually labeled as shown in fig. 5. Labels define the targets to be detected in the input signal. This classic manual labeling operation is carried out for all of the signals constituting the learning database. Once the database is labeled, training of the primitive network begins.
  • the labeled data is provided as input to the network of primitives and the analog portion performs the first step of processing for extracting the moments of the signals.
  • This analog portion also generates an intermediate data structure which constitutes the input to the digital portion as shown in fig. 6.
  • This intermediate data structure is automatically labeled according to the current parameters of the analog primitives. However, given the fact that it is not (yet) optimized, it can lead to extracting information with non-optimal relevance. Then the digital portion performs a classification of the data extracted by the analog portion and, in learning, it is therefore possible to calculate the error of the system (of the circuit as a whole) from the true and false detections according to the labels of the base starting data.
  • an optimized backpropagation method is used to adjust the parameters (weight and bias) of the analog and digital portions to using the gradient backpropagation algorithm (gradient backpropagation).
  • gradient backpropagation it is therefore necessary to calculate the derivative of the error with respect to each of the parameters of all the primitives, as in the case of a classic neural network, to be able to adjust these parameters of all the primitives to the using a learning rate hyperparameter.
  • This cycle represents an iteration (an epoch) of learning: generation of a self-labeled training set at the output of the analog part, then optimization of the digital part on this self-labeled training set, then optimization of the analog part to minimize the overall error.
  • the parameters of the analog and digital have already been adjusted once so the error starts to decrease from the second iteration. Therefore the first step of the analog processing of the second iteration already filters events which are not part of the target as exemplified in fig. 7.
  • This learning method allows the optimization of the entire network of primitives (analog portion and digital portion) and also makes it possible to calculate an index of detection precision versus energy consumption since depending on the complexity of the network of primitives, the precision of detection but also its energy consumption are increased.
  • the primitives in the primitive network consist of circuits and operators whose parameters are learned during training from a labeled database.
  • the primitives in the primitive network consist of circuits and operators whose parameters are learned during training from a labeled database.
  • Analog peak detector this primitive can be implemented with a diode, a resistor and a capacitor as shown in fig. 8 (left). This primitive is key for detecting transients as shown in fig. 8 (right). This can also be used after a bandpass filter to detect the energy level in the frequency band.
  • the parameter to learn during the learning phase is the constant: Tau (RiCi).
  • Analog filters these primitives can be implemented with one or more operational amplifiers, resistors and capacitors as shown in fig. 9 (left) and fig. 10 (left). They allow you to select the frequency bands of interest, as shown in fig. 9 (right) and fig. 10 (right). They can also be used to calculate the average value of a signal, in the case of a low-pass filter.
  • the parameters to be learned during training are the cutoff frequencies, in Figs. 9 and 10 a low pass filter primitive and a high pass filter primitive are shown, where the cutoff frequencies are defined by R 2 C 2 and R3C3 respectively.
  • Analog correlator in relation to a configurable pattern (pre-established or capable of evolving over time) such as a wavelet or between different input signal channels.
  • Analog delay allows you to shift the input signal temporally with a constant but adjustable delay in a limited frequency band.
  • Integrator this primitive allows you to integrate the input signal and amplify the result.
  • Derivator this primitive allows you to derive the input signal and amplify the result.
  • Digital filters these primitives allow, in the same way as analog filters, to select the desired frequency band. However, they are implemented in digital form, and this makes them interesting for processing low frequency signals (which consume little energy in digital).
  • Digital neuron this primitive is the classic neuron. It can be used alone or grouped on a neural network in the last layers of a network of primitives. The parameters to learn are classically the weights and biases.
  • FFT Digital Fast Fourier Transform
  • the primitive network architecture couples digital and analog primitives.
  • the digital part can be implemented in the form of an FPGA (field-programmable gate array), in a microcontroller as illustrated in fig. 11 or in a dedicated silicon circuit.
  • the architecture of the analog part of the primitive network requires a form of mixed FPAA (Field programmable analog array) oriented ultra low consumption.
  • the FPAA is the analog equivalent of the FPGA.
  • FPAA circuits contain a smaller number of configurable CAB blocks (“Configurable Analog Blocks”).
  • analog and digital primitives make it possible to consider different types of signal processing with very different frequency spectrums.
  • Analog processing mainly targets high bandwidth signals because the potential gain in energy consumption is then of two orders of magnitude (factor 100), while digital processing, which is more versatile, targets more traditional classification operations. using neural networks.
  • analog primitives several operational amplifiers can be implemented with different “gain-band” products and are used according to the frequency of the signals to be processed. This is represented in fig. 11 with three types of analog and digital primitives (Analog Primitive/Digital Primitive). All these primitives can be turned off to minimize power consumption.
  • the method of learning the parameters of such a network of primitives is modified compared to the classic learning methods implemented for digital neural networks.
  • this method includes a double optimization: optimization of digital parameters and optimization of analog parameters.
  • This methodology is inspired by the classic backpropagation algorithm.
  • temporal primitives such as filters
  • This new method was implemented in simulation for learning parameters from a labeled database, the objective being to automatically learn the parameters of analog primitives, together with the digital parameters, from a labeling single initial. In this example we therefore only present the learning of a simplified analog stage. Digital learning is not illustrated here, it being classic otherwise).
  • a database was generated. It is composed of a large number of samples, each comprising a sinusoidal signal with a constant amplitude equal to IV but whose frequencies vary from 10 to 180 Hz. The sampling frequency is set at 400Hz.
  • the database is partially illustrated in fig. 12 (database of input signals and corresponding label). As shown, different labels were used to test the convergence of the model. They were generated by an algorithm. As can be seen, this database describes a bandpass filter centered at W1 + W] with a band length equal to
  • a band-pass filter this filter is composed of a high-pass filter coupled with a low-pass filter. Their cutoff frequencies are fcHpret f C LPF, which must be learned during training;
  • a peak detector this primitive is composed of a diode and a low-pass filter to maintain the voltage level for a period of time defined by ij, which must be learned during training but which, initially, is fixed to describe the learning method more simply;
  • this primitive generates a high logic level when the voltage in the positive input corresponding to the voltage level at the output of the peak detector (and therefore to the energy of the signal in the passband of the filter) is greater than that of the negative input (reference fixed initially, but optimized by learning)
  • the parameters are initialized as follows: fcHPF and fdPF are the two parameters to learn. At the end of the training they will converge at the frequencies which will define the central frequency of the bandpass filter f o and its band length.
  • SpectrumPercentage is a hyperparameter to be defined as the learning rate and in this case it is equal to 0.05. Which makes the initial values of fcHPF and f C LPF equal to 10 and 190 Hz respectively, since fsampiing is equal to 400 Hz. ij is prefixed to make learning faster. It is equal to 250ms the value of the temporal length of each of the samples in the database to be able to maintain the voltage level until the end.
  • Threshold is also prefixed to simplify learning. It is equal to 0.7V since the database sine amplitude is equal to IV.
  • the first learning iteration begins after initializing the parameters of the primitive network.
  • the objective of successive iterations is to converge at the frequencies labeled in the database, as shown in fig. 14.
  • the derivative of the primitive array error after database processing with respect to each frequency f C HPF and f C LPF ) must be calculated.
  • This bandpass filter type primitive has some sort of memory with respect to the input at time k.
  • the implemented filters are first order, this memory demonstrates that it is necessary to modify the training method to be compatible with temporal primitives such as filters.
  • each sample in the database is filtered and the output of the comparator is compared to the desired labeling (true or false detection).
  • the cutoff frequency of the high pass filter is updated using eq. 1.
  • Derivate PO rcentage is a hyper parameter to be prefixed like the learning rate. In this case it is equal to 0.1.
  • fcHPF + Af fcHPF + fSam P ling Derivate Percentage (1)
  • fcHPF is reset to its previous value and the same method is applied to calculate the derivative with respect to f C LPF, so as to obtain
  • the gradient of the overall error with respect to the analog parameters is determined and allows the updating of the cutoff frequencies of the filters with eq. 3 and eq. 4.
  • fcHPF fcHPF + LearningRate.
  • fcLPF fcLPF + LearningRate. This cycle representing an iteration is then repeated until convergence or until reaching the defined number of iterations.
  • This method can be used for primitives whose output depends on the input at time i as well as at previous times. In the case of a multiplier or comparator for example, the output just depends on the current input and therefore this simplifies learning.
  • the bandpass filter frequencies are learned from the database by a gradient descent algorithm, even if this is not formally calculable, not allowing 'use a backpropagation type algorithm.
  • the disadvantage of this method is that for each iteration, the entire database must be processed several times, a disadvantage counterbalanced by the use of the mini batch technique.
  • the method is also sensitive to the adjustment of the hyperparameters of the model, at the risk of not converging. The most important are Spectrum Percentage for initializing frequencies and Derivate Percentage For calculating derivatives. The results obtained for this network of primitives are however very good.
  • the first step is the generation of a database using an analog sensor coupled to a recorder installed on site. Several operating modes were recorded to enrich this database and be able to discern between correct operating modes and faults. For this, the database was labeled with the different classes to be identified in the second step.
  • the third step consists of processing the data in analog form to obtain an intermediate data structure also labeled but dependent on the analog circuit for preprocessing. This intermediate data structure makes it possible to train algorithms for the digital portion, for example convolutional neural networks. So in the fourth step the training is carried out and the results of the classification, in particular the ROC curve, are evaluated to modify the parameters of the analog portion and obtain the optimal configuration. These last two steps are iterated until convergence of the system is obtained if it occurs. These different steps are detailed below.
  • Step 1 Generating the database
  • the first step consists of recovering data from the corresponding sensors for the detection of the desired events. This step is the most important since the reliability of the network of primitives depends mainly on the richness of the database on which the learning is carried out.
  • a pressure sensor was used to measure the behaviors of an oil installation with and without defects. So the goal is to be able to identify these behaviors and notify the case of defects found.
  • the data in this case is one-dimensional, the pressure is recorded over time. This data is saved in a predefined format so that it can be labeled in the next step.
  • Step 2 Labeling the Database After obtaining a database, you must label it. In fig. 15, three examples of the labeled raw data from the pressure sensor are shown. It is important that the data is labeled at the precise times when the events occur because they are processed in analog form and not directly with a convolutional neural network (which takes the entire sample as input).
  • Step 3 Analog processing and learning.
  • a network of primitives is predefined for analog processing which leads to obtaining the intermediate database.
  • This network of primitives is, in this example, illustrated in fig. 16.
  • the analog primitives are defined and connected together according to the characteristics of the database, knowing that several sensors can be used and processed in parallel.
  • Trigger nodes can be defined to wake up the digital portion and perform an analysis on the analog data at a time when an interesting phenomenon is suspected to be occurring.
  • the simplified analog stage of the implemented primitive network is shown in fig. 18.
  • This stage of the primitive array wakes up (activates) the digital stage of the primitive array at each rising edge of the comparator output and triggers an analysis to confirm whether it is a true positive.
  • a trigger node and tensor generation node are defined.
  • the complete primitive network used is shown in fig. 19, this diagram has four parallel channels independent of the main channel responsible for triggering from a transient. These four channels include a bandpass filter and a peak detector which are used to continuously measure the energy in the different frequency bands.
  • the raw signal is acquired at 100 [Hz] for a defined time (here one second) and a second acquisition of the raw signal is performed at 1 [KHz] for 0.1 second (one-tenth of second) offset by two (2) seconds after the trigger to measure the noise level.
  • the digital stage is responsible for making the acquisitions but remains in deep sleep most of the time. Only the ultra-low power analog part of the primitive network will remain in "always on” mode.
  • the four bandpass filters of this stage make it possible to store information on the past to enrich the analysis carried out on the digital stage with the frequency distribution corresponding to moments located before the triggering.
  • These four energy level outputs on the different bands are sampled a second time with a predefined delay to have comparison data on the evolution of the frequency composition of the signal around the trigger. These are (important) indicators on the signal to be taken into account for the subsequent analysis.
  • the information of the raw signal allows the detection of shocks and the spectral information of the energy levels on the four frequency bands after the event allows the frequency characterization of the signal before and during the phenomenon to be analyzed, a much like an FFT would do (but without the need to carry out such an energetically expensive FFT digitally).
  • the combination of these two pieces of information delivers a tensor: a frequency and time signature of the event to be analyzed.
  • the weights of the analog stage are learned by iterations after joint optimization of the digital stage.
  • Step 4 Digital processing and learning.
  • the digital stage of the primitive network learns from the intermediate data structure generated by the analog stage and can take the form of an expert system, a classical shallow neural network as shown in fig. 20 or a convolutional neural network as shown in fig. 21.
  • the digital algorithm to be implemented essentially depends on the difficulty of the problem to be solved and the targeted energy consumption.
  • Step 5 System evaluation.
  • the system is evaluated and learned from indicators on detection rates (true positives TP, false positives FP, true negatives TN and false negatives FN), and therefore based on the initial labeling of the data for learning. These indicators allow the coefficients of the analog stage to be adjusted during training as well as in real time during dynamics. For example the comparator detection threshold: when there is a very noisy signal, many false positives are generated so the comparator threshold can be increased to reduce the number of false positives when there is noise.
  • Step 6 Integration and deployment.
  • the final step consists of loading the learned parameters and models to the analog/digital primitive network in production mode.
  • the advantage of such an implementation consists on the one hand of having a circuit that consumes little energy, is efficient, whose parameters can be updated according to the evolution of the signals for example, and what is more can be used in other use cases than that described in the present example.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Logic Circuits (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

La divulgation se rapporte à un procédé de détermination de paramètres d'implémentation d'un circuit électronique configuré pour effectuer le traitement d'un signal d'entrée, le circuit électronique comprenant une portion analogique comprenant une pluralité de primitives analogiques paramétrables et une portion numérique comprenant une pluralité de primitives numériques paramétrables, la portion numérique étant couplée à la portion analogique par l'intermédiaire d'au moins un convertisseur analogique numérique et/ou d'u moins un comparateur analogique avec ou sans hystérésis, procédé caractérisé en ce qu'il comprend une phase d'apprentissage conjointe des paramètres de la pluralité de primitives analogiques paramétrables et des paramètres de la pluralité de primitives numériques paramétrables.

Description

DESCRIPTION
Titre : Dispositif de traitement de données par voie d'apprentissage, procédé, programme et système correspondant Domaine technique
La divulgation se rapporte au domaine du traitement de signal. Plus particulièrement, l'invention se rapporte au domaine du traitement de signal dans un système contraint, particulièrement dans un système contraint en termes de consommation d'énergie.
Technique antérieure
Ces dernières années ont connu, la révolution de l'Internet des Objets (loT) et celle du traitement des données à distance (le cloud computing). Le nombre de dispositifs loT ne cesse de croître annuellement et il est prévu qu'au moins 30 milliards de dispositifs sont opérationnels dans le monde entier d'ici quelques années. La plupart de ces systèmes transmettent des données brutes pour les traiter à distance. Souvent, les méthodes de traitement à distance utilisent des algorithmes d'intelligence Artificielle (IA) coûteux en termes d'énergie : par exemple le réseau neuronal convolutif (CNN) qui peut avoir des dizaines de milliers des neurones et quelques millions de connections. Étant donné que la majeure partie de la consommation d'énergie est consacrée à la transmission des données (et non pour le traitement), le schéma global de gestion et de traitement des donnés à distance est très gourmand en énergie.
Il est donc nécessaire d'augmenter le niveau sémantique de l'information obtenue localement au sein des dispositif loT. Par exemple, dans la plupart des cas de surveillance thermo-industrielle, la température peut être normalement constante : il n'est pas nécessaire de transférer ces données de bas niveau car les événements pertinents ne se produisent que lorsqu'il y a un changement significatif dans la mesure. La détection de cet événement devrait être réalisée localement, en augmentant le niveau sémantique du signal à transférer à distance. Dans ce cas, une alerte peut être envoyée à distance, ce qui évite de devoir transférer des données brutes de bas niveau. Cette nécessité de traitement local soulève cependant un problème : comment mettre en oeuvre des traitement complexes et notamment des traitements à base d'intelligence artificielle dans les architectures embarquées de type loT ? En effet, le fait d'éviter de transférer en permanence toutes les données des capteurs implique leur traitement local. Cela est nécessaire et a été souligné dans le texte de la commission européenne sur les orientations en matière de communication et de numérique, définissant un objectif de 80% du traitement des données effectué localement.
Cependant, cela soulève de multiples problèmes techniques : le traitement local des données doit être adapté au matériel disponible dans les systèmes embarqués, notamment en termes de mémoire et de puissance de calcul. D'ailleurs, l'introduction du traitement du signal (ou de l'intelligence artificielle) augmente la consommation électrique moyenne, surtout si des algorithmes avancés comme l'apprentissage profond (deep learning) sont utilisés, même si elle réduit également la consommation électrique due à la transmission des données. Étant donné que la capacité des batteries est limitée dans de nombreux produits industriels ou de la vie quotidienne, l'utilisation d'une partie importante de l'énergie pour les tâches d'intelligence artificielle entraîne également une réduction de la durée de vie du produit dans les applications non rechargeables, ou la nécessité de recharger la batterie ou d'utiliser une alimentation externe.
Il existe ainsi un besoin d'une solution pour disposer de dispositifs autonomes permettant de traiter des signaux localement, avec une réduction significative de la consommation d'énergie de tels dispositifs. La technique divulguée vient améliorer la situation.
Résumé de l'invention
La technique divulguée a été conçue en conservant ces problématiques de l'art antérieur à l'esprit. La technique proposée permet l'implantation d'une intelligence artificielle embarquée avec un cout énergétique minimal. Une technique de traitement mixte (analogique-numérique) est utilisée pour remplacer des solutions de type réseau de neurones convolutifs, tout en apprenant les paramètres du modèle global, ces paramètres comprenant des paramètres analogiques et des paramètres numériques, à partir d'une base de données étiquetée. Cette architecture mixte est nommée réseau de neurones de primitives (ou Primitive Neural Network (PNN) en anglais).
Plus particulièrement, la divulgation se rapporte à un procédé de détermination de paramètres d'implémentation d'un circuit électronique destiné à être mise en oeuvre par un ordinateur ou un processeur de données, ledit circuit électronique étant configuré pour effectuer le traitement d'un signal d'entrée, le circuit électronique comprenant une portion analogique comprenant une pluralité de primitives analogiques paramétrables et une portion numérique comprenant une pluralité de primitives numériques paramétrables, les paramètres d'implémentation du circuit électronique comportant des paramètres de la pluralité de primitives analogiques paramétrables et des paramètres de la pluralité de primitives numériques paramétrables, la portion numérique étant couplée à la portion analogique par l'intermédiaire d'au moins un convertisseur analogique numérique et/ou au moins un comparateur analogique avec ou sans hystérésis. Un tel procédé comprend une phase d'apprentissage desdits paramètres de la pluralité de primitives analogiques paramétrables et desdits paramètres de la pluralité de primitives numériques paramétrables, ladite phase d'apprentissage étant conjointe aux paramètres de la pluralité de primitives analogiques paramétrables et aux paramètres de la pluralité de primitives numériques paramétrables.
Ainsi, il est possible de paramétrer l'ensemble du circuit électronique avec des valeurs ayant fait l'objet d'un apprentissage préalable, et donc d'adapter le circuit électronique au besoin, notamment en termes de réduction d'énergie consommée.
Selon une caractéristique particulière, la phase d'apprentissage comprend au moins une itération des étapes suivantes, effectuées à l'aide d'une base de données d'apprentissage de signaux étiquetés : chargement de paramètres courants de la pluralité de primitives analogiques paramétrables et de la pluralité de primitives numériques paramétrables ; extraction, par la portion analogique, en fonction des paramètres courants de la pluralité de primitives analogiques, d'informations temporelles issues des signaux d'entrée et/ou d'informations fréquentielles issues de ces mêmes signaux. Ces dernières peuvent correspondre à une pluralité de moments des signaux de la base de données d'apprentissage ; construction à l'aide des informations temporelles et/ou fréquentielles préalablement extraites, d'une structure de données intermédiaire. Cette structure de données intermédiaire peut être formée par la juxtaposition des informations extraites par la portion analogique à partir des signaux de la base de données d'apprentissage ; cette structure est par exemple un tenseur, classification, par la portion numérique, en fonction des paramètres courants de la pluralité de primitives numériques, et à partir de la structure de données intermédiaire, de la pluralité d'évènements détectés, délivrant une pluralité de portions de signaux classés ; calcul, à partir de la pluralité de portions de signaux classés, d'un taux d'erreur (Err) de classification ; correction des paramètres courants de la pluralité de primitives analogiques paramétrables et de la pluralité de primitives numériques paramétrables en fonction du taux d'erreur (Err).
Selon une caractéristique particulière, la phase d'apprentissage prend fin lorsque le taux d'erreur (Err) de classification est inférieur à un seuil prédéterminé et/ou lorsqu'une consommation électrique cible, en fonctionnement opérationnel, dudit circuit électronique est atteinte.
Selon une caractéristique particulière, l'étape de correction des paramètres courants de la pluralité de primitives analogiques paramétrables et de la pluralité de primitives numériques paramétrables comprend au moins une itération de la séquence conjointe d'optimisation suivante : optimisation de la portion numérique par rétropropagation, puis optimisation de la portion analogique par des méthodes de simulation numérique itératives.
Selon une caractéristique particulière, la portion numérique comprend au moins un réseau de neurones adapté pour classifier les signaux reçus par l'intermédiaire de convertisseurs analogiques/numériques et en ce que les paramètres de la pluralité de primitives numériques paramétrables comprennent au moins des poids et des biais dudit réseau de neurones.
Selon une caractéristique particulière, la portion numérique est, par défaut, en veille.
Selon une caractéristique particulière, la portion analogique comprend au moins un filtre passe bande, ledit filtre passe bande permettant d'identifier des fréquences d'intérêt et en ce que les paramètres de la pluralité de primitives analogiques paramétrables comprennent au moins des fréquences de coupure dudit filtre passe-bande et en ce que la portion analogique comprend une pluralité de noeuds de déclenchement en vue de réveiller ladite portion numérique sur la base d'une identification desdites fréquences d'intérêts.
Selon un autre aspect, la divulgation se rapporte également à un circuit électronique configuré pour effectuer le traitement d'un signal d'entrée selon le procédé de détermination de paramètres d'implémentation dudit circuit électronique, ledit circuit électronique comprenant une portion analogique et une portion numérique, la portion numérique étant couplée à la portion analogique par l'intermédiaire d' un ou plusieurs convertisseurs analogique numérique, et/ou de comparateurs analogiques avec ou sans hystérésis. Dans ce circuit électronique la portion analogique comprend une pluralité de primitives analogiques paramétrés selon un premier ensemble de paramètres et en ce que la portion numérique comprend une pluralité de primitives numériques paramétrés selon un deuxième ensemble de paramètres, ledit premier et ledit deuxième ensemble de paramètres appartenant aux paramètres d'implémentation dudit circuit électronique, ledit premier et ledit deuxième ensemble ayant fait l'objet d'un apprentissage conjoint selon la méthode préalablement présentée.
Selon une caractéristique particulière, la pluralité de primitives analogiques paramétrables comprend des primitives appartenant au groupe comprenant : filtres passifs et/ou actifs, détecteurs d'enveloppe, multiplieurs, montages à amplificateurs opérationnels, diodes, convolutions analogiques, intégrateurs, dérivateurs, retard.
Selon une caractéristique particulière, la portion analogique du circuit électronique est divisée en une première partie, dite de prétraitement du signal et une deuxième partie dite d'extraction de moment, la sortie de la partie de prétraitement du signal étant connectée à l'entrée de la partie d'extraction de moments, la sortie de la partie d'extraction de moments étant directement connectée à l'aide d'au moins un convertisseur analogique/numérique et/ou d'un comparateur analogique.
Selon un autre aspect, la divulgation se rapporte également à l'utilisation d'un circuit électronique configuré pour effectuer le traitement d'un signal d'entrée selon un procédé de détermination de paramètres d'implémentation de ce circuit électronique, ledit circuit électronique comprenant une portion analogique et une portion numérique, la portion numérique étant couplée à la portion analogique par l'intermédiaire d'au moins un convertisseur analogique numérique ou d'au moins un comparateur analogique, la portion analogique comprenant une pluralité de primitives analogiques paramétrables selon un premier ensemble de paramètres et la portion numérique comprenant une pluralité de primitives numériques paramétrables selon un deuxième ensemble de paramètres. Cette utilisation est remarquable en ce qu'elle comprend une étape de chargement du premier et du deuxième ensemble de paramètres ayant fait l'objet d'un apprentissage conjoint selon la méthode préalablement présentée.
Selon une implémentation préférée, l'apprentissage peut être contrôlée/exécuté par un programme, mis en oeuvre au sein d'un processeur, pour contrôler notamment la convergence des paramètres d'apprentissage. Les différentes étapes des procédés selon la présente divulgation sont mises en oeuvre par un ou plusieurs logiciels ou programmes d'ordinateur, comprenant des instructions logicielles destinées à être exécutées par un processeur de données d'un terminal d'exécution selon la présente technique et étant conçu pour commander l'exécution des différentes étapes des procédés, mis en oeuvre au niveau d'un terminal de communication, d'un serveur distant et/ou d'une chaîne de blocs, dans le cadre d'une répartition des traitements à effectuer et déterminés par un code source scripté ou un code compilé.
En conséquence, la présente technique vise aussi des programmes, susceptibles d'être exécutés par un ordinateur ou par un processeur de données, ces programmes comportant des instructions pour commander l'exécution des étapes des procédés tel que mentionnés ci-dessus. Un programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.
La présente technique vise aussi un support d'informations lisible par un processeur de données, et comportant des instructions d'un programme tel que mentionné ci-dessus.
Le support d'informations peut être n'importe quelle entité ou terminal capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple un support mobile (carte mémoire) ou un disque dur ou un SSD.
D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon la présente technique peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.
Selon un mode de réalisation, la présente technique est mise en oeuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme "module" peut correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et logiciels.
Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous- programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci- dessous pour le module concerné. Un tel composant logiciel est exécuté par un processeur de données d'une entité physique (terminal, serveur, passerelle, set-top-box, routeur, etc.) et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc.).
De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en oeuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci- dessous pour le module concerné. Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré, une carte à puce, une carte à mémoire, une carte électronique pour l'exécution d'un micrologiciel (firmware), etc.
Chaque composante du système précédemment décrit met bien entendu en oeuvre ses propres modules logiciels.
Les différents modes de réalisation mentionnés ci-dessus sont combinables entre eux pour la mise en oeuvre de la présente technique.
Brève description des dessins D'autres buts, caractéristiques et avantages de la divulgation apparaîtront plus clairement à la lecture de la description suivante, donnée à titre de simple exemple illustratif, et non limitatif, en relation avec les figures, parmi lesquelles :
[fig. 1] représente l'architecture générale du réseau selon la présente divulgation ; ;
[fig. 2] illustre les différentes primitives numériques et analogiques la divulgation ;
[fig. 3] est un exemple de structure de la portion analogique du réseau selon la divulgation ;
[fig. 4] illustre un signal unidimensionnel avant étiquetage manuel ;
[fig. 5] représente le signal unidimensionnel de la figure 4 après étiquetage manuel ;
[fig. 6] illustre l'entraînement du réseau avec les données étiquetées d'entrée et les données intermédiaires générés par la portion analogique ;
[fig. 7] illustre l'entraînement du réseau avec les données étiquetées d'entrée et les sous- données générés par la portion analogique. Optimisation des paramètres de la portion analogique pour commencer à filtrer les données qui ne font pas partie des cibles ;
[fig. 8] illustre une primitive analogique paramétrable
[fig. 9] illustre une primitive analogique paramétrable ;
[fig. 10] Illustre un circuit selon la présente divulgation ;
[fig. 11] illustre l'architecture d'un microcontrôleur selon la présente divulgation ;
[fig. 12] illustre une portion de la base de données de signaux d'entrée et des labels correspondants ;
[fig. 13] illustre un réseau comprenant trois primitives ;
[fig. 14] illustre la convergence vers les fréquences cibles ;
[fig. 15] présente trois exemples des données brutes étiquetées issues du capteur de pression ;
[fig. 16] présente une interface de construction du réseau de primitives ;
[fig. 17] présente les sorties de plusieurs primitives ;
[fig. 18] illustre un premier réseau de primitives ;
[fig. 19] illustre un réseau de primitives complet ;
[fig. 20] illustre un réseau de neurones trois couches, connectable au réseau de primitives complet de la figure 19 ;
[fig. 21] illustre un réseau de neurones trois couches, connectable au réseau de primitives complet de la figure 19 ;
[fig. 22] Illustre la méthode d'apprentissage des paramètres selon un exemple.
Description détaillée
Rappels des principes
De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents exemples de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des exemples de réalisation décrits ont été représentés et sont détaillés. En particulier, des circuits de génération d'un signal et de commande de fréquence ou d'intensité de ce signal, ainsi que des circuits de commande et de réception de valeurs fournies par des capteurs, ne sont pas décrits en détail, les exemples de réalisation décrits étant compatibles avec de tels circuits usuels. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés ou couplés entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés ou couplés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près.
Comme explicité précédemment, la divulgation porte, dans un premier aspect, sur un dispositif comprenant un circuit électronique qui comprend une portion analogique et une portion numérique. La portion analogique est remarquable en ce qu'elle comprend des fonctionnalités paramétrables (FPAA, FPMA). Cette portion analogique comprend une pluralité de fonctionnalités (filtres notamment) potentiellement utilisables, nommées « features » ou « primitives ». Ces fonctionnalités sont indépendamment activables et paramétrables de sorte que la consommation électrique de celles-ci est limitée aux usages qui en sont fait. Le nombre potentiel de fonctionnalités paramétrables implémentables dépend essentiellement de la complexité de la portion analogique. Le circuit comprend également une portion numérique. Cette potion numérique est interfacée avec la portion analogique par l'intermédiaire de convertisseurs analogiques/numériques. La portion numérique, pour sa part comprend notamment un circuit électronique de prise de décision (de type réseau de neurones artificiels ou système expert par exemple) numériquement implanté. Lorsqu'il s'agit d'un réseau de neurones, il comprend typiquement quelques centaines ou plus de neurones à en fonction de l'application visée et de la consommation électrique visée.
Dans un tel circuit électronique, selon la présente, les signaux d'entrées sont donc traités à l'aide d'une architecture mixte dans laquelle la portion analogique est mise en oeuvre pour effectuer une première série de traitement de données (traitements des signaux de fréquence plus élevée, extraction de moments, etc.) et ces données obtenues à partir des signaux analogiques d'entrée sont fournies au réseau de neurones, sur la portion numérique pour traitement à des fréquences plus faible et l'obtention des résultats (par exemple des classifications des signaux d'entrée). Cette architecture permet de répondre aux besoins de limitations de consommation d'énergie. Une caractéristique importante de la divulgation se rapporte à la configuration générale du circuit électronique proposé : l'apprentissage des paramètres analogiques et numérique d'un tel circuit est réalisé globalement et comprend tout à la fois l'apprentissage des paramètres du réseau de neurones numérique et, en même temps, l'apprentissage des paramètres des primitives de la portion analogique. Ainsi, le circuit est utilisable dans de nombreuses situations et peut disposer d'une unique certification, ce qui en réduit également les coûts de mise en oeuvre.
En d'autres termes, le réseau de primitives constitue une architecture électronique mixte (analogique et numérique) destinée à implanter de l'intelligence artificielle embarquée pour la prise de décision ou l'identification de patterns (schémas), en ciblant des applications ultra basse consommation avec une optimisation conjointe de la consommation énergétique et de la précision de classification, avec les particularités suivantes :
La technique proposée se distingue des autres architectures classiques pour l'IA embarquée comprenant un circuit frontal analogique figé et une portion numérique implantant des réseaux de neurones : la technique proposée permet un apprentissage conjoint de bout en bout des paramètres des parties analogique et numérique (Fig. 1).
La technique proposée permet d'obtenir des systèmes ultra basse consommation et des réseaux de taille limitée.
L'architecture est découpée en deux portions distinctes (analogique/numérique) (Figure 1) correspondant à des fréquences de signaux très différentes de manière à optimiser la consommation d'énergie. Les traitements haute fréquence sont réalisés en analogique, entraînant un gain d'un facteur 100 en puissance par rapport au numérique, alors que les traitements basse-fréquence sont réalisés en numérique. Le passage de l'un à l'autre se fait grâce à un ou plusieurs convertisseurs analogique numérique utilisant des données issues d'extracteurs de moment (ceux-ci permettent de réduire drastiquement la fréquence utile du signal (par exemple filtres, moyenneurs, détecteur de crête)), un ou plusieurs convertisseurs analogique numérique permettant d'acquérir des portions de taille limitée des signaux haute fréquence d'entrée ou traités par le réseau analogique, l'utilisation de fronts montant ou descendants numériques issus de comparateurs avec ou sans hystérésis analogiques.
La portion analogique est composée de primitives analogiques : filtres passifs et/ou actifs, détecteurs d'enveloppe, multiplieurs, montages à amplificateurs opérationnels (additionneurs, soustracteurs, déphaseurs...), diodes, convolutions analogiques (ondelettes par exemple). L'implantation concrète s'apparente à un FPAA, avec une structure couplant successivement point d'entrée analogique programmable se terminant par des extracteurs de moment, convertisseurs analogique/numérique (ADC), comparateurs et processeur numérique optimisé pour les calculs neuronaux.
L'architecture apporte de la diversité de modèle au paradigme des réseaux de neurones/CNN classiques : l'apprentissage peut être réalisé sur autre chose que des neurones (Figure 2 : "E" : entrée, "PA1" à "PA7" (primitives analogiques), "PD1" à "PD7" (primitives numériques) et "S" (sortie), et en particulier sur des primitives n'étant pas modélisables facilement par des neurones, par exemple un multiplieur, un filtre, un corrélateur entre signaux ou un retard temporel ("PA1" à "PA7").
Le critère d'évaluation des apprentissages dépend de la qualité de classification, mais également de la puissance consommée par le réseau et de la complexité du réseau au niveau électronique. La manière dont on apprend est particulière en raison de la présence d'opérateurs d'extraction de moment qui cassent ou limitent la possibilité de faire de la rétropropagation de gradient. La technique d'optimisation est donc différente de celle des apprentissages classiques : on itère un processus d'apprentissage optimisant la portion analogique par descente de gradient, après avoir au préalable optimisé le réseau numérique à chaque étape du calcul du gradient analogique. Pour cela à chaque étape de l'optimisation :
On fixe la portion analogique du réseau. Par exemple le circuit de la figure 13 ;
À partir d'un ensemble de données étiqueté (une fois pour toutes), on génère un ensemble de données étiquetées d'entrainement (training set) intermédiaire en sortie de la partie analogique et de ADC/comparateur (et donc après les opérations d'extraction de moment), et ce de manière automatique.
Cet ensemble de données d'entrainement intermédiaire, dépendant des opérations analogiques, est utilisé pour l'apprentissage classique du réseau de la portion numérique. Une fois cet apprentissage de la portion numérique effectué, on réitère le processus en faisant varier les paramètres de la portion analogique, de manière à être capable de calculer un gradient en fonction des paramètres de la portion analogique de manière à les optimiser. L'optimisation globale analogique/numérique est potentiellement coûteuse algorithmiquement, mais elle reste calculable compte-tenu du fait que l'on cible des applications implantées dans des architectures de capacités limitées. De plus, cette optimisation étant effectuée « hors ligne » les ressources de calcul ne posent pas de difficultés à ce stade.
De plus, grâce à cette architecture, il est possible, en apprentissage, de déterminer l'ordre des primitives de manière automatique (dans la mesure où les réseaux sont finalement de taille et donc de combinatoire limitées).
Description générale de la méthodologie d'apprentissage
L'apprentissage ainsi que le traitement du réseau de primitives est globalement présenté dans cette section, en relation avec la figure 22. Dans cet exemple, le procédé de détermination de paramètres d'implémentation d'un circuit électronique, la phase d'apprentissage comprend au moins une itération des étapes suivantes, effectuées à l'aide d'une base de données d'apprentissage de signaux étiquetés :
Chargement (Al) de paramètres courants (PC) de la pluralité de primitives analogiques paramétrables et de la pluralité de primitives numériques paramétrables ;
Extraction (A2), par la portion analogique, en fonction des paramètres courants de la pluralité de primitives analogiques, d'informations temporelles (IT) issues des signaux d'entrée (Sig.E) et/ou d'informations fréquentielles (IF) issues de ces mêmes signaux ; ces dernières peuvent correspondre à une pluralité de moments des signaux de la base de données d'apprentissage ;
Construction (A3), à l'aide des informations temporelles et/ou fréquentielles préalablement extraites, d'une structure de données intermédiaire (SDI), formée par exemple par la juxtaposition des informations extraites par la portion analogique à partir des signaux de la base de données d'apprentissage ; la structure peut être un tenseur.
Classification (A4), par la portion numérique, en fonction des paramètres courants de la pluralité de primitives numériques (PC), et à partir de la structure de données intermédiaire (SDI), de la pluralité d'évènements détectés par la partie analogique, délivrant une pluralité de portions de signaux classés (PSC) ;
Calcul (A5), à partir de la pluralité de portions de signaux classés, d'un taux d'erreur (Err) de classification ;
Correction (A6) des paramètres courants de la pluralité de primitives analogiques paramétrables et de la pluralité de primitives numériques paramétrables en fonction du taux d'erreur (Err). L'apprentissage présenté en relation avec la figure 22 est exemplifié par les explications suivantes. Un point départ est un signal unidimensionnel comme montre la fig. 4. Le signal d'entrée peut être également multi-canaux. Pour la présente description un signal monocanal est utilisé. En premier lieu, ce signal est étiqueté manuellement comme montre la fig. 5. Les étiquettes définissent les cibles à détecter dans le signal d'entrée. Cette opération d'étiquetage manuel, classique, est effectuée pour l'ensemble des signaux constituant la base de données d'apprentissage. Une fois que la base de données est étiquetée, l'entraînement du réseau de primitives débute.
Les données étiquetées sont fournies en entrée du réseau de primitives et la portion analogique effectue la première étape du traitement pour l'extraction des moments des signaux. Cette portion analogique génère également une structure de données intermédiaire qui constitue l'entrée de la portion numérique comme montre la fig. 6. Cette structure de données intermédiaire est étiquetée automatiquement selon les paramètres courants des primitives analogiques. Cependant, compte tenu du fait qu'elle n'est pas (encore) optimisée, elle peut conduire à extraire des informations ayant une pertinence non optimale. Ensuite la portion numérique effectue une classification des données extraites par la portion analogique et, en apprentissage, il est donc possible de calculer l'erreur du système (du circuit dans son ensemble) à partir des vraies et fausses détections selon les étiquettes de la base de données de départ.
Ayant calculé l'erreur (c'est-à-dire le nombre de détections erronées par rapport au nombre de détection à affecter), une méthode optimisée de rétropropagation est utilisée pour ajuster les paramètres (poids et bias) des portions analogique et numérique à l'aide de l'algorithme de rétropropagation de gradient (rétropropagation de gradient). Dans cette situation, il est donc nécessaire de calculer la dérivée de l'erreur par rapport à chacun des paramètres de toutes les primitives, comme dans le cas d'un réseau de neurone classique, pour pouvoir ajuster ces paramètres de toutes les primitives à l'aide d'un hyperparamètre de taux d'apprentissage.
Ce cycle représente une itération (une epoch) de l'apprentissage : génération d'un ensemble d'entrainement (training set) auto-étiqueté en sortie de la partie analogique, puis optimisation de la partie numérique sur ce training set auto-étiqueté, puis optimisation de la partie analogique pour minimiser l'erreur globale. Dans l'itération suivante, les paramètres des parties analogique et numérique ont déjà été ajustés une fois donc l'erreur commence à diminuer dès la deuxième itération. Par conséquent la première étape du traitement analogique de la deuxième itération filtre déjà des évènements qui ne font pas partie de la cible comme exemplifié à la fig. 7.
Cette méthode d'apprentissage permet l'optimisation de l'ensemble du réseau de primitives (portion analogique et portion numérique) et permet aussi de calculer un indice de précision de détection versus consommation énergétique puisque selon la complexité du réseau de primitives, la précision de détection mais également sa consommation énergétique sont augmentées.
Ainsi, les primitives du réseau de primitives sont constituées de circuits et d'opérateurs dont les paramètres sont appris lors de l'entraînement à partir d'une base de données étiquetée. Parmi les primitives existantes, on exemplifie les primitives suivantes :
Détecteur de pic analogique : cette primitive peut être implémenté avec une diode, une résistance et un condensateur comme montre la fig. 8 (gauche). Cette primitive est clé pour la détection des transitoires comme montre la fig. 8 (droite). Celle-ci peut être également utilisé après un filtre passe bande pour détecter le niveau d'énergie dans la bande de fréquences. Le paramètre à apprendre lors de la phase d'apprentissage est la constante : Tau (RiCi).
Filtres analogiques : ces primitives peuvent être implémentés avec un ou plusieurs amplificateurs opérationnels, résistances et condensateurs comme montre la fig. 9 (gauche) et la fig. 10 (gauche). Elles permettent de sélectionner les bandes de fréquences d'intérêt, comme le montre la fig. 9 (droite) et la fig. 10 (droite). Elles peuvent également être utilisé pour calculer la valeur moyenne d'un signal, dans le cas d'un filtre passe-bas. Les paramètres à apprendre lors de l'entraînement sont les fréquences de coupure, dans les fig. 9 et 10 une primitive filtre passe-bas et une primitive filtre passe- haut sont présentés, où les fréquences de coupure sont définies par R2C2et R3C3 respectivement.
Corrélateur analogique par rapport à un pattern paramétrable (préétabli ou pouvant évoluer au cours du temps) tel qu'une ondelette ou entre différents canaux de signaux d'entrée.
Retard analogique : permet de décaler le signal d'entrée temporellement avec un retard constant mais réglable dans une bande de fréquence limitée.
Intégrateur : cette primitive permet d'intégrer le signal d'entrée et d'amplifier le résultat. Dérivateur : cette primitive permet de dériver le signal d'entrée et d'amplifier le résultat.
Filtres numériques : ces primitives permettent, de la même manière que les filtres analogiques, de sélectionner la bande de fréquences désirée. Pourtant, elles sont implémentées de forme numérique, et cela leurs rendre intéressantes pour traiter des signaux de faible fréquence (qui sont peu consommateur d'énergie en numérique).
Neurone numérique : cette primitive est le neurone classique. Elle peut être utilisée toute seule ou groupée sur un réseau neuronal dans les derniers couches d'un réseau de primitives. Les paramètres à apprendre sont classiquement les poids et biais.
Transformée de Fourier Rapide (FFT) numérique : cette primitive permet d'extraire les caractéristiques fréquentielles d'un signal à partir de leur évolution temporelle. Machine à état : implante des mécanismes de traitement de signal séquentiels, ce qui permet par exemple d'implanter des règles expertes pouvant être paramétrées.
Exemple de mise en œuvre du réseau de primitive L'architecture réseau de primitives couple primitives numériques et analogiques. La partie numérique peut être implémentée sous la forme d'un FPGA (field-programmable gate array), dans un microcontrôleur comme illustré à la fig. 11 ou dans un circuit silicium dédié. L'architecture de la partie analogique du réseau de primitives nécessite une forme de FPAA (Field programmable analog array) mixte orienté ultra basse consommation. Le FPAA est l'équivalent analogique du FPGA. Contrairement aux FPGA, les circuits FPAA contiennent un nombre plus restreint de blocs configurables CAB (« Configurable Analog Blocks »).
L'utilisation de primitives analogiques et numériques permet d'envisager différents types de traitements de signaux ayant un spectre fréquentiel très différent. Les traitements analogiques ciblent principalement les signaux à bande passante élevée car le gain potentiel en consommation énergétique est alors de deux ordres de grandeurs (facteur 100), alors que les traitements numériques, plus versatiles, ciblent quant à eux les opérations plus classiques de classification à l'aide de réseaux de neurones. Afin d'optimiser encore plus la consommation, parmi les primitives analogiques, plusieurs amplificateurs opérationnels pourront être implantés avec des produits « gain-bande » différents et sont utilisés selon la fréquence des signaux à traiter. Celle-ci est représentée dans la fig. 11 avec trois types des primitives analogiques et numériques (Analog Primitive/Digital Primitive). Toutes ces primitives peuvent être éteintes pour minimiser la consommation d'énergie.
En d'autres termes, on dispose à nouveau d'une architecture mixte, analogique/numérique, qui n'est ni tout à fait un FPGA, ni tout à fait un FPAA. Cette architecture permet de tout à la fois de configurer les primitives numériques et les primitives analogiques, en y chargeant les paramètres appris lors de l'apprentissage. Ces paramètres sont fournis à chaque bloc configurable lors d'une phase de configuration postérieure à la phase d'apprentissage, telle qu'elle a été présentée précédemment.
Description d'un exemple de réalisation de la méthode d'apprentissage
Comme exposé précédemment, la méthode d'apprentissage des paramètres d'un tel réseau de primitives est modifiée par rapport aux méthodes d'apprentissage classiques mises en œuvre pour les réseaux de neurones numériques. Tel qu'exposé de manière générale, cette méthode comprend une double optimisation : optimisation des paramètres numériques et optimisation des paramètres analogiques. On présente ci-après un exemple de réalisation d'une telle méthode d'apprentissage mixte. Plus particulièrement, on se focalise sur la méthodologie d'ajustement des paramètres au fur et à mesure des itérations effectuées. Cette méthodologie est inspirée de l'algorithme de rétropropagation classique. Cependant, lorsque de primitives temporelles (tels que les filtres) sont utilisées, il n'est plus possible d'appliquer la dérivée de la sortie par rapport aux paramètres ou poids à apprendre pour minimiser l'erreur. C'est pour cette raison notamment qu'une nouvelle méthode d'apprentissage est proposée. Cette nouvelle méthode a été implémentée en simulation pour l'apprentissage de paramètres à partir d'une base de données étiquetée, l'objectif étant d'apprendre automatiquement les paramètres des primitives analogiques, conjointement avec les paramètres numériques, à partir d'un étiquetage initial unique. Dans cet exemple on ne présente donc que l'apprentissage d'un étage analogique simplifié. L'apprentissage numérique n'est pas illustré ici, celui-ci étant classique par ailleurs).
En premier lieu, comme indiqué précédemment, une base de données a été générée. Elle est composée par un grand nombre d'échantillons, chacun comprenant chacun un signal sinusoïdal avec une amplitude constante égal à IV mais dont les fréquences varient de 10 à 180Hz. La fréquence d'échantillonnage est quant à elle fixée à 400Hz. La base de données est partiellement illustrée dans la fig. 12 (base de données des signaux d'entrée et label correspondant). Comme illustré, différentes étiquettes ont été utilisés pour tester la convergence du modèle. Elles ont été générées par un algorithme. Comme on peut le constater, cette base de données décrit un filtre passe-bande centré en W1+W] avec une longueur de bande égale à | wj - wi | .
Postérieurement à la génération de la base de données, une structure réseau de primitives a été proposée pour l'apprentissage des paramètres des primitives. Ce réseau de primitives est présenté dans la fig. 13 et est composé par trois primitives :
Un filtre passe bande : ce filtre est composé par un filtra passe-haut couplé à un filtre passe-bas. Leurs fréquences de coupures sont fcHpret fCLPF, qui doivent être apprises pendant l'entraînement ;
Un détecteur de crêtes : cette primitive est composée par une diode et un filtre passe-bas pour maintenir le niveau de tension pendant une période de temps défini par ij, qui doit être appris pendant l'entraînement mais qui, dans un premier temps, est fixé pour décrire plus simplement la méthode d'apprentissage ;
Un comparateur : cette primitive génère un niveau logique haut quand la tension dans l'entrée positive correspondant au niveau de tension en sortie du détecteur de crêtes (et donc à l'énergie du signal dans la bande passante du filtre) est supérieure à celui de l'entrée négative (référence fixée dans un premier temps, mais optimisée par apprentissage) Sur la base de cette architecture du réseau de primitives, les paramètres sont initialisés comme suit : fcHPF et fdPF sont les deux paramètres à apprendre. À la fin de l'entraînement ils vont converger aux fréquences qui définiront la fréquence centrale du filtre passe bande fo et sa longueur de bande. Par conséquent, la première fréquence est initialisée à : fSampling fcHPF = - - - SpectrumPercentage la seconde fréquence est initialisée à fSampling fcLPF = - - - (1 - SpectrumPercentage)
SpectrumPercentage est un hyperparamètre à définir comme le taux d'apprentissage (learning rate) et dans ce cas il est égal à 0,05. Ce qui rend les valeurs initiales de fcHPFet fCLPF égales à 10 et 190 Hz respectivement, puisque fsampiing est égal à 400 Hz. ij est préfixé pour rendre l'apprentissage plus rapide. Il est égal à 250ms la valeur de la longueur temporelle de chacun des échantillons de la base de données pour pouvoir maintenir le niveau de tension jusqu'à la fin.
Threshold est aussi préfixé pour simplifier l'apprentissage. Il est égal à 0,7V puisque l'amplitude des sinus de la base de données est égale à IV.
La première itération d'apprentissage débute après l'initialisation des paramètres du réseau de primitives. L'objectif des itérations successives est de converger aux fréquences étiquetées dans la base de données, comme illustré en fig. 14. Dans cet entraînement, la dérivé de l'erreur du réseau de primitives après le traitement de la base de données par rapport à chaque fréquence (fCHPF et fCLPF ) doit être calculée. Cette primitive de type filtre passe bande a une sorte de mémoire par rapport à l'entrée à l'instant k. Pour la simulation, les filtres implémentés sont de premier ordre, cette mémoire démontre qu'il faut modifier la méthode d'entraînement pour arriver à être compatible avec les primitives temporelles comme les filtres.
Ainsi, l'apprentissage est réalisé comme suit :
D'abord, chaque échantillon de la base de données est filtré et la sortie du comparateur est comparée à l'étiquetage souhaité (vrai ou fausse détection).
Ensuite, après avoir présenté la base d'apprentissage complète, l'erreur globale du réseau de primitives, ErrorfcHPF-fcLPF est obtenue en comparant les étiquettes et les détections obtenues.
À partir de ce calcul d'erreur, la fréquence de coupure du filtre passe haut est mise à jour en utilisant l'eq. 1. Où DerivatePOrcentage est un hyper paramètre à préfixer comme le taux d'apprentissage. Dans ce cas il est égal à 0,1. fcHPF + Af = fcHPF + fSamPling DerivatePorcentage (1)
Après la mise à jour de la fréquence de coupure du filtre passe-haut, la base de données est de nouveau présentée pour déterminer la nouvelle erreur globale : Erropc + Af - FCLPF et pouvoir calculer la dérivée de cette erreur en fonction de la variation de fcHPF comme montre l'eq. 2 suivante :
AError ErrorfcHPF _fcLPF — ErrorfcHPF + Af_fcLPF AfcHPF fSampling .
2 DerivatePorcentage
Après avoir calculé la première dérivée de l'erreur, fcHPF est remis à sa valeur antérieure et la
Figure imgf000016_0001
même méthode est appliquée pour calculer la dérivée par rapport à fCLPF, de façon d'obtenir
Figure imgf000016_0002
Finalement après calcul de toutes les dérivées, le gradient de l'erreur globale par rapport aux paramètre analogiques est déterminé et permet la mise à jour des fréquences de coupure des filtres avec l'eq. 3 et l'eq. 4. fcHPF = fcHPF + LearningRate.
Figure imgf000016_0003
fcLPF = fcLPF + LearningRate.
Figure imgf000016_0004
Ce cycle représentant une itération est ensuite répété jusqu'à la convergence ou jusqu'à atteindre le nombre d'itérations défini. Cette méthode est utilisable pour les primitives dont la sortie dépend de l'entrée à l'instant i ainsi qu'aux instants antérieurs. Dans le cas d'un multiplicateur ou comparateur par exemple, la sortie dépend juste de l'entrée courant et donc cela simplifie l'apprentissage.
De cette manière l'apprentissage est implémenté, les fréquences du filtre passe bande sont apprises à partir de la base de données par un algorithme de descente de gradient, même si celui-ci n'est pas calculable de manière formelle, ne permettant pas d'utiliser un algorithme de type rétropropagation. Le désavantage de cette méthode est que pour chaque itération, il faut traiter la base de données complète plusieurs fois, inconvénient contrebalancé par l'utilisation de la technique du mini batch. La méthode est également sensible au réglage des hyperparamètres du modèle, au risque de ne pas converger. Les plus importants sont SpectrumPercentage pour l'initialisation des fréquences et le DerivatePercentage Pour calculer les dérivés. Les résultats obtenus pour ce réseau de primitives sont cependant très bons.
Description d'un exemple d'application
Un cas d'application de l'architecture réseau de primitives concernant la détection de fuites sur un installation pétrolière est présenté. La première étape est la génération d'une base de données en utilisant un capteur analogique couplé à un enregistreur installés sur place. Plusieurs modes de fonctionnement ont été enregistrés pour enrichir cette base et pouvoir discerner entre des modes de fonctionnement correctes et les fautes. Pour cela, la base de données a été étiquetée avec les différents classes à identifier dans la deuxième étape. La troisième étape consiste à traiter les données de forme analogique pour obtenir une structure de données intermédiaire aussi étiquetée mais dépendant du circuit analogique pour le prétraitement. Cette structure de données intermédiaire permet d'entraîner les algorithmes de la portion numérique par exemple les réseaux de neurones convolutifs. Donc dans la quatrième étape l'entraînement est effectué est les résultats de la classification, notamment la courbe ROC, sont évalués pour modifier les paramètres de la portion analogique et obtenir la configuration optimale. Ces deux dernières étapes sont itérées jusqu'à l'obtention de la convergence du système si elle a lieu. Ces différentes étapes sont détaillées ci-dessous.
Étape 1 : Génération de la base de données
La première étape consiste en la récupération des données issues des capteurs correspondants pour la détection des évènements souhaités. Cette étape est la plus importante puisque la fiabilité du réseau de primitives dépend principalement de la richesse de la base de données sur laquelle s'effectue l'apprentissage. Dans le cas d'application, un capteur de pression a été utilisé pour mesurer les comportements d'une installation pétrolière avec et sans défauts. Donc le but est d'arriver à identifier ces comportements et notifier le cas de défauts trouvés. Les données en ce cas sont unidimensionnelles, la pression est enregistrée au cours du temps. Ces données sont enregistrées dans un format prédéfini pour pouvoir les étiqueter dans la prochaine étape.
Étape 2 : Étiquetage de la base de données Après avoir une obtenu une base de données, il faut l'étiqueter. Dans la fig. 15, trois exemples des données brutes étiquetées issues du capteur de pression sont présentées. Il est important que les données soient étiquetées dans les instants précis où les évènements se produisent car ils sont traités sous forme analogique et pas directement avec un réseau de neurones convolutif (qui prend comme entrée l'échantillon complet).
Ces échantillons constituent l'entrée du réseau de primitives qui, avec les blocs analogiques qu'il contient, génère la structure de données intermédiaire étiquetée de forme automatique à partir des celles définies sur les signaux de base. Cette structure de données intermédiaire constitue l'entrée des algorithmes implémentés sous forme numérique.
Étape 3 : Traitement analogique et apprentissage.
Après avoir étiqueté les données, un réseau de primitives est prédéfini pour le traitement analogique qui conduit à l'obtention de la base de données intermédiaire. Ce réseau de primitives est, dans cet exemple, illustré à la fig. 16. Les primitives analogiques sont définies et connectés entre elles selon les caractéristiques de la base de données sachant que plusieurs capteurs peuvent être utilisés et traités en parallèle.
En sortie de la partie analogique, des données intermédiaires sont générées à partir des valeurs de sortie des primitives analogiques, et sont utilisées pour l'entraînement de la portion numérique, tout en conservant leur étiquetage initial. Les noeuds de déclenchement (en anglais trigger) peuvent être définis pour réveiller la portion numérique et effectuer une analyse sur les données analogiques à un moment où l'on suspecte qu'un phénomène intéressant se produit.
Dans la fig. 17, les sorties de plusieurs primitives sont présentées. Le premier graphe "node input" montre les données brutes étiquetés issues du capteur, ensuite le deuxième "AbsValue" montre la sortie de la première primitive qui performe une valeur absolue de l'entrée. Le troisième graphe illustre la sortie d'un filtre passe bas, celle-ci est la deuxième primitive dont la fréquence de coupure doit être apprise et est connectée à la sortie de la première. Finalement nous trouvons les dernières deux primitives et ses graphes, "gain", un amplificateur et "comparator" un comparateur qui compare la sortie de l'amplificateur avec un niveau de tension à apprendre.
Dans ce cas l'étage analogique simplifié du réseau de primitives implémenté est montré dans la fig. 18. Cet étage du réseau de primitives réveille (active) l'étage numérique du réseau de primitives à chaque front montant de la sortie du comparateur et déclenche une analyse pour confirmer s'il est un vrai positif. En conséquence, un nœud de déclenchement et nœud de génération de tenseur sont définis. Le réseau de primitives complet utilisé est montré dans la fig. 19, ce schéma compte avec quatre voies parallèles indépendants de la voie principale chargée du déclenchement à partir d'un transitoire. Ces quatre voies comptent d'un filtre passe bande et un détecteur de pics qui sont utilisés pour mesurer de forme continue l'énergie dans les différentes bandes de fréquences.
Lorsque le comparateur est déclenché par la présence d'un pic dans le signal qui pourrait correspondre à un signal recherché, le signal brut est acquis à 100 [Hz] pendant un temps défini (ici une seconde) et une deuxième acquisition du signal brut est effectuée à 1 [KHz] pendant 0.1 seconde (un dixième de seconde) décalée de deux (2) secondes après le déclenchement pour mesurer le niveau du bruit. L'étage numérique est en charge de faire les acquisitions mais reste en veille profonde la plupart du temps. Seule la partie analogique ultra-low power du réseau de primitives va rester en mode "always on". Les quatre filtres passe bande de cet étage permettent de stocker de l'information sur le passé pour enrichir l'analyse effectuée sur l'étage numérique avec la distribution fréquentielle correspondant à des instants situés avant le déclenchement. Ces quatre sorties de niveau d'énergie sur les différentes bandes sont échantillonnées une deuxième fois avec un retard prédéfini pour avoir des données de comparaison sur l'évolution de la composition fréquentielle du signal autour du déclenchement. Ces sont des indicateurs (importants) sur le signal à prendre en compte pour l'analyse postérieure.
De cette manière, l'information du signal brut permet la détection des chocs et l'information spectrale des niveaux d'énergie sur les quatre bandes de fréquences après l'évènement permettent la caractérisation fréquentielle du signal avant et pendant le phénomène à analyser, un peu comme le ferait une FFT (mais sans nécessité de réaliser une telle FFT coûteuse énergétiquement en numérique). La combinaison de ces deux informations délivre un tenseur : une signature fréquentielle et temporelle de l'évènement à analyser.
L'ensemble de ce traitement est effectué en mode ultra basse consommation puisque l'étage numérique est en veille la plupart du temps et l'étage analogique est conçu pour atteindre une consommation minimale.
Comme explicité précédemment, l'apprentissage des poids de l'étage analogique est effectué par itérations après optimisation conjointe de l'étage numérique.
Étape 4 : Traitement numérique et apprentissage.
L'étage numérique du réseau de primitives apprend à partir de la structure de données intermédiaire générée par l'étage analogique et peut se présenter sous la forme d'un système expert, d'un réseau neuronal classique peu profond comme montre la fig. 20 ou d'un réseau neuronal convolutif comme montre la fig. 21. L'algorithme numérique à implémenter dépend essentiellement de la difficulté du problème à résoudre et de la consommation d'énergie visée.
Étape 5 : Évaluation du système.
Le système est évalué et appris à partir des indicateurs sur les taux de détections (vrai positifs TP, faux positives FP, vrai négatifs TN et faux négatifs FN), et donc en fonction de l'étiquetage initial des données pour l'apprentissage. Ces indicateurs permettent d'ajuster les coefficients de l'étage analogique pendant l'entraînement ainsi qu'en temps réel en dynamique. Par exemple le seuil de détection du comparateur : lorsqu'il y a un signal très bruité, beaucoup de faux positifs sont générés donc le seuil du comparateur peut être augmente pour réduire le nombre de faux positifs lorsqu'il y a du bruit.
Étape 6 : Intégration et déploiement.
L'étape finale consiste à effectuer le chargement des paramètres et modèles appris au réseau de primitives analogique/numérique en mode production. L'avantage d'une telle mise en oeuvre consiste à d'une part disposer d'un circuit peu consommateur en énergie, efficace, dont les paramètres peuvent être mis à jour en fonction de l'évolution des signaux par exemple, et qui plus est pouvant être utilisés dans d'autres cas d'utilisation que celui décrit dans le présent exemple.

Claims

REVENDICATIONS
1. Procédé de détermination de paramètres d'implémentation d'un circuit électronique destiné à être mis en oeuvre par un ordinateur ou un processeur de données, ledit circuit électronique étant configuré pour effectuer le traitement d'un signal d'entrée, le circuit électronique comprenant une portion analogique comprenant une pluralité de primitives analogiques paramétrables et une portion numérique comprenant une pluralité de primitives numériques paramétrables, les paramètres d'implémentation du circuit électronique comportant des paramètres de la pluralité de primitives analogiques paramétrables et des paramètres de la pluralité de primitives numériques paramétrables, la portion numérique étant couplée à la portion analogique par l'intermédiaire d'au moins un convertisseur analogique numérique et/ou au moins un comparateur analogique avec ou sans hystérésis, ledit procédé étant caractérisé en ce qu'il comprend une phase d'apprentissage desdits paramètres de la pluralité de primitives analogiques paramétrables et desdits paramètres de la pluralité de primitives numériques paramétrables, ladite phase d'apprentissage étant conjointe aux paramètres de la pluralité de primitives analogiques paramétrables et aux paramètres de la pluralité de primitives numériques paramétrables.
2. Procédé de détermination de paramètres d'implémentation d'un circuit électronique, selon la revendication 1, caractérisé en ce que la phase d'apprentissage comprend au moins une itération des étapes suivantes, effectuées à l'aide d'une base de données d'apprentissage de signaux étiquetés : chargement (Al) des paramètres courants de la pluralité de primitives analogiques paramétrables et de la pluralité de primitives numériques paramétrables ; extraction (A2), par la portion analogique, en fonction des paramètres courants de la pluralité de primitives analogiques, d'informations temporelles issues des signaux d'entrée et/ou d'informations fréquentielles issues de ces même signaux, ces informations pouvant correspondre à une pluralité de moments des signaux de la base de données d'apprentissage ; construction (A3) à l'aide des informations temporelles et/ou fréquentielles préalablement extraites, d'une structure de données intermédiaire ; classification (A4), par la portion numérique, en fonction des paramètres courants de la pluralité de primitives numériques, et à partir de la structure de données intermédiaire, de la pluralité d'évènements détectés, délivrant une pluralité de portions de signaux classés ; calcul (A5), à partir de la pluralité de portions de signaux classés, d'un taux d'erreur (Err) de classification ; correction (A6) des paramètres courants de la pluralité de primitives analogiques paramétrables et de la pluralité de primitives numériques paramétrables en fonction du taux d'erreur (Err).
3. Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que la phase d'apprentissage prend fin lorsque le taux d'erreur (Err) de classification est inférieur à un seuil prédéterminé et/ou lorsqu'une consommation électrique cible, en fonctionnement opérationnel, dudit circuit électronique est atteinte.
4. Procédé selon l'une quelconque des revendications 2 ou 3, caractérisé en ce que l'étape de correction des paramètres courants de la pluralité de primitives analogiques paramétrables et de la pluralité de primitives numériques paramétrables comprend au moins une itération de la séquence d'optimisation suivante : optimisation de la portion numérique par rétropropagation, puis optimisation de la portion analogique.
5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que la portion numérique comprend au moins un réseau de neurones adapté pour classifier les signaux reçus par l'intermédiaire de convertisseurs analogiques/numériques et en ce que les paramètres de la pluralité de primitives numériques paramétrables comprennent au moins des poids et des biais dudit réseau de neurones.
6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que la portion numérique est, par défaut, en veille.
7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que la portion analogique comprend au moins un filtre passe bande, ledit filtre passe bande permettant d'identifier des fréquences d'intérêt et en ce que les paramètres de la pluralité de primitives analogiques paramétrables comprennent au moins des fréquences de coupure dudit filtre passe-bande et en ce que la portion analogique comprend une pluralité de noeuds de déclenchement en vue de réveiller ladite portion numérique sur la base d'une identification desdites fréquences d'intérêts.
8. Circuit électronique configuré pour effectuer le traitement d'un signal d'entrée selon le procédé de détermination de paramètres d'implémentation dudit circuit électronique selon l'une quelconque des revendications 1 à 7, ledit circuit électronique comprenant une portion analogique et une portion numérique, la portion numérique étant couplée à la portion analogique par l'intermédiaire d'au moins un convertisseur analogique numérique, et/ou au moins un comparateur analogique avec ou sans hystérésis, le circuit électronique étant caractérisé en ce que la portion analogique comprend une pluralité de primitives analogiques paramétrés selon un premier ensemble de paramètres et en ce que la portion numérique comprend une pluralité de primitives numériques paramétrés selon un deuxième ensemble de paramètres, ledit premier et ledit deuxième ensemble de paramètres appartenant aux paramètres d'implémentation dudit circuit électronique, ledit premier et ledit deuxième ensemble ayant fait l'objet d'un apprentissage conjoint.
9. Circuit électronique selon la revendication 8, caractérisé en ce que la pluralité de primitives analogiques paramétrables comprend des primitives analogiques qui appartiennent au groupe comprenant : filtres passifs et/ou actifs, détecteurs d'enveloppe, multiplieurs, montages à amplificateurs opérationnels, diodes, convolutions analogiques, intégrateurs, dérivateurs, retard.
10. Circuit électronique selon l'une quelconque des revendications 8 ou 9, caractérisé en ce que la portion analogique du circuit électronique est divisée en une première partie, dite de prétraitement du signal et une deuxième partie dite d'extraction de moment, la sortie de la partie de prétraitement du signal étant connectée à l'entrée de la partie d'extraction de moments, la sortie de la partie d'extraction de moments étant directement connectée à l'aide d'au moins un convertisseur analogique/numérique et/ou d'un comparateur analogique.
11. Utilisation d'un circuit électronique configuré pour effectuer le traitement d'un signal d'entrée selon le procédé de détermination de paramètres d'implémentation dudit circuit électronique selon l'une quelconque des revendications 1 à 7, ledit circuit électronique comprenant une portion analogique et une portion numérique, la portion numérique étant couplée à la portion analogique par l'intermédiaire d'au moins un convertisseur analogique numérique ou d'au moins un comparateur analogique, la portion analogique comprenant une pluralité de primitives analogiques paramétrables selon un premier ensemble de paramètres et la portion numérique comprenant une pluralité de primitives numériques paramétrables selon un deuxième ensemble de paramètres, caractérisée en ce qu'elle comprend une étape de chargement du premier et du deuxième ensemble de paramètres ayant fait l'objet d'un apprentissage conjoint.
12. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution d'un procédé de détermination de paramètres d'implémentation d'un circuit électronique configuré pour effectuer le traitement d'un signal d'entrée selon l'une des revendications 1 à 7, lorsqu'il est exécuté sur un ordinateur.
PCT/EP2023/065015 2022-06-10 2023-06-05 Dispositif de traitement de donnees par voie d'apprentissage, procede, programme et systeme correspondant WO2023237498A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2205623 2022-06-10
FR2205623A FR3136573A1 (fr) 2022-06-10 2022-06-10 Dispositif de traitement de données par voie d’apprentissage, procédé, programme et système correspondant

Publications (1)

Publication Number Publication Date
WO2023237498A1 true WO2023237498A1 (fr) 2023-12-14

Family

ID=83188787

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2023/065015 WO2023237498A1 (fr) 2022-06-10 2023-06-05 Dispositif de traitement de donnees par voie d'apprentissage, procede, programme et systeme correspondant

Country Status (2)

Country Link
FR (1) FR3136573A1 (fr)
WO (1) WO2023237498A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160071513A1 (en) * 2013-08-28 2016-03-10 Texas Instruments Incorporated Cloud based adaptive learning for distributed sensors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160071513A1 (en) * 2013-08-28 2016-03-10 Texas Instruments Incorporated Cloud based adaptive learning for distributed sensors

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BARCHASZ VALENTIN ET AL: "A Novel Low-Power High Speed Accurate and Precise DAQ with Embedded Artificial Intelligence for Long Term Biodiversity Survey", 31 December 2020 (2020-12-31), XP093016644, Retrieved from the Internet <URL:https://www.researchgate.net/publication/348446852_A_Novel_Low-Power_High_Speed_Accurate_and_Precise_DAQ_with_Embedded_Artificial_Intelligence_for_Long_Term_Biodiversity_Survey> [retrieved on 20231230] *
CHEN YU ET AL: "A Dual-Stage, Ultra-Low-Power Acoustic Event Detection System", 2016 IEEE INTERNATIONAL WORKSHOP ON SIGNAL PROCESSING SYSTEMS (SIPS), IEEE, 26 October 2016 (2016-10-26), pages 213 - 218, XP033021977, DOI: 10.1109/SIPS.2016.45 *
OH SECHANG ET AL: "An Acoustic Signal Processing Chip With 142-nW Voice Activity Detection Using Mixer-Based Sequential Frequency Scanning and Neural Network Classification", IEEE JOURNAL OF SOLID-STATE CIRCUITS, IEEE, USA, vol. 54, no. 11, 1 November 2019 (2019-11-01), pages 3005 - 3016, XP011751655, ISSN: 0018-9200, [retrieved on 20191022], DOI: 10.1109/JSSC.2019.2936756 *
WANG ZHIXUAN ET AL: "A 148-nW Reconfigurable Event-Driven Intelligent Wake-Up System for AIoT Nodes Using an Asynchronous Pulse-Based Feature Extractor and a Convolutional Neural Network", IEEE JOURNAL OF SOLID-STATE CIRCUITS, IEEE, USA, vol. 56, no. 11, 29 September 2021 (2021-09-29), pages 3274 - 3288, XP011884538, ISSN: 0018-9200, [retrieved on 20211020], DOI: 10.1109/JSSC.2021.3113257 *

Also Published As

Publication number Publication date
FR3136573A1 (fr) 2023-12-15

Similar Documents

Publication Publication Date Title
WO2010122056A2 (fr) Systeme et methode pour detecter des evenements audio anormaux
FR2994495A1 (fr) Procede et systeme pour detecter des evenements sonores dans un environnement donne
FR3010532A1 (fr) Procede, dispositif et systeme d&#39;estimation de l&#39;etat de charge d&#39;une batterie
FR2728365A1 (fr) Apprentissage supervise d&#39;un reseau neuronal
FR2996302A1 (fr) Procede et systeme de mesure a capteurs multiples
FR3032786A1 (fr) Systeme de traitement de donnees et de modelisation pour l&#39;analyse de la consommation energetique d&#39;un site
EP3846046A1 (fr) Procede et systeme de traitement de donnees pour la preparation d&#39;un jeu de donnees
WO2016075409A1 (fr) Procédé de surveillance d&#39;un moteur d&#39;aéronef en fonctionnement dans un environnement donné
EP3846087A1 (fr) Procede et systeme de selection d&#39;un modele d&#39;apprentissage au sein d&#39;une pluralite de modeles d&#39;apprentissage
EP4179469A1 (fr) Dispositif électronique et procédé de traitement de données à base de réseaux génératifs inversibles, système électronique de détection et programme d&#39;ordinateur associés
EP3252563B1 (fr) Détermination d&#39;un contexte de mobilité d&#39;un utilisateur porteur d&#39;un équipement muni de capteurs inertiels
FR3082962A1 (fr) Determination automatique et auto-optimisee des parametres d&#39;execution d&#39;une application logicielle sur une plateforme de traitement de l&#39;information
WO2023237498A1 (fr) Dispositif de traitement de donnees par voie d&#39;apprentissage, procede, programme et systeme correspondant
WO2021069824A1 (fr) Dispositif, procédé et programme d&#39;ordinateur de suivi de moteur d&#39;aéronef
FR3010200A1 (fr) Procede et dispositif de normalisation de valeurs de parametres de fonctionnement d&#39;un moteur d&#39;aeronef
EP3709049B1 (fr) Systeme de traitement radar et procede de debruitage associe
EP3846047A1 (fr) Procédé et système d&#39;identification de variables pertinentes
WO2010004098A1 (fr) Estimation de la réponse impulsionnelle d&#39;un système à partir d&#39;observations binaires
EP2921867A1 (fr) Méthode pour extraire des signaux de puissance électrique d&#39;un signal mélangé alimentant une pluralité d&#39;appareils électriques distincts
WO2023241896A1 (fr) Détection d&#39;anomalies pour la maintenance applicative de dispositifs
WO2024062204A1 (fr) Procede et dispositif de detection d&#39;anomalie de fonctionnement d&#39;un aeronef
FR3060794A1 (fr) Procede de determination de l&#39;etat d&#39;un systeme, procede de determination d&#39;une methode de projection optimale et dispositif mettant en œuvre lesdits procedes
EP4099044A1 (fr) Methode et dispositif de classification d&#39;impulsions de signaux radar
WO2022148938A1 (fr) Procédé pour une surveillance et une analyse de l&#39;état cardiaque d&#39;un individu
WO2023166260A1 (fr) Procede et dispositif d&#39;aide a la navigation basee sur un filtre de kalman

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23732823

Country of ref document: EP

Kind code of ref document: A1