- Oggetto:
- Oggetto:
Apprendimento Automatico
- Oggetto:
Machine Learning
- Oggetto:
Anno accademico 2022/2023
- Codice dell'attività didattica
- INF0091
- Docenti
- Roberto Esposito (Titolare)
Rosa Meo (Titolare) - Corso di studi
- [008515] Laurea magistrale in informatica
- Anno
- 1° anno 2° anno
- Periodo didattico
- Primo semestre
- Tipologia
- Di base
- Crediti/Valenza
- 9 CFU - Numero di ore - Number of hours: 56 (in aula) + 16 (in laboratorio)
- SSD dell'attività didattica
- INF/01 - informatica
- Modalità di erogazione
- Tradizionale
- Lingua di insegnamento
- Italiano
- Modalità di frequenza
- Facoltativa
- Tipologia d'esame
- Orale
- Prerequisiti
- Conoscenze elementari di probabilità e statistica, algoritmi, sistemi informativi e basi di dati.
Insegnamenti propedeutici (forniscono le competenze attese in ingresso): Sistemi intelligenti (laurea triennale), Basi di dati (laurea triennale: corso di Basi dati e Sperimentazioni).Basic knowledge of probability, statistics, linear algebra, algorithms, information systems and databases.
Preparatory courses (providing the expected entry skills): Intelligent systems (Bachelor level), Databases (Bachelor level). . - Oggetto:
Sommario insegnamento
- Oggetto:
Obiettivi formativi
Gli obiettivi del corso introdurranno gli studenti al campo dell'Apprendimento Automatico, che unisce competenze di informatica (intelligenza artificiale, algoritmi, ottimizzazione, basi di dati) e statistica. L’acquisizione di competenze di Intelligenza Artificiale, di cui l’apprendimento automatico è una pietra angolare, fa parte degli Obiettivi formativi specifici del CdS in Informatica (LM18), in particolare tra quelli dell’indirizzo orientato ai sistemi per il trattamento dell’informazione.Il corso insegna le differenze tra problemi e modelli e introduce gli studenti ad alcuni modelli popolari nell'Apprendimento Automatico. Il programma del corso consiste di una parte introduttiva (le differenze tra problemi e modelli) seguita dalla discussione di una serie di modelli. I docenti concorderanno con gli studenti quali degli argomenti che seguono inserire nel proprio piano di studi e seguiranno le lezioni relative a quegli argomenti. La classificazione (binaria e multi-classe), l'apprendimento di concetti tramite formule logiche, i modelli ad albero, cenni ai modelli a regole e alla ricerca di sottogruppi (subgroup discovery), i modelli lineari (dei minimi quadrati, la regressione), il percettrone, le Support Vector Machines, i metodi Kernel. Si discute la decomposizione bias-varianza e il problema dell'overfitting. Tratterà i modelli basati su distanza, come i k-nearest neighbors, il clustering basato sulle k-medie, il clustering gerarchico, e basato su densità. L'ultima parte del corso tratta delle misure di validazione dei modelli e della verifica di significatività statistica dei risultati. La parte di laboratorio del corso introdurrà gli studenti a una suite software open source (Scikit Learn in Python) che include gli algoritmi di apprendimento dei modelli visti durante il corso (e molto altro). Con Scikit Learn si svilupperanno sessioni di analisi dei dati usando dataset pubblicamente disponibili.
The objectives of the course will be introduce students to the field of Machine Learning, that merges competencies of computer science (artificial intelligence, algorithms, optimization, databases) and statistics. The acquisition of Artificial Intelligence skills, of which machine learning is a cornerstone, is part of the specific training objectives of the CdS in Informatica (LM18), in particular among those of the address oriented to systems for information processing.
The course will teach the differences between tasks and models and will introduce the students to some of the popular models in Machine Learning. The program of the course will consist in the introductory part followed by a selection of the topics taken from the following list that will be agreed with the teachers on a single-student basis, according to the student's interests. The classification (into two classes and the transformation of a binary classification model into a multiple class model), concept learning by means of logical formulas, tree models and their purposes, hints to rule models and subgroup discovery, linear models (least squares, regression), perceptron, Support Vector Machines, Kernel methods. It will discuss the concept of bias-variance decomposition and the problem of overfitting. It will present the models based on distance, such as k-nearest neighbors, k-means clustering, hierarchical clustering, and density based clustering. The last part of the course discusses the probabilistic models (Naive Bayes, logistic regression and Expectation Maximization clustering), the evaluation of the models and of the statistical significance tests on the results. The laboratory part of the course will introduce the students to a practical open software suite ([Scikit Learn http://scikit-learn.org/stable/] in Python) that includes the algorithms of learning of the models seen during the course (and much more). With Scikit Learn we will approach some sessions of data analysis using some public available datasets.
- Oggetto:
Risultati dell'apprendimento attesi
- CAPACITÀ DI APPRENDIMENTO e CONOSCENZA E CAPACITÀ DI COMPRENSIONE
dei principali modelli di apprendimento automatico. - CONOSCENZA E CAPACITÀ DI COMPRENSIONE dei principali concetti di base di statistica per l'analisi dei dati, quali test di significatività statistica, test di indipendenza.
- CAPACITÀ DI APPRENDIMENTO delle modalità in cui avviene il processo di analisi dei dati.
- AUTONOMIA DI GIUDIZIO nella scelta delle tecniche da adottare in ciascuna fase del processo di analisi dei dati.
- CAPACITA' DI APPRENDIMENTO di un algoritmo di Apprendimento Automatico e di un modello da esso prodotto.
- CAPACITA' DI APPRENDIMENTO di utilizzo di un pacchetto software che implementa gli algoritmi di Apprendimento Automatico e produce modelli di Apprendimento Automatico.
- AUTONOMIA DI GIUDIZIO nella scelta della tecnica di analisi da adottare per un certo insieme di dati.
- CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE nell'analisi di un algoritmo di Apprendimento Automatico e nell'uso di un pacchetto software specializzato allo scopo.
- CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE e ABILITÀ COMUNICATIVE nell'interpretazione e validazione dei risultati dell'analisi e nel comunicare il loro signficato.
-
KNOWLEDGE AND UNDERSTANDING of the main machine learning models.
- KNOWLEDGE AND UNDERSTANDING of the basic statistical knowledge for data analysis, such as statistical significance tests, independence tests.
- APPLYING KNOWLEDGE AND UNDERSTANDING of the modalities in which the data analysis process takes place, and in the use of a software suite for the application of Machine Learning principles and algorithms.
- LEARNING SKILLS in the main Machine Learning models and on the models they produce.
- LEARNING SKILLS in the software suites implementing Machine Learning algorithms and producing Machine Learning models.
- MAKING JUDGEMENTS related to the choice of techniques to be adopted in each phase of the data analysis process.
- MAKING JUDGEMENTS related to the choice of analysis technique to be adopted for a certain set of data.
- APPLYING KNOWLEDGE AND UNDERSTANDING in the analysis of a machine learning algorithm.
- APPLYING KNOWLEDGE AND UNDERSTANDING and COMMUNICATION SKILLS in the interpretation and validation of analysis results and in communicating their meaning.
- CAPACITÀ DI APPRENDIMENTO e CONOSCENZA E CAPACITÀ DI COMPRENSIONE
- Oggetto:
Modalità di insegnamento
Le lezioni in aula sono svolte principalmente con l'ausilio del calcolatore (proiezione di lucidi animati). Le esercitazioni in Laboratorio saranno svolte ad un calcolatore su cui è stato installato il software da sperimentare (Scikit Learn) e sul cui utilizzo lo studente verrà anche valutato in sede di esame. La didattica verrà erogata in presenza, ma verrà garantita la registrazione delle lezioni e i video saranno caricati sulla piattaforma Moodle di apprendimento a distanza. Saranno disponibili forum di discussione per la collaborazione e meeting per la consulenza.
The lectures in class are done mainly with the aid of a computer (with slides). The execizes in laboratory sessions will be done on a computer with a software (Scikit Learn) or on Colab (the same software is available on remote on cloud). The same exercizes will be part of the oral examination. Teaching is in presence but we guarantee video recordings on the Moodle platform of the course. On the same platform some discussions will take place on discussion forums and on online meetings.
- Oggetto:
Modalità di verifica dell'apprendimento
Colloquio orale in cui si verifica l'apprendimento dei contenuti teorici del corso e la sperimentazione sui sistemi e gli algoritmi. GIi esami si svolgono in presenza. Qui sono elencate a titolo d'esempio alcune domande che gli anni scorsi si facevano durante il colloquio.
- Descrivere le principali operazioni di trasformazione tra le features
- Illustrare gli obiettivi dell'apprendimento dei modelli ad albero
- Scrivere lo pseudo-codice di alcuni algoritmi di classificazione o clustering
- Descrivere le misure e tecniche di validazione del processo di classificazione.
- Discutere il significato e gli obiettivi dell'apprendimento di concetti.
- Confrontare alcuni algoritmi per l'apprendimento dei concetti rispetto al loro ``bias''
- Descrivere e confrontare alcuni degli approcci per fare clustering
- Illustrare uno degli esercizi svolti in laboratorio con Scikit Learn
Oral interview in which the learning of the theoretical contents of the course and the experimentation on systems and algorithms is verified. The exams are held in presence. Here are listed by way of example some questions that were asked in previous years during the interview.
- Describe the main transformation operations between features
- Explain the goals of learning tree models
- Write pseudo-code for some classification or clustering algorithms
- Describe the measures and techniques for validating the classification process.
- Discuss the meaning and goals of learning concepts.
- Compare some algorithms for learning concepts against their ''bias''
- Describe and compare some of the approaches to clustering
- Illustrate one of the exercises carried out in the laboratory with Scikit Learn.
- Oggetto:
Attività di supporto
Le esercitazioni con Scikit learn costituiscono un valido ausilio alla verifica della comprensione dei contetti teorici e alla loro messa in pratica.
The laboratory exercizes with Scikit learn constitute a valid tool to the verification of the understanding of the theorical concepts and of their practice.
- Oggetto:
Programma
- Introduzione
- differenza tra problema e modello
- la classificazione binaria e la transformazione di una classificazione binaria ad una multi-classe
- l'apprendimento di concetti tramite formule logiche
- i modelli ad albero, l'apprendimento e i loro obiettivi
- cenni ai modelli a regole,
- cenni sulla ricerca di sottogruppi (subgroup discovery)
- i modelli lineari (dei minimi quadrati, la regressione), il percettrone,
- le Support Vector Machines e i metodi Kernel.
- decomposizione bias-varianza
- overfitting.
- modelli basati su distanza (k-nearest neighbors, clustering k-medie, clustering gerarchico, clustering basato su densità).
- Modelli probabilistici (naive Bayes, Expectation Maximization, regressione logistica) e principio di massimizzazione della vereosimiglianza.
- Validazione dei modelli e verifica di significatività statistica dei risultati.
- Sperimentazione con un sistema reale di analisi dei dati su vari data set: Scikit Learn Nota: L'ordine degli argomenti è indicativo.
- Introduction
- Differences between tasks and models
- Binary classification and transformation of a binary classification model into a multiple class model,
- Concept learning by means of logical formulas,
- Tree models and their purposes,
- Hints on rule models,
- Hints on subgroup discovery,
- Linear models (least squares, regression), perceptron,
- Support Vector Machines and Kernel methods.
- Bias-variance decomposition
- The problem of overfitting.
- Models based on distance, such as k-nearest neighbors
- K-means clustering
- Hierarchical clustering,
- Density based clustering.
- Probabilistic models (naive Bayes, Expectation Maximization, logistic regression)
- Validation and verification of the results on data
- Experiments with a real system on data sets: Scikit Learn.
Note: the order of the topics is indicative.
Testi consigliati e bibliografia
- Oggetto:
- Peter Flach, Machine Learning - The Art and Science of Algorithms that Make Sense of Data, Cambridge University Press, 2012.
Libri di consultazione:
- Data Mining - Practical Machine Learning Tools and Techniques with Java Implementations, (2nd edition), Ian H. Witten, Eibe Frank, Morgan Kaufmann, 2006.
- Machine Learning, Tom Mitchell, McGraw-Hill, 1997.
- A Course in Machine Learning by Hal Daumé III, January 2017, disponibile a: http://ciml.info/
- Oggetto:
Altre informazioni
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwj4-siqtrn-AhUBQvEDHeXaBagQFnoECA0QAQ&url=https%3A%2F%2Fscikit-learn.org%2F&usg=AOvVaw3pidYsGhglQXGDh_4GMetL- Oggetto: