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

[Eliminato]  
Ivan Butko #:



È obbligatorio che io descriva la teoria: lo scopo di NS è quello di filtrare i TS approssimativi che mostrano qualcosa.







E ho descritto l'approccio: cercare manualmente qualsiasi TS che mostri almeno un po' di risultati e filtrarli con NS. Ecco il TS originale.

Non adatto al trading, ma che mostra segni di vita .


Ed ecco lo stesso, solo filtrato da Python NS: LSTM-key.

Se non si vede nella vita reale, ma è stato preso dal tester, è comunque overfit.

 




Ed ecco come si comporta la convoluzione (CNN) Backtest del semplice TC originale: 2000-2021



Il suo forward è



Metodo di lavoro: - cerchiamo un TS, lo controlliamo sul forward: dovrebbe almeno non prosciugarsi.


V alutare soggettivamente il suo lavoro - prima di aprire una posizione, registriamo le informazioni dal grafico (sperimentalmente - qualsiasi) - nel set di input (io l'ho fatto con uno script) - registriamo il risultato dell'operazione nel target per il set di input precedentemente registrato - passiamo attraverso l'intero periodo di formazione.



- aggiungiamo "if (.... && out > Open_level)" alla condizione di apertura della posizione - ottimizziamo in MT5: ruotiamo il relè di soglia (l'unico parametro da ottimizzare nell'ottimizzatore del tester MT5) - scegliamo il set che preferiamo, ad esempio qui sotto - lo stesso grafico del primo sopra, ma "filtrato" dal NS.



- controllare l'anticipo 2021-2025





Per un confronto BiLSTM ( tentativo precedente).




C ome input: 1000 (!) prezzi normalizzati (continuo a sognare l'idea di formulare e progettare un contesto di mercato per NS. E la prima cosa che dovrebbe contenere: molte unità di informazione.




)Questo era un metodo semplice per sfruttare NS fino a quando non abbiamo capito come insegnargli a cercare i TC da solo. Immagino che dovremo tuffarci nella sezione MOE sull'apprendimento senza insegnante, sul datamining e così via.




La verità è sepolta lì da qualche parte. Note su NS: la riqualificazione è il 99% del lavoro. Cioè, per arrivare a questo risultato (sopra), si è dovuto stare seduti per mezza giornata a configurare l'architettura. Non c'è un bastone di voshleb sulle impostazioni degli iperparametri.

E ci sono decine e centinaia di modi per "aggiustare" qualcosa, non si può imparare tutto, ma nel processo di selezione si capisce o si sente il vettore della direzione del pensiero.




Al momento, guardando indietro a tutti i molti anni di sforzi con queste reti, una cosa posso dire con certezza: non ci sono abbastanza funzionalità per la selezione dei modelli. 1) Inizializzare i pesi in modo casuale.





Ok. 2) Si avvia l'addestramento e qui c'è la parte più interessante: 3)Ogni set di pesi dovrebbe essere controllato sull'avanzamento in base a criteri definiti dall'utente: per esempio, in base al fattore di recupero. 4) Non appena l'avanzamento è migliorato, si salva automaticamente il modello con il grafico del profitto visualizzato sullo schermo.

T utti i grafici salvati dovrebbero essere visibili e scrollabili, in modo che l'utente possa visualizzare i progressi in parallelo. 5) All'iterazione successiva, se il modello è peggiorato (è iniziato l'apprendimento eccessivo o semplicemente un set di pesi non riuscito) - torniamo al modello precedente e cambiamo il tasso di apprendimento.

Continuiamo finché i tassi di apprendimento non migliorano. 6) Se i tassi di apprendimento non migliorano o l'utente non gradisce il vettore di avanzamento dei risultati dell'apprendimento, interrompiamo l'addestramento e lo ricominciamo con una nuova inizializzazione dei pesi.

7) Modifichiamo questo processo di base con funzionalità aggiuntive su richiesta: ad esempio, introduciamo l'aggiunta automatica di neuroni ai nuovi livelli di addestramento, cambiamo le funzioni di attivazione o di perdita, le funzioni di ottimizzazione (Adam to BFG+momentum e altre) e così via.







In altre parole, creiamo un motore di ricerca di massima utilità per trovare un modello funzionante. E non facciamo tutto a mano. Lo spazio dei pesi è una mappa dello spazio in cui esiste un numero infinito di punti bianchi.

Con ogni nuovo peso il numero di possibili combinazioni di risultati della moltiplicazione sulle stesse infinite combinazioni di numeri in ingresso supera il segno del numero di stelle nel cielo. Ogni inizializzazione è un punto di questa mappa, un punto di dimensioni infinitamente piccole. L'apprendimento è una corsa verso i punti vicini. Se un determinato gruppo di punti è molto lontano dal punto "grandine", è meglio eliminarlo immediatamente e ricominciare l'apprendimento. Una nuova inizializzazione delle scale è un altro punto casuale su questa enorme mappa.

