Wie und warum funktionieren Normalisierung und Feature-Skalierung?

61

Ich sehe, dass viele Algorithmen für maschinelles Lernen mit mittlerer Auslöschung und Kovarianzausgleich besser funktionieren. Beispielsweise konvergieren neuronale Netze tendenziell schneller, und K-Means bietet im Allgemeinen eine bessere Clusterbildung mit vorverarbeiteten Features. Ich sehe nicht, dass die Intuition hinter diesen Vorverarbeitungsschritten zu einer Leistungssteigerung führt. Kann mir das jemand erklären?

Erogol
quelle

Antworten:

25

Es geht einfach darum, alle Ihre Daten auf den gleichen Maßstab zu bringen: Wenn die Maßstäbe für die verschiedenen Funktionen sehr unterschiedlich sind, kann dies sich negativ auf Ihre Lernfähigkeit auswirken (je nachdem, mit welchen Methoden Sie dies tun). . Durch das Sicherstellen standardisierter Merkmalswerte werden alle Merkmale in ihrer Darstellung implizit gleich gewichtet.

Ben Allison
quelle
3
was meinst du mit "das kann sich negativ auf deine lernfähigkeit auswirken", vielleicht könntest du das erweitern?
Charlie Parker
14
Dies ist keine wirklich gute Erklärung. Um ein echtes Verständnis zu erlangen, müssen Sie mindestens eine Stufe tiefer in die Erklärung einsteigen.
Zelphir Kaltstahl
Ich brauche einen Verweis auf meine These bitte
X-RW
40

Es ist wahr, dass Vorverarbeitung im maschinellen Lernen eine ziemlich schwarze Kunst ist. Es wird nicht oft in Zeitungen niedergeschrieben, warum mehrere Vorverarbeitungsschritte wesentlich sind, damit es funktioniert. Ich bin mir auch nicht sicher, ob es in jedem Fall verstanden wird. Um die Sache noch komplizierter zu machen, hängt es stark von der von Ihnen verwendeten Methode und auch von der Problemdomäne ab.

Einige Methoden sind zB affine Transformation invariant. Wenn Sie ein neuronales Netzwerk haben und nur eine affine Transformation auf Ihre Daten anwenden, verliert oder gewinnt das Netzwerk theoretisch nichts. In der Praxis funktioniert ein neuronales Netzwerk jedoch am besten, wenn die Eingaben zentriert und weiß sind. Das heißt, ihre Kovarianz ist diagonal und der Mittelwert ist der Nullvektor. Warum verbessert es die Dinge? Das liegt nur daran, dass die Optimierung des neuronalen Netzes eleganter funktioniert, da die verborgenen Aktivierungsfunktionen nicht so schnell ausreichen und Sie daher nicht zu Beginn des Lernens Steigungen nahe Null erhalten.

Andere Methoden, z. B. K-Means, können je nach Vorverarbeitung zu völlig unterschiedlichen Lösungen führen. Dies liegt daran, dass eine affine Transformation eine Änderung im metrischen Raum impliziert: Der euklidische Abstand zwischen zwei Stichproben ist nach dieser Transformation unterschiedlich.

Am Ende des Tages möchten Sie verstehen, was Sie mit den Daten tun. Das Aufhellen beim Computer-Sehen und die probeweise Normalisierung ist etwas, was das menschliche Gehirn in seiner Vision-Pipeline ebenfalls tut.

bayerj
quelle
17

Einige Ideen, Referenzen und Darstellungen, warum die Eingangsnormalisierung für ANN und k-means nützlich sein kann:

K-bedeutet :

K-bedeutet, dass die Clusterbildung in allen Raumrichtungen "isotrop" ist und daher dazu neigt, mehr oder weniger runde (anstatt langgestreckte) Cluster zu erzeugen. In dieser Situation bedeutet die Ungleichheit der Varianzen, dass Variablen mit geringerer Varianz stärker gewichtet werden.

Beispiel in Matlab:

X = [randn(100,2)+ones(100,2);...
     randn(100,2)-ones(100,2)];

% Introduce denormalization
% X(:, 2) = X(:, 2) * 1000 + 500;

opts = statset('Display','final');

[idx,ctrs] = kmeans(X,2,...
                    'Distance','city',...
                    'Replicates',5,...
                    'Options',opts);

plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
     'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
     'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
       'Location','NW')
title('K-means with normalization')

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

(Zu Ihrer Information : Wie kann ich feststellen, ob mein Dataset geclustert oder nicht geclustert ist (dh einen einzelnen Cluster bildet ) ?

Verteiltes Clustering :

Die vergleichende Analyse zeigt, dass die Ergebnisse der verteilten Clusterung von der Art des Normalisierungsverfahrens abhängen.

Künstliches neuronales Netzwerk (Eingänge) :

Werden die Eingangsgrößen wie bei einem MLP linear kombiniert, ist es zumindest theoretisch selten zwingend erforderlich, die Eingänge zu standardisieren. Der Grund dafür ist, dass jede Neuskalierung eines Eingabevektors durch Ändern der entsprechenden Gewichte und Vorspannungen effektiv rückgängig gemacht werden kann, sodass Sie genau die gleichen Ausgaben wie zuvor erhalten. Es gibt jedoch eine Reihe praktischer Gründe, warum die Vereinheitlichung der Eingaben das Training beschleunigen und die Wahrscheinlichkeit verringern kann, in lokalen Optima stecken zu bleiben. Auch Gewichtsabnahme und Bayes'sche Schätzung können mit standardisierten Eingaben bequemer durchgeführt werden.

Künstliches neuronales Netzwerk (Ein- / Ausgänge)

Sollten Sie mit Ihren Daten eines dieser Dinge tun? Die Antwort ist, es kommt darauf an.

Das Standardisieren von Eingabe- oder Zielvariablen führt zu einem besseren Verhalten des Trainingsprozesses, indem die numerischen Bedingungen (siehe ftp://ftp.sas.com/pub/neural/illcond/illcond.html ) des Optimierungsproblems verbessert und verschiedene Standardeinstellungen sichergestellt werden An der Initialisierung und Beendigung beteiligte Werte sind angemessen. Die Standardisierung von Zielen kann sich auch auf die Zielfunktion auswirken.

Die Standardisierung von Fällen sollte mit Vorsicht angegangen werden, da sie Informationen verwirft. Wenn diese Informationen irrelevant sind, kann die Standardisierung von Fällen sehr hilfreich sein. Wenn diese Informationen wichtig sind, kann die Standardisierung von Fällen katastrophal sein.


Interessanterweise kann eine Änderung der Maßeinheiten sogar zu einer sehr unterschiedlichen Clusterstruktur führen: Kaufman, Leonard und Peter J. Rousseeuw. "Auffinden von Gruppen in Daten: Eine Einführung in die Clusteranalyse." (2005).

In einigen Anwendungen kann eine Änderung der Maßeinheiten sogar zu einer sehr unterschiedlichen Clusterstruktur führen. Zum Beispiel sind das Alter (in Jahren) und die Größe (in Zentimetern) von vier imaginären Personen in Tabelle 3 angegeben und in Abbildung 3 dargestellt. Es scheint, dass {A, B) und {C, 0) zwei gut getrennte Cluster sind . Wenn andererseits die Höhe in Fuß ausgedrückt wird, erhält man die Tabellen 4 und 4, in denen die offensichtlichen Cluster nun {A, C} und {B, D} sind. Diese Partition unterscheidet sich grundlegend von der ersten, da jedes Thema einen anderen Begleiter erhalten hat. (Abbildung 4 wäre noch mehr abgeflacht, wenn das Alter in Tagen gemessen worden wäre.)

Um diese Abhängigkeit von der Wahl der Maßeinheiten zu vermeiden, besteht die Möglichkeit, die Daten zu standardisieren. Dadurch werden die ursprünglichen Messwerte in einheitenlose Variablen konvertiert.

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Kaufman et al. Fahren Sie mit einigen interessanten Überlegungen fort (Seite 11):

Aus philosophischer Sicht löst die Normung das Problem nicht wirklich. In der Tat führt die Wahl der Maßeinheiten zu relativen Gewichten der Variablen. Das Ausdrücken einer Variablen in kleineren Einheiten führt zu einem größeren Bereich für diese Variable, was sich dann erheblich auf die resultierende Struktur auswirkt. Andererseits versucht man durch Standardisierung, allen Variablen ein gleiches Gewicht zu geben, in der Hoffnung, Objektivität zu erreichen. Als solches kann es von einem Praktiker verwendet werden, der keine Vorkenntnisse besitzt. Es kann jedoch durchaus sein, dass einige Variablen in einer bestimmten Anwendung von sich aus wichtiger sind als andere, und die Zuweisung von Gewichten sollte dann auf dem Fachwissen basieren (siehe z. B. Abrahamowicz, 1985). Auf der anderen Seite, Es wurde versucht, Clustering-Techniken zu entwickeln, die unabhängig von der Größe der Variablen sind (Friedman und Rubin, 1967). Der Vorschlag von Hardy und Rasson (1982) besteht darin, nach einer Partition zu suchen, die das Gesamtvolumen der konvexen Hüllen der Cluster minimiert. Im Prinzip ist ein solches Verfahren in Bezug auf lineare Transformationen der Daten invariant, es gibt jedoch leider keinen Algorithmus für dessen Implementierung (mit Ausnahme einer auf zwei Dimensionen beschränkten Approximation). Daher scheint das Dilemma der Standardisierung derzeit unvermeidlich, und die in diesem Buch beschriebenen Programme überlassen die Wahl dem Benutzer. Der Vorschlag von Hardy und Rasson (1982) besteht darin, nach einer Partition zu suchen, die das Gesamtvolumen der konvexen Hüllen der Cluster minimiert. Im Prinzip ist ein solches Verfahren in Bezug auf lineare Transformationen der Daten invariant, es gibt jedoch leider keinen Algorithmus für dessen Implementierung (mit Ausnahme einer auf zwei Dimensionen beschränkten Approximation). Daher scheint das Dilemma der Standardisierung derzeit unvermeidlich, und die in diesem Buch beschriebenen Programme überlassen die Wahl dem Benutzer. Der Vorschlag von Hardy und Rasson (1982) besteht darin, nach einer Partition zu suchen, die das Gesamtvolumen der konvexen Hüllen der Cluster minimiert. Im Prinzip ist ein solches Verfahren in Bezug auf lineare Transformationen der Daten invariant, es gibt jedoch leider keinen Algorithmus für dessen Implementierung (mit Ausnahme einer auf zwei Dimensionen beschränkten Approximation). Daher scheint das Dilemma der Standardisierung derzeit unvermeidlich, und die in diesem Buch beschriebenen Programme überlassen die Wahl dem Benutzer.

Franck Dernoncourt
quelle
6

Warum funktioniert die Feature-Skalierung? Ich kann Ihnen ein Beispiel geben (von Quora )

Lassen Sie mich dies aus der allgemeinen ML-Perspektive und nicht nur aus neuronalen Netzen beantworten. Wenn Sie Daten erfassen und Features extrahieren, werden die Daten häufig in verschiedenen Maßstäben erfasst. Zum Beispiel kann das Alter der Mitarbeiter in einem Unternehmen zwischen 21 und 70 Jahren liegen, die Größe des Hauses, in dem sie leben, liegt zwischen 500 und 5000 Quadratfuß, und die Gehälter können zwischen 80000 liegen. In dieser Situation verwenden Sie einen einfachen Euklidischen Metrisch gesehen spielt das Altersmerkmal keine Rolle, da es um einige Größenordnungen kleiner ist als andere Merkmale. Es kann jedoch einige wichtige Informationen enthalten, die für die Aufgabe nützlich sein können. In diesem Fall möchten Sie die Features möglicherweise unabhängig voneinander auf den gleichen Maßstab normieren, z. B. [0,1], damit sie bei der Berechnung des Abstands den gleichen Beitrag leisten.30000

Vijay PR
quelle
4
Wenn Sie einen Beitrag von Quora zitieren, müssen Sie wirklich auf die Quelle verlinken.
Matthew Drury
5

Es gibt zwei verschiedene Probleme:

a) Lernen der richtigen Funktion, zB k-means: Die Eingabeskala gibt grundsätzlich die Ähnlichkeit an, so dass die gefundenen Cluster von der Skalierung abhängen. Regularisierung - zB Regulierung von 12 Gewichten - Sie gehen davon aus, dass jedes Gewicht "gleich klein" sein sollte - wenn Ihre Daten nicht "angemessen" skaliert sind, ist dies nicht der Fall

b) Optimierung, nämlich durch Gradientenabstieg (z. B. die meisten neuronalen Netze). Für den Gradientenabstieg müssen Sie die Lernrate auswählen. Eine gute Lernrate (zumindest auf der ersten ausgeblendeten Ebene) hängt jedoch von der Eingabeskalierung ab: Kleine [relevante] Eingaben erfordern normalerweise größere Gewichte, sodass Sie ein größeres Lernen wünschen Rate für diese Gewichte (um schneller dorthin zu gelangen) und vv für große Eingaben ... da Sie nur eine einzige Lernrate verwenden möchten, skalieren Sie Ihre Eingaben neu. (Aus dem gleichen Grund ist auch das Aufhellen bzw. Dekorieren wichtig.)

