Seleziona l'Anno Accademico:     2017/2018 2018/2019 2019/2020 2020/2021 2021/2022 2022/2023
Docente
  
Periodo
Secondo Semestre 
Modalità d'Erogazione
Convenzionale 
Lingua Insegnamento
ITALIANO 



Informazioni aggiuntive

Corso Percorso CFU Durata(h)
[60/79]  INFORMATICA APPLICATA E DATA ANALYTICS [79/00 - Ord. 2021]  PERCORSO COMUNE 6 48

Obiettivi

CONOSCENZA E CAPACITA' DI COMPRENSIONE: Il corso ha l'obiettivo di introdurre lo studente all’uso di un Game Engine come supporto per l’addestramento e l’analisi di modelli di Machine Learning ed Intelligenza Artificiale. Verranno insegnati metodi di data augmentation via simulazione, come generare degli ambienti simulati per testare agenti intelligenti e come interagire con questi ambienti simulati tramite realtà virtuale.

CAPACITA' APPLICATIVE: lo studente deve essere in grado di usare Unity (il Game Engine adottato nel corso), addestrare e testare un modello di Machine Learning tramite Collab e pytorch e generare una scena simulata su cui testare il modello. Lo studente avrà il supporto nell'installazione e nell'utilizzo di Unity, pytorch, Collab e tutti gli altri tool presentati durante il corso. La conoscenza di tali strumenti consentirà allo studente di ottimizzare lo sviluppo, l’addestramento e l’analisi di modelli di Machine Learning ed Intelligenza Artificiale.

AUTONOMIA DI GIUDIZIO: il corso si propone di stimolare gli studenti proponendo esercizi e software da implementare potendoli testare su Unity. Gli studenti impareranno le best practices nel design di modelli di Machine Learning, con focus specifico sulla Data Augmentation e l’addestramento simulato.

ABILITÀ NELLA COMUNICAZIONE: A fine corso lo studente dovrà aver appreso i concetti base di design e programmazione su Unity. Lo studente dovrà, inoltre, essere in grado di esprimere con appropriata terminologia concetti fondamentali e best pratices per l’addestramento di modelli di Machine Learning quali: overfitting, data augmentation e compromesso bias-varianza.

CAPACITÀ DI APPRENDERE: lo studente sarà in grado di apprendere alcuni concetti fondamentali dell’addestramento di modelli di Machine Learning e Deep Neural Networks attraverso l'uso di Unity e pytorch per rendere più efficiente i modelli sviluppati.

COMPETENZE ATTESE: Conoscenza delle basi di design e sviluppo di progetti su Unity, conoscenze base sulle tecniche di addestramento di modelli di Machine Learning e sull’utilizzo di dati simulati.
Inoltre, il corso stimolerà gli studenti allo sviluppo di progetti di varia natura anche tramite Unity, pytorch, e periferiche di realtà aumentata quali Meta Quest 2.

Prerequisiti

Conoscenza di programmazione orientata agli oggetti e capacità di apprendere autonomamente a scrivere codice in C# e python. Conoscenze base di Machine Learning.

Contenuti

INTRODUZIONE AL CORSO - 2 ore

FONDAMENTI DI DESING E SVILUPPO SU UNITY - 8 ore
Introduzione a Unity
Costruzione di una scena
Basi di scripting Unity in C#
Gestione dei Game Objects
Conoscenze base su Avatars e Animation Rigging

DATA AUGMENTATION - 6 ore
Concetti base su modelli di Machine Learning
Overfitting e compromesso bias-varianza
Migliorare le performace di apprendimento
Data Augmentation

DATA AUGMENTATION IN UNITY - 12 ore
Data Augmentation per problemi di Computer Vision
Generazione dati simulati
Caricamento di assets runtime
Concetti avanzati di Animation Rigging
Case study: Data Augmentation per action recognition

UNITY COME AMBIENTE DI SIMULAZIONE - 12 ore
Concetti base di simulazione
Training e test in simulazione
Game engines come ambienti di simulazione
Unity ML-Agents Toolkit
Case study: addestramento e test di un AI-agent in un ambiente simulato

