Recommender Systems
metodi statistici per l'apprendimento

6 crediti, laurea magistrale in Informatica (F94), secondo semestre
DOCENTE: Nicolò Cesa-Bianchi

Orario:

Lunedì e martedì 16:30-18:30. Aula Beta, via Comelico 39.

Avvisi

Materiale bibliografico:

Il materiale sarà fornito dal docente sotto forma di dispense integrate da riferimenti bibliografici.

Per colmare eventuali lacune in calcolo delle probabilità e statistica e ottimizzazione non lineare si consiglia la consultazione dei testi seguenti:

Paolo Baldi, Calcolo delle probabilità e statistica (seconda edizione). McGraw-Hill, 1998.

Vincenzo Capasso e Daniela Morale, Una guida allo studio della probabilità e statistica matematica. Società editrice Esculapio, 2009.

Dimitri P. Bertsekas and John N. Tsitsiklis, Introduction to Probability (2nd edition). Athena Scientific, 2008.

Marco Trubian, Dispensa del Corso di Complementi di Ricerca Operativa.

Testi generali di apprendimento automatico:
Shai Shalev-Shwartz e Shai Ben-David, Understanding Machine Learning: From Theory to Algorithms, Cambridge University Press, 2014.

Mehryar Mohri, Afshin Rostamizadeh e Ameet Talwalkar, Foundations of Machine Learning, MIT Press, 2012.

Peter Flach, Machine Learning: The Art and Science of Algorithms that Make Sense of Data, Cambridge University Press, 2012.

Peter Harrington, Machine Learning in Action, Manning, 2012.

Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006.

L. Devroye, L. Gyorfi, and G. Lugosi, A Probabilistic Theory of Pattern Recognition, Springer, 1996.

Obiettivi

L'apprendimento automatico si occupa dello sviluppo di algoritmi per la costruzione di modelli predittivi di un fenomeno di interesse sulla base di un insieme di dati osservati. L'apprendimento automatico è diventato uno strumento chiave per l'analisi intelligente dei dati (data analytics), con applicazioni che spaziano dalla guida autonoma ai sistemi di raccomandazione per il web. Il corso si propone di descrivere e analizzare matematicamente le più diffuse tecniche di apprendimento automatico, fornendo allo studente un insieme di strumenti metodologici volti alla comprensione qualitativa e quantitativa del fenomeno dell'apprendimento nelle macchine.

Programma
L'ordine degli argomenti non è necessariamente quello seguito a lezione

  1. Introduzione al corso (versione del 7 aprile 2018, revisione generale)
  2. L'algoritmo Nearest Neighbour (versione del 7 aprile 2018)
  3. Predittori ad albero (versione del 11 marzo 2018, svista corretta)
  4. Cross validazione (versione del 1 marzo 2018)
  5. Rischio statistico e sua analisi (versione del 7 aprile 2018)
  6. Rischio nei predittori ad albero (versione del 26 marzo 2018)
  7. Rischio in Nearest Neighbour (versione del 27 marzo 2018)
  8. Consistenza e algoritmi nonparametrici (versione del 16 aprile 2018)
  9. Compression bounds (versione del 4 giugno 2016)
  10. Classificatori lineari (versione dell'11 aprile 2016)
  11. Online gradient descent (versione del 5 aprile 2017)
  12. Da rischio sequenziale a rischio statistico (versione del 14 aprile 2014)
  13. Funzioni kernel (versione del 4 maggio 2017)
  14. Support Vector Machines (versione del 1 giugno 2016)
  15. Stability bounds e controllo del rischio in SVM (versione del 1 giugno 2016)
  16. Boosting (versione del 14 giugno 2017)
  17. Regressione logistica, funzioni surrogate e consistenza (versione del 1 giugno 2017)
  18. Reti neuronali e deep learning (versione del 14 giugno 2017)
  19. Riduzione di dimensionalità (versione del 14 giugno 2017)
  20. Exponential weights: when experts become bandits (guest lecture, versione del 16 marzo 2018)
  21. Regressione ai minimi quadrati (in preparazione)

Datasets

Toolbox generali

Toolbox specifici

Esami

L'esame consiste in un approfondimento teorico oppure un progetto pratico. In entrambi i casi bisogna mettersi prima d'accordo col docente. Lo studente è incoraggiato a proporre lui stesso un tema che gli interessa in modo specifico.
L'approfondimento teorico è una breve relazione (una decina di pagine) su un argomento a scelta fra quelli svolti a lezione. La relazione deve occuparsi degli aspetti concettuali e formali del problema scelto fornendo la descrizione completa e dettagliata di almeno un risultato, incluse definizioni e dimostrazione formale completa di dettagli tecnici. Una possibile scaletta è la seguente:

Il progetto pratico consiste nello sviluppo di un software che implementi uno o più algoritmi di apprendimento, o varianti di uno stesso algoritmo, o un unico algoritmo con differenti valori dei suoi parametri. L'algoritmo deve essere poi sperimentato su dati reali (forniti dal docente, o proposti dallo studente). Il linguaggio utilizzato non è importante, basta che il programma funzioni con requisiti di tempo e memoria ragionevoli. La descrizione degli algoritmi e dei dataset e i risultati sperimentali presentati in forma in tabelle e/o grafici devono essere inclusi in un documento che verrà presentato all'esame.
L'approfondimento teorico e il progetto pratico, una volta ultimati, sono discussi col docente che completerà l'orale con domande generali sul resto del programma.

Calendario lezioni:

Sfogliate le pagine del calendario e cliccate sulle date per trovare i riassunti e le date delle prossime lezioni. Cliccate poi su "altri dettagli" per avere la formattazione corretta.