Erweiterung der @ zfy-Erklärung ... Die Gleichung für einen Eingang, ein Neuron und einen Ausgang sollte folgendermaßen aussehen:
y = a * x + b * 1 and out = f(y)
wobei x der Wert vom Eingangsknoten und 1 der Wert des Vorspannungsknotens ist; y kann direkt Ihre Ausgabe sein oder an eine Funktion übergeben werden, häufig eine Sigmoid-Funktion. Beachten Sie auch, dass die Verzerrung eine beliebige Konstante sein kann, aber um alles einfacher zu machen, wählen wir immer 1 (und das ist wahrscheinlich so häufig, dass @zfy es getan hat, ohne es zu zeigen und zu erklären).
Ihr Netzwerk versucht, die Koeffizienten a und b zu lernen, um sie an Ihre Daten anzupassen. So können Sie sehen, warum Sie das Element hinzufügenb * 1
eine bessere Anpassung an mehr Daten ermöglicht: Jetzt können Sie sowohl die Steigung als auch den Achsenabschnitt ändern.
Wenn Sie mehr als eine Eingabe haben, sieht Ihre Gleichung folgendermaßen aus:
y = a0 * x0 + a1 * x1 + ... + aN * 1
Es ist zu beachten, dass die Gleichung immer noch ein Neuron, ein Ausgangsnetzwerk beschreibt; Wenn Sie mehr Neuronen haben, fügen Sie der Koeffizientenmatrix nur eine Dimension hinzu, um die Eingaben an alle Knoten zu multiplexen und jeden Knotenbeitrag zurückzurechnen.
Das kann man im vektorisierten Format als schreiben
A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT
Wenn Sie also Koeffizienten in ein Array und (Eingaben + Bias) in ein anderes Array eingeben, haben Sie Ihre gewünschte Lösung als Punktprodukt der beiden Vektoren (Sie müssen X transponieren, damit die Form korrekt ist. Ich habe XT ein 'X transponiert' geschrieben).
Am Ende können Sie also auch Ihre Verzerrung als nur eine weitere Eingabe sehen, um den Teil der Ausgabe darzustellen, der tatsächlich unabhängig von Ihrer Eingabe ist.