UNITY E REALTA VIRTUALE - 8 ore
Introduzione realtà virtuale e metaverso
XR Interaction Toolkit
Integrazione di Meta Quest 2 in Unity

Metodi Didattici

Proiezione di slides, video e pagine Internet durante le lezioni sia per le lezioni teoriche che per le esercitazioni. Uso di progetti Unity e Collab, già realizzati dal docente, per dare agli studenti una base da cui partire per applicare in pratica la parte teorica.
Uso di Social Networks e sito personale del docente per comunicazioni e creazione di forum interni per la risoluzione di problemi, domande ed esercizi, aggiornamenti e approfondimenti. Utilizzo di un gruppo Telegram per accedere rapidamente ad avvisi, comunicazioni, e materiale didattico. Correzione dei compiti di esami con interazione da parte degli studenti.

Lezioni frontali: 28 ore
Esercitazioni: 20 ore

La didattica sarà erogata in presenza. Le lezioni potranno essere integrate con materiali audiovisivi e con lo streaming.

Verifica dell'apprendimento

- Esercitazioni pratiche
- Esempi durante il corso

L’esame consta di tre parti obbligatorie e un progetto opzionale:
- Consegna di tutti i programmi assegnati durante le esercitazioni del corso
- Domande a risposta multipla sul programma del corso
- Orale per delucidazioni sulle risposte alle domande scritte

I programmi da realizzare per le esercitazioni verranno assegnati ogni due settimane e dovranno essere completati entro la consegna successiva. Le esercitazioni consisteranno in programmi da scrivere in Unity e pytorch riguardanti gli argomenti del corso. Tutte le esercitazioni dovranno essere consegnate prima di poter sostenere la prova scritta.

Per sostenere l'esame scritto lo studente dovra' innanzitutto prenotarsi su esse3 per l'appello relativo. La prenotazione scadra' qualche giorno prima dell'esame. La prova durerà circa 120 minuti durante i quali lo studente dovrà rispondere alle domande a risposta multipla sul programma. L’esame sarà svolto in presenza in una delle aule del Dipartimento.

Se lo studente passerà con successo la prova scritta sarà convocato per l’orale che avverrà in presenza o su Microsoft Teams in date e tempi che verranno stabiliti dal docente volta per volta. Durante l’orale, lo studente potra’ rifiutare un eventuale voto, e rifare scritto e orale al prossimo appello. Gli esiti delle esercitazioni saranno mantenuti fino alla fine dell’anno accademico.

È possibile migliorare il voto presentando un progetto che dovrà essere concordato con il docente. Chi desiderasse svolgere un progetto può farlo e sarà consegnato al momento della prova orale. Il progetto è facoltativo. Ad uno stesso progetto possono lavorare al max 3 persone. Chiaramente più persone ci sono per progetto, meno punti per ciascuno verranno assegnati. Un progetto può fare aumentare il voto base fino ad un massimo di 5 punti che dipende dal progetto e che verrà concordato al momento della sua approvazione con il docente.

Eventuali progetti possono essere estesi per tesi di laurea.

Se superata con successo il punteggio della prova scritta può variare dal 15 al 25 a seconda dell’esito del test scritto. Durante la prova orale lo studente potrà migliorare o peggiorare il suo voto fino ad un massimo di 30 e lode.

Testi

“Unity in Action: Multiplatform game development in C#”, Joseph Hocking, terza edizione, Simon and Schuster, 400 pagine

“Machine Learning Yearning”, Andrew Ng

Sul sito del docente (https://nigno17.github.io/teaching/) saranno disponibili le slides mostrate durante il corso (sia delle lezioni teoriche che delle esercitazioni) che contengono puntatori a pagine web dove sono state mostrate alcune note integrative. Inoltre, sarà anche presente il materiale necessario per completare le esercitazioni (template di progetti su Unity e links utili).

Questionario e social

Condividi su:
Impostazioni cookie