Aktualisieren des Bias und des Bias-Gewichts mithilfe des Backpropagation-Algorithmus

7

Ich schreibe meinen eigenen Trainingsalgorithmus, weiß aber nicht, wie ich das Bias-Gewicht einstellen soll.

Muss ich in einer Ebene eine Vorspannung einstellen?

Muss das Bias-Gewicht in jeder Schicht aktualisiert werden?

Miguelote
quelle

Antworten:

9

Für jedes virtuelle Neuron sollte ein Bias-Gewicht vorhanden sein, da es den Schwellenwert steuert, bei dem das Neuron auf kombinierte Eingaben reagiert. Wenn Ihre verborgene Schicht also 100 Neuronen hat, sind das 100 Bias-Gewichte für diese Schicht. Gleiches gilt für jede Schicht.

Bei der Implementierung von Bias werden normalerweise zwei verschiedene Ansätze verfolgt. Sie können das eine oder andere tun:

  1. Als separater Vektor der Vorspannungsgewichte für jede Schicht mit unterschiedlicher (leicht reduzierter) Logik zur Berechnung von Gradienten.

  2. Als zusätzliche Spalte in der Gewichtungsmatrix wird eine übereinstimmende Spalte mit Einsen zu den Eingabedaten (oder den Ausgaben der vorherigen Ebene) hinzugefügt, sodass genau derselbe Code Vorspannungsgewichtsgradienten und Aktualisierungen wie für Verbindungsgewichte berechnet.

In beiden Fällen führen Sie nur eine Backpropagation-Berechnung von Neuronenaktivierungsdeltas zu Bias-Gewichtsdeltas durch. Sie müssen das "Aktivierungs" -Delta für Bias nicht berechnen, da es sich nicht ändern kann, sondern immer 1,0 beträgt. Auch die Voreingenommenheit trägt nicht weiter zu irgendetwas anderem bei.

Neil Slater
quelle
1

Eigentlich brauchen Sie keine Verzerrung, wenn Sie eine Rückausbreitung mit mindestens 1 versteckten Schicht haben. Wenn Ihre Eingabe beispielsweise Null ist, ergibt Ihre Vorwärtsausbreitung 0,5 (für Sigmoid), aber Ihre Rückwärtsausbreitung passt das Gewicht an, sodass Sie schließlich die richtige Antwort erhalten.

Reich
quelle