Partager via


Réseau neuronal à deux classes

Crée un classifieur binaire à l'aide d'un algorithme de réseau neuronal.

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

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éseau neuronal à deux classes dans Machine Learning Studio (classic) pour créer un modèle de réseau neuronal qui peut être utilisé pour prédire une cible qui a uniquement deux valeurs.

La classification à l’aide de réseaux neuronaux 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. Par exemple, vous pouvez utiliser ce modèle de réseau neuronal pour prédire des résultats binaires tels que l’affection ou non d’un patient par une maladie ou la possibilité ou non qu’un ordinateur fasse l’objet d’une défaillance dans une fenêtre de temps donnée.

Une fois le modèle défini, vous devez le former en fournissant un jeu de données avec balises et le modèle en tant qu’entrée pour former le modèle ou ajuster les hyperparamètres de modèle. Le modèle formé peut ensuite être utilisé pour prédire des valeurs pour les nouvelles entrées.

Plus d’informations sur les réseaux neuronaux

Un réseau neuronal est un ensemble de couches connectées entre elles. Les entrées représentent la première couche et sont connectées à une couche de sortie par un graphique acyclique constitué de nœuds et de bords pondérés.

Entre les couches d’entrée et de sortie, vous pouvez insérer plusieurs couches masquées. La plupart des tâches prédictives peuvent être accomplies facilement avec une ou quelques couches masquées. Toutefois, les recherches récentes ont montré que les réseaux neuronaux profonds (DNN) avec de nombreuses couches peuvent être très efficaces dans des tâches complexes telles que la reconnaissance vocale ou d’images. Les couches successives sont utilisées pour modéliser des niveaux de profondeur sémantique toujours plus importants.

La relation entre les entrées et les sorties est tirée de la formation du réseau neuronal sur les données d’entrée. Le graphique commence par les entrées, se poursuit avec la couche masquée et s’achève avec la couche de sortie. Tous les nœuds d’une couche sont connectés par les bords pondérés aux nœuds de la couche suivante.

Pour calculer la sortie du réseau pour une entrée donnée, une valeur est calculée sur chaque nœud dans les couches masquées et dans la couche de sortie. La valeur est définie selon le calcul de la somme pondérée des valeurs des nœuds de la couche précédente. Une fonction d’activation est ensuite appliquée à cette somme pondérée.

Comment configurer Two-Class réseau neuronal

  1. Ajoutez le module de réseau neuronal à deux classes à votre expérience dans Studio (Classic). Vous pouvez trouver ce module sous Machine Learning, Initialiser, dans la catégorie Classification.

  2. Spécifiez le mode d’apprentissage du modèle en définissant l’option 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. Pour Hidden layer specification (Spécification de couche masquée), sélectionnez le type d’architecture réseau à créer.

    • Cas de connexion complète: utilise l’architecture de réseau neuronal par défaut, définie pour les réseaux neuronaux à deux classes comme suit :

      • Possède une couche caché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 d’entrée correspond au nombre de caractéristiques dans les données de formation.

      • Le nombre de nœuds dans la couche masquée est défini par l’utilisateur. La valeur par défaut est 100.

      • Le nombre de nœuds correspond au nombre de classes. Pour un réseau neuronal à deux classes, cela signifie que toutes les entrées doivent correspondre à l’un des deux nœuds dans la couche de sortie.

    • Script de définition personnalisé: choisissez cette option pour créer une architecture de réseau neuronal personnalisée à l’aide du langage net #. Avec cette option, vous pouvez définir le nombre de couches masquées, leurs connexions et les mappages entre les couches.

    Après avoir sélectionné l’option de script personnalisé, dans la zone de texte définition du réseau neuronal , tapez ou collez les instructions net # qui définissent le réseau. Pour obtenir des exemples, consultez Guide du langage de spécification des réseaux neuronaux net #.

  4. Si vous n’utilisez pas l’option de script, utilisez le nombre de nœuds masquéset tapez le nombre de nœuds masqués. La valeur par défaut est une couche masquée avec 100 nœuds.

  5. Pour Learning rate (Taux d’apprentissage), définissez la taille de 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 doit traiter les cas d’apprentissage.

  7. Pour The initial learning weights diameter (Le diamètre initial des pondérations d’apprentissage), spécifiez les pondérations de nœud au début du processus d’apprentissage.

  8. Pour The momentum (La dynamique), spécifiez une pondération à appliquer pendant l’apprentissage aux nœuds des itérations précédentes.

  9. Dans le type denormalisation, sélectionnez une méthode à utiliser pour la normalisation des fonctionnalités. Les méthodes de normalisation suivantes sont prises en charge :

    • Compartimentage normaliser: la normalisation compartimentage crée des emplacements de même taille, puis normalise chaque valeur de chaque emplacement, en la divisant par le nombre total d’emplacements.

    • Normalisation gaussienne: la normalisation gaussienne redimensionne les valeurs de chaque fonctionnalité pour avoir la moyenne 0 et la variance 1. Pour ce faire, calculez la moyenne et la variance de chaque fonctionnalité. Pour chaque instance, la valeur moyenne est soustraite et le résultat est divisé 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 (Réorganiser les exemples de façon aléatoire) pour réorganiser les cas entre les itérations de façon aléatoire. 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 Random number seed (Valeur initiale aléatoire), tapez une valeur à utiliser comme valeur initiale.

    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. Dans le cas contraire, une valeur d’horloge système est utilisée comme valeur initiale, ce qui peut entraîner des résultats légèrement différents chaque fois que vous exécutez l’expérience.

  12. Sélectionnez l’option autoriser les niveaux catégoriques inconnus pour créer un regroupement des valeurs inconnues dans les jeux d’apprentissage et de validation. 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. Ajoutez un jeu de données avec balises à l’expérience, puis connectez l’un des modules de formation.

    Notes

    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 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 d’apprentissage, consultez la Azure ai Gallery. Ces expériences sont liées et décrites dans un document unique qui passe 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 une quantité équitable de balayage (itérations) sur les 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;1.0] Float 0.1 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 Quand 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 d'itérations d'apprentissage >=1 Integer 100 Spécifier le nombre d'itérations effectuées pendant 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.
Autoriser les niveaux catégoriels inconnus Quelconque Boolean True Indiqué 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 d'apprentissage, elles sont mappées à ce niveau inconnu.

Output

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

Voir aussi

Classification
Régression de réseau neuronal
Réseau neuronal multiclasse
Liste alphabétique des modules