Rete neurale - pagina 2

 
xweblanser >> :

Grazie mille mi dispiace che non ci siano molti commenti ma cercherò di capirlo....

Qui www.nnea.net/downloads c'è una buona collezione di pdf con ricerche sulla previsione dei mercati finanziari con NS. devi registrarti. vedi anche la sezione ricerche.

 
marketeer >> :

Un trader non ha bisogno di capire il funzionamento interno della NS. Per lui è una scatola nera con ingressi e uscite. Ci sono molte reti già pronte nel pubblico dominio, anche su questo sito - basta digitare "reti neurali" nella casella di ricerca. Una delle ultime pubblicazioni, per esempio - Predictor basato su una rete neurale di autoapprendimento. Il problema principale nell'uso delle NS è la scelta di quali dati inserire e addestrare, come preparare questi dati, qual è la struttura e la dimensione della rete, ecc. Per esempio, prendiamo la rete già menzionata, proviamo ad addestrarla come hanno fatto Yezhov e Shumsky (vedere Neurocomputing e la sua applicazione in economia e commercio, lo consiglio)... E ci ritroviamo con un flop. Ci possono essere molte ragioni per questo. Ed è qui che inizia il lavoro del trader: intuire cosa può essere cambiato da allora (o cosa gli autori non dicono ;-) ), e cosa cambiare nelle impostazioni e nei dati di input.

Beh, sono un trader ma soprattutto sono un programmatore... Volevo scrivere una rete neurale per me stesso e allo stesso tempo dimostrare a me stesso che posso....

 
njel >> :

C'è una buona selezione di pdf con studi sulla previsione dei mercati finanziari utilizzando NS qui www.nnea.net/downloads. È necessario registrarsi. vedere anche la sezione ricerca.

>> grazie.

 
xweblanser >> :

1. Per quanto ho capito, ogni neurone della rete è la stessa funzione... ma non capisco come la stessa funzione possa produrre valori diversi quando arrivano gli stessi dati...

Questi input saranno moltiplicati per diversi pesi. Quindi i valori della funzione saranno diversi. Dopo aver studiato a fondo le reti neurali e aver usato diversi algoritmi di apprendimento, dalla discesa del gradiente alla genetica, sono arrivato alla conclusione che l'apparato matematico delle reti neurali non è perfetto. Una rete neurale è progettata per approssimare una funzione non lineare. Secondo il teorema di Kolmogorov, la rete è capace di realizzare qualsiasi funzione continua. In pratica, il parallelismo della rete porta a una moltitudine di minimi locali e realizzazioni della funzione da modellare. Prendiamo come esempio la rete mostrata qui sotto. La rete ha un ingresso, un'uscita e uno strato nascosto con due neuroni. Ogni neurone nascosto moltiplica l'input x per il suo peso (w1 o w2), passa il risultato attraverso la funzione di attivazione (diciamo tanh), i valori ottenuti sono sommati all'uscita della rete. Per semplicità, supponiamo che gli ingressi bias siano zero. I pesi dei neuroni di uscita sono gli stessi e pari a 1.


Ora creiamo un problema di approssimazione di funzioni. Supponiamo che la nostra funzione sia t = cos(x) (t significa obiettivo). La rete calcolerà il suo valore con la formula

y = tanh(w1*x) + tanh(w2*x)

L'addestramento (o coaching) della rete consiste nel trovare i pesi w1 e w2, ai quali l'uscita della rete y è più vicina al valore della nostra funzione t. Questo si ottiene minimizzando la somma dei quadrati dell'errore

E(w1,w2) = somma((t[k]-y[k])^2,k=0...p-1)

dove la somma viene eseguita su diversi dati di allenamento: x[k],t[k]. Guardiamo come appare la superficie della nostra funzione obiettivo di minimizzazione E(w1,w2) quando non c'è rumore nelle misure t[k] = cos(x[k]):


Questo grafico mostra che c'è un insieme infinito di soluzioni (w1,w2) che minimizzano la nostra funzione obiettivo E (notare le valli piatte). Non è difficile da capire: la rete è simmetrica rispetto a w1 e w2. I risultati dell'addestramento della rete saranno diversi per diverse scelte di valori iniziali di w1 e w2. Poiché questi valori iniziali sono sempre scelti in modo casuale, gli allenamenti successivi della rete sugli stessi dati di allenamento x[k],t[k] porteranno a valori diversi dei pesi ottimizzati w1 e w2. Qui non c'è essenzialmente un minimo globale. O per dirla diversamente, infiniti minimi locali sono anche minimi globali.

Ora complichiamo il nostro problema aggiungendo del rumore alla nostra serie: t[k] = cos(x[k]) + rnd. Questa serie rumorosa è statisticamente più simile alla serie dei prezzi rispetto al coseno perfetto:


Ora la superficie della nostra funzione di minimizzazione E(w1,w2) si presenta così:


Notate i molti picchi sia sulle cime che sulle valli. Chiudiamo briefly in una delle valli:


Qui possiamo vedere più chiaramente l'insieme dei minimi locali. Ora immaginate l'ottimizzazione di E(w1,w2) tramite la discesa del gradiente. A seconda dei valori iniziali di w1 e w2, questa discesa porterà ad un minimo diverso. Inoltre, questo minimo locale potrebbe essere sia in alto che a valle. L'ottimizzazione genetica qui aiuterà solo a scendere dalla cima a una delle valli e a bloccarsi lì in uno dei minimi locali. La situazione diventa molto più complicata se oltre a w1 e w2 si ottimizzano anche i pesi del neurone di uscita, che erano uguali a uno nella considerazione precedente. In questo caso abbiamo uno spazio a 4 dimensioni con un numero enorme di minimi locali con coordinate (w1,w2,w3,w4).

Con tutta questa descrizione semplificata del comportamento della rete neurale, ho voluto dimostrare che il parallelismo della rete (o simmetria della sua uscita rispetto ai pesi dei neuroni dello stesso strato) porta a difficoltà del suo addestramento (ottimizzazione di questi pesi) a causa della presenza di un insieme infinito di minimi locali soprattutto per serie caotiche come la serie dei prezzi.

Allego il file MathCAD in cui sono stati eseguiti i calcoli di cui sopra.

File:
nnrsimplea2.zip  699 kb
 
gpwr писал(а) >> Con questa descrizione semplificata del comportamento della rete neurale ho voluto dimostrare che il parallelismo della rete (o simmetria della sua uscita rispetto ai pesi dei neuroni dello stesso strato) porta a difficoltà nel suo addestramento (ottimizzazione di questi pesi) a causa della presenza di un numero infinito di minimi locali, soprattutto per serie caotiche come le serie di prezzi.

Una domanda: come influisce sul profitto?

 
LeoV >> :

Una domanda: come influisce questo sulla redditività?

Hai una rete che genera profitti costanti?

 
LeoV >> :

Una domanda - come influisce questo sul profitto?

La redditività è assolutamente influenzata. Non c'è alcuna garanzia di trovare il minimo locale giusto e abbastanza profondo che sarebbe adeguato per implementare una rete neurale basata sul TS redditizio.

 
gpwr >> :

Quale MathCad usi, i tuoi calcoli non si aprono in Mathcad 13.

 

Lo scopo di minimizzare/massimizzare la funzione obiettivo E(w1,w2) è di trovare un estremo globale. E se ci sono un milione di questi estremi globali, che differenza fa per noi in quale di essi cade NN!

È peggio se si blocca in uno dei minimi/massimi locali. Ma non è più un problema di NN. È un problema dell'algoritmo di ottimizzazione.


LeoV >> :

>> Una domanda - come influenza il profitto?

Quello che gpwr ha descritto, non lo fa.

 
Urain >> :

Quale MathCad usi, non riesco ad aprire i tuoi calcoli in Mathcad 13.

>> Mathcad 14. >> Allego lo stesso file nella versione 11.

File:
nnosimplem2.zip  14 kb
Motivazione: