Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Scienze
DATA SCIENCE
Insegnamento
HUMAN DATA ANALYTICS
SCP7079397, A.A. 2019/20

Informazioni valide per gli studenti immatricolati nell'A.A. 2019/20

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea magistrale in
DATA SCIENCE
SC2377, ordinamento 2017/18, A.A. 2019/20
N0
porta questa
pagina con te
Crediti formativi 6.0
Tipo di valutazione Voto
Denominazione inglese HUMAN DATA ANALYTICS
Sito della struttura didattica http://datascience.scienze.unipd.it/2019/laurea_magistrale
Dipartimento di riferimento Dipartimento di Matematica
Obbligo di frequenza No
Lingua di erogazione INGLESE
Sede PADOVA
Corso singolo È possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Docenti
Responsabile MICHELE ROSSI ING-INF/03

Mutuazioni
Codice Insegnamento Responsabile Corso di studio
INP9087860 HUMAN DATA ANALYTICS MICHELE ROSSI IN2371
INP9087860 HUMAN DATA ANALYTICS MICHELE ROSSI IN2371
INP9087860 HUMAN DATA ANALYTICS MICHELE ROSSI IN2371

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
CARATTERIZZANTE Tecnologie dell'informatica ING-INF/03 6.0

Organizzazione dell'insegnamento
Periodo di erogazione Secondo semestre
Anno di corso I Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
LEZIONE 6.0 48 102.0

Calendario
Inizio attività didattiche 02/03/2020
Fine attività didattiche 12/06/2020
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2017

Syllabus
Prerequisiti: Il corso richiede conoscenze in Teoria della Probabilità (variabili aleatorie, probabilità condizionata e formula di Bayes, distribuzioni di probabilità discrete e continue) e un minimo di conoscenza di linguaggi di programmazione (MatLab, Python). Anche se non strettamente necessarie, conoscenze nell'ambito di algebra lineare (es, spazi vettoriali e decomposizione ai valori singolari) e dell'analisi numerica dei segnali (trasformate di Fourier discrete) sono utili.

Si noti che il Professore, effettuerà dei brevi ripassi per le tecniche e teorie di cui sopra, ogni volta lo si renda necessario. Materiale e referenze per il ripasso personale da parte dello studente di tali tecniche verranno altresì forniti. Inoltre, anche se conoscenze pregresse sono sicuramente utili per lo studente, il corso è concepito in modo da non dipendere criticamente da esse.

Benchè non obbligatorio, si consiglia l'esame "Machine Learning" della Laurea Magistrale ICT for Internet and Multimedia, codice: INP6075419.
Conoscenze e abilita' da acquisire: 1. Conoscere i principali algoritmi per la classificazione di dati multidimensionali, i loro pro e contro, le metriche per la loro valutazione
2. Conoscere le principali tecniche per l'apprendimento non-supervisionato (vector quantization), le loro prestazioni, i vantaggi e il loro utilizzo in seno a problemi reali nell'ambito dei biosegnali
3. Conoscere le principali tecniche di modellizzazione di serie temporali multivariate e il loro utilizzo in seno a problemi reali
4. Conoscere i principi e le tecniche dell'apprendimento supervisionato con particolare riferimento alle reti neurali (feed forward e convoluzionali), la loro programmazione in Python, e il loro utilizzo in seno a problemi reali
5. Conoscere i principali ambiti di applicazione, delle tecniche ai punti 1, 2, 3 e 4 e come queste tecniche sono state utilizzate per risolvere problemi nell'ambito "human data"
6. Acquisire la sensibilità necessaria per saper discernere e utilizzare i modelli ai punti 1, 2, 3, e 4
7. Essere in grado di risolvere un problema di analisi dei dati e: 1) sintetizzarne la soluzione in un documento professionale, 2) presentare il lavoro svolto oralmente nella forma di "presentazione stile conferenza" con dimostrazione del software scritto allo scopo
8. Essere in grado di utilizzare e implementare al calcolatore gli algoritmi ai punti 1, 2, 3 e 4 tramite il linguaggio Python
Modalita' di esame: Questo è un corso di "machine learning" avanzato e applicato a problematiche reali. Pertanto, la verifica finale dell'apprendimento dello studente verterà su un progetto, che coinvolgerà le seguenti fasi di lavoro:

1. Il Professore assegnerà agli studenti un problema da risolvere, individuando un dataset aperto, pubblicamente fruibile e utilizzabile allo scopo. Il problema verrà descritto dal docente tramite un'apposita lezione, nella quale si spiegheranno altresì le modalità di presentazione dei risultati finali, via 1) una relazione finale, in forma scritta, 2) una presentazione, in forma orale

2. Gli studenti si distribuiranno in gruppi, con un massimo di due persone per gruppo di lavoro, e inizieranno a lavorare al progetto assegnato. La scelta della tecnica da utilizzare, il pre-trattamento dei dati per ottenere delle feature informative, etc. saranno tutti dettagli da risolvere, a discrezione dello studente. Il docente si renderà disponibile per seguire i gruppi nelle varie fasi di lavoro

3. Ogni gruppo risolverà il problema proposto secondo la tecnica prescelta e presenterà: 1) una relazione finale, 2) una presentazione al docente in forma orale dove si descriverà, il problema affrontato, i modelli e tecniche utilizzati, il codice realizzato allo scopo, i risultati ottenuti. È inoltre apprezzata la dimostrazione del funzionamento del codice realizzato da parte degli studenti

Il voto finale verrà proposto dal docente dopo un'attenta valutazione della relazione scritta al punto 1) e della presentazione in forma orale al punto 2).
Criteri di valutazione: I criteri di valutazione con cui verrà effettuata la verifica delle conoscenze e delle abilità attese, saranno:

1. Completezza delle conoscenze acquisite
2. Capacità di analisi di un problema reale attraverso le tecniche presentate nel corso
3. Proprietà nella terminologia tecnica usata, sia scritta che orale
4. Originalità e indipendenza nella identificazione della soluzione scelta per la soluzione del progetto
5. Competenza e coerenza nell'interpretazione del significato dei risultati ottenuti
6. Abilità nell'utilizzo degli strumenti informatici nello studio del problema assegnato
7. Qualità dell'esposizione orale
8. Qualità dell'esposizione scritta
Contenuti: Parte I – Introduzione (2 ore)
- Introduzione al corso, modalità di esame, orari del docente, etc.
- Applicazioni: salute, servizi che includono il tracciamento di attività, applicazioni di sicurezza e emergenza, analisi di movimento

Part II – Tecniche di quantizzazione vettoriale (12 ore)
- Quantizzazione Vettoriale (QV):
-- Significato, utilità, metriche
-- K-means, soft K-means, Expectation Maximization
- Algoritmi per la QV non-supervisionata:
--- Mappe Auto-Organizzanti (SOM), Reti Neurali "Gas" (GNG)
- Applicazioni a segnali biometrici quasi-periodici (ECG):
-- Pre-processamento del segnale, normalizzazione, segmentazione
--- Apprendimento di dizionari: concetti, architetture
--- Rappresentazione efficiente di segnali ECG:descrizione di tecniche dello stato dell'arte
--- Esempi di architetture per l'apprendimento non-supervisionato GNG-based per segnali ECG
--- Architettura finale del sistema e risultati numerici

Part II – Analisi di dati sequenziali (10 ore)
- Modelli di Markov nascosti (HMM):
--- Massima verosimiglianza per le HMM
--- Algoritmo "Forward-backward"
--- Algoritmo di somma-prodotto, algoritmo di Viterbi
- Applicazioni
--- Autenticazione: identificazione di utenti dalle dinamiche di digitazione su tastiere numeriche
--- Riconoscimento vocale: estrazione di feature vocali, riconoscimento vocale tramite modelli di Markov nascosti

Part III - Reti Neurali "Deep" (10 ore)
- Tecniche di discesa del gradiente e concetti generali (apprendimento supervisionato, modelli di costo, etc.)
- Reti neurali "feed forward": modelli, allenamento delle reti, algoritmo di "back-propagation"
- Reti neurali convoluzionali (CNN): struttura, blocchi costituenti, allenamento
- Applicazioni: apprendimento di attività
--- Attività e sensori: definizioni, classi di attività
--- Feature: sequence di feature, feature statistiche, feature spettrali, feature correlate al contensto e alle attività
--- Riconoscimento di attività: segmentazione, finestre mobili, segmentazione non-supervisionata, misure prestazionali e risultati
- Autenticazione utenti da segnali di moto: combinazione di CNN-SVM and teoria della stima sequenziale
- Object / face recognition through CNN

