Corso di laurea

Artificial Intelligence And Automation Engineering

Università degli studi di Siena · 20 materie · 0 file condivisi

Ecco tutti i dettagli sul corso di laurea selezionato. Sul UniDocs troverai gli appunti condivisi dagli altri studenti del tuo corso di laurea, ordinati per materia. Ricordati che per poter visualizzare il materiale devi essere registrato al sito e possedere un numero di crediti sufficiente.

Sfoglia il materiale didattico

Con UniDocs hai l'opportunità di studiare insieme a tutto il tuo corso di laurea. Guadagna subito dei crediti, carica il materiale del tuo ultimo esame!
Più condividi, più tempo avrai per studiare con tutta la community!

Materie del corso

Advanced Machine Learning 1° anno · 1° semestre · 6 CFU · ING-INF/05 · 0 file

The goal of the course is to make the students learn about the technologies adopted in advanced machine learning and some of the common applications. In particular, students will learn about theory of deep learning, deep…

Scheda dell'insegnamento

Obiettivi formativi

The goal of the course is to make the students learn about the technologies adopted in advanced machine learning and some of the common applications. In particular, students will learn about theory of deep learning, deep neural learning models for image analysis and image segmentation; generative deep models, multimodal models, models for graph processing.

Programma

The course includes the following topics about modern machine learning. Introduction deep learning and main applications. Theory of deep learning. Models for image classification, including Alexnet, Inception, VGG, ResNet, DenseNet, and their properties. Models for object localization and segmentation, including Unet, Yolo, R-CNN, and their properties. Deep models for image generation (GAN, VAE, Diffusion models, autoregressive models). Multimodal architectures, including CLIP, BLIP, Flamingo. Transformers and their applications to image analysis. Graph neural network: main models (GCN, GraphSAGE, GAT) and how new architectures can be designed. Applications of graph neural networks.

The notions acquired in the graduate courses on fundamentals of informatics and basic notions of machine learning.

Theoretical lectures and practical exercises

Modalità d'esame

An oral exam on the theoretical part. A project, which consists in studying and presenting a paper or in experimenting the technologies described in the course. The oral examination and the project contribute 80% and 20%, respectively, to the final mark.

Testi di riferimento

The course slides, which are available on the course home page on unisi moodle, discuss all the topics presented in the course. A list of the books and papers is available inside the slides.

Codice insegnamento 24992

Artificial Intelligence 1° anno · 2° semestre · 9 CFU · IINF-05/A · 0 file

