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.