L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 521

 
Grigoriy Chaunin:

Leggi le funzioni di attivazione dei neuroni. Potete fornire qualsiasi valore all'uscita, ma la funzione di attivazione sbagliata produrrà valori negativi. Questa è di solito una tangente iperbolica. La funzione di perdita softmax non funzionerà correttamente con essa. Anche se molto dipende dalla libreria e dall'implementazione della funzione di perdita. Per esempio in Tensorflow i neuroni di uscita per la funzione di perdita softmax non dovrebbero avere alcuna funzione di attivazione. E per un uso corretto della rete addestrata dovremmo aggiungere l'attivazione softmax.Non ho lavorato conALGLIB, forse hanno sbagliato qualcosa. In ogni caso, una rete addestrata con softmax non dovrebbe dare valori negativi.

Softmax non è una funzione di perdita. Siete confusi su qualcosa. Softmax è una funzione di attivazione dello strato di uscita per compiti di classificazione. Non confondere l'uomo, si confonderà da solo.

Utilizzate Alglib a vostro rischio e pericolo. Fate tutto in Rstudio.

Buona fortuna

 
Ildottor Trader:

Questo è il caso quando una delle classi ha un numero molto grande di esempi di allenamento rispetto alle altre classi. Per esempio 2000 esempi di allenamento per comprare e solo 1000 per vendere. Il neurone può sempre restituire "Buy" e in questo caso avrà ragione il 66% delle volte. È meglio rendere uguale il numero di esempi di allenamento di ogni classe.

Classe NA - prevarrà, dal 50% nel commercio frequente, al 99% nel commercio raro. Ma l'ho presa al 3° posto e ho la classe 1 della NA incastrata.

Mi chiedo perché gli articoli non usano esempi di allenamento per i momenti in cui non c'è niente da fare? Perché non fare nulla nei momenti giusti è anche importante, di solito quei momenti sono quando il commercio porterà ad una perdita.
Senza imparare a mettere in pausa, NS potrebbe iniziare a fare trading e perdere il deposito.

 
Vladimir Perervenko:

Softmax non è una funzione di perdita. Siete confusi su qualcosa. Softmax è una funzione di attivazione dello strato di uscita per compiti di classificazione. Non confondere l'uomo, si confonderà da solo.

Utilizzate Alglib a vostro rischio e pericolo. Fate tutto in Rstudio.

Buona fortuna


Per essere precisi, la funzione di perdita si chiama softmax crossentropy. Sì, non sono stato chiaro.

 
Vladimir Perervenko:

Softmax non è una funzione di perdita. Siete confusi su qualcosa. Softmax è una funzione di attivazione dello strato di uscita per compiti di classificazione. Non confondere l'uomo, si confonderà da solo.

Utilizzate Alglib a vostro rischio e pericolo. Fate tutto in Rstudio.

Buona fortuna

Molto probabilmente userò il binding R dopo il vostro prossimo articolo (dove ci sarà un collegamento con il terminale).
 

A proposito, è interessante che dall'esempio di cui sopra

Comprare Vendere NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189

La somma di ogni riga è 1. (i primi 4 controllati). Cioè qualche analogia con softmax, dove la somma (cioè la probabilità) è anche = 1. Ma questo è stato fatto da NS - regressione con uscita lineare.

 
elibrario:

Classe NA - prevarrà, dal 50% nel trading frequente, al 99% nel trading infrequente.

È molto pericoloso distribuire le classi a un insegnante a caso, come prendere qualche indicatore per creare classi di insegnanti e poi sostituire alcuni dei valori con NA.

Anche se ci sono buoni predittori e buone classi da insegnare e il modello mantiene buoni risultati sui nuovi dati - qualsiasi tentativo di modificare i valori delle classi può rompere completamente il modello. Trovare degli indicatori per i predittori e un indicatore per le classi che mantenga il modello redditizio sui nuovi dati è un grande successo.

