Cacul des erreurs d'un réseau de neurones. - Ada - Programmation
Marsh Posté le 21-08-2010 à 14:16:07
bonjour, D'habitude je calcule les erreur de cette manière :
loop All_Patterns : for Pattern in 1..Train_length loop NN_Train.Train; NN_Train.Respond (Pattern, Response); for I in Response'Range loop Error := Error + (Desired_Output(Pattern)(i) - Response(i) ); end loop; RMS_Error := RMS_Error + ((Error/Real(Response'Length)) ** 2); Error := 0.0; Response := (others => 0.0); end loop All_Patterns; RMS_Error := Real_Math.Sqrt(RMS_Error / Real (train_length)) ; put("RMS_Error : " ); Real_Io.Put(RMS_Error); put(" ; Converged : " ); Real_Io.put(converged); Put(Character'Val(13)); if (RMS_Error < Converged) or (Epoch > Max_Epochs) then exit; end if; Epoch := Epoch + 1; end loop;
Mais là je n'ai qu'un pattern à chaque apprentissage et j'ai donc simplifier comme suit :
loop NN_Expl.Train; Response := (others => 0.0); NN_Expl.Respond (1, Response); Error := 0.0; RMS_Error := 0.0; for I in Response'Range loop Error := Error + (Desired(i) - Response(i) ); end loop; RMS_Error := RMS_Error + ((Error/Real(Response'Length)) **2); RMS_Error := Real_Math.Sqrt(RMS_Error); Epoch := Epoch + 1; if (Epoch > 50) and then ((RMS_Error <= Converged) or (Epoch > Max_Epochs)) then exit; else Text_Io.Put ("Epoch" ); Text_Io.Put (Integer'Image (Epoch) ); Text_Io.Put(" => RMS_Error: " ); Real_Io.Put(RMS_Error); Text_Io.Put(Character'Val(13)); end if; end loop;
Malgré cette simple simplification, je vois augmenter sans cesse RMS_Error au lieu que celui-ci décrémente petit à petit. Pouvez vous m'aider, s'il vous plait ?
Make sure you enter the(*)required information where indicate.HTML code is not allowed
Marsh Posté le 21-08-2010 à 14:16:07
bonjour,
D'habitude je calcule les erreur de cette manière :
Mais là je n'ai qu'un pattern à chaque apprentissage et j'ai donc simplifier comme suit :
Malgré cette simple simplification, je vois augmenter sans cesse RMS_Error au lieu que celui-ci décrémente petit à petit.
Pouvez vous m'aider, s'il vous plait ?
Message édité par Profil supprimé le 21-08-2010 à 14:21:04