Deep learning: cos’è e in quali casi si usa l’apprendimento profondo

pittogramma Zerouno

Guida

Deep learning: cos’è e in quali casi si usa l’apprendimento profondo

Nella ricerca di metodi per creare sistemi in grado di attuare comportamenti intelligenti simili a quelli di umani e animali, si è posta l’attenzione sull’apprendimento automatico. E cercando di riprodurre i meccanismi del cervello si è giunti allo sviluppo di reti neurali artificiali profonde, che hanno reso possibile la nascita del deep learning

19 Mag 2022

di Riccardo Cervelli

Secondo diversi autorevoli esperti di IT, il deep learning rappresenta la versione più emblematica di quanto sia riuscita ad avanzare negli ultimi anni la disciplina informatica dell’intelligenza artificiale (IA o AI). Del resto, è sufficiente rendersi conto di come al deep learning (letteralmente: apprendimento profondo) siano dedicati sempre più corsi universitari (non solo di ingegneria, ma anche di materie economiche, sociali e umanistiche), libri, offerte tecnologiche ad hoc da parte di vendor IT, cloud service provider e comunità open source.

Cos’è il deep learning (apprendimento profondo)

apprendimento profondo

Il Deep Learning o apprendimento profondo sfrutta architetture e modelli matematici che permettono di replicare il funzionamento del cervello umano. Nell’AI l’insieme di queste architetture e modelli matematici (algoritmi) prendono il nome di reti neurali multistrato. L’aggettivo “profondo” del Deep Learning deriva dalla grande quantità (da decine a milioni) di “strati” di neuroni artificiali.

WHITEPAPER
AZIENDA RETAIL: ecco i 15 motivi per cui hai bisogno dell'Intelligenza Artificiale!
Intelligenza Artificiale
Retail

Il deep learning è oggi una delle tecnologie più promettenti nell’ambito dell’intelligenza artificiale (AI) per una serie di motivi che riguardano sia le potenzialità applicative per integrare attività tipicamente umane, sia la possibilità di automatizzare i processi di apprendimento (machine learning) con cui il sistema diventa più abile ed efficace nel corso del tempo.

Sfruttando la peculiare organizzazione dell’elaborazione nota come rete neurale, il deep learning realizza l’apprendimento avvalendosi di classi specializzate di algoritmi disposti a più livelli.

Questa organizzazione permette al sistema di effettuare da sé le operazioni di estrazione di caratteristiche, correlazione e organizzazione gerarchica dei dati con cui è alimentato.

Come funziona il deep learning

Come già accennato, il Deep Learning si basa sull’utilizzo di software (in qualche caso anche hardware, come i processori NPU, o neural processing unit, o TPU, tensor processing unit) che imitano il funzionamento delle reti neurali biologiche presenti nel cervello umano e animale.

Nelle reti neurali artificiali multistrato (o multi-livello), ogni strato è costituito da un ingresso (input), uno strato nascosto (hidden) in cui avviene l’elaborazione del dati, e uno strato di uscita (output).

Ciascun neurone presente in ogni strato costituisce un nodo computazionale dotato di connessioni (sinapsi) verso altri neuroni, nonché di pesi (o parametri) attribuiti alle singole connessioni nel corso dell’addestramento iniziale e di quello continuo (continuous learning).

Per sviluppare le reti neurali artificiali, si utilizzano gli stessi linguaggi di programmazione (come C++, Python, Java e Javascript, etc.) usati per codificare le applicazioni tradizionali.

Ma mentre con i software tradizionali sono gli sviluppatori a dire ai programmi quali dati utilizzare (fra tipologie di solito limitate in termini di formati e fonti) e quali regole di elaborazione seguire, nell’apprendimento profondo le reti neurali sono concepite per imparare come comportarsi direttamente dai dati.

In questo modo si realizza un processo d’apprendimento simile a quello biologico, realizzato per livelli d’astrazione crescenti, che non soffre dei limiti massimi di prestazione che caratterizzano i sistemi di machine learning più semplici “superficiali” che non usano reti neurali. Il deep learning permette ai sistemi di migliorare le prestazioni, man mano che si aggiungono nuovi dati di training e livelli nella rete che li elabora.

3 ingredienti fondamentali

Per questo, le soluzioni di Deep Learning hanno bisogno di almeno tre ingredienti fondamentali: algoritmi di apprendimento automatico dai dati, moltissimi dati (o dataset, big data, etc.) per l’addestramento (fino ad ottenere l’atteso livello di correttezza delle risposte per il più elevato numero di dati di ingresso) e molto potenza di calcolo e memoria (storage).

Come le reti neurali biologiche, vale ancora la pena di ricordare, anche le reti neurali artificiali sono di tipologie molto diverse fra loro. Le principali differenziazioni dipendono dal tipo di architettura e dal metodo di apprendimento. Anche se spesso questi aspetti si possono trovare miscelati in modo fantasioso per affrontare use case specifici e multidisciplinari.

