Rozwijanie wyjaśnienia @zfy ... Równanie dla jednego wejścia, jednego neuronu, jednego wyjścia powinno wyglądać:
y = a * x + b * 1 and out = f(y)
gdzie x jest wartością z węzła wejściowego, a 1 jest wartością węzła polaryzacji; y może być bezpośrednio twoim wyjściem lub zostać przekazane do funkcji, często funkcji sigmoidalnej. Zauważ też, że odchylenie może być dowolne, ale aby uprościć wszystko, zawsze wybieramy 1 (i prawdopodobnie jest to tak częste, że @zfy zrobił to bez pokazywania i wyjaśniania).
Twoja sieć próbuje poznać współczynniki aib, aby dostosować się do twoich danych. Możesz więc zobaczyć, dlaczego dodanie elementu b * 1
pozwala lepiej dopasować go do większej ilości danych: teraz możesz zmienić zarówno nachylenie, jak i przechwytywanie.
Jeśli masz więcej niż jedno wejście, twoje równanie będzie wyglądać następująco:
y = a0 * x0 + a1 * x1 + ... + aN * 1
Zauważ, że równanie wciąż opisuje jeden neuron, jedną sieć wyjściową; jeśli masz więcej neuronów, po prostu dodajesz jeden wymiar do macierzy współczynników, aby multipleksować dane wejściowe do wszystkich węzłów i sumować wkład każdego węzła.
Że możesz pisać w formacie wektorowym jako
A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT
tzn. umieszczając współczynniki w jednej tablicy i (dane wejściowe + odchylenie) w innym masz pożądane rozwiązanie jako iloczyn kropkowy dwóch wektorów (musisz transponować X, aby kształt był poprawny, napisałem XT a X transponowane)
Tak więc na koniec możesz również zobaczyć swoje uprzedzenie, ponieważ jest to tylko jedno wejście, które reprezentuje część wyniku, która jest faktycznie niezależna od twojego wkładu.