CODICE | 106788 |
---|---|
ANNO ACCADEMICO | 2022/2023 |
CFU |
|
SETTORE SCIENTIFICO DISCIPLINARE | ING-INF/01 |
SEDE |
|
PERIODO | 2° Semestre |
MODULI | Questo insegnamento è un modulo di: |
MATERIALE DIDATTICO | AULAWEB |
Obiettivo dell'insegnamento è quello di introdurre le competenze necessarie per comprendere ed utilizzare i più importanti paradigmi di Machine Learning. Il percorso formativo si svilupperà lungo due direttrici principali. La prima direttrice è basata sulla didattica frontale e persegue lo scopo di analizzare gli aspetti teorici che stanno alla base di paradigmi quali le reti neurali a singolo strato, il Deep Learning, i modelli di apprendimento basati su kernel, i metodi di clustering e gli alberi decisionali. La seconda direttrice è basata su esercitazioni pratiche e persegue lo scopo di coinvolgere lo studente nei processi implementativi. Nel complesso, le modalità didattiche saranno strutturate in modo da trasmettere allo studente non solo competenze teoriche sui modelli basati su Machine Learning, ma anche gli strumenti pratici per implementare tali modelli su microprocessore e GPU.
Scopo dell'insegnamento è fornire le basi per la progettazione e lo sviluppo di algoritmi di classificazione e regressione. Lo studente viene introdotto a diversi concetti di machine learning (modelli lineari, alberi di decisione, ensemble learning, reti neurali, ecc.) e aiutato a comprenderli attraverso esercizi svolti al calcolatore durante le lezioni frontali sfruttando le principali librerie software del linguaggio Python (NumPy, Pandas, SciKitLearn e TensorFlow). Nella parte finale dell'insegnamento, particolare attenzione verrà posta sull'implementazione dei modelli su dispositivi embedded.
L'insegnamento è costruito da una parte di lezione frontale e una parte di esercitazione. Durante la lezione frontale, il docente presenta gli argomenti fornendo sempre esempi di codice che vengono provati sul notebook Jupyter. Gli studenti possono utilizzare i propri calcolatori durante la lezione per mettere in pratica quanto proposto dal docente. Durante le esercitazioni, gli studenti devono affrontare al calcolatore problemi reali che possono essere risolti applicando le tecniche viste durante le lezioni frontali.
Parte 1 - Algoritmi e tecniche fondamentali
Introduzione e catalogazione degli approcci
Regressione
Classificazione
Modelli Lineari
Alberi di Decisione
Ensemble Learning
Dimensionality Reduction
Algoritmi non supervizionati
Parte 2 - Reti Neurali
Percettrone
MLP
Backpropagation
Reti a convoluzione
Advanced Vision
Parte 3 - Implementazione su dispositivi embedded
Inferenza
Quantizzazione
TensorFlow Lite e TensorFlow Micro
Deployment su piattaforma NVidia Jetson
TinyML
Ricevimento: Il docente riceve su appuntamento, per prendere appuntamento è possibile contattare il docente tramite Microsoft Teams (preferibilmente) o tramite email a riccardo.berta@unige.it
ALBERTO OLIVERI (Presidente)
RICCARDO BERTA (Presidente Supplente)
EDOARDO RAGUSA (Presidente Supplente)
L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.
L'esame consiste in una interrogazione orale sugli argomenti presentati a lezione e nel commento delle esercitazioni svolte durante l'insegnamento. In particolare, lo studente deve dimostrare di aver compreso appieno i concetti alla base dello sviluppo di modelli basati sulle tecniche del machine learning e di saperli applicare alla progettazione e implementazione di applicazioni su dispositivi embedded.
Durante l'orale, il docente chiederà allo studente di illustrare i concetti imparati a lezione. Per ogni concetto, lo studente dovrà, oltre alla definizione, descrivere le condizioni per la sua applicazione, gli eventuali vantaggi e svantaggi. Nel commentare le esercitazioni realizzate durante l’insegnamento, allo studente verrà richiesto di descrivere le scelte progettuali compiute, le possibili alternative scartate e le motivazioni.