giovedì, novembre 17, 2005

RETI NEURALI: appunti

Domanda: «Cosa si cerca di fare con le "Reti Neurali"?»
Risposta: Si tenta di riprodurre le attività elaborative cerebrali “copiando” l’architettura del cervello.

Di seguito ci sono alcuni appunti che devono servire da stimolo per approfondire i vari argomenti, per questo motivo la trattazione è volutamente lacunosa.

CARATTERISTICHE FONDAMENTALI DELLE RETI NEURALI ARTIFICIALI

1) elaborazione parallela (analogia biologica)
2) elaborazione distribuita
3) accesso alla memoria per contenuti e non per indirizzi (analogia biologica: "un odore mi ricorda qualche cosa")
4) apprendimento (allenamento)

STRUTTURA DEL MODELLO CONNESSIONISTA

A) proprietà delle celle
B) proprietà della rete (come fatta, # connessioni, # neuroni, peso neuroni)
C) dinamica
D) proprietà apprendimento


A) PROPRIETÀ CELLA

1) la “f” nello schema è chiamata FUNZIONE DI ATTIVAZIONE. Determina il tipo di risposta che il neurone è in grado di emettere, può essere: a gradino, lineare, sigmoide.

funzione a scalino
finzione lineare

sigmoide



Per le unità di input la funzione di attivazione (FdA) è la funzione Identità. Nel caso di reti multistrato la FdA è non lineare. In generale tutti i neuroni utilizzano la stessa FdA, ma questo non è obbligatorio.

2) Wij indica il valore del link. E’ un peso numerico che specifica l’influenza dell’elem. Uj sull’elem. Ui (Wij > 0 rinforzo Wij < 0 inibizione).

3) U0 indica il BIAS (valore soglia) se > BIAS (soglia) allora il neurone si attiva.

4) Ui e Uj sono attivazioni. L’attivazione di una cella va calcolata dalle attivazioni delle celle direttamente connesse. Si = (somma pesata); Ui = f (Si) segue nuova attivazione.





B) B. PROPRIETÀ DELLA RETE


CLASSIFICAZIONE

Esistono vari modi per classificare le RNA:

1) in base al tipo di apprendimento:
• supervisionato
• non supervisionato

2) in base all’architettura

• reti completamente connesse
• reti a più strati con connessione completa tra gli strati
• reti con connessioni miste

1) IN BASE AL TIPO DI APPRENDIMENTO (vedi anche più avanti):

Schema di apprendimento con supervisore
Apprendimento supervisionato


Schema di apprendimento senza supervisore

Apprendimento non supervisionato



2) IN BASE ALL’ARCHITETTURA


a) reti completamente connesse
b) reti a più strati con connessione completa tra gli strati
c) reti con connessioni miste



C. PROPRIETÀ DINAMICHE

• Un modello connessionista deve specificare l’istante quando ogni cella deve computare il proprio valore di attivazione e quando modificare il proprio output.

APPRENDIMENTO

• Nelle reti neurali l’apprendimento consiste nella modifica della forza delle connessioni tra celle elementari che permetta alla rete di eseguire la computazione desiderata.
• Il processo di apprendimento prevede 2 possibili regimi:
con pochi esempi la rete si comporta da memoria, senza ricorrere a nulla;
con molti esempi, la rete è in grado di generalizzare, ossia ricavare una regola che sia applicabile anche a nuovi casi.
• Come detto precedentemente le reti possono essere supervisionate e non supervisionate, ma entrambe le modalità si avvalgono dell’equazione:

Wi,j (t+1) = Wi,j (t) + Wi,j

La differenza sta nel modo in cui è calcolato il termine Wi,j.


Le regole di apprendimento : sono le regole secondo cui si variano i pesi di interconnessione in funzione di determinati parametri dell'attività della rete. Esempi di tali regole sono:
o La regola di Hebb : stabilisce che il peso venga variato di una quantità proporzionale al prodotto dei valori di attivazione dei neuroni connessi dal peso in questione, tendendo così a rinforzare i pesi più forti e ad indebolire quelli più deboli.
Se 2 neuroni collegati tra loro sono contemporaneamente attivi l’efficacia sinoptica della connessione viene accentuata:



Ma la rete neurale "NON DIMENTICA".

