INTELLIGENZA ARTIFICIALE

Attività formativa monodisciplinare
Codice dell'attività formativa: 
38066

Scheda dell'insegnamento

Per studenti immatricolati al 1° anno a.a.: 
2019/2020
Insegnamento (nome in italiano): 
INTELLIGENZA ARTIFICIALE
Tipo di attività formativa: 
Attività formativa Caratterizzante
Tipo di insegnamento: 
Obbligatoria
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Anno di corso: 
1
Anno accademico di offerta: 
2019/2020
Crediti: 
6
Responsabile della didattica: 
Altri docenti: 
Mutuazioni

Altre informazioni sull'insegnamento

Modalità di erogazione: 
Didattica Convenzionale
Lingua: 
Italiano
Ciclo: 
Secondo Semestre
Obbligo di frequenza: 
No
Ore di attività frontale: 
48
Ore di studio individuale: 
90
Ambito: 
Ingegneria informatica
Materiali didattici: 
Prerequisiti

Il corso richiede conoscenze di base di statistica, di logica e di analisi. Un breve recap di tali argomenti verrà proposto all'inizio del corso e dei testi verranno consigliati nel caso in cui lo studente abbia delle lacune in tali campi.

Obiettivi formativi

Il corso di Intelligenza Artificiale (IA) si prefigge il compito di dare una visione d'insieme delle tecniche sviluppate in questo ambito, con una particolare attenzione alle tecniche che basano l'apprendimento tramite i dati (machine learning).
Da un lato il corso si prefigge di analizzare gli algoritmi proposti dal punti di vista teorico (complessità computazionale, proprietà di correttezza, proprietà di convergenza), dall'altro vorrebbe dare una descrizione degli algoritmi proposti che permetta allo studente di applicare tali tecniche in ambiti di interesse.

Contenuti dell'insegnamento

Nella prima parte del corso verranno trattate le tecniche di IA che si occupano di prendere decisioni in un ambiente deterministico. In prima battuta il corso vuole dare una definizione formale per cosa si intenda per un agente razionale e come si sia sviluppata la disciplina dell'IA negli anni. Verrà descritto il paradigma di agente razionale e saranno trattate le architetture adatte alla sua modellizzazione per la risoluzioni di problemi tramite tecniche di IA. Verranno poi proposte tecniche di ricerca tramite tecniche non informate e informate. Successivamente, sarà introdotta la presenza di altri agenti razionali che influenzano l'esito della ricerca, tramite tecniche derivanti dalla teoria matematica dei giochi. Il problema di ricerca verrà poi codificato in un problema di soddisfacimento di vincoli e le tecniche per la ricerca di soluzioni precedentemente descritte verranno applicate a tale ambito. Verranno poi trattati degli agenti che si basano su predicati logici al fine di operare inferenza dall'ambiente e le verranno proposte le tecniche classiche per la dimostrazione di proposizioni in tale ambiente.

Nella seconda parte del corso verrà invece presa in considerazione la presenza dell'incertezza nella progettazione di agenti razionali. Inizialmente verrà trattata la modellizzazione di ambienti incerti tramite reti Bayesiane e verranno esposte tecniche di inferenza in tali ambienti. Successivamente, verranno proposte delle tecniche per la stima di tale incertezza e la sua gestione da parte dei sistemi di decisione. Dopo una descrizione della teoria alla base del machine learning, verranno proposte delle tecniche specifiche per la risoluzione di problemi tramite l'apprendimento dai dati. In particolare verrano definiti i sottocampi dell'apprendimento supervisionato, non supervisionato e per rinforzo.

Testi di riferimento

Russell, Stuart J., and Peter Norvig. "Artificial intelligence: a modern approach (2002).

Bishop, Christopher M. Pattern recognition and machine learning. Springer (2006).

Friedman, Jerome, Trevor Hastie, and Robert Tibshirani. The elements of statistical learning. Vol. 1. New York: Springer series in statistics (2001).

Metodi didattici

Il corso prevede l'integrazione di lezioni frontali (32 ore) con sessioni di esercitazioni (16 ore). Verrà formito del materiale allo studente perchè possa sperimentare in maniera autonoma quanto visto durante le lezioni.

Modalità verifica profitto e valutazione

Il corso prevede due prove parziali durante lo svolgimento del corso o una prova scritta alla sua conclusione e di un progetto.
Ogni prove scritta ha la durata di 2 ore e 15 minuti. La prova scritta è strutturata in due parti: la prima parte consiste di 3 quesiti a risposta aperta, di punteggio pari a 5 punti per domanda. La seconda parte consiste di 7 quesiti a risposta multipla (vero o falso con motivazione) che riguardano gli aspetti teorici e pratici della disciplina, ciascuno corrispondente a 2-3 punti. Alcuni punti verranno inoltre assegnati rispetto al tempo impiegato dallo studente per completare la prova scritta.
Il progetto consiste nell'applicazione dei metodi visti a lezione in ambiti pratici. Le specifiche del progetto vengono concordate col docente. La votazione del progetto consiste nel passaggio/non-passaggio dello stesso.

Prerequisites

A basic knowledge of statistics and calculus, is required to attend the course profitably. A brief recap of these topics will be held at the beginning of the course, and I will provide some references to help those students that want to understand these topics better.

Educational goals

The Artificial Intelligence (AI) course will present to students an overview of the techniques developed in this scientific field and focuses on those ones which exploit data to solve problems (machine learning).
On the one hand, the course wants to analyse the AI algorithms from a theoretical point of view (e.g., computational complexity, correctness and convergence) and, on the other hand, it wants to provide practical tools allowing the student to apply what has been presented to applicative scenarios.

Course content

During the first part of the course, we will cover those AI techniques that can decide the case we are working in a deterministic environment. At first, we will cover the definition of rational agent and how this paradigm has been developing over the years. After that, we will talk about the available architectures developed in the AI field to allow a rational agent to solve practical problems. We will start by using this agent to solve research problems and, in the specific, we will cover both uninformed and informed search algorithms. We will see how to modify such algorithms to take into account also for the presence of other rational agents in the environment, by using techniques coming from the game theory field. The research problem will be transformed into a constraint satisfaction problem and the methods able to solve such a modelling will be covered. At last, we will see how to develop agents based on a logic approach and the algorithms able to make inference in this scenario.

In the second part of the course, we will introduce the presence of uncertainty in the models we consider. At first, we will provide tools to model the uncertainty in the environment, i.e., we will model it with Bayesian networks, and describe techniques able to perform inference in these scenarios. After that, we will focus on how to include information about uncertainty in the agents we design. After a brief description of the machine learning field overall, we will analyse specific techniques able to solve particular problems by learning from the available data. In the specific, we will cover supervised, unsupervised and reinforcement learning techniques.

Textbooks and reading lists

Russell, Stuart J., and Peter Norvig. "Artificial intelligence: a modern approach (2002).

Bishop, Christopher M. Pattern recognition and machine learning. Springer (2006).

Friedman, Jerome, Trevor Hastie, and Robert Tibshirani. The elements of statistical learning. Vol. 1. New York: Springer series in statistics (2001).

Teaching methods

The course is divided into theorerical lectures (32 hours) and exercise sessions (16 hours), which integrates what has been shown during the lectures. Moreover, some material will be given to the students to experiment autonomously what is covered during the course.

Assessment and Evaluation

The class final exam is composed either by two midterms written exams or by a final written one and by a project.
Each written exam is 2 hours and 15 minutes long. The written exam is structured in two parts: the first part consists of 3 open questions, each of which earns 5 marks to the final mark. The second part consists of 7 multiple-choice questions (true or false with motivation required) regarding both the theoretical and the practical aspects of the subject, each of which earns 2-3 marks to the final mark. Some of the final marks will be earned depending on the amount of time used by the student to complete the exam.
The project consists of the application of some of the methods covered by the course to a real-world problem. The details about the project are discussed with the teacher. The project mark is passed/not passed.