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?
61
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.
quelle
Einige Ideen, Referenzen und Darstellungen, warum die Eingangsnormalisierung für ANN und k-means nützlich sein kann:
K-bedeutet :
Beispiel in Matlab:
(Zu Ihrer Information : Wie kann ich feststellen, ob mein Dataset geclustert oder nicht geclustert ist (dh einen einzelnen Cluster bildet ) ?
Verteiltes Clustering :
Künstliches neuronales Netzwerk (Eingänge) :
Künstliches neuronales Netzwerk (Ein- / Ausgänge)
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).
Kaufman et al. Fahren Sie mit einigen interessanten Überlegungen fort (Seite 11):
quelle
Warum funktioniert die Feature-Skalierung? Ich kann Ihnen ein Beispiel geben (von Quora )
quelle
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.)
quelle
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.
quelle
In diesem Artikel geht es nur um k-means, aber es erklärt und beweist die Anforderung der Datenvorverarbeitung sehr gut.
.
.
Quelle: http://maxwellsci.com/print/rjaset/v6-3299-3303.pdf
quelle
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.
quelle
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.
quelle