Cosa inserire nell'ingresso della rete neurale? Le vostre idee... - pagina 69

[Eliminato]  
Ivan Butko #:

Se non fosse per i dumdum, ora starei perdendo tempo con il dio MO - Gizlyk :)

Pensare fa male al tuo corpo, prendi in prestito l'esperienza ))

 
Maxim Dmitrievsky #:

Pensare fa male al corpo, lo dico per esperienza ))

Anche questo è vero

 
Ivan Butko #:

L'ingressonon è la forza del segnale

La sua forza è data dai pesi. Ma il numero di ingresso porta già a priori(!) un elemento di potenza - il suo fattore quantitativo.




Prima ho sollevato il problema della comprensione dei dati in ingresso: attribuendo un numero all'ingresso, lo dotiamo già inizialmente di un valore di forza. Questo è un errore, perché l'essenza del nostro NS è solo quella di trovare il fattore di potenza e distribuirlo tra gli ingressi.

Non ho capito bene, stai insegnando con un insegnante?
 
Andrey Dik #:
Non ho capito bene, stai insegnando con un insegnante?







Nell'ottimizzazione MT5. E ho provato con un insegnante in NeuroPro. L'essenza del problema teorico si riduce a quanto segue:se l'intervallo di input è da 0 a 1, il NS non troverà mai il graal se i modelli di drain nell'intervallo superiore sono sepolti nei numeri dell'intervallo inferiore, perché dovrà "soffocare" quello superiore, e con i pesi statici tutto ciò che è inferiore andrà anch'esso sotto i ferri.

Di conseguenza, l'addizionatore otterrà un numero che consiste sia nei dati di scarico che in quelli di lavoro - 50/50.






Ese l'intervallo di input va da -1 a 1 e il graal si trova da qualche parte nel mezzo, accadrà la stessa cosa: il NS smorzerà gli estremi e il graal verrà spazzato via.Ma se si crea un modulo di filtraggio, quando il numero 0,9 si "trasformerà" in 0,01, o in 0 del tutto.

Eil numero 0,63 in 0,99 e così via - presumo che questo metodo sia almeno migliore di quello standard, e al massimo potenziale. E già questi numeri dovrebbero essere dati in pasto al NS, che creerà regole per lavorare con dati di input "ripuliti" dal rumore .

 
Ivan Butko #:




L'essenza del problema teorico si riduce a quanto segue:se l'intervallo di ingresso è da 0 a 1, il NS non troverà mai il graal nei modelli di drain dell'intervallo superiore se è sepolto nei numeri dell'intervallo inferiore, perché dovrà "soffocare" quello superiore, e a pesi statici tutto ciò che è inferiore andrà anch'esso sotto i ferri.

Di conseguenza, l'addizionatore otterrà un numero che consiste sia di dati di drain che di dati di lavoro - 50/50 e risulta.




Se l'intervallo di input va da -1 a 1 e il graal si trova da qualche parte nel mezzo, accadrà la stessa cosa: il NS smorzerà gli estremi e il graal verrà spazzato via.Ma se si crea un modulo di filtraggio, quando il numero 0,9 si "trasformerà" in 0,01, o in 0 del tutto.

Eil numero 0,63 in 0,99 e così via - presumo che questo metodo sia almeno migliore di quello standard, e al massimo potenziale. E già questi numeri dovrebbero essere dati in pasto al NS, che creerà regole per lavorare con dati di input "ripuliti" dal rumore .

Sì... credo di aver capito di cosa stai parlando (correggimi se sbaglio). Un neurone di una MLP convenzionale sintetizza i prodotti degli ingressi e dei pesi corrispondenti, sposta la somma e poi la trasforma in modo non lineare (lo spostamento è lo stesso per ogni neurone indipendentemente dai segnali che gli arrivano). In altre parole, è impossibile traslare ogni ingresso separatamente in modo lineare. Se il compito è quello di correggere i valori di ingresso alla rete, è possibile migliorare un po' MLP aggiungendo un ulteriore strato di correzione (senza funzione di attivazione) tra lo strato di ingresso e il primo strato nascosto, il cui compito è proprio quello di correggere linearmente i valori dello strato di ingresso. Si scopre che per ogni ingresso della rete sono necessari 1 peso e un offset in più. In realtà, è sufficiente uno solo di questi strati aggiuntivi e il gioco è fatto.

Interessante, non difficile da implementare.

È chiaro che se si sapesse in anticipo come devono essere convertiti i valori di ingresso, si prenderebbero e convertirebbero i due byte da inviare, ma se non si sa, tale strato aggiuntivo ha senso.

