Witam,
Mam sieć neuronową w której pierwsza warstwa ma 784 neurony druga ( ukryta 30) i wyjściowa 10;
Wyniki dla warstwy wyjściowej są zawsze takie same dla różnych danych testowych.
Dzieje się tak ponieważ do mojej funkcji aktywacyjnej (sigmoidalnej) jako parametr X wprowadzana jest zawsze bardzo duża wartość (z przedziału 40 - 60). Taka wielka wartość spowodowana jest dużą ilością wejść przez co suma pomnożona przez wagi jest dość spora, dlatego praktycznie każdy wzorzec powoduje taki sam wynik na wyjściu. Tą dużą wartość próbowałem obniżyć biasem dając wartości bias = -50 wówczas wartość jest z przedziału -10 do 10 jednak wydaje mi się że to nie jest dobre podejście.
W czym popełniam błąd?
Na początku myślałem że algorytm wstecznej propagacji po pewnym czasie nauki zamieni niektóre wagi na wartości ujemne co po pewnym czasie obniży takie duże wyniki jednak tak się nie dzieje.
Jeżeli ktoś zna dobry artykuł rozpoznawania liczb z bazy MNIST korzystając z backpropagation bardzo byłbym wdzięczny?
Ponoć algorytm jest łatwy ale potrafi dać w kość