Il Deep Learning, ovvero apprendimento profondo, è una disciplina del Machine Learning che si riferisce all’apprendimento su più livelli delle macchine dell’Intelligenza Artificiale.
Questa sottocategoria ha lo scopo primario di costruire modelli di apprendimento su differenti livelli.
Grazie ad una quantità precisa di dati, il sistema AI è capace di apprendere la corretta rappresentazione, risolvendo problemi legati all’apprendimento automatico senza bisogno di un pre-processamento delle informazioni, cosa che invece accade con le classiche tecniche di Machine Learning.
Dunque, con il Deep Learning si vanno ad esporre le reti neurali artificiali ad enormi quantità di dati, in maniera che possano imparare ad eseguire svariati compiti. Infatti, con i modelli di Deep Learning si possono automatizzare le attività che generalmente necessitano dell’intelligenza umana, a cominciare dalla trascrizione di video/audio per arrivare alla descrizione di immagini.
Proviamo allora a comprendere meglio come funziona il Deep Learning e in quali settori viene applicato oggi.
Cos’è il Deep Learning
Come detto, il Deep Learning è una disciplina dell’AI o più precisamente una sottocategoria del Machine Learning. È una branca specifica che si avvale dell’uso di algoritmi che prendono ispirazione dalla struttura e dalle funzioni del cervello umano e sono definiti reti neurali artificiali.
In parole più semplici, il Deep Learning è l’apprendimento delle macchine per mezzo di dati estratti attraverso l’uso di algoritmi. L’apprendimento profondo è parte della vasta famiglia di metodi di Machine Learning fondati sull’assorbimento di rappresentazioni di informazioni.
Quindi si può dire che il Deep Learning sfrutta una categoria di algoritmi che utilizzano differenti livelli di unità non lineari a cascata per la trasformazione e l’estrazione di caratteristiche. Inoltre, ogni livello successivo impiega l’uscita del livello precedente come input.
Insomma, con l’applicazione del Deep Learning la macchina sarà in grado di classificare autonomamente i dati e strutturarli gerarchicamente, individuando quelli più utili per la risoluzione di un problema.
L’importanza delle reti neurali per il Deep Learning
L’apprendimento profondo si basa principalmente sulla selezione e classificazione dei dati più rilevanti per arrivare ad una conclusione, proprio come fa il cervello umano che è solito mettere in azione i neuroni e le connessioni neurali per trovare una risposta ad un quesito o problema.
Infatti, i neuroni umani interconnessi tra loro compongono le reti neurali cerebrali che consentono all’uomo di fare calcoli, pensare, distinguere suoni o immagini e imparare.
Il Deep Learning agisce esattamente nello stesso modo, sfruttando le reti neurali artificiali, cioè dei sistemi di calcolo matematico e informatico fondati sul meccanismo d’azione delle reti neurali umane.
Tali reti neurali artificiali sono strutture di dati statistici non lineari che ricevono segnali dall’esterno su uno strato di nodi.
Ogni nodo d’ingresso è collegato a diversi nodi interni della rete che sono strutturati su più livelli, così che ciascun nodo possa elaborare i segnali esterni comunicando ai livelli successivi il risultato della propria elaborazione.
Affinché però il processo di Deep Learning sia efficace, è indispensabile addestrare le reti neurali, ovvero insegnargli come comportarsi quando si presenta un problema (riconoscimento facciale e altre tecnologie AI).
Come funziona il Deep Learning
Attraverso il Deep Learning si possono simulare i processi di apprendimento tipici del cervello umano mediante le reti neurali artificiali per insegnare alle macchine ad apprendere in maniera più profonda.
Con l’aggettivo profondo si intende su più livelli della rete neurale, denominati layer. Le reti neurali tradizionali ne hanno 2 o 3, mentre quelle profonde arrivano fino a 150 layer.
Ogni rete neurale è composta da 3 elementi:
- Livello di input: le reti neurali sono dotate di vari nodi che fanno da porta d’ingresso all’immissione di dati. Tali nodi sono appunto il livello di input del sistema;
- Livello nascosto (hidden layer): il livello di input ha il compito di elaborare e trasmettere ai livelli seguenti i dati all’interno della rete neurale. Questi livelli nascosti adattano poi il comportamento secondo le nuove informazioni ricevute. Gli hidden layer possono essere centinaia e servono ad analizzare un task da differenti angolazioni;
- Livello di output: il livello di output si compone di nodi che producono dati. I modelli di Deep Learning che forniscono risposte “si” oppure “no” hanno solamente 2 nodi in output. Quelli che offrono una più vasta gamma di risposte hanno un numero maggiore di nodi di output.
Le reti neurali profonde si avvalgono quindi di molti più livelli nascosti per proporre più piani di astrazione, come avviene per i modelli matematici di computazione alla base della teoria della complessità computazionale.
Appare chiaro come una più alta quantità di livelli nascosti renda poi la rete neurale profonda molto più efficace nei risultati. Al contrario, la sua scalabilità è strettamente connessa ai modelli matematici e alle risorse computazionali.
In realtà, proprio la scalabilità del Deep Learning lo differenzia dal Machine Learning. Questo perché i sistemi di Deep Learning migliorano le loro prestazioni con l’aumento dei dati, mentre i processi di Machine Learning, una volta arrivati ad un certo range di performance, non sono più scalabili.
Il rovescio della medaglia è che il calcolo computazionale necessario per il funzionamento del Deep Learning ha un notevole impatto economico.
Le CPU e GPU più avanzate capaci di sostenere il consumo di tali processi possono costare fino a migliaia di dollari. Dunque, per l’apprendimento profondo è richiesto un dispendio di risorse finanziarie non indifferente.
In che modo viene addestrato un sistema di Deep Learning
Se i tradizionali algoritmi di apprendimento automatico sono lineari, quelli di approfondimento profondo sono sovrapposti secondo una gerarchia di complessità e astrazione crescenti.
Per fare un esempio, si può pensare ad un bambino al quale viene insegnato cos’è un cane o un qualsiasi altro animale/oggetto. Il bambino ci metterà mesi ad imparare il concetto di cane e nel processo sarà aiutato dai genitori.
Invece un’applicazione basata su algoritmi di Deep Learning può mostrare e archiviare milioni di immagini, individuando con esattezza quali di queste contengono i dati.
Solitamente l’unica attenzione nei modelli di apprendimento profondo è l’etichettatura dei dati con dei meta tag all’interno delle immagini, senza spiegare al sistema come riconoscerle. Ritornando all’esempio del bambino, sarà la rete stessa, tramite i livelli nascosti, ad imparare che cosa distingue un cane e come riconoscerlo.
Si tratta di un meccanismo di apprendimento “trial and error”, ma l’output finale sarà affidabile solo in presenza di ingenti quantità di dati. Per questo in fase di addestramento del sistema di Deep Learning è fondamentale l’uso dei meta tag.
Inoltre, è bene dire i modelli di Deep Learning sono complessi da addestrare in quanto c’è un elevato numero di livelli ed è difficile capire quali regolazioni apportare in ogni momento della fase di training.
Ciò avviene perché durante le sessioni di training si impiegano algoritmi di retropropagazione dell’errore. Nella rete viene immesso un input relativo ad un task di cui conoscerà la soluzione corretta.
Il passaggio da un livello all’altro è però casuale e l’output sarà quasi sicuramente errato. Sapendo quale avrebbe dovuto essere la risposta esatta, la rete riesce a comprendere in cosa ha sbagliato. Allora si torna indietro nel percorso, inserendo pian piano parametri differenti che si avvicineranno all’esito giusto.
I campi d’applicazione del Deep Learning
I sistemi di apprendimento profondo negli ultimi anni hanno compiuto dei passi da gigante. Ciò è stato possibile grazie alla quantità infinita di dati a disposizione e alla sempre maggiore disponibilità di risorse (GPU e CPU).
Nell’ambito AI l’apprendimento automatico ha permesso ai computer di avvicinarsi alle prestazioni umane in moltissime aree e con il Deep Learning le macchine hanno fatto un passo ulteriore, risolvendo problemi sempre più complessi.
Oggi i principali usi dell’apprendimento profondo includono:
- Traduzione simultanea
- Aggiunta di audio a filmati silenziosi
- Generazione automatica di testo
- Catalogazione di oggetti all’interno di un’immagine
- Generazione automatica della grafia
- Gioco automatico
- Creazione di didascalie
Vediamo invece i settori economici nei quali il Deep Learning trovano largo impiego.
Computer vision
Nel campo della visione artificiale il Deep Learning ha già raggiunto dei livelli molto alti, coinvolgendo obiettivi quali la guida autonoma e i sistemi di controllo di qualità industriali.
In particolare, si possono citare il riconoscimento facciale oppure gli assistenti artificiali che nelle call di lavoro producono dati di fatturato o consegna. Soprattutto l’Autonomous Driving è un terreno molto fertile per l’addestramento dei modelli di apprendimento profondo.
Marketing
Il Deep Learning ha offerto agli uffici marketing e ai reparti vendita aziendali innovativi meccanismi per l’analisi del sentiment (opinioni) dei clienti sulle piattaforme social, così da intercettarne gusti ed esperienze d’acquisto.
Tali strumenti AI sono ormai di grande aiuto per selezionare nuovi potenziali consumatori, fidelizzare quelli già acquisiti e curare l’immagine del brand.
Retail
Con l’apprendimento profondo è possibile ricavare dati storici già presenti in azienda per quel che concerne guasti, disservizi e interventi di manutenzione su impianti e apparati produttivi.
Ciò fornisce un valido contributo per selezionare i fornitori ideali, scegliere cosa tenere in magazzino e affidarsi a sistemi di manutenzione predittiva.
Sanità
Un ambito nel quale l’AI e il Deep Learning possono dare grandi benefici è senza dubbio quello della sanità. L’obiettivo è soprattutto quello di cambiare l’approccio alla medicina, con strumenti creati su misura per il paziente.
Con l’ausilio dell’apprendimento profondo si punta all’analisi del genoma umano, all’invenzione di nuove molecole chimiche e a migliori scansioni delle immagini radiografiche. Potendo analizzare una quantità superiore di dati ad una velocità maggiore, sarà possibile prendere decisioni mediche più rapidamente, salvando molte più vite.