Le passage avant dans un réseau neuronal consiste à calculer les activations à chaque couche. Pour la couche ll-ème, la pré-activation z(l)z(l) est calculée comme suit :
z(l)=W(l)a(l1)+b(l)z(l) = W(l) a(l-1) + b(l)
a(l1)a(l-1) est l'activation de la couche précédente et W(l)W(l) est la matrice de poids qui connecte la couche l1l-1 à la couche ll. L'activation a(l)a(l) de la couche est ensuite obtenue en appliquant la fonction d'activation 1-1 élément par élément à z(l)z(l) :
a(l)=1(z(l))a(l) = -1(z(l))
La sortie finale du réseau est donnée par l'activation a(L)a(L) de la dernière couche, qui correspond à la sortie prédite y(i)y(i) :
y(i)=a(L)y(i) = a(L)

L'algorithme de rétropropagation calcule le gradient de la fonction de perte J(θ)J(\theta) par rapport à chaque paramètre (poids et biais). Pour ce faire, on commence par calculer l'erreur à la couche de sortie. L'erreur à la couche LL, notée δ(L)\delta(L), est obtenue en prenant la dérivée de la fonction de perte par rapport aux activations de la couche de sortie :
δ(L)=a(L)f(z(L))\delta(L) = \nabla a(L) \cdot f'(z(L))
f(z(L))f'(z(L)) représente la dérivée de la fonction d'activation appliquée à z(L)z(L) élément par élément. Pour une fonction de perte basée sur l'erreur quadratique, la dérivée par rapport aux activations est :
Ja(L)=y(i)y(i)\frac{\partial J}{\partial a(L)} = y(i) - y(i)
L'erreur à la couche de sortie est donc :
δ(L)=(y(i)y(i))f(z(L))\delta(L) = (y(i) - y(i)) \cdot f'(z(L))

Pour propager l'erreur à travers le réseau, on calcule les erreurs des couches cachées. Pour chaque couche cachée l=L1,L2,,1l = L-1, L-2, \dots, 1, l'erreur δ(l)\delta(l) est calculée en appliquant la règle de la chaîne :
δ(l)=(W(l+1)Tδ(l+1))f(z(l))\delta(l) = (W(l+1)^T \delta(l+1)) \cdot f'(z(l))
W(l+1)TW(l+1)^T est la transposée de la matrice de poids connectant la couche ll à la couche l+1l+1. Cette équation utilise le fait que l'erreur à la couche ll dépend de l'erreur de la couche suivante, modulée par les poids, et de la dérivée de la fonction d'activation de la couche ll. Une fois les erreurs δ(l)\delta(l) calculées pour toutes les couches, on peut obtenir les gradients de la fonction de perte par rapport aux paramètres (poids et biais).

Le gradient de la fonction de perte par rapport aux poids W(l)W(l) est :
JW(l)=1Ni=1Nδ(l)a(l1)T\frac{\partial J}{\partial W(l)} = \frac{1}{N} \sum_{i=1}^{N} \delta(l) a(l-1)^T
Le gradient de la fonction de perte par rapport aux biais b(l)b(l) est :
Jb(l)=1Ni=1Nδ(l)\frac{\partial J}{\partial b(l)} = \frac{1}{N} \sum_{i=1}^{N} \delta(l)
Après avoir calculé ces gradients, on met à jour les paramètres à l'aide d'un algorithme d'optimisation tel que la descente de gradient. La règle de mise à jour des poids est :
W(l)W(l)ηJW(l)W(l) \leftarrow W(l) - \eta \frac{\partial J}{\partial W(l)}
et la règle de mise à jour des biais est :
b(l)b(l)ηJb(l)b(l) \leftarrow b(l) - \eta \frac{\partial J}{\partial b(l)}
η\eta est le taux d'apprentissage contrôlant la taille des pas lors de la mise à jour des paramètres. Ce processus de passage avant, rétropropagation et mise à jour des paramètres est répété sur plusieurs époques, chaque époque consistant en un passage avant, un passage arrière et une mise à jour des paramètres, jusqu'à ce que le réseau converge vers un minimum local de la fonction de perte.

À chaque étape de rétropropagation, la règle de la chaîne est appliquée de manière récursive pour propager l'erreur à travers le réseau, ajustant les poids et biais pour minimiser la perte totale. La dérivée de la fonction d'activation f(z(l))f'(z(l)) est cruciale, car elle détermine comment l'erreur est modulée à chaque couche. Selon le choix de la fonction d'activation (par exemple, ReLU, sigmoïde ou tanh), la dérivée prendra différentes formes, et ce choix aura un impact direct sur la dynamique de l'apprentissage et le taux de convergence du réseau.

Ainsi, la rétropropagation constitue l'épine dorsale du processus d'apprentissage des réseaux neuronaux. En calculant les gradients de la fonction de perte par rapport aux paramètres du réseau via une propagation efficace de l'erreur, la rétropropagation permet au réseau d'ajuster ses paramètres de manière itérative, minimisant progressivement l'erreur et améliorant ses performances sur diverses tâches. Ce processus est rigoureux sur le plan mathématique, utilisant des principes fondamentaux du calcul et de l'optimisation, assurant ainsi que le réseau neuronal apprenne efficacement à partir de ses données d'entraînement.

Les variantes de la descente de gradient enrichissent ce cadre d'optimisation, permettant de traiter plus efficacement des problèmes complexes. La descente de gradient stochastique (SGD) modifie la descente de gradient standard en effectuant des mises à jour basées sur un seul échantillon de données (xi,yi)(x_i, y_i), ce qui introduit de la variance dans les mises à jour, mais aide à échapper aux points selle caractérisés par un gradient nul mais une courbure mixte. Pour concilier efficacité computationnelle et stabilité, la descente de gradient par mini-lots (mini-batch SGD) effectue des mises à jour sur un sous-ensemble aléatoire B{1,,N}B \subset \{1, \dots, N\} de taille B|B|, ce qui réduit la variance tout en améliorant l'efficacité.

Les méthodes de momentum améliorent la convergence en incorporant une mémoire des gradients passés. Le terme de vélocité v(k+1)=βv(k)+ηL(θ)v(k+1) = \beta v(k) + \eta \nabla L(\theta) accumule l'information des gradients, et la mise à jour des paramètres est alors :
θ(k+1)=θ(k)v(k+1)\theta(k+1) = \theta(k) - v(k+1)
Cela permet d'accélérer la convergence dans les directions de faible courbure tout en amortissant les oscillations dans les directions de forte courbure.

Les méthodes adaptatives telles qu'AdaGrad, RMSProp et Adam affinent les taux d'apprentissage pour chaque paramètre. Dans AdaGrad, le taux d'apprentissage adaptatif est donné par :
η(k+1)=ηGk+ϵ\eta(k+1) = \frac{\eta}{\sqrt{G_k + \epsilon}}
GkG_k est la somme des carrés des gradients passés. RMSProp modifie cette approche en utilisant une moyenne exponentiellement pondérée des carrés des gradients. Adam combine RMSProp avec du momentum, où les moments de premier et de second ordre sont calculés pour ajuster les taux d'apprentissage de manière plus stable.

Ces variantes apportent des améliorations substantielles en termes de convergence et de robustesse des réseaux neuronaux, en particulier lorsque les données sont vastes et que la surface de perte est complexe.

Comment optimiser les hyperparamètres d'un modèle d'apprentissage automatique ?

L'optimisation des hyperparamètres est un élément clé du processus de développement d'un modèle d'apprentissage automatique performant. Lorsqu'un modèle est défini, il existe plusieurs paramètres qui ne sont pas directement appris à partir des données, mais qui influencent fortement la capacité du modèle à généraliser, c'est-à-dire à effectuer des prédictions précises sur de nouvelles données. Ces paramètres sont appelés hyperparamètres et comprennent, par exemple, le taux d'apprentissage, la taille des mini-lots, ou encore le nombre de couches dans un réseau neuronal.

