Ich versuche derzeit Neural Network zu verwenden, um Regressionsprognosen zu machen.Neuronale Netzwerke Regression: Skalierung der Ausgänge oder Verwendung einer linearen Schicht?
Allerdings weiß ich nicht, was ist der beste Weg, damit umzugehen, wie ich gelesen habe, dass es zwei verschiedene Möglichkeiten gab, Regressionsvorhersagen mit einem NN zu machen.
1) Einige Websites/Artikel schlagen vor, eine letzte Schicht hinzuzufügen, die linear ist. http://deeplearning4j.org/linear-regression.html
Meine letzten Schichten würden so aussehen, denke ich,:
layer1 = tanh(layer0*weight1 + bias1)
layer2 = identity(layer1*weight2+bias2)
Ich habe auch bemerkt, dass, wenn ich diese Lösung verwenden, ich in der Regel eine Vorhersage bekommen, die der Mittelwert der Batch-Vorhersage ist. Und das ist der Fall, wenn ich Tanh oder Sigmoid als vorletzte Schicht verwende.
2) Einige andere Websites/Artikel schlagen vor, die Ausgabe auf [-1,1]
oder [0,1]
Bereich zu skalieren und Tanh oder Sigmoid als letzte Schicht zu verwenden.
Sind diese 2 Lösungen akzeptabel? Welchen sollte man bevorzugen?
Danke, Paul
Entschuldigung für meine späte Antwort, aber danke für Ihre Antwort. Ich habe versucht, die Ausgabewerte zu skalieren und dann zu entkalken, sowohl im Bereich [0,1] für Sigmoid als auch [-1,1] für Tanh. Der Unterschied in den Ergebnissen für die Genauigkeit ist nicht unglaublich, aber das Modell scheint nie mit Skalierungsausgaben zu divergieren, während es oft divergiert, wenn ich nicht skalierte Werte verwende. –