La storia di ImageNet e Fei-Fei Li (李飛飛)

ImageNet

In una conferenza chiamata TED talks (Technology Entertainment Design), una serie di conferenze con cadenza annuale che parlano principalmente di tecnologia e design, Fei-Fei Li nel 2015 inizia il talk mostrando cosa è in grado di fare una bambina di tre anni, riconoscere immagini e descriverne il contenuto. Ma invita il pubblico a riflettere sul fatto che il più avanzato dei computer non è in grado di svolgere questo compito.
Fa notare che abbiamo fotocamere con milioni di megapixel, ma non abbiamo ancora ridato la vista ai ciechi. Ci sono miriadi di videocamere sparse per il mondo, ma nel 2015 ancora non riescono a riconoscere un bambino che affoga in piscina.

Oggi attraverso i social, siti web, e altro vengono generate una quantità impensabile di immagini e pure non c’erano software in grado di gestire tutti questi contenuti in modo semantico.

Even the smartest machines are blind.

Le macchine sono in grado di trasformare le luci in una matrice bidimensionale di numeri, che se non vengono interpretati non hanno senso in sé.

La nostra evoluzione biologica ha impiegato 540 milioni di anni per riuscire in questo compito. L’elaborazione delle immagini è anche una delle parti più sviluppate del nostro cervello.

Dal 2000 Fei-Fei Li prima durante un dottorato di ricerca al California Institute of Technology e poi nel Vision Lab di Stanford, oggi Vision and Learning Lab ², lavora con i suoi mentori, collaboratori e studenti per insegnare ai computer a vedere. Il campo di ricerca si chiama visione artificiale (computer vision) e apprendimento automatico (machine leaning), che è un settore dell’intelligenza artificiale.

Come possiamo insegnare alle macchine a vedere? Come possiamo insegnare alle macchine come comprendere relazioni tra oggetti, intenzioni e/o azioni?Il primo passo potrebbe essere creare un modello matematico che guardando moltissime immagini impara da quest’ultime, potrebbe individuare forme e colori, ma così facendo non si riesce a generalizzare a immagini con lo stesso contenuto semantico, ma che hanno forme e colori diversi, insomma si possono presentare un’infinità di variazioni.

Ragionando, nessuno dice ad un bambino di tre anni come vedere, lo imparano con esperienze, basandosi sul mondo reale. Un bambino vede migliaia di immagini che sono per lui esempi d’insegnamento. Quindi l’intuizione non è quella di costruire algoritmi sempre migliori e specifici, ma di dare agli algoritmi di apprendimento dati d’insegnamento in modo che possano imparare da soli a riconoscere le immagini. Questo ha dato l’inizio alla raccolta di immagini e con il Prof. Kai Li dell’Università di Princeton Fei-Fei Li lancia nel 2007 un progetto chiamato ImageNet.

ImageNet

ImageNet è un’ampia base di dati di immagini (un archivio di immagini memorizzate su computer con certe regole), realizzata con il fine di migliorare il riconoscimento degli oggetti da parte dei computer, nell'ambito della computer vision. Per raccogliere tutte le immagini necessarie è bastato internet, il più grande archivio di immagini che l’uomo abbia mai creato.

Per realizzare questo archivio è stato utilizzato un potente servizio di crowdsourcing, come Amazon Mechanical Turk (MTurk). Quest’ultimo permette alle aziende o persone (note come requesters) di assumere “crowdworkers” in remoto per eseguire attività on-demand che i computer non sono in grado di fare.

Al culmine della classificazione delle immagini da parte degli esseri umani, ImageNet era uno dei maggiori datori di lavoro di MTurk, il sistema impiegava quasi 50000 dipendenti di 167 paesi in tutto il mondo che hanno etichettato quasi un miliardo di immagini. Questo è lo sforzo che ci è voluto per catturare una frazione delle immagini che elabora il cervello umano nei primi anni di sviluppo.

Nel 2009 il progetto ImageNet ha prodotto un database di 15 milioni d’immagini in cui gli oggetti individuati sono stati classificati in più di 22000 categorie di oggetti e cose, organizzate in parole di uso quotidiano. Questo archivio di immagini classificate, nell'anno 2009, era sia in quantità e sia in qualità senza precedenti. Il database è stato presto aperto gratis a tutta la comunità di ricerca del mondo.

Convolutional Neural Network

Il progetto ImageNet aveva ora i dati per alimentare il “cervello” implementato nel computer, quindi ora la ricerca era pronta per ritornare agli algoritmi. Infatti, la ricchezza di informazioni di ImageNet era perfetta per una particolare classe di algoritmi di machine learning, chiamate Convolutional neural network (CNN), in italiano rete neurale convoluzionale. Sono una versione più complessa delle reti neurali.

Le CNN sono un’innovazione di Kunihiko Fukushima, Geoff Hinton e Yann LeCun, apportata negli anni ’70 e ’80. La progettazione delle CNN segue l’elaborazione della visione negli organismi viventi. Proprio come il cervello, fatto di miliardi di neuroni opportunamente collegati, nelle CNN si hanno unità operative elementari, dove un nodo si comporta in modo simile ad un neurone.

Ogni nodo prende gli input di altri nodi e invia output a altri. A seconda delle implementazioni centinai di migliaia o persino milioni di nodi sono organizzati in strati gerarchici simili al cervello.

La rete neurale chiamata “Neocognitorn” è di tipo gerarchico e multilivello proposta da Kunihiko Fukushima nel 1979 ed è stata fondamentale per la realizzazione delle attuali CNNs. Fukushima si ispirò al lavoro di Hubel e Wiesel svolto tra gli anni ‘50 e ‘60. In quegli anni i due ricercatori hanno notevolmente ampliato le conoscenze scientifiche sull'elaborazione delle immagini da parte del cervello. Il loro lavoro ha dimostrato che le cortecce visive dei gatti contengono neuroni che rispondono individualmente a piccole regioni del campo visivo. Partendo da questa conoscenza si sono sviluppate le CNN che conosciamo oggi, che hanno molti più livelli di elaborazione e che svolgono compiti diversi. In una tipica CNN usata per addestrare il modello di riconoscimento ci sono 24 milioni di nodi, 140 milioni di parametri, e 15 miliardi di connessioni, si parla quindi di un modello enorme. Spiegare com'è fatta una CNN non è lo scopo di questo articolo, quindi la si consideri una scatola nera, che data un’immagine individua gli oggetti al suo interno con una certa precisione, come mostrato nella figura sottostante.

Alimentata dai dati di ImageNet e implementata sulle moderne CPU e GPU necessarie ad addestrare un modello così immenso, la rete neurale convoluzionale ha avuto un successo che nessuno si aspettava. E’ diventata l’architettura vincente nel riconoscimento degli oggetti.

ImageNet Large Scale Visual Recognition Challenge (ILSVRC)

La competizione ILSVRC nasce grazie alla ricercatrice Fei-Fei Li, che propose al team di PASCAL VOC di avviare una collaborazione. Quest’ultima era un’altra competizione che tuttavia si basava su un dataset di appena 20000 immagini su 20 classi di oggetti. La challenge ILSVRC valuta gli algoritmi per il riconoscimento di oggetti e la classificazione delle immagini su larga scala. Lo scopo di questa competizione è quella di consentire ai ricercatori di confrontare i progressi nel rilevamento di una più ampia varietà di oggetti, sfruttando il costoso lavoro di etichettatura, realizzato con il progetto ImageNet. Un’altra motivazione è quella di misurare i progressi della computer vision per l’indicizzazione delle immagini su larga scala per il recupero e l’annotazione⁴.

La competizione si svolgeva ogni anno fino al 2017, tra i vincitori più importanti abbiamo AlexNet che nel 2012 raggiunse il 16% di errore di classificazione (EDC). Successivamente nel 2014 il vincitore GoogLeNet, il risultato di un programma per lo sviluppo della visione artificiale chiamato DeepDream creato dall'ingegnere di Google Alexander Mordvintsev, raggiunse un EDC del 6%. Nel 2015 un team di ricerca di Microsoft ha proposto una CNN con un EDC pari al 4%, superando le capacità umane. Tuttavia come puntualizzato da Olga Russakovsky, le categorie di oggetti presenti nella challenge sono migliaia, mentre l’essere umano è in grado di riconoscere molte più categorie.

Allora si rifletta, il computer ha già le stesse capacità dell’uomo o perfino migliori? Non ancora. Finora abbiamo insegnato ai computer a vedere oggetti. E’ come un bambino piccolo che impara a pronunciare alcuni sostantivi. E’ un risultato incredibile ma è solo il primo. Presto raggiungeremo un’altra pietra miliare dello sviluppo e i bambini inizieranno a comunicare con frasi. Allora invece di dire che c’è un gatto nella foto, diranno anche frasi descrivendo l’immagine. Quindi per insegnare al computer a vedere una foto e generare frasi, il connubio fra Big Data e Machine Learning deve fare un altro passo.

Ora il computer deve imparare sia dalle foto che dalle frasi generate dagli umani. Proprio come nel cervello si intreccia lingua e visione, abbiamo sviluppato un modello che collega parti di oggetti a parole e espressioni nelle frasi. Il team di Fei-Fei Li ha prodotto uno dei primi modelli di visione artificiale capace di generare una frase tipo quella umana quando vede una foto per la prima volta. Questa implementazione ha generato diversi errori e imperfezioni. Quindi il percorso che porta i computer ad andare dall'età zero all'età di tre era faticoso, andare da tre anni a tredici è ancora oggi una sfida.

Fei-Fei Li

Fei-Fei Li è nata a Pechino, in Cina, nel 1976, ma all'età di 16 anni è emigrata negli Stati Uniti.

Li si è laureata in fisica con lode alla Princeton University, ma ha studiato anche informatica e ingegneria. Successivamente ha proseguito gli studi presso il California Institute of Technology, dove ha conseguito il dottorato di ricerca in ingegneria elettrica nel 2005. La sua tesi di dottorato è intitolata “Visual Recognition: Computational Models and Human Psychophysics”.

Dal 2005 all'agosto 2009, Li è stata professore assistente presso il Dipartimento di Ingegneria Elettrica e Informatica della University of Illinois Urbana-Champaign e il Dipartimento di Informatica della Princeton University. Nel 2009 entra a Stanford come assistente professore, nel 2012 viene promossa a professore associato e poi professore ordinario nel 2017. A Stanford, Li è stata direttore dello Stanford Artificial Intelligence Lab (SAIL) dal 2013 al 2018. Nel suo anno sabbatico dall'università di Stanford dal gennaio 2017 all'autunno 2018, Li è entrata in Google Cloud come Chief Scientist di AI/ML e Vice Presidente. In Google, il suo team si concentra sulla democratizzazione della tecnologia AI e sull'abbassamento della barriera per l’accesso alle aziende e agli sviluppatori, inclusi gli sviluppi di prodotti come AutoML.

Fei-Fei li è conosciuta anche per le sue attività senza scopo di lucro, ad esempio è presidente e co-fondatrice dell’organizzazione no-profit AI4ALL⁶, la cui missione è quella di educare la prossima generazione di esperti, filosofi e leader del mondo dell’intelligenza artificiale promuovendo quest’ultima affinché apporti beneficio all'uomo.

Negli ultimi anni, il lavoro di ricerca di Fei-Fei Li si è esteso all’AI e all'assistenza sanitaria, collaborando strettamente con il Prof. Arnold Milstein di Stanford, un professore di medicina riconosciuto a livello nazionale che lavora per migliorare l’assistenza sanitaria⁷. Il progetto si chiama PAC che sta per Partnership in AI-Assisted Care, è una collaborazione interdisciplinare tra la Scuola di Medicina e l’Informatica.

Conclusioni

Nel TED talk Fei-Fei Li dice:

A cose fatte l’idea di usare Big Data per addestrare algoritmi informatici forse oggi sembra ovvia, però nel 2007 non lo era così tanto. Per un bel po’ siamo stati soli in questo viaggio. Dei colleghi mi hanno consigliato di fare qualcosa di più utile all'incarico e avevamo di continuo difficoltà con il finanziamento. Una volta ho scherzato con i miei studenti dicendo che avrei riaperto la lavanderia per finanziare ImageNet. Alla fine in questo modo ho finanziato i miei anni di college. Allora abbiamo continuato e nel 2009 il progetto ImageNet era completo. Eravamo emozionati per il completamento di ImageNet e volevamo che tutto il mondo della ricerca ne beneficiasse, così abbiamo aperto gratis tutto l’insieme di dati alla comunità di ricerca mondiale.

Conclude mostrando la foto di suo figlio Leo, dicendo:

Questo è mio figlio Leo. Nella mia ricerca sulla computer vision, penso a Leo di continuo e al mondo futuro in cui vivrà. Quando le macchine potranno vedere, i medici e gli infermieri avranno un paio di occhi extra instancabili ad aiutarli con la diagnosi e la cura dei pazienti. Le auto saranno più intelligenti e sicure sulla strada. I robot ci aiuteranno a salvare persone intrappolate e ferite. Scopriremo nuove specie, materiali migliore e esploreremo frontiere invisibili con l’aiuto delle macchine. Un po’ alla volta diamo la vista alle macchine. In primo luogo gli insegniamo a vedere. Poi loro ci aiuteranno a vedere meglio. Per la prima volta gli occhi umani non saranno i soli a meditare ed esplorare il nostro mondo. Useremo le macchine non solo per la loro intelligenza, ma collaboreremo anche con loro in modi che neanche immaginiamo. Questa è la mia ricerca, dare ai computer la capacità di vedere e creare un futuro migliore per Leo e per il mondo.

Riferimenti

[1] How we re teaching computers to understand pictures, TED 2015, https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures

[2] Stanford Vision and Learning Lab, http://vision.stanford.edu/

[3] Receptive fields of single neurones in the cat’s striate cortex, D. H. Hubel and T. N. Wiesel, 1959, https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1363130/

[4] Large Scale Visual Recognition Challenge (ILSVRC), Olga Russakovsky, Jia Deng, Hao Su, Jonathan Krause, Sanjeev Satheesh, Sean Ma, Zhiheng Huang, Andrej Karpathy, Aditya Khosla, Michael Bernstein, Alexander C. Berg and Li Fei-Fei, http://image-net.org/challenges/LSVRC/

[5] Going Deeper with Convolutions, Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich, 2014, https://archive.org/details/arxiv-1409.4842

[6] AI4ALL, https://ai-4-all.org/

[7] Stanford Partnership in AI-Assisted Care, https://aicare.stanford.edu/

Computer Engineer, artificial intelligence enthusiast.