Raccomanderei di prendere due semplici classi per cominciare - il colore della prossima barra (cioè comprare/vendere). Prendi almeno 10000 esempi di allenamento (barra della storia), addestra il modello e valuta il risultato sulle successive 10000 barre della storia (che erano sconosciute al modello durante l'allenamento). Quando riusciamo a trovare predittori che manterranno la precisione del modello allo stesso livello su dati vecchi e nuovi - si può iniziare a selezionare un indicatore per le classi di un insegnante. E si scoprirà che il modello non manterrà la precisione sui nuovi dati solo prendendo il primo indicatore disponibile. Perché alcuni indicatori possono servire per un insegnante e altri no - non lo so.

 
elibrario:

C'è qualcosa di sbagliato nella versione SOFTMAX di NS su ALGLIB. Tutte le risposte sono sbilanciate verso la prima uscita (per me è BUY).
Sugli stessi dati NS - la regressione con 3 uscite (con attivazione lineare) dà risultati più affidabili:

Comprare Vendere NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189

in >0,5 darà risposte plausibili.

Lesa, tra l'altro, ha anche sbandato sulla prima uscita.


Hai impostato la somma delle 2 uscite su uno? Non lo so, per me ha funzionato bene, senza sbandamenti. Mi è piaciuto il Softmax.

E sì, come ricordo per softmax ho razionato gli ingressi da 0 a 1

Le foreste in generale funzionano sempre chiaramente per la regressione e la classificazione. A volte ottengo segnali solo per comprare o vendere, ma poi ho scavato il campione di allenamento e c'era un po' di asimmetria negli esempi, quindi non c'è da meravigliarsi (perché si riaddestrano a certi intervalli e non so in anticipo cosa può apparire nel campione). Inoltre, non dimenticare che l'impalcatura non può estrapolare. Bisogna insegnare tutti i futuri valori conosciuti.

 

A proposito, non sembra nemmeno necessario:

Pre-elaborazione dei dati

Per migliorare la velocità di convergenza e la qualità delle soluzioni, ALGLIB implementa il preprocessing dei dati (standardizzazione del set di allenamento). La pre-elaborazione è implicitamente eseguita per l'utente - prima che i dati siano trasferiti alla rete neurale, sono automaticamente pre-elaborati, il risultato della rete è back-transformed.

 

Ecco un controllo NS sulla tabella di moltiplicazione

Ho fatto lo stesso per le impalcature e funziona bene

Библиотеки: ALGLIB - библиотека численного анализа
Библиотеки: ALGLIB - библиотека численного анализа
  • 2012.10.12
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: ALGLIB - библиотека численного анализа
 
Maxim Dmitrievsky:

Hai impostato la somma delle 2 uscite su uno? Non lo so, per me ha funzionato bene, senza sbandamenti. Mi è piaciuto il Softmax.

E sì, per quanto mi ricordo per softmax ho razionato gli ingressi da 0 a 1

Le foreste in generale funzionano sempre chiaramente per la regressione e la classificazione. A volte ottengo situazioni in cui si aprono solo per comprare o per vendere, ma poi ho scavato il campione di allenamento e sì, c'era uno skew negli esempi, quindi nessuna meraviglia (perché si riaddestrano a certi intervalli e non so in anticipo cosa può apparire nel campione). Inoltre, non dimenticare che l'impalcatura non può estrapolare. È necessario allenare tutti i valori conosciuti in futuro.

Ho la somma di 3 uscite =1, o meglio non la somma, ma solo 1 delle uscite =1, il resto =0.
Non ho normalizzato gli ingressi, avete confermato qui sotto che non è necessario. Ho controllato la tabella di moltiplicazione (ma non è un softmax).
Se softmax ha funzionato per te - proverò a farlo girare ancora un po', forse funzionerà (anche se su assolutamente gli stessi dati la regressione con uscite lin. funziona come dovrebbe).