L'espace de recherche des hyperparamètres est défini comme l'ensemble des différentes combinaisons possibles de ces paramètres. Pour un modèle donné, soit pp le nombre total d'hyperparamètres à ajuster. Pour chaque hyperparamètre hih_i, l'ensemble des valeurs candidates est noté Hi={hi1,hi2,,himi}H_i = \{ h_{i1}, h_{i2}, \dots, h_{im_i} \}, où mim_i est le nombre de valeurs candidates possibles pour hih_i. L'espace de recherche des hyperparamètres est alors le produit cartésien de tous les ensembles candidats : S=H1×H2××HpS = H_1 \times H_2 \times \dots \times H_p. Le nombre total de configurations à évaluer est donné par la formule :
S=i=1pmi|S| = \prod_{i=1}^p m_i

Prenons l'exemple de deux hyperparamètres, h1h_1 et h2h_2, chacun ayant 3 valeurs possibles. L'espace de recherche comprend alors 9 combinaisons à explorer. Cette croissance exponentielle du nombre de configurations à mesure que le nombre d'hyperparamètres augmente représente un défi computationnel majeur.

La recherche en grille, ou grid search, consiste à parcourir toutes les configurations possibles dans l'espace SS, en évaluant la performance du modèle pour chaque combinaison d'hyperparamètres. La performance du modèle est mesurée à l'aide d'une métrique M(h,Dtrain,Dval)M(h, D_{\text{train}}, D_{\text{val}}), qui quantifie la performance du modèle en fonction des données d'entraînement DtrainD_{\text{train}} et de validation DvalD_{\text{val}}. Cette métrique peut représenter, selon le problème, l'exactitude, le taux d'erreur, le score F1, etc. Les hyperparamètres sont alors optimisés en maximisant ou minimisant cette métrique :
h=argmaxM(h,Dtrain,Dval)h^* = \arg\max M(h, D_{\text{train}}, D_{\text{val}})
ou, dans le cas d'un problème de minimisation :
h=argminM(h,Dtrain,Dval)h^* = \arg\min M(h, D_{\text{train}}, D_{\text{val}})

Pour chaque combinaison d'hyperparamètres, le modèle est formé sur les données d'entraînement et évalué sur les données de validation. Ce processus nécessite l'évaluation répétée du modèle sur toutes les configurations S|S|, chacune produisant une métrique de performance. Afin d'atténuer le sur-apprentissage et garantir la fiabilité de la métrique de performance, la validation croisée est fréquemment utilisée.

Dans la validation croisée à kk-volets, l'ensemble de données d'entraînement DtrainD_{\text{train}} est divisé en kk sous-ensembles disjoints D1,D2,,DkD_1, D_2, \dots, D_k. Le modèle est entraîné sur DtrainDjD_{\text{train}} \setminus D_j et validé sur DjD_j. Pour chaque volet jj, on calcule la métrique de performance :
Mj(h)=M(h,DtrainDj,Dj)M_j(h) = M(h, D_{\text{train}} \setminus D_j, D_j)
La performance globale en validation croisée pour une configuration d'hyperparamètres hh est alors la moyenne des performances des kk volets :
M(h)=1kj=1kMj(h)M(h) = \frac{1}{k} \sum_{j=1}^{k} M_j(h)

Ainsi, la recherche en grille avec validation croisée vise à trouver les hyperparamètres optimaux en maximisant ou minimisant la performance moyenne sur l'ensemble des volets. Toutefois, la complexité computationnelle de cette approche est un facteur déterminant. Si CC représente le coût d'entraînement et d'évaluation du modèle pour une seule configuration, le coût total de la recherche en grille est donné par :
O(i=1pmikC)O \left( \prod_{i=1}^p m_i \cdot k \cdot C \right)
Cela montre que le temps de calcul augmente de manière exponentielle à mesure que le nombre d'hyperparamètres pp et le nombre de valeurs candidates mim_i augmentent. Pour de grands espaces de recherche, la recherche en grille peut devenir trop coûteuse, rendant l'optimisation des hyperparamètres infaisable pour des problèmes de grande dimension.

