Algorithme MNN (Microsoft Neural Network) (SSAS)

Dans Microsoft SQL Server 2005 Analysis Services (SSAS), l'algorithme MNN (Microsoft Neural Network) crée des modèles d'exploration de données de classification et de régression en construisant un réseau perceptron multicouche de neurones. Similaire à l'algorithme MDT (Microsoft Decision Trees), l'algorithme MNN (Microsoft Neural Network) calcule les probabilités de chaque état possible de l'attribut d'entrée lorsque chaque état de l'attribut prévisible lui est fourni. Vous pouvez par la suite utiliser ces probabilités pour prédire le résultat de l'attribut prédit en fonction des attributs d'entrée.

Exemple

L'algorithme MNN (Microsoft Neural Network) permet d'analyser des données d'entrée complexes, telles que les données d'un processus commercial ou de fabrication, ou des problèmes d'entreprise pour lesquels une quantité significative de données d'apprentissage est disponible, mais pour lesquels des règles ne peuvent pas être facilement dérivées en utilisant d'autres algorithmes.

Voici quelques suggestions de scénarios d'utilisation de l'algorithme MNN (Microsoft Neural Network) :

  • analyse de marketing et de promotion des ventes, par exemple pour mesurer le succès d'une campagne de publicité directe ou radiophonique ;
  • prédiction des mouvements des stocks, des fluctuations monétaires ou d'autres informations financières extrêmement inconstantes à partir des données d'historique ;
  • analyse de processus de fabrication et de processus industriels.

Fonctionnement de l'algorithme

L'algorithme MNN (Microsoft Neural Network) utilise un réseau perceptron multicouche, également appelé réseau à règle delta à rétropropagation, qui peut comporter jusqu'à trois couches de neurones, ou perceptrons : une couche d'entrée, une couche cachée facultative et une couche de sortie. Dans un réseau perceptron multicouche, chaque neurone reçoit une ou plusieurs entrées et produit une ou plusieurs sorties identiques. Chaque sortie est une fonction non linéaire simple de la somme des entrées dans le neurone. Les entrées sont uniquement propagées vers l'avant entre des nœuds de la couche d'entrée et des nœuds de la couche cachée avant de passer finalement à la couche de sortie ; il n'y a aucune connexion entre des neurones au sein d'une même couche. (Les entrées sont propagées vers l'avant entre des nœuds de la couche d'entrée et des nœuds de la couche de sortie s'il n'y a pas de couche cachée.) Les réseaux de neurones de type perceptron multicouche ne sont pas décrits en détail dans la présente documentation.

Un modèle d'exploration de données généré avec l'algorithme MNN (Microsoft Neural Network) peut contenir plusieurs réseaux, en fonction du nombre de colonnes utilisées soit pour l'entrée et la prédiction, soit uniquement pour la prédiction. Le nombre de réseaux d'un modèle d'exploration de données dépend du nombre d'états figurant dans les colonnes d'entrée et dans les colonnes prévisibles utilisées par ce modèle d'exploration de données.

