Più volte, in questi ultimi sessant'anni, c'è stato un crescente entusiasmo della comunità scientifica per le reti neurali artificiali che traggono la loro ispirazione da quelle biologiche. A questi entusiasmi, ha fatto però spesso seguito anche un periodo di depressione legato al fatto che altri studiosi avevano scoperto poi che questi sistemi, che nel frattempo erano stati proposti, non erano tanto utili per risolvere problemi reali come si pensava inizialmente. La storia inizia alla fine degli anni cinquanta quando, in particolare nel 1957, Rosenblatt propose il primo percettrone, il primo neurone artificiale, che era in grado di risolvere automaticamente dei problemi. In che senso automaticamente? Basandosi su un algoritmo di addestramento e andando quindi a elaborare dati era in grado di apprendere determinate funzioni. Quale fu però il problema? Che queste funzioni erano particolarmente semplici. In particolare, il percettrone di Rosenblatt era in grado di risolvere solo problemi linearmente separabili. Per problema linearmente separabile, intendiamo un problema di classificazione che può essere risolto, ad esempio nel piano, da una retta, nel senso che è possible avere una retta che separa il piano in due semipiani, nell'ipotesi di avere un problema di classificazione binario a due classi da un parte del piano potranno finire tutti quanti i campioni che appartengono a una classe e dall'altra parte del piano tutti i campioni che appartengono all'altra classe. Problemi però estremamente semplici, uno per tutti il cosiddetto problema della xor, dell'apprendere la funzione logica xor non poteva essere risolto da un percettrone, dal percettrone di Rosenblatt. Questa cosa fu portata all'attenzione della comunità scientifica nel 1969 da altri due studiosi, Minsky e Papert, i quali teorizzarono che il percettrone per l'appunto non era in grado di risolvere problemi linearmente separabili e questo fu un primo motivo di depressione riguardo agli studi circa le reti neurali e artificiali. Una quindicina di anni dopo però, per la verità siamo nel 1986, Rumelhart, Hinton e McClelland proposero un nuovo algoritmo che era in grado di poter addestrare una struttura composta da percettroni, il cosiddetto percettrone multilivello. L'aggiunta di più livelli, insieme all'utilizzo di funzioni di attivazione, cosiddette funzioni di attivazione, non lineari faceva sì che questa struttura fosse in grado di apprendere anche problemi non linearmente risolubili. Perché questa struttura e questa architettura non era stata già applicata in precedenza? Perché, il fatto che questa struttura fosse dotata di strati cosiddetti nascosti, faceva sì che l'algoritmo del percettrone non potesse essere automaticamente esteso anche per poter addestrare, per fare apprendere questo tipo di architetture. I tre scienziati di cui sopra, quindi Hinton, Rumelhart e McClelland furono invece in grado di estendere l'algoritmo del percettrone utilizzando il metodo della discesa del gradiente, in particolare, un metodo che va sotto il nome di stochastic gradient descent. Attraverso questo metodo, e fondamentalmente attraverso l'applicazione del teorema di relazione delle funzioni composte era possibile, fu possibile, generalizzare la regola dell'addestramento del percettrone per far sì che anche il percettrone multilivello fosse in grado di apprendere. Questo fece nascere un rinnovato entusiasmo per questo tipo di architetture. Entusiasmo che però in qualche modo si spense alla fine del secolo scorso quando un nuovo paradigma, quello delle support vector machine (SVM), le macchine a vettore di supporto soppiantò quello che era l'interesse per quanto riguardava le reti neurali artificiali. Dal 2000 in poi quindi la maggior parte dei problemi di classificazione, soprattutto problemi di classificazione binari, furono risolti o affrontati prevalentemente utilizzando questi strumenti, le macchine a vettore di supporto. Il vantaggio delle support vector machine sta nel fatto che erano in grado di tracciare un iperpiano che andava per l'appunto a separare, in generale, lo spazio in due semispazi in maniera ottima, utilizzando un criterio noto come la massimizzazione del margine. Questo faceva sì che la capacità di generalizzazione di questi sistemi fosse molto maggiore, almeno in linea di principio, rispetto alle reti neurali artificiali. Cosa ha poi fatto rinascere entusiasmo nei confronti delle reti neurali artificiali? Beh, l'avvento del cosiddetto deep learning. Il deep learning si era iniziato o almeno architetture basate sul prinicipio di deep learning si erano iniziate a diffondere già nella prima decina d'anni del 2000, ma il grosso interesse per questi sistemi si è scatenato dopo il 2012 quando un'architettura deep, in particolare la rete che prende il nome di Alexnet, sbaragliò la concorrenza su un famosissimo contest internazionale di riconoscimento di oggetti all'interno di immagini. Imagenet è il nome del dataset e anche della competizione e cosa fu in grado di fare Alexnet? Fu in grado di abbattere, quasi dimezzare, l'errore di classificazione fatto da questa rete neurale per l'appunto rispetto ai concorrenti. E quindi a partire da questo momento c'è stato un rinnovato e ritrovato interesse nell'ambito delle reti neurali artificiali che ha portato poi a tutta una serie di sviluppi e di architetture via via sempre più complesse che adottano il paradigma deep. In cosa consiste il paradigma del deep learning? Beh da un lato la parola deep fa riferimento al numero di strati. Siamo passati quindi dal numero di strati dell'ordine di uno due del percettrone multilivello inizialmente a sei sette strati, fino alle centinaia e più di strati delle architetture che vengono proposte oggigiorno. In aggiunta l'altro grossissimo vantaggio degli approcci deep è che, mentre i sistemi di classificazione tradizionali di norma utilizzano una fase di estrazione delle caratteristiche, di feature extraction, che deve essere fatta in qualche modo manualmente, per carità sempre attraverso algoritmi, ma la definizione di queste feature viene fatta sulla base di un esperto del dominio, il grosso vantaggio degli approcci deep è che questa fase poteva essere fatta automaticamente dalla rete stessa, ovverosia le architetture basate sul deep learning apprendono anche automaticamente dai dati quelle che sono le caratteristiche più opportune per risolvere il problema di classificazione. Questo ovviamente è un grosso vantaggio che ha portato poi queste architetture a svilupparsi in maniera significativa nel corso degli ultimi anni, diventando una sort of di standard de facto per tutti coloro che vogliono risolvere problemi di classificazione..