Une bibliothèque rapide et gratuite pour MT4, pour le plus grand plaisir des neuralnetworkers. - page 13

 
Figar0 >> :

Le résultat est juste sain, il est utilisé, mais je ne peux pas dire que c'est le mérite de ZZ).

Publié il n'y a pas d'engagement, et juste quelques (kol'ton ensemble) filets sélectionnés par l'erreur minimale, mais que Statistisu ne devrait pas alimenter les données non préparées est une illusion. Certes, dans la recherche de décisions, il est possible d'essayer différentes choses, mais jeter tout dans une grille, et laisser bouillir, ne passe pas, n'importe qui ici vous le dira.

Et dans quelle direction il vaut la peine de travailler, dites-moi s'il vous plaît, si les résultats de votre travail ne sont pas classifiés du public ?

 
Kharin >> :

Vous êtes sûrs que la bibliothèque n'est pas "tordue" ?

La situation est la suivante : le message d'erreur apparaît régulièrement et le terminal va être fermé.

Lisez le fil de discussion. Il est écrit en russe :

static bool Parallel = true;

Если параллельный режим не поддерживается процессором, то это может привести к тому, что терминал выгрузится с сообщением об ошибке
 
lasso >> :

J'emmerde le conseiller. Il n'y a pas besoin de réécrire et de s'en occuper.

Il y a un soupçon de fonctionnement incorrect de la bibliothèque elle-même, et il est nécessaire de savoir si c'est le cas ou non. Sinon, il ne sert à rien d'avancer.

J'ai modélisé votre situation. En effet, en utilisant ann_train, les réponses sont les mêmes même après avoir entraîné le réseau avec ~10 000 signaux. Les réponses du réseau lorsqu'on utilise ann_train_fast sont parfois différentes et parfois non.

Je pense qu'il y a vraiment un problème, au moins avec la randomisation des poids.

 

Essayez de commenter f2M_randomize_weights. Si les réponses des réseaux sont différentes, alors il y a une erreur dans FANN2MQL. Si elles sont toujours les mêmes, il y a une erreur dans FANN.

La valeur par défaut est la randomisation (-0,1 ... 0,1).


UPD : Je l'ai vérifié moi-même. Il y a randomisation dans les deux cas. Une seule bizarrerie - 2 à 5 filets d'affilée répondent de la même façon, puis un groupe d'autres filets identiques. Il y a donc 5 réponses différentes pour 16 filets. Si l'erreur n'est pas corrigée, le comité de N membres a besoin de 3*N filets, le reste étant du lest.

 
Henry_White >> :

Lisez le fil de discussion. C'est écrit en russe :

Qui vous a dit que j'utilisais le mode parallèle ? !

Pourquoi faut-il que tu "jettes du caca" de manière moralisatrice ? Si vous ne pouvez pas dire ce qui est écrit dans la pile et quelle est exactement l'erreur,

ne dis rien. Oui, maintenant nous allons commencer à parler des télépathes et ainsi de suite, je préviens ce cri : un message d'erreur a été donné,

Son texte complet, les fonctions utilisées sont les mêmes que dans celui de Yury Reshetov, le mode parallèle n'est pas utilisé.

Quelle pourrait être la raison de ce message ?

 
Kharin >> :

Et qui vous a dit que j'utilisais le mode parallèle ? !

Je vous demande pardon.)

 
Kharin писал(а) >>

C'est pourquoi je pense que votre dernière phrase est absurde.

Vous le pensez parce que vous l'avez pris personnellement, alors que j'essayais seulement de dire que la bibliothèque ne dispose pas d'un puissant gestionnaire d'erreurs, et ne pardonne pas la manipulation incorrecte des objets et des pointeurs vers eux. Alors, soyons amis ! )))

Avez-vous essayé l'Expert Advisor de Reshetov ? Est-ce que ça fait rebondir le terminal aussi ?

 
Dali писал(а) >>

UPD : Je l'ai vérifié moi-même. Il y a randomisation dans les deux cas. Seulement il y a une bizarrerie - 2 à 5 filets d'affilée répondent de la même façon, puis un groupe d'autres filets identiques. Il y a donc 5 réponses différentes pour 16 filets. Si l'erreur n'est pas corrigée, le comité de N membres a besoin de 3*N filets, le reste étant du lest.