seanv507
quelle
1

Ich beende Geoffrey Hintons Neuronale Netze für maschinelles Lernen auf Coursera, und er erklärt dies in Vorlesung 6b: "Eine Tüte Tricks für den Minibatch-Gradientenabstieg." Sie können eine Vorschau des Videos anzeigen, ohne sich anzumelden oder anzumelden.

Andrew
quelle
1

In diesem Artikel geht es nur um k-means, aber es erklärt und beweist die Anforderung der Datenvorverarbeitung sehr gut.

Standardisierung ist der zentrale Vorverarbeitungsschritt in Data Mining, um Werte von Features oder Attributen aus verschiedenen Dynamikbereichen in einen bestimmten Bereich zu standardisieren. In diesem Artikel haben wir die Leistung der drei Standardisierungsmethoden an einem herkömmlichen K-Mittelwert-Algorithmus analysiert. Beim Vergleich der Ergebnisse mit Datensätzen zu Infektionskrankheiten wurde festgestellt, dass das mit der z-Score-Standardisierungsmethode erzielte Ergebnis effektiver und effizienter ist als die Standardisierungsmethoden mit Min-Max- und Dezimal-Skalierung.

.

... wenn es einige Features mit großer Größe oder großer Variabilität gibt, wird diese Art von Features das Clustering-Ergebnis stark beeinflussen. In diesem Fall wäre die Datenstandardisierung eine wichtige Vorverarbeitungsaufgabe, um die Variabilität der Datensätze zu skalieren oder zu steuern.

