Corso di Intelligenza Artificiale

A.A. 2016-2017

Docente: Giorgio Fumera

DIEE Dipartimento di Ing. Elettrica ed Elettronica

PRA Lab


  Pattern Recognition and Applications Lab



Descrizione del corso - Programma - Orario - Materiale didattico - ModalitÓ d'esame - Valutazione del corso - Siti di interesseAvvisi - Recapiti


Descrizione del corso

In questo corso saranno presentati alcuni metodi dell'Intelligenza Artificiale di particolare interesse per il campo dell'ingegneria dell'informazione, insieme ai principali settori di applicazione.

Il corso Ŕ rivolto agli studenti della Laurea Magistrale in Ing. Elettronica.

Prerequisiti

Conoscenza di un linguaggio di programmazione.

Durata e crediti

Il corso durerÓ 50 ore, e consentirÓ il conseguimento di 5 CFU.


Programma del corso

Introduzione

Introduzione all'Intelligenza Artificiale, e cenni storici.

Risoluzione di problemi attraverso algoritmi di ricerca su grafi

  • Formulazione di un problema di ricerca: stati, azioni, obiettivo, costo della soluzione, spazio degli stati, alberi/grafi di ricerca. ComplessitÓ computazionale degli algoritmi di ricerca.
  • Strategie di ricerca non informata: ricerca in ampiezza, a costo uniforme, in profonditÓ; cenni alla ricerca limitata in profonditÓ, ad approfondimento iterativo, bidirezionale.
  • Strategie di ricerca informata: best-first search, greedy search, A* search. Funzioni euristiche.

Il linguaggio LISP

  • Introduzione: linguaggi di programmazione imperativi e funzionali. Cenni storici sul LISP
  • Tipi di dato principali: atomi (numeri e simboli), liste
  • Espressioni e regole di valutazione: atomi (numeri, simboli) e liste (chiamate a funzione, espressioni speciali)
  • Principali funzioni predefinite: matematiche (=, +, -, *, /, sqrt, ecc.), elaborazione di liste (cons, first, rest; list, length, nth, append, null), logiche (equal, atom, listp, null)
  • Principali espressioni speciali predefinite: quote; and, or, not; cond (espressione condizionale)
  • Definizione di nuove funzioni: l'espressione speciale defun.
  • Assegnamento di valori ai simboli (variabili): le espressioni speciali setq e setf
  • Definizione di strutture dati: l'espressione speciale defstruct

Sistemi di rappresentazione ed elaborazione della conoscenza in forma simbolica

  • Introduzione alla logica: ragionamenti, correttezza dei ragionamenti, proposizioni, dimostrazioni, algoritmi d'inferenza
  • Linguaggi logici, modelli
  • Logica proposizionale: sintassi, semantica, tavole di veritÓ, algoritmo d'inferenza model checking; regole e algoritmi di inferenza; algoritmi forward/backward chaining
  • Logica dei predicati: sintassi, semantica; relazioni tra i quantificatori; regole e algoritmi di inferenza; algoritmi forward/backward chaining
  • Sistemi esperti

Apprendimento automatico

  • Apprendimento induttivo (da esempi): concetti di base
  • Apprendimento supervisionato, algoritmi di classificazione automatica
  • Alberi di decisione: definizione, algoritmi di apprendimento
  • Reti neurali artificiali. Cenni storici. Il perceptron, algoritmo di apprendimento per il perceptron. Reti multi-strato feed-forward, l'algoritmo backpropagation
  • Formulazione statistica dei problemi di apprendimento supervisionato. Metodi di valutazione dell'accuratezza: hold-out, cross-validation

Inizio


Orario

  • Lunedý, 17-20, aula B1
  • Mercoledý, 8-10, aula L

Inizio


Materiale didattico

