6

Ich verstehe die Rolle des Bias-Knotens in neuronalen Netzen, und warum es wichtig ist, die Aktivierungsfunktion in kleinen Netzwerken zu verschieben. Meine Frage ist: Ist die Verzerrung in sehr großen Netzwerken (genauer gesagt in einem konvolutionellen neuronalen Netzwerk zur Bilderkennung mit der ReLu-Aktivierungsfunktion, 3 Faltungsschichten, 2 versteckten Schichten und über 100.000 Verbindungen) noch wichtig, oder wird ihre Wirkung erhalten? durch die schiere Anzahl der Aktivierungen verloren?Ist der Bias-Knoten in sehr großen neuronalen Netzen notwendig?

Der Grund, warum ich frage, ist, weil ich in der Vergangenheit Netzwerke aufgebaut habe, in denen ich vergessen habe, einen Bias-Knoten zu implementieren, jedoch beim Hinzufügen einen vernachlässigbaren Unterschied in der Leistung gesehen. Könnte dies auf den Zufall zurückzuführen sein, dass der spezifizierte Datensatz keine Verzerrung erforderte? Muss ich die Verzerrung in großen Netzwerken mit einem größeren Wert initialisieren? Jeder andere Rat würde sehr geschätzt werden.

Antwort

5

Der Bias-Knoten/Term dient nur dazu, dass die vorhergesagte Ausgabe unverzerrt ist. Wenn Ihre Eingabe eine Dynamik (Bereich) hat, die von -1 bis +1 reicht und Ihre Ausgabe einfach eine Übersetzung der Eingabe um +3 ist, wird ein neuronales Netz mit einem Verzerrungsterm einfach das Bias-Neuron mit einer Gewichtung ungleich Null haben während die anderen Null sein werden. Wenn Sie in dieser Situation kein Bias-Neuron haben, werden alle Aktivierungsfunktionen und das Wiegen optimiert, um bestenfalls eine einfache Addition zu simulieren, wobei Sigmoids/Tangenten und Multiplikation verwendet werden.

Wenn sowohl Ihre Ein- als auch Ausgänge den gleichen Bereich haben, z. B. von -1 bis +1, dann ist der Bias-Ausdruck wahrscheinlich nicht nützlich.

Sie können sich das Gewicht des Bias-Knotens in dem von Ihnen erwähnten Experiment ansehen. Entweder ist es sehr niedrig und es bedeutet wahrscheinlich, dass die Ein- und Ausgänge bereits zentriert sind. Oder es ist signifikant, und ich würde wetten, dass die Varianz der anderen Wägungen verringert wird, was zu einem stabileren (und weniger überanfälligen) neuronalen Netz führt.

+0

Ah, stellt sich heraus, dass die Verzerrung ist klein, also ich denke, der Datensatz muss bereits einigermaßen zentriert sein. Prost für die Antwort. – Hungry

3

Bias entspricht dem Hinzufügen einer Konstanten wie 1 zum Eingang jeder Ebene. Dann ist das Gewicht auf diese Konstante äquivalent zu deiner Voreingenommenheit. Es ist wirklich einfach hinzuzufügen.

Theoretisch ist dies nicht notwendig, da das Netzwerk lernen kann, auf jeder Ebene einen eigenen Bias-Knoten zu erstellen. Eines der Neuronen kann sein Gewicht sehr hoch setzen, also ist es immer 1 oder bei 0, so dass es immer eine Konstante von 0,5 ausgibt (für sigmoide Einheiten). Dies erfordert jedoch mindestens 2 Schichten.

+0

Es ist nicht wirklich "wie Hinzufügen von 1 zum Eingang jeder Schicht" für Faltungsnetzwerke. –

0

Warum Bias in neuronales Netz benötigt:

Der Vorspannungsknoten in einem neuronalen Netzwerk ist ein Knoten, immer auf ist. Das heißt, sein Wert wird auf ohne Berücksichtigung der Daten in einem bestimmten Muster festgelegt. Es ist analog zu dem Abschnitt in einem Regressionsmodell und dient der gleichen Funktion.

Wenn ein neuronales Netz keinen Vorspannungsknoten in einer gegebenen Schicht hat, wird es nicht in der Lage seinesAusgang in der nächsten Schicht zu erzeugen, dass von 0 unterscheidet, wenn die Merkmalswerte sind

Das ist der Grund, warum wir einen Bias-Wert im neuronalen Netzwerk benötigten.