Müssen Eingaben in ein neuronales Netzwerk in [-1,1] sein?


8

Ich möchte eine Wettervorhersage mit Neuronalen Netzen erstellen. Alle Beispiele, die ich gesehen habe, verwendeten nur Werte [-1,1] als Eingabe. Ist es auch möglich, größere Werte (wie Luftdruck, Gradkalkius der letzten Tage, ...) als Eingaben zu verwenden und eine Zahl als Ausgabe zu erhalten?

Vielen Dank


Allgemein für Klassifizierungsalgorithmen und nicht nur für neuronale Netze kann jede Variable wie die von Ihnen vorgeschlagene für die Klassifizierung verwendet werden. Alle Variablen, die zur Trennung der Klassen beitragen, sollten enthalten sein. Sogar binäre Baumkalssifizierer verwenden die kontinuierliche Variablendichotomisierung, indem sie Teilungspunkte finden.
Michael R. Chernick

Antworten:


9

Sie können die Werte so normalisieren, dass Sie beispielsweise Folgendes verwenden:

APAP0AP1AP0

Dabei ist der aktuelle Luftdruck, der Luftdruckwert, den Sie an möchten , und der Luftdruckwert, den Sie an senden möchten .APAP00AP11

Es ist in Ordnung, wenn Ihre Eingaben gelegentlich etwas außerhalb von .[1,1]

Es ist gefährlich, wenn eine Eingabe normalerweise klein ist, aber gelegentlich extreme Werte aufweist. Dann ist es möglicherweise besser, die Eingabe in mehr als einen Eingabewert aufzuteilen oder die Ausreißer zu entfernen und zu akzeptieren, dass das neuronale Netzwerk einen eingeschränkten Anwendungskontext hat. Eine Neuskalierung, sodass die Ausreißer zwischen und liegen, behebt das Problem nicht.11


Also sind AP0 und AP1 wie meine Grenzen für Luftdruckwerte?
user1406177

1
Sie müssen keine Grenzen sein. Sie sind Referenzwerte, sodass die meisten Werte auf den gewünschten Bereich skaliert werden. Für Temperaturen können Sie also , , obwohl es gelegentlich über oder unter Grad Celsius geht. Es ist nicht schrecklich, wenn die Reichweite um den Faktor größer ist , aber versuchen Sie nicht, um den Faktor auszuschalten , da dies das Training verlangsamen kann. T1=35T0=5355210
Douglas Zare

Theoretisch sollte die Skalierung Ihrer Daten für neuronale Netze keinen Unterschied machen. Es bedeutet nur, dass auch die optimalen Gewichte skaliert werden. In der Praxis kann dies einen Unterschied machen, da Gleitkomma-Darstellungen nicht exakt sind. Wenn Sie also große Eingaben haben, sind Ihre Gewichte sehr klein und eine kleine Änderung kann möglicherweise nicht dargestellt werden. Auf der anderen Seite haben Sie normalerweise Sigmoid-Aktivierungsfunktionen, die bei großen Eingaben zur Sättigung neigen und sich dann während des Trainings nur langsam anpassen. Das bedeutet, dass die Skalierung Ihrer Daten häufig das Training beschleunigt.
Alfa

1
Die Trainingsmethoden sind nicht skalierungsinvariant, daher wirkt sich die Skalierung darauf aus, wie schnell Sie trainieren, auch wenn Sie die Knoten nicht sättigen.
Douglas Zare

1
Skalierung Daten DOES einen Unterschied machen. 1. Felder mit größeren Werten wirken sich zunächst stärker auf das Netzwerk aus als kleinere Felder, da die Netzwerke mit gleichmäßig gezeichneten Zufallszahlen initialisiert werden. Mit der Zeit werden die Funktionen durch die Gewichtsaktualisierungen skaliert, dies erfordert jedoch mehr Aufwand. 2. Der Gradientenabstieg hat es mit nicht normalisierten Daten sehr schwer, da die Fehlerkurve gequetscht wird, wodurch sie eliptisch und daher sehr langsam zu navigieren ist. Wenn Sie also einen Gradientenabstieg verwenden, kann dies ein großes Problem sein. 3. Die Sigmoid-Funktion hat einen sehr kleinen Gradienten für große (und sehr negative) Eingaben.
Simon
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.