CODICE 101837 ANNO ACCADEMICO 2022/2023 CFU 5 cfu anno INGEGNERIA ELETTRONICA 8732 (LM-29) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE ING-INF/01 SEDE GENOVA PERIODO 2° Semestre MATERIALE DIDATTICO AULAWEB PRESENTAZIONE Il corso si struttura in due parti principali. La prima riguarda la programmazione avanzata di microncontrollori, con argomenti che spaziano dalla conversione analogico-digitale ai protocolli di comunicazione, dall’utilizzo di schede dedicate (es. MEMS) ai sistemi operativi embedded. La seconda riguarda il machine learning, in particolare il deep learning, con lo studio delle principali tipologie di reti neurali: multilayer perceptron, convolutional networs and recurrent neural network. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI l corso intende fornire gli elementi fondamentali di edge computing, con particolare attenzione alla programmazione avanzata di microcontrollori. I principali argomenti trattati riguardano la conversione analogico-digitale, i protocolli di comunicazione, l’utilizzo di schede dedicate (es. MEMS), i sistemi operativi embedded (FreeRTOS). Particolare attenzione è dedicata anche al machine learning, con una carrellata che parte dall'addestramento di modelli lineari per concentrarsi sul deep learning (con varie versioni di reti neurali: multilayer perceptron, convolutional networs and recurrent neural network). Ogni argomento è trattato attraverso numerosi esempi ed esercizi. Il progetto finale intende far mettere in pratica le conoscenze acquisite e verificare sul campo le capacità progettuali e di sintesi dello studente. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO Il corso intende fornire gli elementi fondamentali di edge computing, con particolare attenzione allo sviluppo di applicazioni su microcontrollore. Gli obiettivi formativi riguardano l'apprendimento delle fondamenta dell'architettura, la gestione delle periferiche, la temporizzazione, la conversione analogico-digitale, i protocolli di comunicazione, l’utilizzo di schede dedicate (es. MEMS), i sistemi operativi real-time embedded. Ogni argomento è trattato attraverso numerosi esempi ed esercizi su scheda Nucleo STM32 F4. Metà del corso è dedicata ad argomenti di machine learning, con una carrellata che parte dall'addestramento di modelli lineari per concentrarsi sul deep learning (con varie versioni di reti neurali: multilayer perceptron, convolutional networs and recurrent neural network). Lo studente sarà chiamato ad analizzare ed addstrare vari tipi di modelli di rete neurale per diverse applicazioni (classificazione/regressione/predizione su dataset, immagini, serie temporali). Il corso propone un progetto, da svolgere singolarmente o in coppia, finalizzato alla messa in pratica ed alla verifica in un caso applicativo delle nozioni presentate in maniera generale/teorica e con esercizi relativamente semplici. I risultati di apprendimento riguardano la realizzazione degli obiettivi formativi di cui sopra, anche attraverso l’implementazione di un progetto. PREREQUISITI Cyber-physical systems Architettura dei calcolatori Fondamenti di programmazione Programmazione orientata agli oggetti MODALITA' DIDATTICHE Lezioni frontali, con utilizzo di slide, ed esercizi svolti sia alla lavagna sia al PC, utilizzando gli strumenti di sviluppo/simulazione indicati a lezione, schede microcontrollore, sensori, componenti elettronici e strumentazione. Proposta, discussione e realizzazione di progetti applicativi. PROGRAMMA/CONTENUTO Microcontrollori Basi (GPIO, Interrupt, DMA) Comunicazione (UART/USART, I2C, SPI) Clock tree Timers ADC/DAC FreeRTOS Gestione della memoria Multitasking Scheduling Code Software timers Interrupt Sincronizzazione (semafori, mutex, eventi) Applicazioni di machine learning / IoT Machine learning Modelli lineari Linear regression Gradient descent Regularization Logistic regression, softmax regression Multi-layer perceptron Le librerie Keras-Tensorflow Sequantial and functional APIs Hyperparameters fine tuning Training deep Neural networks Vanishing/exploding gradients Pre-training/transfer learning Regularization Convolutional neural networks Archtectures Training with Keras Recurrent neural networks Processing time-series LSTM/GRU Wavenet TESTI/BIBLIOGRAFIA C. Noviello, Mastering STM32 https://www.carminenoviello.com/mastering-stm32/ A. Geron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition, O'Reilly https://www.oreilly.com/library/view/hands-on-machine-learning/9781492032632/ https://github.com/ageron/handson-ml2 LEZIONI INIZIO LEZIONI https://easyacademy.unige.it Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME Progetto applicativo da concordare sui docenti MODALITA' DI ACCERTAMENTO La valutazione avverrà nei colloqui preparatori e durante la progettazione/implementazione e nella discussione finale di un elaborato descrittivo del progetto svolto. ALTRE INFORMAZIONI Il corso prevede 50 ore, svolte a metà dai due docenti