Witam,
pod delikatna presją studiów wziąłem się za napisanie sieci neuronowej. Poczytałm trochę, rozplanowałem projekt.
Pierwsza rzeczą, za która się wziąłem jest klasa neuron. działa ona w następujący sposób:
funkcja aktywacji: ** ( 2/(1+ exp( (-1*beta) * potencjal_membranowy) )-1 );**
pochodna funkcji aktywacji: ( (1-(pow( potencjal_membranowy,2)))/2)
uaktualnianie wag: ** inputsWeights[i] = (inputsWeights[i] + ( learningRate * inputs[i] * (activationFunctionDerivative() ) ));**
obliczanie błędu ostatniej warstwy: ( (ExpectValue - output) * activationFunctionDerivative() );
funkcja aktywacji uwzględnia bias.
i tutaj zaczyna sie pierwszy problem. Stworzyciel obiekt neuron i próbuje go uczyć. Daje na wejście 0.5 na wyjcie -0.5, uczę go, a on nic :) Moje pytanie, czemu tak się dzieje? Może coś we wzorach pomieszałem?
Pytanie 2: przegrzebałem setki storn i nie wiem do końca kiedy przestać uczyć siec, czy dowolny neuron. Moja funkcja bledu zwraca wartość ujemna jak sumować błędy? Dodatkowo, jeżeli mam parę wyjść, to sumuje błąd ze wszystkich tak?
Serdecznie pozdrawiam
i dziękuje za pomoc