2011-05-12 3 views
0

Je veux savoir comment algorithme de descente grdient fonctionne sur la formation réseau matlab et comment MSE est calculé - J'ai ma propre application, mais il ne fonctionne pas comme matlab nn et je veux savoir pourquoi . Mon algorithme ressemble à ceci:matlab réseau neuronal descente et erreur quadratique moyenne

foreach epoch 
     gradient_vector = 0 // this is a vector 
     rmse = 0 

     foreach sample in data set 
      output = CalculateForward(sample.input) 
      error = sample.target - output 
      rmse += DotProduct(error,error) 
      gradient_part = CalculateBackward(error) 
      gradient_vector += (gradient_part/number_of_samples) 
     end 

     network.AddToWeights(gradient_vector * learning_rate) 
     rmse = sqrt(rmse/number_of_samples) 

    end 

Je l'ai quelque chose de similaire ce que Matlab fait?

Répondre

0

Il semble proche de ce que MATLAB fait, mais gardez à l'esprit que la boîte à outils est conçue pour une large base d'applications. Votre algorithme donne une fois chaque entrée de données au réseau une fois par époque. La boîte à outils de Matlab peut présenter les données plusieurs fois par époque, être mise à jour plusieurs fois par époque et peut être mise à jour de plusieurs façons. Je vous assure que votre méthode exacte peut être dupliquée avec la boîte à outils matlab existante, mais avec un paramètre très spécifique, qui peut être trouvé en creusant dans les fichiers d'aide pour le réseau de neurones que vous utilisez. Certains d'entre eux peuvent être plus proches de ce que vous faites que d'autres, alors soyez perspicaces. Bonne chance!

Questions connexes