CSI 4106 - Automne 2024
Version: oct. 23, 2024 15h00
Initialisation
Passe avant
Calcul de la perte
Passe arrière (Rétropropagation)
Répéter les étapes 2 à 5.
La fonction softmax est une fonction d’activation utilisée dans les problèmes de classification multiclasses pour convertir un vecteur de scores bruts en probabilités qui totalisent 1.
Étant donné un vecteur \(\mathbf{z} = [z_1, z_2, \ldots, z_n]\) :
\[ \sigma(\mathbf{z})_i = \frac{e^{z_i}}{\sum_{j=1}^{n} e^{z_j}} \]
où \(\sigma(\mathbf{z})_i\) est la probabilité de la classe \(i\), et \(n\) est le nombre de classes.
\(z_1\) | \(z_2\) | \(z_3\) | \(\sigma(z_1)\) | \(\sigma(z_2)\) | \(\sigma(z_3)\) | \(\sum\) |
---|---|---|---|---|---|---|
1.47 | -0.39 | 0.22 | 0.69 | 0.11 | 0.20 | 1.00 |
5.00 | 6.00 | 4.00 | 0.24 | 0.67 | 0.09 | 1.00 |
0.90 | 0.80 | 1.10 | 0.32 | 0.29 | 0.39 | 1.00 |
-2.00 | 2.00 | -3.00 | 0.02 | 0.98 | 0.01 | 1.00 |
L’entropie croisée dans une tâche de classification multiclasses pour un exemple :
\[ J(W) = -\sum_{k=1}^{K} y_k \log(\hat{y}_k) \]
Où :
Pour un ensemble de données avec \(N\) exemples, la perte moyenne d’entropie croisée sur tous les exemples est calculée comme suit :
\[ L = -\frac{1}{N} \sum_{i=1}^{N} \sum_{k=1}^{K} y_{i,k} \log(\hat{y}_{i,k}) \]
Où :
La régularisation regroupe un ensemble de techniques visant à améliorer la capacité de généralisation d’un modèle en atténuant le surapprentissage. En décourageant une complexité excessive du modèle, ces méthodes améliorent la robustesse et la performance du modèle sur des données non vues.
En optimisation numérique, il est courant d’ajouter des termes supplémentaires à la fonction objectif afin de dissuader certaines caractéristiques indésirables du modèle.
Pour un problème de minimisation, le processus d’optimisation vise à éviter des coûts élevés associés à ces termes de pénalité.
Prenons la fonction de perte de l’erreur absolue moyenne :
\[ \mathrm{MAE}(X,W) = \frac{1}{N} \sum_{i=1}^{N} | h_W(x_i) - y_i | \]
Où :
Un ou plusieurs termes peuvent être ajoutés à la perte :
\[ \mathrm{MAE}(X,W) = \frac{1}{N} \sum_{i=1}^{N} | h_W(x_i) - y_i | + \mathrm{pénalité} \]
Une norme assigne une longueur non négative à un vecteur.
La norme \(\ell_p\) d’un vecteur \(\mathbf{z} = [z_1, z_2, \ldots, z_n]\) est définie comme suit :
\[ \|\mathbf{z}\|_p = \left( \sum_{i=1}^{n} |z_i|^p \right)^{1/p} \]
La norme \(\ell_1\) (norme de Manhattan) est :
\[ \|\mathbf{z}\|_1 = \sum_{i=1}^{n} |z_i| \]
La norme \(\ell_2\) (norme euclidienne) est :
\[ \|\mathbf{z}\|_2 = \sqrt{\sum_{i=1}^{n} z_i^2} \]
Ci-dessous, \(\alpha\) et \(\beta\) déterminent le degré de régularisation appliqué ; fixer ces valeurs à zéro désactive effectivement le terme de régularisation.
\[ \mathrm{MAE}(X,W) = \frac{1}{N} \sum_{i=1}^{N} | h_W(x_i) - y_i | + \alpha \ell_1 + \beta \ell_2 \]
Le dropout est une technique de régularisation dans les réseaux neuronaux où des neurones sélectionnés aléatoirement sont ignorés pendant l’entraînement, réduisant ainsi le surapprentissage en empêchant la co-adaptation des attributs.
Lors de chaque étape d’entraînement, chaque neurone dans une couche de dropout a une probabilité \(p\) d’être exclu du calcul, des valeurs typiques de \(p\) allant de 10 % à 50 %.
Bien que cela puisse sembler contre-intuitif, cette approche empêche le réseau de dépendre de neurones spécifiques, favorisant ainsi la distribution des représentations apprises sur plusieurs neurones.
Le dropout est l’une des méthodes de régularisation les plus populaires et les plus efficaces pour réduire le surapprentissage.
L’amélioration typique des performances est modeste, généralement autour de 1 à 2 %.
import keras
from keras.models import Sequential
from keras.layers import InputLayer, Dropout, Flatten, Dense
model = tf.keras.Sequential([
InputLayer(shape=[28, 28]),
Flatten(),
Dropout(rate=0.2),
Dense(300, activation="relu"),
Dropout(rate=0.2),
Dense(100, activation="relu"),
Dropout(rate=0.2),
Dense(10, activation="softmax")
])
L’arrêt anticipé (early stopping) est une technique de régularisation qui interrompt l’entraînement dès que la performance du modèle sur un ensemble de validation commence à se dégrader, empêchant ainsi le surapprentissage en s’arrêtant avant que le modèle n’apprenne le bruit.
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