Obiettivi formativi
Il corso si propone di introdurre gli studenti alle tecniche e alle metodologie mirate a riprodurre sul computer comportamenti 'intelligenti' con particolare attenzione per le tecniche di ingegneria della conoscenza e di apprendimento automatico.
Conoscenze e capacità di comprendere
In particolare il corso si propone di illustrare
-le principali tecniche di rappresentazione della conoscenza utilizzate in Intelligenza Artificiale,
-la definizione di formulazione di un problema e le attività necessarie per risolverlo,
-la gestione della conoscenza (certa o incerta) attraverso la logica e il ragionamento
-alcuni dei più importanti metodi di Apprendimento Automatico
-alcuni aspetti del Web Semantico
Competenze
Sulla base dei contenuti del corso lo studente dovrà essere in grado di:
-formulare un problema in modo tale da poter essere risolto con ragionamento automatico
-descrivere e rappresentare la conoscenza di un dominio attraverso l’uso dei linguaggi della logica
-analizzare la conoscenza utilizzata in un dominio scegliendo il metodo che ritiene più appropriato per la sua gestione
-risolvere un problema pratico mediante metodi di apprendimento automatico
-progettare un’applicazione di Web Semantico
Autonomia di giudizio
Nello svolgimento del progetto lo studente dovrà analizzare lo stato dell'arte presente in letteratura per motivare le scelte eseguite nella risoluzione del problema.
Capacità comunicative
Le esercitazioni di laboratorio ed il progetto possono essere svolti in piccoli gruppi favorendo così lo scambio di opinioni. Inoltre la stesura della relazione richiede allo studente una buona organizzazione logica e chiarezza nell’esposizione dei dati e dei risultati.
Capacità di apprendimento
La capacità dello studente di vedere le cose da prospettive diverse è favorita dall’integrazione nel corso di lezioni teoriche con riferimenti ad applicazioni concrete e dall’attività di laboratorio.
Prerequisiti
Nessuna propedeuticità. Si suppone comunque che lo studente abbia buone basi di programmazione e capacità di analisi.
Contenuti dell'insegnamento
Intelligenza Artificiale
1 Introduzione (2 ore)
1.1 Definizioni e approcci
2 Soluzione di problemi con la ricerca (12 ore)
2.1 Problemi ben definiti e ricerca di una soluzione
2.2 Strategia di ricerca non informata
2.3 Strategia di ricerca con informazione parziale
2.4 Strategie di ricerca informata o euristica
2.4 Ricerca con avversari
2.5 I giochi
2.6 Decisioni ottime nei giochi
2.7 Decisioni imperfette in tempo reale
3 Rappresentazione della Conoscenza (18 ore)
3.1 Introduzione alla logica
3.2 La logica del primo ordine
3.2.1 L’inferenza nella logica del primo ordine
3.3 Ingegneria della conoscenza e logica del primo ordine
3.4 Logica descrittiva.
3.5 L’inferenza nella logica descrittiva
3.6 Ingegneria ontologica
3.7 Ragionamento con conoscenza incerta
3.8 Richiami della teoria della probabilità e reti di Bayes
3.9 La logica fuzzy
4. Cenni sulla pianificazione. (2 ore)
5. Web Semantico ( 2 ore)
5.1 Gli elementi base del web semantico.
5.2 Tassonomie e Ontologie
5.3 Esempi di applicazioni
6 Apprendimento automatico (14 ore)
6.1 Apprendimento biologico e apprendimento automatico
6.2 Richiami sulle tecniche di apprendimento automatico dell'Intelligenza Artificiale classica
7 Soft Computing (14 ore)
7.1 Introduzion alle Tecniche di Soft Computing
7.2 Reti Neurali
7.3 Calcolo Evoluzionistico
7.3.1 Algoritmi Genetici
7.3.2 Programmazione Genetica
7.4 Swarm Intelligence
7.5 Sistemi Ibridi
7.6 Esempi di applicazioni
Programma esteso
Intelligenza Artificiale (esteso)
1 Introduzione (2 ore)
1.1 Definizioni e approcci
1.2 I fondamenti dell’IA
1.3 La storia dell’IA
1.3.1 Gli inizi
1.3.2 L’IA diventa un’industria
1.3.3 L’IA diventa una scienza
2 Soluzione di problemi con la ricerca (12 ore)
2.1 Problemi ben definiti e ricerca di una soluzione
2.1.1 Formulazione di un problema
2.1.2 Problemi giocattolo
2.2 Strategia di ricerca non informata
2.3 Strategia di ricerca con informazione parziale
2.3.1 Problemi di contingenza
2.4 Strategie di ricerca informata o euristica
2.4.1 Funzioni euristiche
2.4 Ricerca con avversari
2.5 I giochi
2.6 Decisioni ottime nei giochi
2.6.1 L’algoritmo minimax
2.7 Decisioni imperfette in tempo reale
2.7.1 Il problema dell’orizzonte
2.7.2 Potatura alfa-beta
3 Rappresentazione della Conoscenza (18 ore)
3.1 Introduzione alla logica
3.2 La logica del primo ordine
3.2.1 Sintassi e semantica della logica del primo ordine
3.2.2 L’inferenza nella logica del primo ordine
3.2.3 Concatenazione in avanti ed all’indietro
3.2.4 Forma normale e clausole di Horn per la logica del primo ordine
3.3 Ingegneria della conoscenza e logica del primo ordine
3.4 La Logica descrittiva
3.4.1 Categorie ed oggetti
3.4.2 L’inferenza nella logica descrittiva
3.4.3 L’ereditarietà come forma di inferenza
3.5 Ingegneria ontologica
3.6 Ragionamento con conoscenza incerta
3.6.1 Richiami della teoria della probabilità e reti di Bayes
3.7 La logica fuzzy
3.7.1 Gli operatori della logica fuzzy
3.7.2 Inferenza nella logica fuzzy
4. Cenni sulla pianificazione. (2 ore)
5. Web Semantico ( 2ore)
5.1 Gli elementi base del web semantico.
5.1.1 Metadati, XML, RDF
5.2 Tassonomie e Ontologie
5.2.1 OWL
5.3 Esempi di Applicazioni
6 Apprendimento automatico (14 ore)
6.1 Apprendimento biologico e apprendimento automatico
6.2 Richiami sulle tecniche di apprendimento automatico dell'Intelligenza Artificiale classica
7 Soft Computing (14 ore)
7.1 Tecniche di Soft Computing
7.1.1 Conoscenza certa e conoscenza incerta
7.1.2 Comportamenti emergenti
7.2 Reti Neurali
7.2.1 Modello Biologico
7.2.2 Regole di apprendimento
7.3 Calcolo Evoluzionistico
7.3.1 Algoritmi Genetici
7.3.2 Programmazione Genetica
7.4 Swarm Intelligence
7.5 Sistemi Ibridi
7.6 Esempi di applicazioni
Bibliografia
Appunti del corso.
Russell, Norvig - Intelligenza Artificiale: un approccio moderno 2/Ed, Prentice Hall, 2005
Haykin - Neural networks. US Imports & PHIPEs, 1999
Engelbrecht - Computational Intelligence: an introduction, 2a edizione, Wiley, 2007
Eiben, Smith - Introduction to Evolutionary Computing, Springer, 2003
Blum, Merkle - Swarm Intelligence, Springer, 2008
Tettamanzi, Tomassini - Soft Computing:Integrating evolutionary, neural and fuzzy systems,
Springer, 2001
Della Valle,Celino, Cerizza - Semantic web:dai fondamenti alla realizzazione di un'applicazione,Pearson Education Italia (collana Addison Wesley ), 2009
Metodi didattici
Nel corso sono previste sia lezioni in aula che attività di esercitazione.
Nelle lezioni in aula verranno trattati gli aspetti teorici del corso assieme alla descrizione di alcuni casi di studio delle principali tematiche affrontate.
Le attività d'esercitazione verrano svolte in laboratorio su problemi reali.
Modalità verifica apprendimento
Non sono previste prove in itinere.
L’esame consiste di tre parti:
i) una verifica scritta a risposta libera articolata su quattro quesiti sugli aspetti teorici del corso trattati a lezione in aula con lo scopo di valutare la conoscenza acquisita su questi argomenti.
La prova è valutata da 0 a 8. La prova è superata se il risultato è maggiore o uguale a 5.
ii) una relazione sulle attività d'esercitazione svolte in laboratorio con lo scopo di valutare la conoscenza acquisita nell’utilizzo di tecniche di apprendimento automatico
La prova è valutata da 0 a 8. La prova è superata se il risultato è maggiore o uguale a 5.
iii) una relazione scritta (e relativa esposizione orale) su un lavoro di progetto che approfondisce uno dei temi trattati a lezione o in laboratorio in modo da valutare la capacità di applicare la conoscenza acquisita durante il corso. Tuttavia, il valore della sua valutazione dipenderà anche dalla qualità del sistema sviluppato e della documentazione allegata.
La prova è valutata da 0 a 16. La prova è superata se il risultato è maggiore o uguale a 9.
L’esame è superato se il risultato di tutte le prove è almeno sufficiente.
La lode viene assegnata nel caso del raggiungimento del massimo punteggio su tutte le prove.
Altre informazioni
Il materiale didattico e di supporto alle lezioni sarà reso disponibile durante il corso in formato elettronico.
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -