Newsgroup: it.comp.ia
Titolo: Esapodi

 esplicitamente.
Come esattamente osservavi anche tu il vero problema consiste nel fatto che
la rete non puo' essere ne' una Hopfield ma neanche una semplice feedfwd a
perceptroni. L'unica e' utilizzare reti ricorrenti proprio perche' parte del
risultato dell'azione deve necessariamente essere un input per l'azione
stessa. Per intenderci: se vogliamo costruire una rete che sappia tirare
fuori le velocita' da dare ai motorini del robot per fargli muovere le zampe
č naturale aspettarsi che queste velocita' dipendano dalla configurazione
attuale delle zampette.
E' necessario quindi che la rete "implementi" anche il modo nel quale le
velocita' (o meglio, le accelerazioni) che fornisce in output sono legate
alle posizioni che riceve in ingresso, e quindi tutte quelle cose che vanno
sotto i nomi di matrici di inerzia, jacobiani, etc.
Il motivo fondamentale per il quale io vorrei applicare una rete neurale al
camminamento di un esapode e' proprio quello che per calcoli di cinematica
diretta (peggio ancora quando si parla di cinematica inversa) la situazione
di un piede appoggiato al suolo che sorregge un gamba composta da n segmenti
e' terribilmente simile ad un n-pendolo rovesciato (hai presente quando
cerchi di tenere in equilibrio un bastone sulla punta del dito? ...bene,
immagina il bastone come formato da n link e di dover tenere in equilibrio
il tutto.... urgh! :-%).
Certo, si puo' fare anche in cinematica inversa... sono solo calcoli,
incasinati quanto vuoi, ma pur sempre calcoli. Il vero problema nasce quando
devi implementare tutto sto' po' po' di equazioni in un sistema che deve
camminare davvero. Anche con tutta la potenza di calcolo che abbiamo
(centinaia e centinaia di Mhz) le nostre strutture di controllo non ce la
fanno a stare dietro all'effettiva dinamica delle zampe e quindi o rendi la
camminata quasi statica (nel senso che il robot ci mette un anno a fare un
singolo passo) oppure semplifichi drasticamente il controllo.
Il mio obiettivo e' quello di costruire una rete (ricorrente, cioe'
chiusa... con gli stessi output che in qualche modo faranno anche da input,
passando attraverso la dinamica fisica del robot) capace di apprendere la
tecnica di camminamento in modo da minimizzare una fuzione obiettivo (che
puo' essere quella che misura lo spostamento del robot o il numero delle sue
cadute).
Ma che genere di layout dovrebbe avere una rete del genere?
Mhhhhhh....
Bye, Carlo

 Bye, Carlo
Io ho trovato interessante il libro "PDP microstruttura dei processi
cognitivi" di David E. Rumelhart e James L. McClelland edito dalla "il
mulino", tratta abbastanza bene l'aspetto concettuale delle reti ricorsive
spiegando diverse tipologie di reti e di esperimenti effettuati, un capitolo
e' intitolato "schemi e processi di pensiero sequenziali nei modelli PDP", e
riporta l'esempio di una rete strutturata per giocare a filetto. Altri
esperimenti riguardano il riconoscimento del linguaggio e della scrittura,
sempre considerando l'aspetto di come una rete di tipo ricorsivo puo'
"correggere" le imprecisioni degli input per assestarsi in uno stato noto
che rappresenta quanto di piu' simile "conosce" in riferimento agli input.
(PDP sta per parallel distributed processing)
Se gia' non lo conosci prova a guardare il seguente studio
http://www.agora.stm.it/L.Depersiis/home.htm
sull' "apprendimento di significato in reti competitive".
Se i concetti di "significato" e "riconoscimento" possono sembrare distanti
e astratti rispetto al problema della movimentazione/equilibrio, in realta'
io credo siano strettamente legati. L'attivazione di un adeguato
servocomando nasce dal "riconoscimento" interno che e' necessario attivarlo,
anzi, volendo realizzare tutto in modo neurale il riconoscimento e
l'attivazione coincidono.....
Rimane sempre il problema dell'apprendimento e di come "calcolare" l'errore
rispetto all'obiettivo, perche' qui siamo di fronte a un obiettivo composto
che puo' richiedere piu' strati ricorsivi che rappresentano ciascuno
particolari aspetti della "conoscenza", il movimento complessivo in una
direzione distinto a esempio (ma non scollegato) dai singoli movimenti degli
attuatori. L'errore commesso da un singolo attuatore puo' non influenzare in
modo determinante la direzione, per cui va corretta solo la rete di
quell'attuatore e non la rete che rappresenta il "concetto di direzione"...
ciao
Ob