Ich habe viel über gewundene neuronale Netze gelesen und mich gefragt, wie sie das Problem des verschwindenden Gradienten vermeiden. Ich weiß, dass Deep-Believe-Netzwerke Single-Level-Auto-Encoder oder andere vorgefertigte flache Netzwerke stapeln und so dieses Problem vermeiden können, aber ich weiß nicht, wie es in CNNs vermieden wird.
Laut Wikipedia :
"Trotz des oben erwähnten" Fluchtgradientenproblems "macht die überlegene Verarbeitungsleistung von GPUs eine einfache Rückübertragung für tiefe vorwärtsgerichtete neuronale Netze mit vielen Schichten möglich."
Ich verstehe nicht, warum die GPU-Verarbeitung dieses Problem beheben würde.
GPU's are fast correlated with vanishing gradients
ich kann die schnelle Logik mit großer Speicherbandbreite zur Verarbeitung mehrerer Matrixmultiplikationen verstehen! aber könntest du bitte erklären, was es mit den Derivaten zu tun hat? Das Problem des verschwindenden Gradienten scheint mehr mit der Gewichtsinitialisierung zu tun zu haben , nicht wahr?Antworten:
Das Problem des verschwindenden Gradienten erfordert, dass wir kleine Lernraten mit Gradientenabstieg verwenden, für deren Konvergenz dann viele kleine Schritte erforderlich sind. Dies ist ein Problem, wenn Sie einen langsamen Computer haben, der für jeden Schritt viel Zeit benötigt. Wenn Sie eine schnelle GPU haben, die an einem Tag viel mehr Schritte ausführen kann, ist dies weniger problematisch.
Es gibt verschiedene Möglichkeiten, um das Problem des verschwindenden Gefälles zu lösen. Ich würde vermuten, dass der größte Effekt für CNNs aus der Umstellung von nichtlinearen Sigmo-Einheiten auf gleichgerichtete Lineareinheiten resultierte. Betrachtet man ein einfaches neuronales Netz, dessen Fehler nur durch y j vom Gewicht w i j abhängt , woE wij yj
seine Steigung ist
Wenn die logistische Sigmoidfunktion ist, ist f ' für große Eingaben sowie für kleine Eingaben nahe Null. Wenn f eine gleichgerichtete Lineareinheit ist,f f′ f
die Ableitung ist nur für negative Eingänge Null und für positive Eingänge 1. Ein weiterer wichtiger Beitrag ist die ordnungsgemäße Initialisierung der Gewichte. Dieses Papier scheint eine gute Quelle zu sein, um die Herausforderungen im Detail zu verstehen (obwohl ich es noch nicht gelesen habe):
http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf
quelle