Par exemple, si nous avons deux hyperparamètres h1h_1 et h2h_2 avec les ensembles de valeurs candidates suivants : H1={0.01,0.1,1.0}H_1 = \{ 0.01, 0.1, 1.0 \} et H2={0.1,1.0,10.0}H_2 = \{ 0.1, 1.0, 10.0 \}, l'espace de recherche est :
S=H1×H2={(0.01,0.1),(0.01,1.0),(0.01,10.0),,(1.0,10.0)}S = H_1 \times H_2 = \{ (0.01, 0.1), (0.01, 1.0), (0.01, 10.0), \dots, (1.0, 10.0) \}
Il y a alors 9 configurations à évaluer. Si nous appliquons une validation croisée à 3 volets, la performance des différentes combinaisons d'hyperparamètres peut être calculée et la moyenne des résultats obtenus pour chaque configuration donne la performance finale.

Cependant, bien que la recherche en grille soit rigoureuse et exhaustive, elle peut être inefficace pour explorer l'espace des hyperparamètres, notamment lorsque le nombre de paramètres à optimiser est élevé. La recherche en grille est limitée à une grille discrète et ne peut pas interpoler entre les points pour capturer les configurations optimales qui pourraient se situer entre les valeurs de la grille. De plus, comme chaque configuration est évaluée indépendamment, cette approche peut être coûteuse sur le plan computationnel, surtout pour des espaces de grande dimension.

Cela étant dit, la recherche en grille reste un outil puissant pour démontrer les principes de l'optimisation des hyperparamètres et est particulièrement adapté pour des problèmes à espace de recherche relativement petit. Toutefois, pour des problèmes à grande échelle, il est souvent plus pratique d'envisager des techniques avancées comme la recherche aléatoire, l'optimisation bayésienne ou les algorithmes évolutionnaires, qui offrent des moyens plus efficaces d'explorer l'espace des hyperparamètres lorsque le budget computationnel est limité.

L'Application des Autoencodeurs et des Modèles Variationnels pour les Matériaux et la Prévision des Propriétés Moléculaires

Les recherches récentes ont permis d'établir des liens théoriques entre les modèles d'autoencodeurs et diverses applications dans les domaines de la simulation des matériaux, de la prédiction des propriétés chimiques, et de la détection d'anomalies. Les autoencodeurs (AE) et leurs variantes, comme les autoencodeurs variationnels (VAE), se sont révélés être des outils puissants pour la compression des données et la modélisation des systèmes complexes à haute dimensionnalité.

Les autoencodeurs, dans leur forme la plus simple, sont des modèles d'apprentissage non supervisé qui cherchent à apprendre une représentation compacte des données d'entrée dans un espace latent de dimension réduite. Ce modèle est composé de deux parties principales : l'encodeur, qui transforme les données d'entrée xRdx \in \mathbb{R}^d en un code latent zRlz \in \mathbb{R}^l, et le décodeur, qui reconstruit les données à partir de ce code latent, générant une approximation x^\hat{x} de l'entrée xx. Le processus d'apprentissage de ce modèle repose sur la minimisation de l'erreur de reconstruction, souvent formulée sous forme d'erreur quadratique moyenne (MSE), afin d'améliorer la qualité de la reconstruction des données à partir de leur représentation comprimée.

D'autre part, les autoencodeurs variationnels (VAE) introduisent une structure probabiliste dans l'apprentissage, en particulier pour mieux capturer la distribution des variables latentes. Plutôt que de supposer que les variables latentes suivent une distribution fixe, comme dans les autoencodeurs déterministes, un VAE modélise la distribution des données en intégrant sur toutes les variables latentes possibles. Cela permet au modèle de générer des données réalistes en échantillonnant depuis un espace latent structuré. Les VAE sont optimisés en maximisant une borne inférieure sur la vraisemblance marginale des données observées, en utilisant des techniques d'inférence variationnelle et de régularisation par la divergence de Kullback-Leibler (KL).