Il existe trois types de neurones dans un réseau de neurones créé avec l'algorithme MNN (Microsoft Neural Network) :

  • Neurones d'entrée
    Les neurones d'entrée fournissent les valeurs des attributs d'entrée du 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 de l'attribut d'entrée, y compris un état manquant. Par exemple, un attribut d'entrée binaire produit un nœud d'entrée qui décrit un état existant ou manquant, indiquant si une valeur existe ou non pour cet attribut. Une colonne booléenne utilisée en tant qu'attribut d'entrée génère trois neurones d'entrée : un neurone pour une valeur vraie, un neurone pour une valeur fausse et un neurone pour un état manquant ou existant. 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 ou existant. Un attribut d'entrée continu génère deux neurones d'entrée : un neurone pour un état manquant ou existant 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 cachés.
  • Neurones cachés
    Les neurones cachés reçoivent des entrées des neurones d'entrée et fournissent des sorties aux neurones de sortie.
  • Neurones de sortie
    Les neurones de sortie représentent les valeurs des attributs prévisibles du 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 d'un attribut prévisible, y compris un état manquant. Par exemple, un attribut prévisible binaire produit un nœud de sortie qui décrit un état existant ou manquant pour indiquer si une valeur existe ou non pour cet attribut. Une colonne booléenne utilisée en tant qu'attribut prévisible génère trois neurones de sortie : un neurone pour une valeur vraie, un neurone pour une valeur fausse et un neurone pour un état manquant ou existant. Un attribut prévisible 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 par l'examen de l'ensemble des 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 plusieurs entrées : avec les neurones d'entrée, un neurone reçoit des entrées à partir des données d'origine ; avec les neurones cachés et les neurones de sortie, un neurone reçoit des entrées provenant de la sortie d'autres neurones du réseau de neurones. Les entrées établissent des relations entre les neurones et ces relations servent de chemin d'analyse pour un ensemble de cas spécifique.

Chaque entrée est dotée d'une valeur, appelée le poids, qui décrit la pertinence ou l'importance d'une entrée donnée par rapport au neurone caché ou au neurone de sortie. Plus le poids attribué à une entrée est grand, plus la valeur de cette entrée est pertinente ou importante pour le neurone qui reçoit lorsque l'algorithme détermine si cette entrée classifie un cas spécifique. Notez également que le poids peut être négatif, ce qui implique que l'entrée peut désactiver un neurone spécifique au lieu de l'activer. La valeur de l'entrée est multipliée par le poids pour accentuer son importance pour un neurone spécifique. (Si le poids est négatif, la valeur de l'entrée est multipliée par le poids pour désaccentuer son importance.)

En conséquence, chaque neurone est doté d'une fonction non linéaire simple, appelée fonction d'activation, qui décrit la pertinence ou l'importance d'un neurone donné par rapport à la couche d'un réseau de neurones. Les neurones cachés utilisent une fonction tangente hyperbolique pour leur fonction d'activation, tandis que les neurones de sortie utilisent une fonction sigmoïde pour leur fonction d'activation. Ces deux fonctions sont des fonctions continues non linéaires qui permettent au réseau de neurones de modéliser les relations non linéaires entre les neurones d'entrée et les neurones de sortie.

Apprentissage des réseaux de neurones

L'apprentissage d'un modèle d'exploration de données utilisant l'algorithme MNN (Microsoft Neural Network) comporte plusieurs étapes. Ces étapes sont fortement influencées par les valeurs que vous spécifiez pour les paramètres disponibles pour l'algorithme.

L'algorithme commence par évaluer et par extraire les données d'apprentissage à partir de la source de données. Un pourcentage des données d'apprentissage, appelé données d'exclusion, est réservé à l'évaluation de la précision de la structure du modèle résultant. Pendant le processus d'apprentissage, le modèle est évalué par rapport aux données d'exclusion après chaque itération sur les données d'apprentissage. Lorsque la précision du modèle cesse d'augmenter, le processus d'apprentissage est interrompu. Les valeurs des paramètres SAMPLE_SIZE et HOLDOUT_PERCENTAGE servent à déterminer le nombre de cas à échantillonner dans les données d'apprentissage et le nombre de cas à mettre de côté pour les données d'exclusion. La valeur du paramètre HOLDOUT_SEED sert à déterminer de façon aléatoire les cas individuels à mettre de côté pour les données d'exclusion.

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 qui sont utilisés uniquement pour la prédiction, l'algorithme crée un réseau unique qui représente tous ces attributs. Si le modèle d'exploration de données contient un ou plusieurs attributs qui sont utilisés à la fois pour l'entrée et pour la prédiction, le fournisseur d'algorithme construit un réseau pour chacun de ces attributs. Si le nombre d'attributs d'entrée ou d'attributs prévisibles est supérieur, respectivement, à la valeur du paramètre MAXIMUM_INPUT_ATTRIBUTES ou à la valeur du paramètre MAXIMUM_OUTPUT_ATTRIBUTES, un algorithme de sélection des fonctionnalités est utilisé pour réduire la complexité des réseaux inclus dans le modèle d'exploration de données. La sélection des fonctionnalités diminue le nombre d'attributs d'entrée ou d'attributs prévisibles en limitant les attributs à ceux qui sont statistiquement les plus pertinents pour le modèle.

