Prosta sieć neuronowa i algorytm wstecznej propagacji

0

kod w matlab'ie

target=0.9;
%forward pass
input1=(A*w11)+(B*w21);
out1=logsig(input1);

input2=(B*w22)+(A*w12);
out2=logsig(input2);

input3=(w3*out1)+(w4*out2);

%wynik
out3=logsig(input3)

%delta błędu wyjścia
outError=(target-out3)*(1-out3)*out3;

%uaktalnienie wag dla warstwy wyjściowej
w3=w3+(outError*out1)*(1-out3)*out3;
w4=w4+(outError*out2)*(1-out3)*out3;

%błędy dla warstwy ukrytej
err1=outError*w3;
err2=outError*w4;

w11=w11+err1*A;
w21=w21+err1*B;
w12=w12+err2*A;
w22=w22+err2*B;

Kod jest napisany na podstawie tego
user image

Nie jestem pewien czy dobrze "pojąłem" o co tak naprawdę chodzi w tych sieciach. Chcę tą sieć nauczyć aby rozpoznawała na początek dwa zestawy danych np. A=0.35, B=0.9 oraz A=0.4 B=0.4

Mam teraz pytanie. W jaki sposób określa się po nauczeniu sieci który zestaw był wczytany ?

0
  1. W algorytmie wstecznej propagacji błędów zestawem danych uczących jest stan wejścia i oczekiwany stan wyjścia (uczenie z nauczycielem)
  2. Po nauczaniu sieci sieć odpowiada na różne dane wejściowe, nie tylko te z zestawu uczącego i ona nie wie jakie dane uczące przyczyniły się do takiego a nie innego wyniku.

podsumowując: doczytaj podstawy sieci neuronowych w bogatej dostępnej literaturze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1