IMLP -MLP migliorato
 
Ivan Butko #:




Se l'intervallo di ingresso è da 0 a 1, il NS non troverà mai il Graal se i modelli di prugna nell'intervallo superiore sono sepolti nei numeri dell'intervallo inferiore, perché dovrà "inceppare" quello superiore, e con i pesi statici tutto ciò che è inferiore andrà anch'esso sotto i ferri. Di conseguenza, l'addizionatore otterrà un numero che consiste sia di dati di prugna che di dati di lavoro - 50/50.


Il problema è facilmente risolvibile: dividete ogni scheda nel numero necessario di intervalli (3,5,10,50...) e alimentateli come schede separate. Ogni intervallo avrà i suoi coefficienti regolati individualmente.
Se avete un graal nascosto nel terzo superiore, sarà trovato da questa singola scheda.

 
Andrey Dik #:

Sì... credo di aver capito di cosa stai parlando (correggimi se sbaglio). Un neurone di una MLP convenzionale somma i prodotti degli ingressi e dei pesi corrispondenti, sposta la somma e poi la trasforma in modo non lineare (lo spostamento è lo stesso per ogni neurone, indipendentemente dai segnali che gli arrivano). In altre parole, è impossibile spostare linearmente ogni ingresso separatamente. Se il compito è quello di correggere i valori di ingresso alla rete, è possibile migliorare un po' MLP aggiungendo un ulteriore strato di correzione (senza funzione di attivazione) tra lo strato di ingresso e il primo strato nascosto, il cui compito è proprio quello di correggere linearmente i valori dello strato di ingresso. Si scopre che per ogni ingresso della rete sono necessari 1 peso e un offset in più. In realtà, è sufficiente uno solo di questi strati aggiuntivi e il gioco è fatto.

Interessante, non difficile da implementare.

È chiaro che se si sapesse in anticipo come devono essere convertiti i valori di ingresso, si prenderebbero e convertirebbero i due byte da inviare, ma se non si sa, tale strato aggiuntivo ha senso.

IMLP -MLP migliorato






Sì, questo è un tipo di filtraggio Il modo più semplice e anche il più efficiente: basta aggiungere una condizione "if". Se N1 < IN < N2, allora IN = Filtro[i]; io l'ho fatto in questo modo con un ciclo

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;
  }




Se l'ingresso è alimentato con tutti i tipi di limiti del canale, che hanno un'alta probabilità di correzioni dai limiti, l'intervallo può essere diviso in due parti, una delle quali sarà ignorata (annullata) e la seconda sarà corretta in modo più intensivo. Questo modo è il più veloce di adattamento (riqualificazione) possibile.

Anche se no, la tabella Q viene prima e questo metodo viene dopo. MLP, d'altra parte, è uno strumento molto... strumento molto specifico per il forex. Penso addirittura che sia uno strumento dirompente.



F orester #:


Il vostro problema è facilmente risolvibile: dividete ogni caratteristica nel numero richiesto di intervalli (3,5,10,50...) e inviateli come caratteristiche separate. Ogni intervallo sarà regolato individualmente con i suoi coefficienti.
Se avete un graal nascosto nel terzo superiore, sarà trovato da questa scheda individuale.

Credo che sia più o meno quello che ho fatto io.
 
Maxim Kuznetsov #:

Qualcuno ha avuto fortuna con NN e DL? Qualcuno qui...

---

tranne che per i grafici in python e per i test di montaggio:-) Almeno "EA trades on demo and plus".

---

oppure c'è la sensazione che questo sia un ramo morto dell'evoluzione e che tutta la produzione di mashobuch e dei neuroni sia in pubblicità, spam e "mutual_sending".

Credo che i dubbi siano infondati. Non giudicate il progresso dai falsi pitoni del Graal e vedremo.

 
Ivan Butko #:

MLP, invece, è uno strumento molto... strumento molto specifico per il forex. Penso addirittura che sia distruttivo.

A guardarlo bene, direi che al contrario è il più adatto per il DEM. Tutto il resto è un puro adattamento a etichette immaginarie, che in realtà non significano nulla e sono frutto dell'immaginazione di approcci deterministici al clustering che non hanno nulla a che fare con il mercato reale.

[Eliminato]  
L'evoluzione dell'IA secondo il forum. Perceptron di Rosenblatt -> neurone di Reshetov -> neurone di Butko 😄

Reshetov è in anticipo sulla curva per ora. Ha persino scritto un software separato :)