Discussione sull’articolo "Reti neurali di terza generazione: Reti profonde" - pagina 14

 
Rashid Umarov:
Inserire il codice correttamente, per favore. L'ho sistemato
Grazie. Non avevo capito subito che pulsante fosse.
 
Vladimir Perervenko:

Buon pomeriggio.

Di quale sceneggiatura stiamo parlando?

Potrebbe descrivere un po' più dettagliatamente il contenuto dello script?

Mi sembra di capire che è riuscito a eseguire lo script con il processo R nel tester?

Se è così, è interessante.

Per favore, prenditi il tempo necessario e descrivilo nel modo più dettagliato possibile. Il processo R viene eseguito in un bundle client-server o in un singolo Rterm?

Sì, viene eseguito in un bundle client-server.

Come posso spiegarlo nel modo più semplice possibile?

Ho preso il codice della funzione OnTimer() in una funzione comune per OnTick() e OnTimer(). L'unica cosa che ho aggiunto è un interruttore di modalità personalizzato e un contatore di tick.

Tutte le altre procedure di avvio rimangono invariate. Più tardi implementerò la funzione nello script allegato al forum e lo pubblicherò.

PS: la documentazione di MQL4 dice che la funzione OnTimer() semplicemente non funziona nel tester.

 
kimkarus:

Sì, è un client-server.

Come posso spiegarlo nel modo più semplice possibile?

Ho preso il codice della funzione OnTimer() in una funzione comune per OnTick() e OnTimer(). L'unica cosa che ho aggiunto è un interruttore di modalità personalizzato e un contatore di tick.

Tutte le altre procedure di avvio rimangono invariate. Più tardi implementerò la funzione nello script allegato al forum e lo pubblicherò.

PS: la documentazione di MQL4 dice che la funzione OnTimer() semplicemente non funziona nel tester.

Capisco OnTimer().

Hai fatto qualche altra mossa sulla connessione client-server?

Non sono ancora riuscito a farla funzionare. E non solo io, a giudicare dai post sul thread in lingua inglese.

Buona fortuna

 

Come promesso, ho allegato il SAE locale a MQL4 per lavorare nel tester della strategia.

i_SAE

e_SAE

Sostituire gli originali, ricompilare *.ex.

Avviare il tester, selezionare e_SAE, impostare Enable timer = false e Count ticks = 120 (per me era ottimale). Avviare.

Aggiungiamo la velocità, aspettiamo il messaggio magico "OPP = CLOSE...." sul lato sinistro e riduciamo la velocità. Successivamente, aggiungere i_SAE al grafico con Send to server = true. Aggiungere un po' di velocità. Attendiamo i risultati finali.

Il mio R era la versione 3.2.2. Assicuratevi di confrontare la vostra versione in entrambi i file!

Buona fortuna con i vostri esperimenti!

e_SAE

 
Avete trovato un modo per risolvere il problema con il socket del server?
 

Ciao, In allegato all'articolo, un esperto aggiornato.

In allegato all' articolo, un esperto aggiornato .

Uscite da lì.

Esci da lì.

Vladimir

 

Buon pomeriggio.

Questa è buona. Grazie.

Ora controlliamo come funziona nel tester e nei futuri esempi con R includerò questa funzione.

In allegato al nuovo articolo sul DNRBM c'è una versione ridisegnata di questo EA DNSAE con autoapprendimento, ma senza server.

Vi invito a testarla.

Buona fortuna

 
Ciao, ho visto che hai usato 11 indicatori di tipo oscilator per l'input, ho alcuni indicatori in Mt4 e non sono oscilator, come posso aggiungere o sostituire questi indicatori come nel tuo articolo

RBM impilato (DN_SRBM) https://www.mql5.com/it/articles/1628

Deep neural network with Stacked RBM. Self-training, self-control
Deep neural network with Stacked RBM. Self-training, self-control
  • 2016.04.26
  • Vladimir Perervenko
  • www.mql5.com
This article is a continuation of previous articles on deep neural network and predictor selection. Here we will cover features of a neural network initiated by Stacked RBM, and its implementation in the "darch" package.
 
Affascinante.

È interessante notare che se un essere umano è immerso in un compito, migliorerà
mentre se una macchina fa lo stesso potrebbe rimanere su un optimum locale.

Forse l'immersione algoritmica potrebbe evolvere da un paradigma di "Studio" a un paradigma di "Esecuzione".

Ottimo articolo.
 
Vladimir Perervenko:


Anche in questo caso abbiamo una fase proficua di circa 5 settimane fino al deterioramento del modello.

Questo è normale. Il modello può e deve essere periodicamente riappreso.

Ritengo che la suddivisione in dati di test e di allenamento non sia necessaria: possiamo utilizzare tutti i dati per l'allenamento.

Può. È importante ricordare alcuni punti importanti:
1. gli insiemi di allenamento e di test non devono essere incrociati.
2. Il set di addestramento deve essere misto

3. Se il rapporto tra le classi è in equilibrio , è necessario effettuare un aggiustamento.

Sono contento che ci siano colleghi che utilizzano R.

Cordiali saluti

Vladimir

Ciao,

per favore aiutatemi a chiarire alcuni miei pregiudizi negativi sulle reti neurali (NN).

  1. È corretto che si debbano prima ottimizzare gli indicatori da inserire nella NN?
  2. Poi si ottimizzano i parametri della NN?
  3. Oppure si ottimizzano contemporaneamente i parametri della NN e degli indicatori?
  4. Non è forse vero che più variabili si devono ottimizzare, maggiore è il rischio di un adattamento eccessivo?
  5. Se i set di dati per 1. e 2. sono uguali, questo non mi porterebbe a una sorta di adattamento eccessivo al set di dati?
  6. Non è forse questo che indica"Anche in questo caso abbiamo una fase di profitto di circa 5 settimane fino al deterioramento del modello"?
  7. a) Supponiamo di avere un gruppo di indicatori tutti insieme ottimizzati dal tester e ora
    b) eseguiamo una seconda ottimizzazione da parte del tester solo per verificare quali degli indicatori ottimizzati ci servono(*)
    c) in modo da avere un gruppo più piccolo di indicatori ottimizzati
    d) per cosa mi serve il NN?
  8. Conoscete una stima di quanto deve essere grande il set di dati per una NN a causa del numero di ingressi, strati e perceptron?


(*) Sfortunatamente, se si esegue l'ottimizzatore di mt4 in modalità genetica e si vuole provare a bypassare alcuni set di parametri (ad esempio, non testare se "indicator-A" è 'on') ritornando da OnInit() con"INIT_PARAMETERS_INCORRECT", l'algoritmo genetico conta ancora questo come un passaggio valido e ciò riduce il numero di passaggi effettivamente eseguiti prima che l'algoritmo si fermi a causa del numero di passaggi che è uno dei criteri di terminazione.