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.

19voto

Die Neigung bestimmt, in welchem Winkel sich das Gewicht dreht.

In einem zweidimensionalen Diagramm können Gewicht und Vorspannung helfen, die Entscheidungsgrenze der Ausgaben zu finden.

Angenommen, wir müssen eine UND-Funktion erstellen, dann sollte das Paar Eingabe (p) - Ausgabe (t) wie folgt aussehen

{p=[0,0], t=0},{p=[1,0], t=0},{p=[0,1], t=0},{p=[1,1], t=1}

Enter image description here

Nun müssen wir eine Entscheidungsgrenze finden, und die ideale Grenze sollte sein:

Enter image description here

Sehen Sie? W steht senkrecht zu unserer Grenze. Wir sagen also, dass W die Richtung der Begrenzung bestimmt.

Es ist jedoch schwierig, auf Anhieb das richtige W zu finden. Meistens wählen wir den ursprünglichen W-Wert zufällig. Die erste Grenze könnte also diese sein: enter image description here

Die Begrenzung verläuft nun parallel zur y-Achse.

Wir wollen die Begrenzung drehen. Und wie?

Durch die Änderung des W.

Wir verwenden also die Lernregelfunktion: W'=W+P:

Enter image description here

W'=W+P ist gleichbedeutend mit W' = W + bP, wobei b=1 ist.

Durch Ändern des Werts von b(bias) kann man also den Winkel zwischen W' und W bestimmen. Das ist "die Lernregel von ANN".

Sie könnten auch lesen Entwurf eines neuronalen Netzes von Martin T. Hagan / Howard B. Demuth / Mark H. Beale, Kapitel 4 "Perceptron Learning Rule"

15voto

Yumlembam Rahul Punkte 130

Um es einfach auszudrücken: Wenn Sie Folgendes haben y=w1*x donde y ist Ihre Ausgabe und w1 das Gewicht ist, stellen Sie sich eine Situation vor, in der x=0 dann *y=w1\x ist gleich 0** .

Wenn Sie Ihr Gewicht aktualisieren möchten, müssen Sie berechnen, wie viel sich durch delw=target-y wobei "Ziel" für die Zielausgabe steht. In diesem Fall 'delw' wird sich nicht ändern, da y wird als 0 berechnet. Wenn Sie also einen zusätzlichen Wert hinzufügen können, wird dies helfen y = w1 x + w0 1 wobei bias=1 ist und das Gewicht angepasst werden kann, um eine korrekte Verzerrung zu erhalten. Betrachten Sie das folgende Beispiel.

In Bezug auf die Linie Piste ist der Achsenabschnitt eine besondere Form der linearen Gleichungen.

y = mx + b

Prüfen Sie das Bild

imagen

Hier ist b (0,2)

Wenn Sie ihn auf (0,3) erhöhen wollen, wie wollen Sie das tun, indem Sie den Wert von b, der Vorspannung, ändern?

14voto

Jordan Bennett Punkte 191

