Il corso fornisce una comprensione approfondita e una panoramica pratica dei fondamenti di Artificial Intelligence (AI) e Machine Learning (ML). Si concentra sugli aspetti degli algoritmi e delle applicazioni di apprendimento automatico che sono stati recentemente riconosciuti come fondamentali per il futuro dell'AI. Il corso riflette i cambiamenti nell'AI dopo il recente successo delle reti neurali profonde (Deep Learning) e si concentra sulla maggiore disponibilità di dati, risorse di calcolo e nuovi algoritmi dell'AI moderna, piuttosto che sulle tecniche considerate tradizionali dell'ingegneria della conoscenza. Vengono presentati i concetti e le intuizioni fondamentali alla base dei metodi di apprendimento, insieme ad una comprensione di come, perché e quando funzionano. Questi includono l'apprendimento non supervisionato (Unsupervised Learning), la riduzione della dimensionalità, il clustering, l'apprendimento supervisionato (Supervised Learning), il cosiddetto nearest neighbor, la regressione lineare, la regressione polinomiale, l'under/overfitting, la regressione logistica, gli elementi introduttivi delle reti neurali profonde, le reti convoluzionali. Gli studenti di questo corso non solo acquisiranno una comprensione degli aspetti fondamentali dell'intelligenza artificiale e dell'apprendimento automatico, ma acquisiranno anche competenze pratiche per sviluppare applicazioni per problemi nella scienza, nella tecnologia e nell'industria. Quando possibile, la lezione mostrerà alcune interessanti applicazioni e fornirà esempi di implementazioni di algoritmi utilizzando moderni strumenti disponibili, sia partendo da zero che utilizzando librerie di terze parti. In questo modo, gli studenti acquisiranno una comprensione teorica degli algoritmi di Artificial Intelligence e Machine Learning e le competenze pratiche necessarie per sviluppare applicazioni e implementare soluzioni per problemi reali in diversi campi.
Russell, Stuart J., and Peter Norvig. Artificial intelligence: A modern approach (2020).
Deisenroth, Marc Peter, A. Aldo Faisal, and Cheng Soon Ong. Mathematics for machine learning. Cambridge University Press, 2020.
Murphy, Kevin P. Machine learning: a probabilistic perspective. MIT press, 2012.
Bishop, Christopher M., and Nasser M. Nasrabadi. Pattern recognition and machine learning. Vol. 4. No. 4. New York: springer, 2006.
Zhang A, Lipton ZC, Li M, Smola AJ. Dive into deep learning. arXiv preprint arXiv:2106.11342. 2021 Jun 21.
Goodfellow, Ian, Yoshua Bengio, and Aaron Courville. Deep learning. MIT press, 2016.
Obiettivi Formativi
Gli studenti di questo corso non solo acquisiranno una comprensione degli aspetti fondamentali dell'intelligenza artificiale e dell'apprendimento automatico, ma acquisiranno anche competenze pratiche per sviluppare applicazioni per problemi nella scienza, nella tecnologia e nell'industria. Quando possibile, la lezione mostrerà alcune interessanti applicazioni e fornirà esempi di implementazioni di algoritmi utilizzando moderni strumenti disponibili, sia partendo da zero che utilizzando librerie di terze parti. In questo modo, gli studenti acquisiranno una comprensione teorica degli algoritmi di Artificial Intelligence e Machine Learning e le competenze pratiche necessarie per sviluppare applicazioni e implementare soluzioni per problemi reali in diversi campi.
Comprendere concetti chiave come supervised and unsupervised learning, classification, regression, clustering, representation learning, e deep learning
Sviluppare problem-solving skills e valutare diversi approcci
Sviluppare implementation skills: implementare algoritmi e tecniche di machine learning da zero utilizzando concetti fondamentali e strumenti pratici
Critical thinking skills: sviluppare la capacità di pensare in modo critico alle implicazioni etiche, sociali ed economiche di AI e ML
Prerequisiti
Non sono richiesti prerequisiti particolarmente specifici, per alcuni argomenti sono utili la familiarità con i concetti di base dell'informatica, dell'analisi matematica e dell'algebra lineare.
Metodi Didattici
Struttura del Corso: Lezioni Teoriche in Aula e Sessioni Pratiche su Laptop tramite Google Colab
Questo corso prevede sia lezioni teoriche in aula che sessioni pratiche. Queste ultime si svolgeranno utilizzando i laptop, attraverso la piattaforma Google Colab. Per alcune di queste sessioni, l'utilizzo del laptop sarà indispensabile.
Gli esercizi proposti durante il corso saranno strettamente collegati al materiale teorico presentato nelle lezioni e rappresentano un valido strumento per consolidare le conoscenze acquisite. Inoltre, sono un importante punto di partenza per la preparazione all'esame finale e per la stesura della relazione scritta.
Modalità di verifica apprendimento
Esame Scritto: L'esame scritto sarà composto da domande a risposta multipla e alcune domande aperte. Durante l'esame, sarà consentito l'uso di foglio e penna, mentre non sarà permesso l'utilizzo di appunti o libri.
Relazione Scritta: Come parte del processo di valutazione, dovrete preparare una relazione (per un massimo di 3 punti) su un argomento a vostra scelta trattato durante il corso. La relazione dovrà includere semplici esperimenti numerici correlati all'argomento scelto.
Esame Orale: Per ottenere un voto di 30 o 30 e lode, sarà richiesto un esame orale.
Relazione e Consegna: Per la relazione, potrete scegliere un argomento o una combinazione di argomenti trattati durante il corso, e dovrebbe essere lunga al massimo 4 pagine. Dovrà includere anche alcuni degli esercizi proposti nel corso. La consegna della relazione avverrà attraverso la piattaforma Moodle.
Preparazione all'Esame: Gli esercizi assegnati durante il corso rappresentano un metodo efficace per prepararsi per l'esame e per completare con successo la relazione scritta.
Programma del corso
Introduzione, Intelligenza Artificiale e Apprendimento Automatico
Esempi di Applicazioni. Rappresentazione dei Dati.
Elementi Utili di Algebra Lineare, Elementi utili di probabilità
Ambiente di calcolo con GPU : Google Colab,
Data Manipulation, Pytorch, Numpy. Data Visualization, MatPlotlib, Seaborn. Sklearn Library.
Scrittura relazione: Latex e Overleaf
Unsupervised Learning, Dimensionality Reduction (PCA, Eigenvectors, Clustering, k-means, GMM). PCA esempi d’uso. Implementazione.
Ottimizzazione basata su gradiente
Supervised Learning, Non-parametric (Nearest Neighbour). Implementazione.
Supervised Learning, Parametric (Linear Regression with Least Squares, Gradient Descent, Stochastic Gradient Descent. Implementazione.
Polynomial regression, under/overfitting.
Regolarizzazione
Dalla regressione alla classificazione: Logistic Regression (LR)
Da Logistic Regression a Neural Networks e Deep Learning
XOR problem, Convolutional Neural Networks (Pytorch)
Dataset di immmagini e apprendimento