Salta al contenuto principale
CODICE 101837
ANNO ACCADEMICO 2022/2023
CFU
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