Pour les attributs d'entrée ou les attributs prévisibles dotés de valeurs discrètes, chaque neurone d'entrée ou de sortie représente respectivement un état unique. Pour les attributs d'entrée ou les attributs prévisibles dotés de valeurs continues, chaque neurone d'entrée ou de sortie représente respectivement la plage et la distribution de valeurs pour l'attribut. Le nombre maximal d'états pris en charge dans les deux cas dépend de la valeur du paramètre MAXIMUM_STATES de l'algorithme. 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 fréquents ou les plus pertinents pour cet attribut sont sélectionnés, à hauteur du nombre maximal autorisé, et les états restants sont considérés comme valeurs manquantes dans le cadre de l'analyse.

L'algorithme utilise ensuite la valeur du paramètre HIDDEN_NODE_RATIO pour déterminer le nombre initial de neurones à créer pour la couche cachée. Vous pouvez attribuer la valeur 0 à HIDDEN_NODE_RATIO pour empêcher la création d'une couche caché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 de neurones en tant que régression logistique.

Le fournisseur d'algorithme évalue de façon itérative le poids de toutes les entrées se trouvant sur le réseau au même moment, en prenant l'ensemble de données d'apprentissage qui a été auparavant mis de côté et en comparant la valeur réelle connue de chacun des cas figurant dans les données d'exclusion à la prédiction du réseau : ce processus s'appelle l'apprentissage par lots. Une fois que l'algorithme a évalué l'intégralité des données d'apprentissage, l'algorithme passe en revue la valeur prédite et la valeur réelle de chaque neurone. L'algorithme calcule, le cas échéant, le taux d'erreur et ajuste les poids attribués aux entrées de ce neurone en propageant les informations vers l'arrière, c'est-à-dire en partant des neurones de sortie et en remontant aux neurones d'entrée : ce processus s'appelle la rétropropagation. L'algorithme répète ensuite le processus sur l'intégralité des données d'apprentissage. Étant donné que l'algorithme peut prendre en charge de nombreux poids et neurones de sortie, l'algorithme du gradient conjugué est utilisé afin de guider le processus d'apprentissage pour l'attribution et l'évaluation des poids des entrées. L'algorithme du gradient conjugué n'est pas traité dans la présente documentation.

Utilisation de l'algorithme

Un modèle de réseau de neurones doit contenir une colonne clé, une ou plusieurs colonnes d'entrée et une ou plusieurs colonnes prévisibles.

L'algorithme MNN (Microsoft Neural Network) prend en charge des types de contenu de colonne d'entrée, des types de contenu de colonne prévisible et des indicateurs de modélisation spécifiques qui sont répertoriés dans le tableau suivant.

Types de contenu de colonne d'entrée

Continu, Cyclique, Discret, Discrétisé, Clé, Table et Ordonné

Types de contenu de colonne prévisible

Continu, Cyclique, Discret, Discrétisé et Ordonné

Indicateurs de modélisation

MODEL_EXISTENCE_ONLY et NOT NULL

Indicateurs de distribution

Normale, Uniforme et Log-normale.

Tous les algorithmes Microsoft prennent en charge un ensemble commun de fonctions. Toutefois, l'algorithme MNN (Microsoft Neural Network) prend en charge des fonctions supplémentaires qui sont décrites dans le tableau suivant.

IsDescendant

PredictStdev

