Utilizzo delle reti neurali nel trading. - pagina 3

 
StatBars писал(а) >>

Le immagini mostrano dati non normalizzati e da dati diversi, ho solo dato un esempio di quello che ho fatto (come appare come risultato)

Ed ecco lo script, puoi usarlo per vedere come sarà l'output (ma non essere troppo esigente riguardo ai dati di input - questo script è stato fatto solo per illustrare...)

//Tipo 0 - normalizzazione lineare, 1 - non lineare

StatBars, non ho lamentele!

Beh, funziona - ed è buono. Voglio solo chiarire che la procedura di normalizzazione non è la stessa cosa che lisciare la distribuzione e avete bisogno di un approccio più sofisticato. Ma, d'altra parte, abbiamo un valore di ingresso nell'intervallo finale +/-1 e sotto forma di uno scaffale - una delizia gustosa. Inoltre, quando si imbianca l'ingresso, si ottiene un senso estetico di piacere.

 
Neutron писал(а) >>

StatBars, non mi lamento!

Beh, funziona e va bene. Voglio solo chiarire che la procedura di normalizzazione non è uguale all'equalizzazione della distribuzione ed è necessario un approccio relativamente più complesso. Ma, d'altra parte, abbiamo un valore di ingresso nell'intervallo finale +/-1 e sotto forma di uno scaffale - una delizia gustosa. Inoltre, quando si imbianca l'ingresso, si ottiene un senso estetico di piacere.

)))

A proposito implementato un metodo descritto in un articolo, non ricordo esattamente dove l'ho letto ... In generale, utilizzando la funzione di distribuzione dell'area, la seconda immagine è proprio il lavoro di questo metodo.

Comunque, ecco un file con una semplice normalizzazione e allineamento di frequenza, non il miglior esempio, ma comunque...

Avete sbiancato gli ingressi? Ho solo un paio di domande...

File:
 

L'ho fatto.

Ma non esiste lo sbiancamento o lo sbiancamento. Si possono stupidamente alimentare due tergicristalli a due ingressi NS e puntare a sbiancarli... Questo è un caso (clinico), e si possono mettere i prezzi di apertura dei bar in una dozzina - questo è un altro, non c'è niente da sbiancare - tutto è bianco così com'è.

 
Ho letto il thread, è più informativo degli altri, ma oggi è il giorno delle buone azioni, quindi lo porterò al T-O-P-I-C-K-E... :-О)
 
Neutron >> :

Leonid, non c'è nessun problema di riqualificazione del NS - è dal non capire l'essenza di quello che sta succedendo dentro questa scatola con un bel nome e tre chiodi dentro. Non prendere un campione di allenamento più breve del minimo e non dovrai decidere in base al tuo istinto cosa è meglio e cosa è peggio!

Riguardo agli input "corretti" sono d'accordo con te al 100% che è la chiave del successo - tutto ciò che può essere risolto per NS-ku - deve essere risolto indipendentemente. Bisogna lasciare le cose che la soluzione non ha o che sono ingiustificatamente difficili. Per esempio, non ha alcun senso alimentare l'ingresso Zig-Zag. In questo caso il comportamento di NS è ovvio - imparerà ciò che si trova sulla superficie - la familiarità delle braccia ZZ, e l'uso di tali dati di input è zero.

Non ci sono input sbagliati. C'è un compito sbagliato.

 

Sul tema della normalizzazione. Non tutti i tipi di normalizzazione possono essere applicati nel contesto del compito in questione.

 
registred писал(а) >>

Non ci sono input sbagliati. C'è un compito sbagliato.

Perché no? C'è. Oltre al problema obiettivo (corretto), ci sono anche i dati con cui questo problema sarà risolto...

E riguardo alla normalizzazione - qualche spiegazione?

 
Una difficoltà sorge durante la normalizzazione: mentre tutti i neuroni sono uguali quando si descrive una rete neurale, ed è possibile descrivere un neurone una volta, dopo aver rimosso le connessioni staccate i neuroni di solito hanno una struttura diversa.
 
StatBars >> :

Perché no? C'è. Oltre al problema obiettivo (corretto), ci sono anche i dati con cui questo problema sarà risolto...

E riguardo alla normalizzazione - qualche spiegazione?

Beh, c'è la normalizzazione lineare e c'è la normalizzazione non lineare. Non lineare è sensibile alla varianza dei nuovi dati. Lineare è semplice e richiede meno passaggi di calcolo, ma per essa la non simmetria, per così dire, influenzerà la durata dell'allenamento. Con essa, la varianza può essere tutto ciò che vuole come risultato dell'allenamento, a determinate condizioni. Ma nell'addestramento stesso, una serie che non è stata normalizzata a media zero e varianza unitaria farà sì che la rete impari più a lungo che se tale normalizzazione è stata effettuata. Sulla prima domanda, la mia opinione personale è questa. Posso prendere il MA, posso prendere gli incrementi della serie. Non ci sarà alcuna differenza per me. L'essenza sarà che se dopo aver addestrato la rete, il risultato dell'addestramento dipende da ciò che scelgo (MA o semplicemente incrementi della serie), allora indicherà solo che il compito è stato impostato in modo sbagliato e la rete stava semplicemente imparando ciò che ho cercato di insegnarle. Cioè, esegue solo le azioni che gli ho insegnato. Ma per trovare delle regolarità, cioè per generalizzare, la rete non lo farà o non lo farà correttamente. Il punto è ridurre l'errore di generalizzazione del tipo di dati che sarebbero richiesti all'uscita della rete neurale. I dati di input possono essere incrementi di una serie temporale ma non necessariamente la sua versione lisciata sotto forma di MA o altro. Tutti scrivono che la serie deve essere smussata. Ma penso che non abbia importanza, dato che le regolarità oggettive nei dati sono salvate e la cosa principale è scegliere il numero necessario di incrementi nella tua serie.

 
registred писал(а) >>

Beh, c'è la normalizzazione lineare e c'è la normalizzazione non lineare. Non lineare è sensibile alla varianza dei nuovi dati. Lineare è semplice e richiede meno passaggi di calcolo, ma per essa la non simmetria, per così dire, influenzerà il tempo di apprendimento. Con essa, la varianza può essere tutto ciò che vuole come risultato dell'allenamento, a determinate condizioni. Ma nell'addestramento stesso, una serie che non è stata normalizzata a media zero e varianza unitaria farà sì che la rete impari più a lungo che se tale normalizzazione è stata effettuata. Sulla prima domanda, la mia opinione personale è questa. Posso prendere il MA, posso prendere gli incrementi della serie. Non ci sarà alcuna differenza per me. L'essenza sarà che se dopo aver addestrato la rete, il risultato dell'addestramento dipende da ciò che scelgo (MA o semplicemente incrementi della serie), allora indicherà solo compito impostato erroneamente e la rete stava semplicemente imparando ciò che ho cercato di insegnarle. Cioè, esegue solo le azioni che gli ho insegnato. Ma per trovare delle regolarità, cioè per generalizzare, la rete non lo farà o non lo farà correttamente. Il punto è ridurre l'errore di generalizzazione del tipo di dati che sarebbero richiesti all'uscita della rete neurale. I dati di input possono essere incrementi di una serie temporale ma non necessariamente la sua versione lisciata sotto forma di MA o altro. Tutti scrivono che la serie deve essere smussata. Ma penso che non abbia importanza, perché le regolarità oggettive nei dati sono conservate, la cosa principale è scegliere la giusta quantità di incrementi nella vostra serie.

Penso che dal tuo post risulti che la normalizzazione dipende più dai dati che dal compito da svolgere.

Riguardo alla seconda parte: considerate l'incremento di MA e l'incremento di serie?

E in senso generale vuoi dire che la rete addestrata deve essere non sensibile ai dati di input? Oppure basta cambiare i dati di input e la rete deve continuare a prevedere?