Frage

Ich bin mir ein bisschen unsicher, ein neuronales Netz mit 3 oder mehr Schichten zu optimieren. Die Eingabedaten sind ziemlich laut und ich scheine das Rauschen in das Lernen zu projizieren (starke Verzerrung der Daten, 90% gehören einer Klasse von fünf).

Ich möchte jedoch ein Feedback zur Interpretation erhalten (ich verwende 50/25/8/8/8Neurone mit Tropfen (Keep_Prob = 0,9 nach der ersten versteckten Schicht):

enter image description here enter image description here

War es hilfreich?

Lösung

Die übermäßige logarithmische Form Ihres F1 -Score -Diagramms zeigt, dass das Lernen effektiv ist und die Kosten auf ein gewisses Mindestanfang zusteuern. Das ist gut. Ich gehe davon aus, dass das Geräusch, auf das Sie sich beziehen, die Instabilität des Diagramms nach ungefähr 3K-Iterationen ist: Kosten fallen und steigen auf Zick-Zack-Weise.

Dies deutet oft darauf hin, dass die Lernrate zu groß ist. Die Rückverbreitung findet den richtigen Gradienten, aber Sie gehen zu groß und klettern nicht, anstatt am Rande der Kostenfunktion zu steigen. Es ist besonders deutlich, wenn eine Grafik um einen mittleren Wert zu schwingen scheint. Sie haben nicht erwähnt, welchen genauen Wert der Lernrate Sie verwenden, aber versuchen Sie, sie zu reduzieren. Ein guter Ausgangspunkt wäre 0,01, aber er hängt von vielen Faktoren ab. Versuchen Sie also zu experimentieren.

Ein weiteres Problem könnte eine Chargengröße sein: Das heißt, wie viele Beispiele tragen zur Berechnung eines Gradienten bei. Wenn es zu groß ist, könnten Sie einen durchschnittlichen Gradienten in die falsche Richtung zeigen. Und dann wird sogar ein kleiner Schritt (dh eine niedrige Lernrate) nicht helfen. Und es könnte sich wieder in einem Zick-Zack-Muster manifestieren. Wenn die Stapelgröße einer der Parameter ist, versuchen Sie, es zu verringern.

Das am wenigsten wahrscheinliche Problem könnte die Codierungsarchitektur Ihres Netzwerks sein. Und insbesondere die bescheidene Anzahl von 8 Neuronen in den letzten Schichten. In diesem Fall können einzelne Neuronen einen erheblichen Einfluss auf die endgültige Ausgabe haben. Und selbst geringe Anpassungen, die sich aus einem einzelnen Schritt der Rückausbreitung ergeben, könnten möglicherweise das Vorzeichen des Aktivierungswerts dieses Neurons verdrehen, was die Ergebnisse anderer Beispiele beeinflusst. Versuchen Sie, die Anzahl der Neuronen auf den letzten Schichten zu erhöhen. Ich persönlich würde vorschlagen, eine Architektur von 50x50x50 auszuprobieren.

Hoffe das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top