PredictAdjustedProbability

PredictSupport

PredictHistogram

PredictVariance

PredictProbability

 

Pour obtenir la liste des fonctions qui sont communes à tous les algorithmes Microsoft, consultez Algorithmes d'exploration de données. Pour plus d'informations sur l'utilisation de ces fonctions, consultez Fonctions DMX (Data Mining Extensions).

Les modèles qui sont créés à l'aide de l'algorithme MNN (Microsoft Neural Network) ne prennent pas en charge l'extraction ni les dimensions d'exploration de données car la structure des nœuds du modèle d'exploration de données ne correspond pas nécessairement directement aux données sous-jacentes.

L'algorithme MNN (Microsoft Neural Network) prend en charge plusieurs paramètres qui affectent les performances et la précision du modèle d'exploration de données obtenu. Le tableau suivant décrit chacun de ces paramètres.

Paramètre Description

HIDDEN_NODE_RATIO

Spécifie le taux de neurones cachés par rapport aux neurones d'entrée et de sortie. La formule suivante détermine le nombre initial de neurones de la couche cachée :

HIDDEN_NODE_RATIO * SQRT(Total input neurons * Total output neurons)

La valeur par défaut est 4,0.

HOLDOUT_PERCENTAGE

Spécifie le pourcentage de cas extraits des données d'apprentissage pour calculer l'erreur d'exclusion, qui constitue l'un des critères d'arrêt pendant l'apprentissage du modèle d'exploration de données.

La valeur par défaut est 30.

HOLDOUT_SEED

Spécifie un nombre qui est utilisé en tant que valeur de départ du générateur de nombres pseudo-aléatoires lorsque l'algorithme détermine de façon aléatoire les données d'exclusion. Si ce paramètre a la valeur 0, l'algorithme génère la valeur de départ en fonction du nom du modèle d'exploration de données, afin de garantir que le contenu du modèle reste inchangé pendant le retraitement.

La valeur par défaut est 0.

MAXIMUM_INPUT_ATTRIBUTES

Détermine le nombre maximal d'attributs d'entrée qui peuvent être fournis à l'algorithme et au-delà duquel la sélection des fonctionnalités est utilisée. La valeur 0 désactive la sélection des fonctionnalités pour les attributs d'entrée.

La valeur par défaut est 255.

MAXIMUM_OUTPUT_ATTRIBUTES

Détermine le nombre maximal d'attributs de sortie qui peuvent être fournis à l'algorithme et au-delà duquel la sélection des fonctionnalités est utilisée. La valeur 0 désactive la sélection des fonctionnalités pour les attributs de sortie.

La valeur par défaut est 255.

MAXIMUM_STATES

Spécifie le nombre maximal d'états discrets par attribut qui est 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 sélectionne les états les plus fréquents pour cet attribut et traite les autres comme étant absents.

La valeur par défaut est 100.

SAMPLE_SIZE

Spécifie le nombre de cas à utiliser pour l'apprentissage du modèle. L'algorithme utilise soit ce nombre, soit le pourcentage du nombre total de cas qui n'est pas inclus dans les données d'exclusion conformément au paramètre HOLDOUT_PERCENTAGE : c'est la plus petite valeur qui est retenue.

En d'autres termes, si HOLDOUT_PERCENTAGE a la valeur 30, l'algorithme utilisera soit la valeur de ce paramètre, soit une valeur égale à 70 % du nombre total de cas, en prenant la plus petite valeur des deux.

La valeur par défaut est 10000.

Voir aussi

Concepts

Algorithmes d'exploration de données
Sélection des fonctionnalités pour l'exploration de données
Utilisation des outils d'exploration de données
Affichage d'un modèle d'exploration de données à l'aide de la Visionneuse de l'algorithme MNN (Microsoft Neural Network)

Autres ressources

CREATE MINING MODEL (DMX)

Aide et Informations

Assistance sur SQL Server 2005