Blog.

Machine Learning vs Deep Learning


Autore
Andrea Provino
Data
Tempo di lettura
7 minuti
Categoria
machine-learning

machine-learning-vs-deep-learning-spiegazione-italiano-blog-intelligenza-artificiale

Ti sei mai chiesto quale sia la differenza tra machine learning e deep learning, o in altri termini: machine learning vs deep learning?

Bene, il machine learning è un’area di studi, sotto insieme dell’intelligenza artificiale, che sfrutta la matematica e la statistica applicata per sviluppare modelli che mappino la realtà.

Lo fa processando dati di tipo strutturato (e.g. dati tabulari), regolando i valori dei parametri di una funzione che lentamente approssima i dati originali.

Il modello generato è poi usato per fare delle previsioni future su dati nuovi.

Magari serve a una banca che intende concederti un prestito e vuole conoscere prima il tuo credit score, ovvero il tuo rischio creditizio, anche se non hai uno storico.

Così dovo aver sviluppato il modello sui dati di precedenti clienti lo applica ai tuoi.

Spesso però i dati sono di tipo non strutturato, come gruppi di documenti, o immagini e video.

Per manipolare questi dati è necessario il ricorso a strumenti più sofisticati, come le reti neurali artificiali, propri del deep learning.

Sono delle strutture di calcolo astratte e articolate, organizzate in più livelli e ispirate al cervello animale, per calcolare parametri di funzioni matematiche complesse

Ogni livello è in grado di cogliere interpretazioni differenti dei dati, per individuare relazioni nascoste, anche di causa ed effetto.

Quando, in un problema di machine learning, facciamo ricorso alle reti neurali, pariamo di deep learning.

Quindi il deep learning è un caso particolare di machine learning.

L’articolo potrebbe finire qui, anche se io ho ancora tanto da raccontarti.

Allora, seguimi!

Sarò amichevole, piacevole e ti prometto: niente concetti complicati da mal di testa!

Pensi sia una ridicola idea capire davvero la differenza di machine learning vs deep learning?

Introduzione

Prima di procedere a esaminare le differenze di machine learning vs deep learning, lascia che mi presenti.

Mi chiamo Andrea Provino, e da ormai un anno documento il mio percorso di studi sull’Intelligenza artificiale, machine learning e deep learning, natural language preocessing e molto altro, su questo sito.

Un articolo alla volta.

L’obiettivo è quello di aiutare chi, come me e te, è appassionato di machine learning e deep learning, di data science e computer vision, e in generale dell’intelligenza artificiale, attraverso contenuti di approfondimento.

Su questo sito trovi infatti guide pratiche, spiegazioni teoriche e articoli utili a riflettere e sviluppare il nostro mindset, la corretta impostazione mentale per fare di questo campo la nostra professione.

Insieme esploriamo aziende leader del settore che ogni giorno implementano tecnologie innovative per migliorare la vita delle persone, studiandone e replicandone il funzionamento, seppur con le nostre limitazioni.

Convenevoli a parte, è arrivato il momento di scoprire le differenze di machine learning vs deep learning.

Il ML

Iniziamo dalle basi.

Quando nasce il machine learning e cos’e il machine learning?

Abbiamo risposto a queste domande in un precedente articolo, anche se vale la pena riassumere due righe qui.

Per dare una definizione di machine learning ci affidiamo alle parole di Arthur Samuel che per primo coniò il termine nel lontano 1959.

Proprio così, il machine learning non è invenzione recente.

Semplicemente: quel campo di studi, il cui intento è di fornire ai computer l’abilità di apprendere senza essere esplicitamente programmati.

Bello quando le definizioni trasmettono così tanto significato da farti sentire ignorante anche leggendole 4 volte.

Rimediamo in fretta.

Andiamo dritti al punto e, senza farti perdere molto tempo, lascia che ti spieghi in due secondi di cosa stiamo parlando.

Machine Learning perché?

Devi sapere una cosa.

La programmazione convenzionale prevede la codifica di un algoritmo, ossia un procedimento finito di regole e di operazioni (i.e. di 4 istruzioni e non infinite), in un linguaggio, ad esempio C++ o Python.

Il programma realizzato sarà quindi in grado di eseguire solo le operazioni per le quali è stato ideato, quelle definite nell’algoritmo.

Questo potente strumento ha aperto le porte della rivoluzione tecnologica in cui siamo cresciuti, proprio come fece la macchina a vapore nella prima rivoluzione industriale.

Carina questa metafora, teniamola un secondo.

Sai bene che la macchina a vapore risultò perfetta per equipaggiare i treni, e anche che fu necessario creare qualcosa di nuovo per assicurare sufficiente propulsione agli aerei.

C’erano dunque problemi che il vapore poteva risolvere efficacemente e altri che non era in grado di gestire.

In modo analogo, la programmazione convenzionale ha dei limiti.

Limiti che per poter essere superati hanno bisogno di nuove tecnologie.

Tecnologie come l’intelligenza artificiale, il machine learning e il deep learning.

Pensa alla fatica che dovremmo fare per sviluppare un programma che guidi in modo autonomo un’auto.

Per approfondire, in questo articolo Neda Cvijetic ci accompagna alla scoperta delle insidie nel risolvere questo annoso problema.

Sappi comunque che è impensabile definire un algoritmo che guidi senza rischi un’automobile, e per diverse ragioni che potremmo riassumere in: è un problema troppo difficile da risolvere con i vecchi strumenti.

Sarebbe come pensare di andare sulla Luna con un aereo: ci serve un razzo, il machine learning!

Come funziona il machine Learning

Senza scendere in troppi e noiosi dettagli tecnico matematici, possiamo comunque esplorare insieme il funzionamento tipico di un sistema di machine learning.

L’origine di tutto è un dataset, un insieme strutturato di dati organizzati in features e label, che descrivono una certa realtà.

La label è la grandezza che vogliamo prevedere, le features sono la coppia attributo – valore da cui pensiamo possa dipendere il valore della label.

Così possiamo avere un dataset di voli aerei, in cui la nostra label è il ritardo del volo e gli attributi, come la durata del volo, l’aereo, l’aeroporto di decollo e quello di atterraggio, insieme ai loro valori sono le features.

Il machine learning è uno strumento con il quale siamo in grado di sviluppare un modello di questa realtà arrivando a generare previsioni.

Prima però i dati devono essere processati, trasformati e adattatati affinché possano essere gestiti da una o più funzioni matematiche.

Questo è il compito del Data Scientist, o del Machine Learing Engineer, che aggiunge al processo anche la conoscenza di dominio in cui opera, il così detto domain knowledge.

Nell’esempio di prima, in qualità di esperto del traffico aereo potrei sapere che il ritardo non può essere superiore a una certa soglia imposta da un regolamento, ergo per cui valori maggiori indicherebbero un errore di raccolta.

In modo analogo sono in grado di raccogliere eventuali altri dati, oppure elaborare nuove features attraverso un processo di feature engineering per migliorare la qualità del dataset.

Come vedi, la componente umana, o meglio la supervisione umana è preponderante.

Il DL

Il Deep Learning è sottoinsieme del machine learning.

In genere, richiede meno supervisione umana del Machine Learning standard.

Per risolvere un problema, questa area di studi fa ricorso alle reti neurali artificiali, complesse strutture di calcolo organizzate in più livelli computazionali.

Esistono diverse architetture, che variano in funzione dello specifico task da risolvere.

La più comune è quella definita full-connected layers.

Capiamo come funzionano.

Come funziona il Deep Learning

Abbiamo spiegato il funzionamento del Deep Learning appena qualche giorno fa in questo articolo.

Ripeterci sarebbe ridondante e poco utile.

Ho comunque reputato utile avere una sezione di riferimento per guidare lo studio.

Conclusione | Machine Learning vs Deep Learning

Cerchiamo dunque di tirare le somme di quanto sin’ora appreso.

Abbiamo capito che il deep learning è un caso specifico di applicazione del machine learning.

È ora chiaro che la principale differenza di machine learning vs deep learning risieda nella natura dei dati forniti in input al sistema, quasi sempre di tipo strutturato per il machine learning e non strutturato per il deep learning.

Questo implica ovviamente modificare la struttura dello strumento usato per gestire i dati, che nel caso del deep learning risulta costituita da molteplici livelli computazionali di astrazione crescente.

Il deep learning richiede un livello di supervisione umana inferiore, poiché è la rete stessa a capire quali informazioni siano utili e quali no al completamento del task.

Mentre nel Machine Learning standard il ruolo umano si rivela fondamentale.

D’altro canto, la mancanza di supervisione umana e la complessità strutturale delle reti hanno un costo, pagato in un numero più alto di dati richiesti per consentire alla rete di apprendere.

La metafora dell’aereo è chiara. Intendi fare un viaggio di 10 minuti? Prendi un’auto, perché un aereo è troppo complesso e fuori scala per il tuo problema.

In presenza di pochi dati, vale lo stesso per il Deep Learning.

Questo fa sì che le reti neurali siano la giusta soluzione in presenza di dataset di grandi dimensioni.

E con questa ultima frase, è arrivato il momento di salutarci.

Sai ora le differenze di machine learning vs deep learning!

Vuoi approfondire? Ecco allora qualche dettaglio aggiuntivo qui.

Per il momento è tutto.

Per aspera, ad astra.

Un caldo abbraccio, Andrea.

Taggeddata sciencedeep learningmachine learningneural networkteoria


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum