Le blanchiment est-il toujours bon?

27

Une étape de prétraitement courante pour les algorithmes d'apprentissage automatique est le blanchiment des données.

Il semble qu'il soit toujours bon de faire du blanchiment car il corréle les données, ce qui le rend plus simple à modéliser.

Quand le blanchiment n'est-il pas recommandé?

Remarque: je fais référence à la décorrélation des données.

Ran
la source
1
pouvez-vous donner une référence pour le blanchiment?
Atilla Ozgur
2
Je pense que ce fil est un bout. Il faudrait vraiment l'étendre. - - La réponse actuellement acceptée contient si peu d'informations. - - Je ne l'accepterais pas et ouvrirais une prime ici.
Léo Léopold Hertz
Votre question est également biaisée, en ayant "toujours" là-bas. Bien sûr, le blanchiment n'est pas toujours bon. Définissez également les types de blanchiment. Je pense que cela conduit à des réponses moins constructives ici. - - Définissez les types de données à utiliser. - - Je pense qu'une meilleure question peut être: Comment pouvez-vous améliorer l'application de ce blanchiment sur ces données assez agréables? . - - @AtillaOzgur Une source en.wikipedia.org/wiki/Whitening_transformation si la transformation de base du blanchiment est prise en compte.
Léo Léopold Hertz 준영

Réponses:

13

Le pré-blanchiment est une généralisation de la normalisation des caractéristiques, qui rend l'entrée indépendante en la transformant par rapport à une matrice de covariance d'entrée transformée. Je ne vois pas pourquoi cela peut être une mauvaise chose.

Cependant, une recherche rapide a révélé "La faisabilité du blanchiment des données pour améliorer les performances du radar météorologique" ( pdf ) qui se lit comme suit:

En particulier, le blanchiment a bien fonctionné dans le cas de l'ACF exponentiel (qui est en accord avec les résultats de Monakov) mais moins bien dans le cas de la gaussienne. Après expérimentation numérique, nous avons constaté que le cas gaussien est numériquement mal conditionné en ce sens que le nombre de conditions (rapport de la valeur propre maximale à la valeur propre minimale) est extrêmement grand pour la matrice de covariance gaussienne.

Je ne suis pas assez instruit pour commenter cela. Peut-être que la réponse à votre question est que le blanchiment est toujours bon, mais il existe certains pièges (par exemple, avec des données aléatoires, cela ne fonctionnera pas bien s'il est effectué via la fonction d'autocorrélation gaussienne).

andreister
la source
2
si je comprends bien, cela fonctionne bien si la matrice de covariance est bien estimée. Quelqu'un peut-il commenter cela? Merci.
Ran
3
La citation ci-dessus ne fait pas référence à une matrice de covariance mal estimée (bien que cela soit également problématique). Cela signifie que pour une matrice de covariance parfaitement spécifiée, il peut encore être difficile d'effectuer avec précision la factorisation requise (et les transformations de données associées). Cela est dû à un mauvais conditionnement numérique , ce qui signifie que les erreurs d'arrondi de précision finie polluent les calculs.
GeoMatt22
2
C'est une réponse insuffisante. Il a principalement copié du matériel peu lié. - - Cette réponse devrait vraiment être développée. C'est un talon.
Léo Léopold Hertz
20

Premièrement, je pense que la décorrélation et le blanchiment sont deux procédures distinctes.

Afin de décorréler les données, nous devons les transformer afin que les données transformées aient une matrice de covariance diagonale. Cette transformation peut être trouvée en résolvant le problème des valeurs propres. Nous trouvons les vecteurs propres et les valeurs propres associées de la matrice de covariance en résolvantΣ=XX

ΣΦ=ΦΛ

où est une matrice diagonale ayant les valeurs propres comme éléments diagonaux.Λ

La matrice diagonise ainsi la matrice de covariance de . Les colonnes de sont les vecteurs propres de la matrice de covariance.X ΦΦXΦ

Nous pouvons également écrire la covariance diagonalisée:

(1)ΦΣΦ=Λ

Donc, pour décorréler un seul vecteur , nous faisons:Xje

(2)Xje=ΦXje

Les éléments diagonaux (valeurs propres) dans peuvent être identiques ou différents. Si nous les faisons tous de la même manière, cela s'appelle blanchir les données. Étant donné que chaque valeur propre détermine la longueur de son vecteur propre associé, la covariance correspondra à une ellipse lorsque les données ne sont pas blanchies et à une sphère (ayant toutes les dimensions de la même longueur ou uniforme) lorsque les données sont blanchies. Le blanchiment est effectué comme suit:Λ

Λ-1/2ΛΛ-1/2=je

De manière équivalente, en remplaçant en , nous écrivons:(1)

Λ-1/2ΦΣΦΛ-1/2=je

Ainsi, pour appliquer cette transformation de blanchiment à nous la multiplions simplement par ce facteur d'échelle, en obtenant le point de données blanchi : x iXjeXje

(3)Xje=Λ-1/2Xje=Λ-1/2ΦXje

Maintenant, la covariance de est non seulement diagonale, mais aussi uniforme (blanc), puisque la covariance de , .XjeXjeE(XjeXje)=je

Suite à cela, je peux voir deux cas où cela pourrait ne pas être utile. Le premier est plutôt trivial, il peut arriver que la mise à l'échelle des exemples de données soit en quelque sorte importante dans le problème d'inférence que vous regardez. Bien sûr, vous pouvez utiliser les valeurs propres comme un ensemble supplémentaire de fonctionnalités pour contourner ce problème. Le second est un problème de calcul: tout d'abord, vous devez calculer la matrice de covariance , qui peut être trop grande pour tenir en mémoire (si vous avez des milliers de fonctionnalités) ou prendre trop de temps à calculer; deuxièmement, la décomposition des valeurs propres est O (n ^ 3) dans la pratique, ce qui est encore assez horrible avec un grand nombre de caractéristiques.Σ

Et enfin, il existe un "piège" commun auquel les gens doivent faire attention. Il faut faire attention de calculer les facteurs d'échelle sur les données d'entraînement , puis d'utiliser les équations (2) et (3) pour appliquer les mêmes facteurs d'échelle aux données de test, sinon vous risquez de sur-adapter (vous utiliseriez informations de l'ensemble de tests dans le processus de formation).

Source: http://courses.media.mit.edu/2010fall/mas622j/whiten.pdf

tdc
la source
2
Merci pour la clarification, vous avez raison. Je parlais de décorrélation. btw: à la fin, vous écrivez que le blanchiment n'est effectué que sur les données d'entraînement. pour autant que je sache, vous calculez la matrice à partir des données d'entraînement, mais vous l'exécutez à la fois sur les données d'entraînement et de test.
Ran
@Ran oui c'est ce que je voulais dire ... Je mettrai à jour la réponse
tdc
Ce serait bien si vous pouviez également proposer des sections dans votre réponse. Avoir une introduction, un résumé et les choses mathématiques. - - Je pense que vous n'allez pas assez loin dans votre réponse. - - Votre réponse couvre principalement des propositions triviales mais ne va pas assez loin dans le sujet. Vous n'avez que du matériel de base copié-collé à partir des notes de cours, mais très peu de travail personnel sur le sujet.
Léo Léopold Hertz
Donc, en termes simples, faites pca pour obtenir des fonctionnalités décorrélées, puis pour chaque nouvelle fonctionnalité, divisez par la variance pour obtenir des fonctionnalités blanchies.
avocat
1

Depuis http://cs231n.github.io/neural-networks-2/

Une faiblesse de cette transformation est qu'elle peut considérablement exagérer le bruit dans les données, car elle étire toutes les dimensions (y compris les dimensions non pertinentes de la variance minuscule qui sont principalement du bruit) pour être de taille égale dans l'entrée. En pratique, cela peut être atténué par un lissage plus fort ...

Malheureusement, je ne suis pas suffisamment éduqué pour commenter davantage cela.

DharmaTurtle
la source
Veuillez indiquer quelles formes de bruits sont exagérées. Votre référence est rigoureuse. Il s'agit simplement de l'informatique de base sur le sujet, à savoir le bruit blanc avec une ancienne approche de réseau de neurones. - - Le travail exagéré doit également être défini.
Léo Léopold Hertz 준영
Il me semble que cela est simplement lié à la mise à l'échelle de toutes les fonctionnalités pour avoir la même variance, non? Donc, s'il y avait une caractéristique dont la variance dans l'ensemble d'apprentissage était du bruit, on pourrait s'attendre à ce que la variance globale de cette caractéristique soit beaucoup plus petite qu'une autre caractéristique; cette transformation ferait à la fois la caractéristique «bruit» et l'autre caractéristique avoir la même variance, et pourrait être considérée comme «bruit d'amplification».
ijoseph