Recentemente l’evoluzione tecnologica e in particolare la disponibilità di dispositivi con elevate capacità di calcolo, ha fatto comparire due nuovi termini quali deep learning e machine learning.
![](https://static.wixstatic.com/media/2bf71c_80df681051e442b691d1c1ecf7666f74~mv2.png/v1/fill/w_980,h_515,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/2bf71c_80df681051e442b691d1c1ecf7666f74~mv2.png)
Ad oggi tali termini risultano essere molto popolari nel contesto aziendale e negli ambiti di analisi di Big Data e intelligenza artificiale (AI), e sotto un certo punto di vista potrebbero sembrare intercambiabili nel parlato, ma tra loro vi è una forte differenza.
![](https://static.wixstatic.com/media/2bf71c_8fddb0358363469db3f5d0a2af390d8e~mv2.png/v1/fill/w_648,h_621,al_c,q_90,enc_auto/2bf71c_8fddb0358363469db3f5d0a2af390d8e~mv2.png)
Nello specifico quando parliamo di questi due termini ci rifacciamo all’ambito dell’intelligenza artificiale, ma se parliamo di machine learning, ci rifacciamo alla capacità di una macchina di poter agire come un essere umano senza dover essere programmato in maniera esplicita, mentre il deep learning è una branchia del machine learning.
![](https://static.wixstatic.com/media/2bf71c_48b3fca22c72433cbe08e94242d15232~mv2.png/v1/fill/w_741,h_402,al_c,q_85,enc_auto/2bf71c_48b3fca22c72433cbe08e94242d15232~mv2.png)
Machine Learning
Il machine learning è stato definito:
“Field of study that gives computers the ability to learn without being explicitly programmed” — Arthur Samuel
Cioè una pratica che consiste nel poter utilizzare un algoritmo per suddividere i dati, imparare da essi e quindi effettuare previsioni su determinati fatti sfruttando questo apprendimento. Un esempio possono essere i programmi di apprendimento automatico che hanno l’obiettivo di adattarsi in risposta ai dati a cui sono sottoposti. Il machine learning è spesso correlato alle statistiche computazionali, e si concentra sulla creazione di previsioni attraverso l’uso di computer, infatti è molto legato all’ottimizzazione matematica. La parte "learning" del machine learning indica che gli algoritmi ML tentano di ottimizzare lungo una certa dimensione, nello specifico, cercano di ridurre al minimo l'errore o di massimizzare la probabilità che le loro previsioni siano corrette e vere.
Deep Learning
Il Deep Learning indica una tecnica per implementare l'apprendimento automatico. Esso è stato definito:
“The analogy to deep learning is that the rocket engine is the deep learning models and the fuel is the huge amounts of data we can feed to these algorithms.” — Andrew Ng
Quando si parla di Deep Learning indichiamo un sottoinsieme del Machine Learning. Il modello di deep learning prevede l'alimentazione di un sistema informatico di molti dati, che può usare per prendere decisioni su ulteriori dati. Si può vedere come un cervello umano che trae conclusioni rispetto a qualsiasi scenario, e nello specifico quando le persone utilizzano il termine deep learning, si riferiscono a reti neurali artificiali profonde.
Le deep artificial neural networks (reti neurali artificiali profonde) sono un insieme di algoritmi che hanno definito negli ultimi anni record di precisione per moltissimi problemi, quali il riconoscimento delle immagini, il riconoscimento dei suoni, i sistemi di raccomandazione e molti altri.
La parola Deep indica il numero di strati in una rete neurale, quando parliamo di rete superficiale indichiamo solo un livello nascosto (hidden layer) mentre una rete profonda ne dispone più di uno. L’aumento di livelli nascosti in una rete neurale consente di apprendere le caratteristiche dei dati in una gerarchia di peculiarità, perché caratteristiche semplici (es. due pixel) tendono a ricombinarsi da uno strato all'altro al fine di formare caratteristiche più complesse (es. una linea).
Per poter apprendere tutte le ANN (Artificial neural network), si ha bisogno di molta potenza di calcolo ed è per questo motivo che oggi giorno le GPU sono molto richieste per addestrare modelli di deep learning.
Quindi, mettendo a confronto Machine e Deep Learning possiamo dire che, il deep learning tende a produrre una maggiore precisione, richiede più potenza hardware e funziona molto meglio su dati non strutturati come pixel, testi o blob.
Il deep learning richiede macchine di fascia alta, questo perché mentre si eseguono estrazioni di features e classificazione in parti diverse di livelli nascosti, viene richiesto un numero elevato di moltiplicazioni di matrici di grandi dimensioni, contrariamente ai tradizionali algoritmi di machine learning, che possono funzionare su macchine di fascia bassa.
Gli algoritmi di deep learning cercano di apprendere caratteristiche (features) di alto livello dai dati. Questa è una parte molto distintiva del deep learning e un importante passo avanti rispetto al tradizionale machine learning, anche perché in questo modo non vi è più il bisogno di sviluppare un nuovo estrattore di features per i problemi.
Utilizzando ad esempio una CNN (Convolutional Neural Network) essa cercherà di apprendere features di basso livello come bordi e linee nei livelli iniziali e in seguito features di alto livello nei livelli nascosti successivi.
![](https://static.wixstatic.com/media/2bf71c_221e4670e5e04b11a81cbfc229eb6fd4~mv2.png/v1/fill/w_728,h_377,al_c,q_85,enc_auto/2bf71c_221e4670e5e04b11a81cbfc229eb6fd4~mv2.png)
Le prestazioni di entrambe le tecniche differiscono all'aumentare della scala dei dati. Quando i dati sono pochi il deep learning non funziona molto bene a causa dell'enorme numero di parametri necessari per essere regolati da un algoritmo di apprendimento. Il deep learning inizia con alcuni pesi casuali e quindi viene utilizzato un algoritmo di ottimizzazione basato sul gradiente per far convergere la rete verso una soluzione ottimale. L'intero processo richiede molti dati. Le reti neurali profonde hanno inizialmente molti falsi positivi e migliorano leggermente ad ogni iterazione dell’apprendimento.
Quando si risolve un problema utilizzando gli algoritmi di ML (machine learning) tradizionali, in genere si consiglia di suddividere le attività in parti diverse, risolverle singolarmente e combinarle per ottenere risultati. Il deep learning, al contrario, crede nella risoluzione dei problemi end-to-end, nell'algoritmo di deep learning ci sono molti parametri e ciò richiede molto tempo per addestrare dei modelli, mentre nel machine learning si richiede molto meno tempo non disponendo di tutti questi parametri. Questo a sua volta si inverte completamente sui tempi di test. Al momento del test, l'esecuzione dell'algoritmo di deep learning richiede molto meno tempo, soprattutto per la taglia dei dati inferiore.
Il deep learning si comporta in qualche modo come una scatola nera, cioè noi non sappiamo effettivamente cosa i neuroni debbano modellare e cosa nel collettivo facciamo questi strati di neuroni, infatti, non è possibile interpretare il risultato e ci si può aspettare di tutto, ma d’altro canto conviene utilizzarlo per gli ottimi risultati che riesce a produrre su problemi di regressione, classificazione ecc.
Comments