Ist eine Feature-Transformation (Power, Log, Box-Cox) für Deep Learning erforderlich?


7

Ich habe gelesen, dass es vorteilhaft ist, bestimmte Transformationen allgemeiner Funktionen auf Datensätze anzuwenden, bevor sie auf Modelle für maschinelles Lernen treffen. Diese basieren auf der Verteilung der Funktionen des Datensatzes. Beispiel: Anwenden von Protokolltransformationen auf verzerrte normalverteilte Features. Einige Beispiele hier .

Soweit ich weiß, ist "Automatic Feature Engineering" (auch bekannt als "Feature Learning") ein Hauptsegen des Deep Learning. Ich weiß, dass dies Funktionskombinationen umfasst. aber meine Vermutung sagt, dass dies auch gelernte Feature-Transformationen gemäß den oben genannten beinhaltet? Wenn Sie also tiefe Netzwerke mit gut abgestimmten Hypern verwenden, können Feature-Transformationen sicher aus der Verantwortung des Menschen entfernt werden - das heißt, werfen Sie all dieses log / square / box-cox-Zeug weg?

[Bearbeiten] Extra: Behandelt dies auch die "Funktionsauswahl" (Entscheidung, welche Eingaben nicht enthalten sein sollen) für Sie?

Antworten:


1

Die Faustregel lautet: Je mehr Daten verfügbar sind, desto weniger müssen Sie sich um das Feature-Engineering kümmern (das im Wesentlichen einige Vorkenntnisse in das Modell eingibt, basierend auf dem Fachwissen der Domäne).

Theoretisch (mit einer ausreichend großen Anzahl von Proben) könnten Sie Imagenet lösen, ohne irgendwelche Windungen zu verwenden, nur ein tiefes Feedforward-Netzwerk. Wenn Sie jedoch wissen, dass Pixel räumlich korreliert sind (was dazu führt, dass die Faltungen dieses Problem viel besser lösen), können Sie einen Algorithmus entwerfen, der viel dateneffizienter ist.


nette Erklärung von "Feature Engineering". In meiner Welt wird dies von Benutzern erledigt, die eine Liste möglicher Prädiktoren und ein Startmodell bereitstellen. Dann beginnt der Spaß, wenn Funktionen getestet und latente Strukturen erkannt werden.
IrishStat

0

Die Art und Weise, wie ich Feature Engineering ala-Box Cox betrachte, ist, dass wir ein Modell haben, das Normalität erfordert, wir haben keine normalen Daten, also führen wir eine Transformation durch, um zu normalen Daten zu gelangen. Einerseits ist es wahr, dass neuronale Netze keine normalisierten Daten benötigen. Warum also Feature Engineer? Auf der anderen Seite kann, während ein neuronales Netz möglicherweise irgendwann dort ankommt, manchmal das von Menschen durchgeführte Feature-Engineering die anfängliche Konvergenzrate enorm unterstützen. Zum Beispiel erhöht im Fall von Mehrkanalsignaldaten das Durchführen der Fourier-Zerlegung und das Berechnen der Kreuzkorrelationen im Voraus die Geschwindigkeit, mit der das neuronale Netz zur Klassifizierung gelangen kann, erheblich (um ein wirklich spezifisches Beispiel zu geben). Um ein vernünftigeres Beispiel zu nennen: Wenn Sie wissen, dass Ihre Daten viele Ausreißer haben und diese nicht wichtig sind, ist das Entfernen von Ausreißern eine Form des Feature-Engineerings. Das Netzwerk könnte dann irgendwann lernen, es zu ignorieren, aber es könnte ewig dauern. Wenn Sie also ziemlich sicher sind, dass die Transformation etwas Wichtiges an Ihren Daten hervorheben wird, transformieren Sie es, wenn nicht, dann vielleicht auch nicht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.