Bonjour, merci d'avance à ceux qui pourrons m'éclairer.
Pour le moment je travail au pif. je teste, le valide, mais je voudrais le calculer automatiquement.
J'utilise une bibliothèque, PragmARC.REM_NN_Wrapper écrite avec Ada qui me fournit un réseau de neurones.
J'ai codé les mots du dictionnaire en une suite de 18 réels comprit entre 0.0 et 1.0. et mon réseau fait 20 mots de large, soit 360 neurone d'entrée, autant pour la sortie, et 20 neurones de couche cachée.
Mon ensemble d'exemples d'apprentissage contient 32 entrées et sorties.
Pour calculer l'erreur globale du réseau, je fais : (in Ada text)
Code :
-- Desired, Response : Node_Set(1..Num_Outputs) := (others => 0.0); Error : Real := 0.0; Current_Epoch : Natural := 0; begin RMS_Error := 0.0; loop for Pattern in 1..Max_Samples loop NN.Train; NN.Respond (pattern, Response); for I in Desired'Range loop Desired(I) := Samples(Pattern).Output(I); end loop; for I in Response'Range loop Error := Error + (Desired(I) - Response(i) ); end loop; RMS_Error := RMS_Error + ((Error/Real(Response'Length)) ** 2); Error := 0.0; end loop; RMS_Error := Real_Math.Sqrt(RMS_Error / Real (Max_samples)) ; Current_Epoch := Current_Epoch + 1; exit when Current_Epoch = Max_Epochs or (Current_Epoch = 50 and Converged >= RMS_Error); end loop; end;
|
Je voudrais savoir si il existe un moyen de calculer un Converged optimal.
Merci.
Correction : c'est pas le RMS_Error, dont je ne peux changer le calcul, mais le Converged que je cherche.
Et si vous avez : je me demande si il est possible de prévoir le nombre d'époques minimum, et maximum.
Message édité par Profil supprimé le 30-06-2012 à 23:08:07