cerca
Sistemi Intelligenti - Appunti del 28 Ottobre
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Sistemi Intelligenti - Appunti del 28 Ottobre

Torna alla pagina di Sistemi Intelligenti


 :: Sistemi Intelligenti - Appunti del 28 Ottobre ::

Rivediamo due tipologie di reti neurali cui avevamo già accennato nelle lezioni precedenti: le reti di Hopfield e quelle di Kohonen.

Reti di Hopfield


Immagine presa da wikimedia.org (link)

Le due principali caratteristiche di una rete di Hopfield (schema accanto) sono:

  • è completamente connessa (ogni neurone è collegato a tutti gli altri)
  • ad ogni "colpo di computazione" l'uscita viene retroazionata a tutti gli altri neuroni della rete

Questo tipo di rete ha l'ambizioso obiettivo di modellare la nostra memoria. Vediamo cosa accade in natura: ogni neurone umano vede una piccola porzione di informazione, la elabora e la comunica, così che si possa ricostruire l'informazione globale. Perfetto, questo processo di apprendimento è perfettamente applicabile a una rete di Hopfield, in cui gli stati dei neuroni continuano a cambiare (con annessa ricomputazione della sollecitazione della somma pesata); il processo termina quando le uscite si stabilizzano a una certa configurazione, ovvero quando sono riuscito a cogliere il pattern desiderato. Nota di folklore: il pattern potrebbe rappresentare ad esempio un'immagine, una stringa di testo, eccetera.

La stabilizzazione dell'uscita dipende dalla tecnica di realizzazione dei neuroni, e dalle loro modalità di collegamento. Ad esempio se adottiamo tecniche analogiche potremo cogliere i cambiamenti degli stati nel continuo, mentre in digitale dovremo discretizzare il tempo (con l'ausilio di un clock) per la manifestazione dei risultati. Attenzione però: l'attivazione dei neuroni non avviene contemporaneamente in un unico colpo di clock, ma è sequenziale (viene considerata l'ultima computazione effettuata).

La rete di Hopfield consente di confrontare la configurazione iniziale di una rete (il suo pattern) con quelli già memorizzati: se questi si assomigliano abbastanza, la rete riesce a raggiungere lo stato stabile già noto. In altre parole, la rete è in grado di ricordare un insieme di stati stabili (che rappresentano le informazioni) e di richiamarli a partire da informazioni o parti di esse simili. Viene perciò di fatto realizzata una memoria associativa.

Configurare questo tipo di rete è piuttosto semplice: dato che vogliamo memorizzare un certo numero di pattern, ne facciamo un bell'elenco e glielo diamo in pasto, lasciando che si ricavi da sola i pesi da applicare ai vari collegamenti. Ovviamente ci sono regole un po' più precise, ma noi ce ne freghiamo bellamente.

Reti di Kohonen

Le reti di Kohonen (vedi schema accanto) sono particolarmente abili nel replicare la capacità del nostro cervello di comprendere e classificare una serie di oggetti senza che nessuno gli dica cosa sono. Se nelle feed-forward abbiamo un sistema supervisionato in cui interveniamo direttamente perché già conosciamo le classi (e quindi possiamo dire se un'uscita è corretta o no), nelle reti di Kohonen non le conosciamo affatto, e lasciamo dunque che sia la rete a cercare similitudini tra i vari oggetti e raggrupparli in categorie. In pratica la rete si chiede per ogni oggetto quanto è simile agli altri già visionati, e se ne conosce di simili li infila nella stessa classe, che diventano perciò il risultato dell'apprendimento.

La rete di Kohonen ha degli ingressi primari che vengono distribuiti a tutti i neuroni (nello schema è il pallino azzurro), i quali ne fanno la somma dei prodotti, applicano la funzione di attivazione e infine producono un'uscita. In realtà ogni neurone riceve anche le uscite di tutti gli ingressi adiacenti, che vanno a inibire la computazione del singolo. Spieghiamo meglio: il neurone che in base al peso attuale è quello più sollecitato, viene ulteriormente rinforzato poiché può essere considerato il vero rappresentante di una certa classe. Questa politica viene propagata a tutta la rete, secondo il principio che "the winner takes all", e cioè fino a quando non rimane un unico neurone sollecitato e tutti gli altri a zero. Va da sé che per pattern diversi avremo vincitori diversi, ma sempre quelli con l'uscita non inibita. Saranno questi neuroni vincitori a rappresentare le classi, ed è proprio il meccanismo di inibizione che rende superflua la supervisione.

Questo tipo di applicazione delle reti neurali è nota sotto il nome di clustering. Ma ce lo siamo già detti la prima lezione, e sicuramente ce lo ricordavamo.


Torna alla pagina di Sistemi Intelligenti