Brevet FR3136573A1 — publié le 20231215

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. Fig 1. Dispositif de traitement de données par voie d’apprentissage, procédé, programme et système correspondant 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. Ces dernières années ont connu, la révolution de l’Internet des Objets (IoT) et celle du traitement des données à distance (le cloud computing). Le nombre de dispositifs IoT ne cesse de croitre 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) couteux 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 IoT. 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 œuvre des traitement complexes et notamment des traitements à base d’intelligence artificielle dans les architectures embarquées de type IoT ? 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. 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 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 au moins un comparateur analogique avec ou sans hystérésis. Un tel procédé 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. 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ême 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 un autre aspect, la divulgation se rapporte également à un circuit électronique configuré pour effectuer le traitement d’un signal d’entrée, circuit 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 hysteresis. Dans ce circuit électronique étant caractérisé 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 le premier et le 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 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 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 œuvre 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 œuvre 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 œuvre 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 œuvre 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 œuvre 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 œuvre 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 œuvre ses propres modules logiciels. Les différents modes de réalisation mentionnés ci-dessus sont combinables entre eux pour la mise en œuvre de la présente technique. 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 : représente l’architecture générale du réseau selon la présente divulgation ; ; illustre les différentes primitives numériques et analogiques la divulgation ; est un exemple de structure de la portion analogique du réseau selon la divulgation ; illustre un signal unidimensionnel avant étiquetage manuel ; représente le signal unidimensionnel de la après étiquetage manuel ; illustre l’entraînement du réseau avec les données étiquetés d’entrée et les données intermédiaires générés par la portion analogique ; illustre l’entraînement du réseau avec les données étiquetés 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 ; illustre une primitive analogique paramétrable illustre une primitive analogique paramétrable ; Illustre un circuit selon la présente divulgation ; illustre l’architecture d’un microcontrôleur selon la présente divulgation ; illustre une portion de la base de données de signaux d’entrée et des labels correspondants ; illustre un réseau comprenant trois primitives ; illustre la convergence vers les fréquences cibles ; présente trois exemples des données brutes étiquetées issues du capteur de pression ; présente une interface de construction du réseau de primitives ; présente les sorties de plusieurs primitives ; illustre un premier réseau de primitives ; illustre un réseau de primitives complet ; illustre un réseau de neurones trois couches, connectable au réseau de primitives complet de la ; illustre un réseau de neurones trois couches, connectable au réseau de primitives complet de la ; 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 œuvre 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 œuvre. 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 ( ). 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) ( ) 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, entrainant 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 hysteresis 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 ( : "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 . 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 (A1) 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 est exemplifié par les explications suivantes. Un point départ est un signal unidimensionnel comme montre la . 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 . 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 . 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 . 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 (gauche). Cette primitive est clé pour la détection des transitoires comme montre la (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 (R 1 C 1 ). Filtres analogiques : ces primitives peuvent être implémentés avec un ou plusieurs amplificateurs opérationnels, résistances et condensateurs comme montre la (gauche) et la (gauche). Elles permettent de sélectionner les bandes de fréquences d’intérêt, comme le montre la (droite) et la (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 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 R 2 C 2 et R 3 C 3 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 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 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 à 1V 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 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 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 f cHPF et f cLPF , 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 τ i , 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 : f cHPF et f cLPF 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 f ci et sa longueur de bande. Par conséquent, la première fréquence est initialisée à : la seconde fréquence est initialisée à 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 f cHPF et f cLPF égales à 10 et 190 Hz respectivement, puisque f Sampling est égal à 400 Hz. τ i 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 égal à 1V. 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 . 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 (f cHPF et f cLPF ) doit être calculée. Cette primitive de type filtre passe bande a une sorte de mémoire par rapport à l’entrée à l’instant i 1 . 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, Error fcHPF - 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ù Derivate Porcentage est un hyper paramètre à préfixer comme le taux d’apprentissage. Dans ce cas il est égal à 0,1. (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 : Error fc + ∆f - fcLPF et pouvoir calculer la dérivée de cette erreur en fonction de la variation de fcHPF comme montre l’eq. 2 suivante : Après avoir calculé la première dérivée de l’erreur, f cHPF est remis à sa valeur antérieure et la même méthode est appliquée pour calculer la dérivée par rapport à f cLPF , de façon d’obtenir 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. (3) (4) 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 Spectrum Percentage pour l’initialisation des fréquences et le Derivate Percentage 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 , 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 . 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 nœuds 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 , 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 . 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 , 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 couteuse é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 ou d’un réseau neuronal convolutif comme montre la . 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 œuvre 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. 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 au 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. 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 (A1) de 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). Procédé selon la revendication 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. Procédé selon la revendication 2, 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. Circuit électronique configuré pour effectuer le traitement d’un signal d’entrée, circuit 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 le premier et le deuxième ensemble de paramètres ayant fait l’objet d’un apprentissage conjoints selon la méthode de la revendication 1. Circuit électronique selon la revendication 5, 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. Circuit électronique selon la revendication 5, 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. Utilisation d’un 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 conjoints selon la méthode de la revendication 1. 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 à 4, lorsqu’il est exécuté sur un ordinateur.