Home
Deep Learning: perché proprio ora e perché con Python

16 Aprile 2020

Deep Learning: perché proprio ora e perché con Python

di

Trent’anni fa c’era già tutto, la teoria, gli algoritmi. Solo in questi ultimi anni si verificano tuttavia alcune condizioni che permettono l’effettiva esplosione dell’utilizzo delle tecniche di apprendimento computerizzato profondo.

Le due idee chiave del deep learning per la visione computerizzata – le reti neurali convolutive e la retropropagazione – erano già ben esplicitate nel 1989. L’algoritmo Long Short-Term Memory (LSTM), fondamentale per il deep learning delle serie temporali, è stato sviluppato nel 1997 e da allora è cambiato pochissimo. E allora perché il deep learning è decollato solo dopo il 2012? Che cosa è cambiato in questi due decenni?

In generale, tre forze tecniche guidano gli avanzamenti nel machine learning:

  • hardware;
  • dataset e benchmark;
  • miglioramenti algoritmici.

Poiché questo campo è governato dalle scoperte sperimentali più che dalla teoria, i miglioramenti algoritmici sono possibili solo quando sono disponibili dati e hardware appropriati per mettere alla prova le nuove idee (o per estendere di scala le vecchie idee, come spesso accade). Il machine learning non è né matematica né fisica, dove i principali avanzamenti possono essere compiuti con carta e penna. Si tratta di una scienza prettamente ingegneristica.

I veri colli di bottiglia nel corso degli anni Novanta e Duemila sono stati i dati e l’hardware. Ma ecco che cosa è accaduto in questo stesso periodo: è sbocciata Internet e sono stati sviluppati circuiti integrati ad alte prestazioni, trainati dalle esigenze del settore dei videogiochi.

Hardware

Fra il 1990 e il 2010, la velocità delle CPU è cresciuta di un fattore pari a circa 5.000. Di conseguenza, al giorno d’oggi è possibile lanciare piccoli modelli di deep learning anche su un computer portatile, una cosa che sarebbe stata inconcepibile 25 anni fa.

Ma i tipici modelli di deep learning impiegati nella visione computerizzata o nel riconoscimento vocale richiedono una potenza di calcolo che è interi ordini di grandezza superiore a quella offerta da un portatile.

Nel corso degli anni Duemila, aziende come Nvidia e AMD hanno investito miliardi di dollari nello sviluppo di GPU (Graphical Processing Unit) sempre più veloci e a parallelismo massiccio per consentire un fotorealismo sempre più avanzato nei videogiochi: si tratta di veri e propri supercomputer economici e single-purpose, progettati per il rendering in tempo reale di complesse scene tridimensionali.

Dai videogiochi al deep learning

Questo investimento tornò a vantaggio della comunità scientifica quando, nel 2007, Nvidia lanciò CUDA, un’interfaccia di programmazione per le sue GPU. Un piccolo numero di GPU iniziò a sostituire i grandi cluster di CPU in varie applicazioni a elevato parallelismo, a partire dalla modellazione dei fenomeni fisici.