.

... die Merkmale müssen dimensionslos sein, da die numerischen Werte der Bereiche der Dimensionsmerkmale von den Maßeinheiten abhängen und daher eine Auswahl der Maßeinheiten die Ergebnisse der Clusterbildung erheblich verändern kann. Daher sollte man keine Distanzmaße wie die euklidische Distanz verwenden, ohne eine Normalisierung der Datensätze zu haben

Quelle: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf

Löwe
quelle
1

Die Vorverarbeitung funktioniert häufig, weil dadurch Merkmale der Daten entfernt werden, die nicht mit dem zu lösenden Klassifizierungsproblem zusammenhängen. Denken Sie beispielsweise an die Klassifizierung von Audiodaten aus verschiedenen Lautsprechern. Lautstärkeschwankungen (Amplitudenschwankungen) sind möglicherweise irrelevant, wohingegen das Frequenzspektrum der wirklich relevante Aspekt ist. In diesem Fall ist die Normalisierung der Amplitude für die meisten ML-Algorithmen sehr hilfreich, da ein irrelevanter Aspekt der Daten entfernt wird und ein neuronales Netzwerk dazu führen würde, dass falsche Muster auftreten.

Nicolas Schuck
quelle
1

Ich denke, dass dies einfach getan wird, damit das Merkmal mit einem größeren Wert die Auswirkungen des Merkmals mit einem kleineren Wert beim Lernen eines Klassifikators nicht überschattet. Dies ist besonders wichtig, wenn das Merkmal mit kleineren Werten tatsächlich zur Klassentrennbarkeit beiträgt. Die Klassifizierer wie die logistische Regression hätten Schwierigkeiten, die Entscheidungsgrenze zu lernen, beispielsweise wenn sie auf Mikroebene eines Merkmals vorhanden ist und wir andere Merkmale in der Größenordnung von Millionen haben Auch hilft der Algorithmus besser zu konvergieren. Deshalb gehen wir kein Risiko ein, wenn wir diese in unsere Algorithmen einkodieren. Es ist für einen Klassifizierer viel einfacher, die Beiträge (Gewichte) von Merkmalen auf diese Weise zu lernen. Für K gilt auch, wenn euklidische Normen verwendet werden (Verwirrung aufgrund der Skalierung). Einige Algorithmen können auch ohne Normalisierung arbeiten.

Vaibhav Arora
quelle