The goal is giving the fundamentals of symbolic and sub-symbolic AI. Students will learn the implicit and explicit mutual relationships among seemingly unrelated branches of AI (such as parametric and non-parametric…

Scheda dell'insegnamento

Obiettivi formativi

The goal is giving the fundamentals of symbolic and sub-symbolic AI. Students will learn the implicit and explicit mutual relationships among seemingly unrelated branches of AI (such as parametric and non-parametric models, neural networks and probabilistic models, supervised and unsupervised methods, symbolic and sub-symbolic algorithms).

Programma

The subject introduces the fundamental notions of Artificial Intelligence. The subject is split into two sub-categories of interest: symbolic AI and sub-symbolic AI. The contents are: Bayes decision theory, parametric and nonparametric estimation, artificial neural networks, unsupervised learning, problem solving and state-space search, constraint satisfaction problemss.

Maths, stats, and basic CS.

Mostly frontal lectures (+ some case studies + some demos). A block of practical exercise/lab hours (say, 6 hours overall) will complete the course.

Modalità d'esame

The exam is in two mandatory parts, plus a non-mandatory part. The first is a written test. The second part is either a project (for students of Artificial Intelligence and Automation Engineering) or an assignment (for students of Applied Mathematics). The 3rd part (non-mandatory) is an oral exam on proposal by the Instructor, finalized to aiming for a "Cum Laude" grade only. See the official webpage at http://www.dii.unisi.it/~trentin/HomePage.html (click on Teaching Activity) for the details. The written test revolves around notions and concepts that cover the while span of the course and require an in-depth understanding of the subject.

Testi di riferimento

Duda, Hart, Stork "Pattern Classification", Wiley. Other books and the course slides are going to be published on the webpage of the subject (see https://www3.diism.unisi.it/~trentin/HomePage.html)

Codice insegnamento 19652

Big Data 1° anno · 2° semestre · 6 CFU · IINF-05/A · 0 file

Knowledge on the fundamental problems and the technlogies for managing big data. Knowledge on the solutions adopted for the most common applications. Ability to use big data storage and programming frameworks.

Scheda dell'insegnamento

Obiettivi formativi

Knowledge on the fundamental problems and the technlogies for managing big data. Knowledge on the solutions adopted for the most common applications. Ability to use big data storage and programming frameworks.

Programma

1. Introduction to Big Data
Big data and data mining. The 3V and 5V models. Storage and processing of large amounts of data. Reliability and redundancy. Data independence. The Relational Model and data normalization. The technology stack for Big Data.
2. Big Data Technologies
2.1 Storage
Data storage. Local file systems. Storage at large scales. Datacenters. Service Level Agreement and CAP theorem. Object storage. AWS S3. REST APIs and SDKs.
Distributed File Systems. HDFS: files and blocks; physical architecture; data replication; NameNode and DataNodes. Data transfers: read/write operations. HDFS fault tolerance. Hadoop architecture. HDFS interface. Webhdsf and REST API.
2.2 Data representation and validation
Syntax for data representation. The CSV format. XML and JSON. JSON data types and data model. XML: Markup Languages; tags; Document Object Model (DOM); Element nesting; Element attributes; well-formed documents; XML instances; namespaces.
Validation. Type system: logic and lexical value spaces; atomic types and structured types. JSON schema: schema definition, annotations and validation keywords.
XML schema: elements; simple and complex types. Bounds for occurrences. Attributes. Schema definition and target NameSpace.
2.3 Wide Column Stores
Wide column stores. HBase: tables, rows, column families, column qualifiers, cells. Operations on tables. Physical organization: HMaster and RegionServers. Table partitioning: stores, HFiles, HBlocks. Compaction. HBase API.
2.4 Map Reduce
MapReduce: operations map, shuffling, reduce, combine; connecting to input. Functions, tasks, slots. Task management. MapReduce API. The streaming API.
2.5 Spark
Spark. Resilient Distributed Datasets (RDD): creation of an RDD; transformations; actions. RDD methods. Unary RDD Transformations. Pair Transformations. Actions. Spark architecture: executors, tasks, stages, slots. Narrow and wide dependency transformations. SparkSQL. DataFrame. EXPLODE and LATERAL VIEW extensions.
3. Algorithms
3.1 Similar Items
Similar items. Set similarity. k-Shingles. Hash functions. Hashing shingles. Minhashing and Jaccard Similarity. Minhash signatures. Locality Sensitive Hashing (LSH): bands, candidate pairs. Distance measures. Locality Sensitive functions. AND and OR constructions. LSH for cosine distance.
3.2 Frequent Itemsets and Basket Analysis
The market-basket model. Frequent itemsets. Support. Association rules. Confidence and interest. Counting itemsets. The monotonocity property. The A-priori algorithm. The PCY algorithm. Limited-pass algorithms. The SON algorithm. The Toivonen's algorithm.
3.3 Recommendation Systems
Utility matrix. The long-tail phenomenon. Content-based recommendation. Text representation: vector space; Latent Semantic Indexing. User profiles and Preference prediction. Collaborative filtering: user-user and item-item similarity. Hierarchical clustering. Latent factor recommendation.
3.4 Spark MLib
Spark Machine Learning Library (MLlib). DataFrames, Transformers, Estimators, Pipelines, Parameters. Definition, use, persistence of pipelines. Modules in MLlib.

The notions acquired in the graduate courses on fundamentals of informatics, databases and linear algebra. Knowledge of Python programming is suggested.

Theoretical lectures and practical exercitations.

Modalità d'esame

Oral exam consisting in questions on the course contents and in the presentation of a project (studying and presenting a research paper; or practical implementation of the technologies described in the course).

Testi di riferimento

The course slides, which are available on the course web page, discuss all the topics presented in the course. A list of the suggested books is available in the course moodle area.

Codice insegnamento 23103

Bioinformatics 1° anno · 1° semestre · 6 CFU · ING-INF/05 · 0 file

Modulo Bioinformatics: Learn to design systems to solve practical bioinformatics problems. Gain the ability to manage ad hoc computational tools to address molecular biology applications, focusing specifically on DNA,…

Scheda dell'insegnamento

Obiettivi formativi

Modulo Bioinformatics: Learn to design systems to solve practical bioinformatics problems. Gain the ability to manage ad hoc computational tools to address molecular biology applications, focusing specifically on DNA, RNA, and protein sequence analysis.

Programma

Modulo Bioinformatics: Molecular biology and biochemistry
Biological database searches and pairwise alignments
Substitution patterns
Distance-based phylogenetic methods
Character-based phylogenetic methods
Genomics and gene recognition
Prediction of protein and RNA structures
Proteomics
Machine learning tools for Bioinformatics: Unsupervised learning and clustering, neural networks for structured data

Modulo Bioinformatics: Good knowledge of simple machine learning tools to face both classification and prediction problems.

Lectures and laboratory classes.

Modalità d'esame

Modulo Bioinformatics: Practical exam - Use of AI tools for biological data processing (based on existing software) with the possibility of working in team; discussion of the obtained results during the oral exam or alternatively: - Study of some research papers (on a topic previously agreed with the teacher) and preparation of a short oral presentation (max 20 min). Oral exam

Testi di riferimento

Modulo Bioinformatics: D. E. Krane, M. L. Raymer, Fundamental Concepts of Bioinformatics, Benjamin-Cummings Pub. Co., United States, 2003
A. M. Lesk, An Introduction to Bioinformatics, Oxford Press, 3rd ed., 2008
M. Zvelebil, J. O. Baum, Understanding Bioinformatics, Taylor & Francis Group, 2007

Codice insegnamento 20549

Complex Systems 1° anno · 1° semestre · 6 CFU · IINF-04/A · 0 file

The course presents an introduction to complex systems. Moreover, the theory of nonlinear dynamic systems, including bifurcation theory, Lyapunov stability methods, and qualitative analysis, is presented. Students will…

Scheda dell'insegnamento

Obiettivi formativi

The course presents an introduction to complex systems. Moreover, the theory of nonlinear dynamic systems, including bifurcation theory, Lyapunov stability methods, and qualitative analysis, is presented. Students will learn to assess the local and global stability of equilibria through both linearization techniques and direct Lyapunov functions. Algorithms for the simulation of complex dynamics, such as limit cycle oscillations and chaotic behavior, are presented. Several examples of complex systems in discrete and continuous time are tackled, with application to population dynamics, economic, ecological, and biological systems.

Programma

Modeling and analysis of complex systems. Introduction of fundamental mathematical concepts for understanding and analyzing autonomous linear and nonlinear ordinary differential equations. The qualitative analysis of differential equations is emphasized. Criteria and theorems for the asymptotic stability of equilibria using linearization and Hartman-Grobman theorem are presented. Moreover, linear and nonlinear oscillations (limit cycles) are discussed related to bifurcations. Main bifurcations discussed are saddle-node, transcritical, pitchfork and Hopf bifurcations. Additionally, period-doubling in continuous time systems, and flip in discrete-time systems are introduced, in relation to bifurcation cascades and routes to chaos. Chaotic attractors and fractals. Synchronization. Simulation of nonlinear systems. Software tools for the analysis of complex systems: MATLAB. Analysis and simulation of complex systems in multidisciplinary fields: physical, biological, ecological and economic systems. Direct and indirect methods for stability analysis: Lyapunov stability theory. Construction of scalar Lyapunov functions for continuous-time systems. LaSalle’s Invariance Principle for the asymptotic stability of non-strict Lyapunov functions and the identification of attraction basins. Extended Program. 1. Continuous time systems - Linear and nonlinear differential equations - Vector fields, phase space and differential equations - Stability of steady states - Linearization of nonlinear systems - Lyapunov stability theory: Direct (second) method of Lyapunov: positive definite functions and derivative along trajectories. Construction of candidate Lyapunov functions for physical and non-physical systems. LaSalle’s Invariance Principle and basin of attraction estimation - Oscillating solutions of nonlinear systems - Simulations and examples (labs) 2. Discrete time systems - Linear and nonlinear maps - Stability of the fixed points of maps - The logistic map - Iterations of maps (labs) 3. Bifurcations - Saddle-Node bifurcation - Transcritical bifurcation - Pitchfork bifurcation - Hopf Bifurcation - Flip bifurcation - Period doubling bifurcation - Simulations and examples (labs)

Basics on Dynamic Systems, Physics and Mathematics

The course includes theoretical lectures and practical laboratories. The course web site presents detailed information on program, teaching material and organization of the exams.

Modalità d'esame

The student's proficiency is evaluated in two steps. The first step is a written test, which includes the solution of exercises and the answer to theoretical questions. The test requires the use of Matlab. The second step is a Master Seminar of 15 minutes on a subject related to the topics presented during the course. The subject is free and must be chosen by the student.

Testi di riferimento

Steven Strogatz, Nonlinear Dynamics and Chaos, Westview, 2000

Codice insegnamento 24989

Digital Embedded Electronics For Smart Industry 1° anno · 2° semestre · 9 CFU · IINF-01/A · 0 file

This module gives the students the opportunity to get a professional edge by learning how to design industrial measurement systems (mixed-signal hardware + software) aiming at the following technical goals: design of…

Scheda dell'insegnamento

Obiettivi formativi

This module gives the students the opportunity to get a professional edge by learning how to design industrial measurement systems (mixed-signal hardware + software) aiming at the following technical goals:

  • design of automated and/or remotely controlled measurement systems;
  • design of high-bandwidth signal processing units equipped with digital hardware accelerators (FPGAs SoCs), for real-time measurements and control applications;
  • review of measurement data coding and transmission techniques.
    The course combines face-to-face teaching with hands-on lab exercises based on the National Instrument Laboratory Virtual Instrument Engineering Workbench (LabVIEW), a system-design platform and a development environment for a graphical programming language, used in a wide range of industrial fields, including robotics, industrial automation, electrical and electronic measurements, testing and validation, smart sensor networks and image processing.
    The students are guided through the lab experiences using hardware instrumentation, including data-acquisition systems (DAQs) and reconfigurable digital electronic devices (FPGAs).
    Students attending the course are prepared for taking a free of charge final examination to become a NI Certified LabVIEW Associate Developer (CLAD), obtaining a worldwide recognized certificate representing a key opportunity for their employment and future career advancements.
    The course is officially accredited to the National Instruments LabVIEW Academy Programme.

Programma

Design of real-time and non-real-time digital signal processing units; design of remotely controlled measurement systems; review of information coding and transmission methods suitable for the design of industrial distributed measurement systems; design of high bandwidth information processing digital hardware accelerators based on FPGAs, for real-time measurement and control applications. Introduction to Systems on Chips.
Graphical programming concepts: introduction to LabVIEW, design techniques and features. Virtual Instruments (VIs) and hardware interfaces to perform prototype testing, data acquisition, instrumentation control, datalogging, measurement analysis and report generation applications. Advanced VI design techniques: VI Server and object oriented programming, deterministic real-time systems. Introduction to LabVIEW FPGA to extend LabVIEW to field-programmable gate array (FPGA) applications that run on reconfigurable I/O hardware.

Introduction to computer science and electronics

Lectures and lab exercises

Modalità d'esame

Final design project with oral discussion

Testi di riferimento

The course material will be provided by the Lecturer during the course.

Codice insegnamento 23935

Digital Image Processing 1° anno · 1° semestre · 6 CFU · IINF-03/A · 0 file

At the end of this course the student will have learned the basic concepts and techniques for the development of image processing and vision systems. He/she will be able to explain the models and algorithms behind the…

Scheda dell'insegnamento

Obiettivi formativi

At the end of this course the student will have learned the basic concepts and techniques for the development of image processing and vision systems. He/she will be able to explain the models and algorithms behind the operation of medium to high complexity processing chains. He/she will be able to describe the processing chains of various vision and processing systems used in real-world applications, evaluating their effectiveness and possible limitations. The student will acquire the fundamental mathematical and algorithmic tools necessary to address most applications of image processing and vision, taking a rigorous approach to the methods used to conceive and develop reliable and effective solutions. He/she will know advanced techniques of computer vision and will acquire the ability to use them appropriately depending on the problem to be addressed. He/she will be able to read and understand scientific articles in the field, analyzing the topics and evaluating their actual reusability and validity. The application domains are very varied, among others: Medical Imaging, Video-surveillance, Computer Graphics, Video Compression, Industrial Inspection, Multimedia, Human-Computer Interfaces and Multimodal Signal Processing. The technological evolution of HW sensors and architectures for acquisition and processing has produced a large amount of data and today there is undoubted need for automatic tools that allow the analysis, annotation, interpretation and retrieval of the information available in them. In fact, image processing and artificial vision is one of the fastest-evolving ICT area, with applications spreading at a speed never seen in all areas of business and everyday life. The "mission" of this course is to motivate and provide students with that wealth of theoretical knowledge and mathematical tools that enable them to address various real-world issues in those areas where image processing and computer vision can provide adequate, robust and reliable responses. The course will enable them to gain in-depth knowledge of one of the most fascinating areas of Information and Communication Technology.

Programma

The course covers aspects from basics to advanced image processing techniques (P/O, a.k.o., Computer Vision) and focuses on hybrid processing aspects, using classical techniques and machine learning techniques. The main topics covered are: 1) Image formation process (2D and 3D transformations, 3D to 2D projection, color spaces, examples of application to design and sizing of capture systems from functional specifications) 2) segmentation (thresholding, clustering, Convolutional Neural Networks, detection of flat surfaces, examples of application to skin tumours and leaf volume of plants, to cell count and to license plates reading) 3) Introduction to Calibration techniques (Tsai grid, calculation of vanishing points, homography, examples of application: road accident analysis, distance measurements from monocular view) 4) Feature detection and Feature Engineering (cue points and surfaces, invariant descriptors, SIFT, SURF, FAST, HOGH, GIST, Shape features, features for tracking, examples of application to security: anti vandalism, monuments monitoring, people detection and tracking in indoor/outdoor areas) 5) Object Recognition, Statistical Learning (Bag Of Words), Deep Learning (CNN, Yolo, SSD, Visual Transformers) with application to: face detection, pedestrian identification, recognition of three-dimensional objects in stereo and range images, recognition of places 6) Deep Learning techniques for Computer Vision (shallow and deep learning, functional components of a Convolutional Neural Network, supervised training, major deep architectures: VGGNet, GoogleNet, ResNet, DenseNet, MaskNet, GAN, EfficientNet, SqueezeNet, PointNet, examples of application to vision) 7) Motion Estimation and Analysis (Cue tracking and Optical Flow, learning of typical trajectories, detection of anomalies, recognition of underparts, analysis and recognition of actions, fuzzy reasoning, Deep Learning, examples of application to the identification of aggressive acts and to ambient intelligence) The applications analysed refer to realizations actually developed in the Department's VIS-Lab some of which are implemented in market products. Students will thus be able to deal with real operative themes and corresponding implementation solutions.

Even if not mandatory, they are advisable: a basic mathematical knowledge (in particular about linear algebra and signal processing), a propensity towards reasoning and creativity, and good analytical skills

Basically, this course is based on front lessons. Important material will be covered during these lessons. The front lessons use Powerpoint presentations and some Matlab scripts specially prepared to help you understand specific topics. The entire Powerpoint slide set and Matlab scripts will be made available at the beginning of the course in the form of content to be copied to a Digital-Pen. The material provided includes documentary materials in pdf format linked to each course of lessons. Lessons are organized to engage students by encouraging critical interventions, evaluation skills, theoretical understanding, and by trying to stimulate their creative thinking and ability to solve problems. Students will learn basic concepts and principles by developing the ability to evaluate when, where and why a certain method is applicable to the problem they face.

Modalità d'esame

One (optional) assignment involving both analytical and programming tasks: a list of assignments the students can choose from will be made available by the teacher. The students can also suggest a subject by themselves. In that case, they should send a proposal to the teacher with a title, a short description and a reference to a paper on the subject. The optional assignment can be fulfilled in groups of 2 or 3 or individually. The students must study the literature and implement (whole or part of) a method and test it on data/reproduce results available in the literature. The report should be in the form of a scientific report. The course concludes with an oral examination, during which the students will also present the results of their assignment. The purpose of the oral is to verify the level of knowledge that the student has acquired about the main content of the course and its skills in designing, applying knowledge, motivating and describing solutions based on artificial vision and image processing. Each student may decide not to perform the practical assignment and to take the oral exam alone. Students who carry out the assignment will be entitled to a reduction in oral subjects (the reduction will be in the sole judgement of the professor).

Testi di riferimento

Recommended Books 1) R. Szeliski, “Computer Vision: Algorithms and Applications, 2nd ed.”, Springer 2022 2) David A. Forsyth and Jean Ponce, "Computer Vision: A Modern Approach", Pearson Education Limited, 2012. 3) John C. Russ, The Image Processing Handbook 7th Edition, CRC Press, 2016 4) E. R. Davies, "Computer Vision: Principles, Algorithms, Applications, Learning", ACADEMIC PRESS, 2018 5) I. Goodfellow, Y. Bangio, "Deep Learning", The MIT Press, 2016 6) M. Elgendy, “Deep Learning for Vision Systems”, Manning Publications Co., 2020 7) L. Lin, P. Luo, W. Zuo Eds., "Deep Learning for Human Centric Visual Analysis", Springer Nature Singapore Pte Ltd. 2020 8) X. Jiang, A. Hadid, Y. Pang, E. Granger Eds., "Deep Learning in Object Detection and Recognition", Springer Nature Singapore Pte Ltd. 2019 9) Olivier Faugeras, "Three Dimensional Computer Vision", MIT Press, 1993 10) J. F. Peters, "Foundations of Computer Vision: Computational Geometry, Visual Image Structures and Object Shape Detection", Springer Nature, 2018 11) L. Lu, X. Wang, G. Carneiro, L. Yang, "Deep Learning and Convolutional Neural Networks for Medical Imaging and Clinical Informatics", Springer Nature Switzerland AG 2019 Other interesting readings 1) Rafael C. Gonzalez, Richard E. Woods, Steven L. Eddins, "Digital Image Processing Using MATLAB". 2) S. Mallat , "A Wavelet Tour of Signal Processing", Academic Press, 1999 3) H. Venkateswara, S. Panchanathan Eds., "Domain Adaptation in Computer Vision With Deep Learning", Springer Nature, Switzerland, AG 2020 4) Y. Ma, J. Tang, "Deep Learning on Graphs", Cambridge University Press, 2021 5) M. Leordeanu, "Unsupervised Learning in Space and Time: A Modern Approach for Computer Vision using Graph-based Techniques and Deep Neural Networks", Springer Nature Switzerland, AG 2020 6) Z. Wang, "Deep Learning Through Sparse and Low-Rank Modeling", Academic Press, 2019 7) X. Li, M. Wu, Z. Chen, L. Zhang Eds., "Deep Learning for Human Activity Recognition: Second International Workshop, DL-HAR 2020", Springer Nature Singapore Pte Ltd. 2021 8) S. Ansari, "Building Computer Vision Applications Using Artificial Neural Networks", Apress, 2020 9) S. Holden, "Computer Vision: Advanced Techniques and Applications", Clanrye Intl, 2019 10) M. Hassaballah, "Deep Learning in Computer Vision: Principles and Applications", CRC Press Taylor & Francis Group, New York, 2020 11) H. Dong, Z. Ding, S. Zhang, "Deep Reinforcement Learning: Fundamentals, Research and Applications ", Springer Nature Singapore Pte Ltd. 2020 12) N. Singh, P. Ahuja, "Fundamentals of Deep Learning and Computer Vision", BPB BOOK CENTRE, 2020 13) S. Khan, H. Rahmani, S. A. Shah, M. Bennamoun, "A Guide to Convolutional Neural Networks for Computer Vision", Morgan & Claypool 2018

Codice insegnamento 24995

Digital Modelling, Design And Manufacturing 1° anno · 1° semestre · 6 CFU · ING-IND/13 · 0 file

Fundamentals of modelling, design, analysis and manufacturing of mechanical systems.

Scheda dell'insegnamento

Obiettivi formativi

Fundamentals of modelling, design, analysis and manufacturing of mechanical
systems.

Programma

Fundamentals of modelling, design and manufacturing of mechanical
components and systems.
Mechanical systems: main definitions, classification, functions.
Mechanical system representation.
Computer Aided Engineering
Fundamentals of structural and multibody mechanics
Additive manufacturing technologies.

Physics and mathematics basics. Basic mechanics knowledge is also useful.

Lectures and laboratory exercises. Some of the lectures (about 40%) consist in simple design and analysis activities that are carried out by the students in the classroom or in laboratories, supervised by course lecturers.
Software resources for laboratory exercise will be available for students’
personal computers, too.

Modalità d'esame

Oral exam consisting in an interview where the knowledge of course contents, ability to explain them and to apply them in engineering contexts are verified. A part of the exam will consist in the discussion of an essay
(synthesis of a project activity). The project is assigned during the course and can be developed individually or in small groups (2-3 people). In case of part-time students or students that cannot attend the course, the project can be assigned beyond course end, by contacting the lecturers.

Testi di riferimento

For each of the topics, specific bibliography references will be provided
during the course. In some particular cases (e.g. part-time students or students with some specific learning needs) and/or for specific course topics (e.g. software tutorials), links to video-lectures will be provided.

Codice insegnamento 24298

Discrete-Event Systems 1° anno · 2° semestre · 6 CFU · IINF-04/A · 0 file

The course provides students with theoretical and practical tools for modeling and analysis of DES, focusing mainly on applications in automated manufacturing and computer science. Through tutorials and a project,…

Scheda dell'insegnamento

Obiettivi formativi

The course provides students with theoretical and practical tools for modeling and analysis of DES, focusing mainly on applications in automated manufacturing and computer science. Through tutorials and a project, students apply these tools to real-world scenarios.
Contribution to Degree Program Objectives:

  • In-depth knowledge of DES models and theory
  • Ability to build and apply DES models in real-world problems
  • Ability to evaluate validity, effectiveness and costs of innovative solutions in real-world DES
  • Rigor in communicating ideas and solutions in real-world DES applications
  • Critical and autonomous problem-solving skills in the field of DES
    Detailed expected learning outcomes:
  • Model DES both in deterministic and stochastic settings
  • Provide mathematical formulations of analysis problems for DES both in deterministic and stochastic settings
  • Simulate DES models and apply statistical techniques to assess performance
  • Use accurate and rigorous terminology regarding DES
  • Synthesize theoretical and methodological knowledge on DES into a unified view

Programma

Discrete event systems (DES) are systems whose dynamic behavior is driven by asynchronous occurrences of discrete events. Examples can be found in a variety of fields, such as control, computer science, automated manufacturing, and communication and transportation networks. This course introduces several modelling and analysis tools for DES. Emphasis is given to dealing with uncertainty ubiquitous in real-world applications. Students also learn how to simulate DES and evaluate performance.
The following main topics are addressed in the course:

  • Definition of event-driven dynamical systems
  • Untimed models of DES
  • Timed models of DES
  • Stochastic timed models of DES
  • Continuous-time homogeneous Markov chains
  • Stochastic equivalence of DES models
  • Queueing theory
  • Discrete event simulation and performance evaluation

Students are expected to have basic understanding of linear dynamical systems (e.g., state-space representations), and basic knowledge of linear algebra (e.g., matrices, vectors, eigenvectors), probability theory and statistics, including concepts such as total probability rule, independence, conditional probability, random variables, expected value and variance, law of large numbers. Programming experience is recommended but not required.

In-class time is structured into:

  • Lectures (covering theoretical and methodological aspects of DES)
  • Exercise sessions (showing solution strategies for selected written exercises)
  • Lab tutorial sessions (addressing implementation and simulation of discrete-event models)
    Out-of-class work consists of:
  • Individual study (theory and exercises)
  • Group project on modeling, simulation and analysis of a real-world discrete-event system
    A visit to a manufacturing plant will be organized, if possible, to watch practical applications of DES in automated manufacturing.

Modalità d'esame

Assessment is structured as follows (between parentheses the weight assigned to each test):

  • A written test (30%) evaluates modeling skills and the ability to provide mathematical formulations of analysis problems
  • A project work (30%) evaluates modeling skills and the ability to carry out as-is and what-if analysis via simulation
  • An oral test (40%) evaluates the student’s ability to synthesize and discuss the key theoretical and methodological concepts, and the experience made with the project

Testi di riferimento

C.G. Cassandras, S. Lafortune, “Introduction to discrete event systems”. 2nd ed., Springer, 2008.
Link Leganto: https://sbart-unisi.alma.exlibrisgroup.com/leganto/public/39SBART_SBS_MAIN/lists/21129780600003297?auth=LOCAL

Codice insegnamento 19654

Fundamentals Of Machine Learning 1° anno · 1° semestre · 6 CFU · IINF-05/A · 0 file

To acquire the foundations of of the discipline of machine learning, with emphasis on principles to better interpret its evolution. More then providing an overall view on state of the art computational models, the main…

Scheda dell'insegnamento

Obiettivi formativi

To acquire the foundations of of the discipline of machine learning, with emphasis on principles to better interpret its evolution. More then providing an overall view on state of the art computational models, the main objective of the course is fully understand simple models.

Programma

Introduction to learning principles, learning protocols: supervised, unsupervised, semi-supervised, active learning; multitask learning, biological and artificial neurons, neural network architectures, learning principles, biological and artificial neurons, neural network architectures, linear machines, normal equations, cases of well- and ill-position, ridge regression, polynomial regression and Vandermonde equations, notion of regularization, linear-threshold machines, learning in single-layer neural networks, delta error and generalization issues, batch-mode vs on-line modem, linear separability and practical issues, gradient descent convergence in case of linearly-separable examples, loss functions and different role in regression and classification, feedforward neural network, beyond linear-seaprablity, convex and concave set, universal approximation, deep architectures, generalization issues, learning by Backpropagation in feedforward neural network, injection of logic constraints issues, weight initialization, learning rate policies, terminal attraction, learning rate policy based on terminal attraction dynamics.

Basic foundations on mathematics, with emphasis on Calculus and Linear Algebra.

Room and lab lectures

Modalità d'esame

The exam consists primarily in a oral discussion on an assignment and on the notions presented in the course. The assigned project requires the solution through coding in Python. The development of the code is based on numpy and knowledge of more advanced tools is not expected, which is covered in the Neural Networks course. The project must be presented one week before the exam date. The project can be conducted in groups of up to three people. Individual projects are allowed. In any case, each student must present the work done during oral discussion.

Testi di riferimento

Machine Learning, Edition 2
A Constraint-Based Approach
By Marco Gori, Alessandro Betti and Stefano Melacci, 2023
Christopher Bishop, Neural Networks for Pattern Recognition, Springer 2016

Codice insegnamento 24642

Game Theory 1° anno · 2° semestre · 6 CFU · ING-INF/04 · 0 file

The course aims to introduce the methodological bases of game theory and evolutionary game theory. In the first part of the course, the concept of game is introduced as the strategic decision of a player. The game…

Scheda dell'insegnamento

Obiettivi formativi

The course aims to introduce the methodological bases of game theory and evolutionary game theory. In the first part of the course, the concept of game is introduced as the strategic decision of a player. The game outcome depends on the choices of other players which share the same information. In the second part of the course, the evolutionary game theory is introduced. In this case the game is repeated in a large population of players. The ensemble of the decisions will affect the future distribution of strategies inside the population. Finally, the course provides several examples and applications in socio-economic, environmental and engineering fields.

Programma

The theory of games has been introduced to tackle problems ubiquitous in real life, where an individual is making a decision among a set of available choices. The consequences of the decisions depend on the presence of other individuals involved at the same level in the choice process.
The decisions of players are independent one on the other. Moreover, when taking the decision, the players are driven by the goal of maximizing their payoff. This mechanism may give rise to collaborative as well as competitive behaviors in both the static and the dynamic cases.
This course is aimed to present the methodological bases of game theory, introduced by John von Neumann e Oskar Morgenstern in 1944 and then developed by the mathematician John Forbes Nash, Nobel Prize for economics on 1994. Two parts compose the course. The first part is an introduction of games and the methodologies for analyzing and solving the solutions, such as the Nash equilibria. In the second parte the replicator equation, describing evolutionary games is then presented and analyzed. Evolutionary game equation is grounded on the concepts of biological selection and evolution, as introduced by the biologist John Maynard Smith. This theory allows to model iterated games in a population of players and proposes the evolution of the decisions of the population in the short and long time courses.

Elements of decision and utility theory, dynamical systems, statistics and probability.

The course is composed by frontal and laboratory lectures. More specifically, lectures in laboratory will make use of MATLAB scientific computing software. Group activities will be also possible, depending on the interest and the number of students.

Modalità d'esame

The skills reached by the students will be evaluated in two steps. The first step consists of a practical (laboratory) exam, where the competences evaluated regard the calculation of the Nash equilibriums of a game, the derivation of the repplicator equation for the evolutionary games and the analysis of its dynamics. The second phase is an oral exam, where the atudents will be asked to explain the theoretical aspects of game theory and discusses some fields of application. The possibility of developing research projects for single students or groups of them is taken into account and discussed in the last part of the classes.

Testi di riferimento

J. W. Weibull, Evolutionary Game Theory. Cambridge, MA, USA: MIT Press, 1995.
M. Osborne "Introduction to Game Theory", Oxford University Press, USA, 2003.
M. Nowak, "Evolutionary Dynamics", Belknap Press of Harvard University Press, 2006.
C. Mocenni e D. Madeo, “Appunti di Teoria dei giochi e giochi evolutivi”.

Codice insegnamento 22683

High Performance Computer Architecture 1° anno · 1° semestre · 9 CFU · IINF-05/A · 0 file

LEARNING OBJECTIVES: The course provides students with the ability to understand, analyze, and design advanced computing systems and parallel applications. By the end of the course, students will be able to: - Acquire…

Scheda dell'insegnamento

Obiettivi formativi

LEARNING OBJECTIVES: The course provides students with the ability to understand, analyze, and design advanced computing systems and parallel applications. By the end of the course, students will be able to: - Acquire advanced knowledge of high-performance processor architectures, multiprocessor systems, and programming paradigms, including their theoretical foundations and practical implications. - Understand the hardware mechanisms that enable parallelism (e.g., dynamic scheduling, branch prediction, out-of-order execution, coherence protocols) and how they are applied in modern processors. - Analyze and design complex hardware/software systems in distributed and multicore environments, with particular attention to scalability, performance, and reliability. - Apply techniques for performance evaluation of high-performance systems, using both simulators and real programming paradigms. - Design parallel software in shared-memory and distributed environments, integrating knowledge from CUDA, OpenMP, MPI, and dataflow approaches. - Follow and critically assess technological evolution in architectures and parallel programming models, connecting state-of-the-art research to practical innovation. - Apply acquired knowledge to novel solutions presented in the scientific literature, and to the design of new data-intensive and parallel systems. - Evaluate trade-offs among different design alternatives in terms of performance, cost, and technological sustainability. - Communicate technical concepts clearly and rigorously to academic, professional, and industrial audiences, and interact effectively with the research community, through the execution of a small final group project. - Develop lifelong learning skills to continuously update knowledge in the rapidly evolving field of high-performance computing, including the ability to search, select, and study relevant literature, through the execution of a small final group project.

Programma

CONTENTS: Both High-Performance Computer Architecture (9 CFU) and Advanced Computer Architecture (6 CFU): - Introduction to performance evaluation: key metrics for performance, power, and reliability. - Pipeline review and hazards. - Dynamic instruction scheduling and Tomasulo’s algorithm for exploiting multiple arithmetic units. - Branch prediction: speculation of branch condition and branch target; predictor types (bimodal, BHSR, BHT, PHT, two-level adaptive) and advanced predictors (gshare, gselect). - Superscalar and out-of-order execution: processor renaming, instruction window, reorder buffer. - Software methods for extracting instruction-level parallelism. - Introduction to VLIW architectures. - Multiprocessor systems: Flynn’s taxonomy, UMA, NUMA, COMA organizations and associated programming models. - Cache coherence protocols: write update, write invalidate, hybrid protocols; snoopy-based MESI and DRAGON protocols. - Memory consistency models: sequential and relaxed models; ordering of memory accesses. - Vector and multimedia extensions. - Introduction to FPGA-based accelerators. Only High-Performance Computer Architecture (last 3 CFU): - Introduction to parallel programming. Parallelism and performance. - CUDA architecture and programming elements. - Introduction to OpenMP, Cilk, OpenMPI, and Dataflow programming models. - Advanced topics: reconfigurable computing, datacenters.

PREREQUISITES: Computer Architecture. Programming Fundamentals.

TEACHING METHODS: The teaching approach combines theoretical foundations with practical experience to foster knowledge, application, and critical skills. - Lectures: presentation of core concepts, algorithms, and architectural models (develops knowledge and understanding). - Problem-solving sessions: in-class exercises and guided solutions (develops application skills and quantitative evaluation ability). - Laboratory sessions: hands-on work with simulators and programming paradigms to design and test parallel applications (develops practical and design skills). - Group project: small teams design, implement, and document a parallel application, encouraging teamwork, communication, and synthesis skills. - Discussion and feedback: guided discussions on architectural trade-offs, state-of-the-art solutions, and research results (develops judgement and critical thinking). This blended approach ensures students achieve theoretical comprehension, problem-solving capability, critical evaluation skills, communication ability, and independent learning capacity.

Modalità d'esame

DETAILED ASSESSMENT METHODS: Written examination followed by a programming project. The written part (2/3 of the final mark) consists of 4 open questions: 2 regarding the first 1/3 of the course and 2 regarding the second 1/3 of the course. The students are encouraged to take the written part in the midterm written part (given at the end of the first 1/3 of the course) and the final-term written part (given at the end of the second 1/3 of the course). The average of this two intermediate written exams substitutes the written part of the exams for the January-February session, otherwise the student can take the regular written part (4 questions) later. The evaluation includes a group project (1/3 of the final mark), since the last 1/3 of the course covers parallel programming aspects. The group should consist of two or three people maximum and involves programming by using one or more paradigms developed in that part of the course. The working source code and a short report are required to assess such project. The derived version of this course (Advanced Computer Architecture) is mapped on the first 2/3 of the content (6CFU) and the evaluation is the same as in High-Performance Computer Architecture (9CFU) for the written part and followed by an oral examination (still on the first 2/3 of the content). The written (and oral) parts consists of numerical exercises on the high-performance processors (simple pipe, superscalar, Tomasulo’s, vliw, branch-prediction) and on the basic mechanisms for multicore processors like coherence; both in the written and oral parts, there will be open questions on the topic of this syllabus. EVALUATION CIRTERIA: - Completeness and accuracy of theoretical knowledge in architectural concepts. - Ability to apply models and methods to solve quantitative problems and implement correct programming solutions. - Critical analysis of trade-offs between architectural and programming alternatives, with reference to performance, cost, and scalability. - Quality of project work: correctness of implementation, performance evaluation, clarity and rigor of the report. - Communication skills in presenting analyses, solutions, and project outcomes. - Autonomous learning and connection with literature: demonstrated ability to integrate and apply state-of-the-art techniques.

Testi di riferimento

