Kürzlich überlege ich, ein angepasstes neuronales Netzwerk zu erstellen. Die grundlegende Struktur ist die gleiche wie gewöhnlich, während ich die Verbindungen zwischen den Ebenen abschneiden möchte. Zum Beispiel, wenn ich ein Netzwerk mit zwei versteckten Ebenen konstruiere, möchte ich einige Gewichte löschen und die anderen behalten, wie das Bild unten: Structure of customized neural networks Sorry, ich kann Bilder hier nicht einbetten, nur Links.Reparieren einer Teilmenge Gewichte im Neuronalen Netzwerk während des Trainings
Dies ist kein Dropout, um Überanpassung zu vermeiden. Tatsächlich sind die verbleibenden Gewichte (Verbindungen) spezifiziert und festgelegt. Die entsprechende Struktur ist absichtlich angelegt.
Gibt es irgendwelche Möglichkeiten in Python, es zu tun? Tensorflow, Pytorch, Theano oder andere Module?
Danke. Die Tötungsmatrix sieht gut aus. Es inspiriert mich. Ich werde es versuchen. – Yuan
darf ich eine andere Frage stellen? Wird diese Änderung den Optimierer beeinflussen, wie Adam? Soweit ich weiß, verwenden wir backpropagation, um die Gewichte zu aktualisieren. Jetzt kürzen wir die Verbindung, wird die Backpropagation die getöteten Gewichte aktualisieren, was keinen Einfluss auf den Feed-Forward-Prozess hat. Oder ich kann diesen Vorgang interpretieren, da die Aktualisierung stattfindet, aber keine Auswirkungen auf die Vorwärtsverarbeitung hat. – Yuan
Als nächstes sollte der * Kill-Layer * statt dessen zur besseren Übersicht als * Gate-Layer * oder * Suppress-Layer * bezeichnet werden. Um Ihre Frage zu Adam (oder einem anderen Optimierer) zu beantworten, lautet die Antwort: ** Dies wirkt sich nicht negativ auf den Optimierer aus **. Die * Unterdrückungsschicht * unterdrückt sowohl den Feedforward- als auch den Backpropagation-Schritt unter Verwendung der unterdrückten (oder ** abgetöteten **) Verbindungen. – Wontonimo