963 Stimmen

Welche Rolle spielt die Verzerrung in neuronalen Netzen?

Ich kenne den Gradientenabstieg und den Back-Propagation-Algorithmus. Was ich nicht verstehe, ist: Wann ist die Verwendung einer Vorspannung wichtig und wie verwendet man sie?

Zum Beispiel, wenn die Abbildung der AND Funktion, wenn ich zwei Eingänge und einen Ausgang verwende, gibt sie nicht die richtigen Gewichte an. Wenn ich jedoch drei Eingaben verwende (von denen eine eine Vorspannung ist), gibt sie die richtigen Gewichte an.

33voto

Debilski Punkte 65106

Eine Schicht in einem neuronalen Netz ohne Vorspannung ist nichts anderes als die Multiplikation eines Eingangsvektors mit einer Matrix. (Der Ausgangsvektor kann durch eine Sigmoidfunktion zur Normalisierung und zur Verwendung in mehrschichtigen ANN danach, aber das ist nicht wichtig).

Das bedeutet, dass Sie eine lineare Funktion verwenden und daher eine Eingabe mit lauter Nullen immer auf eine Ausgabe mit lauter Nullen abgebildet wird. Dies mag für einige Systeme eine vernünftige Lösung sein, aber im Allgemeinen ist sie zu restriktiv.

Wenn Sie eine Vorspannung verwenden, fügen Sie Ihrem Eingaberaum eine weitere Dimension hinzu, die immer den Wert Eins annimmt, so dass Sie einen Eingabevektor mit lauter Nullen vermeiden. Die Allgemeinheit geht dadurch nicht verloren, da die trainierte Gewichtsmatrix nicht surjektiv sein muss, so dass sie immer noch auf alle bisher möglichen Werte abgebildet werden kann.

2D ANN:

Für ein ANN, das zwei Dimensionen auf eine Dimension abbildet, wie bei der Reproduktion der UND- oder ODER- (oder XOR-) Funktionen, kann man sich ein neuronales Netz wie folgt vorstellen:

Markieren Sie in der 2D-Ebene alle Positionen der Eingangsvektoren. Für boolesche Werte würden Sie also (-1,-1), (1,1), (-1,1), (1,-1) markieren wollen. Ihr ANN zeichnet nun eine gerade Linie auf der 2D-Ebene, die die positiven von den negativen Ausgabewerten trennt.

Ohne Verzerrung muss diese Gerade durch den Nullpunkt gehen, während man sie mit Verzerrung überall platzieren kann. Sie sehen also, dass Sie ohne Vorspannung ein Problem mit der UND-Funktion haben, da Sie nicht beides (1,-1) setzen können et (-1,1) auf der negativen Seite. (Sie dürfen nicht sein auf die Linie). Das Problem ist bei der ODER-Funktion das gleiche. Mit einer Vorspannung ist es jedoch einfach, die Linie zu ziehen.

Beachten Sie, dass die XOR-Funktion in dieser Situation nicht einmal mit Vorspannung gelöst werden kann.

27voto

bayer Punkte 6687

Wenn Sie ANNs verwenden, wissen Sie selten etwas über die Interna der Systeme, die Sie lernen wollen. Manche Dinge können nicht ohne Verzerrung gelernt werden. Schauen Sie sich z. B. die folgenden Daten an: (0, 1), (1, 1), (2, 1), also eine Funktion, die jedes x auf 1 abbildet.

Bei einem einschichtigen Netz (oder einer linearen Abbildung) können Sie keine Lösung finden. Wenn Sie jedoch eine Verzerrung haben, ist es trivial!

Im Idealfall könnte ein Bias auch alle Punkte auf den Mittelwert der Zielpunkte abbilden und die versteckten Neuronen die Unterschiede zu diesem Punkt modellieren lassen.

25voto

Oke Uwechue Punkte 479

Die Veränderung der Neuronengewichte allein dient nur zur Manipulation der Form/Krümmung Ihrer Übertragungsfunktion, und nicht deren Gleichgewicht/Nullpunkt Kreuzungspunkt.

Die Einführung von Vorspannung neurons ermöglicht es Ihnen, die Übertragungsfunktionskurve horizontal (links/rechts) entlang der Eingabeachse zu verschieben, während die Form/Krümmung unverändert bleibt. Auf diese Weise kann das Netz beliebige, von den Standardwerten abweichende Ausgänge erzeugen, so dass Sie die Zuordnung von Eingängen zu Ausgängen an Ihre Bedürfnisse anpassen/verschieben können.

Siehe hier für eine grafische Erklärung: http://www.heatonresearch.com/wiki/Bias

20voto

Íhor Mé Punkte 866

Wenn Sie mit Bildern arbeiten, ist es vielleicht sogar besser, überhaupt keine Vorspannung zu verwenden. Theoretisch ist Ihr Netz dann unabhängiger von der Größe der Daten, d. h. ob das Bild dunkel oder hell und lebendig ist. Und das Netz lernt, seine Aufgabe zu erfüllen, indem es die Relativität Ihrer Daten studiert. Viele moderne neuronale Netze machen sich dies zunutze.

Bei anderen Daten kann eine Verzerrung kritisch sein. Es hängt davon ab, mit welcher Art von Daten Sie zu tun haben. Wenn Ihre Informationen größeninvariant sind --- wenn die Eingabe von [1,0,0.1] zum gleichen Ergebnis führen sollte wie die Eingabe von [100,0,10], sind Sie vielleicht besser dran, wenn Sie auf eine Verzerrung verzichten.

20voto

Martin Thoma Punkte 105621

In einer Reihe von Experimenten in meine Magisterarbeit (z.B. Seite 59) habe ich herausgefunden, dass der Bias für die erste(n) Schicht(en) wichtig sein könnte, aber vor allem bei den voll verknüpften Schichten am Ende scheint er keine große Rolle zu spielen.

Dies kann stark von der Netzarchitektur/dem Datensatz abhängen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X