REFERENCE TEXTBOOK: * M. Dubois, M. Annavaram, P. Stenstrom, "Parallel Computer Organization and Design", Cambridge University Press, 2012, ISBN: 978-0-521-88675-8 OTHER TEXTBOOKS: * J.L. Hennessy, D.A. Patterson, "Computer Architecture: A Quantitative Approach" 6th Edition, Morgan Kaufman/Elsevier, 2019, ISBN: 978-0-12-811905-1. * D. Culler, J.P. Singh, A. Gupta, "Parallel Computer Architecture: A Hardware/Software Approach", Morgan Kaufman/Elsevier, 1998, ISBN-10 1558603433. * M.J. Flynn, "Computer Architecture: Pipelined and Parallel Processor Design", Jones and Bartlett Publishers, Inc., 1995, ISBN 0867202041 * David B. Kirk and Wen-mei W. Hwu, "Programming Massively Parallel Processors: A Hands-on Approach", Morgan Kaufmann 3rd ed. (2017) ISBN 978-0-12-811986-0.

Codice insegnamento 19656

Human-Centered Robotics 1° anno · 1° semestre · 6 CFU · IINF-04/A · 0 file

The course provides students with theoretical and practical knowledge to understand and design interaction between humans and robots. Students will learn to critically analyze different types of human–robot interfaces…

Scheda dell'insegnamento

Obiettivi formativi

The course provides students with theoretical and practical knowledge to understand and design interaction between humans and robots. Students will learn to critically analyze different types of human–robot interfaces and apply concepts of force interaction, haptics and virtual/augmented reality to real-world scenarios.
Contribution to Degree Program Objectives:

  • Acquire in-depth knowledge of the main paradigms of human–robot interaction
  • Develop the ability to design, analyze, and evaluate robotic systems centered on human needs
  • Gain methodological rigor in communicating solutions and results in this field
  • Strengthen critical and autonomous problem-solving skills in applications of robotics to health, services, and industry
    Detailed expected learning outcomes:
  • Model and analyze physical and cognitive aspects of human–robot interaction
  • Understand the mathematical and technological foundations of force, manipulation, and haptic systems
  • Design basic human–robot interfaces in real, virtual, and augmented settings
  • Apply theoretical concepts to case studies in medicine, service robotics, and Industry 4.0
  • Communicate results effectively using accurate and rigorous terminology

Programma

Humans and robots will increasingly coexist in the same environments, making human–robot interaction a central topic in human centered robotics and applications. This course explores the fundamental principles of interaction between humans and robots, with a particular focus on human–machine interfaces. Special emphasis is given to manipulative and haptic/tactile interactions, where the human hand and its robotic counterpart represent the primary organs of contact. Interaction scenarios will include real, virtual, and augmented environments, and the course will introduce the theoretical foundations of virtual and augmented reality. Applications will be discussed in several domains, including medical robotics, assistive and service robotics, and industrial contexts such as Industry 4.0.
The following main topics are addressed in the course:

  • Foundations of force interaction and physical human–robot collaboration
  • Principles of robotic manipulation and dexterous hands
  • Haptics and tactile feedback for immersive interaction
  • Fundamentals of virtual and augmented reality
  • Applications of human–robot interaction in medicine, service and industry

Students are expected to have a basic background in linear algebra, dynamic systems, and computer programming. Familiarity with control theory and coding (e.g., MATLAB, Python) is helpful but not strictly required.

The course is organized into:

  • Lectures, introducing theoretical and methodological aspects of human–robot interaction
  • Exercise sessions, aimed at problem-solving and application of theoretical models
  • Practical sessions/labs, exploring the use of haptic devices, robotic hands, and VR/AR interfaces
    Out-of-class activities will include individual study and group work on specific case studies or small projects.

Modalità d'esame

The final assessment consists of:

  • A written test (40%) to evaluate theoretical knowledge and problem-solving skills
  • An oral exam (60%) to evaluate the student’s capacity to synthesize concepts, discuss results, and demonstrate critical understanding

Testi di riferimento

Lecture notes prepared by the instructor and selected scientific papers will be distributed during the course. Additional bibliographic references will be provided to support specific topics.

Codice insegnamento 20546

Industrial Robotics 1° anno · 2° semestre · 6 CFU · IINF-04/A · 0 file

The course provides students with theoretical and practical tools for modeling, planning, and controlling robotic systems in industrial contexts. At the end of the course, students will be able to analyze, design, and…

Scheda dell'insegnamento

Obiettivi formativi

The course provides students with theoretical and practical tools for modeling, planning, and controlling robotic systems in industrial contexts. At the end of the course, students will be able to analyze, design, and implement algorithms for trajectory generation, motion planning, localization, manipulation, and learning-based control, as well as to use the Robot Operating System (ROS) for programming and experimentation. Through hands-on lessons and projects, students will apply these tools to realistic industrial robotics scenarios. Contribution to Degree Program Objectives: In-depth knowledge of advanced robotics models, algorithms, and frameworks Ability to identify, formulate, and solve real-world problems in robot motion, perception, and control Rigor in communicating ideas, methods, and solutions in industrial robotics applications Development of critical and autonomous problem-solving skills in robotics and automation Detailed Expected Learning Outcomes: Explain and compare methods for trajectory generation in operational and joint spaces Design and implement motion planning algorithms, including reactive, map-based, lattice, and RRT approaches Apply localization and SLAM techniques using EKF, Pose-Graph, and Particle Filters Analyze advanced robotic manipulation systems and discuss their applications Implement learning-based control strategies, including SEDS and Linear Parameter Varying Dynamical Systems Operate and program robots using ROS, MoveIt, and the Franka Emika package

Programma

  • Generation of the trajectory. The problem of trajectory generation. Generation of the trajectory in the operative space and in the joint space. Point-to-point trajectory. Trajectory along a sequence of via points. (Theory and Exercises) - Motion planning. Reactive navigation, Map based planning, planning using lattice, RRT. (Theory and Exercises) -Localization. Localization using EKF Creating a Map and SLAM con EKF. SLAM Pose-Graph; Particle Filter (Theory and Exercises) -Advanced manipulation systems (Theory) - Learning for adaptive and reactive robot control. Learning for dynamical systems. Stable estimator of dynamic systems (SEDS), Linear Parameter Varying Dynamical Systems and Modulation. (Theory and Exercises) - Robotic Operative System (ROS). Introduction and basic concepts. Tutorials using TurtleSim. Moveit Tutorials. Franka Emika Package for robotic arm control. (Lab)

Elements of robotics: - Configuration space and rigid body motions. - Kinematics and differential kinematics of serial chain.

In-class time is structured into: - Lectures (covering theoretical and methodological aspects of Industrial Robotics) - Exercise sessions (showing solution strategies for selected written exercises) - Lab tutorial sessions Out-of-class work consists of: - Individual study (theory and exercises) - Student project using ROS - A visit to a manufacturing plant will be organized, if possible, to watch practical applications in automated manufacturing.

Modalità d'esame

Oral exam and project on control of a robotic arm using ROS

Testi di riferimento

Authors: Sciavicco, Siciliano, Villani, Oriolo Title: Robotics: Modeling, Planning and Control Editor: Springer, 2011 Authors: Spong M., Hutchinson S., Vidyasagar M., Title: Robot Modeling and Control Editor: Wiley, 2006 Author: Peter Corke, Title: Robotics, Vision and Control: Fundamental Algorithms in MATLAB Editor: Springer, 2017 Authors: K. Lynch, F. Park Title: Modern Robotics Editor: Cambridge University Press, 2017 Authors: Aude Billard, Sina Mirrazavi and Nadia Figueroa. Title: Learning for Adaptive and Reactive Robot Control Editor: The MIT Press 2022

Codice insegnamento 24641

Language Processing Technologies 1° anno · 1° semestre · 6 CFU · ING-INF/05 · 0 file

Knowledge of formal language theory Ability to design lexical scanners with regular expressions Ability to design context free grammars and to use parser generators Knowledge of Natural Language Processing models and…

Scheda dell'insegnamento

Obiettivi formativi

Knowledge of formal language theory
Ability to design lexical scanners with regular expressions
Ability to design context free grammars and to use parser generators
Knowledge of Natural Language Processing models and tools
Ability to use tools for Language Modeling and Transformer Libraries
Knowledge of Large Language Models (LLMs)
Ability to build language processing pipelines based on LLMs

Programma

Formal Languages
Strings and Languages. Formal definition of language. Grammars. Classification of grammars and languages.
Regular languages. Lexical parsing and regular expressions (REGEX). Regular expressions and finite state automata. The POSIX 1003.2 standard for REGEX. Design of lexical scanners. Use of regex library in python.
Context-free languages. Syntactic parsing: parse trees, ambiguity, top-down and bottom-up parsers. Top-down recursive parsing. LL(1) parsers. Bottom-up shift-reduce parsers. Conflicts in parsing tables. LR(k) grammars and parsers. Construction of bottom-up parsing tables: the case of SLR grammars. The Earley Parser. Use of parser generators: Lark in python.
Natural Language Processing
Words. Lexicons. Morphology: morphemes, affixes, morphotactics, and orthographic rules. The case of English: nouns, verbs, irregular forms. Morphological parsing. Models of morphology by Finite State Automata. Finite State Transducers and implementation of morphological parsers.
Language Models. Statistical Language Models. Generative Language Models. N-gram models. Unigrams and Naive Bayes classifiers. Bigrams. Probability extimation. Brief overview on smoothing a back-off techniques.
Text normalization and tokenization. Byte Pair Encoding (BPE). Word Piece. Tokenizer libraries in python.
Word semantics. Lexical semantics. Senses. Polysemy. Synonymy. Sense hierarchies: hyponymy and hypernymy. Wordnet. Synsets. Structure of relationships in Wordnet. Wordnet in python with NLTK. Wordnet similarity. Distributional semantics. Vector embeddings of words. Word2vec. Continous-Bag-of-Words (CBOW). Continous skip-gram. The library fasttext in python for word embeddings.
Neural Language Models. N-gram neural language models. Models based on Recurrent Neural Networks (RNNs). Long-Short-Term-Memory networks. Stacked and bi-directional RNNs. Sequence generation with causal language models: greedy generation, beam search, sampling. Encoder-decoder networks. Attention.
Transformers. The encoder-decoder architecture. The transformer block. Positional encoding. Multi-head Self-attention. Training and generation. Encoder-based models: Bidirectional Encoder Representations from Transformer (BERT). Decoder-based models: Generative Pre-Trained Transformer (GPT). Large Language Models (LLMs). Pre-Training and Fine-Tuining. LoRA. LLM prompting and alignment. Prompts and prompt templates. Zero-shot and Few-shot learning. Instruction tuning. Chain-of-Thought (CoT) prompting. Reinforcement Learning with Human Feedback (RLHF). Rejection sampling. Direct Preference Optimization (DPO).
Transformers libraries. SentenceTransformer. Hugginface tranformers. AutoClass. Models. Tasks. Pipelines. Training. Question Answering (QA) and Retrieval Augmented Generation (RAG). Chatbots. Langchain. Chat model. Prompt templates. Structured outputs. Chat states. Document. Vector stores. RAG implementation.

Basics of Artificial Intelligence and Machine Learning. Main concepts from probability theory. Basics of programming (python).

Lectures on theory and practical classwork.

Modalità d'esame

Oral exam focused on the discussion of two projects.
1. Project consisting in the development of a parser for a context free language using lark (assigned by instructor). Discussion concerns the design of the grammar and the implemented code. Only code is required. Typical assignment deal with the grammar describing the structure of some programming language instructions.
2. Project consisting in a practical experimentation on an NLP task using the libraries presented in the course (suggested). The project topic is proposed by the student. The project can also be developed in team (2-3 students) depending on its complexity. The project is presented explaining the code, the approach and used models. Slides are not mandatory, but they can be used to support the presentation. The practical project may be replaced by a paper review. The paper may be selected from the ACL anthology. The paper is selected by the student, but requires approval by the instructor. The student must prepare a presentation with a critical discussion on the paper contents.
The exam also includes questions on Formal Languages.

Testi di riferimento

Jurafsky, Daniel and James H. Martin, "Speech and Language Processing: An Introduction to Natural Language Processing, Speech Recognition, and Computational Linguistics," Prentice-Hall
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman, "Compilers: Principles, Techniques, and Tools," Prentice Hall

Codice insegnamento 20550

Machine Learning 1° anno · 1° semestre · 12 CFU · IINF-05/A · 0 file

Acquisire le basi della disciplina del machine learning, con enfasi sui principi per interpretare meglio la sua evoluzione. Oltre a fornire una visione d'insieme sui modelli computazionali all'avanguardia, l'obiettivo…

Scheda dell'insegnamento

Obiettivi formativi

Acquisire le basi della disciplina del machine learning, con enfasi sui principi per interpretare meglio la sua evoluzione. Oltre a fornire una visione d'insieme sui modelli computazionali all'avanguardia, l'obiettivo principale del corso è comprendere appieno modelli semplici.

Programma

Introduzione ai principi di apprendimento, protocolli di apprendimento: apprendimento supervisionato, non supervisionato, semi-supervisionato, attivo; apprendimento multitask, neuroni biologici e artificiali, architetture di reti neurali, principi di apprendimento, neuroni biologici e artificiali, architetture di reti neurali, macchine lineari, equazioni normali, casi di posizione buona e cattiva, regressione di cresta, regressione polinomiale ed equazioni di Vandermonde, nozione di regolarizzazione, macchine a soglia lineare, apprendimento in reti neurali a strato singolo, errore delta e problemi di generalizzazione, modalità batch contro modem online, separabilità lineare e problemi pratici, convergenza della discesa del gradiente in caso di esempi linearmente separabili, funzioni di perdita e diverso ruolo nella regressione e nella classificazione, reti neurali feedforward, oltre la parallelismo lineare, insieme convesso e concavo, approssimazione universale, architetture profonde, problemi di generalizzazione, apprendimento tramite backpropagation in reti neurali feedforward, problemi di iniezione di vincoli logici, inizializzazione del peso, politiche di velocità di apprendimento, attrazione terminale, politica di velocità di apprendimento basata sulla dinamica di attrazione terminale.

Basi in matematica, con enfasi sul Calcolo Differenziale e sull'Algebra Lineare

Lezione in aula e in laboratorio

Modalità d'esame

L'esame consiste principalmente in una discussione orale su un progetto assegnato e sulle nozioni presentate nel corso. Il progetto assegnato richiede la soluzione tramite codifica in Python. Lo sviluppo del codice è basato su numpy e non è richiesta la conoscenza di strumenti più avanzati, che sono trattati nel corso di Reti Neurali. Il progetto deve essere presentato una settimana prima della data dell'esame. Il progetto può essere svolto in gruppi fino a tre persone. Sono ammessi progetti individuali. In ogni caso, ogni studente deve presentare il lavoro svolto durante la discussione orale.

Testi di riferimento

Machine Learning, Edition 2
A Constraint-Based Approach
By Marco Gori, Alessandro Betti and Stefano Melacci, 2023
Christopher Bishop, Neural Networks for Pattern Recognition, Springer 2016

Codice insegnamento 24643

Models And Languages For Bioinformatics 1° anno · 2° semestre · 6 CFU · INFO-01/A · 0 file

To learn the foundations of computational models and programming languages for bioinformatics, a scientific discipline which stands between computer science and biology. To see the main applications of bioinformatics. To…

Scheda dell'insegnamento

Obiettivi formativi

To learn the foundations of computational models and programming languages for bioinformatics, a scientific discipline which stands between computer science and biology. To see the main applications of bioinformatics. To learn some fundamental tools for modeling biological problems and for the implementation of these tools by using some of the most used languages for Systems Biology.

Programma

This course will present some of the most important applicative issues and a few computational models for bioinformatics. The course begins with a short series of seminars on some of the main applications and computational models for bioinformatics. Then it will be shown that constraint logic programming gives rise to a computational programming framework suitable for modeling in a natural way bioinformatic applications. Finally there will be a small course on the programming language Python, which is one of the most widely used languages for biological applications.

Basic knowledge of Programming and Mathematics.

This course consists of a series of seminars on the main applications of bioinformatics, followed by lectures on Constraint Logic Programming, showing how to model some biological problems, and a course on Python programming, with programming practice in the laboratory.

Modalità d'esame

Final written exam on Python programming (this part can be substituted by intermediate written tests), plus oral discussion on some further reading based on the seminars or on a programming project (which can be done also in small groups of students, or individually) in Python, or in Constraint Logic Programming (in any case using a language seen in the course). The project consists of realizing a computational model for one of the biological problems presented in the seminars or during the course. The project can be substituted by a written exam on Prolog programming, which can also be passed by means of some intermediate tests.

Testi di riferimento

1) Dan E. Krane, Michael L. Raymer, Fundamental Concepts of Bioinformatics, Pearson, 2003 2) Python Tutorial, freely available online. http://docs.python.org/2/tutorial/ 3) Notes distributed in the classroom. Additional material for the course (including a tutorial on logic programming) can be found at the following link: http://www3.diism.unisi.it/~falaschi/Teaching/bioinformatics.html

Codice insegnamento 20553

Network Optimization 1° anno · 2° semestre · 6 CFU · MATH-06/A · 0 file

The course provides students with theoretical and practical tools for modeling and solving network optimization problems. At the end of the course students will be able to recognize, formulate and solve network…

Scheda dell'insegnamento

Obiettivi formativi

The course provides students with theoretical and practical tools for modeling and solving network optimization problems. At the end of the course students will be able to recognize, formulate and solve network optimization problems. The solution of the problems will make use of available commercial solvers. Through hands-on lessons and projects, students apply these tools to realistic applications. Contribution to Degree Program Objectives: - In-depth knowledge of network optimization models and theory - Ability to identify, formulate and solve real-world problems as network optimization problems - Rigor in communicating ideas and solutions in real-world network optimization applications - Development of critical and autonomous problem-solving skills in the network optimization field Detailed expected learning outcomes: - Recognize network optimization problems - Provide mathematical formulations of network optimization problems - Implement and solve network optimization problems using python programming language

Programma

The course covers two main aspects: a theoretical and a practical part. - In the theoretical part, models and algorithms for network optimization problems will be introduced. Specifically we will deal with Minimum Spanning Tree, Matching, Maximum Flow and Travelling Salesman Problem. In the theoretical part, emphasis will be put on the formulation of problems as network optimization and on different algorithmic approaches to solve the problems. - In the practical part, we will introduce the python programming language and the NetworkX and Gurobi libraries. Emphasis will be on practical implementation of Mixed Integer Linear Programs for network based problems. The following main topics are addressed in the course: - Introduction to optimization - Minimum Spanning Tree problem - Matching problems - Maximum flow problem - Travelling Salesman Problem - Introduction to python, NetworkX and Gurobi - Implementation of network optimization problems

Students are expected to have basic knowledge of operations research, linear programming. Python programming experience is recommended but not required. However, the course is self contained since all the needed concepts will be reviewed at the beginning of the course.

In-class time is structured into: - Lectures covering network optimization models, theory and applications. - Lab tutorial sessions and hands-on exercise in the lab. Lab sessions provide the ability to identify, formulate and solve real-world problems as network optimization problems using python. Out-of-class work consists of: - Individual study: on theory and coding - Optional group project work: Finally, If some students want an optional group project work can be organized. The optional group project work will allow students to apply the knowledge acquired during the course on a realistic problem thus developing critical thinking and communication skills.

Modalità d'esame

Assessment is structured as follows: - The exam will be only oral and it concerns the knowledge of the theoretical topics introduced in the course. It evaluates the student’s ability to synthesize and discuss the key theoretical and methodological concepts. - The experiences gained in the lab are evaluated by the optional project work and the active participation during the course. They contribute with some bonus points to the final grade.

Testi di riferimento

Classnotes prepared by the instructor. Additional material recorded in the previous years is available.

Codice insegnamento 19658

System Identification And Data Analysis 1° anno · 1° semestre · 12 CFU · IINF-04/A · 0 file

The course provides: the basic notions of estimation theory and system identification, and their applications to real systems; methods and tools for solving state estimation problems arising in a number of different…

Scheda dell'insegnamento

Obiettivi formativi

The course provides:

  • the basic notions of estimation theory and system identification, and their applications to real systems;
  • methods and tools for solving state estimation problems arising in a number of different application fields.
    Contribution to Degree Program Objectives:
  • knowledge of models and algorithms for data analysis and dynamic system identification;
  • ability to apply identification and state estimation techniques for dynamic systems;
  • ability to carry out quantitative assessments on dynamic systems, based on the methodological and technical knowledge acquired;
  • rigor in presenting innovative solutions in the areas of data analysis and system identification.

Programma

**System Identification**
Recall on random variables: CDF/PDF, multivariate distributions, mean/variance, confidence intervals, covariance and correlation, Gaussian variables, functions of random variables, conditional distributions.
Estimation Theory: parametric estimation, estimator properties, performance criteria, Minimum Variance Unbiased Estimator, Cramér–Rao bound, Maximum Likelihood Estimation, nonlinear/linear estimation problems.
Time Series Analysis and Prediction: stochastic processes, key examples (deterministic, white noise, Wiener, exponentially correlated), frequency analysis, linear stochastic systems, MA/AR/ARMA models, ergodicity, spectral factorization, time series prediction.
Parametric Identification: LTI model structures (ARX, ARMAX, OE, BJ), cost function and model selection criteria, least squares estimation, numerical optimization, recursive identification (RLS), model validation (residual analysis), input design.
Use of software tools for system identification (e.g., MATLAB System Identification Toolbox). Extensive laboratory sessions and practical applications under instructor guidance.
**State Estimation and Filtering**
Introduction to stochastic dynamic systems. Dealing with uncertainty. State estimation of linear systems. The Kalman filter. Asymptotic properties of the Kalman filter. State estimation of nonlinear systems. The extended Kalman filter. The continuous-discrete filter. The unscented Kalman filter. Bayesian state estimation and particle filtering. Applications: filtering, sensor fusion, localization, navigation, tracking.
Project work: development of a lab project involving state estimation problems.

Basics of probability and statistics, linear algebra, signals and systems (Laplace/Z-transform), elementary control theory.

Lectures and lab sessions.

Modalità d'esame

**System Identification**
The exam consists of two parts:

  • a homework assignment;
  • an oral exam.
    The homework requires students to solve an exercise individually and to write a report in LaTeX, clearly and concisely documenting the methodology adopted and the results obtained. A passing grade on the homework is required before students can take the oral exam.
    The oral exam consists of a discussion of the homework, together with questions covering all topics addressed during the course, including simple exercises.
    **State Estimation and Filtering**
    The exam is organized in two steps:
    a) a project work which concerns the solution of a state estimation problem arising in a specific application domain;
    b) an oral exam involving the discussion of the project work and questions about all the topics treated during the course.
    A project report explaining the adopted methodologies and the obtained results in a well-documented and concise fashion is required. Such report must be written in LaTeX.
    The final grade will be the average of the grades of the two modules.

Testi di riferimento

  • Lecture notes provided by the instructors
  • A. Papoulis, S.U. Pillai: Probability, random variables, and stochastic processes (4th edition), McGraw-Hill, 2002
  • T. Soderstrom, Discrete-time stochastic systems: estimation and control, Springer, 2002.
  • L. Ljung, System Identification: Theory for the User (2nd edition), Prentice-Hall, 1999.
  • L. Ljung. System Identification Toolbox: Getting started, The Mathworks, 2001.
  • L. Ljung. System Identification Toolbox: User's guide, The Mathworks, 2001.

Codice insegnamento 24996

A Scelta Dello Studente I Anno 6 CFU · 0 file
Scheda dell'insegnamento

Modalità d'esame

Orale

Codice insegnamento 20693

Recensioni del corso

Studi qui? Accedi per lasciare la tua recensione e aiutare altri studenti a scegliere.

★

Nessuna recensione per ora — e la prima è la più preziosa. Condividi la tua esperienza e orienta le future matricole.