Il deep learning, o apprendimento profondo, è una delle tecnologie più importanti dell'intelligenza artificiale moderna. Viene utilizzato per permettere ai computer di riconoscere immagini, comprendere il linguaggio, interpretare la voce, analizzare grandi quantità di dati e svolgere attività che fino a qualche anno fa sembravano difficili da automatizzare.
Il deep learning è una particolare branca del machine learning, a sua volta parte dell'intelligenza artificiale. La sua caratteristica principale è l'utilizzo di reti neurali artificiali composte da numerosi livelli, attraverso i quali il sistema può imparare progressivamente a riconoscere caratteristiche e schemi sempre più complessi.
Oggi il deep learning è alla base di numerose applicazioni: dal riconoscimento facciale agli assistenti vocali, dalla traduzione automatica alla computer vision, dai sistemi di raccomandazione all'intelligenza artificiale generativa.
In questa guida vedremo che cos'è il deep learning, come funziona, quali sono le sue caratteristiche, quali tipi di reti neurali vengono utilizzati e in quali settori trova applicazione.
Che cos'è il deep learning?
Il deep learning è una tecnica di machine learning che utilizza reti neurali artificiali profonde per apprendere dai dati.
Il termine "deep", cioè "profondo", fa riferimento alla presenza di diversi livelli di elaborazione all'interno della rete neurale. Ogni livello può imparare a riconoscere determinate caratteristiche dei dati e trasmettere il risultato al livello successivo.
In questo modo la rete può passare progressivamente da informazioni semplici a rappresentazioni più complesse.
Per esempio, nel riconoscimento di un'immagine:
- un primo livello può individuare bordi e contrasti;
- un livello successivo può riconoscere forme;
- altri livelli possono identificare parti di un oggetto;
- gli ultimi livelli possono combinare queste informazioni per riconoscere l'oggetto completo.
Questo processo permette al modello di imparare direttamente dai dati senza dover programmare manualmente ogni singola regola necessaria per riconoscere un determinato oggetto o fenomeno.
Deep learning, machine learning e intelligenza artificiale: qual è la differenza?
Per comprendere il deep learning è utile distinguere tre concetti spesso utilizzati come sinonimi, ma che non significano esattamente la stessa cosa.
Intelligenza artificiale
L'intelligenza artificiale (IA) è il concetto più ampio.
Comprende tecniche e sistemi progettati per permettere alle macchine di svolgere attività che normalmente richiedono capacità associate all'intelligenza umana, come comprendere informazioni, riconoscere schemi, prendere decisioni o generare contenuti.
Machine learning
Il machine learning è un sottoinsieme dell'intelligenza artificiale.
Invece di programmare tutte le regole manualmente, si forniscono dati a un algoritmo affinché possa individuare regolarità e migliorare le proprie prestazioni attraverso l'addestramento.
Deep learning
Il deep learning è a sua volta un sottoinsieme del machine learning.
La sua caratteristica distintiva è l'utilizzo di reti neurali con numerosi livelli, particolarmente adatte a problemi complessi e a grandi quantità di dati.
In forma molto semplice:
Intelligenza artificiale → Machine learning → Deep learning
Il rapporto può quindi essere immaginato come una serie di contenitori: il deep learning è una parte del machine learning, che è una parte dell'intelligenza artificiale.
Che cosa sono le reti neurali artificiali?
Le reti neurali artificiali sono modelli matematici costituiti da unità chiamate comunemente neuroni artificiali, organizzate in livelli.
Il loro funzionamento è ispirato in modo molto generale al modo in cui i neuroni biologici elaborano e trasmettono informazioni, anche se una rete neurale artificiale non è una replica del cervello umano.
Una rete neurale può essere composta da:
- un livello di input;
- uno o più livelli intermedi o nascosti;
- un livello di output.
Nel deep learning i livelli intermedi possono essere numerosi, creando una rete neurale profonda.
Ogni neurone riceve determinate informazioni, esegue calcoli matematici e trasmette un risultato ai neuroni del livello successivo.
Durante l'addestramento, il modello modifica progressivamente i pesi delle connessioni tra i neuroni per migliorare le proprie previsioni.
Come funziona il deep learning?
Il funzionamento del deep learning può sembrare molto complesso, ma il concetto fondamentale è relativamente semplice.
Il sistema riceve una grande quantità di dati e cerca di individuare automaticamente i modelli presenti al loro interno.
Il processo può essere riassunto in alcune fasi:
- raccolta dei dati;
- preparazione dei dati;
- scelta dell'architettura della rete neurale;
- addestramento;
- calcolo degli errori;
- modifica dei parametri;
- ripetizione del processo;
- valutazione del modello;
- utilizzo del modello su nuovi dati.
Durante l'addestramento, la rete produce una previsione e questa viene confrontata con il risultato atteso quando disponibile. L'errore viene utilizzato per modificare i parametri della rete.
Attraverso tecniche come backpropagation e gradient descent, il modello può aggiornare progressivamente i propri pesi e ridurre gli errori.
Un esempio semplice di deep learning
Immaginiamo di voler costruire un sistema capace di distinguere tra fotografie di cani e fotografie di gatti.
Al modello vengono fornite moltissime immagini.
Ogni immagine viene trasformata in dati numerici che la rete può elaborare.
Durante l'addestramento, il modello cerca caratteristiche utili per distinguere le due categorie.
Inizialmente potrebbe commettere molti errori.
Quando sbaglia, i parametri della rete vengono modificati.
Ripetendo il processo moltissime volte, la rete può imparare rappresentazioni sempre più efficaci per distinguere le immagini.
Quando l'addestramento è terminato, possiamo fornire una nuova immagine mai utilizzata durante il training e chiedere al modello di effettuare una previsione.
È importante sottolineare che il modello non "vede" un cane nello stesso modo in cui lo vede una persona. Elabora rappresentazioni numeriche e individua correlazioni e caratteristiche statistiche apprese dai dati.
Che cos'è l'addestramento nel deep learning?
L'addestramento, o training, è la fase nella quale la rete neurale impara dai dati.
Durante questa fase il modello riceve numerosi esempi e modifica progressivamente i propri parametri.
L'obiettivo è ottenere un modello capace di produrre risultati corretti non soltanto sugli esempi utilizzati durante l'addestramento, ma anche su dati nuovi.
Per questo motivo la qualità dei dati è fondamentale.
Un modello addestrato con dati incompleti, sbilanciati, rumorosi o poco rappresentativi può produrre risultati poco affidabili.
Il deep learning richiede spesso grandi quantità di dati e una notevole capacità di calcolo, soprattutto quando vengono utilizzate reti neurali molto grandi.
Che cos'è la backpropagation?
La backpropagation, o retropropagazione dell'errore, è uno dei meccanismi fondamentali utilizzati nell'addestramento delle reti neurali.
In termini semplificati, la rete produce un risultato, viene calcolato quanto questo risultato è distante da quello desiderato e l'informazione sull'errore viene propagata all'indietro attraverso la rete.
I parametri vengono quindi modificati per cercare di ridurre l'errore nelle iterazioni successive.
Questo procedimento viene ripetuto molte volte durante l'addestramento.
Che cos'è il gradient descent?
Il gradient descent, o discesa del gradiente, è un metodo di ottimizzazione utilizzato per modificare i parametri del modello nella direzione che consente di ridurre la funzione di errore.
Semplificando, possiamo immaginare l'addestramento come una persona che cerca di raggiungere il punto più basso di una valle.
Il modello cerca progressivamente di trovare una configurazione dei suoi parametri che produca errori sempre più piccoli.
Backpropagation e gradient descent sono quindi strettamente collegati al processo di apprendimento delle reti neurali.
Perché il deep learning è così potente?
Uno dei principali vantaggi del deep learning è la capacità di apprendere automaticamente rappresentazioni complesse dai dati.
Nei sistemi tradizionali era spesso necessario stabilire manualmente quali caratteristiche utilizzare.
Con il deep learning, invece, una rete può imparare direttamente dai dati quali caratteristiche risultano maggiormente utili per il compito assegnato.
Questo è particolarmente importante quando si lavora con dati non strutturati, come:
- immagini;
- video;
- audio;
- voce;
- testo;
- documenti.
Il deep learning è infatti particolarmente efficace in attività come computer vision, riconoscimento vocale, traduzione automatica ed elaborazione del linguaggio naturale.
Quali sono i principali tipi di reti neurali utilizzati nel deep learning?
Non esiste una sola architettura di deep learning.
Nel corso degli anni sono state sviluppate diverse tipologie di reti neurali, ognuna particolarmente adatta a determinati problemi.
Reti neurali feedforward
Le feedforward neural networks elaborano le informazioni procedendo principalmente dall'input verso l'output.
Sono tra le architetture più semplici e possono essere utilizzate per diversi problemi di classificazione e previsione.
Reti neurali convoluzionali
Le CNN (Convolutional Neural Networks) sono particolarmente importanti nell'elaborazione delle immagini.
Sono utilizzate per attività come:
- classificazione delle immagini;
- riconoscimento degli oggetti;
- analisi di immagini mediche;
- computer vision;
- analisi dei video.
Le CNN possono imparare automaticamente caratteristiche visive a diversi livelli di complessità.
Reti neurali ricorrenti
Le RNN (Recurrent Neural Networks) sono state sviluppate per lavorare con dati sequenziali.
Sono state utilizzate, per esempio, nell'elaborazione del linguaggio e nel riconoscimento vocale.
Una particolare famiglia è rappresentata dalle LSTM (Long Short-Term Memory), progettate per gestire meglio determinate dipendenze nel tempo.
Transformer
I Transformer hanno assunto un ruolo centrale nell'elaborazione moderna del linguaggio e in numerose applicazioni dell'intelligenza artificiale generativa.
Sono alla base di molte architetture moderne utilizzate per elaborare e generare testo e possono essere impiegati anche in altri tipi di dati.
Deep learning e intelligenza artificiale generativa
Il deep learning ha avuto un ruolo fondamentale nello sviluppo dell'intelligenza artificiale generativa.
I moderni modelli generativi utilizzano architetture neurali avanzate per apprendere le caratteristiche di grandi quantità di dati e generare nuovi contenuti.
Le applicazioni possono comprendere:
- testo;
- immagini;
- audio;
- video;
- codice;
- contenuti multimodali.
Per esempio, un modello linguistico può essere addestrato su grandi quantità di testo e successivamente utilizzato per generare risposte, riassunti, traduzioni o altri contenuti.
Questo rappresenta una delle evoluzioni più importanti dell'utilizzo delle reti neurali profonde.
Dove viene utilizzato il deep learning?
Il deep learning viene utilizzato in moltissimi settori.
1. Riconoscimento delle immagini
Una delle applicazioni più conosciute è la computer vision.
I modelli possono analizzare immagini e video per individuare oggetti, persone, caratteristiche o anomalie.
Le applicazioni comprendono:
- sicurezza;
- medicina;
- industria;
- automobili;
- fotografia;
- videosorveglianza;
- analisi scientifica.
2. Riconoscimento vocale
Il deep learning viene utilizzato per trasformare la voce in testo e per interpretare il linguaggio parlato.
Questa tecnologia è alla base di numerose applicazioni vocali, tra cui assistenti digitali e sistemi di trascrizione automatica.
3. Traduzione automatica
Le reti neurali profonde possono essere utilizzate per tradurre automaticamente testi tra lingue diverse.
I sistemi moderni non si limitano necessariamente a sostituire una parola con un'altra, ma possono analizzare il contesto della frase e le relazioni tra le parole.
4. Chatbot e assistenti virtuali
Il deep learning è una tecnologia fondamentale per molti sistemi di elaborazione del linguaggio naturale.
Può essere utilizzato per:
- comprendere domande;
- classificare testi;
- generare risposte;
- riassumere documenti;
- tradurre contenuti;
- analizzare conversazioni.
5. Medicina
Il deep learning viene studiato e utilizzato in numerose applicazioni mediche.
Per esempio, le reti neurali possono analizzare immagini come radiografie e risonanze magnetiche per individuare caratteristiche che possono essere rilevanti per gli specialisti.
In questo contesto, il deep learning può rappresentare uno strumento di supporto, ma non significa automaticamente che una previsione algoritmica equivalga a una diagnosi medica.
6. Automobili e guida assistita
Il deep learning può essere utilizzato per analizzare ciò che una telecamera o altri sensori rilevano intorno a un veicolo.
Può contribuire al riconoscimento di:
- pedoni;
- veicoli;
- segnali stradali;
- corsie;
- ostacoli;
- altri elementi presenti sulla strada.
Il settore automobilistico è quindi uno degli ambiti nei quali computer vision e deep learning possono lavorare insieme.
7. Banche e finanza
Nel settore finanziario, le reti neurali possono essere utilizzate per analizzare grandi quantità di dati e individuare schemi.
Tra gli utilizzi possibili troviamo:
- rilevamento delle frodi;
- individuazione delle anomalie;
- analisi del rischio;
- previsione di serie temporali;
- supporto alle decisioni.
8. Sistemi di raccomandazione
Quando una piattaforma suggerisce un film, una canzone, un prodotto o un contenuto che potrebbe interessare all'utente, dietro il sistema possono esserci modelli di machine learning e deep learning.
Questi sistemi possono analizzare grandi quantità di informazioni per individuare relazioni tra utenti, contenuti e comportamenti.
9. Robotica
Il deep learning può aiutare i robot a interpretare l'ambiente circostante, riconoscere oggetti e prendere decisioni sulla base dei dati raccolti.
La combinazione tra robotica, sensori, computer vision e intelligenza artificiale permette di sviluppare sistemi sempre più sofisticati.
10. Industria
Nel settore industriale il deep learning può essere utilizzato per il controllo della qualità e la manutenzione predittiva.
Un sistema di computer vision, per esempio, può analizzare immagini di prodotti e cercare difetti difficili da individuare automaticamente con regole tradizionali.
Deep learning e big data
Una delle ragioni per cui il deep learning è diventato così importante è la disponibilità di enormi quantità di dati.
Più dati di qualità sono disponibili, maggiori possono essere le possibilità di addestrare modelli complessi, anche se non è sufficiente semplicemente aumentare la quantità dei dati.
Sono importanti anche:
- qualità;
- varietà;
- rappresentatività;
- corretta preparazione;
- etichettatura quando necessaria.
Un modello addestrato su dati poco rappresentativi può imparare correlazioni sbagliate o produrre risultati meno affidabili.
Perché le GPU sono importanti per il deep learning?
L'addestramento delle grandi reti neurali richiede un'enorme quantità di calcoli.
Le GPU, cioè le unità di elaborazione grafica, sono particolarmente adatte a questo tipo di lavoro perché possono eseguire moltissime operazioni in parallelo.
Questa capacità di elaborazione parallela è diventata uno dei fattori che hanno favorito la crescita del deep learning moderno.
Oggi il deep learning può essere eseguito su:
- computer dotati di GPU;
- server;
- data center;
- infrastrutture cloud;
- dispositivi edge;
- alcuni dispositivi mobili.
Quali sono i vantaggi del deep learning?
Il deep learning presenta numerosi vantaggi.
Apprendimento automatico delle caratteristiche
Una rete profonda può imparare direttamente dai dati quali caratteristiche risultano utili per il compito.
Capacità di gestire problemi complessi
Le reti profonde possono modellare relazioni non lineari e molto complesse.
Efficacia con grandi quantità di dati
Il deep learning è particolarmente adatto a scenari nei quali sono disponibili grandi dataset.
Applicazioni molto diverse
La stessa idea generale può essere utilizzata per immagini, testo, audio, video e altri tipi di dati.
Automazione
Il deep learning può automatizzare attività che richiederebbero un'enorme quantità di lavoro umano.
Quali sono gli svantaggi del deep learning?
Il deep learning non è una tecnologia priva di limiti.
Richiede molti dati
I modelli complessi possono avere bisogno di grandi quantità di dati per essere addestrati efficacemente.
Richiede molta capacità di calcolo
L'addestramento di modelli di grandi dimensioni può richiedere infrastrutture informatiche importanti.
Può essere difficile da interpretare
Alcune reti neurali profonde sono difficili da interpretare. Questo significa che non sempre è semplice spiegare perché il modello abbia prodotto una determinata previsione.
Può imparare dai dati anche gli errori
Se i dati di addestramento contengono distorsioni o errori, il modello può apprendere anche questi schemi.
Costi energetici e infrastrutturali
L'addestramento e l'esecuzione di modelli molto grandi possono richiedere notevoli risorse computazionali.
Deep learning e machine learning: differenze principali
La differenza fondamentale riguarda il modo in cui vengono costruiti e utilizzati i modelli.
Nel machine learning tradizionale può essere necessario individuare e preparare determinate caratteristiche dei dati prima dell'addestramento.
Nel deep learning, invece, le reti neurali profonde possono imparare automaticamente rappresentazioni sempre più complesse direttamente dai dati.
Il deep learning tende inoltre a essere particolarmente efficace quando sono disponibili grandi quantità di dati e risorse computazionali adeguate.
Deep learning e reti neurali: sono la stessa cosa?
Non esattamente.
Le reti neurali artificiali sono una famiglia di modelli di machine learning.
Il deep learning utilizza reti neurali profonde, cioè reti caratterizzate da numerosi livelli di elaborazione.
Possiamo quindi dire che:
le reti neurali sono alla base del deep learning, ma non tutte le reti neurali devono necessariamente essere considerate deep learning.
Il deep learning imita davvero il cervello umano?
Il termine "rete neurale" deriva dall'ispirazione originaria ai neuroni biologici, ma sarebbe sbagliato considerare una rete neurale artificiale come una copia del cervello umano.
Un neurone artificiale esegue operazioni matematiche e comunica valori numerici attraverso connessioni dotate di parametri.
Il cervello umano, invece, è un sistema biologico enormemente più complesso.
Il paragone con il cervello è quindi soprattutto un modo per descrivere l'ispirazione concettuale alla base di queste tecnologie.
Il deep learning può imparare da solo?
Il deep learning può apprendere automaticamente dai dati, ma questo non significa che possa necessariamente imparare qualsiasi cosa senza intervento umano.
Gli esseri umani devono normalmente stabilire:
- quale problema risolvere;
- quali dati utilizzare;
- come preparare i dati;
- quale modello adottare;
- come valutare i risultati;
- quali limiti imporre al sistema.
Inoltre, la qualità dei dati e del processo di addestramento ha un'importanza fondamentale.
Quanto tempo serve per addestrare un modello di deep learning?
Non esiste una durata universale.
Il tempo dipende da numerosi fattori:
- dimensione del dataset;
- complessità della rete;
- numero di parametri;
- tipo di hardware;
- quantità di calcoli richiesti;
- algoritmo utilizzato;
- obiettivo del modello.
Un piccolo modello può essere addestrato in tempi relativamente brevi, mentre i modelli molto grandi possono richiedere infrastrutture specializzate e lunghi processi di addestramento.
Il deep learning è sempre migliore del machine learning?
No.
Il deep learning non è automaticamente la soluzione migliore per ogni problema.
Per alcune attività un algoritmo di machine learning tradizionale può essere più semplice, meno costoso e più facilmente interpretabile.
Il deep learning diventa particolarmente interessante quando bisogna affrontare problemi complessi, grandi quantità di dati o informazioni non strutturate come immagini, audio e testo.
La scelta della tecnologia dovrebbe quindi dipendere dal problema da risolvere e dai dati disponibili.
Qual è il futuro del deep learning?
Il deep learning continuerà probabilmente a essere una componente fondamentale dell'evoluzione dell'intelligenza artificiale.
Le ricerche si concentrano su modelli:
- più efficienti;
- più accurati;
- più veloci;
- meno costosi;
- capaci di lavorare con diversi tipi di dati;
- più facilmente utilizzabili su dispositivi locali;
- più interpretabili e controllabili.
Il deep learning è inoltre strettamente collegato allo sviluppo dell'intelligenza artificiale generativa, della robotica, della computer vision e dei sistemi multimodali.
Domande frequenti sul deep learning
Che cos'è il deep learning in parole semplici?
Il deep learning è una tecnica di intelligenza artificiale che permette ai computer di imparare a riconoscere schemi complessi utilizzando reti neurali composte da numerosi livelli.
Qual è la differenza tra deep learning e machine learning?
Il deep learning è un sottoinsieme del machine learning e utilizza principalmente reti neurali profonde. È particolarmente efficace con grandi quantità di dati e problemi complessi.
A cosa serve il deep learning?
Serve a svolgere attività come riconoscimento delle immagini, riconoscimento vocale, traduzione automatica, elaborazione del linguaggio, rilevamento delle anomalie, sistemi di raccomandazione e molte altre applicazioni.
Che cosa sono le reti neurali profonde?
Sono reti neurali composte da diversi livelli di elaborazione. I dati attraversano questi livelli e la rete impara progressivamente rappresentazioni più complesse.
Il deep learning fa parte dell'intelligenza artificiale?
Sì. Il deep learning è generalmente considerato un sottoinsieme del machine learning, che a sua volta è un sottoinsieme dell'intelligenza artificiale.
Il deep learning viene utilizzato nelle immagini?
Sì. Le reti neurali profonde, in particolare le reti convoluzionali e altre architetture moderne, sono ampiamente utilizzate nella computer vision.
Il deep learning viene utilizzato nella medicina?
Sì. Può essere utilizzato, tra le altre cose, per analizzare immagini mediche e individuare caratteristiche o anomalie che possono essere utili agli specialisti.
Il deep learning viene utilizzato nei chatbot?
Sì. Le reti neurali profonde sono alla base di numerose tecnologie utilizzate per comprendere e generare linguaggio naturale.
Perché il deep learning ha bisogno di tanti dati?
I modelli profondi possono contenere un numero molto elevato di parametri. Grandi quantità di dati possono fornire al modello numerosi esempi dai quali apprendere, anche se la qualità e la rappresentatività dei dati sono altrettanto importanti.
Il deep learning è uguale all'intelligenza artificiale?
No. L'intelligenza artificiale è il concetto più ampio. Il machine learning è una delle principali metodologie dell'IA e il deep learning è una sua particolare branca.
Conclusione
Il deep learning è una delle tecnologie fondamentali dell'intelligenza artificiale moderna.
Il suo funzionamento si basa principalmente su reti neurali profonde capaci di apprendere rappresentazioni complesse dai dati. Attraverso l'addestramento, la rete modifica progressivamente i propri parametri per migliorare le proprie prestazioni.
Questa tecnologia viene utilizzata in numerosi ambiti: computer vision, riconoscimento vocale, traduzione automatica, elaborazione del linguaggio naturale, medicina, finanza, robotica, industria, sistemi di raccomandazione e intelligenza artificiale generativa.
Comprendere il deep learning significa quindi comprendere una delle principali tecnologie alla base dell'evoluzione dell'IA contemporanea.
