dipartimento di ingegneria dellinformazione università degli studi di parma intelligenza...

28
Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Upload: samuele-poggi

Post on 01-May-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Dipartimento di Ingegneria dell’InformazioneUniversità degli Studi di Parma

Intelligenza Artificiale

Introduzione

Agostino Poggi

Stefano Cagnoni

Page 2: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 2

Programma del corso (Intelligenza Artificiale A)

Tecniche di base dell’Intelligenza Artificiale

Risoluzione di problemi Rappresentazione della conoscenza Pianificazione Apprendimento Gestione dell’incertezza

Page 3: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 3

Programma del corso (Intelligenza Artificiale v.o. (2003-2004)/

Calcolo naturale, evoluzionistico, emergente ? (2004-2005))

Tecniche di soft computing e di calcolo emergente

Reti Neurali Calcolo Evoluzionistico Cenni di calcolo emergente (Alife, ant algorithms, particle

swarm optimization)

Page 4: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 4

Testi Consigliati

Stuart Russell e Peter Norvig. Artificial Intelligence: A Modern Approach, seconda edizione.Prentice Hall, 2003.

In versione italiana:

Stuart Russell e Peter Norvig. Intelligenza artificiale: un approccio moderno, Traduzione italiana della prima edizione. UTET Libreria, 1998, a cura di Luigia Carlucci Aiello.

Page 5: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 5

Cosa è l'Intelligenza Artificiale

È lo studio di come rendere i calcolatori capaci di pensare nel senso letterale del termine (Haugeland, 1985).

Cioè come realizzare sistemi che pensano come gli uomini.

È lo studio di come far fare ai calcolatori cose che, ora come ora, gli uomini fanno meglio (Rich and Knight, 1991).

Cioè come realizzare sistemi che agiscono come gli uomini.

Page 6: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 6

Cosa è l'Intelligenza Artificiale

È lo studio delle facoltà mentali attraverso l'uso di modelli computazionali (Charniak and McDermott, 1985).

Cioè come realizzare sistemi che pensano razionalmente.

È lo studio di come spiegare e emulare il comportamento intelligente attraverso processi computazionali (Schalkoff, 1990).

Cioè realizzare sistemi che agiscono razionalmente.

Page 7: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 7

Primo dilemma…..

L’Intelligenza Artificiale è la scienza: che permette ad una macchina di imitare l’uomo modellandone

anche i processi biologici e mentali ed i comportamenti ? che crea processi computazionali che ottengono risultati

comparabili o migliori di quelli ottenuti dall’uomo in attività considerate tipiche dell’intelligenza umana ?

Page 8: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 8

Secondo dilemma (versione 1)…..

Nel primo caso (sillogismo aristotelico) L’IA imita l’uomo ed i suoi processi biologici, mentali e

comportamentali L’uomo agisce in modo intelligente

=> L’IA imita processi intelligenti. Ma è davvero intelligenza ? (discutere… )

Intelligente = umano ?

(cioè che fa esattamente la stessa cosa che farebbe un uomo)

Page 9: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 9

Secondo dilemma (v.1, corollario)

Intelligente = umano ?

(cioè che fa esattamente la stessa cosa che farebbe un uomo)

Imitare un uomo stupido è Intelligenza Artificiale ?

A seconda del contesto, non è detto che una stessa decisione/azione sia sempre intelligente o sempre stupida…

Es. di contesti : a) cantina di Steve Jobs o b) deserto del Sahara dopo una lunga marcia

Page 10: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 10

Secondo dilemma (versione 2)

Nel secondo caso

L’IA definisce processi computazionali che ottengono risultati comparabili o migliori di quelli ottenuti dall’uomo in attività intelligenti

Ma è davvero intelligenza ? (discutere… )

Intelligente = razionale ?

(cioè che fa la cosa giusta per un certo contesto in ogni istante)

Page 11: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 11

Altri dilemmi…...

È un ramo dell'ingegneria?

È un ramo dell'informatica?

È un ramo delle scienze cognitive?

È un ramo della filosofia?

È una scienza?

Page 12: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 12

Le Basi dell'Intelligenza Artificiale

L'Intelligenza Artificiale è una campo di ricerca giovane (1943).

l'Intelligenza Artificiale si basa sulle idee e risultati ottenuti in altri campi:

Filosofia Psicologia Linguistica Matematica Informatica Ingegneria dei calcolatori Elaborazione dei segnali e riconoscimento delle immagini Teoria dei sistemi e del controllo

Page 13: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 13

Basi Filosofiche (428 BC - )

Platone nel 428 BC descrive un dialogo in cui Socrate cerca un algoritmo per distinguere la pietà dalla non-pietà.

Aristotele cerca di formulare le leggi che governano la parte razionale della mente.

Rene Descartes (1596-1650) propone la tesi del dualismo. Esiste una parte della mente (anima) che non segue le regole fisiche. Gli animali non possedendo questo dualismo possono essere

considerati come delle macchine. Wilhelm Leibniz (1646-1716) propone la tesi del materialismo.

Ogni cosa, quindi anche la mente, segue le leggi fisiche. Quindi è possibile costruire una macchina che riesce ad eseguire le

operazioni mentali.

Page 14: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 14

Basi Filosofiche (428 BC - )

Francis Bacon (1561-1626) con il suo lavoro “Novum Organum” da vita al movimento degli empiricisti. Tutta la conoscenza (cioè tutto quello che si trova nella mente)

proviene dai sensi. David Hume (1711-1776) nel suo lavoro “A Treatise of Human

Nature ” propone il principio dell'induzione. Il principio dell'induzione indica la possibilità di definire delle regole

generali dall'osservazione ripetuta di casi particolari. Bertrand Russell (1872-1970) introduce il positivismo logico.

Tutta la conoscenza può essere caratterizzata da teorie logiche. L’acquisizione della conoscenza si basa su observation sentences che

corrispondono a sensori di ingresso.

Page 15: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 15

Basi Matematiche (1800 - )

George Boole (1815-1864) introduce un linguaggio formale per fare inferenza logica.

Gottlob Frege (1848-1925) definisce una logica che, al di là di alcune modifiche di notazione, è la logica del primo ordine usata in gran parte dei sistemi odierni per la rappresentazione della conoscenza.

Page 16: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 16

Basi Matematiche (1800 - )

Alfred Tarski (1902-1983) introduce una teoria che permette di mettere in relazione gli oggetti del mondo reale con gli oggetti di una rappresentazione logica.

Kurt Gödel (1906-1978) prova il cosiddetto teorema dell'indecidibilità. Il teorema dell’indecidibilità afferma che esistono delle funzioni su

interi che non possono essere rappresentate da algoritmi, cioè che non possono essere calcolate.

Alan Turing (1912-1954) introduce la cosiddetta macchina di Turing e la tesi di Church-Turing. La tesi di Church-Turing afferma che una macchina di Turing è

capace di rappresentare qualsiasi funzione computabile.

Page 17: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 17

Basi Psicologiche (1879 - )

Herman von Helmholz (1821-1894) e Wilhelm Wundt (1832-1920) applicano il metodo scientifico allo studio della visione umana.

John Watson (1878-1958) e Edward Lee Thorndike (1874-1949) formano il movimento dei comportamentalisti. Le teorie comportamentaliste si basano solo sulla misura degli stimoli

dati ad un animale e delle azioni da esso eseguite in risposta. I costrutti mentali come conoscenza, credenze, goal e passi di

ragionamento sono rifiutati come non scientifici e frutto della psicologia popolare.

Page 18: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 18

Basi dell'Ingegneria dei Calcolatori (1940 - )

Nel 1940 in Inghilterra venne costruito dal gruppo di Alan Turing il primo computer moderno, Heath Robinson. Heath Robinson era basato su relé elettromagnetici e aveva lo scopo di decifrare i

messaggi tedeschi. Quando i tedeschi usarono dei meccanismi di codifica più complicati i relé

elettromagnetici del calcolatore non permisero una adeguata velocità di calcolo e fu sostituito da Colossus, basato sulla tecnologia dei tubi a vuoto.

Nel 1941 in Germania venne costruito da Konrad Zuse il primo computer programmabile, Z-3.

Tra il 1940 e il 1942 negli Stati Uniti venne realizzato il primo calcolatore elettronico, ABC.

Nel 1945 viene realizzato per Z-3 il primo linguaggio di programmazione ad alto livello.

Page 19: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 19

Basi Linguistiche (1957 - )

Nel 1957 Noam Chomsky descrive la teoria dei modelli sintattici. I modelli sintattici permettono di spiegare come un bambino possa

comprendere e generare delle frasi che non ha mai sentito. I modelli sintattici di Chomsky sono abbastanza formali da poter

essere programmati.

In seguito comunque è stato dimostrato che i problemi affrontati dalla linguistica sono ben più complessi di quelli che sembrano nel 1957. Un linguaggio è spesso ambiguo e spesso ha delle parti sottintese.

Page 20: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 20

Storia dell'Intelligenza Artificiale

Warren McCulloch e Walter Pitts nel 1943 propongono un modello di neurone artificiale.

Nel 1956 durante il workshop di Dartmouth John McCarthy conia per questi tipi di ricerca il nome di Intelligenza Artificiale. John McCarthy aveva convinto Marvin Minsky e Claude Shannon a organizzare a

Dartmouth un workshop per riunire i ricercatori americani interessati alle teoria degli automi, alle reti neurali e allo studio dell'intelligenza.

Allen Newell and Herbert Simon nel 1956 realizzano un programma di ragionamento, Logic Theorist. Logic Theorist era capace di risolvere un gran numero di teoremi matematici

presenti nel libro Principia Matematica di Russell e Whitehead. In alcuni casi le soluzioni da esso presentate erano più corte di quelle presentate in

letteratura.

