PATTERN RECOGNITION Canale unico

Docente coordinatore e verbalizzante: ANTONELLO RIZZI

Obiettivi formativi

CONOSCENZA E COMPRENSIONE. Sono forniti i principi di base sulle tecniche di Pattern Recognition, classificazione e clustering su domini non necessariamente algebrici. Gli studenti che passano la prova finale saranno in grado di leggere e comprendere testi ed articoli su argomenti avanzati nell’ambito del Pattern Recognition.

CAPACITÀ APPLICATIVE. Gli studenti che passano la prova finale saranno in grado di applicare i principi metodologici e gli algoritmi studiati per la progettazione di innovativi sistemi di Pattern Recognition, in contesti multidisciplinari.

AUTONOMIA DI GIUDIZIO. Gli studenti che passano la prova finale saranno in grado di analizzare i requisiti di progettazione e di scegliere il sistema di classificazione che meglio si adatta al caso di studio.

ABILITÀ DI COMUNICAZIONE. Gli studenti che passano la prova finale saranno in grado di compilare un rapporto tecnico e di costruire una opportuna presentazione inerente un qualunque lavoro di progettazione, sviluppo e misura di prestazioni di un sistema di Pattern Recognition.

CAPACITÀ DI APPRENDERE. Gli studenti che passano la prova finale saranno in grado di proseguire in autonomia l’approfondimento dei temi trattati a lezione, realizzando il necessario processo di apprendimento continuo che caratterizza la professionalità in ambito ICT.

Risultati di apprendimento attesi

CONOSCENZA E COMPRENSIONE. Sono forniti i principi di base sulle tecniche di Pattern Recognition, classificazione e clustering su domini non necessariamente metrici. Gli studenti che passano la prova finale saranno in grado di leggere e comprendere testi ed articoli su argomenti avanzati nell’ambito del Pattern Recognition.

CAPACITÀ APPLICATIVE. Gli studenti che passano la prova finale saranno in grado di applicare i principi metodologici e gli algoritmi studiati per la progettazione di innovativi sistemi di Pattern Recognition, in contesti multidisciplinari.

AUTONOMIA DI GIUDIZIO. Gli studenti che passano la prova finale saranno in grado di analizzare i requisiti di progettazione e di scegliere il sistema di machine learning che meglio si adatta al caso di studio.

ABILITÀ DI COMUNICAZIONE. Gli studenti che passano la prova finale saranno in grado di compilare un rapporto tecnico e di costruire una opportuna presentazione inerente un qualunque lavoro di progettazione, sviluppo e misura di prestazioni di un sistema di Pattern Recognition.

CAPACITÀ DI APPRENDERE. Gli studenti che passano la prova finale saranno in grado di proseguire in autonomia l’approfondimento dei temi trattati a lezione, realizzando il necessario processo di apprendimento continuo che caratterizza la professionalità in ambito ICT.

Prerequisiti

Conoscenze di base di Geometria, Algebra, Analisi Matematica, Teoria dei Segnali e dell’Informazione, Fondamenti di Informatica.

Programma dell’insegnamento

Prima parte:
Introduzione al pattern recognition. Problemi di classificazione e clustering.
Capacità di generalizzazione. Deduzione ed induzione. Principio di induzione su spazi normati. La scelta di una metrica. Spazi non-metrici. Misure di prossimità punto-punto, punto-cluster ed intercluster. Distanza di Mahalanobis.
Funzioni di rappresentazione e preprocessing dei dati. Normalizzazione. Trattamento di dati mancanti. Dati discreti nominali e ordinali. La tradizionale pipeline di progettazione in machine learning e pattern recognition.
Algoritmi di clustering k-means e BSAS. Introduzione alla programmazione generica. Il problema della validazione; indice di sensibilità; indici relativi di validazione; indice di Davies-Bouldin; indice Silhouette; algoritmi dipendenti da un parametro di scala; indici di stabilità; algoritmi di clustering ottimizzati; problema di modellamento non supervisionato vincolato e non vincolato. Clustering gerarchico.
Regole di decisione: K-NN e condensed K-NN.
Sistemi di classificazione: misure di prestazione e di sensibilità. Sintesi di modelli di classificazione basata su tecniche di clustering. Classificazione robusta: tecniche di voting. Ensembles of classifiers.
Dati strutturati di prima e seconda specie. Misure di dissimilarità in domini strutturati. Data fusion. Domini a struttura variabile: sequenze di eventi, grafi. Principio di ottimalità di Bellman; distanza di edit (Sequence matching). Misure di dissimilarità in spazi di grafi etichettati (Graph Matching). Algoritmi per la selezione automatica delle caratteristiche.
Introduzione al Granular Computing. Metric learning. Metriche locali. Rappresentazioni in spazi di dissimilarità. Istogrammi simbolici. Data Mining e Knowledge Discovery.
Algoritmi paralleli e distribuiti di machine learning basati su agenti.
Accelerazione hardware su FPGA e GPU.

