DEEP LEARNING

Anno accademico e docente
Non hai trovato la Scheda dell'insegnamento riferita a un anno accademico precedente? Ecco come fare >>
English course description
Anno accademico
2021/2022
Docente
RICCARDO ZESE
Crediti formativi
6
Periodo didattico
Primo Semestre
SSD
ING-INF/05

Obiettivi formativi

L'obiettivo del corso è apprendere le metodologie e tecniche basate su reti neurali deep per la realizzazione di applicazioni di Intelligenza Artificiale, acquisendo la capacità di applicare tali tecniche per risolvere problemi complessi.

Le principali conoscenze acquisite saranno:
- il linguaggio Python
- conoscenza delle principali architetture di reti neurali deep (reti convoluzionali, e ricorrenti).

Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
- capacità di utilizzare Python come linguaggio per lo sviluppo di applicazioni basate su reti neurali
- capacità di sviluppare un'applicazione che applica le reti neurali per risolvere compiti tipici dei sistemi di Intelligenza Artificiale, quali riconoscimento e classificazione di immagini, analisi dei testi, etc.

Prerequisiti

Buona conoscenza e uso di linguaggi di programmazione imperativi.

Contenuti del corso

Introduzione a Python

Introduzione Machine Learning
- Classificazione
- Regressione (Logistic regression)

Introduzione alle Reti Neurali
- Struttura, shallow/deep
- Introduzione Keras/Tensorflow ed esercizi
- Back propagation
- Regularization
- Practical Methods

Convolutional NN
- Drop out
- Parameter Sharing
- Alexnet, VGG, GoogleNet

Recurrent/Recursive NN

Applicazioni pratiche e direzioni di ricerca
- Computer Vision, Object Detection
- Autoencoders
- GAN
- Transfer Learning

Metodi didattici

L'attività didattica è svolta con lezioni teoriche ed esercitazioni pratiche di tipo laboratoriale.

Tutte le lezioni saranno svolte in presenza, secondo orario consultabile online. Le lezioni saranno anche trasmesse in streaming e registrate.

Tutto il materiale e le informazioni sono disponibili al classroom codice rpalk75

Modalità di verifica dell'apprendimento

La verifica dell’apprendimento avverrà tramite valutazione di:
- una prova scritta (tre domande a risposta aperta) a fine corso;
- valutazione di un progetto assegnato dal docente.
Il progetto puo' essere svolto individualmente o in gruppi di 2 studenti al massimo. L'assegnazione del progetto da parte del docente avverrà sotto richiesta dello studente (o della coppia di studenti). Tale richiesta potrà essere fatta in ogni momento a partire da quando il docente avrà ultimato le parti importanti del corso (indicativamente due settimane prima della fine del corso) e sarà indipendente dall'iscrizione alla prova scritta.

L’esame è costituito quindi da una prova scritta (tre domande a risposta aperta) e dall’esposizione - anche con strumenti di presentazione - del progetto svolto e dei risultati ottenuti.
La parte scrittà sarà fatta in date fissate dal docente (indicativamente tre per sessione) a cui lo studente può iscriversi online. La presentazione del progetto sarà fatta dal singolo studente (in caso di attività individuale) o dal gruppo (massimo 2) di studenti previo appuntamento da concordare con il docente. In questo ultimo caso, ogni studente del gruppo dovrà avere la responsabilità di una parte del progetto chiaramente identificata, dimostrare di avere compreso l'architettura applicativa e le funzioni di tutti i principali componenti software, oltre alla presentazione dettagliata dei componenti realizzati. L'iscrizione alla prova scritta è indipendente dall'assegnazione del progetto (che potrà essere richiesto sia prima sia dopo la data della prova) ma sarà propedeutica alla valutazione finale del progetto, che dovrà essere presentato dopo aver sostenuto la prova scritta.

NOTA: le votazioni dei parziali conseguite saranno valide fino al 30 settembre 2023, quando il corso verrà erogato nuovamente. Dopo tale data, tutte le votazioni conseguite verranno annullate e si dovranno sostenere nuovamente le prove parziali.

Testi di riferimento

Bibliografia:
- Jake VanderPlas. Python data science handbook: essential tools for working with data. O'Reilly Media, Inc., 2016.
- Ian Goodfellow, Yoshua Bengio, and Aaron Courville. Deep learning. MIT press, 2016.

Sitografia:
- https://jakevdp.github.it/PythonDataScienceHandbook/
- https://www.tensorflow.org
- https://keras.io/