Bibliothèque: Classe de réseau neuronal MLP - page 2

 
elibrarius:

En comparant les résultats de l'apprentissage des tables de multiplication, votre réseau est nettement moins performant. Sur ALGLIB, le réseau 2,5,1 pour 100 époques d'apprentissage(https://www.mql5.com/ru/forum/8265/page2) donne de meilleures réponses que le vôtre avec 1000000 époques. La vitesse de calcul de 10000000000 epochs n'est pas très satisfaisante non plus.

Apparemment, la méthode d'apprentissage n'est pas très efficace. Mais tout de même - merci pour votre travail, il est plus facile à comprendre dans un petit code que dans ALGLIB. Mais nous devons encore progresser.

mauvaise comparaison, les 100 exemples sont montrés dans la variante alglib pour l'apprentissage, c'est pourquoi les réponses sont plus correctes. je pense que si vous réduisez les exemples avec des réponses dans alglib, les résultats ne seront pas meilleurs.

 

Bonjour, j'apprécie beaucoup que vous ayez pris le temps de créer cette bibliothèque native !

J'ai essayé de faire un encodage à chaud et j'ai ajouté relu à la couche cachée et une fonction Softmax à l'appel de la couche de sortie. Cela fonctionne et produit un résultat total de 100%.

Mais l'apprentissage a été perturbé, même en repassant à Sigmoud, est-ce que iRprop n'est pas adapté à la classification ? Il donne à peu près le même résultat quelle que soit l'entrée. Il y a parfois des changements, mais pas beaucoup.


Deuxième question, je vois que Tanh et Sigmod sont traités différemment dans la méthode Lern, je ne comprends pas encore cette partie du code, mais laquelle est appropriée pour Relu ?

 
Merci pour cette formidable contribution... Pouvez-vous m'expliquer comment je peux déterminer l'erreur permissive ?
 
northedan:
Merci pour cette formidable contribution... Pouvez-vous m'expliquer comment je peux déterminer l'erreur permissive ?
//+------------------------------------------------------------------+
//| Apprendre|
//+------------------------------------------------------------------+
void CNetMLP::Learn(int c_npat,       // nombre de modèles d'enseignement
                    double &c_inp[],  // données d'entrée
                    double &c_res[],  // données de sortie
                    int c_nep,        // nombre d'époques d'apprentissage
                    double c_err)     // erreur admissible