Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le réseau neuronal Microsoft utilise un réseau Perceptron multilayeur , également appelé réseau de règles deltaBack-Propagated, composé de trois couches maximum de neurones ou de perceptrons. Ces couches sont une couche d’entrée, une couche masquée facultative et une couche de sortie.
Une discussion détaillée sur les réseaux neuronaux Perceptron multilayer est en dehors de l’étendue de cette documentation. Cette rubrique explique l’implémentation de base de l’algorithme, y compris la méthode utilisée pour normaliser les valeurs d’entrée et de sortie, ainsi que les méthodes de sélection des fonctionnalités utilisées pour réduire la cardinalité des attributs. Cette rubrique décrit les paramètres et d’autres paramètres qui peuvent être utilisés pour personnaliser le comportement de l’algorithme et fournit des liens vers des informations supplémentaires sur l’interrogation du modèle.
Implémentation de l’algorithme de réseau neuronal Microsoft
Dans un réseau neuronal Perceptron Multilayer, chaque neurone reçoit une ou plusieurs entrées et produit une ou plusieurs sorties identiques. Chaque sortie est une fonction simple non linéaire de la somme des entrées au neurone. Les entrées passent des nœuds de la couche d’entrée aux nœuds de la couche masquée, puis passent de la couche masquée à la couche de sortie ; il n’y a pas de connexions entre les neurones au sein d’une couche. Si aucune couche masquée n’est incluse, comme dans un modèle de régression logistique, les entrées passent directement des nœuds de la couche d’entrée aux nœuds de la couche de sortie.
Il existe trois types de neurones dans un réseau neuronal créé avec l’algorithme Microsoft Neural Network :
Input neurons
Les neurones d’entrée fournissent des valeurs d’attribut d’entrée pour le modèle d’exploration de données. Pour les attributs d’entrée discrets, un neurone d’entrée représente généralement un état unique à partir de l’attribut d’entrée. Cela inclut les valeurs manquantes, si les données d’apprentissage contiennent des valeurs Null pour cet attribut. Un attribut d’entrée discret qui a plus de deux états génère un neurone d’entrée pour chaque état et un neurone d’entrée pour un état manquant, s’il existe des valeurs Null dans les données d’entraînement. Un attribut d’entrée continue génère deux neurones d’entrée : un neurone pour un état manquant et un neurone pour la valeur de l’attribut continu lui-même. Les neurones d’entrée fournissent des entrées à un ou plusieurs neurones masqués.
Hidden neurons
Les neurones masqués reçoivent des entrées des neurones d’entrée et fournissent des sorties aux neurones de sortie.
Output neurons
Les neurones de sortie représentent des valeurs d’attribut prévisibles pour le modèle d’exploration de données. Pour les attributs d’entrée discrets, un neurone de sortie représente généralement un état prédit unique pour un attribut prédictible, y compris les valeurs manquantes. Par exemple, un attribut prédictible binaire produit un nœud de sortie qui décrit un état manquant ou existant, pour indiquer si une valeur existe pour cet attribut. Une colonne booléenne utilisée comme attribut prédictible génère trois neurones de sortie : un neurone pour une valeur vraie, un neurone pour une valeur false et un neurone pour un état manquant ou existant. Un attribut prédictible discret qui a plus de deux états génère un neurone de sortie pour chaque état, et un neurone de sortie pour un état manquant ou existant. Les colonnes prévisibles continues génèrent deux neurones de sortie : un neurone pour un état manquant ou existant, et un neurone pour la valeur de la colonne continue elle-même. Si plus de 500 neurones de sortie sont générés en examinant l’ensemble de colonnes prévisibles, Analysis Services génère un nouveau réseau dans le modèle d’exploration de données pour représenter les neurones de sortie supplémentaires.
Un neurone reçoit une entrée d’autres neurones, ou d’autres données, selon la couche du réseau dans laquelle il se trouve. Un neurone d’entrée reçoit des entrées des données d’origine. Les neurones masqués et les neurones de sortie reçoivent des entrées de la sortie d’autres neurones du réseau neuronal. Les entrées établissent des relations entre les neurones et les relations servent de chemin d’analyse pour un ensemble spécifique de cas.
Chaque entrée a une valeur qui lui est affectée, appelée poids, qui décrit la pertinence ou l’importance de cette entrée particulière au neurone masqué ou au neurone de sortie. Plus le poids affecté à une entrée est élevé, plus la valeur de cette entrée est pertinente ou importante. Les poids peuvent être négatifs, ce qui implique que l’entrée peut empêcher, plutôt que d’activer, un neurone spécifique. La valeur de chaque entrée est multipliée par le poids pour souligner l’importance d’une entrée pour un neurone spécifique. Pour les pondérations négatives, l’effet de la multiplication de la valeur par le poids consiste à détériorer l’importance.
Chaque neurone a une fonction simple non linéaire qui lui est affectée, appelée fonction d’activation, qui décrit la pertinence ou l’importance d’un neurone particulier à cette couche d’un réseau neuronal. Les neurones masqués utilisent une fonction tangente hyperbolique (tanh) pour leur fonction d’activation, tandis que les neurones de sortie utilisent une fonction sigmoide pour l’activation. Les deux fonctions sont des fonctions non linéaires, continues qui permettent au réseau neuronal de modéliser des relations non linéaires entre les neurones d’entrée et de sortie.
Formation de réseaux neuronaux
Plusieurs étapes sont impliquées dans l’apprentissage d’un modèle d’exploration de données qui utilise l’algorithme Microsoft Neural Network. Ces étapes sont fortement influencées par les valeurs que vous spécifiez pour les paramètres d’algorithme.
L’algorithme évalue et extrait d’abord les données d’apprentissage de la source de données. Un pourcentage des données d’apprentissage, appelées données d’attente, est réservé à une utilisation pour évaluer la précision du réseau. Tout au long du processus d’entraînement, le réseau est évalué immédiatement après chaque itération par le biais des données d’apprentissage. Lorsque la précision n’augmente plus, le processus d’entraînement est arrêté.
Les valeurs des paramètres SAMPLE_SIZE et HOLDOUT_PERCENTAGE sont utilisées pour déterminer le nombre de cas à échantillonner à partir des données d’apprentissage et le nombre de cas à mettre de côté pour les données de blocage. La valeur du paramètre HOLDOUT_SEED est utilisée pour sélectionner aléatoirement les cas individuels à mettre de côté pour les données de validation.
Remarque
Ces paramètres d’algorithme sont différents des propriétés HOLDOUT_SIZE et HOLDOUT_SEED, qui sont appliquées à une structure d’exploration de données pour définir un jeu de données de test.
L’algorithme détermine ensuite le nombre et la complexité des réseaux pris en charge par le modèle d’exploration de données. Si le modèle d’exploration de données contient un ou plusieurs attributs utilisés uniquement pour la prédiction, l’algorithme crée un seul réseau qui représente tous ces attributs. Si le modèle d’exploration de données contient un ou plusieurs attributs utilisés pour l’entrée et la prédiction, le fournisseur d’algorithmes construit un réseau pour chaque attribut.
Pour les attributs d’entrée et prévisibles qui ont des valeurs discrètes, chaque neurone d’entrée ou de sortie représente respectivement un seul état. Pour les attributs d’entrée et prévisibles qui ont des valeurs continues, chaque neurone d’entrée ou de sortie représente respectivement la plage et la distribution des valeurs de l’attribut. Le nombre maximal d’états pris en charge dans les deux cas dépend de la valeur du paramètre d’algorithme MAXIMUM_STATES . Si le nombre d’états d’un attribut spécifique dépasse la valeur du paramètre d’algorithme MAXIMUM_STATES , les états les plus populaires ou pertinents pour cet attribut sont choisis, jusqu’au nombre maximal d’états autorisés et les états restants sont regroupés comme des valeurs manquantes à des fins d’analyse.
L’algorithme utilise ensuite la valeur du paramètre HIDDEN_NODE_RATIO lors de la détermination du nombre initial de neurones à créer pour la couche masquée. Vous pouvez définir HIDDEN_NODE_RATIO sur 0 pour empêcher la création d’une couche masquée dans les réseaux générés par l’algorithme pour le modèle d’exploration de données, afin de traiter le réseau neuronal comme une régression logistique.
Le fournisseur d’algorithmes évalue de façon itérative le poids de toutes les entrées sur le réseau en même temps, en prenant l’ensemble des données d’apprentissage réservées précédemment et en comparant la valeur connue réelle pour chaque cas dans les données de blocage avec la prédiction du réseau, dans un processus appelé apprentissage par lots. Une fois que l’algorithme a évalué l’ensemble des données d’apprentissage, l’algorithme examine la valeur prédite et réelle pour chaque neurone. L’algorithme calcule le degré d’erreur, le cas échéant, et ajuste les pondérations associées aux entrées de ce neurone, en travaillant vers l’arrière des neurones de sortie vers les neurones d’entrée dans un processus appelé backpropagation. L’algorithme répète ensuite le processus sur l’ensemble des données d’apprentissage. Étant donné que l’algorithme peut prendre en charge de nombreuses pondérations et neurones de sortie, l’algorithme de dégradé conjugue est utilisé pour guider le processus d’entraînement pour l’affectation et l’évaluation des pondérations pour les entrées. Une discussion sur l’algorithme de dégradé conjugué est en dehors de l’étendue de cette documentation.
Sélection de caractéristiques
Si le nombre d’attributs d’entrée est supérieur à la valeur du paramètre MAXIMUM_INPUT_ATTRIBUTES , ou si le nombre d’attributs prévisibles est supérieur à la valeur du paramètre MAXIMUM_OUTPUT_ATTRIBUTES , un algorithme de sélection de caractéristiques est utilisé pour réduire la complexité des réseaux inclus dans le modèle d’exploration de données. La sélection des caractéristiques réduit le nombre d’attributs d’entrée ou prévisibles à ceux qui sont les plus statistiquement pertinents pour le modèle.
La sélection des fonctionnalités est utilisée automatiquement par tous les algorithmes d’exploration de données Analysis Services pour améliorer l’analyse et réduire la charge de traitement. La méthode utilisée pour la sélection de fonctionnalités dans les modèles de réseau neuronal dépend du type de données de l’attribut. Pour référence, le tableau suivant présente les méthodes de sélection de caractéristiques utilisées pour les modèles de réseau neuronal, ainsi que les méthodes de sélection de caractéristiques utilisées pour l’algorithme de régression logistique, qui est basé sur l’algorithme de réseau neuronal.
| Algorithme | Méthode d’analyse | Commentaires |
|---|---|---|
| Réseau neuronal | Score d’intérêt Entropie de Shannon Bayésien avec K2 Prior Bayesien-Dirichlet avec un a priori uniforme (valeur par défaut) |
L’algorithme réseaux neuronaux peut utiliser à la fois les méthodes de scoring basées sur l'entropie et bayésiennes, tant que les données contiennent des colonnes continues. Par défaut. |
| Régression logistique | Score d’intérêt Entropie de Shannon Bayésien avec K2 Prior Bayesien-Dirichlet avec un a priori uniforme (valeur par défaut) |
Étant donné que vous ne pouvez pas transmettre un paramètre à cet algorithme pour contrôler le comportement d’élection des fonctionnalités, les valeurs par défaut sont utilisées. Par conséquent, si tous les attributs sont discrets ou discrétisés, la valeur par défaut est BDEU. |
Les paramètres d’algorithme qui contrôlent la sélection des fonctionnalités pour un modèle de réseau neuronal sont MAXIMUM_INPUT_ATTRIBUTES, MAXIMUM_OUTPUT_ATTRIBUTES et MAXIMUM_STATES. Vous pouvez également contrôler le nombre de couches masquées en définissant le paramètre HIDDEN_NODE_RATIO.
Méthodes de scoring
Le scoring est un type de normalisation, qui, dans le contexte de l’entraînement d’un modèle de réseau neuronal, signifie le processus de conversion d’une valeur, comme une étiquette de texte discrète, en une valeur qui peut être comparée à d’autres types d’entrées et pondérées dans le réseau. Par exemple, si un attribut d’entrée est Gender et que les valeurs possibles sont Male et Female, et qu’un autre attribut d’entrée est Income, avec une plage variable de valeurs, les valeurs de chaque attribut ne sont pas directement comparables, et doivent donc être encodées à une échelle commune afin que les pondérations puissent être calculées. Le scoring est le processus de normalisation de ces entrées en valeurs numériques : plus précisément, à une plage de probabilités. Les fonctions utilisées pour la normalisation permettent également de distribuer plus uniformément la valeur d’entrée à une échelle uniforme afin que les valeurs extrêmes ne déforment pas les résultats de l’analyse.
Les sorties du réseau neuronal sont également encodées. Lorsqu’il existe une cible unique pour la sortie (autrement dit, la prédiction) ou plusieurs cibles utilisées pour la prédiction uniquement et non pour l’entrée, le modèle crée un seul réseau et il peut ne pas sembler nécessaire de normaliser les valeurs. Toutefois, si plusieurs attributs sont utilisés pour l’entrée et la prédiction, le modèle doit créer plusieurs réseaux ; par conséquent, toutes les valeurs doivent être normalisées, et les sorties doivent également être encodées au fur et à mesure qu’elles quittent le réseau.
L’encodage des entrées est basé sur la somme de chaque valeur discrète dans les cas d’entraînement et la multiplication de cette valeur par son poids. Il s’agit d’une somme pondérée qui est passée à la fonction d’activation dans la couche masquée. Un z-score est utilisé pour l’encodage, comme suit :
Valeurs discrètes
μ = p - la probabilité antérieure d’un état
StdDev = sqrt(p(1-p))
Valeurs continues
Valeur présente= 1 - μ/σ
Aucune valeur n'existe= -μ/σ
Une fois les valeurs encodées, les entrées sont soumises à une somme pondérée, avec des liens du réseau en tant que pondérations.
L’encodage pour les sorties utilise la fonction sigmoid, qui a des propriétés qui le rendent très utile pour la prédiction. Une telle propriété est que, quelle que soit la façon dont les valeurs d’origine sont mises à l’échelle, et que les valeurs soient négatives ou positives, la sortie de cette fonction est toujours une valeur comprise entre 0 et 1, qui est adaptée à l’estimation des probabilités. Une autre propriété utile est que la fonction sigmoid a un effet de lissage, de sorte que, à mesure que les valeurs s'éloignent du point d'inflexion, la probabilité associée à ces valeurs tend lentement vers 0 ou 1.
Personnalisation de l’algorithme de réseau neuronal
L’algorithme Microsoft Neural Network prend en charge plusieurs paramètres qui affectent le comportement, les performances et la précision du modèle d’exploration de données résultant. Vous pouvez également modifier la façon dont le modèle traite les données en définissant des indicateurs de modélisation sur des colonnes ou en définissant des indicateurs de distribution pour spécifier la façon dont les valeurs de la colonne sont gérées.
Définition des paramètres d’algorithme
Le tableau suivant décrit les paramètres qui peuvent être utilisés avec l’algorithme Microsoft Neural Network.
HIDDEN_NODE_RATIO
Spécifie le rapport entre les neurones masqués et les neurones d’entrée et de sortie. La formule suivante détermine le nombre initial de neurones dans la couche masquée :
HIDDEN_NODE_RATIO * SQRT(Nombre total de neurones d’entrée * Nombre total de neurones de sortie)
La valeur par défaut est 4.0.
Pourcentage de rétention
Spécifie le pourcentage de cas dans les données d’apprentissage utilisées pour calculer l’erreur de blocage, qui est utilisée dans le cadre des critères d’arrêt lors de l’apprentissage du modèle d’exploration de données.
La valeur par défaut est 30.
HOLDOUT_SEED
Spécifie un nombre utilisé pour amorçage du générateur pseudo-aléatoire lorsque l’algorithme détermine de façon aléatoire les données de blocage. Si ce paramètre est défini sur 0, l’algorithme génère la valeur initiale en fonction du nom du modèle d’exploration de données, pour garantir que le contenu du modèle reste le même pendant le retraitement.
La valeur par défaut est 0.
ATTRIBUTS_MAXIMUM_ENTRÉE
Détermine le nombre maximal d’attributs d’entrée qui peuvent être fournis à l’algorithme avant l’utilisation de la sélection des fonctionnalités. La définition de cette valeur sur 0 désactive la sélection des fonctionnalités pour les attributs d’entrée.
La valeur par défaut est 255.
ATTRIBUTS_DE_SORTIE_MAXIMUM
Détermine le nombre maximal d’attributs de sortie qui peuvent être fournis à l’algorithme avant l’utilisation de la sélection des fonctionnalités. La définition de cette valeur sur 0 désactive la sélection de fonctionnalités pour les attributs de sortie.
La valeur par défaut est 255.
ETATS_MAXIMAUX
Spécifie le nombre maximal d’états discrets par attribut pris en charge par l’algorithme. Si le nombre d’états d’un attribut spécifique est supérieur au nombre spécifié pour ce paramètre, l’algorithme utilise les états les plus populaires pour cet attribut et traite les états restants comme manquants.
La valeur par défaut est 100.
TAILLE_ÉCHANTILLON
Spécifie le nombre de cas à utiliser pour entraîner le modèle. L’algorithme utilise ce nombre ou le pourcentage de cas totaux non inclus dans les données d’attente spécifiées par le paramètre HOLDOUT_PERCENTAGE, selon la valeur la plus petite.
En d’autres termes, si HOLDOUT_PERCENTAGE est défini sur 30, l’algorithme utilise soit la valeur de ce paramètre, soit une valeur égale à 70 % du nombre total de cas, selon la valeur la plus petite.
La valeur par défaut est 10 000.
Drapeaux de modélisation
Les indicateurs de modélisation suivants sont pris en charge pour une utilisation avec l’algorithme Microsoft Neural Network.
NON NUL
Indique que la colonne ne peut pas contenir de valeur Null. Une erreur se produit si Analysis Services rencontre une valeur Null pendant l’entraînement du modèle.
S'applique aux colonnes des structures minières.
MODÈLE_EXISTENCE_SEULEMENT
Indique que le modèle doit uniquement déterminer si une valeur existe pour l’attribut ou si une valeur est manquante. La valeur exacte n’a pas d’importance.
S’applique aux colonnes du modèle d’exploration de données.
Flags de distribution
Les indicateurs de distribution suivants sont pris en charge pour une utilisation avec l’algorithme Microsoft Neural Network. Les indicateurs sont utilisés comme indicateurs pour le modèle uniquement ; si l’algorithme détecte une distribution différente, il utilise la distribution trouvée, et non la distribution fournie dans l’indicateur.
Normale
Indique que les valeurs de la colonne doivent être traitées comme si elles représentent la distribution normale ou gaussienne.
Uniforme
Indique que les valeurs de la colonne doivent être traitées comme si elles sont distribuées uniformément ; autrement dit, la probabilité d’une valeur est à peu près égale et est une fonction du nombre total de valeurs.
Loi log-normale
Indique que les valeurs de la colonne doivent être traitées comme étant distribuées selon la courbe de la loi log-normale, ce qui signifie que le logarithme des valeurs est distribué normalement.
Spécifications
Un modèle de réseau neuronal doit contenir au moins une colonne d’entrée et une colonne de sortie.
Colonnes d'entrée et colonnes prévisibles
L’algorithme Microsoft Neural Network prend en charge les colonnes d’entrée spécifiques et les colonnes prévisibles répertoriées dans le tableau suivant.
| Colonne | Types de contenu |
|---|---|
| Attribut d’entrée | Continu, cyclique, discret, discrétisé, clé, table et ordonné |
| Attribut prédictible | Continu, cyclique, discret, discrétisé et ordonné |
Remarque
Les types de contenu cycliques et ordonnés sont pris en charge, mais l’algorithme les traite comme des valeurs discrètes et n’effectue pas de traitement spécial.
Voir aussi
Algorithme de réseau neuronal Microsoft
Contenu du modèle d’exploration de données pour les modèles de réseau neuronal (Analysis Services - Exploration de données)
Exemples de requête de modèle de réseau neuronal