PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Machine learning for IOT

01TXPSM

A.A. 2024/25

Course Language

Inglese

Degree programme(s)

Master of science-level of the Bologna process in Data Science And Engineering - Torino

Course structure
Teaching Hours
Lezioni 36
Esercitazioni in aula 11
Esercitazioni in laboratorio 33
Lecturers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Jahier Pagliari Daniele   Ricercatore a tempo det. L.240/10 art.24-B IINF-05/A 18 5 0 0 1
Co-lectures
Espandi

Context
SSD CFU Activities Area context
ING-INF/05 8 B - Caratterizzanti Ingegneria informatica
2024/25
The course aims to introduce the problems related to the implementation of machine learning applications and algorithms on platforms other than high-performance servers available in the cloud.
The course aims to introduce the problems related to the implementation of machine learning applications and algorithms on platforms other than high-performance servers available in the cloud. Specifically, it introduces the main challenges which arise from the use of portable, low-power devices as (i) the main gateway to collect, pre-process, and exchange raw data, and (ii) as the main hosting node for the inference stages, showing which are the design and optimization techniques available today for App-Developers. This encompasses three main objectives: 1. understand the IoT ecosystems, the IoT/sensor data and how to manage them, the characteristics of the compute architectures available at the edge; 2. how to implement, train, and optimize inference engines that can be ported into a low-power micro-computer (e.g. a smartphone or an embedded sensor); 3. how to let distributed inference nodes communicate each other and/or with a private server.
The contents and the thus the skills acquired at the end of the course include both the hardware aspects of the problem (architectures of "edge" devices) and the software aspects (programming models, protocols and related APIs). The skills acquired will allow a correct understanding of decentralized systems in which the flow of data is processed not only on servers, but rather locally on devices with reduced computational resources and energy.
The contents and thus the skills acquired at the end of the course include both the hardware aspects of the problem (architectures of "edge" devices) and the software aspects (programming models, protocols, and related APIs). The skills acquired will allow a correct understanding of IoT infrastructures in which the flow of data is processed not only on servers but rather locally on devices with reduced computational resources and energy budget. At the end of the course, each student will be able to train, optimize, deploy a ML/DL inference engine on a low-power commercial board, and to implement the data-exchange protocols to communicate raw-data and distilled information among distributed end-nodes.
- Theory and basic concepts of machine-learning - Software programming theories and tools - Object-oriented programming - Basic concepts on computer networks and architectures
- Theory and basic concepts of machine-learning and deep-learning - Software programming theories and tools - Object-oriented programming - Basic concepts on computer architectures and networks
● Hardware [30h]: o Computer architectures used for running and developing "edge" machine learning algorithms: ▪ "quantitative" analysis between single/multi-core microprocessors, microcontrollers, DSP, PLC, GPU, etc. ▪ implications on the programming model o Basic knowledge about sensors: filtering, conversion o understanding, modeling and optimization of non-functional metrics (energy, performance) ● Software [24h]: o Classification and taxonomy of ML [4h]: ▪ real problems in IT-industrial applications ▪ machine-learning algorithms o Distributed software for edge computing [20h] ▪ Event processing / sensor fusion ▪ Management of edge-fog-cloud interfaces (web programming/network programming of IoT protocols - REST response and Publish subscribe) ▪ Microservices design patterns ▪ Cloud/edge workload balancing
The course topics are organized in three main parts: 1. Internet-of-Things: HW and SW technologies adopted on a typical multi-layer IoT architecture, computer architectures used for running and developing "edge" machine learning algorithms, basic knowledge about sensors (sensing technologies, filtering, conversion), modeling of non-functional metrics (energy, performance). 2. Machine and Deep Learning in the IoT: Classification and taxonomy of ML/DL algorithms and methods, industrial framework for model training and optimization, resource-driven model optimization. 3. Data exchange: Distributed software platforms for edge computing, management of edge-fog-cloud interfaces (web programming/network programming of IoT protocols - REST response and Publish subscribe and MQTT), Microservices design patterns, cloud/edge workload balancing. Lab practices will touch upon the above topics, teaching students to implement their own optimization and communication applications using as benchmark real-life use-cases where IoT will be sampled, pre-processed, distilled and communicated with a dedicated server node.
- First Part [8h]: board embedded (e.g., Raspberry, Zynq), configuration of several setting parameters and their exploration, assessment of different FoMs - Second Part [8h]: Management of edge-fog-cloud interface (web/net programming using IoT protocols - REST/ MQTT) - Third Part [8h]: interface with cloud and web services
The structure of the course reflects the organization of the main topics, with three main teaching blocks organized as follows: Part 1 [12h] - IoT (definitions, architectures, challenges, and technologies); Part 2 [23h] - ML/DL inference models (commercial training and optimization frameworks, resource-driven optimization techniques); Part 3 [12h] - Communication protocols and their implementation (how to send/receive data from/to edge/remote servers) Within each block, there are lab sessions [30h] during which students (groups of 2-3 people) can practice with a real software implementation of the "theoretic" concepts and strategies introduced during the regular classes.
Class handouts and additional material will be made available on the course webpage. User guides for lab sessions will be made available as well.
Class handouts and additional material will be made available on the course webpage. User guides and tutorials for lab sessions will be made available as well, including code templates and all the needed tools/library.
Slides; Esercitazioni di laboratorio;
Lecture slides; Lab exercises;
Modalità di esame: Prova scritta (in aula); Elaborato scritto individuale; Elaborato progettuale in gruppo;
Exam: Written test; Individual essay; Group project;
... The final exam consists of a written test and a group project on some the topics addressed during the course
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Written test; Individual essay; Group project;
Learning outcomes - Understanding of the topics covered and specifically of the hardware and software technologies deployed in IoT infrastructures, their main characteristics, and their classification compared to the most common web/cloud applications - Understanding and use of ML/DL algorithm design and optimization tools, with particular attention to non-functional metrics (such as latency, memory, energy, and power consumed) - Ability to recognize and use adequate programming tools and communication protocols to share and distribute data across connected devices. - Ability to design, integrate, and evaluate the main components of a distributed IoT solution using the appropriate programming tools. Rules and procedures for the exam. The exam consists of two mandatory parts: 1. the evaluation of three (3) group projects assigned during the course, one assignment for each of the three main parts of the course, i.e., IoT device programming, ML/DL optimization for edge devices, data exchange protocols); the maximum score for each delivered project is 6 points (total: 18 points). 2. a written test on the theoretical aspects introduced during the course, including numerical exercises and open-ended questions. The time allowed for the test is 1 hours, closed books; the maximum score for this part is 14 points. The final score is the sum of the score obtained in the two parts. A minimum of 6 points at the written test is required for passing. A score of 30 cum laude is awarded for students obtaining more than 31 total points (written test + labs).
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Esporta Word