Skip to Main Content (Press Enter)

Logo UNINSUBRIA
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Terza Missione
  • Attività
  • Competenze

UNI-FIND
Logo UNINSUBRIA

|

UNI-FIND

uninsubria.it
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  • Terza Missione
  • Attività
  • Competenze
  1. Insegnamenti

SCC1174 - DEEP LEARNING

insegnamento
ID:
SCC1174
Durata (ore):
48
CFU:
6
SSD:
INFORMATICA
Informatica
Anno:
2026
  • Dati Generali
  • Syllabus
  • Corsi
  • Persone

Dati Generali

Periodo di attività

Secondo Semestre (22/02/2027 - 11/06/2027)

Syllabus

Obiettivi Formativi

The course aims to provide students with a solid and up-to-date understanding of Deep Learning, combining theoretical foundations with practical skills for the analysis of complex data such as images and text. Emphasis is placed on modern tools and methodologies widely adopted in research and industry.
By the end of the course, students will have developed proficiency in the Python programming language and in key libraries and frameworks such as PyTorch and NumPy for implementing, training, and evaluating neural network models. Hands-on activities using environments such as Jupyter notebooks will allow them to experiment with different architectures and training strategies.
Students will acquire the ability to manage and preprocess datasets, addressing common challenges such as missing data, class imbalance, normalization, and data augmentation. Preprocessing techniques for both image and text data will be introduced, enabling a structured and autonomous approach to heterogeneous data sources.
The course provides a clear understanding of the fundamental principles of deep learning, including neural network architectures, gradient-based optimization, loss functions, computational graphs, and automatic differentiation.
Building on these foundations, students will study and implement key architectures such as fully connected networks, convolutional neural networks, residual networks, autoencoders, and transformer-based models, learning to select appropriate solutions depending on the application domain.
Advanced topics, including attention mechanisms, transformer architectures, transfer learning, and an introduction to generative models, are also presented to provide insight into state-of-the-art approaches in fields such as computer vision and natural language processing.
A strong emphasis is placed on practical problem solving. Students will learn to design complete deep learning pipelines, evaluate model performance, and critically analyze results, identify limitations, and possible improvements.
Finally, the course fosters transversal skills, including critical thinking, the ability to explore new techniques independently, the capacity to read and understand scientific literature, and the effective communication of technical results using appropriate scientific language.

Prerequisiti

The course assumes basic knowledge of machine learning and artificial intelligence, typically acquired in a first-year master’s course (e.g., Intelligent Systems), including concepts such as supervised learning, model evaluation, and basic optimization.
Students are expected to have experience with at least one programming language; a working knowledge of Python, including basic data structures and libraries such as NumPy, is strongly recommended.
Basic mathematical skills in linear algebra, calculus, and probability are also required to understand how deep learning models are trained and optimized.
Since the course includes practical activities, students should have access to a personal laptop capable of running a Python environment and frameworks such as PyTorch. Familiarity with tools like Jupyter notebooks is helpful but not mandatory. Prior exposure to data analysis or introductory machine learning is beneficial.

Metodi didattici

The course is structured into three main parts, progressively guiding students from the basic tools of deep learning to advanced neural architectures and modern applications.
1. Programming tools and implementation foundations of deep learning
This first part addresses the objective of developing proficiency in the programming tools and frameworks used in deep learning, in particular Python, NumPy, PyTorch, and interactive experimentation environments, while also providing an operational understanding of gradient-based learning principles.
The first part is devoted to programming environments, languages, and tools. Students are introduced to IPython and Jupyter notebooks, which are used throughout the course, as well as to the Python programming language, including its main syntactic constructs and data structures. A Perceptron model is first implemented using basic Python, and then reimplemented with NumPy to highlight the efficiency of array-based computation. This part also provides an intuitive understanding of learning through gradient descent. The course then introduces PyTorch, including computational graphs, automatic differentiation, and different levels of abstraction, with practical implementations of Perceptron and Multi-Layer Perceptron models.
2. Data preprocessing and management
This second part addresses the objective of enabling students to autonomously manage, prepare, and transform data, tackling real-world issues such as class imbalance, missing data, normalization, and the representation of heterogeneous data sources, in particular images and text.
The second part is devoted to data preprocessing. Students learn how to handle unbalanced datasets, apply data augmentation techniques, and perform normalization and missing data management. The course also covers text preprocessing, from tokenization to more advanced techniques, introducing different methods for word representation, including embedding-based approaches capable of capturing semantic relationships.
3. Deep learning models and architectures for images and text
This third part addresses the objectives of understanding the fundamental principles of deep neural networks, implementing and comparing modern architectures, designing complete deep learning pipelines, and developing critical skills for model evaluation and result analysis.
The third part focuses on deep learning models and algorithms. After an introduction to the machine learning workflow, including training/test splits and loss functions, students implement simple neural networks and then explore more advanced architectures. Convolutional Neural Networks (CNNs) are presented for image analysis, including models such as LeNet-5 and AlexNet, together with their training strategies in PyTorch. The course also addresses the vanishing gradient problem and introduces deeper architectures such as ResNet, as well as U-Net and applications of CNNs to text analysis.
Representation learning is further explored through autoencoders, with applications to image reconstruction, denoising, and text context prediction. Transformer-based models are then introduced, with particular attention to attention mechanisms and multi-head attention, showing applications to both images and text, including more recent architectures such as the Swin Transformer.
The course concludes with an overview of generative models and an introduction to transfer learning, highlighting how pre-trained models can be adapted to new tasks.
Throughout the course, theoretical concepts are reinforced through practical exercises, enabling students to develop both a solid understanding and hands-on experience with modern deep learning techniques.

Verifica Apprendimento

The assessment consists of two components: a theoretical test and a project, both aimed at evaluating the student’s understanding of the topics covered during the course as well as their practical application.
The theoretical test is administered through the Moodle platform and includes questions on the main concepts covered during the lectures, with the aim of assessing both knowledge and reasoning skills in the field of deep learning. Each question contributes equally to the overall score of the theoretical test; the score assigned to each question is defined so that the sum of the points obtained in the test corresponds to a grade expressed on a 30-point scale.
The project, assigned by the instructor, focuses on one or more course topics and requires the implementation of deep learning models. Students may either apply existing models to new datasets, with the goal of achieving competitive results, or propose and implement improvements to existing models in order to obtain comparable or better performance.
The project must be accompanied by a report describing the problem addressed, the relevant related work, the adopted methodology, and the results obtained. Students are expected to justify their choices regarding the models used, the data employed, and the experiments conducted. The use of a Jupyter notebook (or its HTML export) as a structured and reproducible form of report is strongly encouraged.
The project must be submitted approximately five days before the exam date; otherwise, it may be presented in a later exam session. The project discussion may take place after the theoretical test.
The final grade is computed as the arithmetic mean of the theoretical test score (50%) and the project score (50%). No minimum score is required for either of the two components, provided that the final grade is not lower than 18/30, which is the minimum passing grade.
Honours (cum laude) may be awarded to students who achieve the maximum score of 30/30 and demonstrate outstanding quality in their project work, in terms of originality, methodological rigour, critical depth of analysis, or the particular significance of the results obtained.

Contenuti

