Obiettivi formativi
L'obiettivo dell'insegnamento è fornire conoscenze teoriche e pratiche di base su alcuni algoritmi di Apprendimento Automatico e Calcolo Evolutivo, finalizzati a risolvere problemi di classificazione e di analisi di dati.
I metodi descritti nel corso permetteranno agli studenti di:
1. apprendere ed usare algoritmi di apprendimento induttivo
- apprendere ed usare le reti neurali e altri modelli di apprendimento automatico
- apprendere ed usare algoritmi di calcolo evolutivo
Prerequisiti
Conoscenze di base di algebra lineare e teoria delle probabilità, come quelli tipicamente offerti nei corrispondenti corsi della laurea triennale
Contenuti dell'insegnamento
Lezioni:
- Principi dell'Apprendimento Automatico
- Apprendimento Supervisionato
Alberi di Decisione
Algoritmi di Bagging/Boosting
Reti Neurali
Principi di Deep Learning
Support Vector Machines
- Apprendimento non supervisionato
Clustering
Reti neurali: algoritmi non supervisionati
- Calcolo Evolutivo
Algoritmi Genetici
Programmazione Genetica
- Swarm Intelligence
Esercitazoni:
1. Alberi di Decisione / kNN
2. Clustering
3. Reti Neurali non supervisionate
4. Reti Neurali Convolutive
5. Algoritmi genetici
6. Programmazione Genetica
- Particle Swarm Optimization
Programma esteso
Parte 1: Introduzione
Lezione 1: Come preparare un esperimnto di Apprendimento Automatico.
Lezione 2: Classificazione basata su apprendimento / Valutazione della qualità della classificazione
Lezione 3: Introduzione a WEKA
Parte 2: Alberi di Decisione
Lezione 4: Alberi di Decisione
Lezione 5: Bagging e Boosting
Lezione 6: Support Vector Machines
Parte 3: Clustering
Lezione 7: Fondamenti di clustering supervisionato e non supervisionato: K-means / Isodata
Parte 4: Neural Networks
Lesson 8: Introduzione alle reti neurali
Lezione 9: Algoritmi supervisionati: l'algoritmo di Backpropagation
Lezione 10: Reti auto-organizzanti di Kohonen (SOM) and Learning Vector Quantization (LVQ)
Lezione 11: Nozioni di Deep Learning
Parte 4: Calcolo Evolutivo
Lezione 12: Principi
Lezione 13: Algoritmi Genetici e Programmazione Genetica
Lezione 14: Particle Swarm Optimization (PSO)
Lezione 15: Questioni aperte e principali linee di ricerca
Esercitazioni:
Esercitazione 1: Uso di WEKA
Esercitazione 2: Alberi di Decisione / kNN
Esercitazione 3: Clustering
Esercitazione 4: Reti neurali supervisionate
Esercitazione 5: Reti Neurali non supervisionate
Esercitazione 6: Algoritmi Genetici
Esercitazione 7: Programmazione Genetica
Esercitazione 8: Particle Swarm Optimization
Esercitazione 9: Il gioco della formica
Bibliografia
[1] L. Vanneschi, S. Silva, “Lectures on Intelligent Systems” Springer, 2023
[2] C. W. Therrien, "Decision, estimation and classification" Wiley, 1989
[3] C. M. Bishop "Pattern Recognition and Machine Learning", Springer, 2006.
[4] R O Duda, P, E. Hart, D. G. Stork, "Pattern classification", 2nd Ed., Wiley, 2001
[5] A. Eiben, J. Smith "Introduction to Evolutionary Computing", 2nd ed., Springer, 2015.
[6] A.P. Engelbrecht "Computational Intelligence: An Introduction", 2nd. Edition, Wiley, 2007
Metodi didattici
30 ore di insegnaemento in aula. 18 ore di pratica in laboratorio o in aula sui PC degli studenti.
Vengono assegnate delle esercitazioni da svolgere a casa non obbligtoriamente, in preparazione per la prova scritta.
Modalità verifica apprendimento
Prova scritta:
domande a risposta aperta sugli argomenti teorici del corso e le corrispondenti esercitazioni.
Dopo avere superato la prova scritta, gli studenti dovranno svolgere un progetto, consistente nello sviluppo di un'appliczione basata su metodi di Apprendimento Automatico. Gli studenti dovranno far una presetazione del progetto svolto come atto finale prima dell registrazione del voto.
Altre informazioni
Ricevimento su appuntamento (Pal. 1 Sede Scientifica di Ingegneria).
email stefano.cagnoni[AT]unipr.it
Obiettivi agenda 2030 per lo sviluppo sostenibile