Esiste quindi un’evoluzione verso sistemi che permettono di dimenticare (considero sia il caso che i 2 neuroni siano entrambi attivi sia il caso che siano entrambi disattivi).
o La regola di Windraw–Haff : stabilisce che i pesi siano variati in una quantità proporzionale alla differenza tra i valori di uscita effettivi e i valori desiderati.
Il primo tipo non richiede supervisione mentre la seconda richiede un feed–back e quindi una supervisione. Tale feed–back è detto propriamente:
Tecnica della back–propagation (BP) : è una generalizzazione del perceptrone di Rosenblatt (1958) e della Adaptive Linear Element (Adaline) dovuta a Windraw e Haff (1960). La tecnica BP è stata sviluppata da Rumelhart–Hinton e Williams nel 1986 ed è, come già detto, una rete tipicamente usata in modo supervisionato, caratterizzata da un training by epock, una ottimizzazione di tipo a gradiente e una regola di apprendimento di tipo delta. Essa costituisce, secondo stime prudenziali, almeno il 50% delle applicazioni sviluppate e questo spiega perché è così importante. L'algoritmo di BP è suddiviso in tre fasi:
1. Feed Forward : é la fase di propagazione diretta del segnale dall'ingresso all'uscita, in cui noti gli ingressi e i pesi viene calcolata l'uscita della rete.
2. Error Back–Propagation : é la fase di retro–propagazione dell'errore dove l'errore calcolato dalla differenza tra l'uscita (calcolata al punto precedente) e il target viene trasmesso a tutti i neuroni della rete.
3. Wheight Update : é la fase di modifica dei pesi, resa possibile dalle informazioni ottenute nelle prime due fasi.
Dopo l’allenamento viene usata in feedforward.

ESEMPIO DI TRAINING DI UNA RETE SUPERVISIONATA:



La lettera A rappresentata con una matrice 7x5 deve essere portata in una rappresentazione di 5 bit. Insegno alla rete a reagire in un dato modo, dato rete neurale un certo stimolo. Fornisco input e output, la rete cambia i pesi ogni volta che cambio input-output.

ESEMPI DI RETI NEURALI:


• reti di Hopfield
• reti di Jordan
• reti di Elman
• multi-layer feed-forward back-propagation
• reti di Kohonen
• interactive-activation and competition
• adaptive resonance theory
• percettrone

RETE DI HOPFIELD



è utilizzata principalmente come memoria associativa o per problemi di ottimizzazione. E’ una rete che lavora operando una ricerca nello spazio delle soluzioni.
E’ totalmente connessa.

• Se si applica un pattern di input esterno, la rete tenderà a procedere verso un punto di stabilità.
• Lo stato di attivazione raggiunto rappresenta la risposta della rete.
• Aggiornamento sincrono o asincrono.
• Bacino di attrazione di un pattern.

La dinamica della rete di Hopfield descrivibile con una funzione di energia H



La convergenza verso stati stabili è garantita dal decrescere temporale dell’Energia nell’ intero sistema.


PERCETTRONE (di Rosenblatt)

Reti neurali con uno strato di connessioni unidirezionali dai nodi di input ai nodi di output.

APPRENDIMENTO DEL PERCETTRONE

• Se l’output è corretto lascia i pesi inalterati.
• Se l’output è 0 e dovrebbe essere 1, aumenta i pesi di una quantità.
• Se l’output è 1 e dovrebbe essere 0, diminuisci i pesi di una quantità.



RETI NEURO-FUZZY

Recentemente ha preso piede una sinergia, da molti ritenuta vincente, che unisce le reti neuronali e la logica fuzzy, in quanto i punti di forza dell'una riescono a compensare le debolezze dell'altro. Alcuni ricercatori stanno pensando di aggiungere algoritmi di tipo genetico. La rete neuronale in fase di apprendimento si comporta agli occhi dell'utente come una vera e propria scatola nera, di cui sono noti solo gli ingressi e da cui vendono estratte le uscite. In un sistema Fuzzy, invece, è possibile verificare per via diretta il suo funzionamento, in questo caso però l'insieme di regole deve venire generato in modo manuale. Da queste considerazioni si evince facilmente che un sistema ottimale dovrebbe possedere l'elasticità tipica della logica Fuzzy e la capacità di apprendimento caratteristica delle reti neuronali o degli algoritmi genetici. In tal modo sarebbe possibile ridurre i tempi di progettazione e pervenire, almeno in alcuni casi, alla realizzazione di sistemi più stabili


ESEMPI DI APPLICAZIONI DELLE RETI NEURALI

Oltre alla compressione dati che abbiamo descritto sopra (da matrice7x5 a vettore 5x1), abbiamo:
eliminazione del rumore, riconoscimento segnali sonori, macchina da scrivere fonetica, sistemi di controllo, analisi finanziarie, medicina, psicologia.

In generale i TASK da affrontare con le reti neurali presentano:

1) Assenza di algoritmo
2) Attività che l’uomo sa svolgere
3) Ricerca della soluzione per tentativi

(guida di notte con pioggia, riconoscimento volto)