Dott.ssa Lorella Gabriele PhD in Psicologia della Programmazione e Intelligenza Artificiale Dipartimento di Fisica Università della Calabria La robotica è una scienza che si occupa di studiare e sviluppare metodologie che permettano ad un robot o ad un agente di eseguire dei compiti specifici. La disciplina che si occupa di studiare agenti intelligenti e robot è l’Intelligenza Artificiale. Intelligenza Artificiale (AI) Settore scientifico e ingegneristico interdisciplinare, in cui confluiscono approcci di discipline umanistiche, come linguistica e psicologia, e scientifiche come biologia, fisiologia, automazione, elettronica, fisica, informatica, matematica e meccanica. «è intelligenza artificiale quel settore dell'informatica che cerca di riprodurre nel computer quei tipi di comportamenti che, quando sono assunti dagli esseri umani, vengono generalmente considerati frutto della loro intelligenza» (Minsky) Padri fondatori ◦ Alan Turing (1950), “Computing Machinery and Intelligence” ◦ Shannon (1950) sulla programmazione di un programma di scacchi (un antenato del turco meccanico!). Termine ◦ venne coniato, da McCarthy, nella proposta della conferenza presso il Dartmouth College I conferenza ◦ “Dartmouth Summer Research Conference on Artificial Intelligence” (1956) vi parteciparono Marvin Minsky, Nathaniel Rochester e Claude Shannon: ◦ laboratorio, scambio di idee e come piattaforma di lancio per il lavoro successivo. Il termine robot deriva dal ceco robota, lavoro forzato, nome dato dallo scrittore Karel Capek ad automi che, nel suo dramma R.U.R., agiscono come operai. Oggetto di racconti di fantascienza come Io, Robot di Isaac Asimov a cui si devono le tre leggi della Robotica. Robot appaiono in film come Metropolis di Fritz Lang …un agente artificiale attivo il cui ambiente è il mondo reale. …un agente in grado di percepire l'ambiente che lo circonda attraverso dei sensori ed è capace di eseguire delle azioni attraverso degli attuatori. Essere umano Robot sensori attuatori Un agente è… costituito da un programma software ed eventualmente da un supporto hardware, che: • interagisce con l’ambiente circostante ed è reattivo agli stimoli di tale ambiente; • è capace di prendere decisioni, e di conseguenza di agire, in modo autonomo, con il fine di raggiungere un obiettivo, chiamato generalmente goal (che può essere predefinito o negoziato), pertanto può essere definito proattivo; • è in grado di comunicare (coordinarsi, cooperare, negoziare) con altri agenti (e/o con esseri umani), è quindi capace di interazione sociale. un ambiente fisico (reale o artificiale) un ambiente software per ricerca automatica di info Internet un ambiente virtuale (ossia un ambiente fisico costruito in modo virtuale mediante tecnologie hardware e software di realtà virtuale) Robot Agente software Agente artificiale La maggior parte dei robot sono molto limitati nell'abilità di percepire ed adattarsi, all’ambiente perché il mondo reale è: ◦ Inaccessibile - i sensori, di cui i robot sono dotati, possono percepire stimoli provenienti dalle prossimità dell'agente; ◦ Non deterministico - problemi tecnici cui va incontro il robot, come le batterie che si esauriscono o le ruote che possono slittare; ◦ Non episodico - gli effetti generati da un'azione, sono soggetti a cambiamenti nel tempo, il robot deve essere in grado di gestire problemi decisionali; ◦ Dinamico - un robot deve essere in grado di valutare attentamente la situazione ambientale presente o agire immediatamente; ◦ Continuo - l'ambiente è soggetto a continui cambiamenti che non è possibili enumerare tutti durante la fase di pianificazione progettuale (Russell, Norvig, 1998). un ambiente fisico (reale o artificiale) un ambiente computazionale ? (un ambiente software per ricerca automatica di info Internet) un ambiente virtuale (ossia un ambiente fisico costruito in modo virtuale mediante tecnologie hardware e software di realtà virtuale) Robot Agente software Agente artificiale Classicamente, i robot si muovono sulla base di un programma software studiato a tavolino dal programmatore informatico, ma questi non riesce mai a prevedere tutte le incognite che vengono dalla realtà. Quindi, prima o poi, il robot “tradizionale" si blocca. I nuovi robottini, si caratterizzano per essere autonomi, ossia lavorano senza che il programmatore definisca con precisione i loro movimenti. La Robotica Evolutiva (Evolutionary robotics - ER ) è un emergente area di ricerca che fa parte del più ampio settore della robotica autonoma. È una tecnica usata per creare robot autonomi e che si ispira al principio darwiniano della selezione naturale. Questo approccio vede il robot come un organismo artificiale autonomo che sviluppa il proprio comportamento dall’interazione con l’ambiente e senza l’intervento diretto del programmatore, usando strumenti quali reti neurali, algoritmi genetici, sistemi dinamici e ingegneria biomorfa Precursore Alan Turing, negli anni ‘50 affermava: «sarebbe troppo difficile per un essere umano progettare macchine predisposte all’apprendimento e capaci di adattamento ma questo risultato è invece ottenibile usando un processo evolutivo che includa mutazioni e riproduzioni selettive». L’idea di rappresentare il sistema di controllo di un robot, come un cromosoma artificiale, soggetto alle leggi della genetica e della selezione naturale, è datata al 1980, quando il primo organismo artificiale simulato con un sistema sensomotorio, iniziò ad evolversi sullo schermo di un computer. Tra il 1992 e il 1993, il team di ricercatori del Swiss Federal Institute of Technology di Lausanne, realizzò il primo esperimento sull’evoluzione artificiale di robot autonomi. Il principio della selezione naturale ha determinato negli organismi biologici l’adattamento a nuovi ambienti e la differenziazione fra le varie specie. In base tale principio verranno scelti solo i genomi più efficienti per creare di volta in volta le generazioni successive. Genotipo Fenotipo Insieme di geni che compongono il DNA (corredo genetico) di un organismo o di una popolazione. Ogni gene, singolarmente e/o in modo cooperativo, contribuisce in maniera diversa allo sviluppo, alla fisiologia e al mantenimento funzionale dell'organismo. Insieme dei caratteri osservabili L’evoluzione naturale agisce sul materiale genetico (genotipo) di un individuo e non sulle sue caratteristiche fisiche (fenotipo). Ogni variazione che rende un individuo più efficiente di un altro emerge solo dal patrimonio genetico, ed in questo non influirà affatto ciò che i genitori avranno eventualmente appreso nella loro vita. Il processo di selezione naturale favorisce la riproduzione di quegli individui che hanno delle caratteristiche che migliorano l’adattabilità all’ambiente, eliminando quelli che hanno una minore potenzialità. Il nucleo centrale del processo evolutivo è costituito dai meccanismi biologici della riproduzione. La selezione naturale favorisce, attraverso la riproduzione degli individui migliori, quelle particolari combinazioni genetiche che danno vita ad un organismo più efficiente. Saranno proprio questi meccanismi a stabilire le differenze e le uguaglianze fra un individuo ed i suoi genitori. L’evoluzione naturale opera su intere popolazioni di individui attraverso processi ciclici e generazionali determinati esclusivamente dalle contingenze ambientali e dalle interazioni fra i vari organismi. Operano in totale autonomia e indipendentemente dall'intervento umano; sono in grado di prendere decisioni anche a fronte di eventi inaspettati. Questi Robot sono programmati solitamente con algoritmi che si rifanno a tecniche di intelligenza artificiale: algoritmi genetici, logica fuzzy, learning, reti neurali. Planning Il programmatore è l’unico che conosce l’ambiente e deve pianificare a priori le azioni/i movimenti del robot di fronte a possibili ostacoli/problemi. Behavior Based Robotics L’idea è che l’intera progettazione dell’agente può essere decomposta in comportamenti reattivi: evitare ostacoli, seguire muri, esplorare, ecc. Il comportamento è guidato dall’azione. Percezione attiva l’azione. Robotica evolutiva Algoritmi genetici, logica fuzzy, learning, reti neurali Nelle simulazioni della vita artificiale quello che viene simulato non è soltanto il sistema nervoso dell’organismo e il suo comportamento ma anche il resto del corpo dell’organismo, l’ambiente in cui l’organismo vive e con cui interagisce, la popolazione di altri organismi della stessa specie di cui l’individuo è un membro, ed il suo materiale genetico. Comportamenti semplici Comportamenti complessi Emergenza del linguaggio/Riconoscimento degli oggetti Il cervello in natura memorizza le informazioni in modo distribuito in una rete composta da innumerevoli neuroni connessi tra di loro da sinapsi dotate di diversi gradi di conduttività elettrica. Sono cellule eccitabili specializzate nella ricezione di stimoli e nella conduzione degli impulsi provenienti dai nervi. I neuroni servono a trasmettere informazioni ad altre parti del corpo Rete neurale artificiale è uno strumento informatico che imita il funzionamento di un cervello biologico nel memorizzare e nell’utilizzare le informazioni ricevute. In analogia col sistema neurale biologico una rete neurale artificiale è costituita da un certo numero di neuroni artificiali che scambiano segnali tra di loro attraverso delle connessioni. Ogni connessione ha un valore, detto peso sinaptico, che serve ad amplificare o attenuare i segnali che la percorrono, ossia definisce l’importanza da attribuire al collegamento stesso. Una rete neurale artificiale è costituita da una serie di neuroni, nodi, variamente connessi fra di loro in strati successivi. Unità di input (Sensori) i cui neuroni vengono attivati da segnali provenienti dall’esterno. Unità hidden/nascoste i cui neuroni effettuano l’elaborazione interna delle informazioni. Unità di output (Attuatori) i cui neuroni producono informazioni dirette verso l’esterno. Il comportamento di una rete neurale, cioè il tipo di risposte agli stimoli che essa produce, è determinato da una serie di fattori: • la regola di attivazione; • i pesi sinaptici; • l’architettura della rete. Per ottenere i comportamenti desiderati, questi fattori devono essere specificati nel modo corretto e si può procedere in due modi distinti: • Attraverso processi di apprendimento; • Attraverso l’evoluzione artificiale. Per determinare i pesi sinaptici, che contengono la conoscenza e la capacità di risposta della rete neurale, si possono utilizzare gli algoritmi genetici, proposti da J.H. Holland nel 1975. Essi costituiscono un modello computazionale che si ispira all'evoluzione darwiniana, e si basa sui principi della variazione genetica e della selezione naturale. Nell’algoritmo genetico una soluzione può essere codificata in codice binario. Un individuo può essere rappresentato tramite una specifica sequenza (stringa di bit) di 0 e 1. La sequenza o stringa di bit è detta cromosoma. Un insieme di individui forma una popolazione Gli individui di una popolazione hanno patrimoni genetici differenti (variazione genetica). Ad ogni generazione, coppie di individui si uniscono per generare altri individui, che saranno dotati di un patrimonio genetico risultante dalla combinazione del DNA dei genitori. L'adattamento degli individui all'ambiente ("fitness") dipende dal loro patrimonio genetico. Gli individui con maggiore fitness sono mediamente favoriti (selezione naturale) rispetto agli altri. Considerano una popolazione di cromosomi (individui) che rappresentano soluzioni possibili per un certo problema. La qualità di un individuo (cioè quanto è buona la soluzione per il problema) è misurata mediante una funzione di fitness. La funzione di fitness indica l’adattabilità all’ambiente: ◦ gli individui che meglio si adattano (‘fit’) hanno più probabilità di riprodursi e di trasmettere i propri geni alle generazioni future FUNZIONE DI FITNESS (funzione obiettivo) consente di valutare le prestazioni della popolazione. In base a tale funzione gli individui migliori, ossia quelli capaci di risolvere un determinato problema, verranno selezionati per trasmettere i propri geni (patrimonio genetico) alle generazioni successive. CODICE GENETICO contiene e trasmette le informazioni del patrimonio genetico. Selezione naturale Darwiniana Gli individui più “forti” hanno maggiori probabilità di sopravvivere nell’ambiente in cui vivono e, dunque, maggiore probabilità di riprodursi. Algoritmo Genetico Gli individui più forti sono quelli con fitness (idoneità) più alta, poiché risolvono meglio di altri il problema di dato; per questo essi devono essere privilegiati, nella fase di selezione, così da potersi riprodurre e dare luogo ad una nuova generazione. SELEZIONE avviene secondo una probabilità proporzionale al valore di fitness, in modo che gli individui “migliori” siano privilegiati per la riproduzione. CROSSOVER scelti a caso due individui selezionati al passo precedente, il loro codice genetico viene mescolato per ottenere due nuovi genotipi. MUTAZIONE una volta che i nuovi individui siano stati generati applicando il crossover, il valore dei loro geni può essere modificato (con probabilità bassa) per introdurre delle mutazioni genetiche EVOLUZIONE DELLA RETE viene realizzato mediante l’evoluzione di un algoritmo genetico. Il principio guida che permette alla rete di apprendere è quello di lasciare che la rete impari dai suoi errori. Le reti hanno inizialmente dei pesi sinaptici scelti a caso (compresi fra 0 e 1 o tra –0.5 e +0.5); esistono diversi metodi con cui le reti modificano automaticamente questi pesi, fino ad assegnare loro quei valori che consentono di rispondere nel modo desiderato ad una certa stimolazione esterna. Data una rappresentazione genetica e la funzione di fitness che abbiamo stabilito. Si genera la prima popolazione di individui che consiste in un certo numero di stringhe genetiche scelte a caso. 2. Ciascun individuo viene valutato secondo la funzione di fitness. 3. Una volta che sia stata valutata la fitness di ciascun individuo, una nuova popolazione di genotipi viene creata applicando gli operatori di SELEZIONE, CROSSOVER e MUTAZIONE (Ranking). Con la creazione della nuova popolazione il processo continua ciclicamente in questo modo fino a che non è stata ottenuta una soluzione soddisfacente. 1. Previsione di fenomeni complessi ◦ meteorologici o quelli finanziari o socioeconomici Riconoscimento immagini, e di scrittura Riconoscimento di oggetti in movimento Definizione della forma del profilo alare delle macchine di Formula 1 Modellazione di dati di natura elettroencefalografica e riconoscimento di pattern ◦ Controllo dei robot attraverso segnali elettroencefalografico ◦ Controllo del movimento dei robot e guida ◦ Riconoscimento del linguaggio gestuale ◦ Robotica cognitiva ed emozionale ◦ Robotica neuroriabilitativa ◦ Robotica neurogenetica ◦ Riconoscimento audio-visuale della voce ◦ Coclea su silicio