Réseau neuronal multiclasse
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.
- Consultez les informations sur le déplacement des projets de machine learning de ML Studio (classique) à Azure Machine Learning.
- En savoir plus sur Azure Machine Learning.
La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.
Crée un modèle de classification multiclasse à 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 multiclasse dans Machine Learning Studio (classic) pour créer un modèle de réseau neuronal qui peut être utilisé pour prédire une cible ayant plusieurs valeurs.
Par exemple, les réseaux neuronaux de ce type peuvent être utilisés dans des tâches complexes de vision par ordinateur, telles que la reconnaissance de chiffres ou de lettres, la classification de documents et la reconnaissance de formes.
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.
Vous pouvez effectuer l’apprentissage du modèle en fournissant le modèle et le DataSet balisé 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 nouveaux exemples d’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 un réseau neuronal multiclasse
Ajoutez le module de réseau neuronal multiclasse à votre expérience dans Studio (Classic). Vous pouvez trouver ce module sous Machine Learning, Initialiser, dans la catégorie Classification.
Create trainer mode (Créer un mode d’apprentissage) : Utilisez cette option pour spécifier comment vous voulez que le modèle soit entraîné :
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 et que vous souhaitez utiliser un balayage de paramètre. Vous spécifiez ensuite 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.
Hidden layer specification (Spécification de couche masquée) : Sélectionnez le type d’architecture de réseau à créer.
Cas de connexion complète: sélectionnez cette option pour créer un modèle à l’aide de l’architecture réseau neuronal par défaut. Voici les valeurs par défaut pour les modèles de réseau neuronal multiclasse :
- Une couche cachée
- La couche de sortie est entièrement connectée à la couche masquée.
- 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 est déterminé par le nombre de caractéristiques dans les données de formation.
- Le nombre de nœuds dans la couche masquée peut être défini par l’utilisateur. La valeur par défaut est 100.
- Le nombre de nœuds dans la couche de sortie dépend du nombre de classes.
Script de définition personnalisé. Choisissez cette option pour créer une architecture de réseau neuronal personnalisée à l’aide du langage net #. Vous pouvez définir le nombre de couches masquées, leurs connexions et les options avancées, telles que la spécification des mappages entre les couches. Pour obtenir une présentation de net #, consultez plus d’informations sur net # plus loin dans cette rubrique.
Définition de réseau neuronal: Si vous avez sélectionné l’option architecture personnalisée, utilisez la zone de texte pour taper ou coller des instructions écrites en langage net #. Pour obtenir d’autres exemples de scripts, consultez Guide du langage de spécification des réseaux neuronaux net #.
Number of hidden nodes (Nombre de nœuds masqués) : cette option vous permet de personnaliser le nombre de nœuds masqués dans l’architecture par défaut. Entrez le nombre de nœuds masqués. La valeur par défaut est une couche masquée avec 100 nœuds.
The learning rate (Le taux d’apprentissage) : définissez la taille de l’étape franchie à 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.
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.
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.
The momentum (La dynamique) : spécifiez une pondération à appliquer pendant l’apprentissage aux nœuds des itérations précédentes.
Type denormalisation : sélectionnez la 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 chutiers de taille égale, puis normalise chaque valeur dans chaque emplacement, en 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.
Shuffle examples (Réorganiser les exemples de façon aléatoire) : sélectionnez cette option 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.
Valeur initiale de nombre aléatoire: tapez une valeur à utiliser comme valeur de départ, si vous souhaitez garantir la répétabilité entre les exécutions de la même expérience.
Autoriser les niveaux de catégorie inconnus: sélectionnez cette option pour créer un regroupement pour les 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.
Connectez un jeu de données d’apprentissage à 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.
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 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.
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 les exemples d’expériences suivants dans le Azure ai Gallery. Les expérimentations sont liées entre elles et décrites dans un même document, qui passe progressivement des configurations de base aux configurations avancées :
- Exemple de réseaux neuronaux en profondeur (partie A)
- Exemple de réseaux neuronaux en profondeur (partie B)
- Exemple de réseaux neuronaux en profondeur (partie C)
- Exemple de réseaux neuronaux en profondeur (partie D)
Notes techniques
Cette section contient des détails, des conseils et des réponses aux questions fréquentes concernant l’implémentation.
Personnalisation du réseau neuronal à l’aide d’un script
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 : celles-ci sont parfois appelées couches masquées, car elles sont contenues dans le modèle et ne sont pas directement exposées en tant que 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;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 | Normaliseur minimum-maximum | 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 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. | |
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 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 multiclasse non formé |
Voir aussi
Classification
Réseau neuronal à deux classes
Régression de réseau neuronal
Liste alphabétique des modules