Witam
staram się zaimplementować sieć neuronową(pseudoneuronową jak kto woli) w C++ , ale zanim przejde do jej napisania chciałbym napisać algorytm wstecznej propagacji błędu dla funkcji XOR.
I tu chciałbym poskładać swoje informacje , aby je zweryfikować,
A więc:
1.Buduje sieć z 3 neuronów: 2 wejściowe i 1 jeden wyjściowy, (plus 2 wejscia przed warstwa wejsciowa)
2.Obliczam wyjścia wszystkich neuronów i wyjście całej sieci
3.Obliczam błąd sieci czyli wartosc oczekiwana - wartość otrzymana (Dla warstwy wyjsciowej)
4.Dla warstwy wczesniejszej błędy dla każdego neuronu obliczam tak: waga wyjścia neuronu * błąd neuronu z którym jest połączyny
5.Później modyfikuje wagi w += || wsp.uczenia * błąd neuronu * wartosc sygnalu|| ( klamra || xxxx|| oznacza zaokrąglenie
6.modyfikacja progu funkcji aktywacji dla kazdego neuronu (prog -= || błąd.neuronu * wsp.uczenia||)
A co do samej nauki : tworzę wcześniej tablice prawdy np. dla tego przypadku tablice prawdy XOR:
Z niej wstawiam wejscia i podstawiam wartosc oczekiwana , a gdy przelece całą tablice czyli 4 pozycje to koniec nauki?