Anche le reti neurali profonde, costituite prevalentemente da tante piccole moltiplicazioni di matrici, sono strutture a elevato parallelismo e, attorno al 2011, alcuni ricercatori iniziarono a scrivere implementazioni CUDA delle reti neurali; fra i primi vi furono Dan Ciresan (Flexible, High Performance Convolutional Neural Networks for Image Classification, in Proceedings of the 22nd International Joint Conference on Artificial Intelligence, 2011, e Alex Krizhevsky (ImageNet Classification with Deep Convolutional Neural Networks, in Advances in Neural Information Processing Systems numero 25, 2012).

È accaduto che il mercato dei videogiochi ha sostenuto lo sviluppo di supercomputer per la nuova generazione di applicazioni di intelligenza artificiale. Capita, talvolta, che le grandi novità abbiano inizio dai giochi. Oggi la Nvidia Titan X, una GPU che costava 1.000 dollari a fine 2015, è in grado di fornire una potenza di calcolo di picco pari a 6,6 TFLOP in precisione semplice: 6.600 miliardi di operazioni float32 al secondo. Una potenza di calcolo 350 volte superiore a quella di un computer portatile recente.

Su una scheda Titan X basta un paio di giorni per addestrare un modello ImageNet del tipo che avrebbe vinto la competizione ILSVRC solo pochi anni fa. E oggi le grandi aziende addestrano i loro modelli di deep learning su cluster di centinaia di GPU sviluppate in particolare per le esigenze del deep learning, come la Nvidia Tesla K80. La pura potenza di calcolo di tali cluster non sarebbe stata possibile senza la disponibilità delle nuove GPU.

Ma c’è anche di più: il settore del deep learning sta iniziando ad andare oltre le GPU e sta investendo su circuiti integrati sempre più specializzati ed efficienti, dedicati al deep learning. Nel 2016, alla sua convention annuale I/O, Google ha rivelato il suo progetto TPU (Tensor Processing Unit): un nuovo tipo di circuito integrato sviluppato espressamente per l’esecuzione di reti neurali profonde, che dovrebbe essere dieci volte più veloce e più efficiente dal punto di vista energetico delle migliori GPU.

Dati

Talvolta l’intelligenza artificiale viene considerata la nuova rivoluzione industriale. Se il deep learning rappresenta il motore a vapore di questa rivoluzione, allora i dati sono il suo carbone: il materiale grezzo che alimenta le nostre macchine intelligenti, senza il quale nulla sarebbe possibile. Parlando di dati, oltre ai progressi esponenziali nell’hardware dedicato alla memorizzazione intervenuti negli ultimi venti anni (in base alla nota Legge di Moore), la parte del leone la fa l’ascesa di Internet, che consente di raccogliere e distribuire gli immensi dataset richiesti dal machine learning.

Oggi le grandi aziende lavorano su dataset di immagini, dataset di video e dataset di esempi di linguaggio naturale che sarebbe impossibile raccogliere senza Internet. I tag applicati dagli utenti alle loro immagini su Flickr, per esempio, sono una vera caverna dei tesori di dati utili per la visione computerizzata. E lo stesso sono i video di YouTube. E Wikipedia è un dataset fondamentale per l’elaborazione del linguaggio naturale.

Se esiste un dataset che ha funto da catalizzatore per l’ascesa del deep learning, è il dataset ImageNet, costituito da 14 milioni di immagini annotate a mano in 21 mila categorie. Ciò che rende così speciale ImageNet non sono solo le sue dimensioni, ma anche la competizione annuale ad esso associata, ImageNet Large Scale Visual Recognition Challenge (ILSVRC).

Come Kaggle ha ben dimostrato fin dal 2010, le competizioni pubbliche rappresentano un modo eccellente per motivare i ricercatori e gli ingegneri. Il fatto di avere benchmark comuni sui quali competere ha molto aiutato i recenti sviluppi del deep learning.

Algoritmi

Oltre all’hardware e ai dati, fino alla fine degli anni Duemila, mancava un modo affidabile per addestrare le reti neurali molto profonde. Di conseguenza, le reti neurali erano ancora piuttosto superficiali, con solamente uno o due layer di rappresentazione; pertanto, non erano in grado di esprimersi appieno contro i più raffinati metodi superficiali, come le SVM e le foreste casuali. Il problema principale era quello della propagazione del gradiente attraverso profondi strati di layer. Il segnale di feedback impiegato per addestrare le reti neurali si dissolveva se si aumentava il numero di layer.

La situazione cambiò attorno al 2009-10 con l’avvento di molti semplici ma importanti miglioramenti algoritmici che consentirono una migliore propagazione del gradiente:

  • migliori funzioni di attivazione per i layer delle reti neurali;
  • migliori schemi di inizializzazione dei pesi, tratti da una fase di pre-training a layer, che venne ben presto abbandonata;
  • migliori schemi di ottimizzazione, come RMSProp e Adam.

Solo quando questi miglioramenti iniziarono a consentire di addestrare modelli con dieci o più layer il deep learning iniziò a eccellere.

Infine, nel 2014, 2015 e 2016, vennero scoperti metodi ancora più avanzati per aiutare la propagazione del gradiente: normalizzazione a lotti, connessioni residuali e convoluzioni separabili in profondità. Oggi possiamo eseguire l’addestramento a partire da modelli di base che hanno una profondità di migliaia di layer.

Una nuova ondata di investimenti

Mentre nel 2012-13 il deep learning diventava il nuovo stato dell’arte per la visione computerizzata, e alla fine per tutti i compiti percettivi, i leader di settore non rimasero con le mani in mano. Quello che seguì fu una vera e propria ondata di investimenti, mai vista in precedenza nella storia dell’intelligenza artificiale.

Nel 2011, appena prima che il deep learning salisse alla ribalta, gli investimenti totali di capitali nell’intelligenza artificiale erano attorno ai 19 milioni di dollari, che andavano quasi interamente alle applicazioni pratiche degli approcci shallow, superficiali, al machine learning. Entro il 2014, tale somma era cresciuta fino a raggiungere un’impressionante vetta di 394 milioni di dollari. In quei tre anni nacquero decine di startup di deep learning, per tentare di capitalizzare questa attenzione.

Nel frattempo, grandi società del settore come Google, Facebook, Baidu e Microsoft hanno investito sui dipartimenti interni di ricerca somme ingenti. Nel 2013, Google acquisì la startup di deep learning DeepMind per una cifra dichiarata di 500 milioni di dollari; la più grande acquisizione della storia di una società operante nel campo dell’intelligenza artificiale. Nel 2014, Baidu creò un centro di ricerca sul deep learning a Silicon Valley, investendo nel progetto 300 milioni di dollari. La startup di hardware dedicato al deep learning Nervana Systems è stata acquisita da Intel nel 2016 per oltre 400 milioni di dollari.

Il machine learning – e, in particolare, il deep learning – è diventato un elemento centrale della strategia produttiva di questi giganti tecnologici. A fine 2015, l’amministratore delegato di Google Sundar Pichai, durante la comunicazione dei risultati finanziari di Alphabet il 22 ottobre 2015, affermò:

Il machine learning è un metodo fondamentalmente trasformativo mediante il quale stiamo ripensando il modo in cui facciamo tutto. Lo stiamo minuziosamente applicando a tutti i nostri prodotti, dalle ricerche, agli annunci, a YouTube e a Play. E siamo solo agli inizi, ma in futuro ci vedrete applicare sistematicamente il machine learning a tutti questi campi.

Come conseguenza di questa ondata di investimenti, il numero di persone che lavorano sul deep learning passò in soli cinque anni da alcune centinaia a decine di migliaia, e i progressi della ricerca hanno raggiunto un passo frenetico. Né vi sono segni che questa tendenza accenni a rallentare.

La democratizzazione del deep learning

Uno dei fattori chiave che spinge questo flusso continuo di volti nuovi nel mondo del deep learning è stato la democratizzazione degli strumenti impiegati. Agli inizi, per fare deep learning occorreva essere dotati di una grande esperienza nei campi del C++ e di CUDA, competenze piuttosto rare. Al giorno d’oggi, bastano alcune semplici conoscenze di script Python per svolgere ricerche avanzate nel campo del deep learning.

Questo è dovuto prevalentemente allo sviluppo di Theano e poi di TensorFlow – due framework di manipolazione simbolica dei tensori per Python che supportano l’autodifferenziazione, la quale semplifica enormemente l’implementazione di nuovi modelli – e alla nascita di librerie user-friendly come Keras, che rende il deep learning semplice come la manipolazione di mattoncini LEGO. Dopo il suo rilascio a inizio 2015, Keras è diventato rapidamente “la” soluzione di deep learning per molte nuove startup, studenti e ricercatori interessati a questo campo.

Quanto durerà?

C’è qualcosa di speciale nelle reti neurali profonde, che le rende l’approccio tale per cui le aziende continueranno a investirvi e i ricercatori continueranno a dedicarvisi? O il deep learning è solo l’ennesima mania destinata a non durare? Fra venti anni useremo ancora le reti neurali profonde?

Il deep learning ha numerosi pregi che giustificano il fatto che venga considerato una rivoluzione nel campo dell’intelligenza artificiale, e l’idea che non svanirà a breve. Potremmo anche non utilizzare le reti neurali fra due decenni, ma qualsiasi cosa useremo sarà un’erede diretta dell’attuale deep learning e dei suoi concetti di base. Queste importanti proprietà possono essere suddivise in tre categorie.

  • Semplicità: il deep learning elimina la fase di feature engineering, sostituendo alle complesse, fragili e macchinose pipeline dei semplici modelli addestrabili che, tipicamente, vengono realizzati impiegando solo cinque o sei operazioni sui tensori.
  • Scalabilità: il deep learning è particolarmente adatto alla parallelizzazione su GPU o TPU, per trarre i massimi vantaggi dalla Legge di Moore. Inoltre, i modelli di deep learning vengono addestrati eseguendo iterazioni su piccoli lotti di dati, e ciò consente di eseguire la fase di addestramento su dataset di dimensioni arbitrarie. L’unico collo di bottiglia è dato dalla potenza di calcolo parallelo disponibile che, grazie alla Legge di Moore, è un limite che si estende continuamente.
  • Versatilità e riusabilità: a differenza di molti approcci precedenti al machine learning, i modelli di deep learning possono essere addestrati su dati aggiuntivi senza ripartire dall’inizio, qualità che li rende adatti all’apprendimento continuo online, una proprietà importante per i grandi modelli da utilizzare in produzione. Inoltre, i modelli deep learning addestrati sono riorientabili e quindi riutilizzabili: per esempio, è possibile prendere un modello di deep learning addestrato per la classificazione delle immagini e calarlo in una pipeline di elaborazione video. Questo ci consente di reinvestire il nostro lavoro in modelli sempre più complessi e potenti. Questo, inoltre, rende il deep learning applicabile a dataset anche piuttosto piccoli.

Il deep learning è sulla scena solo da pochi anni, e non ne abbiamo ancora ben compreso la portata. Ogni mese veniamo a conoscenza di nuovi casi d’uso e raffinamenti tecnici che innalzano i precedenti limiti. In una rivoluzione scientifica, in genere i progressi seguono una curva sigmoide: si parte con un periodo di rapidi progressi, poi la situazione si stabilizza gradualmente, mentre i ricercatori si scontrano con certi limiti; poi giungono miglioramenti incrementali. Il deep learning sembra ora trovarsi nella prima metà di questa sigmoide, pronto per ricevere i progressi che giungeranno nei prossimi anni.

Questo articolo richiama contenuti dal capitolo 1 di Deep Learning con Python.

unsplash-logoImmagine di apertura di Tanner Boriack

L'autore

  • François Chollet
    François Chollet si occupa di intelligenza artificiale all'interno del Google Brain Team. È l’ideatore della libreria di deep learning Keras e ha contribuito allo sviluppo del framework di machine learning TensorFlow. Svolge ricerche nel campo della visione artificiale e dell’applicazione del machine learning al ragionamento formale. I suoi contributi sono stati pubblicati in occasione delle principali conferenze di settore.

Iscriviti alla newsletter

Novità, promozioni e approfondimenti per imparare sempre qualcosa di nuovo

Immagine decorativa form newsletter
Gli argomenti che mi interessano:
Iscrivendomi dichiaro di aver preso visione dell’Informativa fornita ai sensi dell'art. 13 e 14 del Regolamento Europeo EU 679/2016.

Corsi che potrebbero interessarti

Tutti i corsi

Big Data Analytics - Iniziare Bene

con Andrea De Mauro

Credi che i Big Data siano una grande opportunità ma che spesso se ne parli a sproposito? Excel ti sta stretto e vorresti fare di più? Andrea De Mauro ti aiuta a fare chiarezza e ti insegna a muovere i primi passi nell'analisi dei Big Data.

Data governance: diritti, licenze e privacy

con Simone Aliprandi

I dati sono ovunque intorno a noi ma per poterli utilizzare in sicurezza bisogna confrontarsi con temi complessi che riguardano licenze, proprietà intellettuale e privacy. Se non ti senti sicuro o hai paura di prendere la decisione sbagliata, il corso di Simone Aliprandi fa per te.

Big Data Executive: business e strategie

con Andrea De Mauro

Vuoi capire se e come la tua azienda può ottenere un vantaggio di business investendo in una strategia di creazione e analisi di Big Data? Il corso di Andrea De Mauro è quello che ti serve.


Libri che potrebbero interessarti

Tutti i libri

Big Data Analytics

Analizzare e interpretare dati con il machine learning

35,90

49,89€ -28%

28,41

29,90€ -5%

19,99

di Andrea De Mauro

Deep Learning con Python

Imparare a implementare algoritmi di apprendimento profondo

48,10

66,99€ -28%

38,00

40,00€ -5%

26,99

di François Chollet

Machine Learning con Python

Costruire algoritmi per generare conoscenza

24,99

di Sebastian Raschka


Articoli che potrebbero interessarti

Tutti gli articoli