approfondimento

Deep Neural Network: cos’è e come può essere utile alle PMI



Indirizzo copiato

Una DNN è una rete neurale artificiale usata soprattutto nell’apprendimento supervisionato e in quello per rinforzo. Restituisce risultati migliori rispetto alle normali reti neurali e, considerato il processo di democratizzazione, è alla portata anche delle piccole imprese

Pubblicato il 8 apr 2024



deep neural network

Per descrivere l’utilità di una Deep Neural Network è utile partire dalla fine: il risultato ultimo è il miglioramento dell’efficienza e della precisione delle attività aziendali. Questo è il “cosa fa” una Deep Neural Network (DNN), occorre ora descrivere il “come lo fa” e, soprattutto, perché è utile anche alle PMI, capitolo quest’ultimo che ha più di un argomento a sostegno.

Prima di addentraci tra le Deep Neural Network è utile sapere che sono usate in una vasta gamma di settori e che, grazie anche alle diverse formule di Software-as-a-Service, il loro uso è possibile senza avere conoscenze approfondite di Data science.

Introduzione alle Deep Neural Network

Le Deep Neural Network (DNN o, in italiano, reti neurali profonde) sono di fatto modelli di apprendimento automatico capaci di cimentarsi con rappresentazioni complesse dei dati. Come vedremo, hanno una struttura gerarchica che favorisce le elaborazioni astratte dalle informazioni in entrata. Questa capacità di apprendere in modo autonomo fa sì che siano usate in diversi settori e, al contrario di quanto si possa credere, sono appannaggio anche delle piccole realtà aziendali.

Hanno un ruolo capitale nello sviluppo delle AI, perché l’aumentare della profondità delle Deep Neural Network è parte integrante di sistemi sempre più potenti e sofisticati.

Cos’è una Deep Neural Network

Una Deep Neural Network è un tipo di intelligenza artificiale che mira a risolvere problemi complessi ispirandosi alla struttura neuronale del cervello dell’uomo. Sono un sottoinsieme del Machine learning e rappresentano il cuore degli algoritmi di Deep learning.

Le DNN sono formate da diversi livelli di nodi (neuroni artificiali) che comprendono il livello di input, un numero variabile di hidden layer (livelli nascosti) e il susseguente livello di output.

Deep Neural Network

Migliorano l’accuratezza dei risultati con l’avanzare dell’apprendimento e, se opportunamente ottimizzate, le DNN sono in grado di ridurre in modo notevole il tempo necessario a un uomo per lo svolgimento di diversi compiti.

Come funziona una Deep Neural Network

Il funzionamento è tutto sommato semplice nella sua forma. Lo strato di input riceve i dati e gli strati nascosti si fanno carico di elaborarli ricorrendo a più livelli, ognuno dei quali ha un peso e una soglia i quali, se superati, fanno sì che venga coinvolto il livello successivo. Lo strato di output, infine, riceve il risultato delle elaborazioni effettuate dagli strati nascosti.

Le DNN sono un toccasana ovunque si lavori con dati non strutturati.

Architettura di una Deep Neural Network

Come scritto sopra, una DNN è formata da più livelli deputati all’elaborazione di dati di input per restituire un output specifico. L’architettura tipica è così composta:

Deep Neural Network
  • Livello di input: da qui i dati vengono inseriti nella rete. Ogni nodo del livello di entrata rappresenta una caratteristica univoca dell’input stesso
  • Livelli nascosti: gli hidden layer sono deputati all’elaborazione dei dati mediante una struttura complessa di pesi e funzioni. Sono tendenzialmente numerosi e ognuno di questi piò apprendere da aspetti specifici del set di dati di input
  • Livello di output: è il livello che restituisce il risultato del lavoro svolto dalla DNN, per esempio una previsione o una classificazione.

Le capacità di apprendimento automatico delle DNN è prezioso per le applicazioni delle AI. L’architettura a livelli è tipica dell’informatica in senso ampio: un livello svolge un compito mettendosi al servizio del livello successivo affinché un compito specifico venga eseguito.

Applicazioni delle Deep Neural Network

Le DNN trovano applicazione in diversi campi proprio in virtù delle ingenti moli di dati che sono in grado di elaborare al fine di individuare schemi complessi. Tra questi spiccano:

  • L’elaborazione del linguaggio naturale: le DNN si prestano al riconoscimento vocale (e quindi alle applicazioni che ne derivano), alla generazione di testo e alle traduzioni
  • Le AI generative: quindi la creazione di testi e immagini (con il rischio della deriva deepfake)
  • L’identificazione e la classificazione di immagini: anche questa utile in molti comparti, non da ultimo nella sanità per le diagnosi
  • La visione artificiale e il riconoscimento facciale
  • La guida autonoma: il riconoscimento dell’ambiente circostante è materia demandata alle DNN

A goderne ci sono molti altri comparti, tra i quali la finanza e il marketing, rispettivamente per l’analisi e la previsione dei mercati (ma anche per il rilevamento delle frodi) e per l’analisi del comportamento dei consumatori (e quindi il targeting).

