Angenommen, Sie haben zwei Datensätze D1 und D2. Beide werden von derselben zugrunde liegenden Verteilung X abgetastet. Ich möchte sie zum Trainieren eines neuronalen Netzwerks verwenden. Die Features sind alle vorzeichenlose Ganzzahlen im Bereich [0; 2 ^ 64].
Aufgrund der Tatsache, dass die Merkmale sehr unterschiedliche Maßstäbe haben, habe ich mich für die Z-Score-Normalisierung in Verbindung mit einer Sigmoid-Funktion entschieden. Das bedeutet, dass ich die normalisierten Z-Score-Daten der Logistikfunktion zuführe, um die Features auf [0; 1] Bereich.
Zu diesem Zeitpunkt bin ich mir nicht sicher, an welchem Punkt die Daten normalisiert werden sollen.
1.) Ich benutze D1 und normalisiere es mit mean_1 und std_dev_1, die nur unter Berücksichtigung von D1 erhalten werden. Ich wiederhole den Vorgang für D2 und normalisiere ihn mit mean_2 und std_dev_2. Dann trainiere ich das Netzwerk mit den beiden Datensätzen nacheinander.
2.) Ich addiere D1 und D2, um eine Menge D3 zu erhalten, und normalisiere sie, indem ich mean_3 und std_dev_3 über den gesamten Datensatz (D1 + D2) berechne. Dann trainiere ich das Netzwerk damit.
2 Fragen hier:
a) Führen die beiden Methoden zu ähnlichen Ergebnissen? Dies ist für mich besonders wichtig, da D2 möglicherweise später als D1 für mich verfügbar wird und ich wissen muss, ob ich das Netzwerk mit dem gesamten Datensatz neu trainieren muss.
b) Welche Parameter muss ich bei der Inferenz mit dem trainierten Netzwerk verwenden, um die neuen Eingaben zu normalisieren? Muss ich zum Beispiel mean_3 und std_dev_3 verwenden?
EDIT: Ich fand heraus, dass Mittelwert und Standardabweichung der Kombination der beiden Datensätze aus Mittelwert und Standardabweichung der ursprünglichen Datensätze berechnet werden können. Das bedeutet (theoretisch), dass sie sequentiell trainiert und ihre Verteilungsparameter kombiniert werden könnten, um die Eingaben für die Inferenz zu normieren.