Panoramica
Il deep learning è una tecnica di intelligenza artificiale (IA) che insegna ai computer a elaborare dati mediante algoritmi modellati a grandi linee sui processi di apprendimento del cervello umano.
Cos'è il deep learning?
Il deep learning sfrutta l'intelligenza artificiale e il machine learning (AI/ML) per aiutare i data scientist a raccogliere, analizzare e interpretare volumi elevati di dati. Il processo di deep learning, anche noto come apprendimento neurale profondo o reti neurali profonde, insegna ai computer a imparare tramite l'osservazione, simulando le modalità di acquisizione delle conoscenze tipiche degli esseri umani.
Il cervello umano contiene molti neuroni interconnessi, che fungono da messaggeri quando vengono elaborate informazioni (o dati). Tali neuroni utilizzano impulsi elettrici e segnali chimici per comunicare tra loro e trasmettere le informazioni alle diverse aree del cervello.
Le reti neurali artificiali (ANN, Artificial Neural Network), ovvero l'architettura alla base del deep learning, si basano su questo fenomeno biologico, ma sono formate da neuroni artificiali costituiti da moduli software chiamati nodi. I nodi utilizzano calcoli matematici (al posto dei segnali chimici cerebrali) per comunicare e trasmettere informazioni. Questa rete neurale simulata elabora i dati raggruppando punti dati e facendo previsioni.
Può essere utile immaginare il deep learning come un diagramma di flusso con un livello iniziale in cui vengono inseriti dati e uno finale che fornisce risultati. Tra questi due troviamo "livelli nascosti" che elaborano informazioni a diversi livelli, modificando e adeguando il loro comportamento man mano che ricevono nuovi dati. I modelli di deep learning possono avere centinaia di livelli nascosti, ognuno dei quali svolge il proprio ruolo nell'analizzare relazioni e schemi all'interno del set di dati.
A partire dal livello di inserimento iniziale, composto da più nodi, i dati vengono introdotti nel modello e categorizzati di conseguenza prima di passare al livello successivo. Il percorso seguito dai dati attraverso ogni livello dipende da calcoli stabiliti per ciascun nodo. Infine, i dati passano da un livello all'altro acquisendo osservazioni lungo il percorso, che porteranno in definitiva al risultato, o all'analisi finale, dei dati.
Applicazioni del deep learning
Sono svariati i settori e gli scenari di utilizzo quotidiani che attualmente adottano il deep learning. L'IA generativa, che è alla base di molti strumenti di intelligenza artificiale, è fondata sul deep learning.
E benché tali scenari siano in continua evoluzione, tra gli ambiti di applicazione del deep learning più diffusi è possibile identificare tre tecnologie principali: la visione artificiale, il riconoscimento vocale e l'elaborazione del linguaggio naturale.
- Visione artificiale: i computer possono servirsi di tecniche di deep learning per comprendere immagini analogamente al processo del cervello umano. Si tratta della tecnologia che rende possibile la moderazione automatica dei contenuti, il riconoscimento facciale e la classificazione delle immagini.
- Riconoscimento vocale: con i modelli di deep learning è possibile analizzare intonazione, suono, lingua e accento di una persona. Oltre all'uso per migliorare l'esperienza dei clienti, in ambito di accessibilità questa tecnologia può risultare utile in casi che richiedono trascrizioni in tempo reale.
- Elaborazione del linguaggio naturale: i computer possono utilizzare gli algoritmi di deep learning per analizzare e raccogliere informazioni utili da documenti e testi. Ciò semplifica il riepilogo di documenti estesi, l'indicizzazione di frasi chiave che indicano sentimenti (ad esempio commenti positivi o negativi) e lo sviluppo di informazioni approfondite per assistenti virtuali automatici e chatbot. L'elaborazione del linguaggio naturale è un ambito ampio, che comprende lo sviluppo e l'applicazione di modelli linguistici di grandi dimensioni (LLM) per comprendere e generare il linguaggio umano.
Di seguito sono riportati alcuni esempi di utilizzo del deep learning nei diversi settori:
- Assistenza clienti: chatbot, assistenti virtuali e portali di assistenza clienti telefonica utilizzano strumenti come il riconoscimento vocale.
- Servizi finanziari: l'analisi predittiva viene utilizzata per il trading azionario basato su algoritmi, la valutazione dei rischi aziendali per le approvazioni di prestiti, il rilevamento di frodi e la gestione di crediti e portafogli di investimenti.
- Assistenza sanitaria: con la digitalizzazione delle cartelle cliniche, le applicazioni di riconoscimento visivo aiutano gli specialisti in diagnostica delle immagini apprendendo a rilevare in modo automatico segnali indicativi di una potenziale diagnosi medica. Scopri come HCA Healthcare utilizza le analisi predittive per definire un approccio digitale e standardizzato all'identificazione della sepsi.
- Media e intrattenimento: dagli acquisti online ai servizi di streaming di contenuti multimediali, il deep learning viene utilizzato per monitorare l'attività degli utenti e sviluppare consigli personalizzati.
- Automazione industriale: in fabbriche e magazzini, il deep learning è in grado di rilevare in modo automatico le distanze di sicurezza tra oggetti o persone e macchinari. Offre inoltre supporto per i processi di controllo qualità e la manutenzione predittiva.
- Veicoli a guida autonoma: i ricercatori del settore automotive utilizzano il deep learning per addestrare le auto a rilevare elementi quali segnali di stop, semafori, attraversamenti pedonali e pedoni.
- Forze dell'ordine: riconoscimento vocale, visione artificiale ed elaborazione del linguaggio naturale contribuiscono al risparmio di tempo e risorse, semplificando l'analisi di elevate quantità di dati.
- Settore aerospaziale e militare: le applicazioni che monitorano ampie aree geografiche possono sfruttare il deep learning per rilevare oggetti, identificare zone di interesse a distanza e verificare la presenza di zone sicure o meno per le truppe.
Red Hat e IBM hanno collaborato alla creazione di Red Hat® Ansible® Lightspeed con IBM watsonx Code Assistant, un servizio di intelligenza artificiale generativa che permette agli sviluppatori di creare contenuti Ansible in modo più efficiente.
Che differenza c'è tra machine learning e deep learning?
Il deep learning è un campo specializzato del machine learning e si differenza per la tipologia di dati elaborati e i metodi di apprendimento utilizzati.
I tradizionali algoritmi di machine learning richiedono un certo tipo di intervento umano; nello specifico, prevedono la pre-elaborazione dei set di dati prima del loro inserimento. Prima di introdurre i dati nel modello di machine learning, è necessario definire ed etichettare le loro caratteristiche specifiche, per poi organizzarle in tabelle. Gli algoritmi di deep learning, invece, non richiedono lo stesso livello di pre-elaborazione e sono in grado di interpretare dati non strutturati, come documenti di testo, immagini con dati di pixel o file di dati audio.
Il deep learning è l'opzione privilegiata rispetto al tradizionale machine learning nei casi caratterizzati da elevate quantità di dati, mancanza di conoscenze di base sull'argomento o attività complesse e dispendiose in termini di tempo.
Considerazioni su bias e varianza
Come spiegato, il deep learning funziona mediante una struttura di nodi che comunicano tra loro all'interno di una rete neurale artificiale. Pre creare un'ANN, è necessario introdurre nel modello, insieme ai dati, anche calcoli e parametri e prendere precauzioni per garantire che tali calcoli tengano conto di bias e varianza.
Nel contesto del machine learning, il concetto di bias è legato al fatto che il modello faccia supposizioni o generalizzazioni sui dati per semplificare l'apprendimento della funzione target. Un'elevata quantità di bias implica che il modello sta semplificando e creando scorciatoie (in eccesso) durante l'elaborazione delle informazioni.
Il concetto di varianza si riferisce alla misura in cui ogni punto dati si discosta dalla media o alla quantità di variazione tra i valori in un set di dati. Rispetto ai bias, la varianza riguarda il livello di sensibilità del modello ai dati di addestramento. Una varianza (o sensibilità) elevata indica che il modello presta troppa attenzione al dettaglio, trascurando gli schemi alla base del set di dati.
In ambito di apprendimento supervisionato, quando la varianza è troppo elevata e i bias troppo bassi si parla di overfitting, o sovradattamento. Quando sia i bias che la varianza sono bassi si parla invece di underfitting, o carenza di adattamento. Raggiungere l'equilibro perfetto non è facile e tale fenomeno è comunemente noto come compromesso bias-varianza.
I parametri definiscono i limiti e tali limiti sono essenziali per comprendere l'enorme quantità di dati che deve essere elaborata dagli algoritmi di deep learning. Ciò significa che spesso è possibile correggere l'overfitting e l'underfitting utilizzando rispettivamente più o meno parametri.
Gestione dei bias umani
Se un modello di deep learning è addestrato a partire da dati contenenti bias in termini statistici o che non forniscono una rappresentazione veritiera della popolazione, il risultato può essere non corretto. I bias umani esistenti purtroppo vengono spesso trasferiti all'intelligenza artificiale, con il conseguente rischio di algoritmi discriminatori e risultati pregiudiziosi.
Per le aziende che usufruiscono dell'IA per migliorare produttività e prestazioni, è quindi essenziale che siano attuate strategie che riducano i bias. Per farlo, sono necessari innanzitutto processi di progettazione inclusivi e una maggiore attenzione alla diversità di rappresentazione all'interno dei dati raccolti.
Cos'è una scatola nera?
In questo ambito, si parla di scatola nera quando un programma di IA esegue un'attività all'interno della propria rete neurale, senza renderne chiaro il processo di elaborazione. Ciò porta a uno scenario in cui nessuno, nemmeno i data scientist e gli ingegneri che hanno creato l'algoritmo, è in grado di spiegare esattamente in che modo il modello è arrivato a uno specifico risultato. L'incapacità di interpretare queste scatole nere può causare conseguenze dannose quando vengono impiegate per processi decisionali che comportano rischi elevati, soprattutto in settori quali quello dell'assistenza sanitaria, della giustizia penale e finanziario.
Quali sono i vantaggi del deep learning nel cloud?
I modelli di deep learning possono eseguire attività di elaborazione complesse senza intervento umano, ma richiedono pertanto più potenza di elaborazione, un'infrastruttura adeguata e set di dati di addestramento più ampi. Il cloud computing consente ai team di accedere contemporaneamente a più processori, come cluster di GPU e CPU, creando un ambiente ideale per l'esecuzione di complesse operazioni matematiche.
Tramite la progettazione, lo sviluppo e l'addestramento di modelli di deep learning nel cloud, i team di sviluppo possono ridimensionare e distribuire i carichi di lavoro in modo rapido e accurato, riducendo al contempo i costi operativi.
Deep learning e machine learning nell'edge
Il cloud offre svariate opportunità di utilizzo del machine learning nell'edge. La creazione di hub di edge computing connessi a risorse di cloud pubblico consente di acquisire e analizzare dati in tempo reale per agevolare le operazioni in casi che vanno da aggiornamenti dello stato di catene di distribuzione a informazioni su aree di evacuazione in seguito a catastrofi.
Le soluzioni AI/ML di Red Hat
Red Hat offre una base comune per sviluppare e distribuire le applicazioni di intelligenza artificiale (IA) e i modelli di machine learning (ML) con trasparenza e controllo.
Red Hat® OpenShift® AI è una piattaforma che permette di addestrare, eseguire il fine tuning dei prompt, il fine tuning e trattare i modelli di IA per adeguarli a scenari di utilizzo specifici.
Per i grandi deployment di AI è disponibile Red Hat OpenShift, una piattaforma applicativa scalabile adatta ai carichi di lavoro di AI che fornisce anche l'accesso ai più comuni acceleratori hardware.
Red Hat impiega anche gli strumenti Red Hat OpenShift AI per migliorare le utility di altri software open source, come Red Hat Ansible® Lightspeed con IBM Watson Code Assistant. Si tratta di un servizio che consente ai team di automazione di apprendere, creare ed effettuare la manutenzione dei contenuti Ansible in modo più efficiente. Agli sviluppatori basta inserire la richiesta e Ansible Lightspeed interagisce con i modelli di base di IBM watsonx per generare il codice da utilizzare per la creazione di Ansible Playbook.
Inoltre, le integrazioni dei partner di Red Hat danno accesso a un ampio ecosistema di strumenti di AI affidabili e compatibili con piattaforme open source.