Optimiseurs et stratégies de régularisation dans le Machine Learning et le Deep Learning avec Python

Lors de la création de modèles de Machine Learning (ML) et de Deep Learning (DL), il ne suffit pas de simplement définir l'architecture du réseau neuronal ou de choisir les bonnes caractéristiques. Il est crucial d'optimiser efficacement les paramètres du modèle et de garantir que le modèle se généralise bien aux données invisibles. Pour ce faire, nous utilisons des optimiseurs et des stratégies de régularisation, qui sont des composants fondamentaux dans la formation des modèles d'apprentissage automatique.

Optimiseurs

Les optimiseurs sont des algorithmes ou des méthodes utilisés pour modifier les attributs du modèle de machine learning, tels que la pondération des réseaux neuronaux, afin de réduire les pertes. En d'autres termes, ils contribuent à minimiser la fonction de coût, qui mesure les performances du modèle.

L'optimiseur le plus simple et le plus connu est Gradient Descent. Cette méthode utilise le gradient de la fonction de coût par rapport aux paramètres du modèle pour mettre à jour les paramètres dans le sens qui réduit la fonction de coût.

En pratique, la descente de gradient peut être très lente, en particulier pour les grands ensembles de données et les modèles complexes. Par conséquent, des variantes de Gradient Descent sont souvent utilisées, telles que :

  • SGD (Stochastic Gradient Descent) : version de Gradient Descent qui utilise uniquement un sous-ensemble de données pour calculer le dégradé à chaque mise à jour. Cela rend le processus plus rapide, même si cela peut introduire des variations dans les mises à jour des paramètres.
  • Momentum : permet d'accélérer le SGD dans la bonne direction et d'amortir les oscillations en ajoutant une fraction du vecteur de mise à jour de l'étape précédente à l'étape actuelle.
  • Adagrad : adapte le taux d'apprentissage pour chaque paramètre, permettant aux paramètres avec des mises à jour fréquentes d'avoir des taux d'apprentissage réduits et vice versa.
  • RMSprop : modifie Adagrad pour améliorer ses performances dans des contextes non convexes en ajustant le taux d'apprentissage en fonction d'une moyenne mobile du carré des gradients.
  • Adam : combine les idées de Momentum et RMSprop et est souvent recommandé comme point de départ par défaut pour de nombreuses applications DL.

Choisir le bon optimiseur et ajuster ses hyperparamètres, tels que le taux d'apprentissage, est essentiel pour de bonnes performances du modèle.

Stratégies de régularisation

La régularisation est une technique utilisée pour empêcher le surajustement, qui se produit lorsqu'un modèle apprend des modèles spécifiques à partir des données d'entraînement mais ne parvient pas à les généraliser à de nouvelles données. Plusieurs stratégies de régularisation peuvent être appliquées pour éviter ce problème :

  • Régularisation L1 (Lasso) : Ajoute un terme de pénalité proportionnel à la somme des valeurs absolues des coefficients. Cela peut conduire à des modèles plus simples, certaines fonctionnalités étant complètement ignorées par le modèle.
  • Régularisation L2 (Ridge) : ajoute un terme de pénalité proportionnel à la somme des carrés des coefficients. Cela pénalise les poids élevés et tend à donner lieu à des modèles plus fluides dans lesquels les poids ne deviennent pas trop importants.
  • Elastic Net : combine les pénalités L1 et L2, permettant au modèle de conserver les propriétés des deux.
  • Abandon : pendant l'entraînement, certains neurones sont "éteints" de manière aléatoire, ce qui permet d'éviter que le modèle ne devienne trop dépendant d'un neurone spécifique et favorise ainsi la généralisation.
  • Abandon li>
  • Early Stopping : Il consiste à arrêter l'entraînement dès que les performances du modèle commencent à se dégrader sur les données de validation. Cela empêche le modèle de continuer à apprendre des bruits et des modèles spécifiques à partir des données d'entraînement.
  • Normalisation par lots : normalise la sortie d'une couche précédente, en redistribuant les activations de telle sorte que la moyenne de sortie soit proche de zéro et que l'écart type soit proche de un. Cela stabilise le processus d'apprentissage et réduit le nombre d'hyperparamètres sensibles.

Il est courant de combiner plusieurs de ces techniques de régularisation pour obtenir de meilleurs résultats. Le choix et le réglage des stratégies de régularisation dépendent du modèle spécifique, de l'ensemble de données et du problème à résoudre.

Implémentation avec Python

En Python, des bibliothèques telles que TensorFlow et Keras facilitent la mise en œuvre d'optimiseurs et de stratégies de régularisation. Par exemple, lors de la construction d'un modèle avec Keras, vous pouvez facilement ajouter une régularisation L1 ou L2 aux poids d'une couche :

des régularisateurs d'importation keras

model.add(Dense(64, input_dim=64,
                kernel_regularizer=regularizers.l2(0.01),
                Activity_regularizer=regularizers.l1(0.01)))


De même, choisir un optimiseur est aussi simple que de transmettre une instance de l'optimiseur lors de la compilation du modèle :

de keras.optimizers importer Adam

model.compile(loss='sparse_categorical_crossentropy',
              optimiseur=Adam(lr=0,001),
              métriques=['précision'])

Grâce à ces outils, vous pouvez expérimenter différentes combinaisons d'optimiseurs et de techniques de régularisation pour trouver la configuration optimale pour votre modèle et votre ensemble de données.

Conclusion

Les optimiseurs et les stratégies de régularisation sont des éléments essentiels au développement de modèles ML et DL efficaces. Ils jouent un rôle crucial dans l’optimisation des performances du modèle et dans la prévention du surajustement. Choisir le bon optimiseur et appliquer des techniques de régularisation appropriées peuvent avoir un impact significatif sur la qualité des prédictions du modèle.

Avec Python et ses bibliothèques robustes, les praticiens du ML et du DL disposent d'un large éventail d'options pour optimiser et régulariser leurs modèles, leur permettant de se concentrer davantage sur la modélisation et moins sur la mise en œuvre d'algorithmes complexes.

Répondez maintenant à l’exercice sur le contenu :

Laquelle des affirmations suivantes concernant les optimiseurs dans le Machine Learning (ML) et le Deep Learning (DL) est correcte ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Construire des réseaux de neurones avec Keras et TensorFlow

Page suivante de lebook gratuit :

67Construire des réseaux de neurones avec Keras et TensorFlow

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte