La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
Utiliser l’application Neural Net Fitting pour adapter le réseau aux données
Cet exemple indique comment entraîner un réseau de neurones peu profond pour l'adapter aux données avec l’application Neural Net Fitting.
Ouvrez l’application Neural Net Fitting avec nftool
.
nftool
Sélectionner les données
L’application Neural Net Fitting comporte des exemples de données pour vous aider à commencer à entraîner un réseau de neurones.
Pour importer un exemple de données de graisse corporelle, sélectionnez Import > Import Body Fat Data Set. Vous pouvez utiliser ce jeu de données pour entraîner un réseau de neurones afin d’estimer la graisse corporelle d’une personne à partir de plusieurs mesures. Si vous importez vos propres données depuis un fichier ou l’espace de travail, vous devez spécifier les prédicteurs et les réponses et si les observations sont dans des lignes ou dans des colonnes.
Les informations sur les données importées apparaissent dans le Model Summary. Ce jeu de données contient 252 observations avec 13 caractéristiques chacune. Les réponses contiennent le pourcentage de graisse corporelle pour chaque observation.
Répartissez les données entre les jeux d’apprentissage, de validation et de test. Conservez les paramètres par défaut. Les données sont réparties en :
70 % pour l’apprentissage.
15 % pour valider que le réseau généralise et arrêter l’apprentissage avant un surajustement (overfitting).
15 % pour tester la généralisation du réseau de manière indépendante.
Pour plus d’informations sur la division des données, veuillez consulter Divide Data for Optimal Neural Network Training.
Créer un réseau
Ce réseau est un réseau feedforward à deux couches, avec une fonction de transfert sigmoïde dans la couche cachée et une fonction de transfert linéaire dans la couche de sortie. La valeur Layer size définit le nombre de neurones cachés. Conservez la taille de couche par défaut, 10. Vous pouvez voir l’architecture du réseau dans le volet Network. La représentation du réseau est actualisée pour refléter les données d'entrée. Dans cet exemple, les données présentent 13 entrées (caractéristiques) et une sortie.
Entraîner le réseau
Pour entraîner le réseau, sélectionnez Train > Train with Levenberg-Marquardt. Il s'agit de l’algorithme d’apprentissage par défaut, qui équivaut à cliquer sur Train.
L’apprentissage avec Levenberg-Marquardt (trainlm
) est recommandé pour la plupart des problèmes. Pour les problèmes avec un ensemble de données petit ou bruité, la régularisation bayésienne (trainbr
) peut offrir une meilleure solution, bien que cela prenne plus de temps. Pour des problèmes de grande dimension, le gradient conjugué à l’échelle (SCG, Scaled Conjugate Gradient) (trainscg
) est recommandé car il utilise des calculs de gradient qui consomment moins de mémoire que les calculs jacobiens utilisés par les deux autres algorithmes.
Vous pouvez voir la progression de l'apprentissage dans le volet Training. L'apprentissage se poursuit jusqu’à ce que l'un des critères d’arrêt soit rempli. Dans cet exemple, l’apprentissage continue jusqu’à ce que l’erreur de validation soit supérieure ou égale à la plus petite erreur de validation précédente pendant six itérations de validation consécutives (« Critère de validation respecté »).
Analyser les résultats
Le Model Summary contient des informations sur l’algorithme d’apprentissage et sur les résultats de l’apprentissage pour chaque jeu de données.
Vous pouvez continuer à analyser les résultats en générant des tracés. Pour tracer la régression linéaire, dans la section Plots, cliquez sur Regression. Le tracé de régression affiche les prédictions (sortie) du réseau par rapport aux réponses (cible) pour les jeux d’apprentissage, de validation et de test.
Pour une adaptation parfaite, les données devraient se trouver le long d’une droite à 45 degrés, où les sorties du réseau sont égales aux réponses. Pour ce problème, l’adaptation est assez bonne pour tous les jeux de données. Si vous avez besoin de résultats plus précis, vous pouvez entraîner à nouveau le réseau en cliquant à nouveau sur Train. Pour chaque apprentissage le réseau aura des poids et des biais initiaux différents et offrira potentiellement une fois l'apprentissage terminé un meilleur réseau.
Regardez l’histogramme des erreurs d’entrée pour obtenir une vérification supplémentaire des performances du réseau. Dans la section Plots, cliquez sur Error Histogram.
Les barres bleues représentent les données d’apprentissage, les barres vertes représentent les données de validation et les barres rouges représentent les données de test. L’histogramme présente une indication des valeurs aberrantes, qui sont des points de données où l’adaptation est nettement moins bonne que pour la plupart des données. Il est recommandé de vérifier les valeurs aberrantes afin de déterminer si les données sont mauvaises ou si ces points de données diffèrent du reste du jeu de données. Si les valeurs aberrantes sont des points de données valides mais ne ressemblent pas au reste des données, le réseau réalise une extrapolation pour ces points. Il est alors préférable de collecter de nouvelles données qui ressemblent aux valeurs aberrantes et entraîner à nouveau le réseau.
Si vous n’êtes pas satisfait des performances du réseau, vous disposez des possibilités suivantes :
Entraîner à nouveau le réseau.
Augmenter le nombre de neurones cachés.
Utiliser un jeu de données d’apprentissage plus grand.
De bonnes performances sur le jeu d’apprentissage associées à de mauvaises performances sur le jeu de test pourraient indiquer un surajustement (overfitting) du modèle. Une réduction du nombre de neurones permet de réduire le surajustement.
Vous pouvez également évaluer les performances du réseau sur un jeu de test supplémentaire. Pour charger des données de test supplémentaires pour l'évaluation du réseau, dans la section Test, cliquez sur Test. Le Model Summary affiche les résultats des tests supplémentaires. Vous pouvez également générer des tracés afin d’analyser les résultats des données de test supplémentaires.
Générer du code
Sélectionnez Generate Code > Generate Simple Training Script afin de créer du code MATLAB pour reproduire les étapes précédentes en ligne de commande. Il peut être utile de créer du code MATLAB si vous voulez apprendre comment utiliser la fonctionnalité de ligne de commande de la toolbox pour personnaliser le processus d’apprentissage. Dans Utiliser les fonctions en ligne de commande pour adapter les données, vous étudierez les scripts générés de manière plus détaillée.
Exporter un réseau
Vous pouvez exporter votre réseau entraîné vers l’espace de travail ou Simulink®. Vous pouvez également déployer le réseau avec les outils MATLAB Compiler™ et d’autres outils de génération de code MATLAB. Pour exporter votre réseau entraîné et vos résultats, sélectionnez Export Model > Export to Workspace.
Voir aussi
Neural Net Fitting | Neural Net Time Series | Neural Net Pattern Recognition | Neural Net Clustering | trainlm
| fitnet