CSI 4106 - Automne 2024
Version: oct. 23, 2024 15h12
L’apprentissage profond (DL) est une technique d’apprentissage automatique qui peut être appliquée à l’apprentissage supervisé (y compris la régression et la classification), à l’apprentissage non supervisé et à l’apprentissage par renforcement.
Inspiré de la structure et du fonctionnement des réseaux neuronaux biologiques observés chez les animaux.
Composé de neurones interconnectés (ou unités) disposés en couches.
Le théorème de l’approximation universelle stipule qu’un réseau neuronal à propagation directe avec une seule couche cachée contenant un nombre fini de neurones peut approximer n’importe quelle fonction continue sur un sous-ensemble compact de \(\mathbb{R}^n\), à condition que les poids et les fonctions d’activation appropriés soient utilisés.
Un perceptron à deux couches calcule :
\[ y = \phi_2(\phi_1(X)) \]
où
\[ \phi_l(Z) = \phi(W_lZ_l + b_l) \]
Un perceptron à 3 couches calcule :
\[ y = \phi_3(\phi_2(\phi_1(X))) \]
où
\[ \phi_l(Z) = \phi(W_lZ_l + b_l) \]
Un perceptron à \(k\) couches calcule :
\[ y = \phi_k( \ldots \phi_2(\phi_1(X)) \ldots ) \]
où
\[ \phi_l(Z) = \phi(W_lZ_l + b_l) \]
Apprentissage de représentations par rétropropagation des erreurs
David E. Rumelhart, Geoffrey E. Hinton & Ronald J. Williams
Nous décrivons une nouvelle procédure d’apprentissage, la rétropropagation, pour les réseaux de neurones simulant le comportement des neurones biologiques. La procédure ajuste à plusieurs reprises les poids des connexions dans le réseau afin de minimiser une mesure de la différence entre le vecteur de sortie réel du réseau et le vecteur de sortie désiré. À la suite de ces ajustements de poids, des unités internes ‘cachées’, qui ne font pas partie de l’entrée ou de la sortie, viennent représenter des attributs importants du domaine de la tâche, et les régularités dans la tâche sont capturées par les interactions de ces unités. La capacité à créer de nouveaux attributs utiles distingue la rétropropagation des méthodes plus anciennes et plus simples telles que la procédure de convergence du perceptron.
Des limitations, comme l’incapacité à résoudre la tâche de classification XOR, ont bloqué la recherche sur les réseaux neuronaux.
Le perceptron était limité à une seule couche, et il n’existait aucune méthode connue pour entraîner un perceptron multicouche.
Les perceptrons monocouche sont limités à la résolution de tâches de classification linéairement séparables.
Le modèle utilise la moyenne des erreurs quadratiques comme fonction de perte.
La descente de gradient est utilisée pour minimiser la perte.
Une fonction d’activation sigmoid est utilisée au lieu d’une fonction de seuil, car sa dérivée fournit des informations précieuses pour la descente de gradient.
Montre comment mettre à jour les poids internes en utilisant un algorithme à deux passes composé d’une passe avant et d’une passe arrière.
Permet l’entraînement des perceptrons multicouches.
Initialisation
Passe avant
Calcul de la perte
Passe arrière (Rétropropagation)
Répéter les étapes 2 à 5.
Initialiser les poids et biais du réseau neuronal.
Pour chaque exemple dans l’ensemble d’entraînement (ou dans un mini-lot) :
Couche d’entrée : Passez les attributs d’entrée à la première couche.
Couches cachées : Pour chaque couche cachée, calculez les activations (sortie) en appliquant la somme pondérée des entrées plus le biais, suivie d’une fonction d’activation (par exemple, sigmoid, ReLU).
Couche de sortie : Même processus que pour les couches cachées. Les activations de la couche de sortie représentent les valeurs prédites.
Calculez la perte (erreur) à l’aide d’une fonction de perte appropriée en comparant les valeurs prédites aux valeurs cibles réelles.
Couche de sortie : Calculez le gradient de la perte par rapport aux poids et aux biais de la couche de sortie en utilisant la règle de chaîne du calcul.
Couches cachées : Propagez l’erreur en arrière à travers le réseau, couche par couche. Pour chaque couche, calculez le gradient de la perte par rapport aux poids et biais. Utilisez la dérivée de la fonction d’activation pour aider à calculer ces gradients.
Mettre à jour les poids et biais : Ajustez les poids et biais en utilisant les gradients calculés et un taux d’apprentissage, qui détermine la taille des ajustements.
Fonctions d’activation : Des fonctions comme sigmoid, ReLU et tanh introduisent de la non-linéarité, permettant au réseau d’apprendre des modèles complexes.
Taux d’apprentissage : Un hyperparamètre qui contrôle de combien on modifie le modèle en réponse à l’erreur estimée chaque fois que les poids du modèle sont mis à jour.
Descente de gradient : Un algorithme d’optimisation utilisé pour minimiser la fonction de perte en se déplaçant itérativement vers la plus grande descente définie par le négatif du gradient.
Problème des gradients qui disparaissent (vanishing gradients) : Les gradients deviennent trop petits, entravant la mise à jour des poids.
La recherche sur les réseaux neuronaux a de nouveau stagné au début des années 2000.
La sigmoid et sa dérivée (plage : 0 à 0,25) étaient des facteurs clés.
Initialisation courante : Les poids/biais de \(\mathcal{N}(0, 1)\) ont contribué au problème.
Figure 6
Figure 7
Fonctions d’activation alternatives : Unité linéaire rectifiée (ReLU) et ses variantes (par exemple, Leaky ReLU, Parametric ReLU, et Exponential Linear Unit).
Initialisation des poids : Initialisation Xavier (Glorot) ou He.
Objectif : Atténuer le problème des gradients instables dans les réseaux neuronaux profonds.
Flux de signal :
Ajustement de la variance :
Passe avant : Assurez-vous que la variance de sortie de chaque couche correspond à la variance d’entrée.
Passe arrière : Maintenez une variance de gradient égale avant et après le passage dans chaque couche.
Une méthode d’initialisation similaire mais légèrement différente, conçue pour fonctionner avec ReLU, ainsi que Leaky ReLU, ELU, GELU, Swish, et Mish.
L’initialisation aléatoire des poids1 suffit à briser la symétrie dans un réseau neuronal, permettant ainsi de fixer les termes de biais à zéro sans nuire à la capacité d’apprentissage du réseau.
Une série de vidéos, avec des animations, offrant l’intuition derrière l’algorithme de rétropropagation.
Neural networks (playlist)
Une des séries de vidéos les plus complètes sur l’algorithme de rétropropagation.
Introduction to neural networks (playlist)
Marcel Turcotte
École de science informatique et de génie électrique (SIGE)
Université d’Ottawa