< Home
Stampa

Introduzione all’intelligenza artificiale

Sommario

Cosa è l’intelligenza artificiale?

Prima di parlare di “intelligenza artificiale” bisogna prima di tutto definire il concetto di “intelligenza”.

A questa domanda hanno cercato di dare risposta filosofi, matematici, psicologi, neurologi e infine per ultimi gli informatici, e ad oggi non esiste una definizione unica generalmente riconosciuta. Esistono molteplici forme di intelligenza (razionale, empatica, linguistica, ecc.): in queste lezioni ci riferiremo principalmente alla capacità di sviluppare conoscenza tramite la logica, ovvero una intelligenza tipicamente legata all’informatica.

Ma anche con questa definizione più ristretta, in ambito filosofico e in particolare nella teoria della scienza esistono diverse scuole di pensiero, che possiamo (con qualche necessaria semplificazione) raggruppare in due grandi famiglie, quella dei razionalisti e quella degli empiristi.

La famiglia dei razionalisti parte dal presupposto che esista un concetto “ideale” di intelligenza, che si basa su un insieme di regole logiche generali e universali. Il razionalismo è una corrente filosofica che parte dall’assunto che la ragione umana è la fonte di ogni conoscenza. I razionalisti sostengono che, partendo da un insieme di principi fondamentali (assiomi matematici e fisici) si possa arrivare tramite un processo deduttivo ad un ogni altra forma di conoscenza.

La famiglia dgli empiristi invece parte da un approccio opposto, ovvero che la conoscenza è frutto dell’osservazione e della sperimentazione di esperienze concrete, e partendo da queste è possibile tramite un processo induttivo costruire un insieme di principi generali e quindi una conoscenza del mondo. In generale gli empiristi sostengono quindi che la nostra conoscenza del mondo viene costruita a posteriori, dopo aver acquisito sufficiente esperienza del mondo circostante.

Queste due visioni ed il loro sviluppo in particolare negli ultimi tre secoli hanno guidato il progresso scientifico e quello tecnologico, ed anche in ambito informatico hanno guidato la ricerca sullo sviluppo di una “intelligenza artificiale”, ovvero la realizzazione di una macchina “intelligente”.

L’approccio razionalista vede l’intelligenza artificiale come il frutto di una programmazione iniziale da cui poi questa deduce tutta la conoscenza del mondo. L’approccio empirista invece parte dall’esperienza per imparare la conoscenza del mondo e le sue regole.

Secondo i ricercatori Russell e Norvig (autori di un testo fondamentale “Intelligenza Artificiale: un approccio moderno”) ciascuno dei due ambiti di ricerca si suddivide ulteriormente in base al tipo di intelligenza che si vuole replicare, quella legata al pensare (imitare le “regole” che controllano l’intelligenza) o sull’azione (simulare il “comportamento” di un sistema intelligente).

In sintesi abbiamo quindi 4 tipologie di definizione di intelligenza:


RazionaleEmpirico
Ragionamento (pensiero)Pensare razionalmente
Lo studio dell’intelligenza come qualcosa che segue leggi del pensiero perfette e irrefutabili, come la logica e da cui deduce ogni altra conoscenza.
Pensare umanamente
Lo studio dell’intelligenza come riproduzione del funzionamento del cervello fisico, sia neurologico che psicologico, che non necessariamente si traduce in pura logica, ma tiene conto di altri aspetti (cognitivi, emozionali, contestuali)
Comportamento (azione)Agire razionalmente L’intelligenza è espressa tramite una azione basata su regole razionali che consentono di prendere decisioni sulla base delle informazioni a disposizione.Agire umanamente L’intelligenza è espressa tramite la capacità di simulare il comportamento umano, in modo indistringuibile da un osservatore umano.

Ma quindi cosa è una “macchina intelligente”? In base al tipo di approccio cambia il tipo di macchina:

Cosa è l’intelligenza artificiale?SpiegazioneNote
Pensare razionalmenteUna macchina programmata con un insieme di regole generali ed è in grado autonomamente di comprendere la realtà ed risolvere autonomamente problema reale usando solo queste regole.Nell’immaginario popolare è il “robot” della fantascienza classica (Asimov), che parte da un insieme di leggi fondamentali, una programmazione di base da cui discende tutto il resto.
Agire razionalmenteUna macchina programmata con un insieme di regole all’interno di un sistema che le consente di agire autonomamente usando solo queste regole.Si tratta dell’agente intelligente: esso riceve stimoli dall’esterno tramite sensori, elabora i dati secondo la sua programmazione, e poi agisce tramite attuatori per compiere le azioni in base all’input e alla sua programmazione.
Pensare umanamenteUna macchina che costruisce la propria capacità di ragionare apprendendo dal mondo circostante, tramite esempi ed esperienze.Si tratta delle macchine che costruiscono le stesse regole e metodologie del pensiero umano, riproducendo il comportamento del cervello umano.
Agire umanamenteUna macchina che simula il comportamento all’interno di un sistema usando solo l’apprendimento dall’esterno.Si tratta di macchine che riproducono il comportamento umano, anche se internamente hanno una struttura che può essere differente.

Per macchina intelligente e quindi per “intelligenza artificiale” intendiamo quindi, nell’accezione più generale, qualsiasi sistema automatico che sia in grado, nel suo ambito di utilizzo, di recepire degli input da un sistema esterno, e svolgere autonomamente un compito non precedentemente noto non solo senza una supervisione umana ma anche senza essere programmata per svolgere un compito specifico.

In questa definizione rientrano quindi anche molti programmi per computer: sistemi automatici per la diagnosi, sistemi che automatizzano comportamenti in base al contesto, gli avversari nei videogiochi, ecc.

Il test di Turing

Una accezione più ristretta, dovuta invece ad Alan Turing, chiama intelligenza artificiale qualsiasi sistema indistinguibile dall’uomo, tramite il test che porta il suo nome.

Questo test consiste nel verificare un sistema intelligente tramite delle domande poste da un osservatore umano, su un qualsiasi argomento, senza essere in contatto fisico con il sistema osservato (per evitare pregiudizi cognitivi) e senza sapere se l’interlocutore è una macchina o un essere umano. Se l’osservatore, dopo un numero significativo di domande, non è in grado di capire se se si tratta di una macchina o di una persona allora si considera il test superato.

Il test di Turing è quindi una definizione operativa di intelligenza che si basa sul concetto di “agire umanamente”, in quanto viene definito “intelligente” non basandosi su come è fatto internamente, ma come si comporta, un sistema che la nostra esperienza (con tutti i suoi limiti) ci fa dire che si comporta come intelligente. Questo è anche il motivo per cui il test di Turing è considerato controverso da chi viene da un approccio razionalista, perché dipende dall’esperienza e la capacità dell’osservatore umano di fare le giuste domande.

Il test di Turing in ogni caso resta un approccio interessante, in quanto non si pone quindi il problema di come è fatta internamente la macchina intelligente, e quindi lascia spazio all’utilizzo di uno qualsiasi dei quattro approcci sopra descritti.

Vediamo adesso quali macchine intelligenti sono state realizzate e come gli approcci teorici sopra descritti sono stati effettivamente implementati .

Agenti intelligenti

L”approccio di pensiero razionalista consiste nel costruire una macchina a cui dare un sistema di regole in grado di affrontare qualsiasi tipo di problema. Questo approccio, ovvero quello di costruire il “computer intelligente” in grado di risolvere “tutto” è stato per decenni quello principale ed anche quello che più è rimasto nell’immaginario collettivo (il già citato robot di Asimov, che poi ha ispirato le macchine di Terminator o di Matrix) creando anche una idea di intelligenza artificiale che contiene tutte le regole e tramite queste “capisce” e “agisce” nel mondo concreto, una idea che viene spesso associata alle intelligenze artficiali moderne, anche se funzionano in modo completamente diverso.

Purtroppo tutti gli sforzi prodotti in questa direzione ad oggi non hanno portato risultati significativi, e tale approccio è stato abbandonato fin dagli anni 60.

Discorso completamente diverso lo merita invece la realizzazione di agenti razionali in grado di affrontare, sulla base di un insieme di regole, determinati problemi specifici. Parliamo degli agenti intelligenti, applicazioni software che in base agli input provenienti da sensori esterni sono in grado di prendere decisioni sulla base di algoritmi predeterminati. Questo approccio è alla base di molte applicazioni di successo, come i sistemi esperti, i videogiochi o più recentemente prodotti di largo consumo come gli elettrodomestici intelligenti (si pensi alle lavatrici in grado di gestire il lavaggio in base al grado di sporco). In generale gli agenti razionali sono quindi in grado di risolvere problemi in un sistema in cui sono conosciute “a priori” le condizioni di funzionamento e quindi non sono in grado di adattarsi a situazioni impreviste nella programmazione. Questo non li rende meno utili e non vanno considerati come “non intelligenti” in quanto sono in grado in effetti di rispondere alla definzione di intelligenza data sopra.

Machine Learning

L’approccio empirista parte dal presupposto di partire da una macchina senza regole predefinite, ma di insegnarle alla macchina tramite esperienze. Sarà poi la macchina tramite un processo induttivo (trovare correlazioni e schemi generali) a costruire una idea e delle regole della realtà, ed una volta addestrata ad essere quindi autonoma.

Il principio di funzionamento è questo: è prevista una fase di addestramento per esempi (e per ciascun esempio un output corretto) l’obiettivo è di dare un numero sufficiente e significativo di esempi tale da far creare nella memoria della macchina un modello abbastanza generale da gestire nuovi input dando l’output corretto. L’apprendimento automatico è anche una simulazione dei processi cognitivi e quindi è un approccio vicino al “pensare umanamente”: infatti tramite esempi tendiamo a fissare nella nostra mente regole e concetti generali basandoci sull’analogia e quindi sul processo induttivo.

