Partager via


Régression de réseau neuronal

Important

Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.

À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.

La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.

Crée un modèle de régression à l’aide d’un algorithme de réseau neuronal

catégorie : Machine Learning/initialiser le modèle/la régression

Notes

s’applique à: Machine Learning Studio (classic) uniquement

Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.

Vue d’ensemble du module

cet article explique comment utiliser le module de régression de réseau neuronal dans Machine Learning Studio (classic) pour créer un modèle de régression à l’aide d’un algorithme de réseau neuronal personnalisable.

Bien que les réseaux neuronaux soient largement connus pour une utilisation dans le Deep Learning et la modélisation de problèmes complexes tels que la reconnaissance d’image, ils s’adaptent facilement aux problèmes de régression. Une classe de modèles statistiques peut être appelée un réseau neuronal si elle utilise des pondérations adaptatives et est en mesure d’estimer des fonctions non linéaires de leurs entrées. La régression de réseau neuronal convient ainsi aux problèmes pour lesquels un modèle de régression plus traditionnel ne parvient pas à trouver de solution.

La régression de réseau neuronal est une méthode d’apprentissage supervisée. Ainsi, elle nécessite un jeu de données avec balises, qui inclut une colonne d’étiquette. Dans la mesure où un modèle de régression prédit une valeur numérique, la colonne d’étiquette doit être un type de données numériques.

Vous pouvez effectuer l’apprentissage du modèle en fournissant le modèle et le DataSet balisé en tant qu’entrée pour l' apprentissage du modèle ou l' optimisation des hyperparamètres de modèle. Le modèle formé peut ensuite être utilisé pour prédire des valeurs pour les nouveaux exemples d’entrées.

Comment configurer la régression de réseau neuronal

Les réseaux neuronaux peuvent être hautement personnalisés. Cette section décrit la création d’un modèle selon deux méthodes :

  • Créer un modèle de réseau neuronal à l’aide de l’architecture par défaut

    Si vous acceptez l’architecture de réseau neuronal par défaut, utilisez le volet Propriétés pour définir les paramètres qui contrôlent le comportement du réseau neuronal, comme le nombre de nœuds dans la couche masquée, le taux d’apprentissage et la normalisation.

    Commencez ici si vous ne connaissez pas encore les réseaux neuronaux. Le module prend en charge de nombreuses personnalisations, ainsi que le réglage de modèle, sans une connaissance approfondie des réseaux neuronaux.

  • Définir une architecture personnalisée pour un réseau neuronal

    Utilisez cette option si vous souhaitez ajouter des couches masquées supplémentaires ou personnaliser entièrement l’architecture du réseau, ses connexions et fonctions d’activation.

    Cette option est recommandée si vous connaissez déjà les réseaux neuronaux. Vous utilisez le langage net # pour définir l’architecture réseau.

Créer un modèle de réseau neuronal à l’aide de l’architecture par défaut

  1. Ajoutez le module de régression de réseau neuronal à votre expérience dans Studio (Classic). Vous le trouverez sous Machine Learning, Initialiser, dans la catégorie Régression.

  2. Indiquez le mode d’apprentissage du modèle en définissant l’option Create trainer mode (Créer un mode d’apprentissage).

    • Single Parameter (Paramètre unique) : choisissez cette option si vous savez déjà comment vous souhaitez configurer le modèle.

    • Plage de paramètres: choisissez cette option si vous n’êtes pas sûr des meilleurs paramètres. Ensuite, spécifiez une plage de valeurs et utilisez le module ajuster le modèle hyperparamètres pour itérer au sein des combinaisons et rechercher la configuration optimale.

  3. Dans spécification de la couche masquée, sélectionnez casse entièrement connectée. Cette option crée un modèle à l’aide de l’architecture réseau neuronal par défaut qui, pour un modèle de régression de réseau neuronal, comporte les attributs suivants :

    • Le réseau a exactement une seule couche masquée.
    • La couche de sortie est entièrement connectée à la couche masquée, et la couche masquée est entièrement connectée à la couche d’entrée.
    • Le nombre de nœuds dans la couche masquée peut être défini par l’utilisateur (valeur par défaut de 100).

    Étant donné que le nombre de nœuds dans la couche d’entrée est déterminé par le nombre de fonctionnalités dans les données d’apprentissage, un modèle de régression ne peut comporter qu’un seul nœud dans la couche de sortie.

  4. Pour Number of hidden nodes (Nombre de nœuds masqués), saisissez le nombre de nœuds masqués. La valeur par défaut est une couche masquée avec 100 nœuds. (Cette option n’est pas disponible si vous définissez une architecture personnalisée à l’aide de Net#.)

  5. Pour Learning rate (Taux d’apprentissage), saisissez une valeur qui définit l’étape effectuée à chaque itération, avant correction. Avec une valeur de taux d’apprentissage supérieure, le modèle convergera peut-être plus rapidement, mais cette valeur peut dépasser les minima locaux.

  6. Pour Number of learning iterations (Nombre d’itérations d’apprentissage), spécifiez le nombre maximal de fois où l’algorithme traite les cas d’apprentissage.

  7. Pour le diamètre des poids d’apprentissage initial , tapez une valeur qui détermine les poids des nœuds au début du processus d’apprentissage.

  8. Pour The momentum (La dynamique), saisissez une valeur à appliquer pendant l’apprentissage sous forme de pondération sur les nœuds des itérations précédentes.

  9. Pour le type denormalisation, choisissez l’une des méthodes suivantes à utiliser pour la normalisation des fonctionnalités :

    • Compartimentage normaliser: compartimentage crée des groupes de taille égale, puis normalise chaque valeur de chaque groupe à diviser par le nombre total de groupes.

    • Normalisation gaussienne: la normalisation gaussienne redimensionne les valeurs de chaque fonctionnalité pour avoir la moyenne 0 et la variance 1. Cela s’effectue en calculant la moyenne et la variance de chaque fonctionnalité, puis, pour chaque instance, en soustrayant la valeur moyenne et en la divisant par la racine carrée de la variance (écart type).

    • Normalisation min-max: la normalisation min-max réadapte de manière linéaire chaque fonctionnalité à l’intervalle [0,1].

      Le redimensionnement à l'intervalle [0,1] s'effectue en décalant les valeurs de chaque fonction afin que la valeur minimale soit 0, puis en divisant par la nouvelle valeur maximale (qui correspond à la différence entre les valeurs maximale et minimale d'origine).

    • Ne pas normaliser: aucune normalisation n’est effectuée.

  10. Sélectionnez l’option Shuffle examples (Exemples de lecture aléatoire) pour modifier l’ordre des cas entre les itérations. Si vous désélectionnez cette option, les cas sont traités exactement dans le même ordre chaque fois que vous exécutez l’expérience.

  11. Pour Valeur de départ numérique aléatoire, vous pouvez éventuellement saisir une valeur initiale à utiliser. La spécification d’une valeur initiale est utile lorsque vous souhaitez garantir la répétabilité entre les exécutions de la même expérience.

  12. Sélectionnez l’option autoriser les niveaux de catégorie inconnus pour créer un regroupement pour les valeurs inconnues. Le modèle peut être moins précis sur les valeurs connues, mais fournir de meilleures prédictions pour les nouvelles valeurs (inconnues).

    Si vous désélectionnez cette option, le modèle peut accepter uniquement les valeurs contenues dans les données d’apprentissage.

  13. Connecter un dataset d’apprentissage et l’un des modules de formation:

    • Si vous définissez Create trainer mode (Créer un mode d’apprentissage) sur Single Parameter (Paramètre unique), utilisez Train Model (Entraîner le modèle).

    • Si vous affectez à créer le mode formateur la valeur plage de paramètres, utilisez les hyperparamètres du modèle d’optimisation.

    Avertissement

    Si vous transmettez une plage de paramètres au module Entraîner le modèle, il utilise uniquement la première valeur dans la liste de plages de paramètres.

    Si vous transmettez un ensemble unique de valeurs de paramètre au module Optimiser les hyperparamètres du modèle, quand il attend une plage de paramètres pour chaque paramètre, il ignore les valeurs et utilise les valeurs par défaut pour l’apprenant.

    Si vous sélectionnez l’option Plage de paramètres et que vous entrez une valeur unique pour un paramètre, cette valeur unique que vous avez spécifiée est utilisée tout au long du balayage, même si d’autres paramètres changent sur une plage de valeurs.

  14. Exécutez l’expérience.

Définir une architecture personnalisée

  1. Ajoutez le module de régression de réseau neuronal à votre expérience.

  2. Indiquez le mode d’apprentissage du modèle en définissant l’option Create trainer mode (Créer un mode d’apprentissage).

    • Single Parameter (Paramètre unique) : choisissez cette option si vous savez déjà comment vous souhaitez configurer le modèle.

    • Plage de paramètres: choisissez cette option si vous n’êtes pas sûr des meilleurs paramètres. Ensuite, spécifiez une plage de valeurs et utilisez le module ajuster le modèle hyperparamètres pour itérer au sein des combinaisons et rechercher la configuration optimale.

  3. Dans spécification de la couche masquée, sélectionnez script de définition personnalisée. Vous devez choisir cette option si vous souhaitez définir une architecture de réseau neuronal personnalisée à l’aide du langage net # .

  4. Une fois que vous avez sélectionné l’option de script définition personnalisée , la zone de texte définition du réseau neuronal s’affiche. Vous pouvez coller le script net # pour définir une architecture personnalisée pour le réseau neuronal, y compris le nombre de couches masquées, leurs connexions et les options avancées, telles que la spécification des mappages entre les couches.

  5. Pour Learning rate (Taux d’apprentissage), saisissez une valeur qui définit l’étape effectuée à chaque itération, avant correction. Avec une valeur de taux d’apprentissage supérieure, le modèle convergera peut-être plus rapidement, mais cette valeur peut dépasser les minima locaux.

  6. Pour Number of learning iterations (Nombre d’itérations d’apprentissage), spécifiez le nombre maximal de fois où l’algorithme traite les cas d’apprentissage.

  7. Pour le diamètre des poids d’apprentissage initial , tapez une valeur qui détermine les poids des nœuds au début du processus d’apprentissage.

  8. Pour The momentum (La dynamique), saisissez une valeur à appliquer pendant l’apprentissage sous forme de pondération sur les nœuds des itérations précédentes.

  9. Pour le type denormalisation, choisissez l’une des méthodes suivantes à utiliser pour la normalisation des fonctionnalités :

    • Compartimentage normaliser: compartimentage crée des groupes de taille égale, puis normalise chaque valeur de chaque groupe, en divisant par le nombre total de groupes.

    • Normalisation gaussienne: la normalisation gaussienne redimensionne les valeurs de chaque fonctionnalité pour avoir la moyenne 0 et la variance 1. Cela s’effectue en calculant la moyenne et la variance de chaque fonctionnalité, puis, pour chaque instance, en soustrayant la valeur moyenne et en la divisant par la racine carrée de la variance (écart type).

    • Min-max: la normalisation min-max réadapte de manière linéaire chaque fonctionnalité à l’intervalle [0,1].

      Le redimensionnement à l'intervalle [0,1] s'effectue en décalant les valeurs de chaque fonction afin que la valeur minimale soit 0, puis en divisant par la nouvelle valeur maximale (qui correspond à la différence entre les valeurs maximale et minimale d'origine).

    • Ne pas normaliser: aucune normalisation n’est effectuée.

  10. Sélectionnez l’option Shuffle examples (Exemples de lecture aléatoire) pour modifier l’ordre des cas entre les itérations. Si vous désélectionnez cette option, les cas sont traités exactement dans le même ordre chaque fois que vous exécutez l’expérience.

  11. Pour Valeur de départ numérique aléatoire, vous pouvez éventuellement saisir une valeur initiale à utiliser. La spécification d’une valeur initiale est utile lorsque vous souhaitez garantir la répétabilité entre les exécutions de la même expérience.

  12. Sélectionnez l’option autoriser les niveaux de catégorie inconnus pour créer un regroupement pour les valeurs inconnues. Toutes les valeurs inconnues dans le jeu de données de test sont mappées à cette catégorie inconnue. L’utilisation de cette option peut rendre le modèle légèrement moins précis sur les valeurs connues, mais fournir de meilleures prédictions pour les nouvelles valeurs (inconnues).

    Si vous désélectionnez cette option, le modèle peut effectuer des prédictions uniquement pour les valeurs contenues dans les données d’apprentissage.

  13. Connecter un dataset d’apprentissage et l’un des modules de formation:

    • Si vous définissez Create trainer mode (Créer un mode d’apprentissage) sur Single Parameter (Paramètre unique), utilisez Train Model (Entraîner le modèle).

    • Si vous affectez à créer le mode formateur la valeur plage de paramètres, utilisez les hyperparamètres du modèle d’optimisation.

    Avertissement

    Si vous transmettez une plage de paramètres pour former le modèle, elle utilise uniquement la première valeur de la liste des plages de paramètres.

    Si vous transmettez un ensemble unique de valeurs de paramètre au module paramétrer les hyperparamètres de modèle , lorsqu’il attend une plage de paramètres pour chaque paramètre, il ignore les valeurs et utilise les valeurs par défaut pour l’apprenant.

    Si vous sélectionnez l’option plage de paramètres et que vous entrez une seule valeur pour n’importe quel paramètre, cette valeur unique que vous avez spécifiée est utilisée tout au long du balayage, même si d’autres paramètres changent sur une plage de valeurs.

  14. Exécutez l’expérience.

Résultats

Une fois l’apprentissage terminé :

  • Pour afficher un résumé des paramètres du modèle, ainsi que les poids des fonctionnalités apprises à partir de l’apprentissage et d’autres paramètres du réseau neuronal, cliquez avec le bouton droit sur la sortie du modèle de formation ou Réglez les hyperparamètres de modèle, puis sélectionnez visualiser.

  • Pour enregistrer un instantané du modèle formé, cliquez avec le bouton droit sur la sortie du modèle formé et sélectionnez Save As Trained Model (Enregistrer en tant que modèle formé). Ce modèle n’est pas mis à jour lors des exécutions consécutives de la même expérience.

  • Pour effectuer une validation croisée par rapport à un jeu de données étiqueté, connectez le modèle non formé au modèle de validation croisée.

Exemples

Pour obtenir des exemples d’utilisation de cet algorithme dans des expériences, consultez les exemples suivants dans la Azure ai Gallery:

  • Comparer plusieursrégressions : illustre l’utilisation de plusieurs algorithmes de régression et compare leurs résultats.

Les expériences fournissent plus d’aide sur net #. Les expériences sont liées et progressent de la configuration de base aux configurations avancées :

Notes techniques

Cette section contient des détails, des conseils et des réponses aux questions fréquentes concernant l’implémentation.

En savoir plus sur net #

dans Machine Learning Studio (classic), vous pouvez personnaliser l’architecture d’un modèle de réseau neuronal à l’aide du langage Net #. Les personnalisations prises en charge par le langage net # sont les suivantes :

  • Spécification du nombre de couches masquées et du nombre de nœuds dans chaque couche
  • Spécification de mappages entre des couches
  • Définition des convolutions et des offres groupées de partage de poids
  • Choix de la fonction d’activation

Un modèle de réseau neuronal est défini par la structure de son graphique qui inclut les attributs suivants :

  • Nombre de couches masquées
  • Nombre de nœuds dans chaque couche masquée
  • Mode de connexion des couches
  • Quelle fonction d’activation est utilisée
  • Pondérations sur les bords du graphique

Important

La structure globale du graphique, ainsi que la fonction d’activation, peuvent être spécifiées par l’utilisateur. Toutefois, les pondérations sur les bords ne peuvent pas être spécifiées et doivent être apprises lors de l’apprentissage du réseau neuronal sur les données d’entrée.

En général, les valeurs par défaut du réseau sont les suivantes :

  • La première couche est systématiquement la couche d'entrée.
  • La dernière couche est systématiquement la couche de sortie.
  • Le nombre de nœuds dans la couche de sortie doit être égal au nombre de classes.

Vous pouvez définir n'importe quel nombre de couches intermédiaires (parfois appelées couches masquées, car elles sont contenues dans le modèle et qu'elles ne sont pas directement exposées comme points de terminaison).

Le guide de référence Net# explique la syntaxe et fournit des exemples de définitions de réseau. Il explique comment vous pouvez utiliser Net# pour ajouter des couches masquées et définir la façon dont les différentes couches interagissent entre elles.

Par exemple, le script suivant utilise le auto mot clé, qui définit le nombre de fonctionnalités automatiquement pour les couches d’entrée et de sortie, et utilise les valeurs par défaut pour la couche masquée.

input Data auto;  
hidden Hidden auto from Data all;  
output Result auto from Hidden all;   

Pour obtenir d’autres exemples de scripts, consultez Guide du langage de spécification des réseaux neuronaux net #.

Conseil

Les réseaux neuronaux peuvent être coûteux en termes de calcul, en raison d’un certain nombre d’hyperparamètres et de l’introduction de topologies de réseau personnalisées. Bien que dans de nombreux cas les réseaux neuronaux produisent de meilleurs résultats que d'autres algorithmes, l'obtention de ces résultats peut impliquer un balayage important (un grand nombre d'itérations) de ces hyperparamètres.

Paramètres du module

Nom Plage Type Default Description
Spécification de la couche masquée Liste Topologie de réseau neuronal Cas totalement connecté Spécifier l'architecture de la couche ou des couches masquées
L'apprentissage initial pondère le diamètre >=double.Epsilon Float 0.1 Spécifier les pondérations des nœuds au début du processus d'apprentissage
Taux d’apprentissage [double.Epsilon;0.01] Float 0.005 Spécifier la taille de chaque étape du processus d'apprentissage
Inertie [0.0;1.0] Float 0.0 Spécifier une pondération à appliquer au cours de l'apprentissage aux nœuds à partir des itérations précédentes
Définition du réseau neuronal Quelconque StreamReader Lorsque vous sélectionnez « Script de définition personnalisé », taper une expression de script valide sur chaque ligne pour définir les couches, les nœuds et le comportement d'un réseau neuronal personnalisé
Type de normalisation Liste Méthode de normalisation Normalisation Min-Max Sélectionner le type de normalisation à appliquer aux exemples d'apprentissage
Nombre de nœuds masqués Quelconque String 100 Tapez le nombre de nœuds de la couche masquée. Pour plusieurs couches masquées, tapez une liste séparée par des virgules.
Nombre d'itérations d'apprentissage >=1 Integer 100 Spécifier le nombre d'itérations lors de l'apprentissage
Exemples de lecture aléatoire Quelconque Boolean true Sélectionner cette option pour modifier l'ordre des instances entre les itérations d'apprentissage
Valeur initiale de nombre aléatoire Quelconque Integer Spécifiez une valeur numérique initiale à utiliser pour la génération de nombres aléatoires. Laissez vide pour utiliser la valeur de départ par défaut.

Ce paramètre est facultatif.
Autoriser les niveaux catégoriels inconnus Quelconque Boolean true Indiquez si un niveau supplémentaire doit être créé pour les catégories inconnues. Si le jeu de données de test contient des catégories qui ne figurent pas dans le jeu de données de formation, elles sont mappées à ce niveau inconnu.

Sorties

Nom Type Description
Untrained model (Modèle non entraîné) Interface ILearner Modèle de régression non formé

Voir aussi

Régression
Liste alphabétique des modules