Cervello
Processore
Hardware
+
+ Mente
+ Algoritmo
Software
=
Applicazione
(task)
Cervello
umano
Elaboratore
elettronico
1 evento / ms per neurone
1 milione eventi / ms
100 miliardi di neuroni
ognuno dei quali comunica
con altri diecimila neuroni
uno o pochi processori per elaboratore
elaborazione parallela distribuita
elaborazione seriale
Rapido nelle logica sfumata,
processi decisionali,
riconoscimento forme
Rapido nell’eseguire operazioni logico
matematiche,
inefficiente nei problemi della vita quotidiana
(es: pattern recognition, decisioni)
le informazioni vengono memorizzate e/o
rappresentate nelle connessioni (pattern e
forza)
le informazioni vengono memorizzate e/o
rappresentate cambiando lo stato binario di
precise locazioni
impara dagli sbagli
programmato per svolgere un compito
preciso
Uomo
Computer
elaborazioni o procedure automatiche
memorizzazione
recupero informazioni
ragionamento simbolico
percezione
modellazione ed estrazione della conoscenza
autoapprendimento
Per un computer è difficile riconoscere gli oggetti presenti in un’immagine perchè
a partire dai contorni dovuti alle variazioni di luminosità, non riesce a raggrupparli per
definire gli oggetti
Questo processo, detto di segmentazione, è molto difficile da realizzare per un sistema
puramente automatico perchè necessita della conoscenza a priori riguardo agli oggetti.
Per riprodurre le nostre
capacità dovremmo
formulare e formalizzare
le regole per prendere
decisioni…
che ci portano per
esempio a riconoscere
le immagini.
Pur conoscendo le
regole, queste
potrebbero non essere
facilmente formalizzabili
quindi è difficile
costruire un
classificatore.
Ecco perché non esistono sistemi di guida automatica
L'ideale sarebbe poter
costruire un
classificatore che
deduca le regole in un
processo di
apprendimento
Riconoscimento vocale
Le reti neurali artificiali: un modo di implementare l’intelligenza artificiale
L'obiettivo dell'intelligenza artificiale è quello di emulare processi che,
quando fatti da umani, richiedono cognizione.
Ma come fare?
Ci si è accorti che unendo tra loro più unità di elaborazione, ovvero
imitano la struttura e la topologia del cervello umano, si poteva imitarne
il funzionamento, ovvero nascevano delle proprietà emergenti.
Una proprietà o un comportamento esibiti da un sistema complesso si dicono emergenti quando sono
inspiegabili sulla base delle leggi che spiegano il comportamento dei singoli elementi che costituiscono il
sistema.
Esse scaturiscono da interazioni non-lineari tra le componenti stesse. La proprietà stessa non è
predicibile e non ha precedenti, rappresenta un nuovo livello di evoluzione del sistema.
Queste sono riscontrabili in sistemi di organismi viventi, di individui sociali, nei sistemi economici, nella
fisica delle particelle...
La coscienza, l’autoorganizzazione, il comportamento di una colonia di formiche, Internet… sono esempi
di proprietà emergenti. Dallo studio delle proprietà emergenti si possono ottenere utili informazioni per il
controllo delle epidemie, delle metastasi tumorali, per predire gli andamenti del mercato azionario, del
comportamento dei gruppi di individui…
Il processo di formazione di schemi complessi a partire da regole più semplici può anche essere simulato.
Game Of Life, di Horton Conway, è un automa cellulare in cui stabilendo poche semplici regole per pochi
individui di base, possono emergere evoluzioni complesse.
Sistemi dotati di proprietà cognitive vengono studiati nell’ambito dell’intelligenza artificiale.
Per questi studi vengono usati algoritmi la cui classe principale è costituita dalle reti neurali artificiali.
Le reti neurali artificiali imitano la struttura e la topologia del cervello umano per imitarne il funzionamento.
Una rete neurale è strutturalmente un insieme di elementi, detti neuroni artificiali, interconnessi tra loro
Il neurone artificiale
n
sinapsi
assoni
x1
x2
w1
x3
w3
xn
wn
i 1
dendriti

