Wann sollte ich das eine oder andere verwenden? Tutorials und Beispiele verwenden entweder Sequential([Stabilizer(), Recurrence(LSTM(hidden_dim))])
oder LSTMP_component_with_self_stabilization
aus Examples/common/nn.py. Ich habe versucht, ersteres durch Recurrence(LSTM(hidden_dim, enable_self_stabilization=True))
im char_rnn.py Beispiel zu ersetzen, aber die Ergebnisse sind wesentlich schlechter.Was ist der Unterschied zwischen dem Block "Stabilizer()" und dem Parameter "enable_self_stabilization"?
Antwort
Die Schicht Stabilizer
multipliziert ihre Eingabe mit einem lernbaren Skalar. Dieser einfache Trick hat gezeigt, dass er Konvergenz und Stabilität deutlich verbessert. Es hat eine gewisse Ähnlichkeit mit BatchNormalization
. Im Allgemeinen, wenn Sie BatchNormalization
verwenden können, sollten Sie das zuerst versuchen. Wo das nicht möglich ist, was speziell in wiederkehrenden Loops ist, empfehle ich stattdessen Stabilizer
.
Normalerweise müssen Sie es explizit in Ihr Modell injizieren. Ein Spezialfall sind die wiederkehrenden Schrittfunktionen (z. B. LSTM
), die innen Stabilizer
enthalten. Verwenden Sie enable_self_stabilization=True
, um das zu aktivieren. Die eingebauten Stabilizer
s gelten nur für interne Variablen. Für die Haupteingabe müssen Sie selbst eine Stabilizer
einfügen.
Wenn Sie explizite Stabilizer
s aber gesetzt enable_self_stabilization=False
(beispielsweise als default_option
), dann werden diese explizit Stabilizer
s no-ops.
Es ist nicht meine Erfahrung, dass Stabilizer
die Dinge schlechter macht. Es ist generell eine sichere Sache, die Konvergenz zu verbessern. Es ändert jedoch numerische Bereiche. Wenn also die Konvergenz schlechter wird, schlage ich vor, mit verschiedenen Hyperparametereinstellungen zu experimentieren, z. reduzieren Sie die Lernrate.
- 1. Was ist der Unterschied zwischen dem WebConfigurationManager und dem ConfigurationManager?
- 2. Was ist der Unterschied zwischen dem Standard- und dem Standardkonstruktor?
- 3. Was ist der Unterschied zwischen dem Betriebssystem und dem Kernel?
- 4. Was ist der Unterschied zwischen einem Mixin und dem Dekorationsmuster?
- 5. Was ist der Unterschied zwischen OnStart und dem App Constructor
- 6. Was ist der Unterschied zwischen dem [OptionalField] und [NonSerialized]
- 7. Was ist der Unterschied zwischen dem neuen Operator und Class.newInstance()?
- 8. Was ist der Unterschied zwischen --Parameter und -Parameter?
- 9. Was ist der Unterschied zwischen Include und Block in Twig?
- 10. Was ist der Unterschied zwischen statischem Block und statischem Feld?
- 11. Was ist der Unterschied zwischen Parameter und ParameterTensor?
- 12. ReactJS: Was ist der Unterschied zwischen componentDidUpdate und dem zweiten Parameter von setState?
- 13. Was ist der Unterschied zwischen dem Schlüsselspeicherkennwort und dem Schlüsselkennwort in der Android Sign-Zertifizierung?
- 14. Was ist der Unterschied zwischen dem folgenden Muster in xsd?
- 15. Was ist der Unterschied zwischen dem OMF- und dem COFF-Format?
- 16. Was ist der Unterschied zwischen dem Operator "+" in ggplot2 und dem Operator "%>%" in magritr?
- 17. Was ist der Unterschied zwischen dem Einfrieren des Benutzers und dem Deaktivieren des Benutzers in Salesforce?
- 18. Was ist der Unterschied zwischen dem Ausführen eines Prozesses und dem Ausführen einer Befehlszeile?
- 19. Was ist der Unterschied zwischen dem Firebase und dem firebase-admin npm Modul?
- 20. Was ist der Unterschied zwischen dem Anklicken einer Checkbox und dem Aufruf ihrer '.click()' Funktion?
- 21. Was ist der Unterschied zwischen dem Cluster-Modul von Node.js und dem Cluster-Modul von Learnboost?
- 22. Was ist der Unterschied zwischen dem Submit-Mechanismus des Client-Browsers und dem ASP.NET-Postback-Mechanismus?
- 23. Was ist der Unterschied zwischen dem HttpRuntime Cache und dem HttpContext Cache?
- 24. Was ist der Unterschied zwischen dem ETSI-M2M-Standard und dem OneM2M-Standard?
- 25. Was ist der Unterschied zwischen dem net/rpc-Paket von Golang und dem gRPC-Framework?
- 26. Was ist der Unterschied zwischen dem $ rootScope und dem Value-Service in AngularJS?
- 27. Was ist der Unterschied zwischen dem uwsgi-Protokoll und dem wsgi-Protokoll?
- 28. Was ist der Unterschied zwischen dem create index und dem alter add index von MySQL?
- 29. Was ist der Unterschied zwischen dem Stack eines Threads und dem Stack eines Prozesses?
- 30. Was ist der Unterschied (falls vorhanden) zwischen dem Modulsystem von Standard ML und dem OCaml-Modulsystem?