Struttura del corso
Parte 1 – Deep Learning e concetti DNN
Introduzione AI, Machine Learning e Deep Learning
-
Storia, concetti di base e applicazioni usuali dell'intelligenza artificiale lontano Delle fantasie portate da questo dominio
Intelligenza Collettiva: aggregare la conoscenza condivisa da molti agenti virtuali
Algoritmi genetici: per far evolvere una popolazione di agenti virtuali per selezione
Abituale Learning Machine: definizione.
Tipi di attività: apprendimento supervisionato, apprendimento non supervisionato, apprendimento per rinforzo
Tipi di azioni: classificazione, regressione, clustering, stima della densità, riduzione della 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: percettrone multistrato)
-
Richiamo alle basi matematiche.
Definizione di una rete di neuroni: architettura classica, attivazione e
Ponderazione delle attivazioni precedenti, profondità di una rete
Definizione dell'apprendimento di una rete di neuroni: funzioni di costo, retropropagazione, discesa stocastica del gradiente, massima verosimiglianza.
Modellazione di una rete neurale: modellazione dei dati di input e output in base al tipo di problema (regressione, classificazione...). Maledizione della dimensionalità.
Distinzione tra dati multi-feature e segnale. Scelta di una funzione di costo in base ai dati.
Approssimazione di una funzione da parte di una rete di neuroni: presentazione ed esempi
Approssimazione di una distribuzione da parte di una rete di neuroni: presentazione ed esempi
Data Augmentation: come bilanciare un dataset
Generalizzazione dei risultati di una rete di neuroni.
Inizializzazione e regolarizzazione di una rete neurale: regolarizzazione L1/L2, Batch Normalization
Algoritmi di ottimizzazione e convergenza
Utensili ML / DL standard
È prevista una semplice presentazione con vantaggi, svantaggi, posizione nell'ecosistema e utilizzo.
-
Strumenti di gestione dei dati: Apache Spark, Apache Hadoop Tools
Apprendimento automatico: Numpy, Scipy, Sci-kit
Quadri di alto livello DL: PyTorch, Keras, Lasagne
Strutture DL di basso livello: Theano, Torch, Caffe, Tensorflow
Convoluzionale Neural Networks (CNN).
-
Presentazione delle CNN: principi fondamentali e applicazioni
Funzionamento di base di una CNN: livello convoluzionale, uso di un kernel,
Padding & stride, generazione di feature map, pooling layer. 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 ciascuna architettura e delle loro applicazioni più globali (Convoluzione 1x1 o connessioni residue)
Uso di un modello di attenzione.
Applicazione ad un caso di classificazione comune (testo o immagine)
CNN per la generazione: super-risoluzione, segmentazione pixel-to-pixel. Presentazione di
Principali strategie per aumentare le feature map per la generazione di immagini.
Ricorrente Neural Networks (RNN).
-
Presentazione delle RNN: principi fondamentali e applicazioni.
Funzionamento di base della RNN: attivazione nascosta, retropropagazione nel tempo, versione Unfolded.
Evoluzioni verso le Gated Recurrent Units (GRU) e LSTM (Long Short Term Memory).
Presentazione dei diversi stati e delle evoluzioni portate da queste architetture
Problemi di convergenza e gradiente di vanizzazione
Architetture classiche: predizione di una serie temporale, classificazione ...
Architettura di tipo decodificatore RNN. Uso di un modello di attenzione.
Applicazioni della PNL: codifica di parole/caratteri, traduzione.
Applicazioni video: previsione della successiva immagine generata di una sequenza video.
Modelli generazionali: Variational AutoEncoder (VAE) e Generative Adversarial Networks (GAN).
-
Presentazione dei modelli generazionali, collegamento con le CNN
Auto-encoder: riduzione della dimensionalità e generazione limitata
Auto-encoder variazionale: modello generazionale e approssimazione della distribuzione di un dato. Definizione e uso dello spazio latente. Trucco di riparametrizzazione. Applicazioni e limiti osservati
Reti antagoniste generative: fondamenti.
Doppia architettura di rete (generatore e discriminatore) con apprendimento alternativo, funzioni di costo disponibili.
Convergenza di un GAN e difficoltà incontrate.
Convergenza migliorata: Wasserstein GAN, Inizio. Distanza di movimento della terra.
Applicazioni per la generazione di immagini o fotografie, generazione di testi, super-risoluzione.
Profondo Reinforcement Learning.
-
Presentazione del reinforcement learning: controllo di un agente in un ambiente definito
Da uno stato e dalle possibili azioni
Uso di una rete neurale per approssimare la funzione di stato
Deep Q Learning: replay dell'esperienza e applicazione al controllo di un videogioco.
Ottimizzazione della politica di apprendimento. Politica in linea e fuori politica. Attore critico architettura. A3C.
Applicazioni: controllo di un singolo videogioco o di un sistema digitale.
Parte 2 – Theano per Deep Learning
Nozioni di base su Theano
-
Introduzione
Installazione e configurazione
Funzioni Theano
-
ingressi, uscite, aggiornamenti, dati
Addestramento e ottimizzazione di una rete neurale con Theano
-
Modellazione di reti neurali
Regressione logistica
Livelli nascosti
Formazione di una rete
Calcolo e classificazione
Ottimizzazione
Perdita di log
Test del modello
Parte 3 – DNN con Tensorflow
TensorFlow Nozioni di base
-
Creazione, inizializzazione, salvataggio e ripristino di TensorFlow variabili
Alimentazione, lettura e precaricamento TensorFlow dei dati
Come usare l'infrastruttura TensorFlow per addestrare i modelli su larga scala
Visualizzazione e valutazione dei modelli con TensorBoard
TensorFlow Meccanica
-
Preparare i dati
Scaricare
Ingressi e segnaposto
Costruisci il GraphS
Inferenza
Perdita
Formazione
Dal percettrone alle macchine vettoriali di supporto
-
I kernel e il trucco del kernel
Classificazione dei margini massimi e vettori di supporto
Artificiale Neural Networks
-
Limiti decisionali non lineari
Reti neurali artificiali feedforward e feedback
Percettroni multistrato
Minimizzazione della funzione di costo
Propagazione diretta
Propagazione a ritroso
Migliorare il modo in cui le reti neurali apprendono
Convoluzionale Neural Networks
-
Goals
Architettura del modello
Principi
Organizzazione del codice
Lancio e addestramento del modello
Valutazione di un modello
-
Introduzioni di base da fornire ai seguenti moduli (Breve introduzione da fornire in base alla disponibilità di tempo):
Tensorflow - Utilizzo avanzato
Threading e code Distribuito TensorFlow Scrittura della documentazione e condivisione del modello Personalizzazione dei lettori di dati Manipolazione di TensorFlow file di modello
TensorFlow Servire
-
Introduzione
Tutorial di base sul servizio
Esercitazione sulla pubblicazione avanzata
Esercitazione sul modello di pubblicazione Inception
Requisiti
Background in fisica, matematica e programmazione. Coinvolgimento in attività di elaborazione delle immagini.
I delegati devono avere una conoscenza preliminare dei concetti di apprendimento automatico e devono aver lavorato su Python programmazione e librerie.