Noté. La randomisation est de -1 à 1, et le profil du réseau a des poids de -10.0e--003 à 10.0e-003

Exemple : (12, -7.35577636217311400000e-003) (13, 7.63970005423449810000e-002)

Est-ce correct ?

.....

Oui, la même chose s'est produite, à savoir que les valeurs de sortie des deux ou quatre premiers réseaux sont différentes de celles des réseaux suivants.

J'ai essayé de multiplier les entrées par différents coefficients. Cela ne résout pas le problème.

 
lasso >> :

Vous le pensez parce que vous l'avez pris personnellement, alors que j'essayais seulement de dire que la bibliothèque ne dispose pas d'un puissant gestionnaire d'erreurs, et ne pardonne pas la manipulation incorrecte des objets et des pointeurs vers eux. Alors, soyons amis ! )))

Avez-vous essayé l'Expert Advisor de Reshetov ? Est-ce que ça fait aussi rebondir le terminal ?

Je préfère l'amitié)))

L'Expert Advisor de Reshetov a éliminé le terminal avant que j'aie aboli le calcul parallèle.

Maintenant, j'essaie mon conseiller expert dans toutes les directions et je vérifie le succès des opérations avec Print.

J'ai remarqué la particularité suivante : la création d'une grille peut échouer((

a = f2M_create_standard (nn_layer,nn_input,nn_hidden1,nn_hidden2,nn_output) ;

cette ligne renvoie très souvent -1.

Pour être plus précis, un certain nombre de fois, il ne renvoie pas -1, et ensuite seulement -1.

La seule façon de s'en débarrasser est de redémarrer l'ordinateur. Je me suis dit que la raison était que la maille précédente ne serait pas supprimée et qu'il n'y aurait pas de place pour la nouvelle maille.

et le nouveau n'a nulle part où aller, alors j'ai fait ce bout de code :

for (int i=0;i<1024;i++)
{ann_destroy (ann[i]);}
int a=-1;
while(a<0)
{
a = f2M_create_standard (nn_layer,nn_input,nn_hidden1,nn_hidden2,nn_output);
Print(a);
}


Eh bien maintenant, il est certain que les 1024 premiers filets doivent être supprimés ! (Je peux me tromper).

Mais là encore, il écrit -1 dans le journal. Avant de redémarrer...

 

Eh bien, je pense que je vais ajouter les bizarreries de FANN aussi...

A titre expérimental, j'ai décidé d'entraîner par force brute le comité de 46 filets de dimension 30/N/N/1 (c'est-à-dire sur chaque barre : ~300k). Un NS par canal de données. Un modèle temporel est envoyé à l'entrée. J'ai joué avec la dimensionnalité, c'est pourquoi je spécifie N/N (j'en ai essayé plusieurs). J'ai aussi fait un peu de stratification.
Activateur - FANN_SIGMOID_SYMMETRIC_STEPWISE. J'en ai essayé d'autres, mais le réseau ne converge pas aussi rapidement qu'avec lui.
Je n'enseigne que 1 ou -1. Apprentissage à chaque itération.
Le nombre d'itérations positives et négatives de l'apprentissage est presque égal. Pour être exact, c'est 132522/-112221.
Les données sont normalisées à un intervalle de 1:-1.
Presque tous les maillages convergent vers un RMS inférieur à 0,09 à la fin de la formation. C'est beaucoup bien sûr, mais ce n'est pas le point principal.

Mais voici la chose étrange, sur la section test, tout le comité a donné des valeurs proches de -1. Je pense que c'est un comportement malsain pour les NS. Peut-être y a-t-il aussi une erreur algorithmique dans la bibliothèque...

Une autre observation... Avec un entraînement normal (uniquement les sections de signaux), le comité a toujours tendance à se décharger sur des valeurs négatives, bien que ce ne soit pas aussi évident qu'en bruteforce.

Quelqu'un a-t-il observé des phénomènes similaires chez lui ? Vous avez peut-être des idées ?


Exemple de données d'entrée visualisées (ci-dessous) :



Raison: