Reti neurali - pagina 13

 
Kazam:
Se vuoi una buona fonte di informazioni sulle HONN, prendi il libro "Artificial Higher Order Neural Networks for Economics and Business". È una nuova pubblicazione quindi ha ottime informazioni. Il prezzo è da urlo (180$) ma puoi trovarlo in pdf .

Questo è quello di cui parlavo, è buono. Ho fatto solo un po' di strada e mi ha già dato un sacco di idee. Attuarle, per me comunque, è un po' più complicato, sono un po' un neofita di questa roba di codifica...

Grazie per le raccomandazioni, darò un'occhiata e vedrò... Potrei essere fortunato e trovarne qualcuno nella biblioteca dell'università. Hanno appena costruito un nuovo edificio di intelligenza artificiale con una propria biblioteca, quindi potrebbe esserci qualcosa lì. Altrimenti lo scaricherò semplicemente...

Oh, ho diviso i miei dati di 10 anni in due parti, rispettivamente 2/3 e 1/3, ho addestrato la rete sui primi 2/3 (inclusa la divisione di quei 2/3 in pezzi di allenamento, test e CV) e poi ho testato la rete risultante sul restante 1/3 e sembra rimanere accurata. C'è stata una minima perdita di precisione, ma era ancora una linea di regressione di 0,9995. Potrebbe ancora essere spiegato da un over-fitting sui dati di allenamento precedenti?

 
Kazam:

- "Gen Expression Programming" - di Candida Ferreira.

La Candida Ferreira non è il batterio che causa il mughetto?

 

surfeur

Non faccio trading sul Forex usando ENN. Potrei iniziare presto, ma probabilmente userò sistemi per la classificazione /sistemi che decidono quando fare trade long/short/ piuttosto che cercare di prevedere il prezzo - il Forex è troppo volatile.

Per ora sto usando ENN e algoritmi genetici /e alcune altre cose come la logica fuzzy, la teoria degli insiemi grezzi ecc./ per la gestione del portafoglio /predicendo i tassi di interesse a lungo termine allo scopo di negoziare i T-bills ecc./.

I risultati sono abbastanza buoni. Saranno migliori quando tutto sarà migliore e più stabile dopo la fine della crisi finanziaria.

mrwobbles

Ai fini del trading sul Forex non guardate le misure dell'errore, ma piuttosto controllate se le previsioni mostrano la stessa direzione del movimento dei prezzi come l'output desiderato. Cosa voglio dire - se NN mostra che il prossimo prezzo chiuderà più in alto di quello attuale, allora dovresti aspettarti che il prezzo si muova almeno x pip sopra il suo livello di apertura. Prevedere l'esatto livello di prezzo è quasi impossibile per time frame come H1 o H4.

Il piccolo errore che si ottiene ora è causato dal metodo sbagliato della sua misurazione.

E hai ragione - c'è un genere di lieviti chiamato Candida

 

Ho provato a predire la chiusura e lo spread aperto-chiuso perché penso che tu abbia ragione nel prevedere la chiusura esatta sarebbe quasi impossibile. Ma penso che una rete adatta con neuroni e pesi geneticamente ottimizzati sarebbe in grado di farlo entro i 5 pip se le fornissi i giusti input. Hai considerato l'uso delle mappe auto-organizzanti di Kohonen (SOM) per prevedere più avanti nel futuro di t+1? La mia comprensione è che le reti Kohonen possono prendere la previsione per t+1 e poi usare quel valore per prevedere tutti i valori fino a t+10, ma potrei sbagliarmi. Questo sarebbe utile, anche se tutti gli esempi che ho visto sono stati meno accurati di quello che sto cercando.

 

Per lo scopo di predire le serie temporali del Forex, dimenticate le SOM. Le ENN sono molto meglio.

Se vuoi prevedere i passi su t+1 /t+2, t+3 ecc./ usa semplicemente un diverso time frame. Per esempio, se volete prevedere il trend per la prossima settimana, usate il time frame W1. Non prevedere t+n sulla base di t+n-1 /perché i tassi di cambio del Forex sono caotici e non lineari/. Potete anche addestrare una rete per prevedere t+1, una seconda per prevedere t+2 /usando gli stessi dati/ e così via.

