Le tecniche di deep learning, letteralmente "approfondimento profondo", sono sempre più diffuse ed utilizzate in ambiti differenti ed i più vari. Gli avanzamenti tecnologici, nel calcolo parallelo con le GPU (Graphics Processing Unit), hanno consentito di risolvere problemi che fino a poco tempo fa erano considerati, addirittura, impossibili in campi come la visione artificiale (computer vision), il processamento del linguaggio naturale e la robotica.
Cos'è il deep learning?
Il deep learning è una tecnica di machine learning (apprendimento automatico), che fornisce ai computer l'abilità di apprendere senza essere stati esplicitamente programmati: posto un insieme di dati in ingresso, tipicamente grezzi, ed un compito da svolgere,
A differenza delle tecniche di machine learning più tradizionali, dove è richiesta una fase intermedia di features extraction per imparare a discriminare le informazioni ad esempio delle immagini, la tecnica del deep learning può essere utilizzata per classificare più di 1000 immagini diverse utilizzando esclusivamente una rete neurale convoluzionale (convolutional neural network, CNN).
Come si evince dagli screenshots in Figura 1, l'algoritmo di deep learning è in grado di discriminare un laptop, da una tastiera, da un mouse, definendo la tipologia dell'oggetto che si sta inquadrando. Le immagini in questione mostrano oggetti di uso comune all'interno di un ufficio. Ad ogni screen, l'algoritmo calcola la probabilità che l'oggetto osservato appartenga ad una data categoria in elenco e sulla base di questa probabilità è in grado di indicare con un'etichetta (label) il nome dell'oggetto riconosciuto. In generale due sono gli approcci tipici utilizzati (Figura 2) per impiegare il deep learning.
Il primo, Train a Deep Neural Network from Scratch, prevede l'utilizzo di una grande quantità di immagini ognuna contraddistinta dalla presenza di un'etichetta che indica la tipologia di oggetto che si vuole apprendere. L'insieme di dati così costruito viene posto in ingresso ad una CNN che è in grado, una volta addestrata, di identificare la stessa tipologia di oggetti in video o immagini in input. Si tratta di una tecnica di machine learning, che funziona particolarmente bene se applicata a tipi di dato contraddistinti da una sorta di struttura, composizione, come le immagini, il testo ed il suono.
Il secondo, Fine-tune a pre-trained model, invece vede l'utilizzo di una rete pre-addestrata realizzando così quanto è più noto come transfer learning, un trasferimento di apprendimento: un fine tuning (piccoli variazioni) della rete che consente di adattarla a nuovi compiti oppure nuovi data set tipicamente di dimensioni ridotte rispetto a quelli impiegati nell'addestramento. L'approccio utilizza una rete neurale pre-addestrata limitando le uscite alla parte di features extraction. Nuovi data set posti in ingresso consentono di riaddestrare la rete neurale operando un cosiddetto fine tuning adattandola così a nuovi compiti. [...]
ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2417 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici che potrai leggere in formato PDF per un anno. ABBONATI ORA, è semplice e sicuro.
Grazie al crescente interesse dimostrato nei confronti del deep learning, sono oggi disponibili diversi framework con reti pre-addestrate per specifiche applicazioni.