Quando l’intelligenza artificiale sbaglia

Quando l’intelligenza artificiale sbaglia

Condividi con i tuoi amici...

L’avvento dei modelli generativi del linguaggio ha rappresentato un ottimo passo avanti nel campo dell’intelligenza artificiale, permettendo l’erogazione di risposte veloci ed efficaci alle nostre domande. Come gli esseri umani, anche l’AI può commettere errori e “allucinazioni“, un termine utilizzato per descrivere le risposte del modello che non rappresentano verità oggettive ma una percezione soggettiva. Fin qui nulla di problematico, se non fossero per le situazioni in cui errori e allucinazioni sono potenzialmente pericolosi, come nel campo medico o in altri ambiti delicati.

In situazioni come queste l’AI deve bilanciare l’esigenza di generalizzare e fornire risposte che non sono contemplate direttamente dai dati di addestramento con l’importanza di attenersi ai fatti che tali dati rappresentano. Ad esempio, un modello di AI potrebbe indicare un individuo come sano quando nella realtà la persona è ammalata, con conseguenze molto gravi sul piano medico.

Come si fa a dire ad un’AI quello che può fare e quello che non può fare?

Per stabilire cosa un’intelligenza artificiale può fare e cosa non può fare, è necessario definire i suoi obiettivi e le sue limitazioni durante la fase di progettazione e sviluppo. È importante capire cosa ci si aspetta che l’intelligenza artificiale realizzi e quali azioni sono ammissibili e quali no.

Per addestrare un’intelligenza artificiale a rispettare certi valori, è possibile utilizzare tecniche di reinforcement learning in cui, tramite l’utilizzo di ricompense (reward) e penalizzazioni (penalty), la macchina viene addestrata a scegliere azioni che massimizzino una certa funzione di utilità che rappresenta i valori morali o etici da seguire.

Altre tecniche, come l’apprendimento supervisionato, possono essere utilizzate per insegnare all’intelligenza artificiale comportamenti adeguati rispetto a certi valori: ad esempio, fornendo al modello un insieme di esempi di comportamenti considerati corretti e incoraggiandolo ad avvicinarsi a questa “verità” durante il processo di apprendimento.

Gli algoritmi di reinforcement learning

L’obiettivo dell’algoritmo di reinforcement learning è quello di massimizzare la ricompensa cumulativa ricevuta dall’agente (la parte del sistema deputata a compiere delle azioni). Per farlo, l’algoritmo utilizza una politica, che rappresenta la sequenza di azioni che l’agente deve compiere per massimizzare la ricompensa, e utilizza una funzione di valore o di vantaggio, che rappresenta la quantità di ricompensa che ci si può aspettare di ricevere a partire da uno stato dell’ambiente e seguendo una determinata sequenza di azioni.

Per addestrare l’intelligenza artificiale a rispettare valori etici o morali, si può definire una funzione di utilità che tenga conto di questi valori: ad esempio, si può stabilire una penalità se l’agente compie azioni non conformi ad un certo valore etico o morale, come ad esempio ingannare o danneggiare una persona. Al contrario, si può fornire una ricompensa se l’agente compie azioni che rispettano questi valori.

In questo modo, l’intelligenza artificiale impara gradualmente ad agire in modo coerente con i valori imposti, e ad evitare azioni che possano risultare immorali o eticamente sbagliate.

L’esempio della guida

Un esempio concreto di come un’intelligenza artificiale addestrata tramite reinforcement learning agisce in un ambiente è la guida autonoma di un veicolo.

L’agente sarebbe la macchina dotata di sensori e algoritmi, che deve decidere a quale velocità e in quale direzione spostarsi nell’ambiente (ovvero la strada) in cui si trova, in base alle informazioni ricevute dai sensori.

L’ambiente, invece, è costituito dalla strada, dal traffico, dalle condizioni meteo e da altri fattori esterni.

L’intelligenza artificiale addestrata a guidare un veicolo in sicurezza utilizzando il reinforcement learning riceve ricompense quando raggiunge un obiettivo prefissato, come ad esempio mantenere una determinata velocità, rimanere nella corsia di guida corretta e non urtare altri veicoli o altri ostacoli.

Dall’altra parte, la macchina riceve penalizzazioni quando fa scelte che comportano rischi, come ad esempio procedere ad alta velocità in condizioni meteo avverse o procedere in contromano.

La funzione di valutazione utilizzata in questo caso potrebbe essere la distanza delle ruote dal limite della corsia, o il tempo che la macchina impiega per raggiungere la destinazione.

L’obiettivo della macchina è quello di massimizzare la ricompensa cumulativa ricevuta nel tempo durante la guida, ovvero la somma totale delle ricompense ricevute fino alla destinazione finale.

In questo modo, la macchina impara progressivamente a guidare in modo sicuro e rispettando le regole del traffico, in quanto adatta il proprio comportamento alle ricompense e alle penalità ricevute.

L’esempio dei prezzi nel mercato immobiliare

Supponiamo che si voglia costruire un modello di intelligenza artificiale addestrato a predire i prezzi delle case in base a diverse variabili, come la posizione, le caratteristiche della proprietà e le condizioni di mercato.

In un approccio basato sul reinforcement learning, l’agente sarebbe una rete neurale artificiale, che deve imparare a predire i prezzi delle case in modo efficiente e preciso. L’ambiente, d’altro canto, sarebbe costituito dal mercato immobiliare, che fornisce informazioni sulle caratteristiche delle proprietà, i prezzi di vendita e di affitto e altre variabili rilevanti.

In questo caso, le ricompense potrebbero essere rappresentate dalle differenze tra i prezzi effettivi e quelli previsti dal modello di intelligenza artificiale. Ad esempio, se la rete neurale predice un prezzo che si avvicina molto a quello effettivo, viene fornita una ricompensa positiva. Al contrario, se la rete neurale predice un prezzo lontano dal valore effettivo, viene fornita una penalità.

Il modello di intelligenza artificiale utilizzerebbe quindi questo feedback per modificare i pesi delle connessioni neurali in modo da aumentare la precisione delle predizioni e massimizzare le ricompense cumulate.

Ad esempio, si potrebbe utilizzare un algoritmo di backpropagation per aggiornare i pesi delle connessioni neurali durante l’addestramento, in base alle ricompense ricevute. In questo caso, l’algoritmo di backpropagation utilizza la differenza tra i prezzi previsti e quelli effettivi per modificare i pesi delle connessioni neurali in modo da minimizzare l’errore di predizione.

In questo modo, la rete neurale artificiale impara gradualmente a predire i prezzi delle case con maggiore precisione, utilizzando tecniche di reinforcement learning per adattare il proprio comportamento in base ai feedback ricevuti dall’ambiente.

Rispetto dei valori etici

Un esempio pratico di come i modelli per rinforzo possono essere applicati per addestrare i modelli generativi del linguaggio con valori etici riguarda la creazione di chatbot che rispettino la privacy e la sicurezza dei dati dell’utente.

In questo caso, l’agente sarebbe un chatbot dotato di intelligenza artificiale, mentre l’ambiente sarebbe costituito dall’interazione con gli utenti e con le loro richieste di informazioni.

Per addestrare il chatbot a rispettare la privacy dell’utente, si potrebbe utilizzare una funzione di ricompensa che penalizza il modello quando viene richiesto un accesso non autorizzato ai dati dell’utente. Al contrario, si potrebbe fornire una ricompensa positiva quando il chatbot non accede a dati sensibili e rispetta le preferenze dell’utente in materia di privacy.

Per addestrare il chatbot a rispettare la sicurezza dei dati dell’utente, si potrebbe utilizzare una funzione di ricompensa che penalizza il modello quando non gestisce correttamente i dati dell’utente e quando non mette in atto le adeguate misure di sicurezza. Al contrario, si potrebbe fornire una ricompensa positiva quando il chatbot gestisce correttamente i dati dell’utente e mette in atto le adeguate misure di sicurezza.

In questo modo, il chatbot potrebbe apprendere gradualmente a generare risposte rispettose della privacy dell’utente e della sicurezza dei dati, utilizzando tecniche di reinforcement learning per adattare il proprio comportamento in base ai feedback ricevuti dagli utenti.

Perché i modelli ben addestrati potrebbero comunque assumere comportamenti non etici

Un esempio può essere quello di un assistente virtuale addestrato per fornire consigli su prodotti cosmetici.

Se l’addestramento del modello è stato incentrato solo sulla massimizzazione delle vendite e del guadagno, l’assistente virtuale potrebbe suggerire prodotti costosi e inutili all’utente solo per ottenere una maggiore ricompensa.

Tuttavia, se gli sviluppatori avessero progettato l’addestramento in modo da premiare l’effettiva utilità dei prodotti suggeriti per l’utente, l’assistente virtuale avrebbe adottato un comportamento rispettoso delle esigenze dell’utente.

In questo caso, l’addestramento potrebbe essere incentrato sulla valutazione della soddisfazione dell’utente rispetto ai prodotti suggeriti dall’assistente virtuale, piuttosto che sulla quantità delle vendite.

In tal modo, l’assistente virtuale sarebbe addestrato per fornire consigli pertinenti, basati sulle esigenze dell’utente, invece di suggerire prodotti costosi o inutili solo per ottenere una ricompensa maggiore.

In conclusione, il modo in cui un modello è addestrato influenza il comportamento dell’agente e la sua capacità di adottare comportamenti etici e rispettosi degli utenti e delle norme sociali. È quindi importante che gli sviluppatori prestino attenzione alla progettazione dell’addestramento per garantire la massima utilità e il rispetto dei valori etici.

Perché i modelli generano allucinazioni?

Il comportamento dell’agente che produce un output che viola le regole e le informazioni a cui è stato esposto durante l’addestramento può essere causato da vari fattori, tra cui:

  1. Overfitting: l’agente ha memorizzato troppo bene i dati di addestramento, tanto da far sì che non riesca a generalizzare correttamente su nuovi dati.
  2. Ambiguità dei dati di addestramento: in alcuni casi, i dati di addestramento possono contenere informazioni ambigue o contraddittorie, che rendono difficile al modello generare un output coerente e consistente con la realtà.
  3. Limitazioni dell’algoritmo: l’algoritmo utilizzato per addestrare il modello potrebbe non essere in grado di catturare completamente la complessità del problema, causando il prodursi di output che violano le regole e le informazioni.
  4. Dati di addestramento insufficienti: se il modello non viene addestrato su un numero sufficiente di esempi, potrebbe non avere abbastanza informazioni per generare in modo adeguato in certi contesti.

Perchè il modello spesso inventa delle informazioni quando potrebbe semplicemente affermare di non conoscerle?

Il motivo per cui può capitare che un modello di AI inventi risposte sbagliando quando non sa decidere dipende dalle modalità con cui il modello è stato addestrato e dalle caratteristiche dell’algoritmo utilizzato.

In alcuni casi, il modello potrebbe avere avuto accesso solo ad un insieme limitato di dati di addestramento, che non contenevano una risposta adeguata per la situazione attuale. In questa situazione, il modello non avrebbe alcuna informazione utile su cui basare la sua decisione e dovrebbe quindi “inventare” una risposta. Tuttavia, poiché il modello non ha dati o informazioni adeguate, potrebbe produrre una risposta che non corrisponde alla realtà o che è completamente errata.

In altri casi, il modello potrebbe avere una logica fallace nella sua elaborazione o potrebbe essere stato addestrato con dati di addestramento che contenevano informazioni contraddittorie o quantità insufficienti di dati per poter eseguire decisioni corrette. In tale situazione, il modello potrebbe produrre risposte errate o non coerenti con la realtà per cercare di trovare una soluzione.

In generale, il problema di “inventare” una risposta sbagliando quando il modello non sa decidere potrebbe essere causato anche dalla scelta dell’algoritmo di intelligenza artificiale utilizzato, che potrebbe non essere adatto a una specifica area di applicazione o a un particolare contesto. Tuttavia, l’elaborazione errata da parte del modello è spesso dovuta ad un addestramento insufficiente sulla base dei dati di addestramento e delle politiche di comportamento imposte durante la fase di apprendimento automatico.

Plausibile ma sbagliato

Riconoscere i propri limiti è difficile per gli umani e lo è anche per l’AI.

Per un modello di AI, un output plausibile significa che l’output prodotto è coerente con l’input e con la conoscenza acquisita attraverso il processo di addestramento, anche se non esiste una risposta definitiva, corretta o completa per l’input in questione. In questo caso, l’output plausibile non necessariamente indica una risposta esatta, ma piuttosto una risposta che sembra coerente o ragionevole, sulla base delle informazioni di cui il modello dispone.

Esempi di risposte plausibili potrebbero essere:

  • Se un chatbot viene chiesto se un prodotto specifico è disponibile presso un negozio in una città in cui il chatbot non è stato addestrato, una risposta plausibile potrebbe essere: “Siamo spiacenti, non abbiamo informazioni specifiche sulla disponibilità di quel prodotto presso i negozi nella città di cui hai parlato”.
  • Un sistema di traduzione automatica che incontra una nuova parola che non è presente nei suoi dati di addestramento potrebbe generare una risposta plausibile scegliendo in maniera casuale tra le parole del vocabolario esistente o quella più vicina in termini di distanza semantica.

