Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Ajustement des Hyperparamètres | Conclusion
Introduction aux Réseaux de Neurones avec Python

Ajustement des Hyperparamètres

Glissez pour afficher le menu

Hyperparamètres dans les réseaux de neurones

Les réseaux de neurones, y compris les perceptrons, possèdent plusieurs hyperparamètres qui influencent leurs performances. Contrairement aux paramètres du modèle (par exemple, poids et biais), les hyperparamètres sont définis avant le début de l'entraînement. Quelques hyperparamètres clés dans les perceptrons incluent :

  • Nombre de couches cachées et de neurones par couche : détermine la capacité du modèle à apprendre des schémas complexes. Trop peu de neurones peuvent entraîner un sous-apprentissage, tandis qu'un nombre trop élevé peut provoquer un surapprentissage ;

  • Taux d'apprentissage : contrôle l'ajustement des poids par le modèle lors de l'entraînement. Un taux d'apprentissage élevé peut rendre l'entraînement instable, tandis qu'un taux faible peut entraîner une convergence lente :

Différents taux d'apprentissage
  • Nombre d'époques d'entraînement : définit combien de fois le modèle voit les données d'entraînement. Un nombre plus élevé d'époques permet un meilleur apprentissage mais peut entraîner un surapprentissage si excessif.
Note
Note

Pour récapituler, le surapprentissage se produit lorsqu'un modèle apprend trop bien les données d'entraînement, capturant le bruit au lieu des tendances générales. Cela entraîne une grande précision sur l'ensemble d'entraînement mais une mauvaise généralisation aux données non vues.

À l'inverse, le sous-apprentissage survient lorsqu'un modèle est trop simple pour saisir les tendances sous-jacentes des données. Cela conduit à une mauvaise performance à la fois sur l'entraînement et le test, indiquant que le modèle manque de capacité suffisante pour apprendre efficacement.

Ajustement des hyperparamètres

L’ajustement des hyperparamètres est essentiel pour optimiser les réseaux de neurones. Un modèle mal ajusté peut entraîner un sous-apprentissage ou un surapprentissage.

Il est possible de modifier le nombre d’époques, le nombre de couches cachées, leur taille et le taux d’apprentissage pour observer comment la précision sur les ensembles d’entraînement et de test évolue :

1234567891011121314151617181920212223
from sklearn.neural_network import MLPClassifier from sklearn.metrics import accuracy_score import numpy as np import warnings # Ignore warnings warnings.filterwarnings("ignore") import os os.system('wget https://codefinity-content-media.s3.eu-west-1.amazonaws.com/f9fc718f-c98b-470d-ba78-d84ef16ba45f/section_2/data.py 2>/dev/null') from data import X_train, y_train, X_test, y_test np.random.seed(10) # Tweak hyperparameters here model = MLPClassifier(max_iter=100, hidden_layer_sizes=(6, 6), learning_rate_init=0.01, random_state=10) model.fit(X_train, y_train) y_pred_train = model.predict(X_train) y_pred_test = model.predict(X_test) # Comparing train set accuracy and test set accuracy train_accuracy = accuracy_score(y_train, y_pred_train) test_accuracy = accuracy_score(y_test, y_pred_test) print(f'Train accuracy: {train_accuracy:.3f}') print(f'Test accuracy: {test_accuracy:.3f}')

Trouver la bonne combinaison d'hyperparamètres implique une expérimentation systématique et des ajustements. Cela se fait souvent à l'aide de techniques telles que la recherche par grille (essayer toutes les combinaisons possibles d'hyperparamètres) et la recherche aléatoire (tester un sous-ensemble aléatoire de valeurs d'hyperparamètres).

Essentiellement, l'entraînement d'un réseau de neurones suit un cycle itératif :

  1. Définir le modèle avec des hyperparamètres initiaux ;
  2. Entraîner le modèle en utilisant le jeu de données d'entraînement ;
  3. Évaluer les performances sur un jeu de test ;
  4. Ajuster les hyperparamètres (par exemple, nombre de couches, taux d'apprentissage) ;
  5. Répéter le processus jusqu'à atteindre la performance souhaitée.

Ce raffinement itératif garantit que le modèle généralise bien sur des données non vues.

1. Lequel des éléments suivants est un hyperparamètre plutôt qu'un paramètre du modèle ?

2. Un taux d'apprentissage trop élevé entraînera très probablement :

question mark

Lequel des éléments suivants est un hyperparamètre plutôt qu'un paramètre du modèle ?

Sélectionnez la réponse correcte

question mark

Un taux d'apprentissage trop élevé entraînera très probablement :

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 2

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 3. Chapitre 2
some-alt