Queste applicazioni sono la dimostrazione plastica della possibilità d’uso anche per le PMI: chatbot, automazione di flussi e processi, profilazione degli utenti e dei clienti sono tecnologie già al servizio di molte realtà aziendali anche di piccola o media grandezza e sono correlate – benché in modo più o meno diretto – al lavoro svolto dalle DNN.

Deep Neural Network per la visione artificiale

Le Deep Neural Network sono impiegate per il riconoscimento e la classificazione di oggetti. Usando più strati nascosti si possono elaborare informazioni prettamente visive con precisione. Va considerato che le DNN sono state progettate anche per individuare e riconoscere modelli ispirandosi al sistema visivo dell’uomo.

Tuttavia, è bene sottolineare gli esiti di uno studio di Felix A. Wichmann (Università di Tubinga) e di Robert Geirhos (Google Research, Brain Team) secondo il quale le DNN sono da inserire nelle tecnologie promettenti ma non ancora adeguate a rispondere a tutte le necessità attuali in ambito di computer vision.

Deep Neural Network per l’elaborazione del linguaggio naturale

Grazie alla struttura neuronale che emula il cervello umano, le DNN palesano vantaggi nell’apprendimento tramite esempi e nella multimodalità. Ciò si riverbera positivamente sull’elaborazione del linguaggio naturale (NLP) che, grazie alle DNN, guadagna in prestazioni sia nel comparto della rappresentazione in parole sia in quello della traduzione automatica. Altrettanto vale per il riconoscimento e la sintesi vocale.

Discorso a parte – e anche più complesso – è quello relativo alla comprensione del testo che, benché si avvicini a quello umano, resta ancora in parte tabù: la vera comprensione è frutto delle capacità di contestualizzazione e di astrazione e, su questi fronti, il lavoro delle DNN è da considerare ancora lungi dall’essere attendibile.

Deep Neural Network per la robotica

Le Deep Neural Network migliorano le prestazioni dei controller canonici e questo permette agli agenti robotici di identificare e classificare modelli complessi mediante i dati acquisiti dai sensori.

A ciò occorre aggiungere l’apprendimento autonomo che consente agli agenti di imparare dall’esperienza pregressa, eliminando (o limitando) la necessità di interventi di programmazione.

A cascata, le DNN facilitano l’adattamento degli agenti a situazioni nuove e inattese e, non da ultimo e anche grazie alla spinta che queste danno al NLP, migliorano le interazioni uomo-macchina.

In sintesi, le Deep Neural Network giovano alla definizione (asettica) di “cognizione” in ambito robotico.

Altri casi d’uso delle Deep Neural Network

Oltre a quelli citati, gli ambiti di applicazione delle DNN spaziano in diverse direzioni, arrivando a coprire:

  • I sistemi di raccomandazione, deputati al suggerimento di contenuti o prodotti coerenti con gli interessi dei clienti o degli utenti
  • Il controllo autonomo che si applica alla guida autonoma ma anche alle verifiche e al controllo del traffico aereo
  • La ricerca scientifica. Le DNN collaborano alla scoperta di nuovi materiali per la farmacopea
  • L’analisi predittiva.

Le DNN fanno parte del costrutto rappresentato dall’Intelligenza artificiale e, come tali, sono correlate ad altre tecnologie.

Tecnologie correlate alle Deep Neural Network

In quanto classi di reti neurali artificiali, le DNN rientrano in un contesto più ampio di tecnologie collegate tra loro:

  • Reti neurali artificiali propriamente dette
  • Reti neurali ricorrenti (RNN), adatte ai dati sequenziali (tipicamente testo e audio)
  • Reti neurali convolutive (CNN), adatta all’elaborazione di immagini e video
  • Reti neurali graf (GNN), adatte alle rappresentazioni di un grafo, usate in bioinformatica, dai sistemi di raccomandazione e dai social network
  • Autoencoder, ovvero reti neurali impiegate nell’apprendimento non supervisionato.

Reti neurali artificiali: ANN

Le reti neurali artificiali (Artificial Neural Network, ANN), sono modelli matematici formati da neuroni artificiali che emulano le caratteristiche cognitive del cervello umano. Gli algoritmi delle ANN sono deputati al riconoscimento dei modelli e delle correlazioni che si trovano nei dati non strutturati.

Anche la struttura delle ANN prevede un livello di input, dei livelli nascosti e un livello di output. Le DNN possono contenere però più di 150 livelli nascosti, un numero ben maggiore rispetto a quelli contenuti nelle reti neurali tradizionali, di norma non più di tre.

Apprendimento automatico: Machine learning

Le DNN e il Machine learning sono capitali per le AI nel loro insieme. Il Machine learning, ossia l’apprendimento automatico, si fonda sulla capacità delle macchine di imparare dai dati e fornire così prestazioni che migliorano con il passare del tempo.

Le DNN sono una categoria di algoritmi di Machine learning e, come visto, fanno leva sull’impiego di strati di nodi (i “neuroni”) per elaborare dati complessi.

Intelligenza artificiale

L’intelligenza artificiale è un costrutto che si fonda sul Machine learning e sul Deep learning. Il rapporto è lineare: l’AI include il Machine learning e questo include il Deep learning. In modo sintetico, è possibile stilare questo elenco di peculiarità:

  • L’intelligenza artificiale si occupa di creare sistemi in grado di eseguire compiti tipici dell’intelligenza umana (questa affermazione meriterebbe lunghi approfondimenti ed è oggetto di dibattiti e di ampia letteratura)
  • Il Machine learning è sottocategoria dell’AI e si basa sulla capacità di migliorare in modo automatico con un intervento umano limitato (se non del tutto assente)
  • Il Deep learning è sottoinsieme del Machine learning e fa leva su reti neurali affinché le macchine possano riconoscere modelli complessi tra i dati di input.

Implementazione di una Deep Neural Network

È un argomento vasto e a tratti ostico. Il costo di implementazione di una Deep Neural Network può essere ingente ed è anche per questo che, come vedremo, esistono strumenti che rendono la materia più facilmente accessibile (ancorché complessa).

Gli step essenziali per l’implementazione di una Deep Neural Network sono:

  • Definire il problema: stabilire quale problema va affrontato
  • Preparare i dati: partendo dai dati disponibili, occorre che questi vengano raccolti, puliti e normalizzati e persino arricchiti per le elaborazioni successive
  • Progettare la rete: una volta definito il problema e quindi la soluzione attesa e una volta preparati i dati utili è opportuno disegnare l’architettura della DNN, predisponendo gli strati nascosti, i pesi, le soglie e le funzioni di attivazione di ognuno di questi
  • Addestramento: la DNN va addestrata utilizzando i dati. È la fase in cui la rete impara e riconosce i modelli dei dati
  • Ottimizzazione: l’addestramento viene valutato al fine di comprendere se l’architettura della DNN e i dati restituiscono prestazioni in linea con quelle attese
  • Dispiego: dopo l’ottimizzazione la rete può essere messa in produzione e lavorare con il set di dati completo

Esistono framework e librerie, anche gratuite, che facilitano il compito dell’implementazione di una Deep Neural Network.

Strumenti e librerie per Deep Neural Network

Ci sono diversi strumenti che rendono più facile lo sviluppo e l’amministrazione delle Deep Neural Network.

Tra questi è utile elencare TensorFlow, una libreria Open source per il Machine learning che include tool, librerie e risorse messe a disposizione dalla comunità che ne garantisce la stabilità e lo sviluppo.

TensorFlow offre API per diversi linguaggi, per diverse piattaforme e sistemi operativi che rendono più semplice la produzione di sistemi Machine learning.

La libreria Keras e il framework PyTorch (a sua volta implementato sulla libreria Torch) sono altri strumenti completamente votati alle AI come costrutto e sposano il compito di rendere più spedito e semplice lo sviluppo di DNN.

Fasi di sviluppo di una Deep Neural Network

Le fasi di sviluppo delle Deep Neural Network ricoprono quelle già citate nel paragrafo dedicato alla loro implementazione.

Si tratta soprattutto dell’addestramento delle DNN e quindi dell’ottimizzazione dei parametri al fine di migliorarne le prestazioni.

Nel pieno dell’addestramento, una Deep Neural Network usa i dati per apprendere a svolgere i compiti che le sono assegnati. A seguire interviene l’ottimizzazione dei parametri della rete e quindi la valutazione delle prestazioni, operazioni queste ultime che possono anche essere iterate fino al raggiungimento del risultato desiderato.

Best practice per l’implementazione delle Deep Neural Network

Le best practice per l’implementazione delle DNN impongono modalità e tecniche per migliorarne l’efficienza.

Uno degli aspetti cruciali dell’addestramento delle reti neurali nel loro insieme è la gestione dei gradienti, concetto che si riferisce all’uso di algoritmi di ottimizzazione (Gradient Descent è un algoritmo molto utilizzato) il cui impiego è direttamente coinvolto con la convergenza della rete neurale e quindi con l’efficacia dell’addestramento stesso.

C’è da tenere conto delle strategie di regolarizzazione utili a evitare l’overfitting, un problema ricorrente nell’addestramento di modelli di Machine learning che si verifica quando uno di questi si adatta ai dati fino al punto di memorizzarne anche caratteristiche di scarsa importanza se non del tutto irrilevanti.

La progettazione della rete neurale, infine, dovrebbe partire da un’architettura semplice da arricchire a seconda del grado di difficoltà e delle caratteristiche del problema che deve essere risolto.

Occorre tenere debito conto del fatto che le DNN sono poco penetrabili, nel senso che il loro funzionamento interno è poco trasparente, la loro robustezza (la capacità di resistere alle perturbazioni) è ancora un cantiere aperto e, non da ultimo, essendo strettamente collegate all’hardware, anche questo deve essere ottimizzato affinché possano essere efficienti.

Articoli correlati

Articolo 1 di 4