Page 21: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 21

Storia dell'Intelligenza Artificiale

Allen Newell and Herbert Simon nel 1956 realizzano un programma per la risoluzione di problemi, General Problem Solver. La caratteristica principale del General Problem Solver è quella di

voler imitare i metodi di risoluzione di problemi usati dall'uomo.

John McCarthy nel 1958 definisce il LISP. Nel 1963 Marvin Minsky incarica un gruppo di studenti di

risolvere alcuni semplici problemi che sembravano richiedere intelligenza. Questo gruppo di studenti definì i cosiddetti Mondi giocattolo

(Microworlds) tra cui il famoso Mondo dei Blocchi.

Page 22: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 22

Storia dell'Intelligenza Artificiale

Nel 1969 Marvin Minsky e Seymour Papert nel loro libro, “Perceptrons”, mettono in luce i limiti delle reti neurali. Ad esempio, un percettrone con due ingressi non può essere addestrato a riconoscere

quando i suoi ingressi sono diversi (XOR logico). Nello stesso anno, Arthur Bryson e Yu Chi Ho propongono l'algoritmo di

apprendimento backpropagation. Questo algoritmo viene usato nelle reti neurali multi-strato e sarà riscoperto negli

anni ottanta. Nel 1969 il gruppo di Bruce Buchanan e Edward Feigenbaum realizza il

primo sistema esperto, DENDRAL. lo scopo di DENDRAL è quello di aiutare l'analisi di strutture molecolari.

Nel 1976 lo stesso gruppo realizza MYCIN, un sistema esperto per la diagnosi di infezioni del sangue. MYCIN introduce il calcolo dell'incertezza per gestire l'attivazione delle regole.

Page 23: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 23

Storia dell'Intelligenza Artificiale

Nel 1975 Marvin Minsky propone il frame come struttura per la rappresentazione della conoscenza.

Nel 1981 le autorità giapponesi annunciano l'avvio del progetto per la quinta generazione dei computer. L'obiettivo è realizzare computer che eseguano Codice PROLOG allo stesso modo

in cui i computer tradizionali eseguono il codice macchina.

Nello stesso periodo sono sviluppati dei calcolatori (LISP Machine) con processori orientati all'esecuzione di programmi LISP.

Nel 1986 David Rumelhalt e James McClelland pubblicano i due libri “Parallel Distributed Processing”. Nei due libri sono presentati risultati in vari campi applicativi della

backpropagation, reinventata da almeno quattro gruppi di ricerca. Questi due libri riaccendono l'interesse sulle reti neurali.

Page 24: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 24

Storia dell'Intelligenza Artificiale

I cosiddetti modelli “Hidden Markov” permettono ai metodi di riconoscimento del parlato e della scrittura di essere usati in sistemi commerciali.

David Chapman ottiene una elegante sintesi dei programmi di pianificazione esistenti. L’applicabilità dei pianificatori passa dai mondi giocattolo allo scheduling del

lavoro nelle fabbriche e delle missioni spaziali. Le cosiddette “Belief network” diventano la base per il ragionamento

incerto e i sistemi esperti. Il formalismo delle belief network permette un efficiente ragionamento sulla

combinazione dei fattori di certezza. Allen Newell, John Laird e Paul Rosenbloom sviluppano SOAR.

SOAR è una completa architettura ad agenti che utilizza le varie metodologie dell'IA per lo sviluppo di sistemi intelligenti.

Page 25: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 25

Campi di Applicazione

Analisi finanziaria Automazione d’ufficio Automazione industriale Basi di dati Diagnosi (medica e industriale) Giochi Robotica Sistemi di progettazione Traduzione automatica

Page 26: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 26

Sistemi Intelligenti

Quando è che una macchina si può dire intelligente?

Turing Test (http://www.loebner.net/Prizef/TuringArticle.html) Elaborazione del linguaggio naturale Rappresentazione della conoscenza Ragionamento automatico Apprendimento

Total Turing Test Visione Robotica

Page 27: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 27

Sistemi Intelligenti

Quali sono le componenti fondamentali di una macchina intelligente?

Rappresentazionedella conoscenza

Apprendimento

Ragionamento automatico

Comprensione del linguaggio naturale

Visione (percezione sensoriale)

Generazione del linguaggio naturale

Generazionedei movimenti

Ingresso Stato Interno Uscita

Page 28: Dipartimento di Ingegneria dellInformazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni

Introduzione 28

Tecniche di Intelligenza Artificiale

Le tecniche di IA manipolano conoscenza. La conoscenza ha alcune caratteristiche poco desiderabili:

È voluminosa È difficile da caratterizzare con precisione È in continuo cambiamento

Le tecniche di IA sono metodi che sfruttano la conoscenza rappresentandola in modo che: consenta di gestire/generare le generalizzazioni il formalismo di rappresentazione possa essere compreso da coloro

che la devono fornire possa essere facilmente modificabile possa essere utilizzata anche quando non è del tutto completa e precisa