Beim Initialisieren von Verbindungsgewichtungen in einem vorwärtsgerichteten neuronalen Netzwerk ist es wichtig, sie zufällig zu initialisieren, um Symmetrien zu vermeiden, die der Lernalgorithmus nicht unterbrechen könnte.
Die Empfehlung, die ich an verschiedenen Stellen gesehen habe (z. B. in TensorFlows MNIST-Tutorial ), ist die Verwendung der abgeschnittenen Normalverteilung unter Verwendung einer Standardabweichung von , wobei die Anzahl der Eingaben in die gegebene Neuronenschicht.
Ich glaube, dass die Standardabweichungsformel sicherstellt, dass sich rückpropagierte Farbverläufe nicht zu schnell auflösen oder verstärken. Aber ich weiß nicht, warum wir eine verkürzte Normalverteilung im Gegensatz zu einer regulären Normalverteilung verwenden. Soll man seltene Ausreißergewichte vermeiden?
Antworten:
Ich denke, es geht um die Sättigung der Neuronen. Denken Sie daran, Sie haben eine Aktivierungsfunktion wie Sigmoid.
Wenn Ihr Gewichtswert> = 2 oder <= - 2 ist, lernt Ihr Neuron nicht. Wenn Sie also Ihre Normalverteilung abschneiden, tritt dieses Problem (zumindest ab der Initialisierung) aufgrund Ihrer Varianz nicht auf. Ich denke, deshalb ist es im Allgemeinen besser, abgeschnittenes Normal zu verwenden.
quelle
Die Verwendung der abgeschnittenen Normalverteilung hat den Vorteil, dass aufgrund der verwendeten relu_logits keine "toten Neuronen" generiert werden. Dies wird hier erläutert .
quelle