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

AlexNet CNN Networks – Deep Learning Engineer Italia

AlexNet CNN Networks – Deep Learning Engineer Italia

AlexNet è un’architettura di rete neurale convoluzionale ampiamente impiegata nel riconoscimento delle immagini: una delle 4 CNN Networks che esploreremo.

Un Deep Learning Engineer mastica backpropagation e cost function a colazione, progettando CNN Networks a colpo d’occhio.

Quanto è bella questa frase.

Ora: fermi tutti!

Hai letto il post sul LeNet-5?

Ottimo Ottimo.

Una rapida ripassata anche alle CNN e iniziamo a capire come sia davvero strutturata questa rete neurale convoluzionale!

AlexNet: 2012 ImageNet ILSVRC winner

L’AlexNet è un’architettura di rete neurale convoluzionale che nel 2012 vinse il ILSVRC (Imagenet Large Scale Visual Recognition Challenge), surclassando quelle esistenti di un discreto margine.

Giusto per avere qualche riferimento: l’errore su cinque previsione fu del 17%, mentre il secondo classificato fece segnare un valore del 26%.

Le somiglianze con la LeNet-5 sono evidenti benché questa architettura sia più larga e profonda, e preveda in successione diversi layer convoluzionali anziché alternarli a livelli pooling.

AlexNet Network Architecture

Caro il mio marinaio, il vento in burrasca e il moto ondoso faticano la navigazione: abbiamo bisogno di più spinta dalle vele.

Timoniere, tutto a dritta.

Insensati riferimenti alla vita da lupo di mare a parte, esploriamo l’architettura di questa CNN Network.

La LeNet-5 gestisce immagini a singolo canale in scala grigi di dimensioni contenute: 37×37.

L’AlexNet porta le dimensioni iniziali a 227x227x3: tre canali, permettendoci di gestire immagini a colori (schema RGB).

Per studiare e comprenderne meglio la struttura, ti consiglio di affiancare l’immagine di cui sopra al testo.

Per un double check dei calcoli, queste sono le formule:


    \[ \text { output width }=\frac{W-F_{w}+2 P}{S_{w}}+1\]


    \[ \text { output height }=\frac{H-F_{h}+2 P}{S_{h}}+1\]

Una breve legenda dei parametri meno intuitivi:
Fh – Filter Height
Sh – Stride Height
P – Padding

Bene.

Procediamo.

Prima convoluzione

Iniziamo applicando 96 filtri convoluzionali (che tecnicamente chiamiamo kernel, quindi 96 kernel) di dimensioni 11x11x3 con uno stride (lo spostamento della finestra di lettura) di 4 (pixel) e padding 0.

L’output derivante (feature maps) ha un volume di 55x55x96.

A questo sovrapponiamo un layer di max pooling avente dimensioni di 3×3 con stride 2 per ridurre le dimensioni a 27x27x96 e infine applichiamo Local Response Normalization (LRN) che prevede l’ausilio dell’ activation function Rectified Linear Unit (ReLU) per incoraggiare un fenomeno d‘inibizione laterale (lateral inhibition).

L‘inibizione laterale è un concetto tratto dalla Neurobiologia che si riferisce alla capacità di un neurone di ridurre l’attività di quelli vicini.

In una Deep Neural Network (DNN) l’impiego della local inhibition consente di migliorare il contrasto facendo sì che il valore massimo dei pixel locali possa eccitare i neuroni successivi.

Servirebbe un articolo a parte per comprendere appieno la Local Response Normalization. Per il momento limitiamoci a questo.

Ora abbiamo sempre un volume di 27x27x96 e siamo pronti alla seconda convoluzione.

Seconda convoluzione

Questa volta applichiamo 256 kernel di dimensioni 5x5x48 con stride 1 e padding 2.

Il padding, ora presente, è un bordo di pixel nulli (0) aggiuntivo usato per controllare la dimensione dell’output.

Il risultato? Un volume di 27x27x96

A questo sovrapponiamo un Max Pooling 3×3 con stride 2, per ottenere un volume di 13x13x256 e nuovamente il LRN che applica una trasformazione ma mantiene inalterate le dimensioni.

Possiamo iniziare a toccare con mano l’unicità dell’AlexNet rispetto ad altre architetture: iniziano i convolutional layer in successione

Terza convoluzione

384 kernel con dimensioni 3x3x256, stride 1 e padding 1 producono un output di 13x13x384.

Quarta convoluzione

384 kernel con dimensioni 3x3x192, stride 1 e padding 1 producono un output di 13x13x384.

Quinta Convoluzione

256 kernel con dimensioni 3x3x192, stride 1 e padding 1 producono un output di 13x13x256.

A questo sovrapponiamo un Max Pooling 3×3 con stride 2 per ottenere 6x6x256 feature maps.

AlexNet Deep Neural Network

Infine la nostra rete neurale profonda composta da 3 Fully Connected (Dense) Layer:

  • 6th: Fully Connected (Dense) Layer di 4096 neurons
  • 7th: Fully Connected (Dense) Layer di 4096 neurons
  • 8th: Fully Connected (Dense) Layer di 1000 neurons (perché le classi da prevdere erano 1000)

Per calcolare la perdita, SoftMax.

Numero di parametri da imparare?

60mln

Esiste una variante dell’AelxNet chiamata ZF Net sviluppata da  Matthew Zeiler e Rob Fergus. Vinse ILSVRC l’anno successivo cambiando sostanzialmente qualche hyperparameter tra cui lo stride e le dimensioni del kernel (kernel size).

Per il momento è tutto!

Un caldo abbraccio, Andrea.

Written by Andrea Provino - Febbraio 29, 2020
Tags | deep learning

You Might Also Like

NVIDIA DRIVE ™ Labs | Come funziona un Autonomous Vehicle software

Ottobre 22, 2019
gan-generative-adversarial-networks-italia-rete-generativa-avversaria-rete-antagonista-generativa

GAN: Cosa sono le Generative Adversarial Nets

Aprile 20, 2020
hugging-face-deep-learning-free-github-model-natural-language-processing-italia-BERT-guida-modello-deploy-to-production

Hugging Face 🤗: Free GitHub Natural Language Processing Models

Marzo 28, 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