La robotica

annuncio pubblicitario
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
Scarica