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.