Questo tipo di approccio viene chiamato “machine learning“. Invece di partire da delle regole predefinite e poi usarle sui dati, il machine learning parte dai dati per ricavare un modello della realtà e gestire in autonomia anche situazioni non previste dagli esempi.

Il machine learning si è rivelato, col tempo e con l’aumento della capacità di calcolo dei sistemi informatici, l’idea vincente con cui realizzare sistemi intelligenti, perché è in grado di creare modelli anche a partire da dati ad alta estensionalità e bassa intensionalità (vedi questa lezione), ovvero una grande quantità di dati grezzi come succede coi Big Data, e riuscire a costruire modelli computazionali in grado di organizzare la complessità, individuare cioè analogie e schemi.

I modelli di machine learning sono progettati per svolgere due possibili compiti:

classificazione: il sistema riceve in in input un insieme di dati e in output classifica i dati all’interno di un insieme tramite l’assegnazione di una etichetta.

regressione: il sistema prevede un valore di output a partire da un insieme di input di dati.

Come si vede il machine learning ha un approccio opposto a quello dell’agente intelligente. Se l’agente intelligente è realizzato per risolvere problemi complessi con un algoritmo sofisticato applicato ai dati, il machine learning crea un modello a partire dai dati stessi, in grado di elaborare nuovi dati. Come detto sopra il machine learning simula il pensiero umano, ovvero la capacità del nostro cervello di costruire un modello della realtà a partire dall’esperienza, e usarlo per interagire in modo efficace con la realtà stessa.

Reti neurali e Deep Learning

Le reti neurali sono una evoluzione del Machine Learning, in quanto rientrano in questa tipologia di approccio. Tuttavia ciò che cambia è che questo tipo approccio automatizza in un unica famiglia di strutture vettoriali, le reti neurali, tutto l’apprendimento, e sono in grado di raggiungere una maggiore efficacia nei compiti di classificazione-regressione, al prezzo di una potenza di calcolo enormemente superiore.

La teoria matematica alle spalle del Deep Learning viene dagli anni 60, ma solo dopo il 2010, grazie all’incremento della potenza di calcolo, si è riusciti a raggiungere risultati significativi. Oggi le reti neurali hanno portato ad applicazioni pratiche di grande successo, come i riconoscitori, i generatori ed infine gli LLM e gli Agenti, in grado di ricevere una interazione molto simile a quella che si può avere con un essere umano.

Modelli e tipi di apprendimento

Nel machine learning esistono 3 tipi di apprendimento:

1) supervisionato

il sistema viene addestrato con un insieme di dati di esempio e la relativa classificazione/predizione detta etichetta. Il sistema dopo molti esempi etichettati crea quindi un modello in grado di eseguire autonomamente l’analisi di dati nuovi mai visti, e produrre quindi classificazione (l’etichetta) o previsione (nuovi dati con la stessa etichetta).

Un esempio di modello con apprendimento supervisionato è la classificazione delle recensioni di un servizio o un bene o il riconoscimento della scrittura a mano. E’ sicuramente la forma di machine learning più diffusa e nota.

2) non supervisionato

il sistema riceve dati non etichettati e provvede da solo ad individuare le correlazioni tra loro. Le due principali applicazioni consistono nel:

clustering, ovvero una tecnica statistica che consiste nel raggruppare gli insiemi di dati in strutture che generalizzano comportamenti comuni. In pratica il sistema apprende da solo come associare i dati.

riduzione di dimensionalità, ovvero una tecnica che riceve in input dati vettoriali grezzi composti da molte dimensioni e provvede a ridurre le similitudini e le analogie tra questi per ottenere dati con dimensionalità inferiore.

L’apprendimento non supervisionato si usa in molti ambiti, in particolare per analizzare grandi quantità di dati con l’obiettivo di semplificare la loro analisi nelle fasi successive.

3) apprendimento con rinforzo

Il sistema riceve dati non etichettati e prova ad indovinare una soluzione in base ad un processo iterativo. In base alla distanza della soluzione ipotizzata rispetto a quella corretta, il sistema riceve in fase di addestramento dei premi (se va nella direzione giusta) o penalità (se va nella direzione sbagliata). In base alla risposta il sistema memorizza in una tabella l’associazione tra azioni e risposte e ottimizza la propria funzione di addestramento in modo tale da minimizzare le penalità e massimizzare i premi.

L’apprendimento con rinforzo ha molte applicazioni civili ed industriali, come la realizzazione di sistemi robotizzati che utilizzando sensori ricevono immediatamente risposte rispetto alle proprie azioni e ottimizzano in tempo reale il proprio comportamento (si pensi ad un sistema di guida autonoma).