Struttura del corso
Il corso è suddiviso in tre giorni separati, il terzo dei quali facoltativo.
Giorno 1 - Machine Learning e Deep Learning: Concetti teorici
1. Introduzione IA, Machine Learning e Deep Learning
- Storia, concetti fondamentali e applicazioni usuali dell'intelligenza artificiale lontani dalle fantasie portate da questo campo
- Intelligenza collettiva: aggregazione di conoscenze condivise da molti agenti virtuali
- Algoritmi genetici: evoluzione di una popolazione di agenti virtuali per selezione
- Machine Learning Usuale: definizione.
- Tipi di compiti: apprendimento supervisionato, apprendimento non supervisionato, apprendimento per rinforzo
- Tipi di azioni: classificazione, regressione, clustering, stima della densità, riduzione della dimensionalità
- Esempi di algoritmi 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)
2. Concetti fondamentali di una rete neurale (Applicazione: percettrone multistrato)
- Richiami alle basi della matematica.
- Definizione di rete neurale: architettura classica, funzioni di attivazione e ponderazione di attivazioni precedenti, profondità di una rete
- Definizione di addestramento di reti neurali: 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, ecc.). Maledizione della dimensionalità. Distinzione tra dati multi-feature e segnale. Scelta di una funzione di costo in base ai dati.
- Approssimazione di una funzione mediante una rete neurale: presentazione ed esempi
- Approssimazione di una distribuzione da parte di una rete neurale: presentazione ed esempi
- Data Augmentation: come bilanciare un dataset
- Generalizzazione dei risultati di una rete neurale.
- Inizializzazioni e regolarizzazioni di una rete neurale: regolarizzazione L1/L2, normalizzazione batch, ecc.
- Ottimizzazioni e algoritmi di convergenza.
3. Soliti strumenti ML/DL
È prevista una semplice presentazione con vantaggi, svantaggi, posizione nell'ecosistema e utilizzo.
- Strumenti di gestione dei dati: Apache Spark, Apache Hadoop
- Strumenti comuni Machine Learning: Numpy, Scipy, Sci-kit
- Framework DL di alto livello: PyTorch, Keras, Lasagna
- Framework DL di basso livello: Theano, Torch, Caffe, Tensorflow
Giorno 2 - Reti convoluzionali e ricorrenti
4. Convoluzionale Neural Networks (CNN).
- Presentazione delle CNN: principi fondamentali e applicazioni
- Funzionamento fondamentale di una CNN: livello convoluzionale, uso di un kernel, padding & stride, generazione di mappe di funzionalità, livelli di pooling. Estensioni 1D, 2D e 3D.
- Presentazione delle diverse architetture CNN che hanno portato lo stato dell'arte nella classificazione delle 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)
- Utilizzo di un modello di attenzione.
- Applicazione a uno scenario di classificazione comune (testo o immagine)
- CNN per la generazione: super-risoluzione, segmentazione pixel-to-pixel. Una panoramica delle principali strategie per aumentare le mappe delle caratteristiche per la generazione di immagini.
5. Ricorrente Neural Networks (RNN).
- Presentazione delle RNN: principi fondamentali e applicazioni.
- Come funziona la RNN: attivazione nascosta, retropropagazione nel tempo, versione spiegata.
- Evoluzione verso GRU (Gated Recurrent Units) e LSTM (Long Short Term Memory). Presentazione dei diversi stati e delle evoluzioni portate da queste architetture
- Problemi di convergenza e gradient vanising
- Tipi di architetture classiche: previsione di una serie temporale, classificazione, ecc.
- Architettura RNN Encoder Decoder. Uso di un modello di attenzione.
- Applicazioni di PNL: codifica di parole/caratteri, traduzione.
- App video: prevedi il prossimo fotogramma generato di una sequenza video.
Giorno 3 - Modelli generazionali e Reinforcement Learning
6. Modelli generazionali: Variational AutoEncoder (VAE) e Generative Adversarial Networks (GAN).
- Presentazione dei modelli generazionali, collegamento con le CNN viste nel giorno 2
- 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 limitazioni osservate
- Reti generative antagoniste: fondamenti. Architettura a due reticoli (generatore e discriminatore) con apprendimento alternato, funzioni di costo disponibili.
- Convergenza di un GAN e difficoltà incontrate.
- Convergenza migliorata: Wasserstein GAN, BeGAN. Distanza di movimento della terra.
- Applicazioni per la generazione di immagini o foto, la generazione di testo,
risoluzione.
7. Profondo Reinforcement Learning.
- Panoramica dell'apprendimento per rinforzo: controllo di un agente in un ambiente definito dallo stato e possibili azioni
- Utilizzo di una rete neurale per approssimare la funzione di stato
- Deep Q Learning: replay dell'esperienza, applicazione al controllo di un videogioco.
- Ottimizzazioni della politica di apprendimento. Politica in linea e fuori politica. Attore critico architettura. A3C.
- Applicazioni: controllo di un semplice videogioco o di un sistema digitale.
Requisiti
Level ingénieur