Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1802 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  Cacul des erreurs d'un réseau de neurones.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cacul des erreurs d'un réseau de neurones.

n°2018275
Profil sup​primé
Posté le 21-08-2010 à 14:16:07  answer
 

bonjour,
 
D'habitude je calcule les erreur de cette manière :
 

Code :
  1. loop
  2.              All_Patterns :
  3.                  for Pattern in 1..Train_length loop
  4.                     NN_Train.Train;
  5.                     NN_Train.Respond (Pattern, Response);
  6.                     for I in Response'Range loop
  7.                        Error := Error + (Desired_Output(Pattern)(i) -   Response(i) );
  8.                     end loop;
  9.                     RMS_Error := RMS_Error + ((Error/Real(Response'Length)) ** 2);
  10.                     Error := 0.0;
  11.                     Response := (others => 0.0);
  12.                  end loop All_Patterns;
  13.                  RMS_Error := Real_Math.Sqrt(RMS_Error / Real (train_length)) ;
  14.                  put("RMS_Error : " );
  15.                  Real_Io.Put(RMS_Error);
  16.                  put(" ; Converged : " );
  17.                  Real_Io.put(converged);
  18.                  Put(Character'Val(13));
  19.                  if (RMS_Error < Converged) or
  20.                    (Epoch > Max_Epochs) then
  21.                     exit;
  22.                  end if;
  23.                  Epoch := Epoch + 1;
  24.              end loop;


 
Mais là je n'ai qu'un pattern à chaque apprentissage et j'ai donc simplifier comme suit :
 

Code :
  1. loop
  2.                     NN_Expl.Train;
  3.                     Response := (others => 0.0);
  4.                     NN_Expl.Respond (1, Response);
  5.                     Error := 0.0;
  6.                     RMS_Error := 0.0;
  7.                     for I in Response'Range loop
  8.                        Error := Error + (Desired(i) -   Response(i) );
  9.                     end loop;
  10.                     RMS_Error := RMS_Error + ((Error/Real(Response'Length)) **2);
  11.                     RMS_Error := Real_Math.Sqrt(RMS_Error);
  12.                     Epoch := Epoch + 1;
  13.  
  14.                     if (Epoch > 50) and then
  15.                       ((RMS_Error <= Converged) or
  16.                        (Epoch > Max_Epochs)) then
  17.                        exit;
  18.                     else
  19.                        Text_Io.Put ("Epoch" );
  20.                        Text_Io.Put (Integer'Image (Epoch) );
  21.                        Text_Io.Put(" => RMS_Error: " );
  22.  
  23.                        Real_Io.Put(RMS_Error);
  24.                        Text_Io.Put(Character'Val(13));
  25.                     end if;
  26.                  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 ?


Message édité par Profil supprimé le 21-08-2010 à 14:21:04
mood
Publicité
Posté le 21-08-2010 à 14:16:07  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  Cacul des erreurs d'un réseau de neurones.

 

Sujets relatifs
interogation sur comment capter les erreursMonitoring d'une MAJ d'un fichier située sur un lecteur réseau
Programmation réseau client serveurprogrammation réseau C++ multiplateforme
Obtenir chemin UNC d'un lecteur réseau.bat pour script reseau ftp
Débit réel du reseau ?<Programation réseau> recvfrom ( ) après un select ()
Je cale sur les erreurs d'URL... ENCORE 
Plus de sujets relatifs à : Cacul des erreurs d'un réseau de neurones.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR