Una panoramica introduttiva su Deep Learning e Machine Learning

Autori: Francesco Pugliese & Matteo Testi

 

Negli ultimi anni, è emersa una nuova parola alla moda nel campo dell’ Intelligenza Artificiale: Deep Learning”. Di recente, c’è un grande interesse in questo tipo di ricerche, in special modo tra tutte quelle aziende che attuano una vera e propria “caccia al tesoro” al fine di trovare esperti che spaziano dal Machine Learning fino al Deep Learning. I ruoli associati a queste due aree vengono sempre più spesso associati alla figura del cosiddetto “Data Scientist” (Scienziato dei Dati).

Possiamo per esempio dare un rapido sguardo all’andamento dello sviluppo della parola “Deep Learning” su Google Trends, nell’intervallo di tempo che va dal 2011  al 2017.

 

Da quando il celebre software di DeepMind “Alpha-Go” ha sconfitto il campione Sud-Coreano Master Lee Se-dol nel noto gioco da tavolo Go all’inizio dello scorso anno, il termine “Intelligenza Artificiale” (IA) ha acquisito una popolarità esponenziale. Il modo in cui il Motore di Deep Learning di Alpha-GO funziona è basato sulla combinazione di un algoritmo tradizionale di Visita e Ricerca in una struttura ad Albero chiamato “Monte-Carlo Tree Search” (MTS) con le “profonde” reti neurali conosciute come “Reti Neurali Convolutive” (CNN). Fino ad allora, MTS era lo standard de-facto-standard nella costruzione dello stato dell’arte dei programmi in grado di giocare al gioco del Go. Tuttavia, le funzioni di valutazione su metodi euristici disegnati “a mano”. La novità introdotta da Deep Mind era che la funzione di valutazione veniva “dedotta” automaticamente delle CNN a addestrate in una prima fase a partire da un insieme d’addestramento Supervisionato fatto di milioni di mosse note. Successivamente, un Sistema di “Policy Gradients Deterministico” basato cioè su un modello di apprendimento per Rinforzo tipo “Attore-Critico” fu messo davanti al compito di giocare contro differenti versioni di se stesso per molto tempo. Il risultato è stato un “giocatore” di GO artificiale, ancora imbattuto. DeepMind ha descritto dettagliatamente tutto il sistema Alpha-GO nel noto articolo scientifico apparso su Nature e intitolato “Mastering the game of Go with deep neural networks and tree search”.

 

 

Il seguente diagramma illustra le differenze tra Intelligenza Artificiale, Machine Learning e Deep Learning.

 

Machine Learning

Machine Learning (ML) è essenzialmente una forma di statistica applicata mirata ad utilizzare i computer per stimare statisticamente una funzione complessa. Mitchell nel 1997 fornì la seguente definizione di Machine Learning: “Un algoritmo apprende dall’esperienza E riguardanti una classe di problemi T con una misura pari a P, se la sua performance sui problemi T, misurata tramite P, aumenta con l’esperienza E”. In sostanza, il ML è un insieme di tecniche che permettono alla macchine di “imparare” dai dati e in seguito prendere decisioni o fare una predizione su di essi. Un sistema di Machine Learning può essere applicato ad una base di “Conoscenza” proveniente da sorgenti multiple per risolvere diversi compiti: classificazione facciale, riconoscimento del parlato, riconoscimento di oggetti, ecc. A differenza degli algoritmi euristici, ossia quegli algoritmi che seguono un insieme specifico di istruzioni per risolvere un dato problema, il Machine Learning abilita un computer ad apprendere come riconoscere “configurazioni percettive” da solo e fare predizioni su di esse.

 

 

 

Il Machine Learning può essere adattato a tre differenti tipi di compiti:

  • Classificazione
  •  Clustering
  • Predizione

Una delle applicazioni più popolari di Machine Learning è stata la Computer Vision One, per molti anni. La maggior parte degli algoritmi di Machine Learning possono essere divisi nelle due categorie di Apprendimento Supervisionato e Apprendimento Non Supervisionato a seconda del fatto che l’insieme di addestramento sia supervisionato (ossia con un informazione di target associata dall’addestratore, detta etichetta o label) o non supervisionato.

Nell’ Apprendimento Supervisionato, le etichette sono create dall’addestratore per rendere la macchina capace di scoprire relazioni tra input ed etichette.

 

 

Nell’ Apprendimento Non Supervisionato invece, le etichette non sono disponibili. In questa situazione, stiamo chiedendo alla macchina di trovare dei gruppi o “cluster” all’interno dei dati.

 

 

Tipici algoritmi di Machine learning sono: Random Forest, Regressione Lineare / Logistica, Alberi di Decisione, Support Vector Machines, PCA, K means, ICA, Naive Bayes, ecc.

Deep learning

Il Deep Learning è una sotto-area del Machine Learning che fa uso delle “Reti Neurali Profonde” (Deep Neural Network), ossia dotate di molti strati e di nuovi algoritmi per il pre-processamento dei dati per la regolarizzazione del modello: word embeddings, dropout, data-augmentation, ecc. Il Deep Learning trae istpirazione dalle Neuroscienze dal momento che le Reti Neurali sono un modello dell’attività neuronale del cervello. A differenza del cervello biologico, dove qualsiasi neurone può connettersi a qualsiasi altro neurone sotto alcuni vincoli fisici, le Reti Neurali Artificiali (ANN) hanno un numero finito di strati e connessioni, e infine hanno una direzione prestabilita della propagazione dell’informazione. Finora, le Reti Neurali Artificiali sono state ignorate sia dalla comunità della ricerca che dall’industria  I principale problema il loro costo computazionale.

Tuttavia, tra il 2006 e il 2012, il gruppo di ricerca guidato da Geoffrey Hinton dell’Università di Toronto è stato in grado finalmente di parallelizzare gli algoritmi per le ANN su architetture parallele. Il principale risultato è stato un notevole incremento del numero di strati, neuroni e parametri del modello in generale (anche oltre i 10 milioni di parametri) permettendo alle macchine di computare una quantità massiccia di dati addestrandosi su di essi.

 

 

Pertanto, il primo requisito per l’addestramento di un modello di Deep learning è avere a disposizione train-set molto grandi. Questo rende il Deep Learning molto adatto ad affrontare l’era dei Big Data.

 

 

Le ragioni sottostanti la popolarità del Deep Learning sono l’avvento dei Big Data e delle GPU (Graphic Processing Unit ). Adottando una quantità massiccia di dati, la rete “apprende”, attraverso l’algoritmo di addestramento, come raggiungere obiettivi.

 

 

Un algoritmo di Deep Learning potrebbe essere, ad esempio, un classifcatore per “apprendere” cosa sono i cani. Questo algoritmo dovrebbe pertanto essere sottomesso ad un massiccio quantitativo di dati delle immagini di cani per comprendere le “caratteristiche” (feature) che identificano un cane lo distinguono da un lupo. Dovremmo tenere bene in mente che il Deep Learning è molto sensibile ai cosiddetti “bias”. Per esempio, in un modello supervisionato, se le etichette sono create erroneamente, il modello apprenderà dai dati errati.

Quando il sistema di riconoscimento facciale di Google fu avviato, esso etichettà alcune facce di uomini africani come gorilla.

“Questo è un classico esempio di che cosa accade se non ha un numero sufficiente di facce di africani americani nel tuo insieme di addestramento”

Sostiene Anu Tewary, chief data officer presso Mint at Intuit.

Deep Learning per il Business

Deep learning ha influenzatto le applicazioni industriali come mai era successo prima al Machine Learning. Infatti esso è in grado di trattare un enorme quantità di dati – milioni di immagini, per esempio – e riconoscere alcune caratteristiche discriminative. Le ricerche basate su testo, l’individuazione di frodi o spam,  il riconoscimento delle scritte, la ricerca delle immagini, il riconoscimento del parlato, i recommendation system, la Street View detection e la traduzione di lingue, sono solo alcuni dei compiti che il Deep Learning è in grado di affrontare. In Google, le reti deep hanno già rimpiazzato decine di “sistemi a regole”. Oggi il Deep Learning per la Computer Vision già mostra di avere capacità super-umane, e che variano dal riconoscimento di figure comuni come cani e gatti fino all’individuazione di noduli cancerosi in immagini tomografiche polmonari.

Conclusioni

La teoria del Machine Learning sostiene che questi algoritmi di possono generalizzare molto bene a partire da un numero finito di esempi di addestramento. Questo tuttavia contraddice le basi della logica: derivare regole generali da un insieme limitato di esempi non è un’affermazione logicamente valida. In altre parole, per inferire una regola che descriva ogni membro di un insieme, dovremmo avere informazioni circa ogni membro dell’insieme. In parte, il ML affronta questo problema con regole probabilistiche piuttosto che alcune regole di ragionamento logico. Purtroppo, ciò non risolve il problema completamente. Infatti secondo il Teorema “No Free Lunch” (David Wolpert and William Macready, 1997): mediando su tutte le possibili distribuzioni generanti i dati, ogni algoritmo di classificazione possibile mostra lo stesso tasso d’errore sui dati non osservati, ossia presenta lo stesso errore di generalizzazione (sull’insieme di test). Questo significa che non può esistere il miglior algoritmo di Machine Learning: pertanto il nostro obiettivo deve essere comprendere che tipi di distribuzioni sono rilevanti per il “mondo reale” e che tipo di algoritmi di ML presentano migliori prestazioni rispetto ad altri una volta che lavorano sui dati estratti dalle distribuzioni su cui noi ci stiamo focalizzando.In soldoni, anche il Deep Learning (che è una parte del Machine Learning) non può avere prestazioni universalmente migliori del Machine Learning, ma tutto dipende dal dominio del task che vogliamo affrontare. Anche se sembra che, nel futuro prossimo, il Deep Learning risolverà molti dei problemi che ogni giorno abbiamo nel dominio dei computer, business, IA, marketing, ecc.

Come dice Andrew Yan-Tak Ng, scienziato capo presso Baidu, dove dirige il Team di Intelligenza Artificiale:

“L’IA è la nuova elettricità”.

Noi ci permettiamo che il Deep Learning è la nuova lampadina.

Approfondiremo il Deep Learning nei prossimi tutorials, restate sintonizzati…

 

Bibliografia

Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., Van Den Driessche, G., … & Dieleman, S. (2016). Mastering the game of Go with deep neural networks and tree search. Nature529(7587), 484-489.

https://www.geospatialworld.net/blogs/difference-between-ai%EF%BB%BF-machine-learning-and-deep-learning/

http://www.machinedesign.com/industrial-automation/what-s-difference-between-ai-and-machine-learning

https://www.kairos.com/blog/the-best-explanation-machine-learning-vs-deep-learning

http://www.kdnuggets.com/2016/12/deep-learning-radically-different-machine-learning.html

http://www.techrepublic.com/article/understanding-the-differences-between-ai-machine-learning-and-deep-learning/

https://www.analyticsvidhya.com/blog/2017/04/comparison-between-deep-learning-machine-learning/

https://www.quora.com/What-is-the-difference-between-deep-learning-and-usual-machine-learning

https://blogs.nvidia.com/blog/2016/07/29/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/

https://deepmind.com/research/alphago/

https://mapr.com/blog/apache-spark-machine-learning-tutorial/

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Fornisci il tuo contributo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *