Wäre es nicht besser, die Gewichte auf 0 zu initialisieren? Auf diese Weise könnten die Gewichte ihre Werte (ob positiv oder negativ) schneller finden?
Wie kann das Brechen der Symmetrie schneller lernen?
Wenn Sie alle Gewichte so initialisieren, dass sie Null sind, führen alle Neuronen aller Ebenen dieselbe Berechnung durch, wobei sie dieselbe Ausgabe liefern und das gesamte tiefe Netz unbrauchbar machen . Wenn die Gewichte Null sind, wäre die Komplexität des gesamten tiefen Netzes dieselbe wie die eines einzelnen Neurons, und die Vorhersagen wären nichts besseres als zufällig.
Knoten, die nebeneinander in einer verborgenen Schicht liegen, die mit denselben Eingaben verbunden ist, müssen unterschiedliche Gewichte haben, damit der Lernalgorithmus die Gewichte aktualisiert.
Wenn Sie Gewichte als ungleich Null festlegen (aber nahe 0 wie 0,1 usw.), lernt der Algorithmus die Gewichte in den nächsten Iterationen und bleibt nicht hängen. Auf diese Weise wird die Symmetrie gebrochen.
- Gibt es eine andere zugrunde liegende Philosophie hinter der Randomisierung der Gewichte, abgesehen von der Hoffnung, dass sie bei der Initialisierung nahe an ihren optimalen Werten liegen würden?
Stochastische Optimierungsalgorithmen wie der stochastische Gradientenabstieg verwenden Zufälligkeit bei der Auswahl eines Startpunkts für die Suche und beim Fortschreiten der Suche.
Das Fortschreiten der Suche oder des Lernens eines neuronalen Netzwerks wird als Konvergenz bezeichnet. Die Entdeckung einer suboptimalen Lösung oder lokaler Optima führt zu einer vorzeitigen Konvergenz.
Anstatt sich auf ein lokales Optima zu verlassen, besteht die beste Möglichkeit, globale Optima zu finden, ohne bei lokalen Optima hängen zu bleiben, wenn Sie Ihren Algorithmus mehrmals mit unterschiedlichen Zufallsgewichten ausführen.
Nach 2015 wird aufgrund der Fortschritte in der Forschung zum maschinellen Lernen die Initialisierung von He-et-al eingeführt, um die zufällige Initialisierung zu ersetzen
w=np.random.randn(layer_size[l],layer_size[l-1])*np.sqrt(2/layer_size[l-1])
Die Gewichte sind immer noch zufällig, unterscheiden sich jedoch im Bereich in Abhängigkeit von der Größe der vorherigen Neuronenschicht.
Zusammenfassend helfen uns zufällige Gewichte ungleich Null
- Komme aus lokalen Optima heraus
- Die Symmetrie brechen
- Erreichen Sie globale Optima in weiteren Iterationen