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
2. Problemi di ottimizzazione continua. 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.
6. Apprendimento non supervisionato. Clustering K-means. Clustering gerarchico. Principal component analysis.
7. Applicazione dei metodi nel linguaggio di programmazione Python. Esempi d'uso delle librerie NumPy, Pandas, SciKit-Learn, Keras, TensorFlow.
Programma
1. Apprendimento automatico. Tipi di apprendimento. Funzioni di costo. Minimizzazione del rischio empirico. Generalizzazione ed overfitting.2. Problemi di ottimizzazione continua. 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.
6. Apprendimento non supervisionato. Clustering K-means. Clustering gerarchico. Principal component analysis.
7. Applicazione dei metodi nel linguaggio di programmazione Python. Esempi d'uso delle librerie NumPy, Pandas, SciKit-Learn, Keras, 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. S. Haykin. Neural Networks and Learning Machines. Pearson, 2009. T. Hastie, R. Tibshirani, J. Friedman. The Elements of Statistical Learning. Springer, 2nd edition, 2008. C.M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006. D. MacKay. Information Theory, Inference and Learning Algorithms. Cambridge University Press, 2004. R.O. Duda, P.E. Hart, D.G. Stork. Pattern Classification. John Wiley & Sons, 2001.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
2. Problemi di ottimizzazione continua. 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.
6. Apprendimento non supervisionato. Clustering K-means. Clustering gerarchico. Principal component analysis.
7. Applicazione dei metodi nel linguaggio di programmazione Python. Esempi d'uso delle librerie NumPy, Pandas, SciKit-Learn, Keras, TensorFlow.
Programma
1. Apprendimento automatico. Tipi di apprendimento. Funzioni di costo. Minimizzazione del rischio empirico. Generalizzazione ed overfitting.2. Problemi di ottimizzazione continua. 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.
6. Apprendimento non supervisionato. Clustering K-means. Clustering gerarchico. Principal component analysis.
7. Applicazione dei metodi nel linguaggio di programmazione Python. Esempi d'uso delle librerie NumPy, Pandas, SciKit-Learn, Keras, 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. S. Haykin. Neural Networks and Learning Machines. Pearson, 2009. T. Hastie, R. Tibshirani, J. Friedman. The Elements of Statistical Learning. Springer, 2nd edition, 2008. C.M. Bishop. Pattern Recognition and Machine Learning. Springer, 2006. D. MacKay. Information Theory, Inference and Learning Algorithms. Cambridge University Press, 2004. R.O. Duda, P.E. Hart, D.G. Stork. Pattern Classification. John Wiley & Sons, 2001.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.