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
Soft computing e metodi classici di ottimizzazione Esistono altri settori che si occupano di ottimizzazione (es. ricerca operativa) e si sono sviluppati allinterno di altre discipline (matematica, ecc.) Tali metodi di ottimizzazione sono tuttavia focalizzati sulla teoria matematica. Il soft computing si sviluppa nella comunità dellintelligenza artificiale. Quindi è focalizzato sulla emulazione di azioni e processi intelligenti. Per questo motivo il soft computing si caratterizza anche per unampia presenza di metodi derivati da modelli di fenomeni naturali.
Uno dei settori in cui il soft computing ha trovato applicazione è lapprendimento 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 dallelaborazione di quei dati. Si parla in questo caso rispettivamente di: Metodi di apprendimento non supervisionato Metodi di apprendimento supervisionato Apprendimento da esempi
Fanno parte del soft computing: Reti neurali Calcolo evoluzionistico Metodi basati sulla logica fuzzy Ragionamento probabilistico Tassonomia dei metodi di soft computing
Gli approcci della IA sono spesso basati sullemulazione 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 Ispirazione Biologica
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 lottenimento di prestazioni intelligenti attraverso metodi di calcolo numerico. Lunione 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 lattivazione massicciamente parallela di processori elementari (neuroni) I neuroni comunicano fra loro attraverso fitte reti di connessioni. Ciascuna connessione è associata ad un peso che determina lentità con cui luscita prodotta da un neurone influenza luscita 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 allevoluzione 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 sullargomento: 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 nelluomo, di oltre 100 tipi diversi, con oltre connessioni Allattivazione (stimoli ricevuti attraverso i dendriti > soglia) gli impulsi generati dalleccitazione del soma si propagano attraverso lassone verso gli altri neuroni. Nucleo Corpo cellulare (soma) Dendriti 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 unintercapedine 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 dellinformazione piuttosto lenta Ipotesi di trasmissione distribuita e parallela dellinformazione
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 = j w j i j funzione di attivazione f non lineare a soglia o = f (net)
Neurone artificiale Possibili funzioni di attivazione: o = 1 se (x - 0 se (x - o =+1se (x - -1 se (x - o = 1 / (1 + e -(x - ) ) o = tanh (x - Gradino Gradino bipolare Sigmoide Tangente iperbolica è 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