Intelligenza Artificiale A - Università degli Studi di Parma

Dipartimento di Ingegneria dell’Informazione
Università degli Studi di Parma
Intelligenza Artificiale
Introduzione
Agostino Poggi
Stefano Cagnoni
Programma del corso (Intelligenza Artificiale A)
Tecniche di base dell’Intelligenza Artificiale





Risoluzione di problemi
Rappresentazione della conoscenza
Pianificazione
Apprendimento
Gestione dell’incertezza
Introduzione
2
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)
Introduzione
3
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.
Introduzione
4
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.
Introduzione
5
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.
Introduzione
6
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 ?
Introduzione
7
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)
Introduzione
8
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
Introduzione
9
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)
Introduzione
10
Altri dilemmi…...
 È un ramo dell'ingegneria?
 È un ramo dell'informatica?
 È un ramo delle scienze cognitive?
 È un ramo della filosofia?
 È una scienza?
Introduzione
11
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
Introduzione
12
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.
Introduzione
13
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.
Introduzione
14
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.
Introduzione
15
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.
Introduzione
16
Basi Psicologiche (1879 - )
 Herman von Helmholz (1821-1894) e Wilhelm Wundt (18321920) applicano il metodo scientifico allo studio della visione
umana.
 John Watson (1878-1958) e Edward Lee Thorndike (18741949) 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.
Introduzione
17
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.
Introduzione
18
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.
Introduzione
19
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.
Introduzione
20
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.
Introduzione
21
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.
Introduzione
22
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.
Introduzione
23
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.
Introduzione
24
Campi di Applicazione









Analisi finanziaria
Automazione d’ufficio
Automazione industriale
Basi di dati
Diagnosi (medica e industriale)
Giochi
Robotica
Sistemi di progettazione
Traduzione automatica
Introduzione
25
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
Introduzione
26
Sistemi Intelligenti
 Quali sono le componenti fondamentali di una macchina
intelligente?
Ingresso
Stato Interno
Comprensione
del linguaggio naturale
Uscita
Generazione
del linguaggio naturale
Rappresentazione
della conoscenza
Ragionamento
automatico
Apprendimento
Visione (percezione sensoriale)
Introduzione
Generazione
dei movimenti
27
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
Introduzione
28