I computer ci guardano, scrutano ciò che facciamo e come ci comportiamo. E non solo in senso figurato. La cosiddetta computer vision ("visione artificiale") è diventato una tendenza sempre più marcata nel campo dei sistemi informatici. Facebook, ad esempio, ha sviluppato un software in grado di riconoscere i visi postati sul social network aiutandovi a individuare e taggare i vostri amici presenti nelle immagini; Google Foto sfrutta algoritmi di visione computerizzata per individuare forme e oggetti nelle foto e nelle immagini per categorizzarle automaticamente; Twitter può individuare immagini pornografiche senza che ci sia bisogno della revisione di un supervisore in carne e ossa ed eliminarle automaticamente.
Se la Rete è stata in grado di "acquisire" il senso della vista è merito dell'intelligenza artificiale e, in particolare, delle reti neurali che rendono possibile il deep learning. Grazie a questa tecnologia e ai suoi algoritmi, gli scienziati informatici di tutto il mondo stanno tentando di riprodurre il funzionamento del cervello umano così da poter analizzare la struttura del linguaggio e la distribuzione dei termini online.
Disciplina del "passato"
La computer vision, da un punto di vista prettamente tecnologico, è una disciplina abbastanza "datata". I primi esempi di algoritmi in grado di distinguere particolari e oggetti nelle immagini si hanno già nei primi anni di questo secolo, ma è nel 2012 che si ha un punto di svolta fondamentale. Nel corso dell'ImageNet (un contest nel quale gruppi di ricerca si confrontano a colpi di codice per creare sistemi intelligenti per il riconoscimento delle immagini) di quell'anno un pool di scienziati dell'Università di Toronto presenta una tecnologia in grado di individuare animali e persone all'interno di una foto confrontandola con milioni di altre immagini piuttosto che seguendo le indicazioni codificate a mano da ingegneri e sviluppatori.
Il gruppo di informatici canadesi è tra i primi al mondo a utilizzare algoritmi di deep learning in maniera innovativa nel campo della computer vision. Si tratta solo del primo caso in cui l'intelligenza artificiale e le reti neurali sono state utilizzate assieme nel riconoscimento delle immagini. Seguendo l'esempio degli scienziati dell'Università di Toronto, i big del campo dell'hi tech (i già citati Google, Facebook e Twitter, ma anche Microsoft, per limitarsi ai più famosi) iniziano a utilizzare tecnologie similari per costruire sistemi innovativi di computer vision.
Le GPU per l'intelligenza artificiale
Il segreto del sistema ideato dagli ingegneri canadesi sta nell'utilizzo delle GPU al posto delle CPU. Le unità di calcolo delle schede grafiche hanno un'architettura differente rispetto alle unità di calcolo centrali: anziché elaborare un'istruzione per volta in maniera seriale portano avanti migliaia di operazioni contemporaneamente (in parallelo). Questo vuol dire che la potenza di calcolo di una tipica GPU è decine di volte superiore a quella di una comune CPU. Per questo motivo le schede grafiche, in un processo chiamato GPU computing, sono utilizzate con una frequenza sempre maggiore in compiti e operazioni informatiche che richiedono una grande capacità di calcolo: non solo riconoscimento visuale, ma anche analisi del linguaggio, ricerca nel web (motori di ricerca) e sicurezza informatica.
Deep learning all'ennesima potenza
Nel corso dell'edizione 2015 dell'ImageNet, un gruppo di ricercatori Microsoft ha dato dimostrazione di cosa può essere capace una rete neurale quando è in grado di dispiegare per intero la sua potenza. Nei laboratori di Redmond, infatti, sono riusciti a creare un sistema di deep learning, basato su 152 livelli di astrazione: se si pensa che i supercomputer più potenti attualmente utilizzati per compiti di intelligenza artificiale sono in grado di considerare, nel migliore dei casi, "appena" una trentina di livelli di astrazione, si capisce che il progetto Microsoft può essere davvero rivoluzionario.
Livelli di neuroni
Per capire meglio di cosa si sta parlando, però, è necessario comprendere cosa si intende per "livelli di astrazione" o, per analogia con il cervello umano, per "livelli di neuroni". Un sistema di intelligenza artificiale o deep learning, in grado di eseguire un solo algoritmo per volta, ha un solo livello di astrazione; una AI (acronimo di artificial intelligence) dotata di un secondo algoritmo che analizza i risultati della prima astrazione ha due gradi di astrazione; e così via. Il sistema deep learning messo a punto dagli ingegneri Microsoft, dunque, sfrutta la potenza di migliaia di GPU per eseguire ben 152 diverse operazioni sulla stessa immagine o foto, così da riuscire a distinguerne anche i particolari apparentemente più insignificanti.
L'importanza dei livelli di astrazione è presto detta: maggiore il numero di livelli, migliore la capacità di apprendimento automatico di queste macchine. Detto in parole povere, una macchina con più livelli di astrazione/neuroni è più "intelligente" di un sistema che ne ha di meno.
Costruzione difficile
Nel mettere a punto la loro rete neurale a 152 livelli di astrazione, gli scienziati Microsoft hanno dovuto fronteggiare non pochi problemi. I più complessi, però, riguardano la configurazione della rete neurale e la sua costruzione. Al crescere dei livelli di astrazione, infatti, cresce non solo l'intelligenza del sistema informatico ma anche la sua complessità e la sua gestione: gli scienziati si trovano costretti a indovinare il più efficiente tra diversi sistemi estremamente complessi mutualmente alternativi.
Per bypassare questo problema, gli scienziati Microsoft si sono affidati alla stessa informatica. Dalle parti di Redmond, infatti, hanno ingegnerizzato il problema, dandolo in pasto a supercomputer creati appositamente e attendendone il responso. Il sistema informatico esperto analizza la configurazione ideata dal team di ricerca e inizia a formularne delle versioni alternative sino a trovare la più efficacie ed efficiente. In gergo tecnico questa pratica è detta hyper parameter optimization ("griglia di ricerca", in italiano) e permette di risparmiare tempo, potenza di calcolo e importanti risorse economiche.
Problema hardware
Secondo gli ingegneri del team di ricerca Microsoft, si è appena all'inizio di una nuova rivoluzione nel campo dell'intelligenza artificiale nella quale le schede video e il GPU computing rivestiranno un ruolo fondamentale. Secondo alcuni si possono ipotizzare degli scenari dove lo sviluppo delle reti neurali e degli algoritmi di deep learning è automatizzato e affidato a una sorta di "selezione naturale" basata sul silicio.
Affinché questo panorama si avveri e il deep learning crei macchine sempre più intelligenti, però, è necessario che i centri di ricerca specializzati in intelligenza artificiale continuino a investire su sistemi informatici sempre più potenti. Si è di fronte, dunque, a un problema hardware: affinché gli algoritmi si affinino e diventino sempre più precisi, c'è bisogno di maggiore potenza calcolo. Per questo motivo Microsoft e le altre grandi aziende hi-tech stanno investendo con convinzione su chip FPGA (field programmable gate array), circuiti integrati che possono essere programmati via software per compiere specifiche operazioni di calcolo.