Anche i modelli matematici utilizzati differiscono caso per caso. Ma nell’armamentario dello sviluppatore di soluzioni di apprendimento profondo non possono mancare conoscenze approfondite dell’analisi (calcolo integrale e differenziale), del calcolo matriciale, della statistica e della probabilità.

Allenare la rete neurale in 3 step

Come fare acquisire conoscenze ed esperienza alle reti neurali? Spieghiamolo in 3 step.

Fase di apprendimento

Solitamente si utilizza la back propagation. Si inserisce nella rete un input relativo a un esercizio del quale la rete conosce l’esito corretto. Lo si fa arrivare alla fine facendolo passare per tutti gli strati nascosti. Dato che la rete è “ignorante”, il passaggio da uno strato all’altro avviene in modo casuale e l’output sarà quasi sicuramente sbagliato. Sapendo però quale avrebbe dovuto essere la risposta corretta, la rete capisce di quanto ha sbagliato. Torna indietro nel percorso impostando man mano parametri diversi che si avvicinano sempre più al percorso corretto. Più sono gli esempi (e migliori sono) che vengono “digeriti” dalla rete e propagati all’indietro e maggiore sarà la probabilità che la rete effettui le associazioni giuste.

Fase di test

Quando il programmatore ritiene che la rete sia sufficientemente istruita immette nella rete degli input relativi a problemi dei quali lui (ma non la rete) conosce la soluzione. Questo gli consente di capire se la rete è pronta per poter elaborare problemi veri su dati nuovi. Oppure se sbaglia ancora troppo spesso e deve quindi essere maggiormente istruita. Sono necessarie milioni di sessioni di training e di testing per mettere in produzione una rete neurale efficace.

Messa in produzione

Superata la fase di test, il lavoro non termina con la messa in produzione della rete. Bisogna infatti creare meccanismi di feedback perché non è detto che una rete che funziona bene oggi funzioni bene anche domani. Cambiano i contesti, i comportamenti, gli scenari e la rete deve essere in grado di aggiornarsi in tempo quasi reale. Per farlo ha bisogno di meccanismi che le facciano capire se sta andando nella direzione giusta o no.

Una frontiera importante per l’evoluzione delle reti neurali è rappresentata dalla ricerca nell’ambito delle nanotecnologie e dei chip neuromorfici.

Cosa è possibile fare con il deep learning?

Le tecnologie di deep learning, almeno per ora, non sono in massima parte alternative ai software tradizionali. Così come non lo sono nemmeno rispetto a molte altre applicazioni di AI o Machine Learning non neurali. Tecnologie meno “profonde” ma molto efficienti nei loro ambiti (si pensi, per esempio, ai sistemi esperti).

Per contro, avendo come obiettivo quello di comportarsi in modo simile – anche se per compiti specifici – al cervello umano e animale, le soluzioni di Deep Learning possono affrontare scenari molto complessi. Scenari in cui i dati in ingresso sono tantissimi, di natura molto eterogenea (spesso sconosciuta), con elevati “rumori di fondo” (dati che non interessano, spesso errati). E in cui le variabili (parametri o pesi) vanno calcolate con modelli matematici diversi la cui scelta e applicazione non può sempre attendere l’intervento manuale umano.

Come dall’intelligenza umana e animale, non è possibile attendersi sempre risultati sicuri al 100%. Inoltre, non è possibile sapere con quali procedimenti l’apprendimento profondo è arrivato a determinati risultati (di qui l’appellativo, spesso utilizzato, di “scatole nere”). Eppure questo è reso accettabile dai vantaggi di poter affrontare casi d’uso complessi. Situazioni spesso critiche, che l’uomo non affronta solo con la logica (deduzione e induzione), ma anche con l’intuizione, le credenze profonde, gli “apriori”, l’esperienza, le emozioni stesse.

Esempi di utilizzo del deep learning

Per come funziona il deep learning, non esistono problemi di scalabilità degli algoritmi d’apprendimento utilizzati e oggi è relativamente facile impiegarli grazie all’accessibilità di hardware con CPU e GPU dedicate, oltre che di specifici servizi erogati in cloud.

Natural language processing

Il NLP (elaborazione del linguaggio naturale) il campo su cui si è più sviluppata inizialmente l’AI. Con l’avvento del Deep Learning questo campo ha potuto fare enormi passi avanti.

Ha acquisito capacità di traduzione multilinguistica senza passare dall’inglese e di produrre testi scritti. Il parlato non è più basato su frasi fatte da scegliere e completare. Ma è generato automaticamente parola per parola in modo creativo, basandosi sull’esperienza e sulla probabilità.

Computer vision, il riconoscimento delle immagini

La visione artificiale è sicuramente il campo del Deep Learning in cui si è già stata raggiunta stabilità ad altissimi livelli per scopi che vanno dalla classificazione di archivi fotografici alla sicurezza, passando per i sistemi di controllo di qualità industriali e i sistemi di guida autonoma.

Servizi di conferenza aziendali sono già oggi in grado di associare i nomi ai volti delle persone, e di trascrivere discussioni. Assistenti sintetici, richiamabili nelle call aziendali, possono fornire su richiesta dati di fatturato, produzione, tempi di consegna. Accando a quesete anche altre informazioni analitiche di cui ci sia necessità durante una riunione o stipula di un contatto.

L’autonomous driving viene ritenuta una palestra utilissima per la creazione e l’addestramento di sistemi di computer vision. Questo poiché l’ontologia (oggetti che possono e devono riconosciuti: in questo caso strade, segnaletica, persone, altri veicoli, luminosità etc.) è limitata.

Ciò consente di concentrarsi su aspetti diversi dalla capacità di riconoscere molteplici oggetti diversi. Si predilige l’affidabilità del riconoscimento di quelli veramente importanti. E l’elaborazione delle decisioni e delle azioni giuste da intraprendere in tempo reale.

Robotica

La creazione di robot sempre più autonomi e versatili è resa possibile dal deep learning poiché permette di dotare questi sistemi di una intelligenza multiforme. Intelligenza che include:

  • il NLP non solo passivo ma anche generativo.
  • Il riconoscimento delle immagini (e quindi quello di oggetti o impianti in produzione, permettendo anche l’identificazione di quelli difettosi; persone; animali; ambienti, etc.).
  • L’elaborazione sensoriale tattile e olfattiva.
  • Il processing di serie storiche per effettuare predizioni o pianificazioni.
  • La capacità di compiere le azioni necessarie per affrontare vincoli temporali e/o recuperare energia, e così via.

Marketing

La tecnologia del deep learning ha messo a disposizione dei reparti marketing e vendite aziendali i nuovi sistemi per l’analisi delle opinioni (sentiment) espresse su social network dai clienti. Strumenti che consentono di indirizzare i gusti dei consumatori o specifici problemi d’immagine relativamente a un marchio o un prodotto.

Retail

Il deep learning consente di elaborare dati storici già esistenti in azienda relativi a guasti e interventi su apparati di produzione o altri impianti. Questo serve per scegliere il fornitore migliore, definire le parti da tenere a magazzino o avviare servizi di manutenzione predittiva.

Medicina

Un ambito in cui l’intelligenza artificiale e il deep learning possono dare grandi benefici sono le applicazioni nel settore della sanità. Si tratta di un campo in cui gli esperti si attendono che la tecnologia possa trasformare l’approccio alla medicina (con specialità create su misura del malato). Così come il lavoro del medico grazie a supporti in grado di ridurre i tempi normalmente richiesti per arrivare a una corretta diagnosi.

Sistemi di deep learning hanno mostrato la loro utilità nello sviluppo di nuove molecole medicinali, nell’analisi del genoma e delle immagini radiografiche alla ricerca di tumori. Il deep learning, consente di analizzare fattori e casi specifici in quantità molto superiori a quelli gestibili da un essere umano. E quindi permettere decisioni più veloci. Decisioni che possono salvare delle vite quando, per esempio, aiutano il personale non medico di un pronto soccorso ad assegnare le priorità.

Alcune applicazioni meno critiche riguardano oggi i sistemi di raccomandazione che in base ai sintomi segnalati dalle persone indicano loro cosa fare e di quale medico o specialista hanno bisogno. Un nuovo progetto, che vede coinvolta IBM con il motore deep learning Julia, ha come obiettivo migliorare le cure per la retinopatia diabetica, malattia di cui sono affette 150 milioni di persone nel mondo.

Raccomandazioni

Lo scenario dell’utilizzo del Deep Learning per produrre raccomandazioni è molto vasto e abbraccia molteplici settori della vita e dell’economia.

Con le reti neurali, in particolare quelle che sfruttano componenti di memoria, è possibile creare soluzioni di Deep Learning. Esse consentono, per esempio, di analizzare i curricula e compiere scelte di assunzione tenendo conto di un gran numero di fattori (passati, attuali e futuri).

Oppure suggerire l’acquisto di nuovi prodotti “intuendo” propensioni del cliente che non sono rilevabili da parte di software di analytics tradizionali. Lo stesso si può dire per la sottoscrizione di polizze assicurative, piani pensionistici, operazioni di Borsa.

Che differenza c’è tra deep learning e machine learning?

Il Deep Learning è una versione (un subset) del machine learning (ML), che significa apprendimento automatico. Si tratta della capacità di sistemi di AI di imparare da soli dai dati senza essere specificatamente programmati. Il deep learning differisce dal machine learning solo perché l’apprendimento automatico avviene all’interno di reti neurali profonde. Reti che si ispirano al sistema nervoso degli uomini e degli animali.

Non tutto il Machine Learning è Deep Learning. Per contro chi sviluppa tecnologie di deep learning di fatto deve conoscere e implementare tecniche di machine learning.

WHITEPAPER
Automazione e validazione dei software? L'AI fa la differenza!
Intelligenza Artificiale
Software

Riccardo Cervelli

Giornalista

Nato nel 1960, giornalista freelance divulgatore tecnico-scientifico, nell’ambito dell’Ict tratta soprattutto di temi legati alle infrastrutture (server, storage, networking), ai sistemi operativi commerciali e open source, alla cybersecurity e alla Unified Communications and Collaboration e all’Internet of Things.

Articolo 1 di 4