2016-04-02 3 views
0

Meine Trainingsdaten präzise genug zu sein, enthält Zahlen in Bereich von -2000 bis 2000 Wenn meine Eingabe von Trainingsdaten 300 zu sein, ich normalisieren es:Neuronales Netz nicht in der Lage zu sein, ohne die Normalisierung es für normalisierten Daten

1/300 = 0,0033~ 

Also wird es ein Bereich von -1-1 sein.

Das Problem ist, dass der Unterschied zwischen normalisierten Werten viel zu klein sein wird.

1/300 = 0,00333~ 
1/299 = 0,00334~ 

Es erfordert, dass neuronales Netzwerk äußerst präzise wird. Ich verwende Gradienten-Backpropagation-Algorithmen, während Tanh Aktivierungsfunktion ist. Es dauert viel zu lange, bis das neuronale Netzwerk so genau wird.

Welche Lernmethode sollte ich verwenden oder wie könnte ich mein aktuelles neuronales Netzwerk für diese Aufgabe verbessern? Danke!

Antwort

0

Sie könnten eine Aktivierungsfunktion ReLU (lineare Aktivierung) für die ersten paar Schichten verwenden und eine Tanh-Aktivierung für die Ausgabeschicht durchführen.

Input (-ReLU-> Hidden L.)*n -tanh-> Output 
+0

Ist es wirklich eine einzige Lösung? Ich möchte nicht wirklich die lineare Aktivierungsfunktion verwenden. –

+0

Wahrscheinlich nicht. Ich bin eigentlich auch ziemlich neu in diesem Thema und ich mochte auch nicht die Idee von ReLU, aber solange du genug versteckte Ebene (> 1) hast, funktioniert es ziemlich gut. –

Verwandte Themen