Articolo: Previsione dei prezzi con reti neurali - pagina 15

 
Neutron:

Addendum.

Ha portato, ha portato e ha portato ;-)

Questa è la soluzione analitica "FINE" per le scale di un NS non lineare a singolo strato:

...

Mi ha fatto sorridere.

Ma l'intero calcolo richiede 1 millisecondo.

Teoricamente, qualsiasi NS è equivalente a un sistema di equazioni. E se è abbastanza semplice, è più economico scrivere questo sistema in forma analitica e risolverlo rispetto ai pesi. I problemi, e con essi la necessità di metodi di addestramento astuti, cominciano a sorgere quando la rete (cioè il suo equivalente sistema di equazioni) diventa più complessa. È stato rendendosi conto di questo fatto che una volta ho sospeso la mia conoscenza delle reti, iniziata per interesse. Ho semplicemente deciso che dovevo prima inventare un modello e solo dopo cercare i modi più economici per risolverlo. Mi sembra ancora che l'applicazione dei metodi NS sia giustificata solo per modelli molto complessi :) .

 
Jhonny:

Spiegami questo come "neuroscienziato" alle prime armi... Ho capito che la rete in questione è un perceptron multistrato.

Qual è la ragione della scelta di questo tipo di rete, perché non Hopfield o Kohonen, o qualcos'altro?

È più una questione filosofica. Il punto è che ci sono un numero infinito di architetture NS "complesse", mentre la più semplice è l'unica! È un perceptron a singolo strato. In questo caso è implementato con una funzione di attivazione non lineare.


a Candid

Teoricamente qualsiasi NS è equivalente a un sistema di equazioni. E se è abbastanza semplice, è più conveniente scriverlo in forma analitica e risolverlo rispetto ai pesi. I problemi, e con essi la necessità di metodi di addestramento astuti, cominciano a sorgere quando la rete (cioè il suo equivalente sistema di equazioni) diventa più complessa. È stato rendendosi conto di questo fatto che una volta ho sospeso la mia conoscenza delle reti, iniziata per interesse. Ho semplicemente deciso che devo prima elaborare un modello e solo dopo cercare i modi più economici per risolverlo. Mi sembra ancora che l'applicazione dei metodi NS sia giustificata solo per modelli molto complessi :) .

Giusto. Possiamo anche menzionare la non stazionarietà intrinseca dei BP del mercato, che mette fine ai metodi statistici tradizionali e dà un punto in più a favore di NS.


A proposito, ho elaborato una soluzione analitica dei sistemi di equazioni per i pesi NS. La figura in nero mostra il solito metodo di formazione NS da retropropagazione dell'errore (ORO) numero di epoche 1000 e in blu la soluzione analitica. L'addestramento di NS avviene ad ogni passo, la predizione è un passo avanti.


Si può vedere che la variante analitica sulla sezione di tendenza di BP non è corretta per ragioni che non capisco. Ma il tempo di calcolo di questo problema secondo il metodo ORO è di 10 secondi, e per il metodo analitico è di 0,001 secondi.

Il guadagno di prestazioni è di 10000 volte!

In generale, il funzionamento della rete è affascinante. Sembra percepire la tendenza dei prezzi e la attrae, come una calamita, nella sua previsione!

 
Neutron:
Jhonny:

Spiegami questo come "neuroscienziato" alle prime armi... Ho capito che la rete in questione è un perceptron multistrato.

Qual è la ragione della scelta di questo tipo di rete, perché non Hopfield o Kohonen, o qualcos'altro?

È più una questione filosofica. Il punto è che ci sono un numero infinito di architetture NS "complesse", mentre la più semplice è l'unica! È un perceptron a singolo strato. In questo caso è implementato con una funzione di attivazione non lineare.

...

In generale, il funzionamento della rete è affascinante. Sembra percepire l'andamento del prezzo e lo attrae, come se fosse una calamita!

La questione è ovviamente filosofica. Anch'io sono un principiante. Ma perché non una rete di probabilità, per esempio. Soprattutto dopo i noti eventi dell'anno scorso? È vero che anche lì il compito è diverso. Se la previsione è vicina al filtraggio, a quel parametro osservabile, allora la stima della probabilità è più vicina al filtraggio del parametro non osservabile, ma risolve subito il problema del passaggio al dominio delle soluzioni.

P.S. A proposito, il tempo di esecuzione di una rete probabilistica è incomparabilmente inferiore a quello di un perceptron multistrato, e l'addestrabilità non è peggiore.

P.P.S. Quando guardavo la curva di equilibrio di Better durante il campionato, anche io ero affascinato. :-)

 
Neutron:

Voglio scavare più a fondo... Per esempio, quanto è giustificata la complessità dei NS (strati nascosti).

Dipende da cosa viene immesso nell'ingresso. Se prendiamo direttamente le barre (i loro incrementi) dal mercato - allora sarà molto giustificato.


Non si vede nei vostri esempi, perché i vostri grafici sono lisci - monotonici a tratti. Avete anche una "sentenza" NS a ingresso singolo. Cioè l'analogo del più primitivo sistema di trading trend following. Questo problema è risolto perfettamente senza NS. Quali reti multistrato ci sono...

Neutrone:

Comunque, sto impazzendo! Il punto è che se si rappresenta la non linearità di NS in una certa forma, si può ottenere una soluzione analitica accurata per i pesi. Questo, a sua volta, significa che sarà possibile fare a meno del metodo di Propagazione dell'errore inverso per l'addestramento della rete e ottenere il risultato più preciso possibile in una sola azione, senza 1000 Epoche di addestramento!!!