Testi di riferimento

  • S.J. Russell, P. Norvig, Intelligenza Artificiale: un approccio moderno, UTET, 1998; Pearson Education Italia, 2005
  • Un testo di approfondimento sulle reti neurali:
    C.M. Bishop, Neural networks for pattern recognition, Oxford University Press, 1995
    • cap. 1 (par. 1.1-1.6): Statistical Pattern Recognition
    • cap. 3: Single-Layer Networks
    • cap. 4: The Multi-layer Perceptron

Alcune copie di ciascun testo sono disponibili presso la biblioteca della FacoltÓ d'Ingegneria.

Lucidi usati a lezione ed esercizi

Sono disponibili una versione estesa (in inglese) dei lucidi proiettati a lezione, e alcuni esercizi sui vari argomenti.

Linguaggio Lisp

  • Ambienti di programmazione:
    • Clozure Common Lisp (CCL): ambiente open source (per Mac OS Ŕ disponibile l'interfaccia grafica)
    • Lispworks Personal Edition (versione gratuita di un prodotto commerciale, con alcune limitazioni)
    • CLisp: interprete open source a riga di comando (da non confondere con il software CLIPS per lo sviluppo di sistemi esperti)
    • Jabberwocky: IDE basato su Java (richiede l'installazione di un interprete Lisp, come CLisp).
  • Manuale di riferimento per il Common Lisp: Guy L. Steele, Common Lisp - the Language, 2nd edition, Digital Press

Sistemi esperti

Chi scegliesse lo sviluppo di un sistema esperto come tesina potrÓ usare il software open source CLIPS (da non confondere con l'ambiente di programmazione CLisp per il linguaggio Lisp), disponibile nelle versioni per Windows, Linux e Mac OS. Si consiglia la User's guide (cap. 1-6) come punto di partenza, e la Basic Programming Guide per ulteriori dettagli sulla sintassi del linguaggio. Entrambe le guide sono disponibili nel sito Web di CLIPS.

Algoritmi di apprendimento automatico

Tra i software per gli algoritmi di apprendimento automatico si segnalano:
  • la libreria Python scikit-learn (si consiglia di installare prima il software Miniconda), disponibile per tutti i sistemi operativi
  • Weka: Data Mining Software in Java
Si segnala inoltre un utile strumento per la visualizzazione del funzionamento dell'algoritmo di back-propagation per reti neurali artificiali feed-forward multi-layer, basato sulla libreria open source TensorFlow: http://playground.tensorflow.org

Inizio


ModalitÓ d'esame

L'esame consiste in:

  • due prove scritte intermedie che si svolgeranno durante il corso (o in alternativa in una prova orale, da svolgersi in una data da concordare di volta in volta con il docente)
  • una tesina, che consisterÓ nello sviluppo di un programma che implementi uno dei metodi visti a lezione, e nella sua applicazione alla risoluzione di un problema concreto (maggiori dettagli verranno forniti durante il corso); la tesina potrÓ essere svolta da gruppi formati al massimo da tre studenti

La prova scritta contribuisce a 10/30 del voto finale, la tesina ai restanti 20/30.

Inizio


Valutazione del corso

Nel sito Web del corso di studi sono disponibili i questionari di valutazione compilati dagli studenti.

Inizio



Siti Web di interesse sulla IA

Inizio


Avvisi


18 Gennaio 2017
Esiti della seconda prova intermedia.
Chi volesse iniziare la tesina pu˛ contattarmi per concordare l'argomento.

19 Dicembre 2016
Tra Gennaio e Febbraio 2017 (date da definire) il prof. Gian Luca Marcialis svolgerÓ un Seminario sulle Tecnologie Biometriche per la Sicurezza Informatica (2 CFU), per il quale sono giÓ aperte le iscrizioni.

Inizio


Recapiti

Giorgio Fumera
DIEE, pad. B
Tel.: 070 675 5754
E-mail: cognome AT diee DOT unica DOT it

Inizio


Ultimo aggiornamento: 18 Gennaio 2017