Machine Learning for Industrial Engineering (Laurea Magistrale in Ingegneria Gestionale)

Foreign students will find related news in the TEACHING section of the English version of this website


AVVISO: corso di nuova attivazione che andrà in aula per la prima volta a febbraio/marzo 2020 (2° semestre) per gli studenti immatricolati nel 2018/2019 e iscritti nel 2019/2020 al 2° anno della Laurea Magistrale in Ingegneria Gestionale. Il corso va a sostituire il precedente "Distributed Learning and Pervasive Computing" ed è comunque aperto ad altri studenti della Facoltà e dell'Ateneo che sono interessati alle tematiche trattate, in quanto NON esistono propedeuticità sostanziali.

  • Obiettivi del modulo e capacità acquisite dallo studente. Il corso fornirà i fondamenti sugli aspetti teorici, tecnici e pratici nella progettazione e implementazione di sistemi di apprendimento automatico per la soluzione di problemi di analisi di segnali, misure e, più in generale, di grandi moli di dati (c.d. big data), basata su tecniche di Intelligenza Computazionale quali apprendimento bayesiano, reti neurali, logica fuzzy, algoritmi evolutivi, etc. L’attenzione sarà concentrata sulle applicazioni nell’ambito dell’Ingegneria Industriale per la soluzione di problemi supervisionati e non supervisionati, in particolare riguardanti ottimizzazione, approssimazione, regressione, interpolazione, predizione, filtraggio, riconoscimento e classificazione. Saranno studiate tecniche di Machine Learning nell'analisi dei materiali, nella progettazione di dispositivi e circuiti, nei sistemi di automazione e controllo, nell'inversione di modelli fisici e di modelli astratti di tipo organizzativo e decisionale, nella gestione delle reti complesse (smart grid, distribuzione energetica e delle merci, reti biologiche e sociologiche, etc.). Nondimeno, saranno introdotte le applicazioni di nuove tecnologie nello sviluppo di sistemi di calcolo innovativi, in primis i calcolatori quantistici, nei quali si rende indispensabile l'utilizzo di algoritmi di intelligenza computazionale e di machine learning per lo sfruttamento efficace e all'avanguardia degli stessi.  L'obiettivo principale del corso è pertanto quello di consentire agli studenti di sviluppare sistemi di apprendimento automatico attraverso un’adeguata formulazione del problema, una scelta appropriata degli algoritmi adatti a risolvere il problema e l'esecuzione di esperimenti in attività di laboratorio per valutare l’efficacia delle tecniche adottate. Durante il corso verranno principalmente esposti i concetti e le idee di base che permettono l'effettivo utilizzo degli algoritmi di Machine Learning nelle applicazioni industriali, piuttosto che la loro formulazione puramente matematica, focalizzando comunque l’attenzione sulla necessità di rendere efficienti tali sistemi dal punto di vista della robustezza numerica, della scalabilità computazionale, nonché della sicurezza, della privacy, della fault-tolerance e della self-organization.
  • Prerequisiti. Fondamenti di fisica e matematica impartiti negli insegnamenti ingegneristici di base.
  • Risultati di apprendimento attesi. Capacità di analisi e soluzione delle problematiche relative a progettazione, realizzazione e test di algoritmi di Machine Learning, con particolare riferimento allo sviluppo in ambiente Matlab/Python/TensorFlow, per la realizzazione di sistemi di apprendimento automatico applicati a problemi di Ingegneria Industriale in ambito gestionale, elettrico, meccanico, logistico, biomedicale e per la formazione di competenze professionali e aziendali capaci di relazionarsi nel contesto tecnico-scientifico del data analytics e della business intelligence. 
  • Programma (provvisorio)
    • Richiami di teoria della stima e dell’informazione. Generalità sul trattamento dei segnali analogici e digitali, segnali aleatori multi-dimensionali, concetti di teoria della stima, metodo della massima verosimiglianza, stima del minimo errore quadratico medio, metodo della massima probabilità a posteriori, elementi di teoria dell’informazione, metodi di ottimizzazione. Serie temporali e dinamiche caotiche.
    • Tecnologie abilitanti. Architetture di calcolo parallelo. Virtualizzazione delle risorse in ambienti di calcolo distribuito, cloud computing. Architetture di comunicazione (WSN, BAN, PAN). Sensori e attuatori: problemi di low-power e low-energy; energy harvesting e self-powering; affidabilità (fault tolerance, fault detection, self-organization). Smart devices: tag RFID/NFC, data loggers e sistemi embedded; smart sensors su dispositivi mobili (smartphones, smart watches, sensori biomedicali, Tablet PC, etc.); wearable computers. Dispositivi e sistemi di calcolo basati su tecnologie emergenti: Ultra Large-Scale Integration (ULSI), nanofotonica, qubit a superconduzione, calcolatori quantistici, chip neuromorfici.
    • Sistemi di apprendimento automatico e intelligenza computazionale. Introduzione all'apprendimento automatico e al modellamento data driven: induzione, regolarizzazione e ottimizzazione strutturale. Analisi e condizionamento dei dati: strutturazione e destrutturazione, estrazione di caratteristiche numeriche, denoising, detrending, normalizzazione. Problemi supervisionati e non supervisionati: ottimizzazione, approssimazione, regressione, interpolazione, predizione, filtraggio, classificazione e clustering. Principi della logica fuzzy: sistemi di inferenza fuzzy, regole fuzzy. Algoritmi di clustering: k-means, BSAS, clustering gerarchico, fuzzy clustering, metodi di selezione automatica del numero di cluster. Algoritmi di classificazione: LDA, QDA, classificatori bayesiani, classificatori fuzzy, alberi decisionali.  Reti neurali: architetture feed-forward, reti neuro-fuzzy, reservoir computing, deep learning. Calcolo evolutivo: algoritmi genetici, ant colony optimization, swarm intelligence. Tecniche di privacy-preserving nell’apprendimento supervisionato e non supervisionato.
    • Studi di caso. Quantizzazione, classificazione, predizione, approssimazione, interpolazione, ottimizzazione e filtraggio di dati logistici, energetici, economici, biomedicali, meccatronici e ambientali. Analisi dei materiali, progettazione di dispositivi, circuiti e sistemi di controllo, inversione di modelli fisici e di modelli astratti di tipo organizzativo e decisionale, gestione delle reti complesse (smart grid, distribuzione energetica e delle merci, reti biologiche e sociologiche). Machine Learning per l’IoT/IoE, apprendimento multi-agente cooperativo e competitivo. Big Data Analytics. Sistemi di apprendimento distribuito. Utilizzo di nodi di calcolo e reti di sensori distribuiti basati su tecnologia Raspberry/Arduino/Galileo.
    • Materiale didattico
      • Appunti e dispense forniti dal docente.
      • Materiale integrativo (lucidi del corso, articoli) disponibili sul sito web.
      • Letture facoltative suggerite:
        • H.T. Kung, R. Sproull, G. Steele, VLSI Systems and Computations, Springer.
        • Principe, N.R. Euliano, W.C. Lefebvre, Neural and Adaptive Systems: Fundamental through simulations, J. Wiley & Sons.
        • B Kosko, Neural Networks and Fuzzy Systems, Prentice-Hall.
        • C. M. Bishop, Neural Network for Pattern Recognition, Oxford University Press.
        • L. Deng, Deep Learning: Methods and Applications, Microsoft Research.
        • E. Ott, Chaos in Dynamical Systems, Cambridge University Press.
        • M. Sipser, Introduction to the Theory of Computation, 3rd Edition.
        • M. Barr, A.J. Massa, Programming embedded systems: with C and GNU development tools, O'Reilly.
        • G. Strang, Linear Algebra and Its Applications, 4th Edition.

    AVVISOper 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.