Bisogna capire che l'addestramento di NS è un problema di ottimizzazione delle funzioni. E la sua soluzione analitica è molto più complicata che risolvere sistemi di equazioni. Guarda i metodi di calcolo analitico di una funzione di regressione lineare da una variabile (analogo del più semplice perceptron)... Cosa ne pensate? Ora immaginate come sarebbe la soluzione se ci sono molte variabili e la funzione è non lineare all'ennesimo grado (analogo del NS multistrato)... :-)


NS è stato inventato per semplificare la vita. E non è necessario addestrare la rete esattamente con la propagazione a ritroso. È il più semplice - ma anche il più lento - algoritmo. Inoltre, ci sono algoritmi che sono ordini di grandezza più veloci.

 
ds2:
Neutrone:

Voglio scavare più a fondo... Per esempio, quanto è giustificata la complessità dei NS (strati nascosti).

Dipende da ciò che viene alimentato in ingresso. Se prendiamo direttamente le barre (i loro incrementi) dal mercato - allora sarà molto giustificato.


Non si vede nei vostri esempi, perché i vostri grafici sono lisci - monotonici a tratti. C'è anche un NS "steering" a ingresso singolo. Cioè l'analogo del più primitivo sistema di trading trend following. Questo problema è risolto perfettamente senza NS. Quali reti multistrato ci sono...

ds2, potresti per favore dare una ragione a favore del perceptron multistrato rispetto al monostrato, usato per esigenze di previsione BP come quelle dei prezzi, se la loro profondità di immersione è la stessa. Mi piacerebbe vedere l'argomento sotto forma di un grafico della capacità predittiva.

 
Neutron:
ds2:

Dipende da cosa viene immesso in ingresso. Se si attaccano barre dritte (i loro incrementi) dal mercato - sarà molto giustificato.

Questo non si vede nei vostri esempi perché i vostri grafici sono lisci - monotonici a tratti.

ds2, potresti fare un caso per un perceptron multistrato rispetto a un perceptron a singolo strato usato per le esigenze di previsione della BP come il pricing, se la loro profondità di immersione è la stessa. Mi piacerebbe vedere l'argomento sotto forma di un grafico della capacità predittiva.

Beh, è ovvio se si capisce come funziona la rete. Una rete a singolo strato può descrivere solo dipendenze monotone, mentre una rete multistrato può descrivere qualsiasi dipendenza.


Se confrontiamo le capacità di NS e dei tipi noti di MTS, una rete a singolo strato può imitare il funzionamento MACD, ma solo una rete multistrato può riconoscere i modelli Pessavento.


Potete sperimentare e vedere voi stessi. Avete tutti gli strumenti e i dati per farlo.

 

Qualcuno ha scritto in MQL il criterio di Kolmogorov-Smirnov per stimare gli ingressi e la correlazione di rango Spearman?

 
Non ho ancora fatto il test, e la correlazione di rango non è molto da cercare - 'Spearman's Rank Correlation Coefficient'
 
Curioso di vedere se qualcuno ce l'ha? O questa informazione è già stata menzionata e me la sono persa? Passa il link per favore.

Questo link non è nemmeno accessibile quando ti registri. O forse descrive il cammino verso il Graal ;-).


http://www.maikonline.com/maik/showArticle.do?auid=VAF0AMGLSL〈=it PDF 274kb

UN QUADRO DI RETE NEURALE PER LA MODELLAZIONE DI UNA FUNZIONE COMPLESSA DI MOLTE VARIABILI SU DATI CAMPIONATI
Е. V. Gavrilova, O. A. Mishulina, M. V. Shcherbinina Izvestia RAN. Teoria e sistemi di controllo # 1, gennaio-febbraio 2007, P. 73-82

Consideriamo il problema dell'approssimazione della funzione di molte variabili, che è misurata contro il rumore additivo e caratterizzata da proprietà dinamiche qualitativamente diverse in certi sottodomini della sua definizione. Proponiamo la soluzione a questo problema usando la struttura di rete neurale modulare specializzata LINA. Le regole per il suo addestramento e funzionamento sono formulate.
 

Quando si allena in Anfisedit viene visualizzato continuamente un errore:

??? Errore usando ==> anfisedit
Oggetto handle non valido.

??? Errore durante la valutazione di uicontrol Callback.

Preparato i dati, ma non per il tasso assoluto come nell'articolo, ma per il tipo di candela. Se il prezzo di chiusura della candela del giorno è superiore al prezzo di apertura - allora 1, se viceversa -1. All'inizio avevo 10 voci ma il mio portatile non le ha tirate fuori. Ho diminuito il numero di voci come descritto nell'articolo a 4, l'architettura è mostrata, tutto sembra a posto, ma quando premo train dopo un paio di epoche la formazione si ferma, Train Error è scritto sopra il grafico e nella linea di comando che ho scritto all'inizio. Qual è il problema? Forse la versione di Matlab è difettosa? Ho Matlab 7.0.1.24704 (R14) Servise Pack 1.

Non ha funzionato con ANFIS, ho deciso di provare NNTool. Ho caricato separatamente gli ingressi (4 ingressi), separatamente le uscite, specificato i parametri, creato una rete - ma quando si visualizza l'architettura della rete, mostra che gli ingressi sono 2. Ho premuto comunque treno e ho ottenuto un errore:

Errore usando ==> networktrain
Gli ingressi sono dimensionati in modo errato per la rete.
Le matrici devono avere tutte 2 righe.
C'era un posto dove impostare il numero di ingressi?