Je constate que de nombreux algorithmes d’apprentissage automatique fonctionnent mieux avec une annulation moyenne et une égalisation de covariance. Par exemple, les réseaux de neurones ont tendance à converger plus rapidement et K-Means offre généralement un meilleur clustering avec des fonctionnalités pré-traitées. Je ne vois pas l'intuition derrière ces étapes de prétraitement améliorer les performances. Quelqu'un peut-il expliquer cela moi?
61
Il est vrai que le prétraitement dans l’apprentissage automatique est en quelque sorte un art très noir. Il n’est pas écrit souvent dans les journaux pourquoi plusieurs étapes de prétraitement sont essentielles pour que cela fonctionne. Je ne suis pas sûr non plus que ce soit compris dans tous les cas. Pour rendre les choses plus compliquées, cela dépend fortement de la méthode que vous utilisez et du domaine du problème.
Certaines méthodes, par exemple, sont invariantes par transformation affine. Si vous avez un réseau de neurones et appliquez simplement une transformation affine à vos données, le réseau ne perd ni ne gagne rien en théorie. En pratique, cependant, un réseau de neurones fonctionne mieux si les entrées sont centrées et blanches. Cela signifie que leur covariance est diagonale et que la moyenne est le vecteur zéro. Pourquoi améliore-t-il les choses? C’est uniquement parce que l’optimisation du réseau neuronal fonctionne plus harmonieusement, car les fonctions d’activation cachées ne saturent pas aussi vite et ne vous donnent donc pas des gradients proches de zéro au début de l’apprentissage.
D'autres méthodes, telles que K-Means, peuvent vous donner des solutions totalement différentes en fonction du prétraitement. En effet, une transformation affine implique une modification de l'espace métrique: la distance euclidienne entre deux échantillons sera différente après cette transformation.
En fin de compte, vous voulez comprendre ce que vous faites des données. Par exemple, le blanchiment dans la vision par ordinateur et la normalisation selon un échantillon est quelque chose que le cerveau humain fait aussi bien dans son pipeline de vision.
la source
Quelques idées, références et graphiques sur les raisons pour lesquelles la normalisation des entrées peut être utile pour ANN et k-means:
K-signifie :
Exemple dans Matlab:
(Pour info: comment puis-je détecter si mon jeu de données est en cluster ou non (c'est-à-dire en formant un seul cluster )
Clustering distribué :
Réseau de neurones artificiels (entrées) :
Réseau de neurones artificiels (entrées / sorties)
Il est intéressant de noter que la modification des unités de mesure peut même conduire à une structure de cluster très différente: Kaufman, Leonard et Peter J. Rousseeuw. "Recherche de groupes dans les données: introduction à l'analyse par cluster." (2005).
Kaufman et al. poursuit avec quelques considérations intéressantes (page 11):
la source
Pourquoi la mise à l'échelle des fonctionnalités fonctionne-t-elle? Je peux vous donner un exemple (de Quora )
la source
Il y a deux problèmes distincts:
a) apprendre la bonne fonction, par exemple k-moyennes: l'échelle d'entrée spécifie essentiellement la similarité, donc les grappes trouvées dépendent de la mise à l'échelle. régularisation - par exemple régularisation de 12 poids - vous supposez que chaque poids doit être "également petit" - si vos données ne sont pas mises à l'échelle "de manière appropriée", ce ne sera pas le cas
b) optimisation, à savoir par descente de gradient (par exemple, la plupart des réseaux de neurones). Pour la descente sur gradient, vous devez choisir le taux d’apprentissage ... mais un bon taux d’apprentissage (au moins sur la 1ère couche masquée) dépend de la mise à l’échelle des entrées: les petites entrées [pertinentes] nécessiteront généralement des poids plus importants. Vous souhaitez donc un apprentissage plus long taux pour les poids (pour y arriver plus vite), et vv pour les grandes entrées ... puisque vous voulez utiliser seulement une vitesse d'apprentissage, vous redimensionnez vos entrées. (et le blanchiment, c'est-à-dire que la décoration est également important pour la même raison)
la source
Je termine les réseaux de neurones pour l'apprentissage automatique de Geoffrey Hinton sur Coursera, et il l'explique dans la conférence 6b: "Un sac à malice pour la descente de gradient en mini-batch." Vous pouvez prévisualiser la vidéo sans vous inscrire ou vous connecter.
la source
Cet article ne parle que de k-moyennes, mais il explique et prouve assez bien la nécessité du prétraitement des données.
.
.
Source: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf
la source
Le prétraitement fonctionne souvent car il supprime des caractéristiques des données qui ne sont pas liées au problème de classification que vous essayez de résoudre. Pensez par exemple à la classification des données sonores de différentes enceintes. Les fluctuations de la sonie (amplitude) peuvent être sans importance, alors que le spectre de fréquence est l'aspect le plus pertinent. Ainsi, dans ce cas, la normalisation de l'amplitude sera très utile pour la plupart des algorithmes ML, car elle supprime un aspect des données non pertinent et causerait l'adaptation excessive d'un réseau de neurones à des modèles parasites.
la source
Je pense que cela est fait simplement pour que l'entité ayant une valeur plus grande ne masque pas ses effets avec une valeur plus petite lors de l'apprentissage d'un classificateur. Cela devient particulièrement important si l'entité avec des valeurs plus petites contribue réellement à la séparabilité des classes. Les classificateurs comme la régression logistique auraient des difficultés à apprendre la limite de décision, par exemple si elle existe au niveau micro d'une entité et que nous avons d'autres entités de l'ordre de millions. Cela permet également à l’algorithme de mieux converger. Par conséquent, nous ne prenons aucun risque lorsque nous les codons dans nos algorithmes. Il est beaucoup plus facile pour un classificateur d’apprendre les contributions (pondérations) des fonctionnalités de cette façon. Également vrai pour K, l’utilisation des normes euclidiennes (confusion due à l’échelle) signifie. Certains algorithmes peuvent aussi fonctionner sans normalisation.
la source