Rappel sur la technologie de l’apprentissage profond

Introduction

Les méthodes d’inférence issues de l’intelligence artificielle visent à approximer une fonction f(θ):ℝd→ℝkf(\theta):\mathbb{R}^{d}\rightarrow\mathbb{R}^{k} , paramétrée par un vecteur θ∈ℝp\theta\in\mathbb{R}^{p} , à partir d’un ensemble de données d’entrée-sortie (x(n),y(n))n=1N{(x^{(n)},y^{(n)})}^{N}_{n=1} . L’objectif est de déterminer θ de manière à minimiser une fonction objectif (fonction de perte).

ℒ(𝛉)=𝟏𝐍∑𝐧=𝟏𝐍ℓ(𝐟𝛉(𝐱(𝐧)),𝐲(𝐧))\mathbf{\mathcal{L}(\theta)=\frac{1}{N}\sum^{N}_{n=1}\ell(f_{\theta}(x^{(n)}),y^{(n)})}

où ℓ(⋅,⋅) est une mesure d’erreur adaptée à la tâche considérée (par exemple l’erreur quadratique moyenne pour une régression, ou la fonction log-vraisemblance négative pour une classification).

L’optimisation de ℒ(𝛉)\mathbf{\mathcal{L}(\theta)} est réalisée via la descente de gradient :

𝛉(𝐭+𝟏)=𝛉(𝐭)−𝛈∇𝛉ℒ(𝛉)\mathbf{\theta^{(t+1)}=\theta^{(t)}-{\eta\nabla_{\theta}}\mathbf{\mathcal{L}(\theta)}}

où η>0 est le taux d’apprentissage. L’efficacité de cette méthode repose sur l’algorithme de rétro-propagation, qui permet un calcul efficace des gradients ∇θℒ(𝛉)\nabla_{\theta}\mathbf{\mathcal{L}(\theta)} en exploitant la structure hiérarchique du modèle. Un neurone élémentaire est défini comme la composition d’une transformation affine et d’une fonction d’activation non linéaire :

𝒵i=∑j=1d𝒲ij𝒳j+bi,𝒴i=σ(𝒵i)\mathcal{Z}_{i}=\sum^{d}_{j=1}\mathcal{W}_{ij}\mathcal{X}_j+b_{i},\mathcal{Y}_{i}=\sigma(\mathcal{Z}_{i})
  Partie Affine Fonction d’activation
𝒵i=[W11W12W13⋯W21W22W23⋯⋮⋮⋮⋮].[X1X2⋯]+[b1b2⋯]→𝒴𝒾=σ(Zi)\mathcal{Z}_{i}=\left[ \begin{array}{cccc} W_{11} & W_{12} & W_{13} & \cdots \\ W_{21} & W_{22} & W_{23} & \cdots \\ \vdots & \vdots & \vdots & \vdots \end{array} \right]\;.\;\left[ X_1 X_2 \cdots \right]\,+\, \left[ b_1 b_2\cdots \right]\;{\rightarrow} \;\mathcal{Y_i}=\sigma(Z_i)   

où 𝒲∈ℝk×d\mathcal{W}\in\mathbb{R}^{k\times d} est la matrice des poids,  b∈ℝkb\in\mathbb{R}^{k}le biais, et σ(.)\sigma(.)une fonction non linéaire (sigmoïde, ReLU, tanh, etc.).

En empilant plusieurs couches, on définit un réseau de neurones profond :

h(0)=x,h(ℓ)=σ(W(ℓ)h(ℓ−1)+b(ℓ)),fθ(x)=h(L)h^{(0)}=x,h^{(\ell)}=\sigma(W^{(\ell)}h^{(\ell-1)}\;+\;b^{(\ell)}),\;f_{\theta}(x)=h^{(L)}

où L est la profondeur du réseau, et θ={W(ℓ),b(ℓ)}ℓ=1L\theta\;=\;\{W^{(\ell)},b^{(\ell)}\}^{L}_{\ell=1} les paramètres du réseau.

Ainsi, l’inférence correspond à l’évaluation de  pour de nouvelles entrées, tandis que l’apprentissage consiste à résoudre le problème d’optimisation :

θ∗=argθ⁡minℒ(θ)\theta^{*}=\arg_{\theta}min\;\mathcal{L}(\theta)

Une fois la phase d’apprentissage achevée, les paramètres optimaux du modèle — appelés poids {W(ℓ)}ℓ=1L\{W^{(\ell)}\}^{L}_{\ell=1}  et biais {b(ℓ)}ℓ=1L\{b^{(\ell)}\}^{L}_{\ell=1} pour un réseau de L couches — sont figés. Le déploiement consiste alors à appliquer la fonction d’inférence

𝒴^=fθ,θ={W(ℓ),b(ℓ)}ℓ=1L\hat{\mathcal{Y}}\;=\;f_{\theta},\theta\;=\;\{W^{(\ell)},b^{(\ell)}\}^{L}_{\ell=1},

aux nouvelles données d’entrée x∈ℝkx\in\mathbb{R}^{k}, de manière à produire une sortie 𝒴^\hat{\mathcal{Y}} correspondant à la décision recherchée (classification, régression, détection d’événements, etc.). Différentes familles de modèles existent, chacune adaptée à une structure particulière des données :

  • Réseaux de neurones convolutionnels (CNNs) pour des signaux structurés (images, séries temporelles),
  • Réseaux récurrents (RNNs, LSTMs, GRUs) pour le traitement séquentiel,
  • Réseaux liquides (LNNs) pour des dynamiques non linéaires à temps continu,
  • Transformers pour la modélisation de dépendances longues portées.

Le choix du modèle fθf_{\theta} relève donc d’un compromis entre :

  1. Expressivité (capacité d’approximation),
  2. Complexité algorithmique 𝒞(fθ)\mathcal{C}(f_{\theta}) ,
  3. Coût en ressources matérielles ℳ(fθ)\mathcal{M}(f_{\theta}) .

En pratique, cette sélection reste largement empirique, suivant une démarche d’exploration par essai-erreur :

f∗(x)=argf∈𝔽⁡minℒval(θ)f^{*}(x)=\arg_{f\in\mathbb{F}}min\;\mathcal{L}_{val}(\theta)

sous contraintes 𝒞(fθ)≤𝒞max\mathcal{C}(f_{\theta})\leq\mathcal{C}_{max}, ℳ(fθ)≤ℳmax\mathcal{M}(f_{\theta})\leq\mathcal{M}_{max} où  est la fonction de perte mesurée sur un jeu de validation, et  l’espace des modèles candidats (ex. CNN 1D, ResNet, YOLO, etc.). Des architectures établies — telles que ResNet50 pour la classification d’images ou YOLO pour la détection d’objets — sont intégrées aux bibliothèques open-source et servent de points de référence. La problématique centrale en déploiement devient alors une optimisation bi-critère :

  • Minimiser le temps d’inférence 𝒯inf(f)\mathcal{T}_{inf}(f) ,
  • Minimiser la consommation de ressources (mémoire embarquée, DSP, LUTs sur FPGA).

Formellement, on cherche :

minf∈𝔽(𝒯inf(f),ℳ(f))min_{f\in\mathbb{F}}(\mathcal{T}_{inf}(f),\mathcal{M}(f))

Maintenant, la problématique est d’optimiser la quantité et la rapidité des calculs à effectuer pour obtenir une réponse à partir des données d’entrées.