IN550 Machine Learning – A.A. 2020/21


Avvisi

Orari ed aule

Quando: Martedì 16.00-18.00, Mercoledì 16.00-17.00 e Giovedì 16.00-18.00
Dove: Microsoft Stream

Libro di testo

Il libro di testo adottato è

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

Gli altri riferimenti bibliografici utilizzati sono:

  • [S] Understanding Machine Learning di S. Shalev-Shwartz, S. Ben-David (Cambridge University Press, 2014).

  • [J] An Introduction to Statistical Learning di G. James, D. Witten, T. Hastie, R. Tibshirani (Springer, 2013).

  • [H] The Elements of Statistical Learning di T. Hastie, R. Tibshirani, J. Friedman (Springer, 2ª edizione, 2008).

  • [M] Machine Learning di K.P. Murphy (MIT Press, 2012).

  • [B] Pattern Recognition and Machine Learning di C.M. Bishop (Springer, 2006).

  • [G] Hands-On Machine Learning with SciKit-Learn, Keras, and Tensorflow di A. Géron (O’Reilly, 2ª edizione, 2019).
    Il repository GitHub del libro, contenente vari esempi in Jupyter, è qui.

Per 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.

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

Progetti software

Le linee guida per la realizzazione dei progetti sono state 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 Appunti

22 Settembre

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

[W 1.1-1.5]

23 Settembre

Esercitazione: Introduzione a NumPy.

[G 2]

24 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]

Lavagna, Note

29 Settembre

Ipotesi bayesiana. Decomposizioni bias-varianza e stima-approssimazione. Coefficiente R². Training set e test set. 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]

Lavagna, Note

30 Settembre

Esercitazione: Introduzione a Pandas.

[G 2]

1 Ottobre

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

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

Lavagna, Note

6 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]

Note

7 Ottobre

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

[W 3.5]
[G 2]

8 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. Esempi di regole SGD.

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

Lavagna, Note

13 Ottobre

Training, validazione e test. Dimensionamento degli insiemi di training, validazione e test. La validazione incrociata. Riduzione delle feature. Feature selection. Best subset selection, forward stepwise selection. Regolarizzazione e principio Regularized Loss Minimization (RLM). Regolarizzazione L2 e regressione ridge.

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

Lavagna, Note

14 Ottobre

Esercitazione: Metodi di regressione in SciKit-Learn.

[G 4]
Sito scikit-learn

15 Ottobre

Soluzione della regressione ridge. Regolarizzazione L1 e regressione LASSO. Classificazione e funzione di costo 0-1. Inaccuratezza di un classificatore. Classificazione K-Nearest Neighbor. Esempio sul dataset MNIST.

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

Lavagna, Note

20 Ottobre

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

[J 4.4]

Lavagna

21 Ottobre

Esercitazione: Classificazione generativa (univariata).

Sito scikit-learn

22 Ottobre

Fit di gaussiane multivariate. Coefficiente di correlazione e covarianza. Matrice di covarianza. Analisi del discriminante quadratica. Analisi del discriminante lineare.

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

Lavagna, Note

27 Ottobre

Confidenza nelle predizioni. Classificazione Naive Bayes. MLE per una distribuzione di Bernoulli. Funzione cross-entropia.

[S 24.2]
[W 3.5]

Lavagna, Note

28 Ottobre

Esercitazione: Classificazione generativa (multivariata).

Sito scikit-learn

29 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]

Lavagna, Note

3 Novembre

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

[W 6.3]

Lavagna, Note

4 Novembre

Esercitazione: Regressione logistica in SciKit-Learn.

[G 4]
Sito scikit-learn

5 Novembre

Funzione hinge. Algoritmo del percettrone. Convergenza del percettrone. Forma duale del percettrone.

[W 6.4-6.4.4]

Lavagna, Note

10 Novembre

Support Vector Machines. Massimizzazione del margine. Hard-margin SVM. Soft-margin SVM.

[W 6.5-6.6]

Lavagna, Note

12 Novembre

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]

Lavagna, Note

17 Novembre

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

[W 13.1-13.3]

Lavagna, Note

18 Novembre

Esercitazione: Implementazione della regressione logistica per la classificazione di immagini.

[W 13.2]

Lavagna

19 Novembre

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

[W 13.4-13.5]

Lavagna, Note

24 Novembre

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

[W 11.1-11.2, 12.1-12.2]

Lavagna, Note 1, Note 2

25 Novembre

Esercitazione: Introduzione a TensorFlow.

[G 10]

26 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]

Lavagna, Note

1 Dicembre

Modelli ad albero. Alberi di regressione. Alberi di classificazione. Combinazione di modelli. Boosting.

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

Note

2 Dicembre

Esercitazione: Linee guida per i progetti.

3 Dicembre

AdaBoost. Bagging e random forest. Apprendimento della rappresentazione. Clustering k-means.

[W 14.5-14.6, 8.1, 8.5]
[S 18.3-18.4, 22.2]

Note 1, Note 2

9 Dicembre

Esercitazione: Modelli ad albero e clustering.

[G 7, 9]
Sito scikit-learn

10 Dicembre

Applicazioni di k-means. Clustering gerarchico. Metodi di linkage. Riduzione della dimensionalità. Autoencoder lineare.

[W 8.2]
[S 22.1, 23.1]
[J 10.2, 10.3]

Note

15 Dicembre

Principal Component Analysis. Sferificazione PCA. Sistemi di raccomandazione. Diagnosi di alta varianza o alto bias. Analisi degli errori.

[W 8.3-8.4, 9.3, 9.5]
[S 23.1]

Lavagna, Note 1, Note 2