Que mettre à l'entrée du réseau neuronal ? Vos idées... - page 69

[Supprimé]  
Vous avez écrit dans un autre fil. Entraînez-vous avec talovo NS pour qu'il vous donne le plus grand nombre de transactions possible. Ce n'est qu'ensuite qu'il ne faut pas se baser sur de nouvelles données, mais filtrer les signaux en fonction du temps, de la volatilité, etc. etc. Cherchez des ensembles stables.

Sinon, vous ne ferez que perdre votre temps.
Dans le dernier article, dans les commentaires, j'ai donné un exemple à propos des pantalons et des shorts. C'est le même principe.

Votre NS sera comme une base de données, de laquelle vous tirerez quelque chose avec des requêtes.
 
Maxim Dmitrievsky #:
Cela vous évitera bien des réflexions inutiles :)

Sans dumas, je serais en train de perdre mon temps sur le dieu MO Gizlyk :)


m oskitman #:

Un peu comme le marc de café du 21ème siècle



Vous êtes assis là, en train de démonter le manuel TC de quelqu'un, puis : "Bon sang, la dernière fois, je n'ai pas essayé ceci et cela" - et c'est reparti.



F orestier #: Avec les arbres, le problème est résolu par les divisions - les feuilles dont la valeur prédictive est < 0,1 et > 0,5 ne produiront pas de signaux.


Je n'y arrive pas.

M axim Kuznetsov#:

quelqu'un a-t-il des informations sur NN et DL ? au moins quelqu'un ici...

---

Je ne sais pas si j'ai une bonne idée de ce qu'il faut faire, mais je ne sais pas si c'est possible.) Au moins "EA trades on demo and plus".

---

soit on a le sentiment que c'est une branche de l'évolution sans issue et que toute la production du mashobuch et des neurones se retrouve dans la publicité, les spams et les "mutual_sending".




Il s'avère que le commerce est difficile, mais qu'il est doux, de sorte que vous pouvez aller sur le marché - pas encore.

[Supprimé]  
Ivan Butko #:

S'il n'y avait pas les dumdums, je serais en train de perdre mon temps avec le dieu MO - Gizlyk :)

Penser est mauvais pour le corps, emprunte l'expérience ))

 
Maxim Dmitrievsky #:

Penser est mauvais pour le corps, j'en ai fait l'expérience ))

C'est vrai aussi

 
Ivan Butko #:

L'entréen' estpas la force du signal

Sa force lui est donnée par des poids. Mais le nombre d'entrées lui-même porte a priori déjà ( !) un élément de puissance - son facteur quantitatif.




Plus tôt, j'ai soulevé le problème de la compréhension des données d'entrée. En donnant un nombre à l'entrée, nous la dotons déjà initialement d'une valeur de force. C'est une erreur, car l'essence de notre SN est de trouver le facteur de puissance et de le répartir entre les entrées.

Je ne comprends pas bien, est-ce que vous enseignez avec un professeur ?
 
Andrey Dik #:
Je ne comprends pas bien, vous enseignez avec un professeur ?







Dans l'optimisation MT5. Et j'ai essayé avec un professeur dans NeuroPro. L'essence du problème théorique se résume à ceci :si la plage d'entrée est de 0 à 1, le SN ne trouvera jamais le graal si les motifs de drainage dans la plage supérieure sont enfouis dans les nombres de la plage inférieure, parce qu'il devra "étouffer" la plage supérieure, et avec des poids statiques, tout ce qui est inférieur passera également sous le couteau.

Enconséquence, l'additionneur obtiendra un nombre composé à la fois des données de vidange et des données de travail - 50/50.






Et si la plage d'entrée va de -1 à 1, et que le graal se trouve quelque part au milieu, la même chose se produira : le NS étouffera les extrêmes et le graal sera emporté.Mais si vous créez un module de filtrage, lorsque le nombre 0,9 se "transformera" en 0,01, ou en 0 tout court, et le nombre 0, 63en 0,01, le graal setransformera en 0,01.

Et le chiffre 0,63 se transformera en 0,99 et ainsi de suite - je suppose que cette méthode est au moins meilleure que la méthode standard, et au plus - potentielle. Et ces chiffres devraient déjà être transmis au NS, qui créera des règles pour travailler avec des données d'entrée "débarrassées" du bruit .

 
Ivan Butko #:




L'essence du problème théorique se résume à ceci :si la plage d'entrée est comprise entre 0 et 1, le SN ne trouvera jamais le graal dans les schémas de drainage de la plage supérieure s'il est enfoui dans les nombres de la plage inférieure, car il devra "étouffer" la plage supérieure et, à poids statique, tout ce qui est inférieur passera également sous le couteau.

En conséquence, l'additionneur obtiendra un nombre composé à la fois de données de drainage et de données de travail - 50/50 et c'est tout.




Et si la plage d'entrée va de -1 à 1, et que le graal se trouve quelque part au milieu, la même chose se produira : le NS étouffera les extrêmes et le graal sera emporté.Mais si vous créez un module de filtrage, lorsque le nombre 0,9 se "transformera" en 0,01, ou en 0 tout court, et le nombre 0, 63en 0,01, le graal setransformera en 0,01.

Et le chiffre 0,63 se transformera en 0,99 et ainsi de suite - je suppose que cette méthode est au moins meilleure que la méthode standard, et au plus - potentielle. Et ces chiffres devraient déjà être transmis au NS, qui créera des règles pour travailler avec des données d'entrée "débarrassées" du bruit .

Je crois que je vois ce que vous voulez dire (corrigez-moi si c'est faux). Un neurone d'un MLP conventionnel résume les produits des entrées et des poids correspondants, décale la somme et la transforme ensuite de manière non linéaire (le décalage est le même pour chaque neurone, quels que soient les signaux qui lui parviennent). En d'autres termes, il est impossible de décaler linéairement chaque entrée séparément. Si la tâche consiste à corriger les valeurs d'entrée du réseau, vous pouvez améliorer légèrement le MLP en ajoutant une couche de correction supplémentaire (sans fonction d'activation) entre la couche d'entrée et la première couche cachée, dont la tâche consiste simplement à corriger linéairement les valeurs de la couche d'entrée. Il s'avère que pour chaque entrée du réseau, un poids et un décalage supplémentaires sont nécessaires. En fait, une seule de ces couches supplémentaires est nécessaire, et les choses se passent ensuite comme d'habitude.

Intéressant, pas difficile à mettre en œuvre.

Il est clair que si l'on sait à l'avance comment les valeurs d'entrée doivent être converties, on les prendrait et on les convertirait en deux octets à envoyer, mais si on ne le sait pas, une telle couche supplémentaire a du sens.

IMLP -MLP amélioré
 
Ivan Butko #:




Si la plage d'entrée est comprise entre 0 et 1, le SN ne trouvera jamais le graal si les motifs de prunes de la plage supérieure sont enfouis dans les nombres de la plage inférieure, car il devra "bloquer" la plage supérieure et, avec des poids statiques, tout ce qui est inférieur passera également sous le couteau. Par conséquent, l'additionneur obtiendra un nombre composé à la fois de données de prunes et de données de travail - 50/50.


Votre problème est facilement résolu : divisez chaque fiche en un nombre suffisant de plages (3, 5, 10, 50...) et alimentez-les en tant que fiches séparées. Les coefficients de chaque plage seront ajustés individuellement.
Si vous avez un graal caché dans le tiers supérieur, il sera trouvé par cette fiche individuelle.

 
Andrey Dik #:

Oui... je crois comprendre ce dont vous parlez (corrigez-moi si c'est faux). Un neurone d'un MLP conventionnel additionne les produits des entrées et des poids correspondants, décale la somme et la transforme ensuite de manière non linéaire (le décalage est le même pour chaque neurone, quels que soient les signaux qui lui parviennent). En d'autres termes, il est impossible de décaler linéairement chaque entrée séparément. Si la tâche consiste à corriger les valeurs d'entrée du réseau, vous pouvez améliorer légèrement le MLP en ajoutant une couche de correction supplémentaire (sans fonction d'activation) entre la couche d'entrée et la première couche cachée, dont la tâche consiste simplement à corriger linéairement les valeurs de la couche d'entrée. Il s'avère que pour chaque entrée du réseau, un poids et un décalage supplémentaires sont nécessaires. En fait, une seule de ces couches supplémentaires est nécessaire, et les choses se passent ensuite comme d'habitude.

Intéressant, pas difficile à mettre en œuvre.

Il est clair que si l'on sait à l'avance comment les valeurs d'entrée doivent être converties, on les prendrait et on les convertirait en deux octets à envoyer, mais si on ne le sait pas, une telle couche supplémentaire a du sens.

IMLP -MLP amélioré






Oui, il s'agit d'un type de filtrage La manière la plus simple et aussi la plus efficace : il suffit d'ajouter une condition "si". Si N1 < IN < N2, alors IN = Filter[i] ; Je l'ai fait de cette manière avec une boucle

double CalculateNeuron(double &in[],    double &w[])
  {
   double NET=0.0;

   for (int n = 0; n < ArraySize(in); n++)
     {
      NET += /*x[n] **/ W(in[n], w);
     }    
    
   return((NET     ));
  // return(ActivateNeuron(NET));
  }
double W(double in,   double &w[])
  {
    double x = MathAbs(in);
  //  double x = in;
    
    double r1 = 1.0;
    double r2 = 1.0;
    double z  = 0.0125;           // затрагивает весь диапазон от 0 до 1
   // double z  = 0.00625;          // диапазон от 0.5 до 1
   // double z  = 0.003125;         // диапазон от 0.75 до 1
   // double z  = 0.0015625;        // диапазон от 0.875 до 1
   // double z  = 0.00078125;       // диапазон от 0.9375 до 1
   // double z  = 0.000390625;      // диапазон от 0.96875 до 1
   // double z  = 0.0001953125;     // диапазон от 0.984375 до 1
    r2 -= z;
    
    double res;
    
    int i = 0;   
   
    if (x >= r1)              res = w[i]; 
    for (i = 1; i < 80; i++)
      {
        if (x < r1 && x >= r2)    res = w[i];    r1 -= z;    r2 -= z;
      }
    if (x < r1 && x > 0)    res = w[i];    r1 -= z;    r2 -= z;

    if (in < 0) res = -res;      // если на вход попало минусовое число — скорректированное также умножаем на (-1)
    
    return res;
  }




Si l'entrée est alimentée par toutes sortes de limites de canaux, qui ont de fortes probabilités de corrections à partir des limites, la plage peut être divisée en deux parties, dont l'une sera ignorée (annulée) et l'autre sera corrigée plus intensivement. Cette méthode est la plus rapide qui soit pour l'ajustement (le réentraînement).

Bien que non, la table Q vient en premier, et cette méthode en second. MLP, d'autre part, est un outil très... outil très spécifique pour le forex. Je pense même que c'est un outil perturbateur.



F orester #:


Votre problème est facilement résolu : divisez chaque caractéristique en un nombre suffisant de plages (3,5,10,50...) et soumettez-les en tant que caractéristiques distinctes. Les coefficients de chaque plage seront ajustés individuellement.
Si vous avez un graal caché dans le tiers supérieur, il sera trouvé par cette fiche individuelle.

Je crois que c'est à peu près ce que j'ai fait
 
Maxim Kuznetsov #:

Quelqu'un a eu de la chance avec NN et DL ?

---

sauf pour les graphiques en python et les tests ajustés :-) Au moins "EA trades on demo and plus".

---

ou bien on a le sentiment qu'il s'agit d'une branche de l'évolution sans issue et que toute la production du mashobuch et des neurones se retrouve dans la publicité, les spams et les "mutual_sending".

Je pense que ces doutes ne sont pas fondés. Ne jugez pas le progrès par les faux pythoniens du Graal et nous verrons bien.