w2
b
weights
inputs
y  f (  wi xi b)
corpo
assone
f
non linear
function
bias
Questa struttura è già in grado di simulare un processo decisionale
u
u
1
P
UNITÀ LINEARE
Soglia
UNITÀ A SOGLIA
P
Struttura di una rete neurale
nodi
uscite
Similitudine
tra una rete
neurale
biologica e
una artificiale
strato di
neuroni
di
ingresso
strato di
neuroni
nascosto o
intermedio
strato di
neuroni
di uscita
Apprendimento
Implementare una rete neurale significa stabilire
la sua struttura: numero degli strati, numero dei
neuroni per ciascun strato, topologia delle connessioni,
condizioni iniziali, tipo di funzioni matematiche
implementate dai neuroni di ciascun strato, metodo
di apprendimento e verifica
La rete appena implementata non sa fare nulla
Prima di essere operativa deve apprendere, questo avviene mediante la
somministrazione di esempi di correlazioni ingresso-uscita
L’apprendimento consiste nella modifica dei pesi associati ad ogni
connessione e nella modifica del bias di ciascun neurone, quest’ultimo stabilisce il
punto di lavoro del neurone nella propria funzione non lineare
La verifica dell’apprendimento avviene mediante la somministrazione di
ingressi (stimoli) che la rete non aveva mai visto in fase di apprendimento e di
cui noi ci aspettiamo uscite (risposte o reazioni) precise.
Problemi di apprendimento
Può accadere che dopo l’apprendimento
le prestazioni non siano soddisfacenti,
perché?
Troppi pochi esempi in fase di addestramento
Esempi polarizzati (distribuzione non uniforme dei casi)
Esempi contraddittori
Topologia e complessità della rete non adeguati al problema
Ripetere l’apprendimento con diverse condizioni iniziali
Non sono state raggiunte le prestazioni migliori a causa della funzione di
addestramento non adeguata
Vantaggi dell’utilizzo delle reti neurali:
ingresso
Sistema da
studiare
uscita
reazione
Capacità di apprendere e costruire una
conoscenza da esempi o dati di esperimenti
Capacità di riprodurre (o
modellare) qualsiasi
comportamento non lineare
di un sistema
Interpolare e predire
.. .
. .
.
.
.
.... .
Capacità di classificare
dati apparentemente non
raggruppabili
var 2
ingresso
var 1
uscita
uscita
stimolo
.. .
. . . ..
....
.
.
ingresso
Altre caratteristiche
Risoluzione di problemi complessi e non lineari
Problemi per cui non si conoscono le relazioni ingresso-uscita ma si
hanno a disposizione solo dei casi
Capacità di memorizzare
Risposta continua
ad esclusione di un numero finito di discontinuità ad input simili la
rete risponde con output simili
Tolleranza agli errori
scostamenti non significativi dei valori di input vengono
assorbiti dalla rete, diminuendo così il rumore statistico e risultando tolleranti agli errori o
al decadimento del segnale
Tolleranza ai guasti
La presenza di molte unità di processamento parallele fa si che
l'eventuale perdita di un unità ha, nel caso di architetture con molti neuroni, conseguenze
non irreparabili
Svantaggi dell’utilizzo delle reti neurali:
Ai fini dell’apprendimento dobbiamo fornire alla rete neurale tanti più
esempi quanto più fortemente non lineare è il sistema da modellare.
Non sappiamo a priori quale sia la miglior topologia (numero di nodi, di
strati, collegamenti fra nodi e tipo di funzioni che devono implementare i
nodi di ciascun strato) da assegnare alla rete neurale affinché modellizzi
al meglio il nostro sistema.
Una volta che la rete funziona, non sappiamo nulla del suo modello interno, in altre parole
non fornisce spiegazioni sul funzionamento del sistema che stiamo studiando.
La rete è per noi una scatola nera. I problemi non vengono capiti ma risolti.
ingresso
?
uscita
Applicazioni
Compressione dei dati (non secondo una codifica o una corrispondenza esatta)
Eliminazione del rumore dai dati o dai segnali
Riconoscimento segnali sonar
Macchina da scrivere fonetica (dettatura dei testi al computer)
Riconoscimento di caratteri (attribuire un significato ad una forma)
Sistemi di guida automatica (sistemi missilistici, robot microspia)
Classificazione di immagini (gli stessi oggetti cambiano colore, luminosità, tessitura a causa
delle ombre, dell’illuminazione, della verniciatura…)
Analisi finanziarie (previsioni)
Medicina (migliorare le diagnosi)
Il presente: la ricerca in questo campo è particolarmente attiva
IEEE Transaction on Robotics
IEEE Transaction on Fuzzy Systems
IEEE Transaction on Neural Networks
IEEE Transaction on Image processing
IEEE Transaction on NanoBioscience
IEEE Transaction on NanoTechnology
IEEE Transaction on Robotics and Automation
IEEE Transaction on Evolutionary Computation
IEEE Transaction on Systems, Man and Cybernetics
IEEE Transaction on Parallel and Distribuited Systems
IEEE Transaction on Pattern Analysis and Machine Intelligence
IEEE Transaction on Neural Systems and Rehabilitation Engineering
Il futuro ?
Speriamo che acquistino
autocoscienza il più tardi possibile.
Scarica

Lezione 2