- Che cos’è il Deep Learning
- Deep Learning e Machine Learning
- Deep Learning: quando e come nasce
- Come funziona il Deep Learning
- Componenti fondamentali del Deep Learning
- I vantaggi del Deep Learning
- Le sfide del Deep Learning
- Applicazioni pratiche del Deep Learning
- Casi d’uso del Deep Learning
- Tecnologie complementari con il Deep Learning
- Moxoff e Deep Learning
Nato come un caso particolare del machine learning (ML), oggi il deep learning (DL) rappresenta una delle tecniche più affascinanti nell’ambito dell’intelligenza artificiale, per via della sua dichiarata somiglianza funzionale con il cervello umano, a cui si ispira anche l’approccio generalista nei confronti dei problemi da risolvere.
Grazie alla comprovata esperienza di Moxoff, da anni impegnata nello sviluppo di sistemi DL in ambito enterprise, vediamo in cosa consiste il deep learning, quali tecnologie lo caratterizzano, quali sono le principali differenze rispetto al machine learning e quali ambiti di business lo vedono attualmente implementato con successo.
Che cos’è il Deep Learning
Secondo la definizione offerta da Gartner, il deep learning consiste in una “Variante di algoritmi di machine learning. Utilizza molti layer per risolvere problemi, ottenendo conoscenza a partire dai dati grezzi, trasformandoli in ogni layer. Questi layer ottengono progressivamente feature sempre più accurate a partire dai dati grezzi, per consentire la soluzione di problemi complessi, con un livello di precisione elevato e un intervento limitato dell’uomo”.
Secondo Techtarget: “Il deep learning è una tipologia di machine learning che imita il modo in cui gli esseri umani acquisiscono determinati tipi di conoscenza. I modelli di deep learning possono essere istruiti per eseguire attività di classificazione e riconoscere modelli in foto, testo, audio e altri dati vari. Viene anche utilizzato per automatizzare attività che normalmente richiederebbero l’intelligenza umana, come la descrizione di immagini o la trascrizione di file audio”.
Grazie a questa capacità innata, il deep learning assiste i data scientist quando si ritrovano a raccogliere, analizzare e interpretare grandi quantità e varietà di dati, grazie ad una spiccata analogia con la morfologia del cervello umano. Il DL presenta infatti reti neurali composte da vari livelli di nodi che lavorano insieme secondo logiche comparabili ai milioni di neuroni interconnessi del cervello umano.
Deep Learning e Machine Learning
Il deep learning rappresenta una sottobranca del machine learning, pertanto è lecito attendersi che DL e ML si fondino su presupposti simili, al di là della grande varietà tecnologica che li caratterizza. Tuttavia, il loro impiego può differire in maniera sostanziale.
Il machine learning opera in ambiti più circoscritti, per offrire soluzioni a problemi tendenzialmente noti a priori e descritti attraverso i data set utilizzati per il training degli algoritmi. Il Deep Learning utilizza tecnologie più complesse e stratificate, oltre a riferirsi a basi di conoscenze più vaste. L’approccio “profondo” consiste nel cercare di generalizzare i problemi, senza contestualizzarli necessariamente a priori, con l’obiettivo di trovare soluzioni secondo la logica che utilizzerebbe il cervello umano quando si trova di fronte a situazioni sconosciute.
Volendo offrire, con una finalità meramente divulgativa, una comparazione tra machine learning e deep learning, potremmo sintetizzare quanto segue.
Machine Learning (rispetto al DL)
- Utilizza algoritmi per apprendere una rappresentazione approssimata del fenomeno da modellizzare
- Efficace anche con un dataset più contenuto
- Tempi di training più contenuti
- Maggior semplicità nell’interpretazione del risultato analitico
- Richiede risorse hardware più limitate
Deep Learning (rispetto al ML)
- Utilizza algoritmi per apprendere una rappresentazione approssimata del fenomeno da modellizzare
- Richiede grandi volumi di dati
- Tempi di training anche molto lunghi
- Efficace per compiti complessi
- Risultati non sempre semplici da interpretare, effetto “black box” elevato
- Richiede molte risorse computazionali
Deep Learning: quando e come nasce
La storia del deep learning si inserisce nell’affascinante cronologia dell’intelligenza artificiale, a partire dal 1943, quando Warren McCulloch e Walter Pitts hanno creato il primo modello computazionale per reti neurali: il “threshold logic”. In altri termini, il primo algoritmo di deep learning.
Nel 1958 si fonda la prima grande milestone del DL, quando Frank Rosenblatt presentò il celebre percettrone, un algoritmo di pattern recognition basato su una rete neurale su due livelli, utilizzando i principi matematici dell’addizione e della sottrazione, dando il via ad una lunghissima fase di ricerca e sviluppo, concretizzatasi soltanto nel 1975.
Negli anni successivi hanno trovato il loro esordio altre reti neurali multilayer, sempre più sofisticate, come il Neoconitron (1980), ideato da Kunihiko Fukushima per risolvere compiti di riconoscimento della scrittura manuale e altri problemi di pattern recognition.
Nonostante il buon successo della ricerca, che ha dato luogo ad una fiorente letteratura scientifica sull’argomento, il deep learning, così come l’intelligenza artificiale in un contesto più ampio, è entrata in una fase di inverno durata circa vent’anni. Le cause di questa brusca frenata vanno principalmente imputate alla complessità delle elaborazioni richieste dalle reti neurali profonde, che richiedevano molti giorni di calcolo sugli allora supercomputer. Circostanze che, pur facendo intuire pienamente le potenzialità di questa tecnologia, scoraggiavano la sua adozione nelle applicazioni correnti, sia in ambito consumer che nel contesto enterprise.
Negli anni 2010, grazie agli enormi progressi delle tecnologie di elaborazione informatica e all’avvento del cloud computing, il deep learning riprende la sua corsa verso la popolarità, anche a livello mediatico, come ha in varie occasioni dimostrato DeepMind, un AI Lab, acquisito da Google nel 2014, capace di sviluppare applicazioni come AlphaFold, capaci di risolvere il problema del ripiegamento proteico, aprendo letteralmente una nuova era nell’ambito della biologia molecolare.
Le applicazioni di deep learning, grazie agli enormi incentivi messi in atto dai big tech, entrano nelle applicazioni comuni, diventando alla portata di tutti, anche in maniera spesso inconsapevole. Come nel caso di DeepFace, una tecnologia di deep learning implementata in Facebook per il riconoscimento facciale e il tag automatico dei profili utente. Per offrire un’idea della complessità tecnologica del DL, basti ricordare che la prima versione di DeepFace utilizzava reti neurali profonde caratterizzate da oltre 120 milioni di parametri.
Oggi il deep learning è utilizzato in moltissimi ambiti business e, grazie a funzioni come il riconoscimento/rilevamento degli oggetti, la classificazione delle immagini e il natural language processing, alla base di applicazioni come la generazione automatica di testo/immagini, la traduzione simultanea multilingue, la sentiment analysis e la speech recognition.
Come funziona il Deep Learning
Per comprendere i principi basilari del funzionamento del deep learning è opportuno citare le fasi cruciali del processo di sviluppo.
Struttura della rete neurale
Il primo passo consiste nella scelta della rete neurale da utilizzare. Le reti neurali profonde (tre o più layer) utilizzano gli strati intermedi (hidden layer) per costruire vari livelli di astrazione, cercando di utilizzare le risorse minime necessarie per la risoluzione di un problema matematico.
L’esperienza del data scientist e del data engineer nel saper ottimizzare le risorse in funzione della complessità richiesta appare in questo caso fondamentale. Una rete neurale profonda dotata di molti hidden layer è in grado di ottenere risultati molto accurati, a fronte di una maggior complessità dal punto di vista della definizione dei dataset, dei modelli matematici e delle risorse computazionali necessarie per eseguire le necessarie elaborazioni.
Addestramento della rete
I sistemi di deep learning vengono addestrati per via di dati etichettati grazie a specifici meta tag. Un esempio molto utilizzato è relativo al riconoscimento delle immagini. Un data set di immagini raffiguranti una mucca, avrà una serie di file con metatag “mucca”, ma al sistema non vengono date ulteriori istruzioni in merito.
È la rete neurale stessa, grazie all’interazione tra i vari layer gerarchici che la contraddistinguono, a riconoscere cosa caratterizza la mucca e a riconoscerla come tale. I sistemi di DL utilizzano pertanto una procedura di apprendimento basata sul trial and error, che necessita di dataset di grandi dimensioni per poter generalizzare il problema.
Per l’addestramento delle reti neurali profonde oggi esistono vari framework, tra cui è opportuno citare Tensorflow, libreria open source nata da un progetto di Google, e PyTorch, progetto open source supportato da Meta, che lo implementato sulla base dei framework Caffe2 e ONNX.
Retropropagazione e ottimizzazione
La complessità morfologica della rete neurale si concretizza nella oggettiva complessità di regolare e pesare i vari nodi che la compongono. Per il training di una rete neurale profonda si utilizzano solitamente gli algoritmi di retropropagazione dell’errore (error backpropagation) che regolano automaticamente i pesi delle connessioni neuronali quando il risultato non soddisfa le aspettative (caso di errore).
In altri termini, l’algoritmo di retropropagazione ottimizza il risultato in maniera iterativa, per cercare continuamente i pesi più appropriati da utilizzare in funzione dell’errore stimato.
Test e validazione
Nell’ambito del machine learning, i dataset vengono solitamente suddivisi in tre tipologie: training, validation e test set, con una logica che permette addestrare il modello su un set, testarlo e affinarlo con un secondo set e validarlo con un ulteriore set. Tale procedura genera evidenti vantaggi quando si prendono in esame dataset di grandi dimensioni, come quelli comunemente utilizzati nell’ambito del deep learning.
Si tratta di un processo che richiede competenze ed esperienze che non si improvvisano. Determinare le dimensioni appropriate di training, validation e test dipende da vari fattori come le dimensioni del dataset, la complessità, il numero dei parametri del modello e la natura del problema da contestualizzare.
Anni di comprovabile esperienza sul campo consentono oggi a Moxoff di individuare le scelte più funzionali in merito alla definizione dei dataset utilizzati per l’addestramento dei sistemi di deep learning.
Implementazione
Una volta messa a punto, un’applicazione di deep learning può essere implementata per ottenere rapidamente risultati anche molto complessi. Come del resto viene espressamente raccomandato dal recente AI Act, è in ogni caso auspicabile istruire un adeguato workflow di monitoraggio e valutazione dei risultati, orientato a valutare la validità dei risultati nel tempo, la rispondenza ai disposti normativi, oltre a predisporre l’aggiornamento della documentazione utile a spiegare il funzionamento del sistema AI stesso.
Componenti fondamentali del Deep Learning
Il lessico del deep learning fa riferimento almeno ai seguenti componenti fondamentali: neuroni artificiali, reti neurali e funzioni di attivazione.
Neuroni artificiali
I neuroni artificiali sono i componenti fondamentali dei modelli matematici meglio noti come reti neurali, sulla base di uno schema di funzionamento dichiaratamente ispirato alle connessioni neurali del cervello biologico. I neuroni sono collegati in strati successivi mediante connessioni pesate, valori numerici moltiplicati per il singolo valore neuronale. I neuroni artificiali caratterizzano tutti i livelli della rete neurale: input, intermedi (nascosti), output e ne regolano di fatto il funzionamento.
Reti neurali
Una rete neurale è tradizionalmente composta da tre ordini di layer (livelli): input, intermedi (nascosti – hidden layer) e output.
- Layer di Input: riguardano l’immissione dei dati nella rete neurale artificiale
- Layer nascosti: una volta ricevuti i dati elaborati dal layer di input, i livelli nascosti adattano continuamente il loro comportamento e grazie alle interconnessioni neuronali consentono di analizzare un fenomeno da moltissimi punti di vista.
- Layer di output: costituito da un insieme di nodi che generano dati. Nel caso di un sistema yes/no sono presenti due nodi di output, che possono diventare centinaia sulla base della complessità delle risposte per cui viene programmato il sistema di deep learning.
Tra le reti neurali più diffuse ritroviamo le reti neurali convoluzionali (CNN), utilizzate per la visione artificiale e la classificazione delle immagini, e le reti neurali ricorrenti (RRN), utilizzate per le applicazioni di natural language processing e di riconoscimento vocale.
Funzioni di attivazione
I neuroni artificiali ricevono input e pesi che vengono convertiti in output. Ciò avviene grazie a specifiche funzioni di attivazione, che hanno il compito generale di aiutare la rete neurale ad apprendere relazioni e schemi complessi nei dati attraverso i vari layer che la compongono.
Esistono varie tipologie di funzioni di attivazione (Sigmoide, Softmax, Relu, Swish, ELU, ecc.) per soddisfare esigenze applicative anche molto differenti tra loro e la loro scelta è demandata alle competenze e all’esperienza pratica dello specialista dei dati.
I vantaggi del Deep Learning
Una corretta e consapevole implementazione dei sistemi di deep learning nei processi aziendali consente di ottenere importanti benefici, su tutti la capacità di elaborare le informazioni in maniera molto approfondita, in maniera versatile, con un approccio basato sul miglioramento continuo, tipico dell’apprendimento automatico.
Elaborazione avanzata delle informazioni
Le applicazioni DL restituiscono risultati molto più interessanti rispetto alle tecniche di apprendimento automatico tradizionali, grazie alla capacità di utilizzare anche i dati non strutturati, sempre più diffusi nei moderni contesti multimediali. Le reti neurali profonde consentono di effettuare analisi in grado di valorizzare al meglio il potenziale informativo dei dati delle organizzazioni.
Miglioramento continuo
Come il machine learning, anche il deep learning è una tecnica di intelligenza artificiale basata sull’apprendimento automatico, che consente di addestrare il sistema per affinare progressivamente la sua efficacia nel tempo. Un sistema di deep learning, una volta implementato in azienda, costituisce pertanto un investimento a lungo termine, in grado di generare valore nel tempo, enfatizzando la cultura data-driven delle organizzazioni.
Versatilità
Tra i risultati ottenibili grazie al DL vi è la possibilità di automatizzare molte delle operazioni di routine tradizionalmente svolte dall’uomo, in particolare quelle a basso valore aggiunto, ottenendo significativi vantaggi a livello di performance e riduzione degli errori. La crescente diffusione dei servizi in cloud sta inoltre democratizzando le applicazioni DL, rendendole alla portata di una platea di imprese più ampia, ivi comprese le PMI.
Le sfide del Deep Learning
Il deep learning costituisce una tecnologia emergente che sta maturando con una rapidità sorprendente. Tuttavia, a fronte di grandi vantaggi in termini di precisione e scalabilità, non mancano le criticità, che vanno valutate in sede di adozione, possibilmente avvalendosi di una consulenza qualificata, capace di analizzare caso per caso le esigenze aziendali per trovare la risposta più efficace in funzione del business.
Richiesta elevata di risorse computazionali
Le reti neurali profonde richiedono elaborazioni molto complesse e, di conseguenza, grandi risorse di calcolo. I moderni AI PC, grazie alle unità neurali (NPU) consentono di snellire gran parte del lavoro tradizionalmente svolto da CPU e GPU, soprattutto per i task brevi e frequenti. Per il training dei sistemi DL, come i LLM (large language model) si rendono tuttavia necessari HPC, i cui consumi e costi di gestione sono tutt’altro che trascurabili.
Necessità di grandi set di dati
I modelli di deep learning richiedono una grande quantità di dati etichettati per il training, spesso onerosi da acquisire e gestire, oltre a comportare un’adeguata data governance, non alla portata di tutte le organizzazioni. Oggi i dati sintetici ed altre tecniche consentono di agevolare la costituzione dei dataset, ma l’impegno in tal senso continua a rimanere molto elevato, specie per i modelli di grandi dimensioni.
Mancanza di trasparenza e interpretabilità
La complessità delle reti neurali profonde comporta di fatto una black box, da cui escono risultati senza che sia chiaro il modo con cui sono state generate. Alla difficoltà di interpretazione dei risultati si aggiungono possibili problemi di overfitting, che rendono il sistema troppo specifico rispetto alle problematiche generaliste che si propone di affrontare.
L’esperienza di Moxoff è in grado di supportare le aziende nel superare queste possibili barriere di adozione, o consigliare altre tecniche di intelligenza artificiale, qualora dovessero rivelarsi più funzionali nei confronti delle effettive esigenze da risolvere.
Applicazioni pratiche del Deep Learning
Il deep learning viene oggi utilizzato in moltissimi ambiti, tra cui la machine vision (computer vision), l’elaborazione del linguaggio naturale (natural language processing) e il riconoscimento dei pattern (pattern recognition).
Machine Vision
Le applicazioni di machine vision tradizionali hanno ottenuto grandi benefici in termini di accuratezza e performance grazie alle tecniche di deep learning, molto utilizzate in ambiti che spaziano dalla diagnostica medica al controllo di qualità nei processi di produzione industriale.
Le principali funzioni DL nell’ambito della machine vision sono la classificazione delle immagini, la segmentazione semantica, il riconoscimento degli oggetti e il rilevamento delle anomalie. Vengono utilizzate principalmente le reti neurali convoluzionali (CCN).
Elaborazione del linguaggio naturale
Il deep learning è sempre più utilizzato nel contesto del natural language processing (NLP) per applicazioni come la sentiment analysis, la traduzione simultanea, la gestione documentale, i chatbot, la ricerca di informazioni, la sommarizzazione dei contenuti, i sistemi antispam, la correzione grammaticale e la generazione di contenuti testuali.
Riconoscimento di pattern
Il pattern recognition è una tecnica basata sul deep learning che utilizza l’analisi dei dati per riconoscere i modelli e le relative anomalie che potrebbero presentarsi rispetto alle situazioni standard. Nel caso, i dati possono essere qualsiasi cosa: testo, immagini, video, suoni, ecc. Uno dei punti di forza di questa tecnica risiede nella capacità di riconoscere modelli nascosti anche in oggetti sconosciuti, proprio grazie alla natura stessa del deep learning.
Casi d’uso del Deep Learning
Le applicazioni basate sul deep learning costituiscono ormai una prassi consolidata in settori quali il finance, l’healthcare e il manufacturing.
Settore finanziario
Il settore finanziario utilizza tecniche di deep learning in varie applicazioni, che spaziano dalle analisi predittive dell’andamento dei mercati, alla valutazione dei rischi di investimento, ai sistemi antifrode. In particolare, questi ultimi utilizzano tecniche di rilevamento delle anomalie per identificare i possibili comportamenti sospetti, sintomatici di una truffa nei confronti dei sistemi bancari (POS, transazioni online banking, carte di credito, ecc.).
Settore sanitario
Le tecniche di image recognition basate sul DL vengono utilizzate in radiologia per identificare le anomalie presenti sui referti diagnostici. Le applicazioni DL e ML consentono di vedere laddove l’occhio umano non sarebbe mai in grado di arrivare, scoprendo le fasi precoce della malattia, con un sensibile abbattimento dei falsi positivi.
Settore manifatturiero
I sistemi di deep learning sono ampiamente utilizzati nel contesto dell’industria manifatturiera, in applicazioni quali manutenzione predittiva, intelligence process automation (IPA), controllo qualità, previsione della domanda di mercato e dei componenti per la produzione, contract management, ottimizzazione dei processi produttivi, digital twin, cybersecurity IT/OT e molti altri.
Tecnologie complementari con il Deep Learning
Le applicazioni basate sul deep learning vengono spesso utilizzate insieme ad altre tecniche di intelligenza artificiale, come il machine learning stesso, da cui deriva, e applicazioni più recenti, come la RAG (retrieval-augmented generation).
Integrazione con Machine Learning
Le differenti finalità del machine learning e del deep learning rendono perfettamente complementare l’impiego di queste due tecniche di intelligenza artificiale, utilizzando il ML per la soluzione di problemi noti e il DL per l’approccio generalista anche verso le situazioni ignote a priori.
Integrazione con RAG
Oggi la RAG (retrieval-augmented generation) è molto utilizzata quando si tratta di rendere specifici i modelli di grandi dimensioni (LLM) commerciali, che sono addestrati con enormi dataset, che non comprendono tuttavia i dati proprietari delle organizzazioni che le implementano. La RAG interroga il modello aggiungendo informazioni specifiche nel prompt, evitando pertanto il re-training del modello.
Moxoff e Deep Learning
La consulenza e lo sviluppo di soluzioni basate sul machine learning semplifica l’implementazione di sistemi progettati per migliorare e rendere più informate le decisioni aziendali, oltre ad incrementare l’efficienza dei processi aziendali. Moxoff mette a disposizione la sua comprovata esperienza nel ML e del DL per aiutare le aziende a ottenere il massimo da queste tecnologie, per superare con successo tutte le sfide e le criticità che derivano dalla loro adozione.
Moxoff consente alle aziende di implementare una soluzione ad hoc per soddisfare le proprie esigenze, grazie ad un approccio end-to-end che comprende l’analisi del business e dei dati a disposizione, la progettazione, l’integrazione e il mantenimento dei sistemi di deep learning, per migliorare nel tempo la loro efficienza.