L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 521
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
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
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.
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.
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
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.
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.
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
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.
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).