Come formare correttamente i valori di input per il NS. - pagina 10

 
TheXpert писал (а) >>

Non importa, scusate se mi sbaglio.

Cercherò di spiegare più dettagliatamente cos'è questo controllo incrociato, se questo post non è chiaro. Supponiamo di addestrare una rete per un errore minimo. Supponiamo di averla provata sul 2007 e di aver ottenuto il risultato intermedio 0,5. La controlliamo sul 2008 e otteniamo 0,8. Questa rete è memorizzata e continuiamo l'allenamento. Poi abbiamo ottenuto 0,4 per il 2007 e l'abbiamo controllato con 0,7 per il 2008. Le vecchie reti vengono scartate, e noi memorizziamo questa rete e la seguiamo con l'allenamento. Poi abbiamo 0,3 per il 2007 e 0,6 per il 2008. La vecchia rete viene scartata e ricordare questa rete e continuare l'allenamento. Per il 2007 - 0,2, per il 2008 - 0,8. Questa rete non viene memorizzata, quella precedente viene conservata. Sarà tenuto in memoria e addestrato ulteriormente. Se non siamo riusciti a portarlo sotto lo 0,6 nel 2008, teniamo la rete con 0,6 nel 2008 e 0,3 nel 2007, e non quella con 0,2 o meno nel 2007. In effetti, un ulteriore addestramento della rete è un sovrallenamento. Questo evita il sovrallenamento, anche se non sempre lo salva.

E come potete vedere, i test in avanti non hanno nulla a che fare con questo......)))))

 
TheXpert писал (а) >>

...

E riguardo al codice -- Neurosolutions o Neuroshel 2 porteranno il codice a MQL4? Scriverò un paio di funzioni, che penso saranno utili per gli abitanti qui, e forse anche per me. Una ragione in più per scrivere un centinaio di righe di codice - mi ci vorrà un'ora.

No. Attraverso l'importazione di dll/def o la riscrittura da "c".

Scriverò un paio di funzioni, che penso saranno utili per gli abitanti qui, e forse anche per me. Una ragione in più per scrivere cento righe di codice - è un'ora di tempo.

Soprattutto, se saranno dedicati a "1. Preparazione dei dati di input. (spostamento medio, decorrelazione, equalizzazione della covarianza).", poi molto cool, e se ... un'altra implementazione di NS in MQL4, quindi ...

Io, per esempio, non sono mai riuscito a capire come implementare nel codice le belle parole "significatività degli input", "correlazione incrociata degli input" (nessun Ezhov è a disposizione per inserire altre belle parole). Cioè formule/algoritmi che conosco, ma a OHLC, rumore o viceversa filtri DC, e solo "valori discreti" quando i minuti sono divertenti e i giorni sono in ritardo. :)

 
SergNF писал (а) >>

No. Attraverso l'importazione di dll/def o la riscrittura da "s".

Soprattutto se saranno dedicati a "1. Preparazione dei dati di input. (spostamenti medi, decorrelazione, equalizzazione della covarianza).",

>> Proprio così.

Io non sono mai riuscito a capire come implementare le belle parole "significatività degli input", "correlazione incrociata degli input" nel codice (nessun Ezhov a portata di mano per inserire altre belle parole). Cioè formule/algoritmi che conosco, ma a OHLC, rumore o viceversa filtri DC, e solo "valori discreti" quando i minuti sono divertenti e i giorni sono in ritardo. :)

Qual è il problema? Alle formule non importa se danno dati al minuto o settimanali.

 
LeoV писал (а) >>

Cercherò di spiegare più dettagliatamente cos'è questo controllo incrociato, se questo post non è chiaro. Supponiamo di addestrare una rete per un errore minimo. Supponiamo di averla provata sul 2007 e di aver ottenuto il risultato intermedio 0,5. La controlliamo sul 2008 e otteniamo 0,8. Questa rete è memorizzata e continuiamo l'allenamento. Poi abbiamo ottenuto 0,4 per il 2007 e l'abbiamo controllato con 0,7 per il 2008. Le vecchie reti vengono scartate, e noi memorizziamo questa rete e la seguiamo con l'allenamento. Poi abbiamo 0,3 per il 2007 e 0,6 per il 2008. La vecchia rete viene scartata e ricordare questa rete e continuare l'allenamento. Per il 2007 - 0,2, per il 2008 - 0,8. Questa rete non viene memorizzata, quella precedente viene conservata. Sarà tenuto in memoria e addestrato ulteriormente. Se non siamo riusciti a portarlo sotto lo 0,6 nel 2008, teniamo la rete con 0,6 nel 2008 e 0,3 nel 2007, e non quella con 0,2 o meno nel 2007. In effetti, un ulteriore addestramento della rete è un sovrallenamento. Questo evita il sovrallenamento, anche se non sempre lo salva.

E come potete vedere, i test in avanti non hanno nulla a che fare con questo......)))))

In altre parole, l'addestramento/ottimizzazione termina non quando l'errore è minimo sul campione di addestramento, ma prima che l'errore inizi ad aumentare sul campione di prova.

 
Erics писал (а) >>

In altre parole, l'addestramento/ottimizzazione termina non quando l'errore è minimo nel campione di addestramento, ma prima che l'errore inizi ad aumentare nel campione di prova.

Quindi fondamentalmente sì. Perché la teoria dice che la grandezza dell'errore sul campione di prova prima diminuisce quando l'errore sul campione di allenamento diminuisce, e poi comincia ad aumentare, anche se l'errore sul campione di allenamento continua a diminuire. Il trucco è quello di catturare questo trogolo. Questo è il punto di sovrallenamento (per le reti) o di sovra-ottimizzazione (per TC).

 
LeoV писал (а) >>

Beh, sì. Perché la teoria è che l'errore sul campione di prova prima diminuisce quando l'errore sul campione di allenamento diminuisce, e poi inizia ad aumentare, anche se l'errore sul campione di allenamento continua a diminuire. Il trucco è quello di catturare questo trogolo. Questo è il punto di sovrallenamento (per le reti) o di sovraottimizzazione (per TC).

 
sergeev писал (а) >>

Assolutamente giusto. C'è solo un piccolo punto da fare. Quando la curva sale, ci possono essere dei minimi, ma dovrebbero essere più alti del primo minimo (in teoria). Anche se a volte può essere inferiore (in pratica), ma è raro.

 

Ed ecco una foto sul sovrallenamento

 
LeoV писал (а) >>

Assolutamente giusto. C'è solo un piccolo punto da fare. Quando la curva sale, ci possono essere dei minimi, ma dovrebbero essere più alti del primo minimo (in teoria). Anche se a volte può essere inferiore (in pratica), ma è raro.

Buon punto.

In generale, la teoria in questo thread ha già detto molto (si può difendere una tesi sul nostro forum :).

E la mente è ora assetata di esperienze pratiche e di conoscenza.

Se possibile, lasciate che i professionisti condividano la loro esperienza nell'analisi e nella preparazione dei valori di input . Sono esempi concreti.

>> Grazie.

 
sergeev писал (а) >> Se possibile, lasciate che i professionisti condividano la loro esperienza nell'analisi e nella preparazione degli input . Cioè, esempi concreti.

Anche i valori di ingresso non sono una questione semplice. Cosa fornire all'ingresso della rete dipende da molti fattori -

1. Che tipo di rete neurale viene utilizzata.

2. Cosa vogliamo ottenere dalla rete neurale - prezzo o direzione del movimento o punti di inversione o la prossima candela o qualcos'altro.

Quindi bisogna prima decidere su queste domande, e poi decidere sugli input.