Intelligenza. Intelligenza artificiale e reti neurali
L’intelligenza artificiale (IA) è quella disciplina che studia i fondamenti teorici, le metodologie e le tecniche che consentono di progettare sistemi hardware e programmi software capaci di fornire prestazioni che sembrerebbero essere di pertinenza esclusiva dell’intelligenza umana. Il suo obiettivo è quello di riprodurre o emulare l’intelligenza umana, in quanto non vi è alcun motivo che impedisca a priori che talune prestazioni di questa, come la capacità di risolvere problemi mediante procedimenti inferenziali, possano essere fornite da una macchina. Nel caso dell’emulazione, le prestazioni intelligenti sono ottenute utilizzando meccanismi propri della macchina, a volte differenti da quelli dell’uomo ma tali da fornire talvolta prestazioni qualitativamente equivalenti e quantitativamente superiori a quelle umane. Considerando attentamente la storia e la natura dei risultati ottenuti dalle ricerche sull’intelligenza artificiale, si può dire che gli studiosi hanno valutato diversi modelli della razionalità umana, per arrivare alla concezione di una nuova tecnica e di un nuovo sistema di intelligenza artificiale.
I modelli di intelligenza artificiale sono stati sia di tipo antropomorfico (che consentono di ottenere prestazioni analoghe a quelle dell’uomo e di adottarne gli stessi metodi) sia di tipo non antropomorfico. In generale, i modelli non antropomorfici hanno dimostrato caratteristiche di maggiore adattamento e integrazione con le tecniche e i sistemi di intelligenza artificiale già disponibili. Un altro punto importante da considerare è che l’IA non è un argomento disciplinarmente definito né teoricamente codificato ma riguarda problemi di ricerca aperti e di frontiera, estendendo costantemente i limiti del suo interesse e della sua azione. L’intelligenza artificiale può, dunque, anche essere definita come la scienza che affronta il problema di come rappresentare, manipolare e costruire conoscenza circa fatti, azioni e leggi di causalità.
Da un punto di vista metodologico, gli studiosi di intelligenza artificiale hanno l’obiettivo di costruire programmi per l’elaboratore che realizzino alcune attività intellettuali proprie dell’uomo, congiuntamente al tentativo di spiegare i principi basilari dell’intelligenza. Da un punto di vista pratico, diverse aree di ricerca hanno fornito e forniscono tecniche e metodi per realizzare: programmi che determinano automaticamente una sequenza di azioni per risolvere un problema;
• programmi che individuano automaticamente un insieme di valori che soddisfano un dato insieme di vincoli;
• formalizzazioni e ragionamenti per applicazioni che agiscono su rappresentazioni del mondo basate su insiemi di espressioni logiche;
• formalizzazione, ragionamento probabilistico e fuzzy, cioè sfumato (ogni proposizione possiede un valore compreso tra 0 e 1), per la progettazione di programmi che agiscano in condizioni di incertezza riguardo all’ambiente esterno;
• programmi per determinare automaticamente una sequenza di azioni per raggiungere un obiettivo;
• apprendimento automatico (machine learning) per la realizzazione di programmi che migliorano le loro prestazioni in base all’esperienza;
• reti neurali, per applicazioni basate su complesse funzioni non lineari apprese automaticamente dai dati;
• algoritmi genetici, che ottimizzano una funzione basandosi su una metafora evolutiva, intesa come selezione di possibili soluzioni successiva a ciascuna iterazione: l’insieme del processo di selezione delle soluzioni evolve verso una soluzione ideale del problema assegnato;
• sistemi di programmazione e linguaggi dell’IA, che incorporano le tecniche precedenti.
Le reti neurali artificiali sono state progettate per poter risolvere uno dei più grandi problemi dei modelli computazionali, cioè riconoscere e rispondere a stimoli non codificati precedentemente e rispondere non in modo preprogrammato. Le cellule nervose risolvono quotidianamente milioni di questi problemi, e il risultato è proprio l’attività cerebrale.
Le reti neurali artificiali, tramite opportuni algoritmi, simulano le reti neuronali biologiche. Due neuroni sono collegati fra loro: il primo, quello che riceve in ingresso uno stimolo (input) lo elabora, l’elaborazione viene ‘pesata’ e, se supera una determinata soglia, il neurone si attiva e invia un segnale in uscita al neurone a cui è collegato. Il collegamento (assone) fra i due neuroni ha la capacità di attenuare il segnale, e quindi di pesare l’ingresso rispetto all’uscita e di orientare il segnale verso alcuni neuroni rispetto ad altri. Singoli neuroni collegati a schiere di neuroni successivi, a loro volta collegati ad altri gruppi di neuroni, compongono le reti neurali formando principalmente tre strati: strato d’ingresso (input), strato nascosto (hidden), dedicato all’elaborazione dello stimolo composto da colonne di neuroni, e strato di uscita (output) su cui converge il risultato che verrà ritrasmesso successivamente. La moltiplicazione degli elementi neurali connessi in rete tramite collegamenti multipli può rendere tali reti molto complesse, quasi quanto quelle biologiche. Le reti neurali hanno l’enorme pregio di rispondere coerentemente a input non codificati precedentemente, ma anche il difetto di essere una ‘scatola chiusa’ o meglio una ‘scatola nera’, dove il funzionamento non è facilmente comprensibile, e dove può non essere controllabile cosa accade nella rete stessa.