Vereinfacht ausgedrückt, ermöglichen Vorurteile mehr und mehr Variationen der zu erlernenden/speichernden Gewichte... ( Randnotiz (manchmal mit einem gewissen Schwellenwert). Wie auch immer, mehr Variationen bedeuten, dass Verzerrungen zu reichhaltigere Darstellung des Eingaberaums mit den gelernten/gespeicherten Gewichten des Modells. (Wo bessere Gewichte die Prognosefähigkeit des neuronalen Netzes verbessern können)

Bei Lernmodellen beispielsweise ist die Hypothese/das Ergebnis wünschenswerterweise durch y=0 oder y=1 bei einer bestimmten Eingabe begrenzt, vielleicht bei einer Klassifizierungsaufgabe... d.h. y=0 für x=(1,1) und y=1 für x=(0,1). (Die Bedingung für die Hypothese/das Ergebnis ist der Schwellenwert, über den ich oben sprach. Beachten Sie, dass in meinen Beispielen die Eingaben X jeweils x=ein doppelter oder 2-wertiger Vektor sind, statt der einwertigen x-Eingaben einer Sammlung X von Nate).

Wenn wir ignorieren. die Voreingenommenheit, viele Eingaben können durch viele gleiche Gewichte dargestellt werden (d.h. die erlernten Gewichte meist in der Nähe des Ursprungs auftreten (0,0). Das Modell würde sich dann auf eine geringere Anzahl guter Gewichte beschränken, statt auf die vielen, vielen guten Gewichte, die es mit Verzerrung besser lernen könnte. (Wenn schlecht gelernte Gewichte zu schlechteren Schätzungen oder einer Abnahme der Schätzleistung des neuronalen Netzes führen)

Es ist also optimal, dass das Modell sowohl in der Nähe des Ursprungs als auch an möglichst vielen Stellen innerhalb der Schwellen-/Entscheidungsgrenze lernt. Mit der Vorspannung können wir Freiheitsgrade in der Nähe des Ursprungs ermöglichen, die jedoch nicht auf die unmittelbare Region des Ursprungs beschränkt sind.

13voto

RobMcZag Punkte 545

Ausweitung der zfy's Erklärung :

Die Gleichung für eine Eingabe, ein Neuron und eine Ausgabe sollte so aussehen:

y = a * x + b * 1    and out = f(y)

wobei x der Wert des Eingangsknotens und 1 der Wert des Bias-Knotens ist; y kann direkt Ihre Ausgabe sein oder an eine Funktion übergeben werden, häufig eine Sigmoidfunktion. Beachten Sie auch, dass der Bias eine beliebige Konstante sein könnte, aber um alles einfacher zu machen, wählen wir immer 1 (und wahrscheinlich ist das so üblich, dass zfy es getan hat, ohne es zu zeigen und zu erklären).

Ihr Netz versucht, die Koeffizienten a und b zu lernen, um sich an Ihre Daten anzupassen. Sie können also sehen, warum das Hinzufügen des Elements b * 1 ermöglicht eine bessere Anpassung an mehr Daten: Sie können jetzt sowohl die Steigung als auch den Achsenabschnitt ändern.

Wenn Sie mehr als eine Eingabe haben, sieht Ihre Gleichung wie folgt aus:

y = a0 * x0 + a1 * x1 + ... + aN * 1

Beachten Sie, dass die Gleichung immer noch ein Netz mit einem Neuron und einem Ausgang beschreibt; wenn Sie mehr Neuronen haben, fügen Sie einfach eine Dimension zur Koeffizientenmatrix hinzu, um die Eingänge zu allen Knoten zu multiplexen und den Beitrag jedes Knotens zu summieren.

Das können Sie im vektorisierten Format schreiben als

A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT

Wenn man also die Koeffizienten in ein Feld und (inputs + bias) in ein anderes Feld legt, erhält man die gewünschte Lösung als Punktprodukt der beiden Vektoren (man muss X transponieren, damit die Form korrekt ist, ich habe XT als 'X transponiert' geschrieben)

Letztendlich kann man die Vorspannung also auch als eine weitere Eingabe sehen, die den Teil der Ausgabe darstellt, der tatsächlich unabhängig von der Eingabe ist.

13voto

Ravindra babu Punkte 45577

In neuronalen Netzen:

  1. Jedes Neuron hat eine Vorspannung
  2. Sie können die Verzerrung als Schwellenwert betrachten (im Allgemeinen entgegengesetzte Werte des Schwellenwerts)
  3. Die gewichtete Summe aus den Eingangsschichten + Vorspannung entscheidet über die Aktivierung eines Neurons
  4. Die Verzerrung erhöht die Flexibilität des Modells.

Liegt keine Vorspannung vor, kann das Neuron nicht aktiviert werden, wenn nur die gewichtete Summe der Eingabeschicht berücksichtigt wird. Wenn das Neuron nicht aktiviert wird, werden die Informationen dieses Neurons nicht an den Rest des neuronalen Netzes weitergegeben.

Der Wert der Voreingenommenheit ist erlernbar.

Enter image description here

Vorspannung = Schwellenwert. Man kann sich den Bias so vorstellen, wie leicht es ist, das Neuron dazu zu bringen, eine 1 auszugeben - bei einem wirklich großen Bias ist es für das Neuron sehr leicht, eine 1 auszugeben, aber wenn der Bias sehr negativ ist, dann ist es schwierig.

Zusammengefasst: Bias hilft bei der Kontrolle des Wertes, bei dem die Aktivierungsfunktion ausgelöst wird.

Siga dieses Video für weitere Details .

Ein paar weitere nützliche Links:

geeksforgeeks

in Richtung Datenwissenschaft

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