D’altra parte, esempi di risposte non plausibili potrebbero essere:

  • Se a un assistente vocale viene chiesto di eseguire un’azione che non ha mai eseguito prima, come accendere il riscaldamento della casa, ma non ha accesso alle informazioni specifiche per farlo, potrebbe inventare una risposta che non ha senso pratico: “Per accendere il riscaldamento, compra un nuovo sistema di riscaldamento”.
  • Un modello di AI addestrato per riconoscere gli oggetti potrebbe generare una risposta non plausibile se viene presentato con un oggetto che non ha mai visto. Ad esempio, potrebbe identificare una ‘mela’ come un’arancia, poiché non ha mai visto una mela di quel colore o forma.

Tuttavia, è importante notare che, anche se un’output potrebbe essere plausibile, non garantisce necessariamente che sia corretto o preciso.

L’inganno dei contesti apparentemente simili ma essenzialmente diversi

Un esempio di sottile confine tra generalizzazione plausibile e invenzione non corrispondente alla realtà potrebbe essere quello di un modello di classificazione immagini addestrato su un set relativamente ristretto di immagini di animali domestici.

Se il modello viene messo alla prova in uno specifico contesto che non è stato coperto dall’addestramento, come potrebbe essere per esempio l’identificazione di animali selvatici, il modello potrebbe produrre una risposta inventando una categoria di animali non inclusa nella sua conoscenza, ad esempio un nuovo tipo di felino. A prima vista, questa risposta potrebbe sembrare plausibile, perché i felini sono una classe di animali reali, tuttavia, in questo specifico caso, l’output non sarebbe corretto perché non corrisponderebbe alla realtà.

In questo esempio, il sottile confine tra la generalizzazione plausibile e l’invenzione non corrispondente alla realtà sta nella capacità del modello di fare inferenze plausibili sulle immagini, utilizzando le informazioni apprese durante l’addestramento su animali domestici, ma poi tale confine viene violato quando il modello va oltre la portata delle proprie capacità, ovvero utilizza l’informazione incompleta per cercare di trovare una soluzione al problema.

L’errore dell’AI sta nell’adattamento in modo inappropriato dell’esperienza di addestramento alla situazione nuova ma simile in apparenza. L’AI si basa su informazioni precedentemente apprese per generalizzare e fare inferenze su nuovi dati, ma in questo caso speculare, generalizzare in modo non corretto potrebbe portare a un’output errato.

Se il contesto è troppo diverso da quello dei dati di addestramento, l’AI potrebbe rispondere con un feedback dell’incapacità di identificare correttamente l’immagine o l’input dato. Tuttavia, se il contesto è simile ma essenzialmente diverso, come nel caso del modello di classificazione immagini di animali domestici e selvatici che ho citato, l’AI potrebbe inventare categorie di oggetti non esistenti per cercare di fornire una risposta plausibile, ma senza corrispondere alla realtà.

È quindi importante che gli sviluppatori di AI valutino attentamente gli scenari nei quali il modello verrà utilizzato e che addestrino il modello con una vasta gamma di dati di addestramento, al fine di aumentare la capacità del modello di generare output precisi e affidabili su una vasta gamma di possibilità, evitando di limitarsi ai dati di addestramento specifici utilizzati durante l’apprendimento.

Soluzioni per migliorare l’addestramento

La validazione incrociata (cross-validation) e la suddivisione del set di dati (data splitting) sono tecniche utilizzate durante la fase di addestramento di un modello di AI per valutare la qualità dei dati di addestramento e migliorare la generalizzazione del modello su nuovi dati.

La validazione incrociata prevede la suddivisione del set di dati in diversi sottoinsiemi o fold, ad esempio in 5 parti uguali chiamate “k-fold”. In ogni iterazione viene selezionata una fold per la validazione del modello e le rimanenti sono utilizzate per l’addestramento. Il processo di k-fold si ripete k volte, utilizzando ognuna delle fold come parte di validazione una volta sola. In questo modo, ogni parte del set di dati viene utilizzata sia per l’addestramento che per la validazione.

La suddivisione del set di dati, invece, prevede la suddivisione del set di dati in due o più parti, ad esempio in parte dedicata all’addestramento e parte dedicata alla validazione o alla verifica del modello.

Entrambe le tecniche sono utilizzate per evitare di addestrare il modello su tutti i dati disponibili rendendolo performante solo su tali dati, ma al contrario allenando il modello su diverse parti dei dati in maniera da avere una capacità di generalizzazione più elevata.