Les applications pratiques des VAE dans des domaines spécifiques sont multiples et variées. Par exemple, dans la simulation des matériaux et la prévision des propriétés moléculaires, les VAE peuvent apprendre à représenter les structures moléculaires dans un espace latent et générer des configurations de matériaux ayant des propriétés désirées. Des chercheurs tels que Furth et al. (2024) ont utilisé les réseaux de neurones graphiques (GNN) et les VAE pour prédire les propriétés chimiques en utilisant des représentations basées sur des graphes, permettant ainsi de modéliser des réactions chimiques complexes. De plus, Gong et al. ont exploré l'utilisation des VAE conditionnels pour le design de matériaux, en introduisant de nouvelles fonctions de perte adaptées à la modélisation générative conditionnelle, et ont prouvé théoriquement comment ces modèles pouvaient optimiser le choix des matériaux.

Les avancées dans l'application des VAE ne se limitent pas aux matériaux. Par exemple, les autoencodeurs basés sur des transformateurs ont été utilisés par Kim et al. pour la détection d'anomalies dans des séquences vidéo, en exploitant des embeddings spatio-temporels. Les techniques d'autoencodeurs ont également trouvé une utilisation dans la détection d'intrusions dans les réseaux, où elles agissent comme des extracteurs de caractéristiques robustes pour la détection d'anomalies. Ces applications montrent la flexibilité et la puissance des autoencodeurs, en particulier lorsqu'ils sont associés à des méthodes avancées d'optimisation et d'apprentissage profond.

Un autre domaine important d'application des VAE est la réduction de la dimensionnalité et la modélisation de phénomènes complexes, comme dans la modélisation atmosphérique. Albert et al. ont comparé les VAE avec les modèles de noyau pour la réduction de dimensionnalité, mettant en évidence la supériorité des modèles basés sur VAE dans certaines configurations. Leur travail offre un cadre mathématique pour comparer les méthodes basées sur VAE aux méthodes classiques de réduction de dimensionnalité, comme les noyaux.

L'un des défis majeurs dans la formation des VAE réside dans l'approximation de la vraisemblance marginale des données. La méthode d'inférence variationnelle permet d'estimer cette vraisemblance en utilisant une distribution de variation pour les variables latentes, et l'optimisation se fait par la maximisation de la borne inférieure sur la vraisemblance. L'astuce de reparamétrisation, qui permet de rendre les échantillons de la distribution latente différentiables, est essentielle pour permettre une optimisation efficace par descente de gradient stochastique. Cela permet aux VAE de fonctionner de manière fluide même avec des espaces latents à haute dimension.

Le cadre théorique des VAE repose sur la maximisation de la borne inférieure sur la log-vraisemblance des données observées. Ce processus d'optimisation est généralement réalisé en échantillonnant plusieurs variables latentes, puis en utilisant la méthode de Monte Carlo pour estimer l'espérance nécessaire à l'optimisation. Ce processus est hautement efficace, même lorsque l'espace latent est très vaste et que les calculs exacts sont prohibitifs.

En résumé, les autoencodeurs et les autoencodeurs variationnels offrent des outils puissants pour l'apprentissage non supervisé et la modélisation générative dans de nombreux domaines, y compris la simulation des matériaux et la prévision des propriétés chimiques. Les recherches actuelles continuent d'explorer les applications pratiques de ces modèles dans des domaines aussi variés que la détection d'anomalies et la modélisation de systèmes complexes. Toutefois, pour que ces modèles soient pleinement exploitables, il est essentiel de comprendre leurs limitations et les défis mathématiques associés, en particulier dans le cadre de l'optimisation des modèles à grande échelle et de l'approximation de la vraisemblance marginale.