Seconda parte:
La seconda parte del corso inizia con le basi dell'hardware e del software rilevanti per lo sviluppo di sistemi di riconoscimento di modelli, inclusa una guida dettagliata sulla creazione di un robusto ambiente Anaconda che funge da base per la prototipazione di applicazioni di machine learning. Gli studenti acquisiranno familiarità con gli ambienti di sviluppo integrati e i notebook Jupyter, fondamentali per la programmazione interattiva e la sperimentazione in Python.
Man mano che il corso procede, approfondiamo le librerie Python fondamentali che facilitano il calcolo avanzato e l'analisi dei dati, ponendo le basi per l'esplorazione delle strutture dati principali di Python e la loro applicazione negli scenari classici di machine learning. Oltre a ciò, il corso introduce concetti statistici chiave e strutture probabilistiche alla base del riconoscimento dei modelli, inclusi il teorema di Bayes e i metodi di apprendimento bayesiani. Attraverso sessioni pratiche, gli studenti si confrontano con modelli di apprendimento probabilistici, concentrandosi su concetti come il criterio del massimo a posteriori (MAP) e la stima della massima verosimiglianza. Inoltre, vengono esplorati il Naïve Bayes Classifier, le superfici decisionali e le funzioni discriminanti per i classificatori bayesiani.Le sessioni pratiche nei notebook Python supportano i concetti teorici consentendo agli studenti di applicare le tecniche di classificazione bayesiana in scenari del mondo reale.
L'esplorazione continua con la regressione lineare e logistica, in cui gli studenti imparano a gestire il fenomeno dell'overfitting e a utilizzare tecniche di convalida come la convalida incrociata N-Fold per migliorare l'affidabilità del modello. L'apprendimento per rinforzo viene introdotto come un'area critica dell'apprendimento automatico, distinguendo tra apprendimento supervisionato, non supervisionato e per rinforzo e analizzando i componenti e le strategie fondamentali di questo dominio. Questo segmento mira a fornire agli studenti una solida conoscenza degli algoritmi di apprendimento e delle loro applicazioni pratiche.
Il corso fornisce inoltre uno sguardo approfondito alle tecnologie di deep learning, confrontandole con gli approcci tradizionali di machine learning. Gli studenti esplorano le architetture delle reti neurali, comprese le reti neurali convoluzionali e gli autoencoder, e si impegnano in sessioni pratiche utilizzando notebook Python per implementare questi modelli. Nel contesto dell'elaborazione del linguaggio naturale, il corso affronta approcci sia tradizionali che moderni, concentrandosi sul text mining, sulle tecniche di word embedding e sull'impatto rivoluzionario dei modelli del linguaggio neurale come BERT e GPT-X. Gli esercizi pratici includono il lavoro con transformers su TensorFlow per consolidare la comprensione da parte degli studenti delle tecnologie di elaborazione delle sequenze.
Infine, il corso culmina in un seminario sul framework "The Cheshire Cat", un approccio innovativo allo sviluppo di sistemi di intelligenza artificiale che utilizza modelli linguistici di grandi dimensioni. Ciò include discussioni sui sistemi di Retrieval Augmented Generation rispetto alle tecniche di fine-tuning, integrate da casi di studio per fornire una prospettiva del mondo reale sui costrutti teorici discussi.

Testi di riferimento

Sergios Theodoridis, Konstantinos Koutroumbas, Pattern Recognition, Fourth Edition, Academic Press,
ISBN: 978-1597492720, September 2008.

Dispense e lucidi delle lezioni disponibili sul sito del docente

Modalità di svolgimento

Il corso consiste in lezioni frontali e illustrazione di casi di studio.

Frequenza

E' fortemente consigliata la frequenza.

Modalità di esame

L'esame finale consiste nella valutazione di una tesina. L'argomento è concordato con il docente.

Esempi di domande

Non applicabile

  • Anno accademico2024/2025
  • Corso di studio a cui afferisce l’insegnamentoIngegneria delle Comunicazioni
  • Codice insegnamento1044589
  • Anno e semestre2º anno - 2º semestre
  • TipologiaAttività formative affini ed integrative
  • AmbitoAttività formative affini o integrative
  • SSDING-IND/31
  • Presenza obbligatoriaNo
  • LinguaENG
  • CFU6 CFU
  • Durata complessiva60 ore
  • Distribuzione delle ore36 classroom hours, 24 training hours