Anno accademico 2022-2023

MACHINE LEARNING

Docenti

Christian Micheloni
Claudio Piciarelli
Totale crediti
9
Periodo didattico
Primo Periodo
Tipologia
Affine/Integrativa
Prerequisiti. Sono prerequisiti del corso la conoscenza dell’algebra lineare e dei paradigmi di programmazione.
Metodi didattici. Il corso è organizzato in lezioni di teoria, lezioni di esercitazioni e lezioni di laboratorio.
Modalità di verifica. L’esame consiste in una prova scritta seguita dall’eventuale esame orale. La prova scritta è composta da domande di teoria relative agli algoritmi fondamentali di Machine Learning e da esercizi che richiedono di applicare le conoscenze a problemi specifici di apprendimento automatico.

Agli studenti verrà data la possibilità di essere valutati alternativamente mediante lo sviluppo di un progetto di Machine Learning su temi proposti dal docente. Lo studente può anche proporre temi di proprio interessi che dovranno essere validati dal docente.

Altre informazioni. Tutte le lezioni saranno videoregistrate e caricate in automatico sulla pagina E-Learning dell’insegnamento. In tale pagina tutti gli studenti iscritti al corso potranno accedere alla lezione da remoto.
Obiettivi formativi
La finalità del Corso è quella di presentare i concetti base del machine learning ed introdurre gli algoritmi più comuni per l’apprendimento attraverso elaboratori digitali. L’obiettivo formativo è quello di dotare gli studenti delle conoscenze necessarie per risolvere problemi reali mediante l’individuazione e sviluppo degli opportuni algoritmi di machine learning.. Il corso sarà costituito da una parte teorica di descrizione dei algoritmi classici di Machine Learning e da una parte laboratoriale in cui tali metodologie vengono applicate mediante il linguaggio Python.

Lo/la studente/essa dovrà:

– conoscere i concetti e gli algoritmi fondamentali dell’apprendimento automatico attraverso elaboratori digitali.

– saper acquisire e manipolare un insieme di dati per l’apprendimento automatico.

– saper utilizzare il linguaggio di programmazione Matlab.

– saper analizzare un problema di apprendimento automatico sia supervisionato che non.

Indicare i risultati di apprendimento attesi come riportati nei seguenti Descrittori di Dublino.

Conoscenza e comprensione

– acquisire specifiche conoscenze dei principali concetti e principi teorici dell’apprendimento automatico attraverso elaboratori digitali.

– Conoscere e sapere utilizzare il linguaggio Matlab per l’implementazione di algoritmi di machine learning

Capacità di applicare conoscenza e comprensione

– saper analizzare e comprendere un algoritmo di machine learning.

– saper analizzare ed interpretare un problema di machine learning ed applicare le conoscenze di cui sopra per determinare lo schema di apprendimento più idoneo.

– Progettare un sistema di apprendimento automatico a partire da dati campione.

Autonomia di giudizio

– Saper valutare gli algoritmi di machine learning ed effettuare una scelta personale dell’algoritmo più adatto per la soluzione di un problema dato.

– Saper distinguere tra diverse soluzioni di machine learning e valutarne l’efficacia.

Abilità comunicative

– saper illustrare con rigore logico e terminologico, a voce e per iscritto, questioni tecniche inerenti algoritmi e sistemi di apprendimento automatico attraverso elaboratori digitali.

Capacità di apprendimento

saper reperire e utilizzare strumenti bibliografici e informatici utili per l’approfondimento autonomo di problemi inerenti l’apprendimento automatico attraverso gli elaboratori digitali.

Contenuti
Il corso presenterà agli studenti i fondamenti del machine learning. Saranno introdotte le differenze tra predizione e classificazione, approcci supervisionati e non supervisionati. Per ognuna di tali categorie saranno presentati gli algoritmi dello stato dell’arte in una evoluzione logica che parte da tematiche semplici fino ad arrivare al moderno data analytics e deep learning. Il corso prevede sia una parte di esercitazioni che di laboratorio tramite le quali si svilupperanno alcuni degli algoritmi presentati a livello teorico e si analizzeranno caratteristiche e limiti di ognuno.

Pogramma dettagliato:

1.Introduzione – Presentazione del corso e dei concetti base del machine learning quali vettori e spazi di feature. Applicazioni di machine learning quali classificazione, regressione, clustering e compressione dei dati. Classificazione delle tecniche di machine learning in supervisionato e non supervisionato.

2.Regressione – Tecniche di regressione lineare (minimizzazione della funzione costo mediante discesa del gradiente, least squares, polynomial regression). Logistic regression di tipo binomiale e polinomiale.

3.Algoritmi Supervisionati – Introduzione agli algoritmi di classificazione. Presentazione degli algoritmi di classificazione più diffusi (Alberi di decisione, reti neurali, deep learning, convolutional neural networks – CNN, autoencoders, GAN, transformers, kernel, support vector machines, reinforcement learning, explainable AI). Algoritmo di Back Propagation.

4.Algoritmi Non Supervisionati – Definizione di clustering e principali tecniche di clusteirng (k-means, GMM, EM, etc.) . Presentazione delle tecniche di compressione dei dati mediante algoritmi di dimensionality reduction quali PCA e LDA.

5.Applicazioni – uso di algoritmi di machine learning per scopi reali quali la percezione, analisi del testo, visione artificiale, medicina, economia e altri.

6.Laboratorio – Implementazione dei più importanti algoritmi di regressione, classificazione e deep learning in python e pytorch.

Testi di riferimento
[1] Tom M. Mitchell, Machine Learning. McGraw-Hill, 1997.

[2] Christopher M . Bishop, Pattern Recognition and Machine Learning, Information Science and Statistics, 2006.