Il corso è strutturato in tre parti principali, che guidano progressivamente gli studenti dagli strumenti di base del deep learning fino alle architetture neurali avanzate e alle applicazioni moderne.
1. Strumenti di programmazione e fondamenti implementativi del deep learning
Questa prima parte risponde all’obiettivo di sviluppare padronanza degli strumenti di programmazione e dei framework utilizzati nel deep learning, in particolare Python, NumPy, PyTorch e gli ambienti interattivi di sperimentazione, fornendo al tempo stesso una comprensione operativa dei principi di apprendimento basati sul gradiente.
La prima parte è dedicata agli ambienti di programmazione, ai linguaggi e agli strumenti. Gli studenti vengono introdotti a IPython e ai Jupyter notebook, utilizzati durante tutto il corso, e al linguaggio di programmazione Python, comprese le sue principali strutture sintattiche e dati. Viene inizialmente implementato un modello di Perceptron usando Python di base, per poi reimplementarlo con NumPy, così da evidenziare l’efficienza del calcolo basato su array. Questa parte fornisce inoltre una comprensione intuitiva dell’apprendimento tramite gradient descent. Successivamente, il corso introduce PyTorch, inclusi i grafi computazionali, la differenziazione automatica e i diversi livelli di astrazione, con implementazioni pratiche di modelli Perceptron e Multi-Layer Perceptron.
2. Preprocessing e gestione dei dati
Questa seconda parte risponde all’obiettivo di rendere gli studenti autonomi nella gestione, preparazione e trasformazione dei dati, affrontando problematiche reali quali sbilanciamento delle classi, dati mancanti, normalizzazione e rappresentazione di dati eterogenei, in particolare immagini e testo.
La seconda parte è dedicata al preprocessing dei dati. Gli studenti imparano a gestire dataset sbilanciati, ad applicare tecniche di data augmentation e a effettuare normalizzazione e gestione dei dati mancanti. Il corso affronta anche il preprocessing del testo, dalla tokenizzazione fino a tecniche più avanzate, introducendo diversi metodi di rappresentazione delle parole, inclusi approcci basati su embedding in grado di catturare relazioni semantiche.
3. Modelli e architetture di deep learning per immagini e testo
Questa terza parte risponde agli obiettivi di comprendere i principi fondamentali delle reti neurali profonde, implementare e confrontare architetture moderne, progettare pipeline complete di deep learning e sviluppare capacità critiche nella valutazione dei modelli e nell’analisi dei risultati.
La terza parte riguarda i modelli e gli algoritmi di deep learning. Dopo un’introduzione al flusso di lavoro del machine learning, inclusi training/test split e funzioni di loss, gli studenti implementano semplici reti neurali per poi esplorare architetture più avanzate. Le Convolutional Neural Networks (CNN) vengono presentate per l’analisi di immagini, includendo modelli come LeNet-5 e AlexNet, insieme alle relative strategie di addestramento in PyTorch. Il corso affronta inoltre il problema del vanishing gradient e introduce architetture più profonde come ResNet, oltre a U-Net e alle applicazioni delle CNN all’analisi del testo.
L’apprendimento delle rappresentazioni viene approfondito attraverso gli autoencoder, con applicazioni alla ricostruzione di immagini, al denoising e alla previsione del contesto nei testi. Vengono poi introdotti i modelli basati su Transformer, con particolare attenzione ai meccanismi di attenzione e alla multi-head attention, mostrando applicazioni sia alle immagini sia al testo, incluse architetture più recenti come lo Swin Transformer.
Il corso si conclude con una panoramica sui modelli generativi e con un’introduzione al transfer learning, evidenziando come modelli pre-addestrati possano essere adattati a nuovi compiti.

Lingua Insegnamento

INGLESE

Altre informazioni

The teacher receives students by appointment, upon request sent by e-mail to name.surname@uninsubria.it. The teacher responds only to e-mails signed and coming from the students.uninsubria.it domain.

Corsi

Corsi

MATEMATICA 
Laurea Magistrale
2 anni
No Results Found

Persone

Persone

GALLO IGNAZIO
Settore INFO-01/A - Informatica
PE6_11 - Machine learning, statistical data processing and applications using signal processing (e.g. speech, image, video) - (2020)
Goal 3: Good health and well-being
Gruppo 01/INFO-01 - INFORMATICA
Goal 4: Quality education
AREA MIN. 01 - Scienze matematiche e informatiche
Goal 9: Industry, Innovation, and Infrastructure
PE6_7 - Artificial intelligence, intelligent systems, multi agent systems - (2020)
PE6_8 - Computer graphics, computer vision, multi media, computer games - (2020)
Ricercatori
No Results Found
  • Accessibilità
  • Utilizzo dei cookie

Realizzato con VIVO | Designed by Cineca | 26.7.2.0