COMPUTATIONAL INTELLIGENCE Canale unico
Docente coordinatore e verbalizzante: ANTONELLO RIZZI
Docenti
Obiettivi formativi
CONOSCENZA E COMPRENSIONE. Sono forniti i principi di base della progettazione di sistemi automatici per il machine learning (problemi di classificazione, clustering, approssimazione funzionale e predizione) basati su tecniche di Intelligenza Computazionale (reti neurali, logica fuzzy, algoritmi evolutivi). Gli studenti che passano la prova finale saranno in grado di leggere e comprendere testi ed articoli su argomenti avanzati nell’ambito del Soft Computing e dell’Intelligenza Computazionale (Reti neurali, meta-euristiche di ottimizzazione, sistemi fuzzy).
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 machine learning, 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 realizzare una opportuna presentazione finalizzato a documentare un qualunque lavoro di progettazione, sviluppo e misura di prestazioni inerente un sistema di machine learning.
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 della progettazione di sistemi automatici per il machine learning (problemi di classificazione, clustering, approssimazione funzionale e predizione) basati su tecniche di Intelligenza Computazionale (reti neurali, logica fuzzy, algoritmi evolutivi). Gli studenti che passano la prova finale saranno in grado di leggere e comprendere testi ed articoli su argomenti avanzati nell’ambito del Soft Computing e dell’Intelligenza Computazionale (Reti neurali, meta-euristiche di ottimizzazione, sistemi fuzzy).
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 machine learning, 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 realizzare una opportuna presentazione finalizzato a documentare un qualunque lavoro di progettazione, sviluppo e misura di prestazioni inerente un sistema di machine learning.
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, Elaborazione numerica dei segnali.
Programma dell’insegnamento
Prima parte:
Machine Learning. Introduzione al modellamento data driven: soft computing, intelligenza computazionale.
Definizione dei problemi di clustering classificazione, modellamento non supervisionato, approssimazione funzionale, predizione. Capacità di generalizzazione. Deduzione ed induzione. Principio di induzione su spazi normati. Modelli ed algoritmi di apprendimento. La scelta di una metrica ed il preprocessamento dei dati.
Problemi di ottimizzazione. Condizioni di ottimalità. Regressione lineare: algoritmo LSE. Algoritmi numerici di ottimizzazione; algoritmi basati sulla discesa al gradiente. Metodo di Newton.
Principi di logica fuzzy: definizioni, operazioni elementari. Principio di induzione fuzzy. Regole fuzzy
Sistemi di classificazione: misure di prestazione e di sensibilità. Classificatore k-NN. Il neurone biologico ed il sistema nervoso centrale. Perceptron. Reti Feedforward: multi-layer perceptron. Algoritmo Error Back Propagation. Macchine a vettori di supporto (SVM).
Algoritmi di apprendimento automatici. Sensibilità rispetto ai parametri strutturali. Algoritmi costruttivi e di pruning.
Swarm Intelligence. Evolutionary Computation. Algoritmi genetici, Particle Swarm Optimization, Ant Colony Optimization. Selezione automatica delle caratteristiche.
Ragionamento fuzzy. Modus ponens generalizzato; sistemi FIS; procedure di fuzzyficazione e defuzzyficazione. Sistemi ANFIS. Algoritmi di training canonici. Algoritmi avanzati per la sintesi di reti ANFIS: clustering nello spazio congiunto, clustering nello spazio degli iperpiani.
Problemi di predizione e cross-predizione; embedding basato su algoritmi genetici.
Seconda parte:
La seconda parte del corso inizia esplorando le misure di performance, che sono fondamentali per valutare l'efficacia degli algoritmi di apprendimento automatico. Si affronta il problema dell'overfitting, discutendo le misure di complessità strutturale e il criterio del Rasoio di Occam. L'importanza della cross-validation, in particolare la N-fold cross-validation, è un punto focale per garantire la generalizzazione dei modelli. Inoltre, vengono trattati temi specifici legati alla classificazione e all'approssimazione funzionale, come i costi di misclassificazione e le sfide poste da dataset sbilanciati.
Si approfondiscono poi le Support Vector Machines (SVM), un potente strumento di apprendimento supervisionato utilizzato sia per la classificazione che per la regressione. Si esplorano i principi di base delle SVM, come la definizione di vettori di supporto e l'ottimizzazione del margine attraverso un iperpiano ottimale. La formulazione matematica è discussa insieme all'importanza del "kernel trick", che permette alle SVM di affrontare problemi di classificazione non lineare. La soluzione di problemi duali attraverso tecniche di ottimizzazione e le considerazioni pratiche per l'implementazione delle SVM sono parte integrante del modulo.
Nel contesto delle Smart Grids e della gestione energetica, si introduce un modulo specifico sulle tecniche di Computatrional Intelligence per la gestione dei sistemi energetici. Sono trattati argomenti quali la transizione energetica, le microgrids e le energie rinnovabili. Vengono esplorati gli Energy Management Systems (EMS), i sistemi di storage e il loro modellamento e le Comunità Energetiche Rinnovabili (CER), applicando tecniche di Computational Intelligence per ottimizzare la gestione dei flussi energetici. In particolare usando i Sistemi Fuzzy ottimizzati con algoritmi Evolutivi. Si illustra l'uso della Dynamic Programming e dell'ottimizzazione multiobiettivo, con un occhio di riguardo ai sistemi di predizione avanzati come le reti LSTM utili a costituire moduli di predizione efficaci per gli EMS.
Il deep learning occupa una parte significativa del corso, con una panoramica sui principi fondamentali e le differenze tra deep learning, machine learning e intelligenza artificiale. Si analizzano diverse architetture neurali, incluse le reti neurali artificiali (ANN), le reti neurali convoluzionali (CNN) e le reti neurali ricorrenti (RNN), con un focus particolare sulle LSTM per la gestione di dati sequenziali. Si approfondiscono le principali librerie per la sintesi di modelli di deep learning, con focus su TensorFlow. Si approfondisce il concetto di computational lattice e il calcolo del gradiente di strutture di calcolo complesse tramite tecniche di Automatic Differentiation. Una sessione pratica specifica mostra come sintetizzare algoritmi di machine learning e deep learning tramite TensorFlow.
Si introduce il concetto di predizione e forecasting tramite tecniche tradizionali e di deep learning. Si mostra l’importanza della predizione nel contesto dell’ottimizzazione dei sistemi di energia.
Infine, il corso tratta il problema della manutenzione predittiva, esplorando tecniche e modelli per prevedere guasti e ottimizzare la manutenzione nei settori industriali. Si discute l'importanza dell'applicazione di tecniche di machine learning e si analizzano case studies per illustrare le best practices e le sfide nell'implementazione di queste tecnologie.
Testi di riferimento
Kruse, R., Borgelt, C., Braune, C., Mostaghim, S., & Steinbrecher, M. (2016). Computational intelligence: a methodological introduction. Springer.
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 insegnamento1044577
- Anno e semestre2º anno - 1º 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