Circuiti e Algoritmi per il Machine Learning

Laurea Magistrale in Ingegneria Elettronica, Ingegneria delle Comunicazioni

Tutti gli studenti che seguono il corso nell'A.A. 2020/2021 sono pregati di iscriversi IMMEDIATAMENTE in Google Classroom utilizzando la casella di posta "@studenti.uniroma1.it". Il codice per l'iscrizione al corso è csslxxa. Ulteriori informazioni riguardanti le modalità di erogazione del corso a distanza o in modalità mista (blended) sono disponibili nella relativa pagina di e-learning.


ATTENZIONE! Il corso è aperto ad altri studenti della Facoltà e dell'Ateneo che sono interessati alle tematiche trattate, in quanto NON esistono propedeuticità sostanziali.


  • Sito ufficiale del Corso di Laurea in Ingegneria Elettronica

  • Sito ufficiale del Corso di Laurea in Ingegneria delle Comunicazioni

  • Tesi disponibili

  • Obiettivi del modulo e capacità acquisite dallo studente. Attraverso l’introduzione delle nozioni di base riguardanti le problematiche teoriche, tecniche e pratiche di progettazione e realizzazione di circuiti e algoritmi nei sistemi di apprendimento automatico e intelligenza artificiale basati sul learning statistico e data-driven, in architetture di calcolo parallele, distribuite e quantistiche (GPU, TPU, multicore, cloud, etc.), lo studente rafforzerà le conoscenze acquisite nel primo ciclo di studi. Saranno in tal senso approfondite le applicazioni nell'ambito dell’ICT e dell’Ingegneria dell’Informazione per la soluzione di problemi supervisionati e non supervisionati in casi di studio reali, in particolare riguardanti ottimizzazione, approssimazione, regressione, interpolazione, predizione, filtraggio, riconoscimento e classificazione, al fine di elaborare e applicare idee originali anche in un contesto di ricerca. Le capacità acquisite consistono nella soluzione delle problematiche relative a progettazione, realizzazione e test di architetture di calcolo e modelli computazionali, con particolare riferimento allo sviluppo in linguaggio Matlab/Python/Julia/VHDL, per la realizzazione di sistemi di machine learning e intelligenza artificiale in ambienti paralleli, distribuiti e quantistici in un contesto più ampio rispetto al settore di studio della teoria dei circuiti e dell’ingegneria elettronica.

  • Prerequisiti. Conoscenze di base riguardanti la teoria dei circuiti, l'elaborazione dei segnali e l'elettronica digitale.

  • Risultati di apprendimento attesi. Lo scenario delle tecnologie ICT sta rapidamente evolvendo verso sistemi in cui i dispositivi tecnologici che implementano algoritmi di machine learning e intelligenza artificiale costituiscono parte integrante dell’ambiente in cui sono immersi, in particolare nelle reti complesse di sensori e attuatori quali smart grid, IoT, distribuzione energetica e delle merci, reti biologiche e sociologiche, etc. A valle di tale insegnamento, lo studente sarà in grado di comunicare le conoscenze acquisite a interlocutori specialisti e non specialisti nel mondo della ricerca e del lavoro in cui svilupperà le sue successive attività scientifiche e/o professionali. Attraverso una sistematica attività di laboratorio, nel corso della quale saranno considerate le metodologie relative alla progettazione e alla realizzazione di architetture di calcolo parallele e di sistemi di agenti distribuiti per il machine learning e l’intelligenza artificiale, lo studente integrerà le conoscenze acquisite per gestire la complessità dei meccanismi di apprendimento induttivo a partire da informazioni limitate dalla contingenza organizzativa dell’insegnamento.

  • Programma A.A. 2020/2021. Il programma a consuntivo fa riferimento a TUTTO E SOLO quanto presentato, spiegato e discusso durante le lezioni del corso (i.e., non sono incluse per quest'anno le parti colorate in rosso):

        • Brevi richiami sull'elaborazione numerica dei segnali e dell’informazione. Sistemi e segnali tempo-discreti, conversione analogico/digitale (DAC, ADC), trasformata z. Strutture di elaborazione e filtraggio, architetture FIR, IIR e a traliccio, effetti di quantizzazione, processori per DSP.

        • Virtualizzazione delle risorse in ambienti di calcolo distribuiti, cloud computing.

        • Principi di programmazione concorrente, parallela e distribuita. Processi sequenziali e paralleli. Accesso a risorse condivise, primitive di comunicazione e sincronizzazione, inter-process communication, stallo. Tecnologie OpenCL, MPI. Cenni ai linguaggi di programmazione concorrente.

        • Metodi di progettazione di processori vettoriali. Dependence Graph (DG) e analisi delle dipendenze. Proiezione e scheduling, mapping canonico da DG a SFG, esempi. Array sistolici, fused multiply-add (FMA), pipelining, sistolizzazione.

        • Calcolo parallelo su architetture multi-core, FPGA, GPU, TPU.

        • Machine Learning e Intelligenza Computazionale: reti neurali, logica fuzzy e algoritmi evolutivi.

        • Implementazione parallela di algoritmi di clustering e classificazione: C-Means, k-NN.

        • Implementazione hardware di architetture neurali “shallow”. Modelli di riferimento: Multilayer Perceptron (MLP); Radial Basis Function (RBF); Fuzzy Inference System (FIS) e reti neurali ANFIS; Extreme Learning Machine (ELM) o Random Vector Functional-Link (RVFL); Echo State Network (ESN). Vincoli di precisione numerica finita. Vincoli architetturali. Tecniche di virtualizzazione e condivisione.

        • Apprendimento e inferenza di reti neurali “deep” su architetture parallele. Modelli di riferimento: Convolutional Neural Network (CNN); Long Short-Term Memory (LSTM); Gated Recurrent Unit (GRU); Autoencoder e Generative Adversarial Network (GAN); Attention Networks.

        • Tecniche di ottimizzazione e apprendimento distribuito. Topologia e reti di agenti (sensori e attuatori intelligenti). Distributed Average Consensus (DAC), ADMM, algoritmi euristici. Clustering distribuito e classificazione distribuita. Learning distribuito in reti ricorrenti e (stacked) deep.

        • Introduzione al calcolo quantistico. Porte e array quantistici. Algoritmi quantistici per l’ottimizzazione e il trattamento dell’informazione (QFFT, Grover, Schor). Quantum machine learning. Reti neurali quantistiche.

        • Studi di caso per applicazioni parallele e distribuite:

            • quantizzazione, classificazione, predizione, approssimazione, interpolazione e filtraggio di dati meccatronici, biologici, energetici, economici, ambientali e aerospaziali;

            • il caso particolare di Smart Grid, analisi comportamentale e biometria;

            • algoritmi di machine learning in ambiente CUDA, OpenCL, OpenCV, Dlib;

            • apprendimento parallelo in ambiente C, Matlab, Python (TensorFlow, Keras, XLA), Julia;

            • programmazione su architetture multi-core Intel per il Deep Learning (MKL, TBB, MKL-DNN, OpenVINO, oneAPI);

            • implementazione di reti neurali e neurofuzzy su microcontrollori, sistemi embedded e smart sensor;

            • utilizzo di nodi di calcolo e reti di sensori distribuiti basati su tecnologia Raspberry Pi.

    • Calendario appelli A.A. 2020/2021. Gli esami potranno essere sostenuti per appuntamento nel momento in cui si ritiene più opportuno a partire da gennaio 2021; la verbalizzazione avverrà nelle finestre ufficiali previste dal calendario di Facoltà come si seguito riportato:

        • 1° appello ordinario: gennaio 2021

        • 2° appello ordinario: febbraio 2021

        • Appello straordinario: marzo/aprile 2021
          N.B.: Appello riservato a studenti part-time, fuori corso nell’A.A. 2020-2021, studenti genitori, studenti con disabilità e con D.S.A. , studenti che abbiano completato la frequenza di tutti gli insegnamenti dei corsi di studio (studenti laureandi).

        • 3° appello ordinario: giugno 2021

        • 4° appello ordinario: luglio 2021

        • 5° appello ordinario: settembre 2021

        • Appello straordinario: ottobre/novembre 202
          N.B.: Appello riservato a studenti part-time, fuori corso nell’A.A. 2020-2021, iscritti per l’A.A. 2020-2021 al terzo anno della laurea, studenti genitori, studenti con disabilità e con D.S.A., studenti che abbiano completato la frequenza di tutti gli insegnamenti dei corsi di studio (studenti laureandi).

    • Materiale didattico:


AVVISO. Per ogni tipo di comunicazione legata al corso, gli interessati sono pregati di inviarmi una e-mail indicando nell'OGGETTO "Machine Learning IE" e nel testo i seguenti dati: nome, cognome e numero di matricola. Cercherò di rispondere al più presto.