"New Neural" est un projet de moteur de réseau neuronal Open Source pour la plateforme MetaTrader 5. - page 15

 
LeXpert:

Je ne le crois pas :)

Et pensez-y, comme les neurones utilisent la mémoire commune, en assignant une valeur à une cellule, elle (la valeur) devient immédiatement disponible dans tous les neurones connectés, il s'ensuit que toute la différence dans l'apprentissage est dans l'écriture de la formule en sens inverse de l'activateur, le reste est le même pour tous, la différence est le mouvement en avant ou en arrière. Une bien maigre liste de différences :o)

La formule d'activation et sa dérivée sont prescrites lors de la création d'un neurone (ou plutôt, lors de la sélection d'un type parmi ceux disponibles), la direction du chemin d'apprentissage est également choisie lors de la création du réseau.

 
Avals:

Oui, vous pourriez faire ça, mais c'est exagéré))))

Hum, comment ce n'est pas exagéré ?

________________

Nikolaï, la façon la plus simple, la plus évidente et la plus rapide de représenter est de relier les vecteurs et les matrices.

 
LeXpert:

Hum, comment n'est-ce pas exagéré ?

________________

Nikolaï, la manière la plus simple, la plus évidente et la plus rapide de représenter est de relier les vecteurs et les matrices.

Mais il est fortement lié à la topologie, ou (si vous mettez à zéro certaines cellules, ce qui vous donne de la polyvalence) surutilisera la mémoire.

Comment pouvez-vous utiliser une matrice pour représenter un bassin d'écho de 1000x1000, dont 95% n'existe pas ? La question est rhétorique, il est clair que pour créer un tel bassin par la méthode matricielle, chaque neurone devrait pouvoir se connecter à n'importe quel neurone, ce qui fait 1000000 connexions potentielles par neurone, multipliez par 1000000 neurones et vous avez 10^6 x 10^6 mql matrice qui ne fonctionnera pas.

 
LeXpert:

Hum, comment est-ce que ça ne passe pas par une seule chose ?

Eh bien, pour que nous n'ayons pas à concevoir un algorithme d'entraînement pour une variante particulière de TS avec NS. C'est-à-dire faire en sorte que cela se passe automatiquement : il y a un conseiller expert avec NS et en exécutant la formation de NS, nous ne nous soucions pas de la façon dont il sera mis en œuvre, mais nous n'aurons pas besoin de collecter les valeurs des entrées dans un certain voisinage par nous-mêmes, etc. Il se peut que dans l'exemple que nous avons considéré, l'algorithme soit le même que celui que vous avez décrit, et que si, par exemple, le SN est une autre partie du système, il soit différent. En général, je veux qu'il fasse partie de la formalisation et qu'il soit caché à l'utilisateur. Il s'agit probablement d'un prétraitement des données de sortie du NS ou, dans d'autres cas, des données d'entrée, mais il peut être automatisé dans la plupart des cas et ne pas reposer sur les épaules délicates de l'utilisateur)))). Je ne sais pas comment le formaliser :)
 
Avals:

Afin de ne pas inventer un algorithme d'apprentissage pour une variante particulière de TC avec NS.

Vous ne pouvez pas le faire de cette façon :) Au minimum, vous devez savoir quoi prendre, quoi enseigner et comment évaluer. Et ce sont les choses que vous devez organiser avec vos mains.

En général, je voulais qu'il fasse partie de la formalisation et qu'il soit caché à l'utilisateur. Je ne sais pas comment le formaliser :)

Exactement. Je ne sais pas non plus. De plus, il y a des ensembles qui sont très difficiles à combiner. Les neurones ne sont qu'un outil. Dans des mains habiles (prenez Leonid par exemple), elle est même très puissante.

Je me demande s'il serait prêt à donner quelques conseils.

 
LeXpert:

Il faut savoir au moins ce qu'il faut prendre, ce qu'il faut enseigner et comment évaluer. Et ce sont les choses que vous devez organiser avec vos mains.

Exactement. Et je ne sais pas. De plus, il y a des ensembles qui sont très difficiles à combiner. Les neurones ne sont qu'un outil. Dans des mains compétentes (prenez Leonid par exemple) très puissant.

Envisagez au moins les options standard (par exemple, celle dont il est question à la page précédente). Vous avez suggéré une solution formelle. Pourquoi pensez-vous qu'il n'y en a pas pour le reste d'entre nous ?

Il est possible que tous se résument à quelques uns du même type.

 
Avals:
Pourquoi pensez-vous qu'il n'y a pas de filtre pour les autres ?

Oui, il existe :), mais tout est question d'entrées et de sorties :) le réseau est secondaire. Vous pouvez reconnaître les lettres comme vous le souhaitez, MLP, PNN, SOM, grille d'écho, mais le principe sera presque identique.

Avals:

Probablement, tout se résume à un peu de la même sorte

Voici un exemple de la facilité avec laquelle il est possible d'organiser un filtre de transactions.

Et nourrir un simple TS n'est pas une tâche pour les esprits moyens. Et le premier est presque à 100% un ajustement.

 
TheXpert:

Oui, il y en a :), mais tout est question d'entrées et de sorties :) le réseau est secondaire. Vous pouvez reconnaître les lettres comme bon vous semble, MLP, PNN, SOM, echoset, mais le principe sera presque identique.

Donc oui, le prétraitement et le post-traitement des données des NS sont les opérations les plus longues et les plus délicates. Si cela est systématisé et partiellement automatisé dans le cadre des variantes typiques de TC, c'est un avantage par rapport aux paquets tiers. Sinon, il est plus facile de tout faire avec eux (car ils sont plus spécialisés pour travailler avec NS de toute façon), et de transférer les modèles prêts vers MT5.
 

Quelques mails sur l'organisation de la classe utilisée dans les EA :

Propriétés :

1. le nombre minimum d'images que le réseau est entraîné à utiliser après lui.

2. le nombre maximum d'images. Lorsqu'une nouvelle image est ajoutée à l'ensemble d'apprentissage, l'ancienne image est supprimée et le réseau est réentraîné.

Méthodes externes :

1. envoyer l'image à entraîner. Lorsqu'il est utilisé dans l'EA, il est possible de donner une nouvelle image au réseau en fonction des signaux de l'indicateur .

2. Demandez au réseau s'il est prêt ou non. Si le réseau est entraîné pour un nombre suffisant d'images.

3. Méthode de base. Envoyez une image au réseau et recevez un résultat.


Lorsqu'une nouvelle image est envoyée au réseau pour l'entraînement, effectuez son prétraitement :

1. Mettez-le à l'échelle.

2. Vérifiez la corrélation, afin qu'il n'y ait pas deux images corrélées de manière opposée avec le même résultat, et pas deux images identiques avec un résultat différent.


Tout cela est rapidement ajouté à l'Expert Advisor ; au fur et à mesure que les indicateurs émettent des signaux, le réseau reçoit des images, dès qu'un nombre suffisant d'images est accumulé, le réseau est entraîné et ensuite, lorsque le signal d'ouvrir une position apparaît, nous demandons au réseau de confirmer ou non. Cela se fait dans le testeur. S'il est sur le compte, le réseau doit être formé après avoir été testé et il doit y avoir un moyen de sauvegarder le réseau et de le charger.

Le choix des images envoyées sur le réseau est laissé à l'utilisateur - prix, indicateur ou vrai/faux. Les paramètres du réseau (nombre de couches, entrées, sorties) sont définis lors de l'initialisation du réseau.

 

Le constructeur de réseau graphique peut également être réalisé dans mql5.

Je pense qu'il peut y avoir différents neurones dans une couche, ce n'est pas un problème, comment former un tel réseau est une autre question.

Un neurone dans une couche ? Quel est l'intérêt ? À moins qu'il ne s'agisse d'une couche supplémentaire contournée.

Raison: