Réglage des Hyperparamètres
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 motifs 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'ampleur des ajustements des poids pendant 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 :
- Nombre d'époques d'entraînement : définit combien de fois le modèle voit les données d'entraînement. Un plus grand nombre d'époques permet un meilleur apprentissage mais peut conduire à un surapprentissage si excessif.
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 motifs généraux. Cela entraîne une grande précision sur l'ensemble d'entraînement mais une mauvaise généralisation sur des données non vues.
Le sous-apprentissage, en revanche, survient lorsqu'un modèle est trop simple pour saisir les motifs sous-jacents dans les données. Cela conduit à de mauvaises performances à la fois sur l'entraînement et le test, indiquant que le modèle manque de capacité suffisante pour apprendre efficacement.
Réglage des hyperparamètres
Le réglage des hyperparamètres est essentiel pour optimiser les réseaux de neurones. Un modèle mal réglé 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 afin d'observer comment la précision sur les ensembles d'entraînement et de test évolue :
1234567891011121314151617181920212223from 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 nécessite une expérimentation systématique et des ajustements. Cela se fait souvent à l'aide de techniques telles que la recherche par grille (tester toutes les combinaisons possibles d'hyperparamètres) et la recherche aléatoire (tester un sous-ensemble aléatoire de valeurs d'hyperparamètres).
En substance, l'entraînement d'un réseau de neurones suit un cycle itératif :
- Définir le modèle avec des hyperparamètres initiaux ;
- Entraîner le modèle à l'aide du jeu de données d'entraînement ;
- Évaluer la performance sur un jeu de test ;
- Ajuster les hyperparamètres (par exemple, nombre de couches, taux d'apprentissage) ;
- Répéter le processus jusqu'à atteindre la performance souhaitée.
Ce raffinement itératif garantit que le modèle généralise correctement 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 :
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
What are some best practices for hyperparameter tuning in neural networks?
Can you explain the difference between grid search and random search?
How do I know if my model is overfitting or underfitting?
Awesome!
Completion rate improved to 4
Réglage 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 motifs 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'ampleur des ajustements des poids pendant 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 :
- Nombre d'époques d'entraînement : définit combien de fois le modèle voit les données d'entraînement. Un plus grand nombre d'époques permet un meilleur apprentissage mais peut conduire à un surapprentissage si excessif.
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 motifs généraux. Cela entraîne une grande précision sur l'ensemble d'entraînement mais une mauvaise généralisation sur des données non vues.
Le sous-apprentissage, en revanche, survient lorsqu'un modèle est trop simple pour saisir les motifs sous-jacents dans les données. Cela conduit à de mauvaises performances à la fois sur l'entraînement et le test, indiquant que le modèle manque de capacité suffisante pour apprendre efficacement.
Réglage des hyperparamètres
Le réglage des hyperparamètres est essentiel pour optimiser les réseaux de neurones. Un modèle mal réglé 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 afin d'observer comment la précision sur les ensembles d'entraînement et de test évolue :
1234567891011121314151617181920212223from 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 nécessite une expérimentation systématique et des ajustements. Cela se fait souvent à l'aide de techniques telles que la recherche par grille (tester toutes les combinaisons possibles d'hyperparamètres) et la recherche aléatoire (tester un sous-ensemble aléatoire de valeurs d'hyperparamètres).
En substance, l'entraînement d'un réseau de neurones suit un cycle itératif :
- Définir le modèle avec des hyperparamètres initiaux ;
- Entraîner le modèle à l'aide du jeu de données d'entraînement ;
- Évaluer la performance sur un jeu de test ;
- Ajuster les hyperparamètres (par exemple, nombre de couches, taux d'apprentissage) ;
- Répéter le processus jusqu'à atteindre la performance souhaitée.
Ce raffinement itératif garantit que le modèle généralise correctement 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 :
Merci pour vos commentaires !