Blog.

U-Net FCN Networks | Deep Learning Engineer Italia


Autore
Andrea Provino
Data
Tempo di lettura
3 minuti
Categoria
AI

u-net-convolutional-neural-network-cnn-deep-learning-italia-machine-learning-engineer-guida-italiano-machine-learning-engineers

Cos’è U-Net? U-Net è una Fully Convolutional Network (FCN) sviluppata per applicazioni in campo medico: l’individuazione di tumori nei polmoni e nel cervello attraverso l’Image Segmentation.

Com’è fatta una U’Net?

In sintesi, l’architettura di una U-Net è costiuita da:

  1. Un encoder che riduce (down-sample) l’immagine in ingresso in una feature map, attraverso pooling layers, estraendone gli elementi chiave
  2. Un decoder che amplifica (up sample) la feature map in una immagine, usando i livelli di deconvoluzione, impiegando cioè i pooling layers appresi per permettere la localizzazione degli elementi.

Sai perché vengono chiamate U-Net? L’immagine sottostante sembra essere sufficientemente esplicativa, sebbene non chiarisca il motivo di una simile struttura a U.

Seguimi: sto per svelarti il perché della loro struttura a U.

Continua a leggere…

In esempio, un’immagine con risoluzione minima di 32×32 pixels. Ogni blue box corrisponde a una feature map multicanale. Il numero di canali è specificato al di sopra dei box. Le dimensioni x-y sono indicate nell’angolo in basso a sinistra di ogni box. Quelli bianchi sono invece le feature map copiate. Le frecce indicano infine le differenti operazioni eseguite.

UNet for Image Segmentation

La struttura delle U-Net, che vedremo tra poco, le rende particolarmente adatte a risolvere problemi di segmentazione delle immagini.

Senza ulteriori indugi, esploriamone la composizione!

Struttura U-Net FCN Networks

La caratteristica distintiva di una rete neurale U-Net è costituita dalle così dette connessioni scorciatoia (shortcut connection).

Per capire la loro utilità e le esigenze della loro presenza, dobbiamo fare un passo indietro.

Nel nostro post sulle Fully Convolutional Networks abbiamo appreso che nella riduzione delle dimensioni operata dall’encoder la perdita di informazione è significativa.

Il decoder fatica quindi a effettuare l’up-sampling con un conseguente risultato mediocre.

Le FCN gestiscono allora la perdita di informazioni ricostruendo l’immagine e recuperando parte delle informazioni dai filtri di pooling prima della sintesi dalla feature map.

Le reti U-Net propongono invece una soluzione differente.

La struttura base rimane invariata, con due percorsi simmetrici che chiamiamo:

  1. Encoder, o percorso di contrazione (contraction path) che cattura il contesto dell’immagine. È costituito da livelli di convoluzione e di max pooling al pari di una Convolutional Neural Network.
  2. Decoder, o percorso di espansione (expanding path) che localizza con precisione gli elementi dell’immagine attraverso le convoluzioni trasposte (transposed convolutions).

Ogni up-sampling layer del decoder riceve i dati dal corrispondete down sampling layer dell’encoder.

In questo modo siamo in grado di catturare più informazioni contenendo la complessità computazionale.

Chiaramente i livelli iniziali dell’encoder contengono più informazioni, ergo per cui garantiscono un significativo boost nel processo di up-sampling permettendo il recupero di dettagli e migliorando significativamente il risultato.

Ecco che introduciamo le shortcut connection.

Più nello specifico la prima shortcut connections crea un ponte tra l’encoder prima del’iniziale filtro di pooling e il decoder dopo l’ultima operazione di deconvoluzione.

A questa se ne aggiungo altre, con un funzionamento analogo.

In questa pubblicazione accademica è poi presentata una nuova loss function per migliorare ulteriormente le prestazioni.

Per il momento è tutto.

Per aspera, ad astra.

Un caldo abbraccio, Andrea

Taggedcomputer visiondeep learningteoria


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum