La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Intelligenza Artificiale Maria Teresa PAZIENZA a.a. 2008-09.

Presentazioni simili


Presentazione sul tema: "Intelligenza Artificiale Maria Teresa PAZIENZA a.a. 2008-09."— Transcript della presentazione:

1 Intelligenza Artificiale Maria Teresa PAZIENZA a.a

2 Corsi e crediti Corso di IA da 10 crediti per i nuovi studenti dell’indirizzo Sistemi Intelligenti Corso di IA da 5 crediti per gli studenti dell’indirizzo Sistemi Intelligenti che hanno già maturato 5 crediti Corso di IA per gli studenti dell’indirizzo Ing. Soft.

3 Programma Il corso sarà articolato su 3 aree: Tecnologie di IA Gestione della conoscenza Elab. del Ling.Natur.

4 Sito Sul sito di Didattica Web tutte le informazioni su: Programma Progetto Ricevimento Esami (date, iscrizioni, risultati) Tesi Varie

5 Progetto Potrà consistere (a)nella realizzazione di un prototipo informatico progettato e realizzato secondo modalità introdotte nel corso delle lezioni o, equivalentemente, (b)nella stesura di una tesina di approfondimento di temi inerenti all’IA ed affrontati soltanto limitatamente nel corso delle lezioni o, equivalentemente, (c)nell’approfondimento di temi trattati a lezione con la implementazione di un test case. Qualora se ne diano i presupposti è possibile che la componente progettuale dell’esame sia integrata in progetti per altri corsi

6 Materiale didattico Il materiale didattico verrà segnalato e distribuito di volta in volta in relazione ai temi specifici affrontati nel corso delle lezioni (dispense, articoli, slides, monografie e saggi, eventuali collegamenti a risorse digitali disponibili in rete,...). Il materiale e le dispense prodotte saranno contestualmente segnalati e pubblicati nel sito del corso su Didattica Web

7 Esami Sono previste prove d’esame diversificate per le diverse tipologie di corso Per partecipare ad una prova d’esame è obbligatorio prenotarsi almeno 24 ore prima dell’esame. La partecipazione ad una prova scritta non preclude la partecipazione a prove successive (nel caso si rifiuti la valutazione conseguita) previa nuova registrazione.

8 Intelligenza Artificiale L’obiettivo è risolvere il problema rappresentato da: Qual è il corretto livello di astrazione della mente umana per costruire un modello mentale che debba successivamente guidare le azioni di una macchina intelligente?

9 Intelligenza Artificiale Nell’IA ci si occupa di: Costruire macchine intelligenti che operino come/meglio degli umani Formalizzare la conoscenza ed i meccanismi di ragionamento in ogni settore di interesse Usare modelli computazionali per capire/definire il comportamento di umani ed agenti intelligenti Rendere facile ed efficace l’interazione uomo/macchina

10 Intelligenza Artificiale Materia in forte evoluzione; dare una definizione che delimiti rigorosamente i campi di interesse rischierebbe di escludere a priori sviluppi futuri che già si intravedono L’IA non è una lista di argomenti e metodologie; è piuttosto una attività complessa legata alla comprensione di comportamenti intelligenti ed alla loro implementazione in sistemi intelligenti.

11 Intelligenza Artificiale L’IA è contemporaneamente scienza e tecnica, disciplina di frontiera in cui s’incontrano diversi domini del sapere: logica, informatica, psicologia, neuroscienze, filosofia… Attiene a tutti i campi dell’informazione e trova applicazione in tutti i settori

12 Intelligenza Artificiale L’IA si manifesta con un duplice profilo: disciplina ingegneristica (costruire macchine capaci di svolgere compiti intellettuali integrando componenti diverse) disciplina psicologica (costruire macchine capaci di esprimere le caratteristiche essenziali dell’attività cognitiva umana spiegando i rapporti tra pensiero e fisicità dell’uomo)

13 Intelligenza Artificiale La formalizzazione logica dei problemi è fondamentale alla loro soluzione Le metodologie risolutive possono richiedere tecnologie di varia tipologia Ove la formalizzazione completa non sia possibile, si ricorre a soluzioni parziali L’elaborazione del linguaggio naturale è un problema tipico dell’IA Gestire la conoscenza (del mondo, di dominio, dell’applicazione,…) è un problema tipico dell’IA

14 Elaborazione del linguaggio naturale tecnologie del linguaggio multimedialità / multimodalità scrittoparlato tecnologie della conoscenza

15 Il ruolo della conoscenza nei sistemi informatici Le conoscenze servono per: interpretare la realtà: capire che cosa è successo (ad es., ipotizzare le cause di un evento che si è verificato); prevedere l’evoluzione della realtà: prevedere con approssimazione accettabile quali modifiche si potranno verificare nel futuro; agire in modo razionale modificando la realtà: costruire piani d’azione per raggiungere determinati obiettivi.

16 Page 16 Learning to Reason interarazione con il mondo (World) per knowledge representation si intende: - ciò che si è scelto per facilitare il processo di inferenza - ciò che si è imparato a seguito dell’interazione con il mondo la prestazione viene misurata rispetto al mondo e per uno specifico task di ragionamento Task Reasoning W Learning Knowledge Representation KB

17 Conoscenza: un problema trasversale La rappresentazione (e gestione) della conoscenza è un problema di interesse per l’IA e non solo. E’ strettamente collegato alla costruzione di sistemi software: una parte rilevante dell’Ingegneria del Software (SE) attiene a tematiche di rappresentazione della conoscenza

18 IA e SE la molteplicità sia dei proprietari che degli sviluppatori di software, il poter aggiungere nuove caratteristiche a servizi già esistenti, la eterogeneità e complessità dei prodotti presuppongono che lo sviluppo del software sia un processo basato su una grande quantità di conoscenza ed una comunicazione intensa tra le entità coinvolte

19 Sistemi intelligenti (1) Agire in ambienti sconosciuti od ostili (robot in una situazione ignota, agenti/softbot nel web) Gestire grandi quantità di “conoscenza” descrittiva del mondo e dell’applicazione, con l’obiettivo di migliorare le prestazioni nella risoluzione di un problema, acquisire ulteriore conoscenza per collaborare con altre entità (umani, agenti), gestire informazioni non strutturate come nel web

20 Sistemi intelligenti (2) Dialogare con altre entità per migliorare l’interazione e l’acquisizione di conoscenza Capire i sistemi con cui si interagisce per meglio integrare le componenti, facilitare l’interazione, regolare l’accesso alle risorse

21 Sistemi intelligenti (integrazione) I sistemi intelligenti non agiscono in maniera isolata, piuttosto costituiscono componenti importanti in sistemi più complessi a supporto di una maggiore capacità, flessibilità e cooperazione del sistema nel suo insieme. Ciò richiede l’integrazione di: componenti di reasoning in sistemi tradizionali conoscenza in basi di dati description logics in sistemi object oriented

22 Sistemi intelligenti (coordinazione di più agenti umani/artificiali) Per: 1.Comprensione/gestione del dialogo 2.Costruzione di “assistenti” intelligenti (capaci di capire l’utente) 3.Supporto al lavoro di gruppo e/o collaborativo 4.Gestione “networks”

23 Sistemi intelligenti (coordinazione di più agenti umani/artificiali) Richiede: 1.Comprensione del linguaggio naturale scritto e parlato 2.Generazione del linguaggio naturale 3.Gestione delle ambiguità grammaticali e semantiche 4.Combinazione di tecniche di nlp con altre tecnologie per realizzare interfacce multimediali

24 Sistemi intelligenti (acquisizione di conoscenza da più agenti) Richiede: 1.Capacità di collezionare, codificare, rappresentare conoscenza 2.Integrazione di metodologie per la rappresentazione di conoscenze differenti 3.Gestione dell’organizzazione concettuale della conoscenza in ontologie e la loro integrazione 4.Gestione efficace della strutturazione, indicizzazione, ricerca di grandi quantità/risorse di conoscenza 5.Ragionare su domini di conoscenza diversi 6.Applicare la conoscenza del senso comune

25 SWESE 2006 The advantages of Semantic Web Technologies in software engineering include reusability and extensibility of data models, improvements in data quality, and discovery and automated execution of workflows The Semantic Web can serve as a platform on which domain models can be created, shared and reused

26 SWESE 2007 The advent of the World Wide Web has led many corporations to web-enable their business applications and to the adoption of web service standards in middleware platforms. Marking a turning point in the evolution of the Web, the Semantic Web is expected to provide more benefits to software engineering. To bring together languages and tools, such as the Unified Modelling Language (UML), developed for Software Engineering, with Semantic Web languages such as RDF and OWL.

27 Topics of interest include: Tools developed or being developed for software engineering using SW languages Integration or application development projects combining Software Engineering techniques and Semantic Web tools or languages Lessons learned in Automatic Software Engineering or KBSE applicable to SW based SE Visions for SW driven software modernization Integration of UML, OO programming languages and Semantic Web languages Software specification and Semantic Web languages …..

28 Topics of interest include: (2) … Ontologies for software engineering Component discovery and ontologies Feature modelling and ontologies Ontology reasoning for software engineering Semantic annotations in software engineering Ontology-Driven Architecture: How to introduce Semantic Web technology into mainstream development processes Ontologies for requirements, software engineering, and/or software evolution Semantic-based intelligent assistance tools for software developers

29 Web focus I sistemi software sono sempre più alimentati dal web Devono quindi gestire/interagire con dati di sorgenti eterogenee che possono essere sconosciute in fase di sviluppo del software. Per la risoluzione di questo problema gli ingegneri del software cercano tecnologie che li aiutino nella gestione della eterogeneità anche runtime.

30 Semantic Web in Soft. Engineering Le tecnologie del Semantic Web possono migliorare l’ingegneria del software (da MDA a ODA) per aumentare la scalabilità e composizionalità delle componenti supportando la rappresentazione non ambigua della terminologia di dominio permettendo il controllo automatico della consistenza e validazione di regole invarianti, precondizioni e post- condizioni supportando la mediazione e trasformazione della terminologia basata su conoscenza

31 Semantic Web in Soft. Engineering Improvement: si ottiene, si supporta una aumentata scalabilità e compatibilità dei componenti Problema: difficoltà nella costruzione e manutenzione di ontologie di metadati

32 Semantic Web in Soft. Engineering Come “classificatore” per raggruppare tool e tecniche correlate per modellare rigorosamente la semantica durante le fasi di specificazione e disegno del ciclo di vita del software “meccanismo” per (rigorosamente) descrivere, identificare, scoprire e condividere artefatti all’interno dei sistemi, sottosistemi e team di disegno sia in fase di disegno che runtime

33 Semantic Web in Soft. Engineering (2) Il Semantic Web può essere visto come un set di corpora formalizzati di contenuti interrelati, riusabili e che possono essere ulteriormente classificati come: passivi, dati in forma di: documenti e dati piatti HTML, XML,.. documenti e dati generati dinamicamente via JSP, PHP,.. metadati RDF, OWL media, pictures video, music,.. databases

34 Semantic Web in Soft. Engineering (3) Il Semantic Web può essere visto come un set di corpora formalizzati di contenuti interrelati, riusabili e che possono essere ulteriormente classificati come: attivi, funzionalità presentate come: Web services, semantic web services componenti funzionali referenziati come frammenti con contenuti passivi (Java script, Java applets) Sia gli “attivi” che i “passivi” possono essere descritti usando tecniche ontologiche

35 Intelligenza Artificiale (IA) I calcolatori generali (general purpose) hanno la caratteristica di essere macchine simboliche, ovvero sono (1) macchine capaci di manipolare “strutture di simboli” da porre in corrispondenza ad entità diverse: parole di una lingua naturale, espressioni matematiche, posizioni del gioco degli scacchi, oggetti da riconoscere e classificare, ……

36 Intelligenza Artificiale (IA) I calcolatori generali (general purpose) sono (2) macchine capaci di utilizzare l’istruzione di “salto condizionato” che consente di cambiare l’ordine di esecuzione delle istruzioni. La macchina rivela una capacità discriminativa, ovvero seleziona/sceglie la sequenza di istruzioni da eseguire rivelando un atteggiamento intelligente.

37 Intelligenza Artificiale (IA) Inizialmente attenzione all’analisi di problemi relativi ad ambiti ben delimitati, per risolvere i quali bastano regole esplicite per l’elaborazione simbolica e poca conoscenza specializzata. Successivamente da elaborazione simbolica a conoscenza tacita, ad abilità senso-motorie, alla capacità di adattamento all’ambiente naturale o alle interazioni sociali con altri agenti naturali o artificiali.

38 Intelligenza Artificiale (IA) Inizialmente convinzione che compito principale dell’IA fosse lo studio delle strategie di soluzione di problemi efficacemente selettive, o “euristiche”. La programmazione euristica, analogamente agli esseri umani, esplora solo una parte dei percorsi che, in base alle informazioni possedute, potrebbero portare ad una soluzione accettabile del problema dato e che soddisfino alcuni requisiti irrinunciabili.

39 Intelligenza Artificiale (IA) Tipicamente fondati sulla programmazione euristica sono i sistemi basati su conoscenza (e tra questi i sistemi esperti); tutti basati su una base di conoscenza che raccoglie e sistematizza conoscenze e tecniche di ragionamento euristico. Su una base di conoscenza opera un motore inferenziale che risolve i problemi posti, anche simulando tecniche di ragionamento euristico. I sistemi basati su conoscenza vengono considerati uno dei “prodotti” principali della Intelligenza Artificiale simbolica.

40 Intelligenza Artificiale (IA) I sistemi basati su conoscenza non permettono di affrontare adeguatamente alcuni aspetti: Conoscenza tacita: il comportamento intelligente che si ispira al “saper fare”, ovvero ad una abilità difficile da descrivere con conoscenze dichiarative e regole esplicite di manipolazione simbolica Azioni in tempo reale: capacità di reazione adeguate in tempi utili per il problema Robustezza: capacità di lavorare anche in situazioni diverse da quelle previste dai progettisti

41 Intelligenza Artificiale (IA) Il connessionismo ha affrontato con un qualche successo alcuni problemi di conoscenza tacita e robustezza. Il modello di un sistema di IA, in tal caso, assomiglia più ad un robot immerso in un ambiente non predeterminato dal progettista ed in grado di mostrare comportamenti adattivi in tempo reale, che ad un calcolatore in grado di sostenere una conversazione o di giocare una partita a scacchi. Il connessionismo rivela incapacità di simulare ampie capacità di ragionamento e di affrontare i problemi dell’IA distribuita e dei sistemi multiagente (ogni agente deve comunicare con altri agenti, formarsi aspettative sui risultati delle interazioni, ragionare su obiettivi e capacità di altri agenti, dimensione sociale dell’IA).

42 Intelligenza Artificiale (IA) La costruzione di programmi simulativi che siano in grado di fornire indicazioni (spiegare) su certe capacità cognitive è assimilabile al processo di costruzione e revisione dei modelli scientifici. Quando il programma “gira” sul calcolatore, diventa possibile individuarne le lacune, suggerire modifiche per migliorarlo trovando nelle sue prestazioni conferme o smentite della teoria generale. Es. General Problem Solver che dimostrava di essere una simulazione del protocollo verbale di un soggetto umano alle prese con la dimostrazione di un teorema di logica proposizionale.

43 Intelligenza Artificiale (IA) in pratica Dal punto di vista ingegneristico Le applicazioni dell’IA sono valutate per le loro capacità e prestazioni, indipendentemente dai metodi utilizzati. Idea di base: costruire macchine che non necessariamente “simulino”, riproducendolo, il comportamento del cervello umano, ma che siano in grado di “emularlo selettivamente” nel risultato finale di certe operazioni

44 Architettura di base di un sistema di IA: ambiente Un sistema IA non è un insieme di istruzioni immutabili che rappresentano la soluzione di un problema, bensì un ambiente in cui rappresentare, utilizzare e modificare una base di conoscenza. La soluzione viene costruita dinamicamente a fronte di un certo numero di possibilità.

45 Architettura di base di un sistema di IA: ambiente Un sistema IA deve esprimere due tipi distinti di conoscenza: una “base di conoscenza” (che raccoglie la conoscenza di dominio e del problema attraverso asserzioni e fatti da un lato e relazioni e regole dall’altro) un “motore inferenziale” che utilizza la base di conoscenza per giungere alla soluzione e fornire spiegazioni. Scelta dinamica di quale conoscenza utilizzare nel processo risolutivo. forward chaining versus backward chaining.

46 Logica La logica è sicuramente uno degli strumenti più antichi, assestati e rigorosi utilizzati dall’uomo per formalizzare e spiegare il proprio ragionamento. La logica è semanticamente ben definita, altamente dichiarativa, ed ha un apparato deduttivo generale. La logica classica è utilizzata in IA per rappresentare la conoscenza su un problema (anche se con alcune limitazioni). La BdC diventa una collezione di asserzioni della logica dei predicati del primo ordine; le regole di inferenza permettono di dedurre nuove asserzioni (teoremi) non esplicitamente contenute nella BdC

47 Programmazione logica e Prolog La programmazione logica nasce negli anni ’70 Kowalsky ad Edimburgo definì i fondamenti teorici della progr. logica ed un’interpretazione procedurale delle clausole della logica che permette di ridurre il processo di dimostrazione di un teorema al tradizionale processo di computazione dei linguaggi di programmazione. Colmeraurer a Marsiglia nel 72 realizzò un interprete per il linguaggio Prolog.

48 Apprendimento automatico Un sistema non potrà dirsi “intelligente” se manca della proprietà di accrescere le proprie conoscenze e migliorare le proprie abilità (apprendimento). Per raggiungere questo obiettivo bisogna dotare le macchine simboliche di capacità di ragionamento induttivo oltre che deduttivo.

49 Apprendimento automatico Il ragionamento induttivo procede da asserzioni singolari riguardanti particolari fatti o fenomeni (“esempi”) ad asserzioni universali esprimibili mediante ipotesi o teorie che spieghino i fatti dati e siano in grado di predirne di nuovi. L’inferenza deduttiva preserva la “verità” (nel senso della correttezza logica) L’inferenza induttiva non garantisce ciò e può tendere ad un’eccessiva generalizzazione e a produrre errori.

50 Limiti, problemi aperti e …  L’apprendimento e la rappresentazione del senso comune sono ben lontani dall’essere una soluzione completa.  Limitata crescita incrementale della conoscenza e costi elevati nel produrla  Alto costo di manutenzione dei sistemi intelligenti  Sistemi inferiori alle aspettative iniziali  …

51 … aspettative Supporto all’accesso di informazioni in grandi patrimoni conoscitivi (archivi aziendali, informazioni on-line, repositories di dominio,…) che richiede la capacità di analisi e gestione di dati eterogenei e ridondanti. Strumenti per l’estrazione di conoscenza ad ampio spettro che utilizzino tecniche di apprendimento automatico. Capacità di integrare, all’interno di sistemi informativi generali, moduli che producano task intelligenti Navigazione intelligente sul web

52 IA debole versus IA forte L’IA debole si propone di costruire (reale costruibilità) macchine che si comportino “come se” fossero intelligenti, ossia macchine capaci di risolvere tutti i problemi che l’intelligenza umana sa risolvere. L’IA forte afferma che la macchina che agisce in modo intelligente deve avere una “intelligenza cosciente”, una mente cosciente indistinguibile dalla mente umana; l’IA forte vuol dare risposta al problema astratto di che cosa sia il “pensare” per una macchina, anche se poi non riesce a costruire macchine intelligenti.

53 … Le simulazioni al calcolatore dei processi cerebrali forniscono modelli degli aspetti formali di questi processi, ma la simulazione non va confusa con la riproduzione. Il modello computazionale dei processi mentali non è più reale di quello di qualsiasi altro fenomeno naturale. Si può immaginare una simulazione al calcolatore dell’ossidazione degli idrocarburi in un motore d’automobile, o dei processi di digestione in uno stomaco alle prese con una pizza. Nel caso del cervello la simulazione non è più reale che nel caso dell’automobile e dello stomaco. La simulazione di un processo cognitivo non produce gli stessi effetti della neurobiologia di quel processo cognitivo…. J.Searle, La mente è un programma?, 1990

54 Bibliografia (per cominciare…) J. McCarty, M.L. Minsky, N. Rochester, C.E. Shannon: A proposal for the Dartmouth Summer Research Project on Artificial Intelligence, 1955, R. Cordeschi, G. Tamburrini: L’Intelligenza Artificiale: la storia e le idee, 2001, H. Uskoreit: “Language Technology, A First Overview” D. Gelernter: “Artificial Intelligence is Lost in the Woods” M. Benasayag G. Schmit : “L'epoca delle passioni tristi” Feltrinelli Editore, 2004, ISBN ,

55 Bibliografia (per cominciare…) R. Dipert: Artifacts. Art works and Agency, 1993, Philadelphia: Temple University Press J. Searle: Is the brain a digital computer?, Proceedings of The American Philosophical Association, 64,3 (1990), pagg J. Searle: The construction of social reality, 1995, New York: Thje Free Press J. Doyle, T. Dean : Strategic Directions in Artificial Intelligence, ACM Computing Surveys, 28 (4), Dec. 1996

56 Argomenti trattati in questa lezione Ruolo dell’IA nell’ICT Elaborazione del linguaggio naturale come punto di riferimento per l’IA Gestione della conoscenza come punto di riferimento per l’IA Ruolo dell’IA nella Ingegneria del Software


Scaricare ppt "Intelligenza Artificiale Maria Teresa PAZIENZA a.a. 2008-09."

Presentazioni simili


Annunci Google