IN550 Machine Learning – A.A. 2022/23

La pagina web inerente la precedente erogazione dell’insegnamento da parte del docente è reperibile qui.


Avvisi

Orari ed aule

Quando: Mercoledì 8.00-10.00, Giovedì 14.00-16.00 e Venerdì 10.00-11.00
Dove: Lab (Mercoledì e Venerdì), aula M5 (Giovedì)

Libro di testo

Il libro di testo adottato è

  • [W] Machine Learning Refined di J. Watts, R. Borhani, A.K. Katsaggelos (Cambridge University Press, 2ª edizione, 2020).
    Il repository GitHub del libro, contenente vari dataset ed esercizi, è qui.

Gli altri riferimenti bibliografici utilizzati sono:

Per le altre informazioni ufficiali sull’insegnamento si rimanda al GOMP.

Software utilizzato e quaderni Jupyter

Le esercitazioni utilizzeranno il linguaggio di programmazione Python 3. Si svilupperanno quaderni di Python interattivo (Jupyter) utilizzando varie librerie.

L’ambiente software consigliato, gratuitamente e liberamente installabile sul proprio calcolatore, è Anaconda. Utilizzare la versione Anaconda3-2021.05.

Il materiale delle Esercitazioni verrà reso disponibile all’interno del canale Teams del corso (File > Materiale del corso).

Progetti software

Le linee guida per la realizzazione dei progetti verranno inserite nella cartella Teams del corso.

Diapositive a cura del docente

Diario delle lezioni

I riferimenti [W] (oppure [S], [J], eccetera) indicano le sezioni del libro di testo o degli altri riferimenti bibliografici.

Data Argomenti Riferimenti al testo Allegati

21 Settembre

Presentazione del corso. Definizione ed esempi di Machine Learning. Tipologie di apprendimento.

[W 1.1-1.5]

22 Settembre

Funzione costo, rischio atteso, rischio empirico. Principio ERM. Compromesso bias-varianza. Regressione lineare. ERM per la regressione lineare ed equazioni normali.

[W 5.1-5.2.2]
[S 2.1-2.3, 9.2]

23 Settembre

Esercitazione: Introduzione a NumPy.

[G 2]

28 Settembre

Ipotesi bayesiana. Decomposizioni bias-varianza e stima-approssimazione. Coefficiente R². Variabili qualitative e one-hot encoding. Feature crossing. Regressione polinomiale e regressione lineare generalizzata.

[W 5.4]
[J 2.2.1-2.2.2, 3.1-3.3]
[S 5.2, 9.2.2]

29 Settembre

Interpretazione probabilistica del metodo dei minimi quadrati. Stima a massima verosimiglianza (MLE) e principio ERM. Regressione K-Nearest Neighbor. Regressione Least Absolute Deviations (LAD). Regressione lineare pesata e multi-output.

[W 5.3, 5.5-5.6]
[J 3.5]

30 Settembre

Esercitazione: Introduzione a Pandas.

[G 2]

Note

5 Ottobre

Ottimizzazione matematica, funzioni convesse, criteri di convessità, norme. Metodi di ricerca locale. Metodo della discesa del gradiente.

[W 2.1-2.5, 3.1-3.3, 3.5]

6 Ottobre

Dimostrazione della convergenza di Gradient Descent (GD). Problematiche di GD. Metodi del secondo ordine. GD per l’apprendimento supervisionato. Batch, Mini-Batch e Stochastic GD.

[W 3.6-3.7, 4.1-4.5, 5.2.3-5.2.4]
[S 14.1]

Note

7 Ottobre

Esercitazione: Implementazione del metodo del gradiente in NumPy. Introduzione a SciKit-Learn.

[W 3.5]
[G 2]

12 Ottobre

Training, validazione e test. Validazione incrociata. Riduzione delle feature. Feature selection. Regolarizzazione L2 e regressione ridge.

[W 9.7.1]
[J 5.1, 6.1, 6.2]
[S 11.2, 13.1]

13 Ottobre

Regolarizzazione L1 e regressione LASSO. Classificazione e funzione di costo 0-1. Inaccuratezza di un classificatore. Classificazione K-Nearest Neighbor.

[W 9.7.2-9.7.3]
[J 2.2.3]
[S 19.1, 19.3]

14 Ottobre

Esercitazione: Metodi di regressione in SciKit-Learn.

[G 4]

Sito scikit-learn

19 Ottobre

Classificazione generativa. Classificatore Bayesiano. Fit di gaussiane univariate. Analisi del discriminante unidimensionale.

[J 4.4]

Note

20 Ottobre

Fit di gaussiane multivariate. Matrici di covarianza. Analisi del discriminante quadratica e lineare.

[J 4.4]
[B 4.2-4.2.2]
[M 4.2-4.2.4]
[S 24.1-24.3]

Note

21 Ottobre

Esercitazione: Classificazione generativa (univariata).

Sito scikit-learn

26 Ottobre

Classificazione discriminativa. Regressione logistica nel caso binario. Sigmoide logistica e sue proprietà. Formulazione con etichette 0/1. Regola SGD per la regressione logistica.

[W 6.1-6.2]
[J 4.3]

Note 1, Note 2

27 Ottobre

Formulazione con etichette -1/+1. Funzione softmax. Separabilità lineare. Regressione logistica regolarizzata. Classe di ipotesi del percettrone.

[W 6.3]

28 Ottobre

Esercitazione: Classificazione generativa (multivariata).

Sito scikit-learn

2 Novembre

Algoritmo del percettrone. Convergenza del percettrone. Forma duale del percettrone. Support Vector Machines. Hard-margin SVM.

[W 6.4-6.4.4, 6.5-6.6]

Note

3 Novembre

Soft-margin SVM. Metriche di qualità nella classificazione. Sensibilità, specificità e accuratezza bilanciata. Classificazione multiclasse: one-vs-rest e softmax.

[W 6.8-6.9, 7.1-7.2, 7.3.5-7.3.7]

4 Novembre

Esercitazione: Regressione logistica in SciKit-Learn.

[G 4]

Sito scikit-learn

16 Novembre

Reti neurali. Funzioni di attivazione. Strati nascosti. Emulazione di operatori logici.

[W 13.1-13.3]

17 Novembre

Discesa del gradiente nelle reti neurali. Propagazione in avanti e retropropagazione. Architetture convolutive.

[W 13.4-13.5]

18 Dicembre

Esercitazione: Linee guida per i progetti.

23 Novembre

Approssimazione universale. Spazio delle feature. Kernel e teorema del rappresentante.

[W 11.1-11.2, 12.1-12.2]

24 Novembre

Dimostrazione del teorema del rappresentante. Esempi di Kernel. Teorema di Mercer. Predizioni con i kernel.

[W 12.3-12.7]
[S 16.1-16.2]

Note

25 Novembre

Esercitazione: Implementazione di una rete neurale per la classificazione di immagini.

[G 10]

30 Novembre

Modelli ad albero. Alberi di regressione. Alberi di classificazione. ERM per ceppi decisionali.

[W 14.1-14.4]
[S 18-18.2]

1 Dicembre

Boosting e AdaBoost. Bagging e Random Forest.

[W 14.5-14.6]
[S 10.2, 18.3-18.4]

Dim. Adaboost

25 Novembre

Esercitazione: Introduzione a TensorFlow.

[G 10]

7 Dicembre

Apprendimento non supervisionato. Clustering k-means e applicazioni.

[W 8.1, 8.5]
[S 22.2]

Note

9 Dicembre

Esercitazione: Modelli ad albero.

[G 6, 7]

Sito scikit-learn

14 Dicembre

Clustering gerarchico. Metodi di linkage. Proprietà del single-linkage.

[S 22.1]
[J 10.3]

Note

15 Dicembre

Principal Component Analysis. Sferificazione PCA. Sistemi di raccomandazione.

[W 8.2-8.4, 8.9.2, 9.3, 9.5]
[S 23.1]
[J 10.2]

Note

16 Dicembre

Esercitazione: Clustering. PCA.

[G 8, 9]

Sito scikit-learn

21 Dicembre

Debugging dell’apprendimento. Altri modelli di apprendimento.

[B 2.5, 8.1-8.2, 13.1-13.2]
[S 21.1-21.2, 23.3]
[M 10, 13, 14.7, 17]

Libro Ng sez. 1-32
Diapositive extra