J'essaie de prédire le résultat d'un système complexe en utilisant des réseaux de neurones (ANN). Les résultats (dépendants) vont de 0 à 10 000. Les différentes variables d'entrée ont des plages différentes. Toutes les variables ont des distributions à peu près normales.
Je considère différentes options pour mettre à l'échelle les données avant l'entraînement. Une option consiste à mettre à l'échelle les variables d'entrée (indépendantes) et de sortie (dépendantes) à [0, 1] en calculant la fonction de distribution cumulative à l'aide des valeurs de déviation moyenne et standard de chaque variable, indépendamment. Le problème avec cette méthode est que si j'utilise la fonction d'activation sigmoïde à la sortie, il est très probable que je raterai des données extrêmes, en particulier celles qui n'apparaissent pas dans l'ensemble de formation.
Une autre option consiste à utiliser un z-score. Dans ce cas, je n'ai pas le problème extrême de données; Cependant, je suis limité à une fonction d'activation linéaire à la sortie.
Quelles sont les autres techniques de normalisation acceptées qui sont utilisées avec les ANN? J'ai essayé de chercher des critiques sur ce sujet, mais je n'ai rien trouvé d'utile.
la source
Réponses:
Une approche standard consiste à mettre à l'échelle les entrées pour obtenir une moyenne de 0 et une variance de 1. De plus, la décorrélation linéaire / blanchiment / pca aide beaucoup.
Si vous êtes intéressé par les ficelles du métier, je peux vous recommander le papier backprop efficace de LeCun.
la source
1- La normalisation Min-Max conserve la distribution originale des scores à l'exception d'un facteur de mise à l'échelle et transforme tous les scores en une plage commune [0, 1]. Toutefois, cette méthode n’est pas robuste (c’est-à-dire qu’elle est très sensible aux valeurs aberrantes.
2- Normalisation (normalisation du score Z) Technique la plus couramment utilisée, calculée à l'aide de la moyenne arithmétique et de l'écart type des données fournies. Cependant, l'écart moyen et l'écart type sont tous deux sensibles aux valeurs aberrantes et cette technique ne garantit pas une plage numérique commune pour les scores normalisés. De plus, si les partitions d’entrée ne sont pas distribuées gaussiennes, cette technique ne conserve pas la distribution d’entrée à la sortie.
3- Médiane et MAD: La déviation absolue médiane et médiane (MAD) est insensible aux valeurs aberrantes et aux points dans les extrémités extrêmes de la distribution. donc c'est robuste. Cependant, cette technique ne conserve pas la distribution d'entrée et ne transforme pas les scores en une plage numérique commune.
Estimateurs 4- tanh: Les estimateurs tanh introduits par Hampel et al. sont robustes et très efficaces. La normalisation est donnée par
où μGH et σGH sont les estimations de la moyenne et de l'écart type, respectivement, de la distribution des scores réels telle que donnée par les estimateurs de Hampel.
Par conséquent, je recommande les estimateurs de tanh.
référence https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt
la source
J'ai donné une réponse similaire ici. Lorsque vous effectuez une régression multiple, quand devriez-vous centrer vos variables prédictives et quand devriez-vous les normaliser? mais pensé que c'était un contexte suffisamment différent pour qu'une réponse puisse aller ici.
Il existe une excellente ressource Usenet http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html
Il résume en termes simples certains des problèmes et considérations à prendre en compte lorsque l'on souhaite normaliser / normaliser / redimensionner les données. Comme il traite le sujet du point de vue de l’apprentissage automatique et que votre question est ML, cela pourrait avoir une certaine pertinence.
la source
Vous pourriez faire
la source
Si vous travaillez dans
python
,sklearn
a une méthode pour ce faire en utilisant différentes techniques dans leurpreprocessing
module (plus une fonctionnalité de pipeline astucieuse, avec un exemple dans leur documentation):la source
Eh bien, [0,1] est l'approche standard. Pour les réseaux de neurones, fonctionne le mieux dans la plage 0-1. L'échelle Min-Max (ou normalisation) est l'approche à suivre.
Maintenant sur les valeurs aberrantes, dans la plupart des scénarios, nous devons les éliminer, car les valeurs aberrantes ne sont pas courantes, vous ne voulez pas que les valeurs éloignées affectent votre modèle (à moins que la détection d'anomalie ne soit le problème que vous résolvez). Vous pouvez le découper en fonction de la règle empirique 68-95-99.7 ou créer un diagramme à parcelles, l'observer et le découper en conséquence.
Formule MinMax -
(xi - min(x)) / (max(x) - min(x))
ou peut utilisersklearn.preprocessing.MinMaxScaler
la source
"Accepté" est ce qui vous convient le mieux - alors vous l'acceptez.
D'après mon expérience, adapter une distribution de la famille de distributions Johnson à chacune des entités continues fonctionne bien car les distributions sont très flexibles et peuvent transformer la plupart des entités unimodales en distributions normales normales. Cela aidera également avec les fonctionnalités multimodales, mais il est généralement préférable de les utiliser dans la forme la plus souhaitable (les données distribuées gaussiennes standard sont idéales, car elles sont compatibles et parfois optimales pour la plupart des applications. méthode statistique / ML disponible).
http://qualityamerica.com/LSS-Knowledge-Center/statisticalinference/johnson_distributions.php
la source