Obiettivi formativi Questo corso affronterà aspetti della fisica dei terremoti in connessione con il data science e i metodi di intelligenza artificiale per prevedere terremoti di laboratorio utilizzando il machine learning (ML) e il deep learning (DL). Svilupperemo la teoria delle leggi costitutive dell'attrito per le faglie e mostreremo come le emissioni acustiche delle zone di faglia (laboratory foreshocks) possono essere utilizzate per prevedere i terremoti di laboratorio. La fisica dello scorrimento per attrito e la vasta gamma di modalità di scorrimento delle faglie saranno collegati a metodi di apprendimento automatico utilizzati per riconoscere l’occorrenza dei terremoti di laboratorio nei dati di onde elastiche (sismiche, acustiche). La fisica dei cambiamenti precursori nelle proprietà elastiche della zona di faglia sarà sviluppata nel contesto dei metodi ML e DL per prevedere lo stato di stress della zona di faglia, la tempistica e la magnitudo dei terremoti di laboratorio. Gli argomenti includeranno le leggi sull'elasticità, la teoria del fagliamento, le leggi di attrito rate & state, lo stato di stress nella crosta terrestre, le relazioni di magnitudo-frequenza e le leggi di scala dei terremoti, il ciclo sismico e la previsione dei terremoti.
|
Obiettivi formativi Obiettivi generali:
L’obiettivo dell'insegnamento di Architetture per AI è di dare una panoramica delle soluzioni hardware disponibili per esecuzione dei principali algoritmi per AI. Il corso parte dalla descrizione di un architettura di calcolo general purpose, evidenziandone le caratteristiche principali e i limiti prestazionali. In seguito vengono presentate diverse soluzioni hardware per AI utili a superare i limiti delle architetture general purpose. Verranno inoltre introdotti i paradigmi di progammazione relativi alle differenti architetture per AI.
Obiettivi specifici:
Il corso tratta le principali architetture harware utilizzate per AI. In particolare verranno presentate le seguenti architetture:
- Processori Multicore e paradigma di programmazione parallela tramite OpenMP.
- GPU e paradigma di programmazione massivamente parallelo tramite CUDA.
- TPU e programmazione con TensorFlow
- FPGA e programmazione con OpenCL/HLS
Conoscenza e comprensione:
Lo studente acquisirà conoscenza sull’organizzazione delle varie architture hardware utilizzate per AI. Inoltre, lo studente acquisirà conoscenza su come programmare tali architture per eseguire algoritmi per AI.
Applicazione di conoscenza e comprensione:
Lo studente sarà in grado di sviluppare algoritmi per AI su diverse architetture per AI e di valutare le prestazioni ottenibili sulle diverse architetture.
Autonomia di giudizio:
Lo studente sarà in grado di comprendere le problematiche relative alla programmazione ed alle prestazioni ottenibili dai principali algoritmi per AI su diverse architetture hardware.
Abilità comunicative:
Il corso non si propone espliciti obiettivi sulle capacità comunicative, eccetto di formare all'esposizione rigorosa degli argomenti tecnici.
Capacità di apprendimento:
Il corso consente di comprendere le differenze tra le varie architetture per AI e offre fornisce gli strumnenti per poter scegliere l'architettura più adatta a seconda dello scenario applicativo.
|
Obiettivi formativi Obiettivi Generali
Fornire allo studente le nozioni formali fondamentali di due aspetti basilari della preparazione di uno scienziato dell'intelligenza artificiale, la logica matematica e i metodi probabilistici in informatica. A questi due aspetti sono dedicate le due sezioni del corso. La prima parte del corso ha l’obiettivo di introdurre la logica matematica come potente strumento per modellare e ragionare formalmente su diversi aspetti dell’intelligenza artificiale, in particolare la gestione dei dati, la rappresentazione della conoscenza, l'interrogazione e la revisione di dati e conoscenza. La seconda parte del corso intende illustrare alcuni aspetti fondamentali dei metodi
probabilistici in Informatica quali il progetto e l'analisi degli algoritmi probabilistici, i metodi di campionamento e di allocazione probabilistica, i processi stocastici e alcune loro applicazioni all'analisi dei dati e dell’apprendimento automatico.
Obiettivi specifici
Conoscenza e comprensione
Rispetto alla prima parte del corso, lo studente impara le nozioni fondamentali della logica matematica, i principi secondo i quali si giudica la validità degli argomenti, si analizzano le relazioni tra argomenti e si valutano i rapporti inferenziali, come la deduzione, l’induzione e l’abduzione, tra essi. Rispetto alla seconda parte del corso, lo studente impara le nozioni basilari della progettazione degli algoritmi probabilistici e della loro analisi ed acquisisce le basi per applicare tali nozioni al progetto di algoritmi fondamentali in Intelligenza Artificiale, inclusi algoritmi di ricerca e ordinamento, algoritmi su reti e grafi, algoritmi di classificazione, clustering e apprendimento automatico.
Applicare conoscenza e comprensione
Lo studente acquisisce una comprensione profonda del ruolo della logica in vari aspetti dell'intelligenza artificiale e si appropria di conoscenze di base per formalizzare un problema in logica, analizzare teorie logiche e ragionare sulle relative inferenze, costruire teorie logiche per la modellazione di basi di conoscenza di media complessità, specificare in logica interrogazioni di basi di dati e di conoscenza e tradurre in programmi logici la specifica di semplici computazioni.
Lo studente acquisisce una comprensione profonda del ruolo del ruolo della probabilità nel progetto di algoritmi e nell'analisi dei dati e si appropria di conoscenze di base per svolgere analisi di algoritmi probabilistici, definire algoritmi probabilistici per problemi di media complessità, applicare metodi fondamentali quali il metodo di Monte Carlo, le catene di Markov, la programmazione dinamica ed i modelli bayesiani a diversi contesti, come le sequenze, i grafi, le reti, l’apprendimento automatico, la classificazione ed il clustering.
Capacità critiche e di giudizio
Lo studente è in grado di valutare la validità di affermazioni e di argomentazioni, la coerenza di un insieme di assiomi in una base di conoscenza, l’adeguatezza della formulazione di una computazione che estrae dati da una base di dati e di conoscenza, la correttezza di un programma logico rispetto alla specifica di determinate proprietà. Lo studente è in grado di analizzare algoritmi probabilistici, di valutare l’efficacia di metodi probabilistici e di ottimizzazione dinamica a problemi algoritmici e di Intelligenza Artificiale e di giudicare la qualità dell’applicazione di algoritmi di apprendimento automatico, di classificazione e di clustering.
Capacità comunicative
Le attività pratiche e le esercitazioni del corso consentono allo studente di acquisire strumenti cruciali per comunicare e condividere la valutazione critica di strumenti e linguaggi logici e il loro ruolo nell'intelligenza artificiale e dei metodi algoritmici e il loro ruolo in diversi importanti contesti dell'Intelligenza Artificiale.
Capacità di apprendimento
Oltre alle classiche capacità di apprendimento fornite dallo studio teorico delle tematiche di base trattate nel corso, le modalità di svolgimento del corso stesso, in particolare le attività progettuali, stimolano lo studente all'approfondimento autonomo di alcuni argomenti, al lavoro di gruppo e all'applicazione concreta delle nozioni e delle tecniche apprese durante il corso.
|
Obiettivi formativi Obiettivi generali: acquisire le competenze di base per il trattamento numerico delle equazioni differenziali ordinarie ed alle derivate parziali legate allo studio di modelli matematici per alcune applicazioni quali traffico, trattamento delle immagini e visione.
Obiettivi specifici
Conoscenza e comprensione: Gli studenti che abbiano superato l'esame avranno una buona conoscenza di base dei metodi numerici trattati sia dal punto di vista teorico che della loro implementazione e saranno capaci di capire come strutturare gli algoritmi di base per la simulazione dei modelli matematici differenziali.
Applicare conoscenza e comprensione: al temine del corso lo studente sarà in grado di fare delle simulazioni su problemi differenziali stazionari ed evolutivi ottenendo risultati quantitativi per i problemi trattati. Sarà anche capace di progettare e implementare codici che interagiscano in modo appropriato con un potenziale utente attraverso la grafica.
Capacità critiche e di giudizio: lo studente avrà le basi teoriche per analizzare gli algoritmi matematici trattati dal punto di vista della efficienza computazionale, la stabilità e la accuratezza. Da una parte, sarà in grado di applicare le competenze acquisite nei corsi di Algebra lineare, Analisi Matematca per analizzare metodi numerici elementari e da l’altra potrà risolvere numericamente problemi proposti in vari ambiti applicativi.
Capacità comunicative: capacità di esporre e motivare la risoluzione proposta per alcuni problemi scelti in classe, in sessioni di esercitazioni in aula/laboratorio ed nella prova orale prevista alla fine del corso.
Capacità di apprendimento: le conoscenze acquisite permetteranno uno studio, individuale o guidato, in un corso avanzato di analisi numerica per problemi differenziali, relativo ad aspetti più specialistici che richiedono ulteriori conoscenze matematiche. Inoltre lo studente avrà familiarità con diversi elementi informatici come il linguaggio di programmazione, le librerie, i compilatori, i diversi software disponibili in rete che offrono un ambiente di sviluppo integrato sotto diversi sistemi operativi. Queste abilità gli permetteranno sicuramente di imparare con più facilità l’utilizzo di altri software di interesse per il calcolo scientifico e il mondo del lavoro.
|