Computational Intelligence: computazione ispirata dalla natura
Una spinta importante nello sviluppo di algoritmi è la progettazione di modelli algoritmici per risolvere problemi sempre più complessi. Enormi successi sono stati ottenuti attraverso la modellizzazione dell'intelligenza biologica e naturale, dando luogo ai cosiddetti "sistemi intelligenti". Questi algoritmi intelligenti includono reti neurali artificiali, calcolo evolutivo, intelligenza dello sciame, sistemi immunitari artificiali e sistemi fuzzy.
Insieme a logica, ragionamento deduttivo, sistemi esperti, ragionamento basato su casi e sistemi di apprendimento automatico simbolico, questi algoritmi intelligenti fanno parte del campo dell'intelligenza artificiale (AI). Solo guardando a questa ampia varietà di tecniche di intelligenza artificiale, questa può essere vista come una combinazione di diverse discipline di ricerca, ad esempio informatica, fisiologia, filosofia, sociologia e biologia.
Ma cos'è l'intelligenza? I tentativi di trovare definizioni di intelligenza provocano ancora un acceso dibattito. I dizionari la definiscono come la capacità di comprendere e trarre profitto dall'esperienza ed avere la capacità di pensare e ragionare (soprattutto in misura elevata). Altre parole chiave che descrivono aspetti dell'intelligenza includono creatività, abilità, coscienza, emozione e intuizione.
I computer possono essere intelligenti? Questa è una domanda che fino ad oggi provoca più dibattito rispetto alle definizioni di intelligenza. A metà del 1900, Alan Turing ha riflettuto molto su questa domanda; egli credeva che si potessero creare macchine in grado di imitare i processi del cervello umano. Nel 1950 Turing pubblicò il suo test di intelligenza del computer, denominato test di Turing. Il test consisteva in una persona che poneva domande tramite una tastiera sia a una persona che a un computer. Se l'interrogatore non poteva distinguere il computer dall'essere umano, il computer poteva essere percepito come intelligente. Una definizione più recente di intelligenza artificiale è venuta dall'IEEE Neural Networks Council del 1996: lo studio su come far fare ai computer cose in cui le persone riescono meglio.
Parte di questa intelligenza è esaminata dalla Computational Intelligence (CI) i cui esperti si concentrano su problemi difficili da risolvere, che richiedono intelligenza, utilizzando sistemi artificiali ma sono risolti dall'uomo e da alcuni animali.
La CI è la branca ideale per affrontare in maniera algoritmica la “complessità”, attraverso l'analisi e la sintesi dei cosiddetti “Sistemi Intelligenti". Il punto di svolta sta nel differente approccio, rispetto a quello classico, che tale branca, con i suoi algoritmi, propone, essendo essi modellati partendo dalla cosiddetta intelligenza biologica. Essi, infatti, sono altresì noti nella letteratura come algoritmi “nature inspired". Le strutture di calcolo fisiche e teoriche, capaci di espletare funzioni relative alla Computational Intelligence e di attuare la trasformazione dei dati grezzi in informazione per poi diventare conoscenza utile al decision making e all'azione, in ambito ingegneristico, talvolta sono note come “Computational System Thinking Machine" (CSTM). Non a caso, le macroaree che vanno a formare il campo di studio della Computational Intelligence sono:
- Artificial Neural Network (Reti Neuronali Artificiali);
- Evolutionary Computing (Computazione Evolutiva);
- Swarm Intelligence (Intelligenza di sciame);
- Fuzzy System (Sistemi Fuzzy).
L'area di ricerca dell'intelligenza computazionale comprende concetti, paradigmi, algoritmi e implementazioni per sviluppare sistemi che mostrano comportamenti intelligenti in ambienti complessi. Tipicamente vengono adottati metodi subsimbolici e analoghi alla natura che tollerano una conoscenza incompleta, imprecisa e incerta. Di conseguenza, gli approcci risultanti consentono soluzioni approssimative, gestibili, robuste ed efficienti in termini di risorse.
La strategia generale adottata nell'area dell'intelligenza computazionale è quella di applicare tecniche e metodi di approssimazione che possano trovare soluzioni grossolane, incomplete o solo parzialmente valide a determinati problemi. L'idea dominante è analizzare le strategie di risoluzione dei problemi così come si verificano in natura. Alcuni aspetti di tali strategie di soluzione vengono poi imitati o simulati al computer, di solito senza cercare di modellare correttamente ed esaurientemente i sistemi originali, né garantire la plausibilità biologica della simulazione. Rappresentanti di questo tipo particolarmente riusciti e quindi praticamente rilevanti sono le reti neurali artificiali.
CI studia, quindi, problemi per i quali non esistono algoritmi computazionali efficaci, o perché non è possibile formularli o perché sono NP-hard e quindi non efficaci nelle applicazioni reali. Gli organismi biologici risolvono ogni giorno questi problemi: estrarre significato dalla percezione, comprendere il linguaggio, risolvere problemi di visione computazionale mal definiti grazie all'adattamento evolutivo del cervello all'ambiente, sopravvivere in un ambiente ostile. Tuttavia, tali problemi possono essere risolti in diversi modi.
Una buona parte della ricerca sulla CI riguarda le funzioni cognitive di basso livello: percezione, riconoscimento di oggetti, analisi del segnale, scoperta di strutture nei dati, associazioni semplici e controllo. I metodi sviluppati per questo tipo di problemi includono supervisione e apprendimento non supervisionato da parte di sistemi adattivi e comprendono non solo approcci neurali, fuzzy ed evolutivi, ma anche approcci probabilistici e statistici, come le reti bayesiane. Questi metodi vengono utilizzati per risolvere lo stesso tipo di problemi in vari campi come riconoscimento di modelli, elaborazione del segnale, classificazione e regressione, data mining. Una grande sfida per la comunità CI è quella di proporre una rappresentazione della conoscenza e strutture di recupero più efficienti, magari modellate sulla memoria associativa del cervello, usando diverse rappresentazioni della conoscenza per scopi diversi.