2017-01-30 2 views
2

Ich verwende Dropout wie folgt in einem drei versteckten Layer-Feed-Forward-Netzwerk mithilfe der Python-API. Meine Ergebnisse sind nicht sehr gut und ich frage mich, ob ich die Dropout-Schicht falsch anwende - ist es besser, sie auf den Eingang der dichten Schicht oder intern auf den Ausgang der ersten linearen Schicht anzuwenden?Dropout korrekt anwenden in CNTK

+0

Können Sie etwas mehr über Ihren Anwendungsfall und die Ergebnisse sagen, die Sie erhalten? Warum denkst du, dass der Schulabbrecher der Schuldige sein könnte? –

+0

Ich denke, das wichtigste relevante Detail ist, dass ich einen sehr breiten, spärlichen Input-Space habe (O (1M) -Eingänge, Input-Aktivierungen sind Power-Law-verteilt). Vielleicht ist 25% Dropout zu hoch. Ich wiederhole es bei 10%. Ich weiß, Dropout ist das Problem, denn mit Null Dropout führt das Netzwerk viel besser gegen meine Validierungs-Set. –

Antwort

1

Wenn 0 Dropout besser funktioniert, warum glauben Sie, dass Sie ein Dropout benötigen? Überfüllt sich Ihr Netzwerk? Hast du andere Regularisierung? Es wäre gut, mehr Details über die Netzwerkarchitektur und die Daten zu haben.

+0

Ich bin in Ordnung mit der Möglichkeit, dass Dropout möglicherweise keine bessere Leistung bringt - ich möchte nur überprüfen, ob ich es richtig in dem von mir bereitgestellten Code-Snippet anwende. Das Netzwerk ist sehr einfach: O (1M) pre-featurized Eingänge, drei versteckte Schichten, jede durch das Code-Snippet definiert, und ein Zwei-Knoten-Ausgang. –

+1

Es wird normalerweise nach der Nichtlinearität angewendet, aber es sollte hier keinen Unterschied machen. –