LABORATORIO DI INTELLIGENZA ARTIFICIALE

Anno accademico e docente
Non hai trovato la Scheda dell'insegnamento riferita all’anno accademico di tuo interesse? Ecco come fare >>
English course description
Anno accademico
2018/2019
Docente
EVELINA LAMMA
Crediti formativi
3
Periodo didattico
Annualità Singola
SSD
ING-INF/05

Obiettivi formativi

L'obiettivo del Laboratorio di Intelligenza Artificiale è quello di condurre gli studenti nella progettazione e poi nella realizzazione di un'applicazione di Intelligenza Artificiale.

Le principali conoscenze acquisite saranno:
- strutturazione di un progetto e relative fasi di sviluppo;
- definizione dell'architettura di sistema e dell'applicazione
- tecnologie software per lo sviluppo dei componenti
- verifica e debug dell'applicazione.

Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
- analizzare i requisiti di progetto da soddisfare;
- identificare i vincoli di progetto che determinano la scelta di modelli, architetture, paradigmi, più adatti per il contesto applicativo di interesse;
- saper sviluppare un'applicazione che compie ragionamento automatico e/o apprendimento automatico usando sistemi e linguaggi di Intelligenza Artificiale (tra i quali il linguaggio Prolog, eventualmente esteso con probabilità o vincoli, linguaggi a regole e relativi motori inferenziali, linguaggi descrittivi e ragionatori ontologici, reti neurali anche deep).

Prerequisiti

Si suggerisce agli studenti di sostenere l'esame del Laboratorio di Intelligenza Artificiale dopo almeno uno fra Fondamenti di intelligenza artificiale (prof. Lamma), Data mining and analytics (prof. Riguzzi) e Constraint programming (prof. Gavanelli).

Contenuti del corso

Sarà proposto un progetto - da svolgere individualmente o in piccoli gruppi di 2 persone al massimo - riguardante uno o più tra i seguenti argomenti:
- strategie di ricerca euristiche
- ragionamento automatico
- apprendimento automatico
- constraint processing
usando sistemi e linguaggi di Intelligenza Artificiale (tra i quali il linguaggio Prolog, eventualmente esteso con probabilità o vincoli, linguaggi a regole e relativi motori inferenziali, linguaggi descrittivi e ragionatori ontologici, sistemi di classificazione automatica e di data mining e clustering, neural e deep network).

Metodi didattici

L'attività è priva di didattica frontale da parte del docente titolare, ma gli studenti possono (e sono invitati a) interagire con il docente titolare e i docenti degli altri due insegnamenti interessati per concordare il progetto e svolgerlo con adeguato supporto e suggerimenti.
I crediti sono da acquisire nel lavoro individuale e/o di gruppo di sviluppo progettuale.

Modalità di verifica dell'apprendimento

Obiettivo della prova d’esame consiste nel verificare il livello di raggiungimento degli obiettivi formativi precedentemente indicati.

L’esame è costituito dalla presentazione del progetto che sarà fatta dal singolo studente (in caso di attività individuale) o dal gruppo di studenti nel suo insieme. Ogni studente dovrà avere la responsabilità di una parte del progetto chiaramente identificata, dimostrare di avere compreso l'architettura applicativa e le funzioni di tutti i principali componenti software, oltre alla presentazione dettagliata dei componenti realizzati.

Testi di riferimento

Su Intelligenza Artificiale:
S. Russell e P. Norvig, "Intelligenza artificiale. Un approccio moderno", volume 1, Pearson Education-Prentice Hall, Ultima Edizione, oppure qualsiasi edizione precedente.

Sul linguaggio Prolog:
L.Console, E.Lamma, P.Mello, M. Milano: "Programmazione Logica e Prolog", UTET, Seconda Edizione, 1997.

Sull’apprendimento automatico
Fabrizio Riguzzi. Foundations of Probabilistic Logic Programming. River Publishers, 2018.
I. Goodfellow, Y. Bengio, A. Courville, and Y. Bengio. Deep learning, volume 1. MIT Press, 2016.

Sulla programmazione a vincoli
ECLiPSe documentation: http://eclipseclp.org/doc/
MiniZinc documentation: http://www.minizinc.org/resources.html
Potassco documentation: http://potassco.sourceforge.net/


Testi consigliati per approfondimento:
Luc De Raedt, “Logical and Relational Learning”, Springer, Series: Cognitive Technologies, 2008
Luc De Raedt, Kristian Kersting, Sriraam Natarajan, and David Poole, “Statistical Relational Artificial Intelligence: Logic, Probability, and Computation”, Morgan & Claypool, 2016
Daphne Koller, Nir Friedman, “Probabilistic graphical models: principles and techniques”, MIT Press, 2009
N. Lavrac and S. Dzeroski, “Inductive Logic Programming Techniques and Applications”, Ellis Horwood, 1994, http://www-ai.ijs.si/SasoDzeroski/ILPBook/
K. Apt, M. Wallace: Constraint Logic Programming using Eclipse. Cambridge University Press, 2007.

Materiale e link aggiuntivi saranno segnalati al sito dell'insegnamento:
http://www.unife.it/ing/lm.infoauto/lab-ia/