Un'ottima idea è costruire sistemi ibridi. In parole povere - prendete 5-6 reti neurali migliori e combinate i loro output /per questo potete usare la media semplice [(out1+out2+...+outN)/N)], GEM, LWPR [LWPR è la scelta migliore IMO] ecc./

 

Questo è fondamentalmente quello che ho pensato, ho visto alcune previsioni da SOMs e potrebbero aver azzeccato la tendenza su un periodo di diciamo 20 passi, ma erano molto lontani nel percorso effettivo che il prezzo ha preso. Penso che usare l'ottimizzazione genetica sia la strada da seguire, dato che la NN è stata progettata per imitare i sistemi biologici, sembra logico che l'aggiunta di qualche forma di processo evolutivo aumenterà la precisione.

Non sono sicuro di questi risultati, ho fatto uno zoom per controllare se la direzione è corretta e sembra che la ottenga più spesso che no. Ci sono un paio di risultati anomali (uno in cui è fuori di 400 pips = S) ma per la maggior parte ottiene la direzione giusta. L'immagine mostra le previsioni (verde) contro gli obiettivi (blu) per la chiusura, il massimo e il minimo. Ho letto molto su ANNs ma questo è il mio primo tentativo di costruirli quindi non so esattamente cosa sto cercando oltre all'ovvio.

File:
gbpjpy60-3.jpg  67 kb
 

ciao

Lo posterò di nuovo: diversi anni fa ho scritto una tesi riguardante la logica fuzzy + Rete Neurale con Back Propagation per prevedere il deposito di petrolio in un processo di registrazione del pozzo e il risultato è buono, quindi penso che la logica fuzzy con NN back propagation può essere implementata per prevedere la tendenza in questo business ma ha bisogno di più dati da addestrare per ottenere un risultato migliore, ho usato 9 nodi per prevedere il modello di rocce, non so quanti nodi per riconoscere un modello forex.

===================

Collezione di indicatori Forex

 
prasxz:
Lo posterò di nuovo: diversi anni fa ho scritto una tesi riguardante la logica fuzzy + Rete Neurale con Back Propagation per prevedere il deposito di petrolio in un processo di registrazione del pozzo e il risultato è buono, quindi penso che la logica fuzzy con NN back propagation possa essere implementata per prevedere la tendenza in questo business ma ha bisogno di più dati da addestrare per ottenere un risultato migliore, ho usato 9 nodi per prevedere il modello di rocce, non so quanti nodi per riconoscere un modello forex.

===================

Collezione di indicatori Forex

Ho letto che dipende in gran parte dal numero di ingressi che stai dando alla rete. Sto dando 32 input e voglio 3 output, quindi inizierei con (32-3)/2=14.5 quindi diciamo 14 neuroni e poi lavorerei da lì. Il modello che ho costruito usa 13 nodi, e stranamente diminuire i nodi ha aumentato sia la precisione che il tempo di convergenza che è diminuito dopo un certo punto. Applicare un algoritmo genetico al problema per creare una ENN, come diceva Kazam, dovrebbe permettere alla rete di scegliere la rete più ottimale in uno spazio campione di tutte le possibili reti che producono risultati accurati. Questo se ho capito quello che ho letto su di loro. Anche se immagino che questo aumenterebbe significativamente il tempo necessario per costruire la rete.

 

prasxz

Le reti neurali fuzzy e i sistemi neurali ibridi fuzzy potrebbero essere una scelta molto buona quando si costruiscono sistemi di trading. Potrebbero essere meno utili per la previsione di serie temporali caotiche.

mrwobbles

Quei grafici mostrano i dati di allenamento /desiderati vs previsti/?

Scegliere un numero adeguato di nodi è molto molto difficile. La formula che hai presentato è inutile /ma è molto popolare/ - non c'è un modo deterministico di scegliere un'architettura NN ottimale, o quasi ottimale.

Gli algoritmi genetici superano questo problema. Si fornisce un GA con due gruppi - uno con simboli terminali /ingressi, costanti ecc./ e l'altro con funzioni /nodi con diverse funzioni di attivazione, funzioni trigonometriche ecc./, e l'algoritmo "costruisce" NN usando i membri di questi gruppi. In questo modo si può ottenere una NN che ha 3 nodi e 5 ingressi o una NN che ha 30 nodi e 50 ingressi. Più generazioni aspettate e migliori NN otterrete / leggete il teorema dello schema di Holland se volete sapere perché succede così

http://en.wikipedia.org/wiki/Holland%27s_schema_theorem

/.

 
Kazam:

mrwobbles

Quei grafici mostrano i dati di allenamento /desiderati vs previsti/?

Scegliere un numero adeguato di nodi è molto molto difficile. La formula che hai presentato è inutile /ma è molto popolare/ - non esiste un modo deterministico di scegliere un'architettura NN ottimale, o quasi ottimale.

Gli algoritmi genetici superano questo problema. Si fornisce un GA con due gruppi - uno con simboli terminali /ingressi, costanti ecc./ e l'altro con funzioni /nodi con diverse funzioni di attivazione, funzioni trigonometriche ecc./, e l'algoritmo "costruisce" NN usando i membri di questi gruppi. In questo modo si può ottenere una NN che ha 3 nodi e 5 ingressi o una NN che ha 30 nodi e 50 ingressi. Più generazioni aspettate e migliori NN otterrete / leggete il teorema dello schema di Holland se volete sapere perché succede così

http://en.wikipedia.org/wiki/Holland%27s_schema_theorem
/.

Sì, allenamento vs previsione. Ho costruito una nuova rete con i primi 6-7 anni di dati usati per addestrare, testare e convalidare. Ho poi alimentato i restanti 3 anni di dati come test senza apprendimento, l'idea è quella di imitare un test dal vivo. La linea di regressione di allenamento aveva una pendenza di 0,99995 e quando l'ho alimentata con circa 3 anni di dati non visti in precedenza è scesa a 0,9995. Non sono sicuro di come interpretarlo. Sembra un po' troppo preciso per qualcosa che ho messo insieme in meno di un'ora.

Sì, mi sono imbattuto in quella formula in un libro di introduzione alle reti neurali che ho trovato in biblioteca. Ha coperto le basi e per me è stata una buona introduzione al mondo delle reti neurali. Per qualcuno che sta iniziando è un buon posto come qualsiasi altro per iniziare prima di affrontare concetti più difficili come gli algoritmi genetici.

Se ho capito bene, si tratta di generare una, all'inizio, popolazione casuale di programmi (pesi di ingresso, strati nascosti, neuroni, ecc.) che potrebbero risolvere il problema e poi usare programmi genitori ottimali per allevare una nuova generazione di programmi che si spera siano migliori dell'ultima. Sicuramente se si genera la prima popolazione a caso non c'è la possibilità di generare una popolazione in cui nessun programma risolve il problema? O l'idea è quella di iniziare con una popolazione che non risolve il problema e poi evolverne una che lo fa? Sicuramente questo comporterebbe un sacco di calcoli? Più di quanto, per esempio, un desktop medio possa gestire? Immagino che sarebbe necessaria un'elaborazione parallela della scheda grafica o meglio ancora un sistema massicciamente parallelo. Detto questo, tuttavia, sembra il miglior approccio per selezionare la soluzione più ottimale.

Non sarebbe meglio iniziare con una popolazione di diciamo 12 reti create dall'addestramento usando metodi esistenti e poi usare quell'insieme di programmi per produrre figli l'uno con l'altro? Si potrebbe poi creare una struttura ad albero genealogico, usando i metodi che hai suggerito per evolvere una popolazione migliore, potando la prole non riuscita e selezionando i 12 programmi più ottimali per essere i genitori della prossima generazione? L'idea è quella di iniziare con una popolazione che si sa che risolve il problema e poi evolvere un programma più efficiente dalla prole risultante.