Ich versuche, das Ergebnis eines komplexen Systems mithilfe neuronaler Netze (ANNs) vorherzusagen. Die (abhängigen) Ergebniswerte liegen zwischen 0 und 10.000. Die verschiedenen Eingangsvariablen haben unterschiedliche Bereiche. Alle Variablen haben ungefähr normale Verteilungen.
Ich betrachte verschiedene Möglichkeiten, um die Daten vor dem Training zu skalieren. Eine Möglichkeit besteht darin, die Eingangsvariablen (unabhängig) und die Ausgangsvariablen (abhängig) auf [0, 1] zu skalieren, indem die kumulative Verteilungsfunktion unter Verwendung des Mittelwerts und der Standardabweichung jeder Variablen unabhängig berechnet wird. Das Problem bei dieser Methode ist, dass ich, wenn ich die Sigmoid-Aktivierungsfunktion am Ausgang verwende, sehr wahrscheinlich extreme Daten verpasse, insbesondere solche, die nicht im Trainingssatz enthalten sind
Eine weitere Option ist die Verwendung eines Z-Scores. In diesem Fall habe ich kein extremes Datenproblem. Ich beschränke mich jedoch auf eine lineare Aktivierungsfunktion am Ausgang.
Was sind andere akzeptierte Normalisierungstechniken, die mit ANNs verwendet werden? Ich habe versucht, nach Rezensionen zu diesem Thema zu suchen, aber nichts Nützliches gefunden.
quelle
Antworten:
Ein Standardansatz besteht darin, die Eingaben so zu skalieren, dass sie einen Mittelwert von 0 und eine Varianz von 1 haben. Auch eine lineare Dekorrelation / Weißfärbung / pca hilft sehr.
Wenn Sie sich für die Tricks des Handels interessieren, kann ich LeCuns effizientes Backprop-Papier empfehlen .
quelle
1- Die Min-Max-Normalisierung behält die ursprüngliche Verteilung der Bewertungen mit Ausnahme eines Skalierungsfaktors bei und transformiert alle Bewertungen in einen gemeinsamen Bereich [0, 1]. Diese Methode ist jedoch nicht robust (dh die Methode ist sehr empfindlich gegenüber Ausreißern).
2- Standardisierung (Z-Score-Normalisierung) Die am häufigsten verwendete Technik, die anhand des arithmetischen Mittels und der Standardabweichung der angegebenen Daten berechnet wird. Sowohl der Mittelwert als auch die Standardabweichung sind jedoch empfindlich gegenüber Ausreißern, und diese Technik garantiert keinen gemeinsamen numerischen Bereich für die normalisierten Bewertungen. Wenn außerdem die Eingabewerte nicht Gauß-verteilt sind, behält diese Technik die Eingabeverteilung am Ausgang nicht bei.
3- Median und MAD: Der Median und die mediane absolute Abweichung (MAD) sind unempfindlich gegenüber Ausreißern und den Punkten in den extremen Schwänzen der Verteilung. deshalb ist es robust. Diese Technik behält jedoch nicht die Eingabeverteilung bei und transformiert die Bewertungen nicht in einen gemeinsamen numerischen Bereich.
4-Tanh-Schätzer: Die von Hampel et al. sind robust und hocheffizient. Die Normalisierung ist gegeben durch
Dabei sind μGH und σGH der Mittelwert bzw. die Standardabweichung der von Hampel-Schätzern angegebenen echten Punkteverteilung.
Daher empfehle ich Tanh-Schätzer.
Referenz https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt
quelle
Ich habe hier eine ähnliche Antwort gegeben. Wenn Sie eine multiple Regression durchführen, wann sollten Sie Ihre Prädiktorvariablen zentrieren und wann sollten Sie sie standardisieren? dachte aber, es sei ein hinreichend anderer Zusammenhang, dass hier eine Antwort gehen könnte.
Es gibt eine großartige Usenet-Ressource: http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html
Es gibt in einfachen Worten einige der Probleme und Überlegungen, wenn man die Daten normalisieren / standardisieren / neu skalieren möchte. Da es das Thema aus der Perspektive des maschinellen Lernens behandelt und Ihre Frage ML ist, könnte es eine gewisse Relevanz haben.
quelle
Du könntest es tun
quelle
Wenn Sie in arbeiten
python
,sklearn
haben Sie eine Methode, um dies mit verschiedenen Techniken in ihrempreprocessing
Modul zu tun (plus eine raffinierte Pipeline-Funktion mit einem Beispiel in ihren Dokumenten):quelle
Nun, [0,1] ist der Standardansatz. Funktioniert bei neuronalen Netzen am besten im Bereich 0-1. Min-Max-Skalierung (oder Normalisierung) ist der zu verfolgende Ansatz.
Bei den Ausreißern müssen diese in den meisten Szenarien abgeschnitten werden, da Ausreißer nicht häufig auftreten. Sie möchten jedoch nicht, dass Ausreißer sich auf Ihr Modell auswirken (es sei denn, Sie lösen das Problem mit der Erkennung von Anomalien). Sie können es basierend auf der empirischen Regel von 68-95-99.7 ausschneiden oder ein Box-Diagramm erstellen, beobachten und entsprechend ausschneiden.
MinMax Formel -
(xi - min(x)) / (max(x) - min(x))
oder verwenden könnensklearn.preprocessing.MinMaxScaler
quelle
"Akzeptiert" ist das, was für Sie am besten funktioniert - dann akzeptieren Sie es.
Nach meiner Erfahrung funktioniert das Anpassen einer Verteilung aus der Johnson-Verteilungsfamilie an jedes der kontinuierlichen Features gut, da die Verteilungen sehr flexibel sind und die meisten unimodalen Features in normale Standardverteilungen umwandeln können. Es wird auch bei multimodalen Funktionen hilfreich sein, aber es bringt die Funktionen im Allgemeinen in die bestmögliche Form (standardmäßige Gauß-verteilte Daten sind ideal für die Arbeit - es ist mit den meisten kompatibel und manchmal für die meisten optimal) statistische / ML-Methode verfügbar).
http://qualityamerica.com/LSS-Knowledge-Center/statisticalinference/johnson_distributions.php
quelle