Soft Computing
In contrapposizione con i metodi convenzionali (hard
computing), le tecniche di soft computing non si basano su
procedimenti esprimibili in forma chiusa (es. una formula
matematica che risolve una certa equazione), ma su
procedure di ricerca ed ottimizzazione che ‘funzionano’ anche
in presenza di dati
• qualitativi
• incerti
• imprecisi
• incompleti
Soft computing e metodi
“classici” di ottimizzazione
Esistono altri settori che si occupano di ottimizzazione (es.
ricerca operativa) e si sono sviluppati all’interno di altre
discipline (matematica, ecc.)
Tali metodi di ottimizzazione sono tuttavia focalizzati sulla
teoria matematica.
Il soft computing si sviluppa nella comunità dell’intelligenza
artificiale. Quindi è focalizzato sulla emulazione di azioni e
processi intelligenti.
Per questo motivo il soft computing si caratterizza anche per
un’ampia presenza di metodi derivati da modelli di fenomeni
naturali.
Apprendimento da esempi
Uno dei settori in cui il soft computing ha trovato applicazione è
l’apprendimento da esempi, che possono essere costituiti da:
• dati caratterizzabili attraverso parametri (feature) che possiamo
estrarre (ad es. per problemi di classificazione)
• insiemi di coppie di dati corrispondenti che rappresentano:
- i dati a disposizione
- il risultato che vogliamo ottenere dall’elaborazione di quei dati.
Si parla in questo caso rispettivamente di:
• Metodi di apprendimento non supervisionato
• Metodi di apprendimento supervisionato
Tassonomia dei metodi di soft computing
Fanno parte del soft computing:
• Reti neurali
• Calcolo evoluzionistico
• Metodi basati sulla logica fuzzy
• Ragionamento probabilistico
Ispirazione Biologica
Gli approcci della IA sono spesso basati sull’emulazione di processi di tipo
biologico o ispirato da fenomeni osservabili in natura.
Anche il soft computing è caratterizzato in buona parte da questo tipo di
approccio.
Reti neurali
Interazioni fra neuroni
Calcolo
Evoluzionistico
Processi evolutivi
darwiniani
Logica fuzzy
Processi logici di
gestione/elaborazione di
dati incerti
Soft Computing e
Computational Intelligence
Ai metodi di soft computing si fa spesso riferimento anche con
il termine Computational Intelligence
Se soft computing evidenzia la capacità dei relativi metodi di
trattare dati incerti o rumorosi (aspetto logico/cognitivo)
computational intelligence evidenzia l’ottenimento di
prestazioni ‘intelligenti’ attraverso metodi di calcolo numerico.
L’unione delle conferenze della IEEE su Reti Neurali, Calcolo
Evoluzionistico e Logica Fuzzy dà origine ogni 4 anni (2 anni
dal 2006) alla World Conference on Computational
Intelligence.
Pertanto, in pratica, i due termini possono essere considerati
come sinonimi.
Reti neurali
Approccio connessionista: sfrutta l’attivazione massicciamente
parallela di processori elementari (neuroni)
I neuroni comunicano fra loro attraverso fitte reti di
connessioni.
Ciascuna connessione è associata ad un peso che determina
l’entità con cui l’uscita prodotta da un neurone influenza
l’uscita del neurone al cui ingresso è collegata.
Modificando opportunamente i pesi associati alle connessioni
è virtualmente possibile riprodurre qualunque tipo di funzione.
Calcolo Evoluzionistico
•Evoluzione di soluzioni attraverso metodi ispirati
all’evoluzione naturale
•‘Ricombinazione’ di soluzioni al fine di ottimizzarne le
prestazioni
•Regolazione automatica di parametri di soluzioni
(algoritmi genetici, evolutionary strategies)
•Progettazione automatica di soluzioni
(programmazione genetica)
•Realizzazione di veri e propri ‘ecosistemi’ costituiti da piu’
popolazioni che evolvono in modo concorrente
(coevoluzione)
Logica Fuzzy
• Estensione a valori variabili in modo continuo fra 0 e 1
della logica booleana
• Una espressione fuzzy non deve essere o vera o falsa,
ma si ammettono diversi gradi di verità
• Possibilità di elaborare, secondo una precisa teoria
matematica, concetti essenzialmente qualitativi
Es. pessimo = [0, 0.2]; scarso = [0.2, 0.5]
buono = [0.5, 0.8]; ottimo =[0.8, 1]
ma con diversi gradi di appartenenza
0 è (ad es.) pessimo con grado di appartenenza 1;
0.2 scarso con g.d.a. 0.5 e pessimo con g.d.a. 0.5 ecc.
• Possibilità di interpretare il livello di appartenenza come
una probabilità, e di definire quindi meccanismi logici di
tipo probabilistico
Ragionamento probabilistico
• Utilizza una struttura dati detta rete bayesiana (o rete
probabilistica, o rete causale, o mappa di conoscenza).
• Una rete Bayesiana ha le seguenti proprietà:
– La rete è un grafo aciclico.
– Ogni nodo rappresenta una variabile casuale.
– I nodi sono connessi da archi indicanti le dipendenze, in
senso probabilistico, tra i nodi.
– Ogni nodo ha una tabella delle probabilità condizionate
che quantificano gli effetti che i nodi genitori hanno su di
esso.
Applicazioni e settori di applicazione
•
•
•
•
Classificazione
Interpolazione / Regressione
Identificazione di sistemi
Progettazione automatica con applicazioni a:
– Elaborazione di immagini e segnali
– Pattern recognition
– Visione Artificiale
– Controlli automatici
– Identificazione di sistemi
– Previsioni in campo finanziario
– Ottimizzazione combinatoria
– Robotica …………. ecc.
Concetti di base / parole chiave
• Ricerca di punti critici in spazi n-dimensionali, con n
tipicamente grande => OTTIMIZZAZIONE
• ESPLORAZIONE dello spazio di ricerca
• Identificazione di caratteristiche =>
FILTRAGGIO/ESTRAZIONE DI INFORMAZIONE
• Segmentazione dello spazio di ricerca
=> CLASSIFICAZIONE
• Capacità di trattare dati rumorosi => ROBUSTEZZA
• APPRENDIMENTO INDUTTIVO
• PROGETTAZIONE AUTOMATICA
Complementarità delle discipline
Ciascuno dei settori del soft computing presenta proprietà particolari,
spesso complementari. Diverse metodologie possono essere
utilizzate per realizzare soluzioni ibride.
Esempi:
• Progettazione di reti neurali per mezzo di algoritmi evoluzionistici
• Definizione di regole fuzzy per mezzo di algoritmi evoluzionistici
• Sistemi neuro-fuzzy (con numerose applicazioni nei controlli)
• Controllo fuzzy di algoritmi evolutivi
Un testo sull’argomento:
A. Tettamanzi, M. Tomassini “Soft Computing: Integrating
Evolutionary, Neural and Fuzzy Systems”, Springer, 2001
Apprendimento Automatico
Reti Neurali
Generalità
Stefano Cagnoni
Reti Neurali Biologiche
Neurone
• Circa 1011 nell’uomo, di oltre 100 tipi diversi, con oltre
1014 connessioni
• All’attivazione (stimoli ricevuti attraverso i dendriti >
soglia) gli impulsi generati dall’eccitazione del soma si
propagano attraverso l’assone verso gli altri neuroni.
Dendriti
Nucleo
Corpo cellulare
(soma)
Assone
Reti Neurali Biologiche
Neurone
• I punti di contatto fra neuroni si chiamano sinapsi e
possono essere di tipo inibitorio o eccitatorio
• A livello di sinapsi le terminazioni dei 2 neuroni sono
separati da un’intercapedine attraverso cui avviene la
trasmissione del treno di impulsi per via elettrochimica
(emissione di una sostanza detta mediatore sinaptico)
• Frequenza massima degli impulsi <= 1KHz, quindi
trasmissione dell’informazione piuttosto lenta
• Ipotesi di trasmissione distribuita e parallela
dell’informazione
Reti Neurali Artificiali: cenni storici
•Paradigma computazionale ispirato da un modello
matematico del neurone (McCulloch & Pitts 1943) realizzato
per studiare le capacità computazionali del neurone e delle
reti neurali biologiche.
•Hebb (1949) propone un modello di apprendimento ‘sinaptico’
(legge di Hebb)
•Rosenblatt (1957) definisce il percettrone e un algoritmo di
apprendimento, con cui dimostra la possibilità di riconoscere
forme e risolvere altri problemi.
•Alla fine anni ‘60 abbandono dela ricerca per i limiti
evidenziati da Minsky (Perceptrons, 1969): non erano in grado
di imparare lo XOR.
•Riaffermazione alla fine degli anni ‘80 (Rumelhart et al.,
Grossberg, Hopfield).
Neurone artificiale
Costituito da due stadi:
•sommatore lineare (produce il cosiddetto net input)
net = Sj wj ij
•funzione di
o = f (net)
attivazione
f
non
lineare
a
soglia
Neurone artificiale
Possibili funzioni di attivazione:
o=
o=
1
se (x - q) > 0
0
se (x - q) < 0
+1
se (x - q) > 0
-1
se (x - q) < 0
Gradino
Gradino bipolare
o=
1 / (1 + e -(x -q))
Sigmoide
o=
tanh (x - q)
Tangente iperbolica
q è una costante (bias) che ha il ruolo di soglia.
Può essere inglobato nel net aggiungendo una connessione
con ingresso costante uguale ad 1 e peso associato uguale al
bias.
Rete Neurale Artificiale
Architettura a più strati:
• strato di ingresso
• strato/i nascosto/i
• strato di uscita
IN
OUT