Part IV: Lezioni di laboratorio (12 ore)
Le lezioni di laboratorio saranno effettuate in modo guidato, presentando allo studente codice pre-scritto e funzionante, ma allo stesso tempo soffermandosi su ogni blocco del codice, caratterizzandone il funzionamento e i dati che esso ritorna in uscita. Le lezioni si incentreranno sulla comprensione del linguaggio Python e dei vari tools (Keras e TensorFlow) per la definizione e l'allenamento di reti neurali. Le reti neurali "feed forward" e quelle convoluzionali, verranno pienamente caratterizzate descrivendo i blocchi che le compongono, la loro programmazione e la creazione delle varie architetture neurali. Queste verranno infine allenate tramite diversi algoritmi che sfruttano la discesa del gradiente. Le reti trattate verranno poi testate con opportuni dataset. In estrema sintesi, gli argomenti trattati sono:

- Introduzione alla programmazione con il linguaggio Python
- Soluzione di un problema di inferenza statistica
- Reti neurali con struttura "feed forward"
- Reti neurali convoluzionali
Attivita' di apprendimento previste e metodologie di insegnamento: Il corso è articolato come segue:

- Didattica frontale (36 ore): il docente presenterà gli argomenti presenti nel syllabus delle lezioni utilizzando principalmente delle slide. Particolari passaggi matematici verranno presentati tramite l'ausilio della lavagna.

--- Una lezione verrà dedicata alla presentazione del progetto del corso, del set di dati da utilizzare e delle modalità di esame
--- Il corso è progettato, per ogni sezione, in modo da presentare prima una trattazione teorica dei metodi e dei modelli, per poi descrivere alcune applicazioni di riferimento, spiegando nel dettaglio come i metodi vengono usati / adattati nei vari ambiti, commentando scelte architetturali e le relative prestazioni

- Attività di laboratorio (12 ore): sei lezioni verranno dedicate all'attività di laboratorio, nella quale le tecniche sviluppate durante le lezioni teoriche verranno implementate e caratterizzate sperimentalmente utilizzando il linguaggio Python.

Tutto il materiale didattico presentato / utilizzato (slides e software) è reso disponibile sul sito personale del docente (protetto via username e password):

http://www.dei.unipd.it/~rossi/courses/HumanData/HDA.html

Le credenziali di accesso verranno comunicate dal docente nella lezione di introduzione al corso.
Eventuali indicazioni sui materiali di studio: Report tecnici, articoli scientific, software e altro materiale vario saranno resi disponibili dal docente qualora lo si renda necessario. Il materiale sarà reso disponibile tramite il sito del corso.

Altri libri utili sono:

Per un ripasso di concetti di algebra lineare:
- J. R. Magnus and H. Neudecker, "Matrix Differential Calculus with Applications in Statistics and Econometrics," Wiley, 1999.

Per lo studio di modelli audio e l'utilizzo di HMM per il riconoscimento vocale:
- D. Jurafsky, J. H. Martin, “Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition,” Prentice Hall, 2nd Edition, 2008.
Testi di riferimento:
  • Bishop, Christopher M., Pattern recognition and machine learningChristopher M. Bishop. New York: Springer, 2006. Cerca nel catalogo
  • Bengio, Yoshua; Courville, Aaron; Goodfellow, Ian, Deep Learning. Cambridge: MIT Press, 2016. Cerca nel catalogo
  • Watt, Jeremy; Borhani, Reza; K. Katsaggelos, Aggelos, Machine learning refined. New York: Cambridge University Press, 2016. Cerca nel catalogo

Didattica innovativa: Strategie di insegnamento e apprendimento previste
  • Lecturing
  • Laboratory
  • Problem based learning
  • Case study
  • Working in group
  • Questioning
  • Problem solving

Didattica innovativa: Software o applicazioni utilizzati
  • Latex
  • Matlab
  • Python, TensorFLow

Obiettivi Agenda 2030 per lo sviluppo sostenibile
Salute e Benessere Istruzione di qualita' Lavoro dignitoso e crescita economica Industria, innovazione e infrastrutture