Struttura del corso

Parte 1 – Concetti di Apprendimento Profondo e DNN

Introduzione all'IA, Machine Learning & Deep Learning

  • Storia, concetti di base e applicazioni comuni dell'intelligenza artificiale lontano dalle fantasie associate a questo campo
  • Intelligenza Collettiva: aggregazione della conoscenza condivisa da molti agenti virtuali
  • Algoritmi Genetici: evoluzione di una popolazione di agenti virtuali attraverso la selezione
  • Apprendimento Macchina Usuale: definizione.
  • Tipi di compiti: apprendimento supervisionato, non supervisionato, per rinforzo
  • Tipi di azioni: classificazione, regressione, clustering, stima della densità, riduzione dimensionalità
  • Esempi di algoritmi di Machine Learning: regressione lineare, Naive Bayes, Random Tree
  • Machine Learning VS Deep Learning: problemi su cui il Machine Learning rimane oggi lo stato dell'arte (Random Forests & XGBoosts)

Concetti di Base di una Rete Neurale (Applicazione: perceptrone multistrato)

  • Ricapitolazione delle basi matematiche.
  • Definizione di una rete neurale: architettura classica, attivazione e
  • Pesatura delle attivazioni precedenti, profondità della rete
  • Definizione dell'apprendimento di una rete neurale: funzioni di costo, back-propagation, discesa del gradiente stocastica, massima verosimiglianza.
  • Modellazione di una rete neurale: modellazione dei dati di ingresso e uscita in base al tipo di problema (regressione, classificazione ...). Maledizione dimensionalità.
  • Differenza tra dati multifeature e segnale. Scelta di una funzione di costo in base ai dati.
  • Approssimazione di una funzione tramite una rete neurale: presentazione ed esempi
  • Approssimazione di una distribuzione tramite una rete neurale: presentazione ed esempi
  • Data Augmentation: come bilanciare un dataset
  • Generalizzazione dei risultati di una rete neurale.
  • Inizializzazione e regolarizzazione di una rete neurale: regolarizzazione L1 / L2, Normalizzazione Batch
  • Algoritmi di ottimizzazione e convergenza

Strumenti ML / DL Standard

Una semplice presentazione con vantaggi, svantaggi, posizione nell'ecosistema e utilizzo è prevista.

  • Strumenti di gestione dei dati: Apache Spark, Apache Hadoop Tools
  • Apprendimento Automatico: Numpy, Scipy, Sci-kit
  • Framework a livello elevato per l'apprendimento profondo: PyTorch, Keras, Lasagne
  • Framework a basso livello per l'apprendimento profondo: Theano, Torch, Caffe, Tensorflow

Reti Neurali Convoluzionali (CNN).

  • Presentazione delle CNN: principi fondamentali e applicazioni
  • Operazione di base di una CNN: livello convoluzionale, utilizzo di un kernel,
  • Padding & stride, generazione della mappa delle caratteristiche, livelli di pooling. Estensioni 1D, 2D e 3D.
  • Presentazione delle diverse architetture CNN che hanno portato lo stato dell'arte nella classificazione
  • Immagini: LeNet, VGG Networks, Network in Network, Inception, Resnet. Presentazione delle innovazioni apportate da ogni architettura e delle loro applicazioni più ampie (convoluzione 1x1 o connessioni residue)
  • Utilizzo di un modello di attenzione.
  • Applicazione a un caso comune di classificazione (testo o immagine)
  • CNN per la generazione: super-risoluzione, segmentazione pixel-to-pixel. Presentazione delle
  • principali strategie per aumentare le mappe delle caratteristiche per la generazione di immagini.

Reti Neurali Ricorrenti (RNN).

  • Presentazione delle RNN: principi fondamentali e applicazioni.
  • Operazione di base della RNN: attivazione nascosta, back propagation through time, versione srotolata.
  • Evoluzioni verso le Gated Recurrent Units (GRUs) e LSTM (Long Short Term Memory).
  • Presentazione degli stati diversi e delle evoluzioni apportate da queste architetture
  • Problemi di convergenza e gradienti che tendono a zero
  • Architetture classiche: previsione di una serie temporale, classificazione ...
  • Architettura Encoder-Decoder RNN. Utilizzo di un modello di attenzione.
  • Applicazioni NLP: codifica parola / carattere, traduzione.
  • Applicazioni Video: previsione dell'immagine successiva di una sequenza video.

Modelli Generativi: Variational AutoEncoder (VAE) e Generative Adversarial Networks (GAN).

  • Presentazione dei modelli generativi, legame con le CNN
  • Auto-encoder: riduzione dimensionalità e generazione limitata
  • Variational Auto-encoder: modello generativo e approssimazione della distribuzione di un dato. Definizione e utilizzo dello spazio latente. Trucco di rimpiazzamento. Applicazioni e limiti osservati
  • Generative Adversarial Networks: Fondamenti.
  • Architettura a doppia rete (Generator e discriminator) con apprendimento alternato, funzioni di costo disponibili.
  • Convergenza di un GAN e difficoltà incontrate.
  • Miglioramento della convergenza: Wasserstein GAN, Began. Earth Moving Distance.
  • Applicazioni per la generazione di immagini o fotografie, generazione di testo, super-risoluzione.

Apprendimento Profondo Rinforzato.

  • Presentazione dell'apprendimento rinforzato: controllo di un agente in un ambiente definito
  • Da uno stato e azioni possibili
  • Utilizzo di una rete neurale per approssimare la funzione di stato
  • Deep Q Learning: replay esperienza, applicazione al controllo di un videogioco.
  • Ottimizzazione della politica di apprendimento. On-policy && off-policy. Architettura Actor critic. A3C.
  • Applicazioni: controllo di un singolo videogioco o sistema digitale.

Parte 2 – Theano per l'Apprendimento Profondo

Nozioni di Base su Theano

  • Introduzione
  • Installazione e Configurazione

TheanoFunctions

  • inputs, outputs, updates, givens

Addestramento e Ottimizzazione di una Rete Neurale utilizzando Theano

  • Modellazione della Rete Neurale
  • Regressione Logistica
  • Livelli Nascosti
  • Addestramento di una rete
  • Calcolo e Classificazione
  • Ottimizzazione
  • Log Loss

Test del Modello

Parte 3 – DNN utilizzando Tensorflow

Nozioni di Base su TensorFlow

  • Creazione, inizializzazione, salvataggio e ripristino delle variabili TensorFlow
  • Alimentazione, lettura e pre-caricamento dei dati TensorFlow
  • Come utilizzare l'infrastruttura di TensorFlow per addestrare modelli su larga scala
  • Visualizzazione ed Evaluazione dei modelli con TensorBoard

Mecanica di TensorFlow

  • Preparazione dei Dati
  • Download
  • Inputs e Placeholders
  • Costruzione dei Grafi
    • Inferenza
    • Perdita
    • Addestramento
  • Addestramento del Modello
    • Il Grafo
    • La Sessione
    • Ciclo di Addestramento
  • Valutazione del Modello
    • Costruzione del Grafo di Valutazione
    • Output della Valutazione

Il Perceptrone

  • Funzioni di Attivazione
  • Algoritmo di apprendimento del perceptrone
  • Classificazione binaria con il perceptrone
  • Classificazione di documenti con il perceptrone
  • Limitazioni del perceptrone

Dal Perceptrone alle Macchine a Vettori di Supporto

  • Kernel e trucco del kernel
  • Classificazione a margine massimo e vettori di supporto

Reti Neurali Artificiali

  • Confini decisionali non lineari
  • Reti neurali artificiali feedforward e feedback
  • Perceptroni multistrato
  • Minimizzazione della funzione di costo
  • Propagazione in avanti
  • Retropropagazione
  • Miglioramento dell'apprendimento delle reti neurali

Reti Neurali Convoluzionali

  • Obiettivi
  • Architettura del Modello
  • Principi
  • Organizzazione del Codice
  • Avvio e Addestramento del Modello
  • Valutazione di un Modello

Introduzioni Base da Fornire ai Moduli Sottostanti (Breve Introduzione in base alla disponibilità di tempo):

Tensorflow - Utilizzo Avanzato

  • Threading e Code
  • TensorFlow Distribuito
  • Scrittura di Documentazione e Condivisione del Modello
  • Personalizzazione dei Lettori di Dati
  • Manipolazione dei File del Modello TensorFlow

Servizio TensorFlow

  • Introduzione
  • Tutorial di Base per il Servizio
  • Tutorial Avanzato per il Servizio
  • Tutorial sul Servizio del Modello Inception

Requisiti

Conoscenze in fisica, matematica e programmazione. Esperienza nell'elaborazione di immagini.

I partecipanti dovrebbero avere una conoscenza preventiva dei concetti di apprendimento automatico e aver lavorato con la programmazione Python e le sue librerie.

 35 ore

Numero di Partecipanti


Prezzo per Partecipante

Recensioni (5)

Corsi in Arrivo

Categorie relative