- Oggetto:
- Oggetto:
Apprendimento Automatico - Parte A
- Oggetto:
Machine Learning - A
- Oggetto:
Anno accademico 2023/2024
- Codice dell'attività didattica
- INF0098
- 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
- Caratterizzante
- Crediti/Valenza
- 6 CFU - Numero di ore - Number of hours: 48 (in aula)
- 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). . - Mutuato da
- Apprendimento Automatico (INF0091)Corso di laurea magistrale in Informatica
- Apprendimento Automatico (INF0091)
- 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 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) o su Colab (lo stesso software disponibile sul cloud, in remoto). 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 held maily with the aid of a computer (using slides).
The baoratory exercizes are held on a computer on a software suite (Scikit Learn) or on Colab (the same software is available on remote on cloud) on which the student will be also tested at the final exam.Teaching is in presence, but the teacvhers will guarantee reording of the lectures and the videos will be uploaded on the Moodle platform for e-learning.
teachers will share discussion forums for the collaboration and meeting for counselling.- 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 exam in which the teachers test the understanding of the theoretical concepts taught during the leactures and the experimentation in laboratory on the software system, the implemented algorithms and produced models.
The exams will be in presence. We list here as a form of exemplification, some questions the teacxhers did during the oral exams.
# Describe the main operations of features transformation.
# Describe the goals of the Machine Learning models organized under the form of a tree.
# Write the pseudo-code of some algorithms of classification or clustering
# Describe the measures and validation techniques of the classification process
# Discuss the meaning and the goals of the task of concept learning
# Compare some algorithgms for concept learning in terms of their ``bias''
# Describe and compare some approaches for performing clustering
# Describe and discuss some of the exercizes developed in class duting the laboratory sessions with Scikit Learn.
- Oggetto:
Attività di supporto
Le esercitazioni con scikit learn costituiscono un valido ausilio alla comprensione e alla messa in pratica dei concetti teorici.
The exercizes with scikit learn are a valid axiliary tool to the understanding, learning and application of the theoretical concepts taught during the course.
- 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à).
- 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.
- 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:
Note
- Oggetto:
Altre informazioni
https://www.google.com/search?client=safari&rls=en&q=sci+kit+learn&ie=UTF-8&oe=UTF-8- Oggetto: