Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
2056 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
jovalise
Par l'anneau de l'i.a.
Posté le 21-08-2010 à 14:16:07  profilanswer
 

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 jovalise le 21-08-2010 à 14:21:04

---------------
Là où l'Homme ne pourra aller, Ada ira. Nouveau: Le net de jovalise
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
[résolu]HTML (5): erreurs à la validation W3CObtenir chemin UNC d'un lecteur réseau
.bat pour script reseau ftpDé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.


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware