20410432 - IN550 – MACHINE LEARNING

Apprendere a istruire un calcolatore a imparare dei concetti usando i dati, senza essere programmato esplicitamente. Acquisire la conoscenza dei principali metodi di apprendimento automatico con o senza supervisore e discuterne le proprietà e i criteri di applicabilità Acquisire la capacità di formulare correttamente il problema, scegliere l'algoritmo opportuno, e condurre l'analisi sperimentale per valutare i risultati ottenuti. Curare l'aspetto pratico dell'implementazione dei metodi introdotti presentando diversi esempi di impiego in diversi scenari applicativi.

Curriculum

scheda docente | materiale didattico

Programma

1. Apprendimento automatico. Tipi di apprendimento. Funzioni di costo. Minimizzazione del rischio empirico. Generalizzazione ed overfitting.
2. Ottimizzazione di modelli. Funzioni convesse. Discesa del gradiente. Discesa stocastica del gradiente.
3. Regressione. Regressione lineare. Basi di funzioni. Selezione dei predittori. Regolarizzazione.
4. Classificazione. Modelli generativi. Nearest neighbor. Regressione logistica. Support vector machines. Reti neurali.
5. Combinazione di modelli. Alberi di decisione. Boosting. Bagging.
6. Apprendimento non supervisionato. Clustering K-means. Clustering gerarchico. Analisi delle componenti principali.
7. Applicazione dei metodi nel linguaggio di programmazione Python. Esempi d'uso delle librerie NumPy, Pandas, SciKit-Learn, e TensorFlow.


Testi Adottati

J. Watt, R. Borhani, A. Katsaggelos. Machine Learning Refined. Cambridge University Press, 2nd edition, 2020.


Bibliografia Di Riferimento

A. Géron. Hands-On Machine Learning with SciKit-Learn, Keras, and Tensorflow. O'Reilly, 2nd edition, 2019.
S. Shalev-Shwartz, S. Ben-David. Understanding Machine Learning. Cambridge University Press, 2014. G. James, D. Witten, T. Hastie, R. Tibshirani. An Introduction to Statistical Learning. Springer, 2013. K.P. Murphy. Machine Learning. MIT Press, 2012. C.M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.

Modalità Erogazione

Lezioni teoriche ed esercitazioni con software scientifico.

Modalità Valutazione

L'esame si compone di due parti: un progetto software ed un esame orale. Nella parte di progetto software, gli studenti identificheranno ed analizzeranno un dataset utilizzando le metodologie presentate durante le lezioni, preparando un quaderno Python interattivo (Jupyter) ed una presentazione. L'esame orale consisterà, oltre che nella discussione del progetto, in domande su tutto il programma del corso.

scheda docente | materiale didattico

Programma

1. Apprendimento automatico. Tipi di apprendimento. Funzioni di costo. Minimizzazione del rischio empirico. Generalizzazione ed overfitting.
2. Ottimizzazione di modelli. Funzioni convesse. Discesa del gradiente. Discesa stocastica del gradiente.
3. Regressione. Regressione lineare. Basi di funzioni. Selezione dei predittori. Regolarizzazione.
4. Classificazione. Modelli generativi. Nearest neighbor. Regressione logistica. Support vector machines. Reti neurali.
5. Combinazione di modelli. Alberi di decisione. Boosting. Bagging.
6. Apprendimento non supervisionato. Clustering K-means. Clustering gerarchico. Analisi delle componenti principali.
7. Applicazione dei metodi nel linguaggio di programmazione Python. Esempi d'uso delle librerie NumPy, Pandas, SciKit-Learn, e TensorFlow.


Testi Adottati

J. Watt, R. Borhani, A. Katsaggelos. Machine Learning Refined. Cambridge University Press, 2nd edition, 2020.


Bibliografia Di Riferimento

A. Géron. Hands-On Machine Learning with SciKit-Learn, Keras, and Tensorflow. O'Reilly, 2nd edition, 2019.
S. Shalev-Shwartz, S. Ben-David. Understanding Machine Learning. Cambridge University Press, 2014. G. James, D. Witten, T. Hastie, R. Tibshirani. An Introduction to Statistical Learning. Springer, 2013. K.P. Murphy. Machine Learning. MIT Press, 2012. C.M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.

Modalità Erogazione

Lezioni teoriche ed esercitazioni con software scientifico.

Modalità Valutazione

L'esame si compone di due parti: un progetto software ed un esame orale. Nella parte di progetto software, gli studenti identificheranno ed analizzeranno un dataset utilizzando le metodologie presentate durante le lezioni, preparando un quaderno Python interattivo (Jupyter) ed una presentazione. L'esame orale consisterà, oltre che nella discussione del progetto, in domande su tutto il programma del corso.

scheda docente | materiale didattico

Programma

1. Apprendimento automatico. Tipi di apprendimento. Funzioni di costo. Minimizzazione del rischio empirico. Generalizzazione ed overfitting.
2. Ottimizzazione di modelli. Funzioni convesse. Discesa del gradiente. Discesa stocastica del gradiente.
3. Regressione. Regressione lineare. Basi di funzioni. Selezione dei predittori. Regolarizzazione.
4. Classificazione. Modelli generativi. Nearest neighbor. Regressione logistica. Support vector machines. Reti neurali.
5. Combinazione di modelli. Alberi di decisione. Boosting. Bagging.
6. Apprendimento non supervisionato. Clustering K-means. Clustering gerarchico. Analisi delle componenti principali.
7. Applicazione dei metodi nel linguaggio di programmazione Python. Esempi d'uso delle librerie NumPy, Pandas, SciKit-Learn, e TensorFlow.


Testi Adottati

J. Watt, R. Borhani, A. Katsaggelos. Machine Learning Refined. Cambridge University Press, 2nd edition, 2020.


Bibliografia Di Riferimento

A. Géron. Hands-On Machine Learning with SciKit-Learn, Keras, and Tensorflow. O'Reilly, 2nd edition, 2019.
S. Shalev-Shwartz, S. Ben-David. Understanding Machine Learning. Cambridge University Press, 2014. G. James, D. Witten, T. Hastie, R. Tibshirani. An Introduction to Statistical Learning. Springer, 2013. K.P. Murphy. Machine Learning. MIT Press, 2012. C.M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.

Modalità Erogazione

Lezioni teoriche ed esercitazioni con software scientifico.

Modalità Valutazione

L'esame si compone di due parti: un progetto software ed un esame orale. Nella parte di progetto software, gli studenti identificheranno ed analizzeranno un dataset utilizzando le metodologie presentate durante le lezioni, preparando un quaderno Python interattivo (Jupyter) ed una presentazione. L'esame orale consisterà, oltre che nella discussione del progetto, in domande su tutto il programma del corso.