• 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
  • 🏡 Home
  • 🚨 GDPR Compliant
  • ⚡️ Data Science
  • 📌 Machine Learning
  • 🔒 Privacy Preserving
AI, machine-learning

Convolutional Neural Network (CNN)

Convolutional Neural Network (CNN)

Le convolutional neural network (CNN), o rete neurali convoluzionali, nascono dagli studi condotti sulle cortecce prefrontali animali e sono impiegate nei processi di image recognition sin dal 1980.

L’obiettivo di questo post è chiaro: comprendere le convolutional neural network a livello funzionale e studiarne gli usi pratici e le possibili applicazioni future.

Convolutional Neural Network

L’idea dietro una rete neurale convoluzionale è applicare un filtro alle immagini prima che queste vengano processate dalla rete neurale profonda (Deep Neural Network): una rete neurale artificiale

Convolutions

Un convolution è un filtro che passa su un’immagine, la elabora ed estrae feature dalle caratteristiche comuni.

L’applicazione del filtro consente quindi di mettere in rilievo i dettagli delle immagini cosicché sia possibile trovarne il significato e identificare gli oggetti.

A livello pratico, un filtro altro non è che un insieme di moltiplicatori (a set of mutlipliers).

Esaminiamo un esempio.

Convolution on image
una matrice convoluzionale 3×3

Consideriamo un’immagine in bianco e nero di 28×28 pixel (una di quelle presenti nel MNIST) e prendiamo il pixel con valore 192.

Decidiamo quindi di applicare un filtro definito in precedenza (al come ci arriviamo) al contenuto di un’immagine.

Matematicamente non facciamo altro che moltiplicare il valore del pixel con quello del filtro: il 192 viene quindi moltiplicato per 4.5.

Anche ciascuno dei riquadri vicini è moltiplicato per i rispettivi valori del filtro.

Evidentemente, in questo modo otteniamo una nuova immagine.

Ecco un’illustrazione visiva del funzionamento:

Ci piace! Perché?

Osserviamo come differenti filtri siano in grado di evidenziare specifici pattern nell’immagine.

Detecting vertical lines filter
convolutional amplify vertical lines
Detecting horizontal lines
convolutional filter to amplify horizontal lines

Pooling

Una seconda classe di filtri è definita di pooling: i pixel sono ora raggruppati e filtrati in un sottoinsieme.

Esistono differenti varianti di pooling, una tra queste è quella di max pooling: l’immagine originale è raggruppata in set di 2×2 pixel, quindi viene considerato solo quello di valore più alto.

L’applicazione di questo filtro consente la riduzione delle dimensioni a un quarto delle originali, pur mantenendo le caratteristiche iniziali.

La domanda che sorge spontanea è: come scegliamo l’aspetto e il valore del filtro?

Ecco la magia delle reti neurali convoluzionali: i filtri sono parametri i cui valori vengono appresi nel processo di apprendimento automatico, nella fase di training.

Quando la nostra immagine entra nel livello convoluzionale (convolutional layer) un numero definito a priori di filtri inizializzati casualmente (randomly initializied) viene applicato producendo un risultato passato al secondo livello della rete.

Il processo si ripete finché la rete non individua quei valori dei filtri tali per cui il matching tra l’immagine in input e il valore predetto produca meno errori possibile: il processo è noto come feature extraction.

Con questo ultimo concetto siamo arrivati alla fine della nostra breve introduzione!

Cosa ci riserva il futuro? Scopriamolo assieme!

Un caldo abbraccio, Andrea.

Written by Andrea Provino - Febbraio 17, 2020
Next Post
Previous Post

Una pubblicità che non vedi se usi AdBlock

EXPAND YOUR KNOWLEDGE

  • rust-react-webassembly-privacy-preserving-machine-learning Logs

    Rust, WebAssembly, React e un MVP

    Dicembre 21, 2020
  • diffie-hellman-key-exchange-protocol-scambio-di-chiavi-diffie-hellman Data Science, Privacy Preserving

    Cos’è lo scambio di chiavi Diffie-Hellman (DH)? | Privacy Preserving

    Dicembre 15, 2020
  • principio-di-esattezza-data-science-machine-learning-gdpr-data-accuracy Data Science, GDPR Compliant

    GDPR: Principio di esattezza dei dati (Data Accuracy)

    Dicembre 12, 2020
  • tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines machine-learning

    TFX: come funziona Tensorflow Extended?

    Dicembre 9, 2020
  • tensorflow-extended-tfx-deploy-machine-learning-guide-machine-learning-pipelines machine-learning

    TensorFlow Extended (TFX) | Production Machine Learning Pipeline

    Dicembre 6, 2020
  • mean-shift-clustering-guida-italiano-spiegazione-semplice-algoritmo-di-clustering-esempio Data Science

    Mean-Shift Clustering

    Dicembre 3, 2020
  • data-minimization-principle-gdpr-principio-minimizzazione-dati-personali-gdpr-italia-consulenza-spiegazione-semplice Data Science, GDPR Compliant

    GDPR: Principio di minimizzazione dei dati (Data minimization)

    Dicembre 1, 2020
  • machine-learning-for-finance-trading-online-data-science-deep-learning-intelligenza-artificiale AI, machine-learning

    FinTech: Machine Learning for Finance (FinML) | Guide e Risorse di qualità

    Novembre 29, 2020
  • gdpr-principio-di-limitazione-della-finalita-machine-learning-data-science-guida-prupose-limitation-gdpr Data Science, GDPR Compliant

    GDPR: Principio di Limitazione della finalità | Purpose Limitation

    Novembre 26, 2020
  • machine-learning-engineer-lavoro-stipendio-responsabilità-come-diventare AI, Business, machine-learning

    Machine Learning Engineer

    Novembre 23, 2020

Quello che Google pensa ti possa piacere

Prodotti che i Cookie dicono potresti trovare interessanti

AI Blog - © 2019-2021 Andrea Provino