Recommender Systems
metodi statistici per l'apprendimento

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

Orario lezioni

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

  1. Introduzione al corso (versione del 27 febbraio 2017)
  2. L'algoritmo Nearest Neighbour (versione del 14 marzo 2016)
  3. Predittori ad albero (versione del 6 marzo 2017)
  4. Cross validazione (versione del 7 marzo 2017)
  5. Rischio statistico e sua analisi (versione del 13 marzo 2017)
  6. Rischio nei predittori ad albero (versione del 20 marzo 2017)
  7. Rischio in Nearest Neighbour (versione del 23 marzo 2016)
  8. Consistenza e algoritmi nonparametrici (versione del 22 marzo 2017)
  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. 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.

Avvisi

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.