Newsgroup: it.comp.ia
Titolo: Reti neurali: Le domande del neofita

E solo da pochissimo tempo che ho iniziato lo studio delle reti neurali, con
l'intenzione di applicarle
all'analisi dei mercati finanziari. Prima di tutto però non deve mancare una
fase di studio per comprenderne
il funzionamento (almeno sapere come sono strutturate e come "girano") -
purtroppo senza forti dosi di
matematica - che è quello che sto facendo adesso.
Ed è proprio in questa fase di studio che mi sono venuti alcuni quesiti che
vi giro, nella speranza che
qualcuno sia così gentile da rispondermi.
- Mi è chiara la struttura di base di una rete neurale (lo strato di input -
lo strato nascosto - quello di
output) ma non comprendo la funzione dei neuroni di BIAS. Ho letto gli
appunti di Salvatore Poma (a cui vanno
i miei complimenti per la comprensibilità del suo scritto -
http://members.tripod.it/pomas/neural/neural.htm
)
e mi riferisco alla figura 1 dove pone due neuroni di Bias, uno sugli
ingressi e uno sullo strato nascosto (immagino
che se gli strati nascosti aumentino debbano essere connessi al bias anche
gli strati oltre al primo) dove pone il
valore di questo neurone a 1 e fa variare l'influenza di questo parametro
semplicemente variando il valore del peso
sinaptico. Inoltre: Come variare il peso sinaptico? Arbitrariamente?
- Chiarissima la funzione di attivazione del neurone (sommatoria di tutti i
valori di uscita dei neuroni ad
esso collegati moltiplicati per il relativo peso sinaptico) ma non mi è
chiaro il criterio di scelta della
funzione di trasferimento. Poma riporta esclusivamente la funzione a
sigmoide, ma sul testo che stavo
consultando (S. Cammarata - "Reti neuronali") vengono riportate altre
funzioni di trasferimento: A gradino,
Lineare senza saturazione, lineare con saturazione e tangente iperbolica.
Perché viene scelta una funzione di
trasferimento piuttosto che quell'altra? E' possibile in poche e
comprensibili parole sapere come varia il
comportamento della rete al variare della funzione di trasferimento?
- Ho localizzato un sito inglese
(
http://www.statsoftinc.com/textbook/stneunet.html
) dove viene riportata un
esauriente introduzione alle reti neurali (molto "commercially oriented"
come diceva qualcuno ma interessante)
e in un punto viene detto:
"The graph below shows one of the most common transfer functions, the
logistic function (also sometimes
referred to as the sigmoid function, although strictly speaking it is only
one example of a sigmoid - S-shaped
- function). In this case, the output is in the range (0,1), and the input
is sensitive in a range not much
larger than (-1,+1). The function is also smooth and easily differentiable,
facts which are critical in
allowing the network training algorithms to operate (this is the reason why
the step function is not used in
practice).";
cosa significa "facilmente differenziabile" (fattore critico perché la rete
possa apprendere e motivo per cui
la funzione di trasferimento a gradino non viene usata)?
Grazie delle risposte e a presto.
Francesco

 cosa significa "facilmente differenziabile"
Se non sai cos'e' una derivata e' difficile da spiegare ^_^
Se sai cos'e' una derivata, la funzione a scalino nel punto di
discontinuita' non ammette derivata, il sigmoide per quanto ripido sia si'.
Stefano

 discontinuita' non ammette derivata, il sigmoide per quanto ripido sia
si'.
Qualcosa di analisi so anch'io... ricordo più o meno cos'è una derivata
(velocità di variazione della funzione in un punto - o sbaglio?)... il fatto
che lo scalino nel punto di discontinuità non ammetta derivata (nel senso
che non è calcolabile? o meglio la velocità di variazione è ugale a più
infinito?) cosa comporta?
Grazie della paziente risposta.
Francesco

 infinito?) cosa comporta?
Piu' che non calcolabile non esiste proprio. Ma anche impostando un 
valore arbitrario ( ad esempio infinito ) la situazione non cambierebbe 
visto che in tutti gli altri punti la derivata della funzione scalino e' 
zero e quindi rende impossibile utilizzare il metodo della 
back-propagation,
( in pratica ottieni sempre delle 'correzioni' nulle ai pesi della rete ).
Per 'facilmente' poi penso si intenda che si puo' esprimere la derivata 
della funzione in termini dell'output della funzione stessa , questo 
permette di riciclare parte dei conti effettuati in precedenza.
Marco

 l'intenzione di applicarle all'analisi dei mercati finanziari<cut>
uh!
Se hai studiato analisi tecnica dei mercati finanziari (come 'suppongo', ma ho
ben presente quanto 'enunciato' dal Principe Toto:" esistono le cose reali e
quelle supposte, tralasciando quelle reali, dove ce le mettiamo le supposte?"),
sarai ben consapevole del cosidetto overfitting che affligge i sistemi
predittivi (e che 'guarda caso' interessa anche, e molto profondamente, le NN).
Supponendo (aridajee...) che tu conosca il MetaStock script o TradeStation
script, un'embrione di rete neurale potrebbe essere:
Cn:=c*opt1+ref(c-1)*opt2+ref(c-2)*opt3
dove , per chi non conosce mstock:
- Cn ' valore da predire (senza sfera di cristallo con interfaccia ethernet, di
fatto introvabile)
- c ' ultimo valore di chiusura dello strumento finaniario in esame
- ref(C,-n) ' valore n-men-un-esimo, riferito cioe' ai periodi precedenti, della
chiusura di cui sopra
- opt1-n ' pesi attribuiti ai vari 'predittori'
e qui casca il somaro.
Una rete N e' in grado di 'riconoscere' una configurazione simile a quella
impiegata in addestramento della rete stessa; e' quindi impiegabile con successo
in contesti in cui le condizioni si 'ripetono'.
Cosa ti fa supporre che questo sia applicabile ai mercati finanziari ? (ovvero
in termini tecnici, hai provato l'indice di auto correlazione su periodi
precedenti dello strumento finanziario che ti interessa testare?)
Ciao!
maurizio


Esattamente!
Stavo per postare +o- lo stesso tipo di risposta.
Aggiungo anche che il numero di ingressi esogeni renderebbe inoltre il
sistema praticamente inutilizzabile.
}Dragonfly{

 precedenti dello strumento finanziario che ti interessa testare?)
Me lo fa supporre il fatto che di fatto (che giro di parole) sempre nel
summenzionato testo di Di Lorenzo, viene richiesto di riconoscere dei
pattern precisi (entro certi limiti) e che la rete neurale - per come ho
capito possa funzionare - possa farlo agevolmente. Tutto da dimostrare e da
provare... ed è per questo che sto lavorando... pura follia? Forse...
Cos'è l'indice di autocorrelazione?
Grazie comunque delle risposte.
Francesco

 ( in pratica ottieni sempre delle 'correzioni' nulle ai pesi della rete ).
Ok... un bagliore di luce sui miei dubbi...
Grazie.
Francesco

 Origine di cosa? Del piano? O di quale sistema?
Si' , come sopra ho scritto male =|. Intendevo dire l'origine del piano.
Nel caso del neurone senza bias puoi dividere il piano solo per mezzo di 
una retta
passante per il punto (0,0).
Se preferisci vederlo in forma matematica, nel caso del neurone con bias 
i punti 'positivi' sono quelli che soddisfano l'eq w(0) + x*w(1) + 
y*w(2) >= 0 , mentre nel caso senza bias l'eq e' x*w(1) + y*w(2) >= 0.
( x e y sono i due ingressi del neurona, w(i) i pesi dei collegamenti ). 
Nel secondo caso appunto la retta che separa i punti positivi da quelli 
negativi passa sempre per (0,0).
Marco

 Cos'è l'indice di autocorrelazione?
In parole semplici, la correlazione di due serie temporali di dati 'misura'
quanto sono simili i loro andamenti; in una sola serie, preso un segmento dati
significativo (che comprenda quindi una 'figura', se e' questo che cerchi, o
dell'ultimo periodo per compiti previsionali) lo si correla con l'intera serie,
alla ricerca di altri periodi con andamento analogo. Il comportamento della
serie successivo al pattern 'dovrebbe' essere indicativo dell'evoluzione delle
grandezze esaminate.
Ciao!
maurizio

 impiegata in addestramento della rete stessa;
Se fosse cosi', le NN sarebbero di ben poca utilita'... Sono d'accordo sul
senso generale del tuo discorso, ma occhio a non esagerare :)
Stefano

Raistlin wrote:

Confesso che la mia risposta e' stata  riduttiva, semplicistica e, sopratutto,
contestualizzata.
Concordo pienamente con te :^)
Ti interessi di NN ?
Ciao!
maurizio

> Ti interessi di NN ?
Dovrei interessarmene di piu', visto che infestano la mia tesi :(
Stefano (che non si laureera' mai :(