Fondamenti di deep learning per la visione artificiale

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).

Screenshots tratti dal video che illustra il funzionamento dell'algoritmo di deep learning nel riconoscimento di oggetti tipici di un ufficio.

Figura 1: Screenshots tratti dal video che illustra il funzionamento dell'algoritmo di deep learning nel riconoscimento di oggi tipici di un ufficio.

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.

Due approcci per l'utilizzo del deep learning.

Figura 2: Due approcci per l'utilizzo del deep learing.

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 PRO. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici MAKER e PRO inoltre potrai fare il download (PDF) dell'EOS-Book e di FIRMWARE del mese. ABBONATI ORA, è semplice e sicuro.

Abbonati alle riviste di elettronica

Una risposta

  1. Stefano Lovati Stefano Lovati 22 marzo 2019

Scrivi un commento