Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

Scopriamo le differenze tra un algoritmo di Machine Learning e Deep Learning

Marcello Politi : 14 Luglio 2023 10:32

Nel mondo dell’intelligenza artificiale sentiamo spesso parlare di due termini, Machine Learning (ML) e Deep Learning (DL). Sono entrambi metodi per implementare l’AI attraverso l’addestramento o training di algoritmi di apprendimento automatico, che verrano poi utilizzati per fare predizioni sul futuro e prendere decisioni.

Queste due materie utilizzano approcci e hanno capacità e caratteristiche differenti. In questo articolo andremo ad esplorare le differenze tra i due e capire meglio come funzionano.

Machine Learning

Il Machine Learning è la materia che si occupa della progettazione di algoritmi capaci di fare predizioni imparando pattern di dati passati. Un algoritmo di Machine Learning si differenzia da un “classico” algoritmo di informatica propri per come viene strutturato il problema.

In un algoritmo classico noi diamo alla macchina delle regole che questa deve seguire passo passo, per trasformare l’input in un output. Ad esempio un input potrebbe essere una lista di numeri [1, 2, 3, 4, 5], la regola potrebbe essere: “trasforma ogni numero nel suo quadrato”, quindi f(x) = x^2.

Una volta fornite queste regole e questo input, l’algoritmo sarebbe in grado di restituirci il seguente output: [1, 4, 9, 16, 25].

In un algorimto di Machine Learning invece il problema viene stravolto.

Quello che noi forniamo alla macchina è l’input e l’output atteso, quindi [1, 2, 3, 4, 5] e [1, 4, 9, 16, 25], e l’algoritmo ci restituirà in output la regola che mette in relazione questi valori, quindi f(x) = x^2.

In questo modo a noi non resta che preoccuparci principalmente di raccogliere delle osservazioni (dati) e darli in pasto all’algoritmo che troverà la relazione che regola le nostre osservazioni e che potrà essere usata per fare predizioni future.

Il tipo di algoritmo di Machine Learning appena descritto in realtà rientra nella categoria degli algoritmi definiti come Supervised Learning.

Esistono fondamentalmente 3 categorie differenti che sono le seguenti:

  1. Supervised Learning: gli algoritmi di questa categoria come ad esempio la Regressione Lineare, o il Random Forest sono addestrati su dati etichettati, quindi in cui viene fornita alla macchina una seria di input associati a degli output, come nel caso discusso precedentemente. L’algoritmo imparerà a mappare gli input con gli output trovando la relazione che li lega.
  2. Unsupervised Learning: gli algoritmi di tipo Unsupervised Learning come il K-Means Clustering o il DBSCAN, sono addestrati su dati non etichettati, vengono quindi utilizzati quando non abbiamo all’interno della nostra collezioni di dati (o dataset) gli output associati agli input. Questi algoritmi hanno la capacità di trovare delle strutture e dei pattern all’interno del dataset. Ad esempio immaginate di collezionare i dati degli user di un sito web e volerli poi clusterizzare, cioè dividere in gruppi per targettizarli e migliorare i suggerimenti di prodotti da vendergli, questo può essere fatto da un algoritmo di clustering che utilizza il Machine Learning.
  3. Reinforcement Learning: negli algoritmi di Reinforcement Learning addestriamo un agente (pensate ad esempio ad un robot) attraverso le interazioni che questo ha con l’ambiente che lo circonda e impara quindi attraverso feedback positivi o negativi. Ad esempio il robot che deve imparare a camminare riceverà dei feedback negativi ogni volta che sbatte contro un muro, e dei feedback positivi ogni volta che raggiunge l’obiettivo.

Esistono molti algoritmi di Machine Learning, ed è compito del data scientist capire quale usare e in quale occasione. Un algoritmo in particolare, chiamato Rete Neurale Artificiale, ha aperto numerose nuove possibiltà e gli scienziati dell’AI hanno iniziato a focalizzarsi sullo studio di questo singolo algoritmo, ed è cosi nata una nuova materia di studio chiamata Deep Learning.

Deep Learning

Il Deep Learning è un sottoinsieme del Machine Learning, infatti si focalizza solamente sull’uso delle Reti Neurali Artificiali che sono in grado di imparare pattern nascosti all’interno dei dati.

La Rete Neurale Artificiale (ANN) è ispirata a quella biologica.

L’elemento di base di una rete neurale biologica è il singolo neurone, mentre in quella artificiale troviamo il percettrone. Il neurone percepisce attraverso i dendriti delle scariche elettrice in input che vengono processate dal nucleo, e se la somma di queste scariche supera una certa soglia verrà prodotta una scarica elettrica in output attraverso l’assone.

In modo simile il percettrone riceve in input dei numeri, esegue una computazione di questi numeri e produce un numero in output, 0 o 1. Ad esempio i numeri in input potrebbero rappresentare il valore dei pixel in un’ immagine in bianco e nero, e noi vorremmo che l’output sia 1 se l’immagine rappresenta un cane e zero altrimenti.

Il percettrone però è un algoritmo troppo semplice e ha poca capacità di apprendimento.

Quindi possiamo creare un algoritmo più complesso strutturando tanti percettroni (o neuroni) in layer in cui l’output dei neuroni nei layer precedenti saranno l’input per i layer successivi.

I layer in questa immagine sono solamente quattro. Abbiamo il primo input layer, seguito da due hidden layer e infine un output layer composto da un singolo neurone. Il numero di hidden layer è arbitrario e spesso le reti possono essere molto profonde, è per questo che si usa il termine deep.

Le reti neurali non si differenziano tra loro solo per il numero di neuroni o layer, ma anche per il tipo di computazione che questi layer e neuroni eseguono. Esistono vari tipi di reti neurali, come ad esempio le Reti Neurali Convoluzionali (CNN) adatte a task visuali, o le Reti Neurali Ricorrenti (RNN) per taks in cui si elaborano dati sequenziali come le serie storiche o il linguaggio naturale.

Differenze tra Machine Learning e Deep Learning

Ora che abbiamo visto gli aspetti principali del Machine Learning e del Deep Learning, andiamo a vedere quali sono le differenze tra i due e in quali casi bisogna prediligere uno a discapito dell’altro.

  1. Dati: solitamente gli algoritmi di Deep Learning richiedono una quantità di dati molto maggiore rispetto a quelli di Machine Learning per essere addestrati in modo opportuno;
  2. Estrazione delle feature: Prima di fare il training di un modello di Machine Learning bisogna pre-processare e ripulire i dati di input. Durante questo preporcessing c’è una fase fondamentale che è chiamata feature engineering, in cui il data scientist cerca di estrapolare nuove caratteristiche dai dati. Ad esempio, se i dati fanno riferimento solamente all’altezza e al sesso della persona, un data scientist potrebbe provare a dedurre anche il peso della persona in modo da fornire elementi in più all’algoritmo di apprendimento automatico. Il Deep Learning invece è in grado di estrarre queste caratteristiche (feature) in modo automatico senza l’aiuto manuale di un esperto;
  3. Performance: Gli algoritmi di Deep Learning battono quelli di Machine Learning nei task più complessi, ma richiedono grandi capacità computazionali e come già detto, un gran numero di dati che non sempre è disponibile;
  4. Interpretabilità: I modelli di Machine Learning sono generalmente più interpretabili dei modelli di Deep Learning. Ad esempio, se una ad una persona in banca viene rifiutata la richiesta di un mutuo, e l’algoritmo che ha preso la decisione era basato sul Machine Learning, sarebbe possibile spiegare e motivare il perché di quella scelta, mentre se fosse stato usato il Deep Learning soltanto il modello saprebbe il perché di tale scelta, per questo vengono chiamati spesso algoritmi black box.

Conclusioni

Il Machine Learning e il Deep Learning sono due approcci del campo dell’AI. Hanno entrambi punti di forza e di debolezza, e la scelta dipende dal problema da affrontare, dalla disponibilità di dati e dalla complessità del compito.

Comprendere le differenze tra queste due tecniche è fondamentale per i professionisti e i ricercatori nel campo dell’intelligenza artificiale per scegliere l’approccio più appropriato per i loro casi d’uso specifici.

Marcello Politi
Esperto di intelligenza artificiale con una grande passione per l'esplorazione spaziale. Ho avuto la fortuna di lavorare presso l'Agenzia Spaziale Europea, contribuendo a progetti di ottimizzazione del flusso di dati e di architettura del software. Attualmente, sono AI Scientist & Coach presso la PiSchool, dove mi dedico alla prototipazione rapida di prodotti basati sull'intelligenza artificiale. Mi piace scrivere articoli riguardo la data science e recentemente sono stato riconosciuto come uno dei blogger più prolifici su Towards Data Science.