Cerca nel blog

2021/06/06

Perché la guida autonoma è così difficile: la bufala del riconoscimento di schemi spacciato per “intelligenza”

Ultimo aggiornamento: 2021/11/12 1:40.

Vado subito al sodo per chi ha fretta. Faccio tre asserzioni-scommessa:

  • Il machine learning è semplicemente un riconoscimento di schemi (pattern recognition) e non costituisce “intelligenza” in alcun senso significativo della parola.
  • Il riconoscimento di schemi fallisce in maniera profondamente non umana e in situazioni che un umano invece sa riconoscere in maniera assolutamente banale. Questo rende difficilissimo prevedere e gestire i fallimenti del machine learning e quindi rende pericolosa la collaborazione umano-macchina.
  • Qualunque sistema di guida autonoma o assistita basato esclusivamente sul riconoscimento degli schemi è destinato a fallire in maniera imbarazzante e potenzialmente catastrofica.

Sono asserzioni molto forti, e le faccio sapendo di non essere un esperto di questi settori ma semplicemente un loro osservatore con un pizzico di esperienza personale: se vi fidate di me, lo fate a vostro rischio e pericolo, e sono disposto a cambiare idea di fronte a smentite documentate (e francamente sarei contento di perdere questa scommessa). Però temo che ignorare queste riflessioni possa essere un grosso pericolo per molti. 

Premetto inoltre che non sto dicendo che l’intelligenza artificiale è una bufala, ma che il machine learning viene spesso spacciato per “intelligenza”. E prima di criticare, vi chiedo di leggere attentamente le parole che ho scelto con cura nel formulare le mie asserzioni-scommessa.

Provo a spiegare cosa mi ha portato a queste conclusioni provvisorie.

Prima di tutto riassumo cosa si intende per machine learning: in estrema sintesi, si danno in pasto a un software tantissimi esempi di una cosa, tantissimi esempi di cose differenti (ossia che non sono quella cosa) e lo si “premia” quando riconosce correttamente la cosa in questione. Questo apprendimento automatico può raggiungere livelli di affidabilità altissimi e in molti casi funziona egregiamente. Il riconoscimento ottico dei caratteri (OCR) e il riconoscimento vocale sono esempi di grande successo del machine learning.

Ma si può dire che un sistema di OCR sia intelligente? Capisce che sta leggendo un sonetto di Shakespeare o una mail di spam, e può quindi adeguarsi di conseguenza? È in grado di considerare il contesto e capire che magnifica e magni fica sono due letture molto differenti e potenzialmente imbarazzanti, ma che la seconda potrebbe essere valida se lo scrivente si esprime in romanesco? Un lettore realmente intelligente lo capirebbe dal contesto (e dalla sua conoscenza delle attività sessuali umane). Un OCR no. Non è intelligente, perché non ha conoscenza del mondo reale, ma conosce soltanto delle forme (le lettere) e assegna loro una probabilità di corrispondere a uno dei modelli che conosce. Non sa nulla del loro significato e quindi non può correggersi di conseguenza. E non importa quanti miliardi di campioni di lettere o di parole gli dai: non acquisirà mai la comprensione del testo.

Ogni tanto questi sistemi di riconoscimento sbagliano, ma non è un problema. Se un sistema di OCR “legge” una parola al posto di un’altra non muore nessuno. Se Alexa crede che l’abbiate chiamata, quando invece stavate pronunciando il nome della vostra spasimata Alessia durante un momento di passione, il peggio che può succedere è che la registrazione del vostro amplesso finisca nel cloud di Amazon e venga scambiata fra i dipendenti dell’azienda che fanno il monitoraggio dei campioni audio. Imbarazzante, ma probabilmente non letale.

La ragazza che si chiama Alessia è un cosiddetto edge case: un caso limite, una situazione rara che però fa sbagliare il sistema di riconoscimento.

Questi sbagli avvengono in modi strani perché l’addestratore umano, quello che insegna al software a riconoscere una forma, non riesce a calarsi nella “visione del mondo” che ha quel software e non riesce ad anticipare tutti i modi possibili nei quali potrebbe prendere un granchio e a insegnargli a riconoscere tutti questi casi limite. 

Lo spiega benissimo uno che di queste cose ne capisce a pacchi, Andrej Karpathy, direttore del reparto di intelligenza artificiale di Tesla, in questa lezione magistrale del 2018, quando mostra queste immagini:

Quante auto sono? Una, quattro o due?
Come si possono annotare (identificare per il software) le linee di corsia quando fanno così?

Altri due esempi fra tanti: un’auto caricata a coda in avanti su una bisarca è un’auto in contromano?

Credit: Roman Babakin / Shutterstock (fonte).

Una bici montata di traverso sul retro di un’auto è una bici che mi sta tagliando la strada e devo quindi frenare?

Dal Tesla Autonomy Day (2019) a 2:06:25.

Di recente su Reddit è stato pubblicato un bell’esempio di questi edge case: un camion ha dei cartelli di stop dipinti sul portellone posteriore, e il sistema di riconoscimento ottico dei cartelli di una Tesla li etichetta e li mostra come se fossero cartelli reali.

Cosa succede se il sistema di decisione dell’auto ritiene che quei cartelli siano reali e quindi inchioda in mezzo alla strada, creando la situazione perfetta per un tamponamento a catena? Ìl sistema è sufficientemente sofisticato da tenere conto del contesto e quindi “sa” che i cartelli stradali normalmente non si muovono lungo le strade, per cui rigetta il riconoscimento e lo ignora nelle sue decisioni di guida?

Un conducente umano, avendo conoscenza del mondo, non avrebbe la minima esitazione: sono cartelli dipinti sul retro di un camion, li posso tranquillamente ignorare. Un sistema di guida autonoma o assistita sarà altrettanto consapevole? E il conducente saprà anticipare questi possibili errori che lui non farebbe mai?

Beh, direte voi, dai, una cosa del genere sarà un caso raro. Poi succede questo:

Una Tesla Model 3 viaggia a 130 km/h e mostra un flusso costante di semafori che appaiono dal nulla sulla corsia del conducente. 

Un essere umano sa in un millisecondo che questo è impossibile, perché ha conoscenza del mondo e sa che i semafori non volano e non compaiono dal nulla; il sistema di guida assistita di Tesla no, perché non “sa” realmente che cosa sono i semafori nel mondo reale e quindi non “sa” che non possono apparire dal nulla a 130 km/h.

Che cosa ha causato questo clamoroso errore di riconoscimento? Un camion che trasportava semafori.

Eh dai, ma i semafori erano spenti, obietterete voi. Poi succede questo:

Questo è esattamente il tipo di errore che un conducente umano non farebbe mai e che invece un sistema di guida basato esclusivamente sul riconoscimento delle immagini farà, e farà in circostanze imprevedibili. Con conseguenze potenzialmente mortali. Se state valutando un’auto dotata di questi sistemi, pensateci bene. Se ne avete una, pensateci ancora di più.

Certo, gli umani commettono altri tipi di errori, per cui alla fine l’obiettivo non è creare un sistema di guida assolutamente infallibile, ma semplicemente uno che fallisca mediamente meno (ossia causi meno incidenti) della media dei conducenti umani.

Tutto questo vuol dire che la guida autonoma basata sul riconoscimento puro degli schemi è impossibile? No. Una soluzione potrebbe essere semplificare l’ambiente operativo (strade su misura, rigidamente normate, accessibili solo a veicoli autonomi/assistiti). Per esempio, un ascensore (che in sostanza è un treno verticale in una galleria verticale chiusa) è un sistema di “guida autonoma” affidabilissimo, che richiede pochissima “intelligenza” grazie a un ambiente operativo ipersemplificato.

Allo stesso tempo, va notato che ci sono esempi di sistemi che interagiscono egregiamente con un ambiente operativo complesso pur avendo una “intelligenza” molto limitata: le api. Con un solo milione di neuroni riescono a navigare, interagire con i fiori, comunicare con le altre api, gestire gli aggressori e avere una società complessa e organizzata (hanno persino delle “votazioni”). Noi abbiamo cento miliardi di neuroni (centomila cervelli d’ape) a testa e non riusciamo a capire come indossare una mascherina o perché. Chiaramente c’è un margine di ottimizzazione che le api sfruttano e noi no, ma è anche vero che un’ape va in crisi quando incontra l’edge case di una cosa che non esiste in natura, tipo una barriera trasparente (il vetro di una finestra).

È anche possibile che estendendo il concetto di riconoscimento degli schemi all’asse del tempo (ossia imparando a riconoscere come cambia un oggetto nel corso del tempo) ed estendendo il concetto di schema a oggetti complessi (incroci, rotatorie, attraversamenti pedonali) si riesca a ottenere risultati accettabili. Ma questo richiede un database di esempi colossale, una classificazione vastissima e una potenza di calcolo ancora più colossale. Nessuno dei sistemi attualmente in commercio ci si avvicina, come spiega bene Filip Piekniewski. Siate prudenti.

Questo articolo vi arriva gratuitamente e senza pubblicità grazie alle donazioni dei lettori. Se vi è piaciuto, potete incoraggiarmi a scrivere ancora facendo una donazione anche voi, tramite Paypal (paypal.me/disinformatico) o altri metodi.

Nessun commento: