MACHINE LEARNING

Ingegneria Informatica MACHINE LEARNING

0622700066
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
EQF7
COMPUTER ENGINEERING
2022/2023



OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2022
SPRING SEMESTER
CFUHOURSACTIVITY
324LESSONS
324EXERCISES
324LAB


Objectives
L’insegnamento fornisce le conoscenze teoriche, metodologiche e tecnologiche per l’apprendimento automatico e per l’analisi di grandi quantità di dati, includendo tecniche tradizionali e paradigmi innovativi come il Deep Learning.

Conoscenze e capacità di comprensione
Principali paradigmi di apprendimento, supervisionato e non supervisionato, con particolare riferimento al paradigma neurale; modelli ed architetture per il Deep learning; framework e tecnologie per l’apprendimento automatico su grandi quantità di dati.

Conoscenza e capacità di comprensione applicate
Progettare e realizzare soluzioni che usano l’apprendimento automatico su grandi quantità di dati, integrando nella maniera più efficace tecnologie e strumenti esistenti e configurandone in maniera ottimale i parametri di funzionamento.
Prerequisites
L'INSEGNAMENTO RICHIEDE LA CONOSCENZA DI BASE DEL LINGUAGGIO PYTHON.
Contents
Unità didattica 1: Concetti fondamentali
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 6/0/4)
- 1 (2 ORE Lezione): Definizione di machine learning. Cenni storici. Tipologie di apprendimento: apprendimento supervisionato, apprendimento non supervisionato, apprendimento semi-supervisionato, reinforcement learning.
- 2 (2 ORE Lezione): Dati di addestramento. Tipologie di dato: dati numerici, dati categorici, dati strutturati. L’apprendimento come problema di ottimizzazione. Parametri e iperparametri. Il problema dell’overfitting. Errore di bias ed errore di varianza. Il no-free-lunch theorem.
- 3 (2 ORE Laboratorio): L’ambiente Google Colab. La libreria Numpy.
- 4 (2 ORE Lezione): Valutazione delle prestazioni. Test set. Tuning degli iperparametri. Validation set. K-Fold cross validation. Data augmentation. Regolarizzazione. Curse of dimensionality. Metriche per la valutazione delle prestazioni. Accuratezza. Precision. Recall. F-Score. Receiver Operating Curve.
- 5 (2 ORE Laboratorio): Esercitazione su un semplice problema di classificazione.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Principali paradigmi di apprendimento, supervisionato e non supervisionato.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Progettare e realizzare semplici soluzioni di apprendimento automatico.

Unità didattica 2: Introduzione alle reti neurali artificiali. Le reti MLP. Le reti LVQ e SOM.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 10/0/8)
- 6 (2 ORE Lezione): Cenni ai neuroni biologici. Reti neurali artificiali. Il neurone di McCulloch e Pitts. Il Percettrone di Rosenblatt. Combinazione di più neuroni. Architetture feed-forward, con connessioni laterali e ricorrenti. Reti fully-connected e a connessioni sparse. Multi-Layer Perceptron.
- 7 (2 ORE Lezione): Il teorema di approssimazione universale. Addestramento di una rete MLP. Il metodo del gradiente discendente. L’algoritmo di Back Propagation.
- 8 (2 ORE Lezione): L’algoritmo Stochastic Gradient Descent. Early Stopping. Momentum. Adaptive Learning Rate. Regolarizzazione. Le funzioni di attivazione sigmoide e tangente iperbolica. Uso di MLP come classificatori binari. La binary cross-entropy loss. Uso di MLP come classificatori mutilasse. La categorical cross-entropy loss.
- 9 (2 ORE Laboratorio): Il framework keras.
- 10 (2 ORE Laboratorio): Esercitazione su MLP come classificatori.
- 11 (2 ORE Laboratorio): Esercitazione su MLP per la regressione.
- 12 (2 ORE Lezione): Reti neurali competitive. Reti Learning Vector Quantization. Apprendimento supervisionato e non supervisionato di LVQ.
- 13 (2 ORE Lezione): Il problema del manifold learning. Le reti Self Organizing Map. Apprendimento di SOM.
- 14 (2 ORE Laboratorio): Esercitazione su LVQ e SOM.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Il paradigma di apprendimento neurale. Architettura e funzionamento delle reti MLP, LVQ e SOM.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Progettare soluzioni di apprendimento automatico basate sul paradigma neurale. Utilizzare il framework keras per la realizzazione reti neurali, e scegliere in maniera appropriata i parametri di tali reti.

Unità didattica 3: Deep Learning.
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 10/2/8)
- 15 (2 ORE Lezione): Innovazioni nelle reti neurali di terza generazione: il problema del vanishing gradient e la funzione di attivazione ReLU. Connessioni sparse. Condivisione dei pesi. Architetture profonde. Vantaggi delle reti profonde. Representation learning. Transfer Learning.
- 16 (2 ORE Lezione): Reti convoluzionali. Funzionamento e struttura di un layer convoluzionale. Stride e padding. Layer di pooling. Layer di dropout. Layer di output di una rete convoluzionale.
- 17 (2 ORE Laboratorio): Esercitazione su CNN.
- 18 (2 ORE Laboratorio): Esercitazione su CNN - parte 2.
- 19 (2 ORE Lezione): Aspetti avanzati del framework Keras. Il computational graph. Modelli non sequenziali. Condivisione dei pesi.
- 20 (2 ORE Lezione): Personalizzazione delle funzioni di loss. Uso di generatori. Tecniche di data augmentation per immagini.
- 21 (2 ORE Laboratorio): Esercitazione su fine tuning e data augmentation.
- 22 (2 ORE Lezione): Strategie di apprendimento per reti profonde. Learning degradation. Skip connections e residual learning. Batch normalization. Greedy supervised pre-training. Auxiliary heads.
- 23 (2 ORE Laboratorio): Esercitazione su skip connections e residual learning.
- 24 (2 ORE Laboratorio): Esercitazione su residual learning con fine tuning.
- 25 (2 ORE Esercitazione): Presentazione Project Work

CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Modelli ed architetture per il Deep learning, con particolare riferimento alle reti convoluzionali. Tecniche per rendere più efficace l’addestramento di reti profonde.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Progettare soluzioni di apprendimento automatico basate su deep learning, scegliendo le strategie più appropriate per il loro addestramento. Utilizzare il framework keras per la realizzazione reti neurali profonde, anche mediante il fine tuning di reti già esistenti.

Unità didattica 4: Architetture avanzate
(ORE LEZIONE/ESERCITAZIONE/LABORATORIO 10/2/10)
- 26 (2 ORE Lezione): Transposed Convolution. MobileNets. Autoencoders. Variational Autoencoders.
- 27 (2 ORE Laboratorio): Esercitazione su autoencoders.
- 28 (2 ORE Lezione): Reinforcement learning. Definizione del problema. Episodi. La funzione stato-azione Q. L’algoritmo Q Learning. Il modello actor-critic. Replay buffer.
- 29 (2 ORE Laboratorio): Esercitazione su Q Learning.
- 30 (2 ORE Lezione): Modelli discriminativi e modelli generativi. Generative Adversarial Networks. Addestramento di una GAN. La funzione di loss per il discriminatore e per il generatore.
- 31 (2 ORE Laboratorio): Esercitazione su GAN.
- 32 (2 ORE Lezione): Reti neurali ricorrenti. Unfolding. Task sequence-to-sequence, sequence-to-value, value-to-value, sequence-to-sequence of different length. Back propagation Through Time. Architettura LSTM. Architettura GRU.
- 33 (2 ORE Laboratorio): Esercitazione su LSTM.
- 34 (2 ORE Lezione): Limiti delle reti ricorrenti. L’architettura Transformer. Modulo di attenzione. Blocco encoder. Blocco decoder. Il modello di linguaggio BERT.
- 35 (2 ORE Laboratorio): Esercitazione su Transformer.
- 36 (2 ORE Esercitazione): Discussione avanzamento project work.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE: Il reinforcement learning e l’algoritmo Q Learning. Architetture avanzate per il Deep learning, con particolare riferimento ad autoencoder, Generative Adversarial Network, Reti ricorrenti e Transformer.
CONOSCENZE E CAPACITÀ DI COMPRENSIONE APPLICATE: Progettare soluzioni di apprendimento automatico basate su architetture avanzate, con particolare riferimento a soluzioni per il reinforcemente learning, a modelli generativi e a soluzioni per l’elaborazione di sequenze di dati.


TOTALE ORE LEZIONE/ESERCITAZIONE/LABORATORIO: 36/4/32
Teaching Methods
L’INSEGNAMENTO CONTEMPLA LEZIONI TEORICHE, ESERCITAZIONI IN AULA ED ESERCITAZIONI PRATICHE DI LABORATORIO.
Verification of learning
IL RAGGIUNGIMENTO DEGLI OBIETTIVI DELL’INSEGNAMENTO E CERTIFICATO MEDIANTE IL SUPERAMENTO DI UN ESAME CON VALUTAZIONE IN TRENTESIMI. L'ESAME PREVEDE LA DISCUSSIONE DI UN PROGETTO REALIZZATO IN GRUPPO (CON GRUPPI DI 3-4 PERSONE) E UN COLLOQUIO ORALE INDIVIDUALE.
LA DISCUSSIONE DEL PROGETTO È VOLTA A DIMOSTRARE LA CAPACITÀ DI APPLICARE LE CONOSCENZE E LA CAPACITÀ DI COMPRENSIONE MEDIANTE LA REALIZZAZIONE UNA SEMPLICE APPLICAZIONE DEGLI STRUMENTI DI MACHINE LEARNING O BIG DATA ANALYTICS PRESENTATI NEL CORSO A UN PROBLEMA PROPOSTO DAL DOCENTE. LA DISCUSSIONE DEL PROGETTO PREVEDE UNA DIMOSTRAZIONE PRATICA DEL FUNZIONAMENTO DELL'APPLICAZIONE REALIZZATA, LA PRESENTAZIONE DELLA VALUTAZIONE DELLE PRESTAZIONI DELL'APPLICAZIONE MEDIANTE INDICATORI QUANTITATIVI, E UNA DESCRIZIONE DELLE SCELTE TECNICHE EFFETTUATE, EVENTUALMENTE CON L'AUSILIO DI SLIDE.
IL COLLOQUIO ORALE MIRA A VERIFICARE IL LIVELLO DELLE CONOSCENZE E DELLA CAPACITÀ DI COMPRENSIONE DEGLI ARGOMENTI AFFRONTATI NEL CORSO, NONCHÉ LA CAPACITÀ DI ESPOSIZIONE DELLO STUDENTE.
Texts
"DEEP LEARNING", IAN GOODFELLOW AND YOSHUA BENGIO AND AARON COURVILLE, MIT PRESS.

DISPENSE E ALTRO MATERIALE FORNITO DURANTE IL CORSO

MATERIALE DIDATTICO INTEGRATIVO SARA' DISPONIBILE NELLA SEZIONE DEDICATA DELL'INSEGNAMENTO ALL'INTERNO DELLA PIATTAFORMA E-LEARNING DI ATENEO (HTTP://ELEARNING.UNISA.IT) ACCESSIBILE AGLI STUDENTI DEL CORSO TRAMITE LE CREDENZIALI UNICHE DI ATENEO.
More Information
L'INSEGNAMENTO E' EROGATO IN INGLESE
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-09-16]