Una formula (metodo) ideale per trovare l'insieme necessario per NS (analizzando in qualche modo questa mappa) è qualcosa che proviene dalla sezione narrativa.

E come spunto di riflessione, come risolvere o aggirare queste limitazioni quantitative. E la costante reinizializzazione con un nuovo inizio di addestramento è almeno il metodo più semplice e accessibile per avvicinarsi alla migliore configurazione della rete neurale.

 
Ivan Butko #:

Al momento, guardando indietro a tutti gli anni di sforzi con queste reti, una cosa posso dire con certezza: non c'è abbastanza funzionalità per la selezione del modello.

Ebbene sì, questa è la fase successiva del problema: la deriva dei dati e il criterio di arresto TC.

 
Maxim Dmitrievsky #:

Normalizzazioni L1, L2. (regolarizzazioni) sono descritte. Di solito sono già incorporate nel modus operandi.



Le normalizzazioni L1/L2 possono sopprimere modelli deboli ma statisticamente significativi.Non è diverso dall'assegnare senza motivo vecchi valori di potenza casuali a nuovi valori di potenza casuali (purché ci sia qualcosa da riassumere a ns-ka).
 
Aleksey Vyazmikin #:

Ebbene sì, questa è la fase successiva del problema: la deriva dei dati e il criterio di arresto del TC.



Se raggiungiamo un risultato che garantisce il funzionamento del modello (gruppo di modelli) addestrato per i prossimi +-~N periodi, il problema sarà risolto semplicemente con un arresto anticipato e un addestramento aggiuntivo. In altre parole, la soluzione del problema primario risolverà essenzialmente anche quello secondario.
 
Il metodo matematico funziona solo in questo caso, ovvero filtrare i valori in ingresso in base alla priorità senza modificare i valori e il loro numero.Dovrebbero essere due modelli sincroni, uno è un filtro e l'altro è un predittore.Il fatto che si inseguano all'infinito questi rumori non servirà mai a nulla.È necessario combinare tutto il possibile e anche di più in questo metodo.Non ho idea di come metterlo insieme in un'implementazione corretta, ma il fatto che le informazioni siano accurate è fuori discussione.Se ci credete o meno dipende da voi.
 
Рaра Нoth #:
Il metodo matematico funziona solo in questo caso, ovvero filtrare i valori in ingresso in base alla priorità senza modificare i valori e il loro numero.Dovrebbero essere due modelli sincroni, uno è un filtro e l'altro è un predittore.Il fatto che si inseguano all'infinito questi rumori non servirà mai a nulla.È necessario combinare tutto il possibile e anche di più in questo metodo.Non ho idea di come metterlo insieme in un'implementazione corretta, ma il fatto che le informazioni siano accurate è fuori discussione.Se ci credete o meno dipende da voi.
Espandere il pensiero.

Non capisco nulla.
 
Ivan Butko #:
Espandere il pensiero.

Nulla è chiaro
Un modello divide i valori di ingresso in base alla priorità, il secondo modello fa una previsione solo su questi valori prioritari del primo modello.Il punto è che gli ingressi sono divisi in armoniche e tutto il rumore viene rimosso da essi, e il resto è soggetto a un addestramento accurato, poiché non ha rumore.In qualsiasi dato, il rumore non è sempre costante, quindi le reti neurali standard non funzioneranno mai in questo caso.Come insegnare questi modelli correttamente e cosa insegnare esattamente, non ne ho idea, so che la struttura di propagazione diretta in due strati, senza alcuna stranezza, è abbastanza.
[Eliminato]  
L'input di una rete neurale deve essere costituito da dati ben preelaborati e strutturati, pertinenti al compito. La scalatura delle caratteristiche, la normalizzazione e la codifica delle variabili categoriali contribuiscono a migliorare le prestazioni. La scelta di caratteristiche significative, la rimozione del rumore e la coerenza del formato dei dati sono fondamentali per addestrare un modello di rete neurale efficiente e accurato.
[Eliminato]  
Рaра Нoth #:
Il metodo matematico funziona solo in questo caso, cioè filtrare i valori in ingresso in base alla priorità senza cambiare i valori e il loro numero.Dovrebbero essere due modelli sincroni, uno è un filtro e l'altro è un predittore.Il fatto che si inseguano all'infinito questi rumori non servirà mai a nulla.Si dovrebbe combinare tutto ciò che è possibile e di più in questo metodo.Non hoidea di come metterlo insieme in una vera e propria implementazione, ma il fatto che l'informazione sia accurata non è nemmeno in discussione.Dipende da voi se ci credete o no

L'idea è assolutamente sensata, ma le realizzazioni non sempre soddisfano il criterio di graalità :)

https://www.mql5.com/ru/articles/11147 - è arrivata una possibile implementazione