Wie vermeiden CNNs das Problem des verschwindenden Gradienten?

15

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.

Aly
quelle
2
Hat der Wikipedia-Artikel nicht gerechtfertigt, warum die GPU dazu beigetragen hat, das Problem des verschwindenden Gefälles zu lösen? Liegt es daran, dass wir es trotz geringer Farbverläufe aufgrund der hohen Geschwindigkeit der GPUs dennoch schaffen, die Parameter zu verbessern, indem wir dank der GPUs viele Schritte ausführen?
Charlie Parker
2
Genau. Das Verschwinden des Gradientenproblems ist der Grund, warum niedrigere Layergewichte mit einer sehr geringen Rate aktualisiert werden, und daher dauert es ewig, das Netzwerk zu trainieren. Da jedoch mit GPUs in kürzerer Zeit mehr Berechnungen durchgeführt werden können (dh mehr Aktualisierungen der Gewichte), ist das Problem des verschwindenden Gradienten mit immer mehr GPU-Verarbeitung bis zu einem gewissen Grad verschwunden .
Sangram
@CharlieParker, könnten Sie näher darauf eingehen, GPU's are fast correlated with vanishing gradientsich 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?
Anu

Antworten:

12

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 , woEwijyj

yj=f(iwijxi),

seine Steigung ist

wijE=Eyjyjwij=Eyjf(iwijxi)xi.

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,fff

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):

f(u)=max(0,u),

http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf

Lucas
quelle
2
Ich bin ein wenig verwirrt über die gleichgerichteten Lineareinheiten. Ja, bei Sigmoiden usw. ist der Gradient oft sehr klein - bei gleichgerichteten Lineareinheiten ist er jedoch oft genau Null. Ist das nicht schlimmer Wenn also die Gewichte einer Einheit unglücklich sind, werden sie sich niemals ändern.
Hans-Peter Störr
2
Wenn Sie darüber nachdenken, werden möglicherweise aus diesem Grund undichte und / oder laute ReLUs verwendet.
Sunside
5
Warum ist dein erster Satz wahr? Dh "Das Problem des verschwindenden Gradienten erfordert, dass wir kleine Lernraten mit Gradientenabstieg verwenden, für deren Konvergenz dann viele kleine Schritte erforderlich sind." Warum brauchen wir kleine Lernraten, um mit dem Problem des verschwindenden Gefälles fertig zu werden? Wenn die Farbverläufe aufgrund von schwindenden Farbverläufen bereits klein sind, hätte ich erwartet, dass sich die Situation nur verschlimmert, wenn sie klein sind.
Charlie Parker
2
Gute Frage, ich hätte diese Aussage besser erklären sollen. Das Problem mit verschwundenen Verläufen besteht nicht darin, dass alle Verläufe klein sind (was durch die Verwendung großer Lernraten leicht behoben werden kann), sondern dass die Verläufe verschwinden, wenn Sie sich durch das Netzwerk rückwärts ausbreiten. Das heißt, die Farbverläufe sind in einigen Schichten klein, in anderen Schichten jedoch groß. Wenn Sie große Lernraten verwenden, explodiert das Ganze (weil einige Farbverläufe groß sind), sodass Sie eine kleine Lernrate verwenden müssen. Die Verwendung mehrerer Lernraten ist ein weiterer Ansatz, um das Problem auf Kosten der Einführung weiterer Hyperparameter anzugehen.
Lucas
2
Ich würde argumentieren, dass die Lernrate hauptsächlich mit dem explodierenden Gradientenproblem zusammenhängt. Das Herunterskalieren des Gradienten mit einer übermäßig niedrigen Lernrate verhindert keineswegs das Verschwinden von Gradienten, sondern verzögert lediglich den Effekt, da das Lernen erheblich verlangsamt wird. Der Effekt selbst wird durch die wiederholte Anwendung von Nichtlinearitäten und die Multiplikation kleiner Werte verursacht. Natürlich gibt es einen Trend zu geringeren Lernraten (aufgrund der Rechenleistung), aber das hat nichts mit verschwindenden Verläufen zu tun, da nur gesteuert wird, wie gut der Zustandsraum erforscht wird (unter stabilen Bedingungen).
runDOSrun