MACHINE LEARNING

Anno accademico 2020-2021

MACHINE LEARNING

Docenti:
Christian Micheloni
Claudio Piciarelli
Matteo Dunnhofer
Totale crediti: 9
Tipologia: Caratterizzante
Periodo didattico: Secondo Periodo
Lingua insegnamento: INGLESE
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 partecipare ad un contest relativo alla soluzione di problemi di Machine Learning per l’acquisizione di punti per il voto finale.
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 MATLAB.

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 discensa 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, kernel, support vector machines, boosting)

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 Microsoft Azure.

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.