Il futuro degli algoritmi con guida autonoma: il caso Unity

L’Artificial Intelligence (AI) è senza dubbio uno dei trend più caldi e discussi nello scenario tecnologico. Tra le sue innumerevoli definizioni,  si può intendere come una branca dell’informatica che enfatizza la creazione di macchine intelligenti che lavorano, ragionano e pensano come gli essere umani.
Tuttavia, le macchine possono comportarsi come gli uomini solamente se hanno a disposizione una grande quantità di dati riguardo campi applicativi tra i più disparati; maggiore è la quantità dei dati maggiore è la loro intelligenza autonoma. Le intelligenze artificiali devono quindi avere accesso ad oggetti, categorie, proprietà e a tutte le loro relazioni per poter estrarne conoscenza. Insegnare buon senso, ragionamento critico, problem-solving alle macchine non è affatto semplice ed è un processo spesso noioso.    
Un esempio applicato di AI è la autonomous driving, che ricade nella categoria più generica “Autonomous Things”, definita come l’uso dell’intelligenza artificiale per automatizzare funzioni precedentemente eseguite dalle persone. Questa tendenza va oltre la semplice automazione utilizzando soluzioni rigide, perché l’AI è ora in fase di implementazione per sviluppare comportamenti avanzati, interagendo in modo più naturale con l’ambiente e i suoi utenti.  
Danny Lange, VP di AI e Machine Learning presso Unity Technologies, ha di recente rilasciato un’intervista molto illuminante e visionaria riguardo lo sviluppo di nuovi ambienti simulativi integrati con algoritmi di AI:  
“[…] put on your virtual reality goggles, your headset, and you can sit down in a chair, but you can see the interior of the car in front of you, you can try to figure out if you can reach out and touch all of the buttons with it, make sense whether it is too far from you. So actually you are simulating the experience of the in-vehicle experience before you ever put one piece together.
 
Unity Technologies è il produttore di Unity, uno dei motori grafici più famosi esistenti. La sua mission è fornire strumenti accessibili a tutti per sviluppare contenuti interattivi in 2D e 3D. È stato uno dei primi produttori a supportare gli iPhone e oggi vanta collaborazioni con Oculus Rift, Linux e PlayStation 4.  
Gli ambienti simulativi, in casa Unity, sono stati utilizzati principalmente per lo sviluppo di videogiochi, ma perché non andare oltre e pensare di applicare questa grande conoscenza in ambiti come l’automotive, dove l’interazione con l’ambiente è estremamente importante?
Sicuramente occorre avere dei veicoli reali su strada per raccogliere dati in un ambiente reale, ma ciò non ne esclude l’utilizzo di alcuni digitali, in ambienti che modellano la realtà, le strade, i pedoni e tutti i rischi che ne possono conseguire. In questo modo sarebbe possibile verificarne il comportamento, visto che non ci sarebbero dei veri rischi fisici né ai veicoli né alle persone.  
E’ esattamente quello che succede in un videogioco: ti muovi in un mondo 3D modellato sulla realtà, interagisci, cadi, ti scontri contro gli oggetti, tenti di sopravvivere. Si pensi allora all’ambito automotive, dove ora è possibile guidare un veicolo virtuale attraverso una città virtuale. È possibile vedere come l’ambiente deduce le decisioni di quel veicolo, ed è qualcosa che oggi già avviene, ovvero simulare i veicoli nel traffico e imparare (estrarre conoscenza) dall’esperienza.  
Un tale scenario, tuttavia, non è banale: bisogna costruire città, edifici, e tutto l’ambiente circostante.
È indispensabile anche rendere l’ambiente virtuale dinamico, prevedendo pedoni, ciclisti, semafori, in ore diverse del giorno e con condizioni climatiche diverse. L’idea è quella di sfruttare simulazioni parallele, testando e addestrando le auto a guida autonoma in centinaia di migliaia di scenari diversi, con condizioni stradali sempre diverse, in un tempo sicuramente più veloce se comparato con quello che sarebbe necessario per lo stesso numero di test effettuati nel mondo reale.  
Tutto questo richiede una grande potenza di calcolo e di risorse computazionali. Unity è in grado di scalare rapidamente grazie a diversi servizi cloud di cui dispone, rendendo possibile avere esperienze di guida parallele. Inoltre, contrariamente a quanto avviene per i giochi, che sono vincolati al tempo percepito dagli esseri umani, si possono realizzare simulazioni con tempi accelerati e addestrare gli algoritmi molto più velocemente.  
Quello che il team di Unity ha scoperto è un importante cambio di rotta nella modellazione degli ambienti virtuali: invece di realizzare modelli quanto più accurati e fedeli possibili alla realtà sembra esserci la tendenza a creare modelli più semplici e ad inserire molto più rumore (ovvero aleatorietà) all’interno dello scenario simulativo.
Paradossalmente, questa tendenza può condurre ad algoritmi autonomi molto più robusti, in quanto addestrati in ambienti anche molto poco probabili e più complessi rispetto a scenari reali. Il Rumore è la chiave!  
L’intervista di Danny Lange apre la strada a nuovi e interessanti scenari, in cui un ambiente simulativo, nato per videogiochi 3D, può essere in grado di addestrare algoritmi robusti di guida autonoma con non troppa difficoltà.
Il futuro è alle porte, non è assolutamente difficile immaginare che un giorno i veicoli saranno in grado di cooperare, non solo tra loro stessi ma anche con i semafori e le città in cui si muovono. Un mondo intelligente e connesso in grado di migliorare e rivoluzionare la mobilità come oggi la intendiamo!  
,