Content uploaded by Andrea de Giorgio
Author content
All content in this area was uploaded by Andrea de Giorgio on Aug 16, 2015
Content may be subject to copyright.
Università degli Studi di Napoli Federico II
Scuola Politecnica e delle Scienze di Base
Dipartimento di Ingegneria Elettrica e delle
Tecnologie dell’Informazione
Corso di Laurea in Ingegneria Elettronica
Tesi di Laurea
APPRENDIMENTO E CODIFICA NEURALE
DI COMPORTAMENTI MULTIPLI
Relatori Candidato
Prof. Guglielmo Tamburrini Andrea de Giorgio
Prof. Roberto Prevete Matr. 528/1060
Correlatore
Prof. Carlo Sansone
Anno Accademico 2012/2013
Ad Antonio, Attilio, Bianca, Biancamaria, Brigida,
Carlo d.G., Carlo G., Claudio Fa., Claudio Fe., Clelia,
Davide, Dianna, Douglas, Elettra, Elio,
Elkhonon, Filippo, Gustavo, Ivana, James,
Leonardo, Luciano, Luigi, Manfredo, Marcello,
Mariano, Marina, Martina, Matteo, Nicola,
Ornella, Raffaele, Raimondo, Richard, Roberta,
Roberto, Salvatore, Stefania, Valentino e Violetta
in 9567 giorni di vita, con il vostro aiuto.
17 luglio 2013
Introduzione
Nell’ultima decade alcune evidenze sperimentali sembrano suggerire che singole aree del
sistema nervoso siano capaci di sottendere a più di un singolo comportamento (funzione,
compito) e di realizzare “transizioni” da un comportamento all’altro in maniera rapida e
reversibile. Tale uso delle stesse aree per differenti funzioni è, in effetti, in contrasto con
l’ipotesi maggiormente accettata in letteratura secondo cui il sistema nervoso centrale
sia organizzato sulla base di aree dedicate a funzioni o compiti specifici. Le proprietà
di rapidità e reversibilità di cambiamento di comportamento, inoltre, suggeriscono che
tale fenomeno possa avvenire senza modificare la struttura sottostante (cioè l’efficacia
sinaptica) e che, quindi, non sia un prodotto di qualche tipo di apprendimento. Alcuni
recenti lavori presentati in letteratura si pongono, allora, il problema di come spiegare
tale fenomeno. Un’interpretazione è legata alla possibilità che vi siano circuiti neurali,
a struttura fissa, con due tipi differenti di input, ovvero, non solo quello “classico”, ma
anche un input ausiliare che contenga la codifica di una specifica struttura neurale, la
quale è interpretata dal circuito neurale. Si pensa, cioè, che ogni singola rete neurale
possa potenzialmente rappresentare l’insieme di più circuiti latenti, in grado di eseguire
ora una funzione, ora un’altra, in base ad una codifica data in ingresso che ne riprogrammi
il funzionamento. Una stessa rete neurale, ad esempio, potrebbe essere riutilizzata “in
tempo reale” per gestire più di uno schema motorio, a seconda delle necessità, come
risultato di input ausiliari differenti, ovviamente appresi in precedenza. Tale struttura
programmabile, nel passaggio da un comportamento ad un altro, non richiedendo né
ulteriori fasi di apprendimento per i comportamenti già acquisiti, né alcuna modifica
strutturale, sembrerebbe proprio l’ideale per eseguire transizioni rapide e reversibili.
Obiettivo della mia tesi è studiare come la presenza di circuiti neurali programmabili
possa rendere l’apprendimento di differenti comportamenti, da parte di una singola strut-
tura, più efficace. A tal fine, ho messo a confronto due architetture, una programmabile e
l’altra non programmabile, come parte di uno scenario robotico appositamente progettato
per testare la possibilità di apprendere ed esibire comportamenti multipli. Più in parti-
colare, ho supposto che un robot possa imparare, tramite la sua architettura di controllo,
i
programmabile o meno, a raggiungere, su richiesta, ciascuna delle otto terminazioni dif-
ferenti di un labirinto costituito da una serie di tre biforcazioni e di dimensioni variabili.
Fondamentale, in tale scenario, la necessità per l’architettura di controllo di apprendere, e
poi esibire, comportamenti e non semplici traiettorie. In tal modo, ho potuto raccogliere
dati sufficienti per realizzare un’opportuna analisi.
Architetture neurali artificiali, algoritmi di apprendimento e funzioni per la simulazio-
ne e l’analisi dei dati sono stati interamente sviluppati in codice Matlab. In particolare, il
mio contributo si è concentrato sull’adattamento di un framework già presente progettan-
do ed implementando nuovi algoritmi di simulazione e analisi per lo specifico problema
da analizzare. Ho svolto, pertanto, un lavoro complessivo composto da fasi di analisi
del problema, progettazione dell’esperimento, scrittura del codice, debugging, esecuzione
finale ed elaborazione dei dati.
Nel capitolo 1 presento il problema biologico dei fenomeni di cambiamento di com-
portamento, in particolare, dopo una breve introduzione (§1.1), fornisco una descrizione
delle soluzioni in termini biologici proposte in letteratura (§1.2) e illustro una possibile
soluzione in termini di programmabilità (§1.3).
Nel capitolo 2 illustro la struttura del neurone biologico (§2.1) e presento il modello di
rete neurale artificiale usato in questa tesi (§2.2). In seguito, introduco un’architettura di
rete neurale, a partire da quella biologicamente plausibile scelta in precedenza, ma in più
dotata della proprietà di programmabilità (§2.4) e ne illustro struttura e funzionamento
tramite l’implementazione delle reti moltiplicative (§2.4.1) ed alcuni esempi funzionanti
(§2.5).
Nel capitolo 3 descrivo l’esperimento robotico, con il suo scenario (§3.1), le strutture,
i parametri caratteristici e le modalità di apprendimento delle architetture di tipo non
programmabile (§3.2) e programmabile (§3.3) e i criteri di valutazione utilizzati nelle fasi
di apprendimento e di analisi finale (§3.4).
Nel capitolo 4 riporto tutti i risultati ottenuti per l’apprendimento con uno specifico
labirinto (§4.2), per diversi labirinti appresi contemporaneamente (§4.3) e per il test delle
due architetture su labirinti di grandezza casuale (§4.4).
Le conclusioni finali, alcune possibili critiche e gli sviluppi futuri sono presentati nel
capitolo 5.
ii
Indice
1 Fenomeni di cambiamento di comportamento 1
1.1 Ilproblema ................................... 1
1.2 Sulle soluzioni proposte in letteratura . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 Trasmissione cablata e trasmissione di volume . . . . . . . . . . . . 2
1.2.2 Il fenomeno di neuromodulazione . . . . . . . . . . . . . . . . . . . 3
1.3 Una possibile soluzione in termini di programmabilità . . . . . . . . . . . . 6
2 Reti Neurali Programmabili 9
2.1 Sulla natura delle reti neurali biologiche . . . . . . . . . . . . . . . . . . . 9
2.2 CTRNN come modelli di reti neurali biologiche . . . . . . . . . . . . . . . 12
2.3 Requisiti di programmabilità . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Reti neurali a pesi fissi programmabili . . . . . . . . . . . . . . . . . . . . 14
2.4.1 Implementazione della rete mul . . . . . . . . . . . . . . . . . . . . 16
2.5 Implementazione di reti neurali programmabili . . . . . . . . . . . . . . . . 17
2.5.1 Reti a singolo neurone . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.2 Retiadueneuroni ........................... 19
2.6 Robustezza delle PNN e problemi di scala temporale . . . . . . . . . . . . 24
3 Architetture a confronto: Un esperimento robotico 29
3.1 Descrizione dell’esperimento robotico . . . . . . . . . . . . . . . . . . . . . 29
3.1.1 Lo scenario robotico . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.1.2 Le primitive eseguite dal robot ..................... 29
3.1.3 I parametri dell’architettura di controllo . . . . . . . . . . . . . . . 30
3.1.3.1 I segnali di ingresso: task etrigger ............. 31
3.1.3.2 I segnali di uscita . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.4 Generazione dei dataset per l’apprendimento . . . . . . . . . . . . . 34
3.1.4.1 Dataset per i test e labirinto base . . . . . . . . . . . . . . 35
3.1.4.2 Dataset per l’apprendimento di comportamenti . . . . . . 35
3.2 Architettura Non Programmabile . . . . . . . . . . . . . . . . . . . . . . . 38
iii
INDICE
3.2.1 Struttura ................................ 38
3.2.2 Apprendimento della CTRNN . . . . . . . . . . . . . . . . . . . . . 38
3.2.2.1 Modalità d’apprendimento di tipo online .......... 39
3.2.2.2 Modalità d’apprendimento di tipo batch .......... 39
3.2.2.3 Confronto tra modalità di tipo online e batch . . . . . . . 39
3.3 Architettura Programmabile . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.1 Struttura ................................ 40
3.3.2 Apprendimento della FNN . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.3 Apprendimento della PNN . . . . . . . . . . . . . . . . . . . . . . . 41
3.3.3.1 Modalità d’apprendimento standard ............ 42
3.3.3.2 Modalità d’apprendimento con soglia . . . . . . . . . . . . 43
3.3.3.3 Nota finale sulle modalità d’apprendimento . . . . . . . . 44
3.4 Valutazione dell’errore: la funzione di costo . . . . . . . . . . . . . . . . . . 44
4 Risultati e commenti 45
4.1 Esperimenti preliminari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.1.1 Sui parametri in comune a tutte le reti CTRNN . . . . . . . . . . . 45
4.1.2 Sulla soglia dell’apprendimento per la PNN . . . . . . . . . . . . . . 46
4.2 Apprendimento del dataset con il labirinto base . . . . . . . . . . . . . . . 47
4.2.1 Architettura Non Programmabile in modalità online ........ 47
4.2.2 Architettura Non Programmabile in modalità batch ......... 51
4.2.3 Architettura Programmabile . . . . . . . . . . . . . . . . . . . . . . 54
4.2.4 Confronto dei risultati . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3 Apprendimento del dataset con tre labirinti . . . . . . . . . . . . . . . . . 59
4.3.1 Architettura Non Programmabile in modalità online ........ 59
4.3.2 Architettura Non Programmabile in modalità batch ......... 67
4.3.3 Architettura Programmabile . . . . . . . . . . . . . . . . . . . . . . 76
4.3.4 Confronto dei risultati . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.4 Test delle architetture su labirinti di grandezza casuale . . . . . . . . . . . 86
5 Conclusioni 89
Bibliografia 92
Indice analitico 95
iv
Abbreviazioni
ANN Artificial Neural Network - Rete Neurale Artificiale
ANP Architettura Non Programmabile
AP Architettura Programmabile
CNS Central Nervous System - Sistema nervoso centrale
CTRNN Continuous Time Recurrent Neural Network - Rete Neurale Ricorrente a Tem-
po Continuo
ECF Extracellular fluid - Fluido extracellulare
ECM Extracellular matrix - Matrice extracellulare
FNN Feedforward Neural Network - Rete Neurale Feedforward
GJ Gap Junctions - Giunzioni di gap
LF Left Follower - Inseguitore di Sinistra
PNN Programmable Neural Network - Rete Neurale Programmabile
RF Right Follower - Inseguitore di Destra
STG Ganglio Stomatogastrico
TNT Tunneling Nanotubes - Tunnel a Nanotubi
VT Volume Transmission - Trasmissione di Volume
WT Wiring Transmission - Trasmissione Cablata
v
Capitolo 1
Fenomeni di cambiamento di
comportamento
In questo capitolo illustriamo il problema biologico della necessità di esibire fenomeni di
cambiamento di comportamento rapidi e reversibili, in riferimento al tipo di strutture e
meccanismi neurali coinvolti.
1.1 Il problema
Il sistema nervoso centrale (CNS) è in definitiva responsabile di tutto ciò che percepiamo,
facciamo e pensiamo. Esso svolge molte funzioni critiche che sfuggono alla nostra percezio-
ne. Per esempio, coordina l’attività dei nostri organi svolgendo una funzione fondamentale
per il mantenimento dell’omeostasi. La funzione cerebrale è estremamente complessa e
molto difficile da chiarire usando le correnti metodologie scientifiche. In letteratura, è
comunemente accettata la teoria che il sistema nervoso centrale sia organizzato in aree
neurali anatomofunzionali, cioè costituito da moduli “special-purpose” dedicati a singole
funzioni. Nella storia della neurofisiologia questa teoria, infatti, è stata supportata dalle
numerose osservazioni dirette sul comportamento di soggetti con specifiche aree lesiona-
te, in quanto, un’area cerebrale non più integra avrà le proprie funzioni compromesse e,
allora, tali funzioni potranno essere identificate e attribuite alla struttura in analisi (si
vedano, ad esempio, i lavori di Goldberg, 2004).
Tuttavia, una nuova e ampiamente accettata proposta, in contrasto con la precedente,
vuole che alcune aree cerebrali siano organizzate diversamente, cioè in modo da imple-
mentare più di una funzione nella medesima struttura. Sono infatti stati presentati alcuni
modelli computazionali in cui, ad esempio, aree cerebrali vengono controllate da altre
parti del cervello (Oztop e Arbib, 2002; Sauser e Billard, 2006; Hurley, 2008; Roy, 2008),
oppure eseguono diverse operazioni sotto condizioni differenti (Fyhn e altri, 2007) o, an-
1
CAPITOLO 1. FENOMENI DI CAMBIAMENTO DI COMPORTAMENTO
cora, che siano riciclate (Dehaene e altri, 2004), ovvero usate in differenti circuiti cerebrali
per differenti categorie di funzioni e domini cognitivi (Anderson, 2010).
Come lo stesso Anderson (2010) ha però dichiarato, la comprensione di come il riuso sia
effettivamente implementato nel cervello, lascia molte questioni ancora aperte, tra le quali,
come una struttura possa esibire selettività tra più funzioni, in tempi comparabili con
quelli di reazione agli stimoli e in luogo degli specifici collegamenti strutturali preesistenti;
oppure come sia possibile per una struttura fissa implementare funzioni diverse quando
questa sia eventualmente parte di differenti circuiti neurali.
Recenti osservazioni fisiche, sembrano inoltre supportare questo tipo di visione, de-
lineando un tipo di rete neurale biologica in grado di esibire fenomeni di cambiamento
di comportamento con transizioni rapide e reversibili, a partire da una struttura neurale
unica che risulti necessariamente sovraconnessa e tale che quest’eccesso di connessioni non
sia casuale o appreso, ma rappresenti in realtà dei circuiti latenti, attivabili di volta in
volta per gestire differentemente il flusso d’informazione (Bargmann, 2012).
1.2 Sulle soluzioni proposte in letteratura
Tra le possibili soluzioni presentate in letteratura spiccano la proposta di Agnati e altri
(2010) riguardo una possibile presenza di due tipi di trasmissioni che agiscano contempo-
raneamente formando reti più complesse e strettamente interconnesse tra loro: una di tipo
cablato (WT) ed un’altra di volume (VT). Proposta in parte confermata da quella della
Bargmann (2012), avvalorata da riscontri biologici, che affida ai soli neuromodulatori un
ruolo nel cambiamento di comportamento dei circuiti neurali.
1.2.1 Trasmissione cablata e trasmissione di volume
Volendo considerare i neuroni dal punto di vista biologico, questi, in fin dei conti, so-
no cellule vere e proprie e la connettività tra cellula e cellula implica, in generale, dei
meccanismi propriamente detti di comunicazione intercellulare. Agnati e altri (2010)
definiscono nel loro lavoro due tipi principali di comunicazione intercellulare: trasmissione
cablata (WT), dall’inglese Wiring Transmission, oppure trasmissione di volume (VT), ov-
vero Volume Transmission. Il criterio di classificazione scelto fa riferimento alle differenti
caratteristiche del canale di comunicazione, con confini fisici, nel primo caso (WT), e non
delimitato da alcun confine fisico, nel secondo (VT).
Del tipo WT sono la connessione sinaptica classica, le giunzioni di gap (GJ) e, di
recente scoperta, i tunnel a nanotubi (TNT). La trasmissione classica, che riguarda le
connessioni sinaptiche e la trasmissione dei potenziali d’azione, è indubbiamente il mec-
2
CAPITOLO 1. FENOMENI DI CAMBIAMENTO DI COMPORTAMENTO
canismo primario su cui si basano i neuroni per trasmettere informazioni e controllare il
comportamento.
La trasmissione di volume, al contrario, è caratterizzata dall’assenza di un canale di
collegamento che metta in comunicazione la sorgente del segnale con il suo destinatario;
questo collegamento è implicitamente non sicuro perché il segnale migra nel fluido extra-
cellulare (ECF). Questo tipo di comunicazione utilizza alcuni canali spesso spazialmente
tortuosi e divergenti, costituiti dalle fessure (circa 20 nm di diametro) tra le cellule che
sono riempite da fluido extracellulare e dalla matrice extracellulare (ECM). I segnali mi-
grano nello spazio extracellulare e potrebbero essere fermati se finiscono in un percorso
senza uscita, un cul-de-sac, se vengono disattivati da enzimi, se vengono ripuliti attraver-
so i capillari oppure se vengono catturati da trasportatori cellulari. Tali segnali possono
essere rilasciati da qualsiasi parte di una cellula cerebrale, ossia anche da dendriti, soma
e dai terminali assonici mancanti interamente di specializzazioni delle membrane sinap-
tiche, oppure provvisti di tale specializzazioni e formanti cellule astrogliali, microgliali,
oligodendrogliali ed ependimali.
Per la trasmissione di volume possiamo arruolare lo stesso set di segnali impegnati nella
trasmissione cablata, ovvero trasmettitori e ioni, ma anche molti altri, tra cui, mediatori
chimici intercellulari classici e non classici: neurotrasmettitori, neuromodulatori, fattori
di crescita, ioni (ad esempio Ca2+), gas (N O,CO2,CO) oppure segnali fisici (ad esempio
i potenziali d’azione).
Queste due reti, secondo Agnati e altri (2010), potrebbero rappresentare un meccani-
smo di gran lunga più complesso di quello attualmente modellato, in grado di interagire
tra loro ed indurre cambiamenti funzionali l’una sull’altra.
1.2.2 Il fenomeno di neuromodulazione
Gli studi condotti sul Caenorhabditis elegans e su crostacei (Bargmann, 2012) suggeriscono
come non sia possibile leggere il diagramma delle connessioni (connettoma) come se fosse
un set di istruzioni. Le connessioni anatomiche costituirebbero, invece, un set di potenziali
connessioni che prendono forma in riferimento al contesto e agli stati interni della rete, al
fine di stabilire diversi percorsi per i flussi di informazione. Il contesto e gli stati interni
sono spesso rappresentati molecolarmente da neuromodulatori, delle piccole molecole
che attivano i recettori accoppiati alle proteine G per modificare le dinamiche neurali,
l’eccitabilità e l’efficienza sinaptica. Questi neuromodulatori effettivamente cambiano la
composizione di un circuito neurale, reclutando nuovi neuroni o escludendo i partecipanti
precedenti (Harris-Warrick e Marder, 1991); riconoscere la loro importanza può essere
fondamentale per retroingegnerizzare le funzioni dei circuiti neurali.
3
CAPITOLO 1. FENOMENI DI CAMBIAMENTO DI COMPORTAMENTO
Ci interessa evidenziare come questi circuiti biologici cambino le proprie caratteristiche
in maniera rapida e reversibile. In Bargmann (2012), possiamo osservare come un circui-
to motorio composto da 30 neuroni, ovvero il ganglio stomatogastrico (STG) di granchi
e aragoste, isolabile e perfettamente funzionante in coltura cellulare, sia influenzato dai
neuromodulatori e con questi cambi il suo comportamento per assolvere a diverse funzioni
quali la gestione dei differenti ritmi della valvola pilorica e della macinazione gastrica di
questi crostacei. Le funzioni assolte da questo set di neuroni sono identificabili in sotto-
circuiti dedicati, per i quali s’intende ovviamente sottoinsiemi di neuroni, le cui strutture
non sono interamente separabili ma condividono alcuni neuroni. In particolare, questi
stessi neuroni, grazie alla neuromodulazione, cambiano comportamento quando coinvolti
da un particolare circuito piuttosto che da un altro. I tempi di variazione dei comporta-
menti, ossia dell’attivazione di un differente sottocircuito neurale, sono confrontabili con
quelli della stimolazione da parte dei neuromodulatori che, nel funzionamento proprio
del STG, è prodotta dall’interazione del crostaceo con l’ambiente. Da notare ancora, il
ruolo degli stessi neuroni già attivi nel gestire le successive risposte alla neuromodulazio-
ne: un circuito in funzione può infatti gestire anche la sua risposta ai neuromodulatori
in termini di auto-spegnimento e attivazione di altri circuiti neurali con scopi differenti.
In definitiva, lo stato successivo della rete dipende sia dallo stato presente che dall’input
neuromodulatorio.
La stessa Bargmann (2012) analizza le caratteristiche principali del connettoma di C.
Elegans, un verme nematode fasmidario, fornitoci da lavori scientifici che risalgono al 1986,
al fine di definire i limiti di un’indagine di tipo strutturale, in favore della strada, oggi
ancora aperta, dello studio funzionale attraverso l’analisi dei meccanismi neuromodulatori.
Nel C. Elegans la prima caratteristica che salta all’occhio umano è come da una così
semplice anatomia possa venir fuori una tale complessità. Alcune caratteristiche sono fa-
cilmente comprensibili osservando la sua anatomia, ad esempio, circa un terzo dei neuroni
hanno specializzazioni indicanti una funzione sensoria, un altro terzo ha sinapsi all’interno
di muscoli che li identifica come neuroni motori, e l’ultimo terzo ha sia input che output
in abbondanza indicanti un ruolo nell’integrazione. Il diagramma delle connessioni, in ge-
nerale, ha una forma gerarchica; i neuroni sensori sono più presinaptici che postsinaptici,
per i neuroni motori è vero l’opposto. Alcuni gruppi di neuroni sono densamente connessi,
suggerendo funzionalità in comune. Eppure, ad un livello più profondo, il connettoma era
e resta difficile da leggere. I neuroni sono connessi tra loro, a volte iperconnessi, tanto
che è possibile rintracciare il collegamento di ogni neurone a qualsiasi altro neurone in tre
passaggi sinaptici. La modellazione ha pertanto fallito nel generare un’ipotesi che spieghi
il comportamento generale del connettoma. La spiegazione teorica è molto semplice: non
c’è, in effetti, un unico modo di leggere l’intero diagramma delle connessioni.
4
CAPITOLO 1. FENOMENI DI CAMBIAMENTO DI COMPORTAMENTO
Un neurone, un comportamento Un’analisi dei neuroni coinvolti nel movimento
ha riportato che tale funzionalità, ad esempio, è associata non tanto a singoli neuroni, in
modo qualitativo, ma a funzioni neurali quantitative e distribuite. Ciò è stato possibile
tramite lo studio di neuroni isolati e cresciuti in colture dedicate, agendo con opportune
stimolazioni.
Un comportamento, più circuiti La profonda eccezione alla regola “un neurone,
una funzione” è stata scoperta caratterizzando i comportamenti sotto differenti condizioni.
Ad esempio, nel C. Elegans, lo scansare dell’odore repulsivo dell’ottanolo in particolari
concentrazioni può essere generato da due differenti set di neuroni. Negli animali ben
nutriti, questo comportamento è mediato dai neuroni nocicettivi ASH, ma dopo un’ora
di digiuno, viene distribuito tra i neuroni nocicettivi ASH, AWB e ADL, rivelando un
cambiamento nella composizione del circuito. Risultati iniziali hanno mostrato che lo
stato di sazietà poteva essere simulato con della serotonina, un trasmettitore associato
nel C. Elegans ai comportamenti relativi alla nutrizione. Ulteriori analisi hanno poi
rivelato che dopamina, tiramina e octopamine, così come numerosi neuropeptidi fungano
da input neuromodulatori. Queste ammine e peptidi sono prodotte da una varietà di
neuroni e interagiscono in relazioni antagoniste mutue. Ad una prima approssimazione, i
neuromodulatori sembrano scambiare i circuiti tra due stati di funzionamento alternativi:
uno condotto dal ASH solamente e l’altro da ASH, AWB e ADL. Le azioni di questi
modulatori sono in ogni caso molecolarmente distribuite nel sistema nervoso.
Un altro esempio lo vediamo per come il nutrirsi influenzi il circuito dedicato all’aero-
tassi, e lo stesso nutrimento è regolato da una modulazione di secondo ordine. L’aerotassi
è più vigorosa negli animali affamati che in quelli ben nutriti, in quanto entrano in gioco
più neuromodulatori. Un input neuropeptidico mediato dal recettore npr-1 accoppiato a
proteine G è un importante segnale che impone una regolazione sul circuito di nutrizione;
un’altra è il peptide relativo alla TGFbeta. Questi input di nutrizione si contrappongono
ad un altro gruppo di neuroni che potenziano l’aerotassi, anche se solo una piccola parte
di questi è connessa con la rilevazione diretta dell’ossigeno. Il circuito d’ossigenazione,
d’altra parte, altera la nutrizione degli animali in ipossia (mancanza di ossigeno) che
pertanto li rende insensibili alla presenza di cibo.
Un neuromodulatore, più comportamenti Il recettore neuropeptidico npr-1 che
influenza l’aerotassi, regola anche un secondo comportamento, ovvero l’aggregazione di più
animali in gruppi di caccia. L’aggregazione è innescata da un numero di neuroni sensoriali,
che include l’ASH e i neuroni ossigeno-sensibili URX, i quali attuano una regolazione della
sensibilità al feromone. Sorprendentemente, npr-1 può influire sulla scelta tra due diversi
comportamenti avviati dallo stesso neurone sensorio quali l’aggregazione e lo schivare le
5
CAPITOLO 1. FENOMENI DI CAMBIAMENTO DI COMPORTAMENTO
sostanze nocive. Quest’ultima è realizzata dal circuito ASH che agisce sui circuiti motori
per indietreggiare. ASH gestisce quindi due comportamenti principali: una schivata, senza
tener conto della neuromodulazione, e l’aggregazione, ma solo quando il livello di npr-1 è
basso.
Implicazioni dirette di questi studi L’informazione che scorre nel connettoma di
C. Elegans è mediata dai neuromodulatori, o meglio, dipende dai loro stati. Il diagramma
delle connessioni racchiude il potenziale per manifestare comportamenti multipli, ma solo
un set di quei comportamenti è accessibile in un dato momento. Questi risultati indicano
che la neuromodulazione seleziona uno o più specifici set di sinapsi funzionali rispetto
ad un numero più ampio anatomicamente definito. Inoltre il connettoma potrebbe non
essere esattamente così come è stato delineato, proprio perché i neuromodulatori vengono
rilasciati a livello extrasinaptico e possono costituire essi stessi dei collegamenti tra più
circuiti anatomicamente separati. Il connettoma del C. Elegans consiste di 302 neuroni,
ma il genoma codifica oltre 200 neuropeptidi, suggerendo che il potenziale per la neu-
romodulazione sia considerevole. Con questi numeri non si può non supporre che molte
funzioni dei circuiti neurali siano multiplexate proprio da neuromodulatori.
In generale, come già accennato precedentemente, Bargmann (2012) si aspetta che
qualsiasi rete neurale biologica risulti sovraconnessa e che l’eccesso di connessioni non sia
casuale o appreso, ma rappresenti in realtà dei circuiti latenti, attivabili di volta in volta
per gestire differentemente il flusso d’informazione.
1.3 Una possibile soluzione in termini di programma-
bilità
Sulla base di quanto detto finora, non è da escludere un’altra possibile soluzione per
lo sviluppo di strutture neurali biologiche in grado di esibire funzioni multiple. L’idea
che i tessuti neurali siano veramente dotati di quell’effettiva “programmabilità” a cui
spesso, in letteratura, molti autori alludono solo metaforicamente o, comunque, senza una
possibile soluzione interpretativa, potrebbe rivelarsi vincente e addirittura fondarsi proprio
sui meccanismi di neuromodulazione o di doppia rete WT/VT descritti nel paragrafo
precedente.
Donnarumma e altri (2010) hanno rivisitato l’idea di controllare il comportamento di
una rete neurale attraverso i suoi input, quello “classico”, più un input ausiliare a cui è
affidata la codifica della struttura in termini di pesi sinaptici, che è parte di una lunga
storia della quale possiamo isolare due tipi di approccio principali. Nel primo, gli input
ausiliari sono in grado di modulare il comportamento della rete, sebbene non codifichino
6
CAPITOLO 1. FENOMENI DI CAMBIAMENTO DI COMPORTAMENTO
la struttura della rete modulata (Jordan, 1986; Touretzky, 1990; Schmidhuber, 1992; Ito
e Tani, 2004; Nishimoto e altri, 2008). Molti lavori con questo tipo di approccio hanno
quasi completamente tralasciato ogni plausibilità biologica. Nel secondo approccio Sch-
neider e Oliver (1991); Giles e altri (1992); Noelle e Cottrell (1994); Hochreiter e altri
(2001); Prokhorov e Tyukin (2002), invece, gli input ausiliari hanno l’abilità effettiva di
programmare la rete, specificando la sua struttura. In molti di questi lavori il concetto
di fondo è stato di avere sistemi moltiplicativi che consentano di fornire i valori dei pesi
di una rete attraverso degli input ausiliari. In tutti questi lavori però la plausibilità bio-
logica delle reti neurali artificiali non è stata tenuta in conto, con l’eccezione del recente
modello di spiking neurale di Eliasmith (Eliasmith, 2005) in grado di codificare dinamica-
mente trasformazioni nell’attività di certi livelli neurali, facendo sì che differenti circuiti
implementino le trasformazioni specificate.
Nella letteratura sulle reti neurali, sia artificiali che biologiche, anche la nozione di
controllo, strettamente connessa a quella di programmabilità, è divisa in due branche.
Una comprende i lavori di quegli autori citati all’inizio del capitolo (Oztop e Arbib, 2002;
Sauser e Billard, 2006; Hurley, 2008; Roy, 2008) tra i quali forse emerge il lavoro di Hur-
ley (Hurley, 2008, p. 42), ovvero quello nel quale al controllo nel modello è data una
descrizione funzionale che deliberatamente si astrae dai dettagli di implementazione neu-
rale. L’altra, invece, è focalizzata sull’implementazione e comprende i lavori degli autori
appartenenti al secondo approccio su menzionato. Queste due branche sembrerebbero
essere disgiunte ma, grazie al lavoro di (Donnarumma e altri, 2012), possiamo notare che
le seconde, in effetti, sembrano proprio completare il lavoro delle prime.
Donnarumma e altri (2012) hanno, quindi, proposto un’architettura neurale program-
mabile, biologicamente plausibile a livello neurale che ha alcune soluzioni in comune al
modello di Eliasmith (2005), per il quale i criteri di robustezza, temporizzazione e ap-
prossimazione sono trattati esplicitamente così da soddisfare i requisiti (a), (b) e (c) per
la programmabilità che saranno illustrati nel capitolo 2.
La similitudine con la programmazione è sorprendente. L’ipotesi di programmabilità
non sarà proprio la soluzione adottata nel biologico, ma può fornire un buon esempio
di come la natura realmente operi, a prescindere dal tipo sistema fisico sviluppatosi in
natura (neuromodulazione, trasmissioni miste WT/VT, ecc.), e dimostrare come il cervello
possa implementare effettivamente delle proprietà computazionali, idea che ha da sempre
stuzzicato tutti i più grandi pensatori.
Quindi, una possibile chiave interpretativa al problema presentato nel paragrafo 1.1
verte sulla possibilità che le strutture neurali siano dotate di programmabilità. La pro-
prietà di programmabilità di una rete, come spiegazione dei fenomeni di cambiamento di
comportamento rapidi e reversibili, sembrerebbe non essere in disaccordo con le proposte
7
CAPITOLO 1. FENOMENI DI CAMBIAMENTO DI COMPORTAMENTO
già presenti in letteratura che, in taluni casi, sono anche state verificate sperimentalmen-
te (§ 1.2). Inoltre, risulterebbe una possibile spiegazione di più alto livello di come le
strutture neurali siano effettivamente utilizzate dalla natura.
In questa tesi, nell’ambito di un “toy problem”, ci proponiamo di comprendere se
circuiti neurali dotati della proprietà di programmabilità abbiano un qualche vantaggio
rispetto ai circuiti neurali privi di tale proprietà, nel compito di apprendere comportamenti
multipli, ovvero più funzioni gestite dalla stessa architettura neurale.
8
Capitolo 2
Reti Neurali Programmabili
Nel capitolo precedente abbiamo esposto il problema nel biologico di fenomeni di cam-
biamento di comportamento rapidi e reversibili. Il nostro lavoro si concentra adesso sulla
possibilità di fornire un modello artificiale, ma anche biologicamente plausibile, che ne
rappresenti una possibile soluzione. In questo capitolo, allora, dopo una breve panorami-
ca sul neurone biologico ed il suo ruolo nel sistema nervoso centrale, presentiamo la rete
neurale artificiale che più si presta a modellarne il funzionamento, mantenendo una plau-
sibilità biologica. Successivamente, proponiamo un metodo per dotare una rete neurale
artificiale biologicamente plausibile della proprietà di programmabilità.
2.1 Sulla natura delle reti neurali biologiche
Le cellule neurali, le unità fondamentali di un cervello, sono relativamente semplici nella
loro morfologia. Anche se un cervello umano contiene un numero straordinario di queste
cellule, dell’ordine di 1011 neuroni, che possono essere classificate almeno in un migliaio di
tipi differenti, tutte le cellule nervose condividono la stessa architettura. La complessità
del comportamento umano dipende meno dalla specializzazione delle singole cellule ner-
vose e più sul fatto che molte di queste cellule insieme formino precisi circuiti anatomici
e che le proprietà della rete emergano dal modo in cui queste cellule sono interconnesse
tra loro. Siccome da pochi semplici principi d’organizzazione può derivare una comples-
sità considerevole, è possibile apprendere tantissimo su come il sistema nervoso produca
i comportamenti a partire da alcune funzionalità di base:
•il meccanismo tramite il quale i neuroni producono un segnale;
•gli schemi di connessione tra cellule nervose;
•la relazione dei diversi schemi di interconnessione con i differenti tipi di comporta-
menti;
9
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
•i modi in cui i neuroni e le loro connessioni sono modificati dall’esperienza.
Un tipico neurone ha quattro regioni morfologicamente definite: il corpo cellulare, i den-
driti, l’assone e i terminali presinaptici (fig. 2.1.1). Ciascuna di queste regioni ha ruoli
distinti nella generazione dei segnali e nella comunicazione tra cellule nervose (Kandel
e altri, 2000).
Il corpo cellulare, anche detto soma, è il centro metabolico della cellula; contiene
il nucleo, che conserva i geni della cellula, così come il reticolo endoplastico nel quale
vengono sintetizzate le proteine cellulari. Il corpo cellulare dà generalmente luogo a due
tipi di processi: lo sviluppo di svariati dendriti corti e di un lungo assone tubolare.
I dendriti si diramano ad albero e costituiscono l’apparato principale per la ricezione
dei segnali provenienti dalle altre cellule nervose. L’assone, invece, tende ad estendersi
lontano dal corpo cellulare ed è il condotto principale per portare il segnale agli altri
neuroni. Un assone può infatti convogliare segnali elettrici per distanze che vanno da
0.1 mm a 3 m. Questi segnali elettrici, chiamati potenziali d’azione, sono impulsi on-off
rapidi e transitori, con un’ampiezza di 100 mV e una durata di circa 1 ms. I potenziali
d’azione sono generati all’altezza di una regione d’avvio chiamata poggio assonico (il seg-
mento iniziale dell’assone) e da là sono condotti lungo l’assone senza distorsione o errore
ad una velocità di 1-100 m/s. L’ampiezza del potenziale d’azione in viaggio per l’assone
rimane costante perché il potenziale d’azione è un impulso on-off che viene rigenerato a
intervalli regolari lungo l’assone. Pertanto, l’informazione portata dal potenziale d’azio-
ne non è determinata dalla forma del segnale ma dal percorso lungo il quale il segnale
viaggia. Tramite questi segnali il cervello riceve, analizza e trasferisce informazione. Per
incrementare la velocità di trasporto del segnale, alcuni assoni sono avvolti in uno strato
di mielina. La copertura mielinica è interrotta ad intervalli regolari dai nodi di Ranvier,
gli spot dove il potenziale d’azione viene rigenerato. Alla fine dell’assone, il suo tubolare
si divide in sottili ramificazioni che formano i siti di comunicazione con gli altri neuroni.
Il punto in cui due neuroni comunicano è conosciuto come sinapsi. La cellula nervosa
che trasmette il segnale è chiamata cella presinaptica, la cellula ricevente è invece chiamata
postsinaptica. La cellula presinaptica trasmette segnali dalle parti rigonfie finali dei rami
assonici, chiamati terminali presinaptici. In ogni caso, una cella presinaptica non tocca
realmente o comunica anatomicamente con la cellula postsinaptica in quanto le due cellule
sono separate da uno spazio detto, fessura sinaptica. Molti terminali sinaptici finiscono sui
dendriti dei neuroni postsinaptici, ma i terminali possono anche finire sul corpo cellulare
o, più di rado, all’inizio o alla fine dell’assone della cellula ricevente (fig. 2.1.1).
10
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Figura 2.1.1: Struttura di un neurone .Molti neuroni nel sistema nervoso dei vertebrati
hanno parecchie caratteristiche principali in comune. Il corpo cellulare contiene il nucleo
che conserva il materiale genetico e dal quale sono prodotti due processi cellulari: assoni
e dendriti. Gli assoni, elementi trasmittenti del neurone, possono variare molto in lun-
ghezza: alcuni possono estendersi per più di 3 m all’interno del corpo, altri sono invece
molto sottili (tra 0,2 e 20 m in diametro). Molti assoni sono isolati dalla mielina che
è interrotta ad intervalli regolari dai nodi di Ranvier. Il potenziale d’azione, il segnale
condotto dalle cellule, è generato all’altezza del poggio assonico, il segmento iniziale, op-
pure poco più avanti, all’altezza del primo nodo di Ranvier. Le ramificazioni assoniche di
un neurone (il neurone presinaptico) trasmettono segnali ad un altro neurone (la cellula
postsinaptica) in un sito chiamato sinapsi. Le ramificazioni di un singolo assone possono
formare sinapsi anche con altri 1000 neuroni. Mentre l’assone è l’elemento di output del
neurone, i dendriti (apicali e basali) sono gli elementi di input e, insieme con il corpo cel-
lulare, ricevono i contatti cellulari da altri neuroni. (Immagine tratta da Kandel e altri,
2000)
11
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
2.2 CTRNN come modelli di reti neurali biologiche
Le Reti Neurali Ricorrenti a Tempo Continuo (CTRNN) che intendiamo utilizzare
sono reti di neuroni che si ispirano alla biologia, descritte dalla seguente equazione generale
(Hopfield e Tank, 1986; Beer, 1995):
τi
dyi
dt =−yi+σ N
X
j=1
wij yj+θi+Ie
i(t)!i∈ {1, . . . , N}(2.2.1)
dove Nè il numero di neuroni della rete, e per ogni neurone i:
•τiè la costante di tempo della membrana;
•yiè la frequenza di sparo media (nel tempo);
•θiè la soglia obias;
•σ(x)è la funzione di attivazione logistica standard, che è σ(x)=1/(1 + e−x);
•Ie
i=PN+L
j=N+1 wij xjè una corrente di ingresso esterna in arrivo da Lsorgenti esterne
xj;
•wij è l’efficacia sinaptica (peso) della connessione in arrivo dal neurone j, o dalla
sorgente esterna xj, al neurone i.
Sebbene questo modello sia più elementare di altri modelli più accurati presenti in lette-
ratura, una CTRNN è un’astrazione molto invitante delle reti biologiche perché:
•è computazionalmente poco dispendiosa da implementare (Kier e altri, 2006);
•è matematicamente trattabile (Beer, 1995);
•è un approssimatore di dinamiche universale (Funahashi e Nakamura, 1993);
•i suoi neuroni possono avere un’interpretazione biologica diretta (Vedi ad esempio
Dunn e altri, 2004; Kier e altri, 2006).
L’ultimo punto è particolarmente importante per i nostri scopi in quanto afferma che è
possibile sviluppare architetture CTRNN come modelli plausibili di circuiti neurali biolo-
gici. Inoltre, la proprietà di universalità delle CTRNN afferma che assegnata una soluzio-
ne traiettoria di un generico sistema dinamico continuo, esiste sempre una CTRNN con
una data struttura tale da fornire una soluzione che la approssimi con qualsiasi grado di
precisione (Funahashi e Nakamura, 1993).
12
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Un ulteriore chiarimento, per quanto ci riguarda, va dato sul tipo di segnali di input
che utilizzeremo. Se consideriamo gli input di un gruppo di celle neurali come prove-
nienti da segnali esterni sensoriali o da altri gruppi di neuroni, ci sembra più plausibile
biologicamente restringere questi alle sole correnti di ingresso esterne Ie
i(t).
Per quel che riguarda gli output, invece, le scelte più comuni sono le traiettorie, so-
luzioni dell’equazione (2.2.1), oppure gli stati stabili della rete - a volte definite come
attrattori computazionali (Hopfield e W., 1985; Siegelman e altri, 2001). Nel caso parti-
colare in cui l’equazione (2.2.1) sia globalmente stabile, questa avrà un unico punto fisso
stabile, indipendentemente dalle condizioni iniziali, considerando come output lo stato
stabile della rete, la CTRNN implementa la seguente funzione:
f:x∈RL→f(x)≡¯y(x)∈RN
dove ¯y(x)è il punto fisso relativo all’input x. In generale, la scelta degli attrattori
computazionali di cui sopra implica che gli ordini di grandezza dei tempi di variazione
degli input siano grandi rispetto all’ordine di grandezza del tempo - determinato dalla
costante di tempo τi- della CTRNN.
Per concludere, osserviamo che, per quanto questo modello non includa alcuna caratte-
ristica della trasmissione di volume, limitandosi cioè alla sola trasmissione cablata, la scel-
ta non ci impedisce di sviluppare un’ipotesi completa su un meccanismo di apprendimento
comportamentale, quale quello che presenteremo più avanti.
2.3 Requisiti di programmabilità
Grazie al lavoro di (Garzillo e Trautteur, 2009) siamo in grado di definire dei requisiti
di programmabilità per una classe di sistemi di processo simbolico, non necessariamente
discreta, sia artificiale che biologica:
(a) Esiste un’effettiva codifica della struttura dei singoli sistemi in pattern di input,
output e variabili interne.
(b) I codici forniti da tale codifica possono essere applicati a specifici sistemi del-
la classe, designati come interpreti (o universali), così che l’interprete realizzi il
comportamento del sistema codificato.
(c) I codici possono essere processati dai sistemi della classe al pari con gli input, gli
output e le variabili interne.
Allora, circuiti cerebrali locali o reti di circuiti cerebrali locali, dotati di programmabilità,
senza cambiare la connettività o l’efficacia associata con le connessioni sinaptiche, possono
13
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
esibire cambiamenti qualitativi di comportamento al volo, causati e controllati da input
ausiliari (programmazione) - condizioni (b) e (c) - i quali codificano differenti circuiti
cerebrali - condizione (a).
Per lo scopo prefissatoci possiamo utilizzare delle Reti Neurali Artificiali (ANN) bio-
logicamente plausibili, ovvero partire dalle CTRNN descritte nel paragrafo 2.2. Que-
sto tipo di ANN biologica deve ricevere degli input ausiliari che possano controllare il
comportamento della rete stessa.
Donnarumma e altri (2012) hanno proposto, sulla base di tale premessa, una archi-
tettura neurale programmabile, biologicamente plausibile a livello neurale, che ha alcune
soluzioni in comune al modello di Eliasmith (Eliasmith, 2005), per il quale i criteri di robu-
stezza, temporizzazione e approssimazione sono trattati esplicitamente così da soddisfare
i requisiti (a), (b) e (c) per la programmabilità.
2.4 Reti neurali a pesi fissi programmabili
Per ottenere un’architettura ANN a pesi fissi programmabile, in accordo con i punti della
sezione precedente, ricordiamo che l’input ai neuroni biologici è modellato come somme di
prodotti tra i segnali di output che giungono da altri neuroni attraverso connessioni pesate
e i pesi associati a queste connessioni. Pertanto l’evoluzione di una rete è confinata tra
le somme dei prodotti tra pesi e segnali d’uscita. Il sistema utilizzato da (Donnarumma
e altri, 2012) consiste nell’estrarre l’operazione di moltiplicazione usando delle sottoreti
che producano i risultati di tali operazioni di moltiplicazione tra output e pesi. In tal
modo, i pesi diventano un input ausiliare alla rete alla quale siano state aggiunte le
sottoreti di moltiplicazione. Un’architettura neurale del genere viene allora creata con
due tipi di linee di input: le linee di input ausiliare (o di programmazione) e le linee
di input standard. Notiamo che alle linee di input ausiliare viene fornito un codice, o
programma, che descriva la rete originale; tale azione ricorda il codice di una macchina
virtuale fornito ad un’architettura computazionale standard oppure i numeri di Gödel
forniti ad una macchina di Turing universale.
Per chiarire meglio il nostro approccio, supponiamo che mul sia una ANN ideale che
effettui una moltiplicazione tra i due valori di input aeb. La rete mul è composta da M
neuroni, con i pesi appropriati, e uno di questi Mneuroni è il neurone di output k, con
il valore di uscita yktale che yk=a·b.
Data una generica ANN G, composta di Nneuroni, consideriamo due qualsiasi neuroni
iejlegati da una connessione con peso wij .E’ allora possibile costruire una Rete
Neurale Programmabile (PNN) Gmul che duplichi esattamente il comportamento di
Gattraverso la rete di moltiplicazione mul, secondo i seguenti passi:
14
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
1. Reindirizzamento dell’output del neurone jcome input adi mul.
2. Settaggio dell’input di bdi mul a p=wij .
3. Reindirizzamento dell’output del neurone kdi mul come input del neurone i, con
peso pari ad 1.
Figura 2.4.1: L’ estrazione della moltiplicazione. A sinistra è mostrata la rete mul che
prende due input aebe li moltiplica. A destra la w-sostituzione della connessionewij tra
i neuroni iejattraverso la rete mul. (Immagine tratta da Donnarumma e altri, 2012)
Supponiamo per il momento che la ANN mul produca esattamente il suo output atteso
e senza alcun ritardo. Allora, il comportamento della PNN Gmul, ristretto ai neuroni ie
j, è identico al comportamento della rete originale Gperché per qualsiasi valore di output
del neurone presinaptico i, il segnale postsinaptico ottenuto attraverso la sottorete mul è
identico a quello ottenuto nella rete originale G.
Notiamo adesso che se si fa l’ipotesi classica che i neuroni della ANN abbiano valori
di output contenuti nell’intervallo (0,1) e che i pesi wij abbiano valori compresi in un
intervallo (min, max), è possibile riformulare la procedura precedente in questo modo:
sostituiamo la connessione wij con una nuova connessione con peso pari a min, in parallelo
ad una rete di moltiplicazione mul che riceve come input standard yj∈(0,1) e come input
di programmazione p= (wij −min)/(max −min)∈(0,1), collegata al neurone icon
una connessione di peso pari a (max −min), come mostrato nella . Adesso che gli input
della rete mul apparterranno sempre all’intervallo (0,1), abbiamo bisogno solamente di
una rete mul che esegua un prodotto di variabili appartenenti allo stesso intervallo (0,1).
D’ora in avanti ci riferiremo a tale operazione come ad una w-sostituzione , ovvero la
sostituzione di una connessione pesata wij .
Adesso, data una generica ANN Gcomposta da Nneuroni, con input x= [xN+1, . . . , xN+L]
e pesi wij ∈(min, max), con i∈ {1, . . . , N }ej∈ {1, . . . , N +L}, possiamo costruire una
PNN Gmul applicando uniformemente una w-sostituzione.
15
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Figura 2.4.2: Procedura di w-sostituzione. La procedura di w-sostituzione con i pesi wij ∈
(min, max). Per ogni peso è usata una rete mul alla quale viene fornito il corrispondente
programma p= (wij −min)/(max −min). (Immagine tratta da Donnarumma e altri,
2012)
In questo modo si ottiene una PNN Gmul composta da N+N·M·(N+L)neuroni,
con dati di input x= [xN+1, . . . , xN+L]e input ausiliari p= [p1, . . . , pN(N+L)], che esibisce
un comportamento pari a quello della rete G.
Notiamo inoltre che questa PNN Gmul, creata a partire da una ANN di Nneuroni,
non riproduce solamente l’esatto comportamento della rete Gdi partenza, ma qualsiasi
comportamento di una ANN di Nneuroni, dati i valori pcorrispondenti. Allora la PNN
Gmul possiede programmabilità perché risponde esattamente alle condizioni (a), (b) e (c)
di programmabilità formulate nella sezione precedente. Infatti i valori pcodificano in
modo effettivo una ANN di Nneuroni, con Linput i cui pesi sono decodificati tramite:
wij = (max −min)·ph+min (2.4.1)
Inoltre il codice pha valori nello stesso intervallo delle variabili dei neuroni ordinari
che possono essere processati insieme agli input, output e variabili interne ordinari. In
questo senso gli input ausiliari pgiocano il ruolo dei programmi che sono interpretati dalle
PNN Gmul.
2.4.1 Implementazione della rete mul
Le CTRNN presentate precedentemente possono essere utilizzate per creare una rete mul∗
che approssimi la rete mul ideale appena presentata. Per ottenere la mul∗utilizziamo un
algoritmo di apprendimento di Differential Evolution Price (1999). Questo algoritmo era
pensato per essere eseguito su popolazioni di 30 piccole CTRNN con τi=τ∗= 1.
Senza dubbio, bisogna tenere in conto gli aspetti temporali di questa realizzazione
perché la rete mul∗con attrattori computazionali ha un tempo di attesa finito per rag-
16
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
giungere i valori asintotici, a paragone con l’attesa nulla delle sottoreti mul ideali richieste
dalla w-sostituzione definita precedentemente. Per approssimare questo risultato abbiamo
scelto mul∗con costanti di tempo τ∗τi, dove τisono le costanti di tempo della rete
originale a cui la w-sostituzione fa riferimento.
2.5 Implementazione di reti neurali programmabili
Riportiamo qui il comportamento di alcune reti neurali programmabili perché sia d’esem-
pio su quanto teorizzato nel precedente paragrafo. Ricordiamo che le PNN a peso fisso
Gmul∗usano le sottoreti moltiplicative mul∗che approssimano una sottorete moltiplicativa
ideale.
Forniremo alcuni esempi di reti artificiali nelle quali, per ogni neurone i, la soglia
corrispondente θipuò essere interpretata come la presenza di una connessione di peso θi
e valore in input fisso pari ad 1. Di conseguenza, le soglie saranno trattate come pesi
addizionali. Allora, data una generica ANN G, composta di Nneuroni che hanno come
input x= [xN+1, . . . , xN+L], la relativa PNN Gmul∗è stata ottenuta per applicazione della
w-sostituzione di kwconnessioni e kθsoglie di G, per 0< kw< N (L+ 1) e0≤kθ< N .
Pertanto, abbiamo una PNN Gmul di input programmabili kwekθ.
Alcuni esperimenti sono stati eseguiti (Donnarumma e altri, 2012) su piccole CTRNN
che sono state integrate con il metodo di Eulero. Il passo di integrazione usato dell’algo-
ritmo di Eulero è stato scelto pari a 4T= 0.1e le costanti di tempo dei neuroni sono
state settate ai valori di τi≥1.
Notiamo che negli esempi che saranno mostrati non è mai stato fatto uso di algoritmi
di apprendimento: l’unica fase di apprendimento è stata quella relativa alla costruzione
delle mul∗, così come descritta nel paragrafo 2.4.1.
Tutti gli esperimenti in questa tesi sono stati svolti per costruzione diretta delle reti
interpreti con il nostro sistema di w-sostituzione. La grandezza delle reti interpreti e l’in-
tervallo di w-sostituzione (min, max)sono stati scelti nei diversi esperimenti in relazione
alla grandezza dell’intervallo di peso della classe delle reti da simulare.
2.5.1 Reti a singolo neurone
Come un esempio di PNN, cominciamo il nostro studio considerando una rete a singolo
neurone con un’autoconnessione. Questa rete può essere descritta dalla seguente equazione
differenziale:
τdy
dt =−y+σ(wy +θ+I).(2.5.1)
17
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Possiamo studiare i comportamenti qualitativi di tale piccola rete (Beer, 1995) in
maniera analitica: la variazione dei due parametri weImodifica il diagramma di fase della
rete. Esistono particolari valori dei parametri per il quale il sistema subisce biforcazioni. In
particolar modo, avviene un cambiamento qualitativo nei comportamenti quando wpassa
per il valore 4. L’equazione 2.5.1 mette in evidenza un punto di equilibrio di stabilità
globale quando w < 4(figura 2.5.2, riquadri (a) e (c)) e tre punti d’equilibrio, per un
intervallo di valori di I, quando w > 4(fig. 2.5.2, riquadri (e) e (g)). In quest’ultimo caso,
per valori di Ifuori dell’intervallo, l’equazione 2.5.1 rivela un punto di stabilità globale,
mentre per Iappartenente all’intervallo i due punti di equilibrio più esterni sono stabili e
il più interno instabile.
Allora, chiamiamo NetOne1,N etOne2,NetOne7eN etOne8, quattro differenti reti a
singolo neurone con θ= 0, e pesi delle autoconnessioni rispettivamente pari a w1= 1,
w2= 2,w3= 7 ew4= 8 (il numero in apice dei nomi delle reti indicano il valore
del peso delle autoconnessioni). Queste quattro reti differiscono per i diversi pesi delle
autoconnessioni. Dopodiché, una singola PNN chiamata NetOnemul∗è stata generata
scegliendo una delle reti scelte e applicando la w-sostituzione usando mul∗. A N etOnemul∗
è stato dato un solo input di programma pw= (w−min)/(max −min)∈(0,1) con
min = 0.5emax = 8.5. In figura 2.5.1 si può vedere una schematizzazione di questa
w-sostituzione.
Notiamo che la peculiarità della rete a pesi fissi N etOnemul∗è che questa può essere
programmata in modo da ottenere due tipi di comportamenti qualitativamente differenti
scegliendo la relativa pw.
In figura 2.5.2, i riquadri (a), (c), (e) e (g) mostrano gli equilibri di N etOne1,N etOne2,
NetOne7eN etOne8in funzione di I, comparate con gli equilibri calcolati numericamente
della NetOnemul∗a pesi fissi (ristretti all’output del neurone originale) alimentato, rispet-
tivamente, con gli input ausiliari pw1= 0.062,pw2= 0.19,pw3= 0.81 epw4= 0.94 (fig.
2.5.2, riquadri (b), (d), (f) e (h)). Quando l’input di programma pwè uguale a 0.062
o 0.19, la rete N etOnemul∗esibisce un punto di equilibrio di stabilità globale come in
NetOne1eN etOne2. Quando l’input di programma pwè uguale a 0.81 o 0.94, la rete
NetOnemul∗esibisce due punti di equilibrio di stabilità globale nell’intervallo [I1, I2]di va-
lori di I, mentre per valori di Ial di fuori di questo intervallo, si ha un punto di equilibrio
di stabilità globale come in NetOne7eN etOne8.
In tal senso, NetOnemul∗, alimentata con gli input di programma pw1,pw2,pw3epw4,
si comporta rispettivamente come le quattro reti NetOneicon pesi w1,w2,w3ew4. La
singola PNN NetOnemul∗è, pertanto, in grado di eseguire un’implementazione virtuale
delle quattro distinte reti NetOnei.
18
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Figura 2.5.1: La w-sostituzione applicata alla rete NetOne (a sinistra) risultante nella
produzione di N etOnemul∗(a destra). (Immagine tratta da Donnarumma e altri, 2012)
2.5.2 Reti a due neuroni
Nell’esempio appena descritto, abbiamo mostrato come una semplice PNN possa esibire un
numero di semplici ma qualitativamente differenti comportamenti senza cambiare la sua
struttura quando le linee di input ricevano i programmi appropriati. Vogliamo proporre
un secondo esempio nel quale è stato selezionato un set di CTRNN a due neuroni che
esibissero comportamenti differenti. In particolare, otto tipi di CTRNN che chiamiamo
G1,G1lc,G3,G3lc ,G5,G5lc,G7eG9. Il numero in apice indica il numero di punti fissi
nei corrispondenti diagrammi di fase. Il suffisso “lc” indica la presenza di un ciclo limite.
I parametri e il comportamento di queste reti a due neuroni sono schematizzati in tabella
2.1. I pesi w12 ew21, così come le soglie θ1eθ2rimangono uguali in tutte le reti, mentre
i pesi w11,w22,we
11 ewe
21 cambiano da una rete all’altra.
La PNN Gmul∗è stata alimentata con otto gruppi di input di programma pw11,pw22 ,
pwe
11 epwe
21 come riportato in tabella 2.2. Ogni gruppo di input di programma codifica i
pesi w11,w22,we
11 ewe
21 di una delle reti selezionate Gs, con s∈ {1,1lc, 3,3lc, 5,5lc, 7,9}.
I risultati (figg. 2.5.3 e 2.5.4) mostrano che le reti Gse le Gmul∗esibiscono un com-
portamento molto simile quando Gmul∗riceve gli input di programma appropriati. In
particolare, il numero di punti fissi di stabilità è sempre preservato, mentre i valori di
questi punti fissi di stabilità sono molto vicini agli originali. Nel caso della rete G1lc,
anche il ciclo limite è preservato (fig. 2.5.3, seconda riga), mentre il ciclo limite sembra
sparire per G3lc (fig. 2.5.3, quarta riga) e G5lc (fig. 2.5.4, seconda riga). Inoltre, molti
dei punti fissi di instabilità sembrano essere preservati. Notiamo allora che i diagrammi
di fase delle reti Gs, comparati con quelli delle reti Gmul∗alimentate con gli input di
programmazione corrispondenti sono abbastanza sovrapponibili.
Quindi tutti questi esempi mostrano che una singola PNN può effettivamente esibire
molti comportamenti qualitativamente distinti, coerentemente con gli input di program-
ma. Di conseguenza, questo suggerisce come i circuiti neurali biologici possano sostenere
19
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
la programmabilità e consentire un riuso di aree cerebrali in differenti circuiti o il controllo
di esse da parte di altre aree cerebrali durante l’esecuzione di task complessi.
Tabella 2.1: Otto CTRNN a due neuroni che esibiscono comportamenti qualitativamente
differenti. La soglia di tutti i neuroni è pari a −7. I pesi we
11 ewe
12 sono quelli associati
con due connessioni esterne in arrivo, rispettivamente, nei neuroni 1 e 2. Queste due
connessioni esterne ricevono lo stesso input x1= 1. Per tutte le reti, i pesi w12 ew21
sono uguali, rispettivamente, a 1 e -1.
G1G1lc G3G3lc G5G5lc G7G9
w11 3 4.5 5.25 5.5 6.5 6 6.3 6.5
w22 3 4.5 5.25 5.5 5.7 5.5 6.3 6.5
we
11 5.56 4.72 4 4.19 3.61 3.76 3.61 3.61
we
21 6.67 5.83 5 5.83 5.17 5.87 4.83 4.72
# p.f. stabili 10212234
# p.f. instabili 00001011
# spirali instabili 01010100
# p.f. sella 00112234
# cicli limite 01010100
Tabella 2.2: Input di programma della PNN Gmul∗In ciascuna colonna sono riportati
gli input della Gmul∗per simulare la corrispondente CTRNN. Questi valori di input sono
stati ottenuti dall’equazione 2.4.1 considerando min = 2.9emax = 6.7.
G1G1lc G3G3lc G5G5lc G7G9
pw11 0.026 0.42 0.62 0.68 0.95 0.82 0.89 0.95
pw22 0.026 0.42 0.62 0.68 0.74 0.68 0.89 0.95
pwe
11 0.70 0.48 0.29 0.34 0.19 0.23 0.19 0.19
pwe
21 0.99 0.77 0.55 0.77 0.60 0.78 0.51 0.48
20
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Figura 2.5.2: Le superfici di stabilità di N etOne1,N etOne2,NetOne7eN etOne8, ri-
spettivamente nei riquadri (a), (c), (e) e (g), confrontate con le superfici di stabilità di
NetOnemul∗(ristretta al neurone originale) alimentata con gli input ausiliari pw1= 0.062,
pw2= 0.19,pw3= 0.81 epw4= 0.94, rispettivamente nei riquadri (b), (d), (f) e (h). Le
costanti di tempo τ∗dei neuroni di mul∗sono state impostate ad un ordine di grandezza
in meno rispetto a quelle di NetOnei. (Immagine tratta da Donnarumma e altri, 2012)
21
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Figura 2.5.3: Comportamenti della PNN Gmul∗. Il riquadro (a) mostra i diagrammi di
fase delle quattro distinte reti G1,G1lc,G3eG3lc. Il riquadro (b) mostra i diagrammi di
fase della PNN Gmul∗quando è alimentata con uno degli input di programma che codifica
le reti G1,G1lc,G3oG3lc. I punti fissi di stabilità sono indicati da marcatori quadrati.
(Immagine tratta da Donnarumma e altri, 2012)
22
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Figura 2.5.4: Comportamenti della PNN Gmul∗. Il riquadro (a) mostra i diagrammi di
fase delle quattro distinte reti G5,G5lc ,G7eG9. Il riquadro (b) mostra i diagrammi di
fase della PNN Gmul∗quando è alimentata con uno degli input di programma che codifica
le reti G5,G5lc ,G7oG9. I punti fissi di stabilità sono indicati da marcatori quadrati.
(Immagine tratta da Donnarumma e altri, 2012)
23
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
2.6 Robustezza delle PNN e problemi di scala tempo-
rale
Abbiamo illustrato come sia possibile l’ipotesi di programmabilità delle CTRNN assumen-
do un tempo di ritardo trascurabile in riferimento all’attività delle sottoreti moltiplicative
rispetto alla scala temporale delle CTRNN originali, che è τ∗τi, dove τisono le costanti
di tempo della rete originale.
Notiamo che applicando la w-sostituzione su una rete Gotteniamo una PNN Gmul∗
composta da due parti: una è il set di reti moltiplicative e l’altra consiste dei neuroni
originali della rete G. Le scale temporali delle due componenti del sistema dovrebbero
differire significativamente perché la programmabilità abbia luogo.
In accordo con quanto detto, è stato testato come i cambiamenti di scala temporale
delle due componenti del sistema influenzino l’operatività dell’architettura programmabi-
le (Donnarumma e altri, 2012). In particolare, è stata testata la robustezza della PNN
per variazioni del rapporto tra le costanti di tempo r=τ/τ ∗, dove τè la costante di
tempo dei neuroni appartenenti alla rete Gdi partenza e τ∗è la costante di tempo dei
neuroni appartenenti alle sottoreti mul∗. L’ipotesi di avere un tempo trascurabile nella
stabilizzazione delle sottoreti mul∗rispetto alla scala temporale della rete originale cor-
risponde a trattare il comportamento di Gmul∗come un’approssimazione adiabatica del
comportamento di G. Nel caso in cui le scale temporali delle due componenti del sistema
non differiscano significativamente, cioè per rpiccolo, le dinamiche di Gmul∗diventano
molto più complesse: il comportamento delle reti mul∗influenza il comportamento com-
plessivo dell’intero sistema in modi inattesi e, in definitiva, l’uso proposto delle sottoreti
per fornire le suddette proprietà di programmabilità risulta altresì compromesso.
Riportiamo i risultati di due gruppi di esperimenti per questo studio. Nel primo gruppo
è stata usata una CTRNN composta da due nodi, N et −2. Nel secondo, invece, è stata
usata una rete composta da cinque nodi, Net −5. In entrambi i casi le reti sono state
integrate con il metodo di Eulero e gli esperimenti sono stati condotti nel seguente modo:
1. Sono stati scelti Sset di pesi e condizioni iniziali per la CTRNN. Ogni peso wij e
condizione iniziale yi(0) sono state scelte casualmente, rispettivamente, negli inter-
valli (min =−10, max = 10) e(ymin = 0, ymax = 1), così da ottenere Sreti Gi,
con i∈ {1, . . . , S}. Le costanti di tempo dei neuroni appartenenti a Gisono state
settate a τ.
2. Sono state scelte tre sottoreti mul∗che differissero solo nelle scale temporali: mul∗
1,
mul∗
2emul∗
3, con costanti di tempo dei neuroni rispettivamente pari a τ∗
1=τ/r1,
τ∗
2=τ/r2eτ∗
3=τ/r3.
24
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
3. Per ogni rete Gi, sono state costruite tre PNN Gi
mul∗
1,Gi
mul∗
2eGi
mul∗
3applicando la w-
sostituzione uniformemente su ogni peso e soglia della rete usando, rispettivamente,
mul∗
1,mul∗
2emul∗
3.
4. Per ogni rapporto rk=τ /τ∗
k, con k∈ {1,2,3},sono state messe a confronto le
evoluzioni degli output delle reti Gi
mul∗
krispetto alle reti Gi, con i∈ {1, . . . , S}. Se
chiamiamo yi(n·τ)e˜
yi,k(n·τ)i punti delle traiettorie di GieGi
mul∗
k, ristrette ai
neuroni in Gi, al tempo n·τ, allora, ad ogni istante n, possono essere valutate le
distanze euclidee:
di,k(n) =
yi(n·τ)−˜
yi,k(n·τ)
.
5. In tal modo, la media e la deviazione standard di di,k (n)su Sreti dà una misura
di quanto i comportamenti di GeGmul∗differiscano quando Gmul∗è ottenuta ap-
plicando uniformemente la w-sostituzione su Gusando sottoreti mul∗agenti su una
scala temporale che sia rkvolte più veloce di quella della rete G.
Nei riquadri (a), (b) e (c) della figura 2.6.1 sono mostrate delle traiettorie campionate
dei due neuroni di Net −2e dei due originali neuroni di N et −2mul∗. Il rapporto delle
costanti di tempo rassume, rispettivamente, i valori r1,r2er3nei riquadri (a), (b) e (c).
Come si può vedere, le traiettorie sono ben preservate quando r= 10 oppure r= 100.
Notiamo che la concordanza tra Net −2eNet −2mul∗aumenta con il tempo, perfino
quando r= 1, forse per via della scelta degli attrattori computazionali fatta che, in questo
caso, tende ad un punto fisso. L’analisi più quantitativa ed estensiva fatta nel riquadro
(d) mostra, per ogni costante di tempo, il valor medio delle distanze di,k tra traiettorie di
un vasto campione di coppie di reti Net −2eN et −2mul∗. Come ci si può aspettare, i
grafici partono da una distanza nulla all’origine e, inizialmente, crescono. Poi decrescono
e si stabilizzano ad un valore sufficientemente piccolo, in particolare per r= 100, di
nuovo per gli attrattori computazionali, che tende a punti fissi (si veda il riquadro (d)).
Analogamente, in figura 2.6.2, sono mostrate le traiettorie campionate dei cinque neuroni
di Net−5e dei cinque originali neuroni di Net−5mul∗così come i valori medi delle distanze
di,k tra le traiettorie di coppie di reti Net −5eN et −5mul∗. In questo caso, possiamo
notare che, sebbene per rapporti rmaggiori la similitudine delle traiettorie sia ancora
buona, è presente una piccola riduzione di efficienza. Le cause sono probabilmente legate
al ridimensionamento del numero di neuroni che può richiedere, non solo maggiori valori
del rapporto r, ma anche una migliore approssimazione del prodotto reale, possibilmente
da ottenersi tramite un tipo di sottorete mul∗più complessa.
25
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Tabella 2.3: Parametri dell’esperimento sulla robustezza e sul problema di scala temporale.
Parametri Gruppo
sperimentale n. 1
Gruppo
sperimentale n. 2
N(numero di neuroni di G
originale)
2 5
Numero di neuroni di Gmul∗20 95
Intervallo di pesi e soglie (−10,10) (−10,10)
Intervallo della condizione
iniziale (ymin, ymax )
(0,1) (0,1)
r1=τ/τ ∗
11 1
r2=τ/τ ∗
210 10
r3=τ/τ ∗
3100 100
S(numero di reti) 102102
26
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Figura 2.6.1: Esperimento per la scala temporale di Net −2mul∗. I riquadri (a), (b) e (c)
mostrano le traiettorie campionate diNet −2eN et−2mul∗per i tre differenti valori di del
rapporto r=τ /τ∗. Il riquadro (d) riporta la media e la deviazione standard delle distanze
di,k tra traiettorie di coppie di reti N et −2eNet −2mul∗. Per una miglior visualizzazione
la deviazione standard è stata dimezzata. (Immagine tratta da Donnarumma e altri, 2012)
27
CAPITOLO 2. RETI NEURALI PROGRAMMABILI
Figura 2.6.2: Esperimento per la scala temporale di Net −5mul∗. I riquadri (a), (b) e (c)
mostrano le traiettorie campionate diNet −5eN et−5mul∗per i tre differenti valori di del
rapporto r=τ /τ∗. Il riquadro (d) riporta la media e la deviazione standard delle distanze
di,k tra traiettorie di coppie di reti N et −5eNet −5mul∗. Per una miglior visualizzazione
la deviazione standard è stata dimezzata. (Immagine tratta da Donnarumma e altri, 2012)
28
Capitolo 3
Architetture a confronto: Un
esperimento robotico
Nell’esperimento robotico che stiamo per definire abbiamo messo a confronto due architet-
ture di controllo diverse, comparabili tra loro in quanto aventi stessi parametri d’ingresso
e d’uscita, entrambe biologicamente plausibili e teoricamente idonee ad apprendere com-
portamenti multipli. La prima - a cui ci riferiremo con Architettura Programmabile (AP)
- si compone di due reti, ovvero una Rete Neurale Feedforward (FNN) che codifica i pro-
grammi ed una Rete Neurale Programmabile (PNN) che funge da interprete. La seconda -
a cui ci riferiremo con Architettura Non Programmabile (ANP) - è costituita da un’unica
Rete Neurale Ricorrente a Tempo Continuo (CTRNN) in modalità full connected.
3.1 Descrizione dell’esperimento robotico
3.1.1 Lo scenario robotico
Lo scenario idealizzato nell’esperimento è un labirinto percorso da un robot (fig. 3.1.1). I
percorsi rettilinei del labirinto dall’ingresso fino alla prima biforcazione, e da ogni bifor-
cazione alla successiva, hanno tutti uguale lunghezza δ. Qualsiasi sia il percorso scelto
dal robot, si presenteranno sempre e solo tre biforcazioni separate l’un l’altra da uno dei
suddetti percorsi rettilinei.
3.1.2 Le primitive eseguite dal robot
Le primitive che possono essere eseguite dal robot sono due, ovvero Left Follower (LF, o
semplicemente L) cioè “segui il muro a sinistra” oppure Right Follower (RF, o semplice-
mente R) cioè “segui il muro a destra”. Il robot si muoverà all’interno del labirinto con
l’aiuto di opportuni sensori che daranno un feedback costante sulla presenza di un muro
29
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
Figura 3.1.1: Lo scenario robotico. Un immagine del labirinto utilizzato negli esperimenti.
In basso nella figura si nota il punto di partenza del robot, ovvero l’entrata del labirinto,
in corrispondenza della parete aperta. Ogni tratto rettilineo, tra una svolta (o l’ingresso)
e la successiva, ha lunghezza δ.
a destra o a sinistra, in mancanza del muro (biforcazione) il robot eseguirà una svolta di
90°per recuperarlo. L’assenza del muro, ovvero lo stato di svolta, segnalato contempora-
neamente dai sensori di sinistra e di destra, vedremo che corrisponde allo stato alto del
segnale di trigger.
3.1.3 I parametri dell’architettura di controllo
L’architettura di controllo generica (fig. 3.1.2) si configura come una black box che preleva
segnali in ingresso e restituisce segnali di uscita. In seguito saranno definite due possibili
architetture che si differenziano per la loro programmabilità o non programmabilità. Il
ruolo di questa architettura di controllo è quello di apprendere e far esibire al robot com-
portamenti multipli, per raggiungere la terminazione indicata dal programma, all’interno
di un labirinto di qualsiasi dimensione.
Figura 3.1.2: Architettura di controllo generica. In ingresso l’input di task ITed il segnale
di trigger ID, in uscita l’output motorio UM.
30
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
3.1.3.1 I segnali di ingresso: task etrigger
I segnali in ingresso, comuni ad entrambe le architetture sono due, di seguito descritti.
Il programma e l’input di task
Dato il tipo di scenario presentato (fig. 3.1.1), è facile definire ogni possibile combinazione
di tre svolte in successione che consenta al robot di raggiungere una differente terminazione
del labirinto (fig. 3.1.3), ovvero un programma P, a cui è associato il relativo input di
task IT. Si ottengono otto vettori di tre elementi costanti, che rappresentano ciascuna
combinazione di svolte a sinistra Lo a destra R:
P1=hL L L i→IT1=h0 0 0 i
P2=hL L R i→IT1=h0 0 1 i
P3=hL R L i→IT1=h0 1 0 i
P4=hL R R i→IT1=h0 1 1 i
P5=hR L L i→IT1=h1 0 0 i
P6=hR L R i→IT1=h1 0 1 i
P7=hR R L i→IT1=h1 1 0 i
P8=hR R R i→IT1=h1 1 1 i
Tali programmi possono essere interpretati come veri e propri comportamenti che
si chiederà al robot di manifestare all’interno del labirinto per raggiungere le differenti
terminazioni. Infatti i programmi non definiscono univocamente le traiettorie che, a loro
volta, potranno quindi variare a seconda degli output motori che verranno appresi e
successivamente prodotti dalla rete neurale che governa il robot.
31
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
Programma 1: P1=L L L Programma 2: P2=L L R
Programma 3: P3=L R L Programma 4: P4=L R R
Programma 5: P5=R L L Programma 6: P6=R L R
Programma 7: P7=R R L Programma 8: P8=R R R
Figura 3.1.3: Gli otto programmi Pdefiniti per lo scenario robotico, costituiti da tutte le
possibili combinazioni di svolte all’interno del labirinto scelto.
32
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
Il trigger
I sensori del robot forniscono come segnale in ingresso un trigger ID(τ)∈[0,1] che quando
è alto indica la presenza di una biforcazione, per ogni intervallo di tempo τ. Il trigger
fondamentalmente consente al robot di svoltare e avviare il programma successivo. Il
motivo di questa scelta risiede nel fatto che non si voglia vincolare il robot ad un percorso
preciso, bensì valutare di volta in volta se la posizione raggiunta è quella corretta, tenendo
in conto l’errore spaziale che si accumula lungo il percorso, rispetto ad una traiettoria
ideale, ovvero quella di cui si potrebbero calcolare i tempi di percorrenza in base alla
dimensione dei tratti del labirinto.
Supponendo che il robot si sposti a velocità costante, se si presentano Nsvolte nel
labirinto, possiamo notare come la durata del segnale di trigger nello stato basso 4τIDLO :
ID(τ)=0∀τ∈ 4τIDLO , limitatamente ai tratti che precedono le prime N−1svolte a
partire dall’ingresso, sia proporzionale alla lunghezza δdei percorsi rettilinei del labirinto:
4τIDLO ∝δ. (3.1.1)
Infatti, durante questa fase, il robot si suppone stia seguendo il muro in un tratto rettilineo;
il trigger passa allo stato alto non appena termina il muro, momento nel quale il robot
inizia ad effettuare la svolta che termina in corrispondenza della ricomparsa del muro su
entrambi i lati, la durata è allora 4τIDHI :ID(τ) = 1 ∀τ∈ 4τIDHI . In questo senso,
aumentare il rapporto tra stato basso e stato alto del segnale corrisponde ad un’espansione
in scala delle dimensioni del labirinto, mentre diminuire tale rapporto rappresenta una
contrazione in scala delle dimensioni del labirinto.
Possiamo, inoltre, fissare il tempo di svolta - durata del trigger nello stato alto -
ritenendo plausibile che questo non cambi con le dimensioni del labirinto ma dipenda
dalle sole dimensioni fisiche del robot. Approssimazione che ci consente di utilizzare il
parametro adimensionale:
λˆ=4τIDLO /4τIDHI (3.1.2)
e in tal senso definire:
δˆ=λ·k(3.1.3)
con k[m]costante di proporzionalità, in luogo della variazione della lunghezza δdei
tratti rettilinei nel labirinto.
Infine, indichiamo la durata di un ciclo del segnale di trigger con:
T=4τIDLO +4τIDHI .(3.1.4)
In caso sia presente del rumore, ovvero delle variazioni sui tempi di percorrenza del
33
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
labirinto, sia di motivo topologico, quali ad esempio eventuali asimmetrie del labirinto,
sia relative ad errore negli spostamenti del robot, le proporzioni introdotte continuano a
valere solo nel caso in cui il rumore sia almeno di un ordine di grandezza inferiore rispetto
ai tempi di percorrenza considerati.
3.1.3.2 I segnali di uscita
In uscita si ha un solo segnale UM(τ)∈[0,1] che viene inviato ai circuiti attuatori del
robot per controllarne il movimento. Lo stato basso corrisponde ad un comportamento
Left Follower mentre lo stato alto corrisponde ad un comportamento Right Follower. In
sostanza, il segnale d’uscita è la codifica delle primitive.
Si può considerare alto il segnale in uscita se superiore ad una soglia logica posta
esattamente a metà dell’ampiezza del segnale, basso in caso contrario. Tale interpretazione
può essere affidata a semplici circuiti per il ripristino del livello logico del segnale come,
ad esempio, un numero Npari di invertitori in cascata.
Notiamo che lo stato del segnale di uscita, pur essendo un segnale continuo, verrà letto
dal robot solamente in corrispondenza della necessità di avviare il programma successivo,
ovvero all’ingresso del labirinto e dopo l’arrivo del segnale di trigger che conferma l’avve-
nuta svolta del robot all’interno del labirinto, nel nostro caso, per un totale di tre volte.
Nonostante l’esperimento mantenga alcune caratteristiche di idealità nella sua definizione
teorica, vogliamo supporre che la lettura dello stato d’uscita non sia immediata, ma av-
venga, al contrario, con un certo offset che abbiamo stimato, per eccesso, in 5τ, dove τè
l’unità di tempo caratteristica della rete. Tale offset verrà utilizzato per leggere le uscite
delle reti e valutare il successo dei singoli programmi dai risultati che presenteremo più
avanti.
3.1.4 Generazione dei dataset per l’apprendimento
Il dataset si compone di una serie di dati di prova generati ad hoc per la fase di appren-
dimento dell’architettura di controllo. In particolare, contiene un numero finito di set
composti da:
•un input di task ITicon i∈[1,8];
•un input di trigger ID(τ);
•il relativo output ideale UI
M(τ)atteso dall’architettura di controllo.
34
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
3.1.4.1 Dataset per i test e labirinto base
Il dataset per i test (eq. 3.1.4), corrispondente a quello che chiameremo il labirinto base
(λ= 2), contiene otto set di dati, corrispondenti al numero di programmi (combinazioni
di svolte) possibili, contenenti ciascuno:
•un input di task ITicon i∈[1,8];
•una copia dell’unico segnale di trigger valido per tutti i set con 4τIDHI = 5 (durata
di svolta) e 4τIDLO = 2 · 4τIDH I = 10 (tempo di percorrenza del tratto rettilineo
di lunghezza δ), ovvero con λ= 2 (eq. 3.1.2);
•la relativa uscita ideale UI
Mi(τ), calcolata tramite i due ingressi menzionati.
Tale dataset viene maggiormente utilizzato per valutare le prestazioni delle architetture
di controllo prima di passare alla fase di apprendimento vera e propria. Ricordiamo che
la corrispondenza con il labirinto base è giustificata dalla proporzionalità tra la durata
del segnale di trigger e la lunghezza dei percorsi del labirinto (eq. 3.1.3).
Figura 3.1.4: Dataset del labirinto base. Usato per i test, corrispondente al labirinto base
(λ= 2), contiene otto set di dati, uno per ogni programma possibile. Ogni set contiene un
input di task ITicon i∈[1,8]; una copia del segnale di trigger con 4τIDHI = 5 (durata di
svolta) e 4τIDLO = 2·4τIDH I = 10 (tempo di percorrenza del tratto rettilineo di lunghezza
δ); la relativa uscita ideale UI
Mi(τ), calcolata tramite i due ingressi menzionati.
3.1.4.2 Dataset per l’apprendimento di comportamenti
Il dataset completo (eq. 3.1.5), corrisponde a ventiquattro set di dati, relativi a tre labirinti
con parametro λrispettivamente pari a due, tre e quattro. Per quanto possa essere banale
ottenere una rappresentazione completa a partire dai parametri sintetici appena citati,
35
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
cerchiamo di esplicitare i dati rilevanti. I primi otto set contengono di fatto il labirinto
base. Il secondo ottetto di set corrisponde a:
•otto input di task ITicon i= 1,...,8;
•una copia dell’unico segnale di trigger valido per tutti i set con 4τIDHI = 5 (durata
di svolta) e 4τIDLO =λ· 4τIDHI = 15 (tempo di percorrenza del tratto rettilineo
di lunghezza δ) (eq. 3.1.2);
•le relative uscita ideali UI
Mi(τ), calcolate tramite i due rispettivi ingressi menzionati.
Il terzo ed ultimo ottetto di set corrisponde invece a:
•otto input di task ITicon i= 1,...,8;
•una copia dell’unico segnale di trigger valido per tutti i set con 4τIDHI = 5 (durata
di svolta) e 4τIDLO =λ· 4τIDHI = 20 (tempo di percorrenza del tratto rettilineo
di lunghezza δ) (eq. 3.1.2);
•le relative uscita ideali UI
Mi(τ), calcolate tramite i due rispettivi ingressi menzionati.
Tale dataset viene utilizzato nella fase di apprendimento dei comportamenti. La pre-
senza di più di un labirinto permette alle architetture di controllo a reti neurali di fare
una generalizzazione sui dati appresi e garantire prestazioni migliori per segnali di ingres-
so che differiscano significativamente dai valori forniti in fase di apprendimento, ovvero
labirinti di grandezza qualsiasi. Ricordiamo che quello che vogliamo apprendere sono
comportamenti, definiti dal programma in ingresso, e non traiettorie.
36
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
Figura 3.1.5: Dataset per tre labirinti. Gli stessi otto programmi si ripetono per 3 labirinti
di diverse dimensioni: λ= 2 (righe 1-3), λ= 3 (righe 4-6), λ= 4 (righe 7-9). Ad
ogni coppia di input task-trigger, con la durata del trigger basso che è proporzionale alla
grandezza del labirinto, è associato l’output atteso UI
Mi(τ).
37
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
3.2 Architettura Non Programmabile
Esaminiamo le caratteristiche principali dell’Architettura Non Programmabile (ANP) e
fissiamo i parametri e le modalità entro i quali effettuare l’apprendimento dei comporta-
menti.
3.2.1 Struttura
Questa architettura è costituita da una sola Rete Neurale Ricorrente a Tempo Continuo
(CTRNN) in modalità full connected (fig. 3.2.1),ovvero ogni singolo neurone è collegato
ad ognuno degli altri. Ricordiamo che tale ANP rappresenta il più semplice tipo di archi-
tettura neurale biologicamente plausibile ed è quella più usata in letteratura per affrontare
compiti come quello che ci proponiamo in questa sede: apprendere otto comportamenti
differenti, uno per ognuno degli otto diversi programmi forniti alla rete.
Figura 3.2.1: Architettura Non Programmabile. In ingresso ad una rete CTRNN di tipo
full connected troviamo l’input di task ITed il segnale di trigger ID, in uscita l’output
motorio UM.
3.2.2 Apprendimento della CTRNN
L’algoritmo utilizzato per l’apprendimento della CTRNN è la Differential Evolution. I
parametri su cui possiamo agire sono:
•il numero di neuroni NNche compongono la rete neurale;
•la popolazione Npop, cioè il numero di varianti dei pesi sinaptici wij (della con-
nessione dal neurone ial neurone j) che vengono generate e testate ad ogni passo
d’apprendimento;
•l’intervallo minimo/massimo dei pesi sinaptici [wmin, wmax], entro il quale
variano i valori della popolazione;
38
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
•la costante di tempo τdella rete;
•l’intervallo di tempo 4τutilizzato nell’integrazione tramite l’algoritmo di Eulero;
•il numero di passi Sd’apprendimento.
Questa architettura ci consente di eseguire due diverse modalità d’apprendimento che
differiscono sostanzialmente per il modo in cui i dataset vengono utilizzati.
3.2.2.1 Modalità d’apprendimento di tipo online
Il primo metodo d’apprendimento, denominato “online”, consiste nel suddividere il dataset
nei set riguardanti ciascuno degli NPprogrammi e utilizzare ciascun set per un numero
fissato SPdi passi d’apprendimento per singolo programma. La funzione d’errore, anche
detta funzione di costo o fitness, viene resettata al passaggio da un programma al succes-
sivo. Completato l’apprendimento per tutti gli NPprogrammi, si ricomincia dal primo
programma, passando così al ciclo d’apprendimento successivo. Il tutto viene eseguito
per un numero fissato di cicli C.
Il numero dei passi d’apprendimento in questo caso sarà:
S=SP·NP·C
cioè dipenderà sostanzialmente da due variabili: SPeC.
3.2.2.2 Modalità d’apprendimento di tipo batch
Il secondo metodo d’apprendimento, denominato “batch”, consiste nell’utilizzare l’intero
dataset per un numero fissato Sdi passi d’apprendimento. In tal modo la funzione
d’errore non distingue più tra i singoli programmi, ma valuta la risposta data dalla rete
ad un unico ingresso equivalente, composto dalla successione di tutti i possibili ingressi.
Questa modalità, in sintesi, è una mera applicazione del principio di sovrapposizione degli
effetti.
3.2.2.3 Confronto tra modalità di tipo online e batch
Sebbene la modalità online sembri di primo acchito più accurata, la modalità batch por-
ta, in taluni casi, un enorme vantaggio dal punto di vista della qualità d’apprendimento
rispetto alla prima. Se, infatti, la rete apprende tutti i programmi contemporaneamente,
ciascun passo d’apprendimento allora non può portare un beneficio maggiore ad un singolo
programma a discapito degli altri. La funzione d’errore, che nella modalità online viene re-
settata ad ogni passaggio da un programma all’altro ed è valutata indipendentemente per
39
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
ciascun programma, è infatti incrementata indirettamente durante l’apprendimento degli
altri programmi dalla modifica dei pesi sinaptici della rete in favore della riduzione della
funzione di costo dell’unico programma valutato al dato passo d’apprendimento. Tale ef-
fetto diventa notevole quando aumentano i passi d’apprendimento per singolo programma
SPe il numero di programmi NP.
Si ritiene tuttavia utile, ai fini del confronto tra le diverse architetture, fornire dati
per l’ANP derivanti da entrambi i tipi di apprendimento qui descritti.
3.3 Architettura Programmabile
Esaminiamo le caratteristiche principali dell’Architettura Programmabile (AP) e fissiamo
i parametri e le modalità entro i quali effettuare l’apprendimento dei comportamenti.
3.3.1 Struttura
Questa architettura è costituita da due reti, ovvero una Rete Neurale Feedforward (FNN)
che codifica i programmi ed una Rete Neurale Programmabile (PNN, § 2.4) che funge da
interprete (fig. 3.3.1). L’AP rappresenta un tipo di architettura neurale biologicamente
plausibile, sicuramente più complessa rispetto all’ANP dal punto di vista strutturale, ma
consente di apprendere comportamenti differenti in modo totalmente innovativo rispetto
all’approccio classico.
Figura 3.3.1: Architettura Programmabile. In ingresso ad una FNN troviamo l’input di
task IT, la cui uscita di programma codificato IC OD
Pva, insieme al segnale di trigger ID,
in ingresso ad una PNN. In uscita, dalla PNN, l’output motorio UM. Il ruolo della FNN
è di memorizzare la codifica di programma utilizzata per descrivere la struttura della PNN
in termini di pesi sinaptici.
40
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
3.3.2 Apprendimento della FNN
L’algoritmo utilizzato per l’apprendimento della FNN è la Back Propagation. Questa rete
è un’evidente semplificazione rispetto alle CTRNN utilizzate, giustificata però dal fatto
che giochi un ruolo decisamente marginale rispetto alla PNN. La FNN, infatti, si limita
semplicemente ad associare ad un task ITiin ingresso, la sua codifica PC OD
iche andrà
in ingresso alla rete PNN. La sua presenza è necessaria perché la memorizzazione della
codifica dei programmi, per restare biologicamente plausibile, deve essere pur sempre
affidata ad una rete neurale.
La fase d’apprendimento è molto più rapida, tant’è che viene eseguita ogni volta che
viene modificata una codifica di programma PC OD
idella rete PNN, per un totale di mille
passi d’apprendimento, più che sufficienti a portare l’errore complessivo della rete a valori,
per alcuni centesimi, prossimi allo zero.
3.3.3 Apprendimento della PNN
Sebbene parlare di PNN, e non di “CTRNN programmabile”, possa portarci a ritenere che
si tratti di una rete neurale del tutto nuova nel suo genere, vale la pena di ricordare che dal
punto di vista dinamico rimane una CTRNN e gode delle stesse identiche caratteristiche
fisiche biologicamente plausibili. L’algoritmo utilizzato per l’apprendimento della PNN è
sempre e comunque la Differential Evolution. Vedremo però che, in effetti, una CTRNN
dotata di programmabilità, che ha notevoli differenze strutturali rispetto ad una semplice
CTRNN, risulta notevolmente migliore già a partire dalle nuove possibili modalità d’ap-
prendimento e, come ci proponiamo di dimostrare in questo lavoro, dovrebbe risultare in
generale molto più efficace nell’apprendere i diversi comportamenti. I parametri su cui
possiamo agire sono:
•il numero di neuroni NNche compongono la rete neurale;
•la popolazione Npop, cioè il numero di varianti dei pesi sinaptici wij (della con-
nessione dal neurone ial neurone j) che vengono generate e testate ad ogni passo
d’apprendimento;
•l’intervallo minimo/massimo dei pesi sinaptici [wmin, wmax], entro il quale
variano i valori della popolazione;
•la costante di tempo τdella rete;
•l’intervallo di tempo 4τutilizzato nell’integrazione tramite l’algoritmo di Eulero;
•il numero di passi Sd’apprendimento.
41
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
Questa architettura ci consente di eseguire una modalità d’apprendimento standard che,
come vedremo, non ha più senso separare in online ebatch, oppure una modalità che ho
sviluppato durante questo lavoro, indicata come modalità d’apprendimento a soglia.
3.3.3.1 Modalità d’apprendimento standard
Il metodo d’apprendimento standard consiste nell’eseguire, una per volta, l’apprendimento
di NPreti differenti, quanti sono i programmi, per un numero SPdi passi d’apprendimen-
to per ciascuna rete. A tale scopo vengono utilizzati i soli set del dataset riguardanti il
programma Pi. La funzione d’errore viene chiaramente resettata all’inizio dell’apprendi-
mento di una rete diversa. Invece, alla fine dell’apprendimento di una rete, corrispondente
al programma Pi, in cui viene sostanzialmente modificato PCO D
i, viene avviato anche l’ap-
prendimento della codifica dei programmi PCOD
i∀idella rete FNN. Completato l’appren-
dimento di NPreti, si passa al ciclo d’apprendimento successivo. Il tutto viene eseguito
per un numero fissato di cicli C.
Il numero dei passi d’apprendimento in questo caso sarà:
S=SP·NP·C
e, proprio come per la modalità online, dipenderà dalle due variabili SeC.
La novità introdotta dalla programmabilità consiste nel poter considerare la rete neu-
rale che deve apprendere diversi comportamenti come l’insieme di più reti distinte che
apprendono un singolo comportamento, ma tutte codificate nella stessa struttura. Ta-
le astrazione ci permette di eseguire l’apprendimento di reti equivalenti a delle CTRNN
a comportamento singolo che, in termini pratici, cercheremo di dimostrare, rende que-
ste reti incredibilmente precise nel discriminare e apprendere correttamente i singoli
comportamento.
Vediamo perché non ha più senso adesso parlare di modalità online obatch. Una rete
monocomportamentale, richiede l’apprendimento con un solo dataset intero, come per la
modalità batch, con un unico insieme di input che produce sempre e solo un unico genere
di output, ovvero il comportamento desiderato. Eppure, come per la modalità online,
l’apprendimento avviene con una funzione d’errore dedicata al singolo programma. Si
può intuire, ma lo dimostreremo, come allora tale modalità d’apprendimento porti con
se i vantaggi di entrambe le modalità d’apprendimento utilizzate con la CTRNN non
programmabile.
42
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
3.3.3.2 Modalità d’apprendimento con soglia
Questa modalità d’apprendimento, per quanto abbiamo ritenuto di doverla identificare
con un nome nuovo, si basa esattamente sul principio d’apprendimento della modalità
standard. La novità introdotta consiste nello stabilire a priori una soglia entro la quale
“accontentarsi” dell’errore sul singolo programma appreso. Se può sembrare una banalità,
è proprio l’eleganza di alcune soluzioni che le rende indispensabili dopo averne fatto uso.
Cerchiamo di comprendere quale uso facciamo di questa soglia e tutto sarà chiaro.
L’apprendimento di una rete neurale multicomportamentale, in generale, consiste nel-
l’apprendimento in parallelo dei singoli comportamenti, per i quali l’errore minimizzato
dalla funzione d’errore è ovviamente diverso da comportamento a comportamento o, nel
nostro caso, da programma a programma. Quando stabiliamo quanti passi d’apprendi-
mento Sdobbiamo eseguire, stiamo implicitamente affermando che cercheremo di abbas-
sare contemporaneamente questi errori, per ogni programma, almeno per un numero di
volte pari ad S/NP. Tanto avviene in un apprendimento di tipo online per una CTRNN
multicomportamentale. Se mettessimo una soglia sull’errore, l’apprendimento potrebbe
fermarsi qualora tutti i programmi scendano al di sotto di questa soglia. Il vantaggio
sarebbe di non controllare l’apprendimento dal numero di passi d’apprendimento totale,
per accontentarci di una soluzione vaga o godere dell’affinamento ottenuto, a seconda dei
casi, ma fermarlo automaticamente per soddisfare giusto il tipo di esigenze che abbiamo,
senza sprechi di tempo. Purtroppo questo ragionamento è elegante quanto inutile in una
rete multicomportamentale CTRNN, di complessità quale quella richiesta nel nostro espe-
rimento, perché spesso non si raggiungerà una soglia tale da rendere l’errore trascurabile
per tutti i programmi.
Dove possiamo invece sfruttare questa tecnica? Chiaramente nelle reti monocompor-
tamentali, proprio quelle che in generale non avrebbero senso d’essere studiate, ma che
nel nostro caso corrispondono alle singole reti CTRNN codificate in una PNN.
Ricapitolando, se impostiamo una soglia sulla funzione d’errore nell’apprendimento
della rete per il singolo programma, premesso che la Differential Evolution ci assicura di
esplorare tutto lo spazio delle soluzioni con un numero di passi d’apprendimento che tende
ad infinito, potrà capitare di trovare una soluzione con errore inferiore alla soglia, per il
dato programma, già dopo un esiguo numero di passi d’apprendimento. Non resterà allora
che fermare l’apprendimento di quella data rete, la cui soluzione è già definitivamente
codificata in una combinazione di pesi ottimale.
I passi d’apprendimento rimanenti potranno essere così stimati:
SRimanenti =SP·NP−NCompletati
P·CRimanenti.
43
CAPITOLO 3. ARCHITETTURE A CONFRONTO: UN ESPERIMENTO
ROBOTICO
Si nota immediatamente un notevole risparmio, in termini computazionali, sul numero
di passi d’apprendimento necessari.
3.3.3.3 Nota finale sulle modalità d’apprendimento
A differenza dell’ANP, per la quale intendiamo fornire dati derivanti da entrambi i tipi di
apprendimento online ebatch, l’AP non richiede apprendimenti sia in modalità standard
che a soglia in quanto, come già detto, quest’ultima è solo una variante della modalità
standard in grado di portare vantaggi in termini computazionali (eliminando cicli inutili)
piuttosto che qualitativi. Laddove specificato o meno, intenderemo sempre che si sia usato
l’approccio con soglia.
3.4 Valutazione dell’errore: la funzione di costo
La funzione di costo è calcolata in base ad una soglia, posta a 0.5, e somma un punto
intero se il valore confrontato, cioè l’uscita della rete neurale, in riferimento al valore atteso
fornito dal dataset, si trova dalla parte sbagliata del grafico rispetto alla soglia. Inoltre,
se il valore confrontato cade nella porzione del grafico attesa, l’errore è incrementato di
un valore pari allo scarto quadratico tra uscita della rete e il valore atteso.
Tale funzione di costo ci assicura di ottenere un vantaggio notevole se la rete corregge
il suo output, dapprima in riferimento alla soglia, e poi rispetto all’uscita attesa fornita
dal dataset, perché, nell’eventualità di successo, nel primo caso, basterà filtrare l’output
finale - dopo l’apprendimento - tramite il valore di soglia per ottenere un perfetto segnale
on-off d’uscita ed eliminare la parte d’errore quadratico che si somma nel secondo caso.
44
Capitolo 4
Risultati e commenti
Qui di seguito i risultati dell’esperimento robotico illustrato nel capitolo precedente, nel
quale abbiamo messo a confronto le due architetture proposte, ovvero una dotata di
programmabilità e l’altra di tipo classico, non programmabile.
4.1 Esperimenti preliminari
Per poter raggiungere dei buoni risultati per il raffronto delle due reti abbiamo dovuto
svolgere degli esperimenti preliminari nelle varie modalità d’apprendimento. Quanto segue
sono i valori ottimali sui quali abbiamo basato tutte le prove successive, per entrambe le
architetture, assicurando così la confrontabilità dei risultati ottenuti.
4.1.1 Sui parametri in comune a tutte le reti CTRNN
Popolazione Abbiamo scelto Npop = 100 perché, per un numero Sdi passi d’apprendi-
mento fissato, all’aumentare di tale valore non corrispondeva più un significativo aumento
dei programmi appresi. Ricordiamo che Npop indica il numero di varianti dei pesi sinaptici
wij (della connessione dal neurone ial neurone j) che vengono generate e testate ad ogni
passo d’apprendimento.
Passi d’apprendimento Abbiamo limitato gli apprendimenti di tipo online aSonline =
20000 passi totali, che corrispondono a 2500 passi per ogni programma; gli appren-
dimenti di tipo batch a Sbatch =Sonline/NP= 2500 passi totali, che corrispondono
anche a 2500 passi per ogni programma (i programmi vengono appresi tutti insieme
contemporaneamente); gli apprendimenti di tipo a soglia ad un numero massimo di
SP N N = 2 ·Sonline = 2 ·NP·Sbatch = 40000 passi totali, che corrispondono a 5000
passi per ogni programma. In questo modo utilizziamo la Differential Evolution offren-
do pari opportunità di apprendimento alle architetture testate, sia per quanto riguarda
45
CAPITOLO 4. RISULTATI E COMMENTI
l’ANP, composta da reti CTRNN full connected, sia per l’AP per la quale, come sarà chia-
ro dalla lettura dei risultati sperimentali, la scelta di raddoppiare i passi d’apprendimento
non influenza in alcun modo il successo dell’apprendimento dei programmi e non fornisce
vantaggi rispetto all’apprendimento dell’ANP.
Numero di neuroni Abbiamo scelto NN= 4, ovvero dotato tutte le reti CTRNN,
programmabili e non, di 4 neuroni, che è un numero adeguato per apprendere otto com-
portamenti e non troppo dispendioso in termini di risorse computazionali per simulare i
diversi tipi di struttura.
Intervallo minimo/massimo dei pesi sinaptici La scelta di [wmin, wmax]=[−5,5],
intervallo entro il quale variano i valori della popolazione, è stata effettuata dopo aver
sperimentato che le reti programmabili non apprendevano tutti i programmi in un numero
di passi d’apprendimento non eccessivo per un intervallo di [wmin, wmax] = [−1,1], ma non
mostravano d’altra parte miglioramenti significativi all’allargarsi dell’intervallo rispetto
al valore qui scelto. Le reti non programmabili, invece, non hanno mai fornito nella fase
preliminare risultati tali da condizionare una scelta diversa su tale intervallo.
Costante di tempo La costante di tempo τ= 2 delle CTRNN è stata fissata su tale
valore in primo luogo per semplificare l’apprendimento dal punto di vista computazionale.
In ogni caso non influenza i risultati in quanto è sia inferiore ai tempi di accensione del
segnale di trigger, che di pari valore per tutte le reti.
Intervallo di tempo Il 4τ= 0.2, utilizzato nell’integrazione tramite l’algoritmo di
Eulero, è pari ad un decimo della costante di tempo scelta e assicura una buona resa della
dinamica delle CTRNN.
4.1.2 Sulla soglia dell’apprendimento per la PNN
Nell’apprendimento a soglia abbiamo scelto i valori di soglia basandoci sulle caratteristiche
della funzione d’errore utilizzata. La soglia d’errore per il dataset con tre labirinti è stata
scelta allo 0.99 perché un errore pari ad uno costituisce almeno un errore rispetto alla soglia
logica per un istante di tempo τ. I valori decimali che seguono lo zero invece rappresentano
solo una possibile somma di tutti gli scarti quadratici sommati dalla funzione d’errore.
Un output che corrisponda ad una funzione d’errore inferiore o uguale allo 0.99, con un
semplice ripristino del valore logico diventa un output ideale.
La soglia per il dataset con il labirinto base è stata scelta invece allo 0.1 per sfruttare
un numero maggiore di passi d’apprendimento, entro il limite massimo offerto alla PNN,
46
CAPITOLO 4. RISULTATI E COMMENTI
e affinare il risultato direttamente in fase d’apprendimento. Chiaramente un valore di
soglia dello 0.99 sarebbe stato più che adeguato anche in questo caso.
4.2 Apprendimento del dataset con il labirinto base
Il labirinto base è quello corrispondente al dataset descritto al paragrafo 3.1.4.1. Abbiamo
addestrato le architetture programmabili e non programmabili a riconoscere gli otto pro-
grammi di ingresso e ad esibire otto relativi comportamenti, secondo le modalità descritte
nel capitolo3. Proponiamo qui di seguito i risultati ottenuti ed un primo raffronto.
4.2.1 Architettura Non Programmabile in modalità online
L’Architettura Non Programmabile (fig. 3.2.1) è stata addestrata in modalità online (nel
paragrafo successivo troviamo i risultati per l’altro tipo di addestramento, in modalità
batch), ovvero alternando l’apprendimento dei singoli programmi, in ordine crescente di
nome, per un numero fissato di passi e reiterando l’intera sequenza più volte. Sebbene
questo tipo di apprendimento porti a buoni risultati nell’ambito della ricerca di una solu-
zione ottimale per il singolo programma, l’alternarsi degli obiettivi finisce per confondere
la funzione d’errore che viene ottimizzata ora in un senso, ora verso un altro tipo di so-
luzione; nel complesso non si raggiunge una soluzione in grado di portare l’errore a zero
per tutti i programmi. In particolare, quanto appena detto, può essere subito osservato
dalle tabelle 4.1 dei risultati e 4.2 con l’analisi statistica dei risultati dove si evince che
il programma P8ha prestazioni di gran lunga migliori degli altri sette, per l’esattezza, è
anche l’unico (tab. 4.3) che svolga il suo compito a dovere, portando il robot alla corretta
terminazione del labirinto, in tutte e 20 le prove effettuate.
Un altro fenomeno da osservare è quello che potremmo definire uno stallo di questo
algoritmo d’apprendimento: per quanti cicli d’apprendimento si possa pensare di eseguire,
solo gli ultimi SPpassi d’apprendimento riguardanti ciascuno degli otto programmi sono
quelli che hanno impatto sull’errore finale, questo perché ogni volta che la fitness ricomin-
cia decrescere minimizzando l’errore sul primo programma, ovvero inizia un nuovo ciclo
esterno, tende subito a “dimenticare” i risultati ottenuti al ciclo precedente. In definitiva,
se il numero di passi d’apprendimento scelto è stato:
S=SP·NP·C= 20000
con cicli C= 50, passi d’apprendimento SP= 50, numero di programmi NP= 8,
allora, avremmo anche potuto scegliere:
47
CAPITOLO 4. RISULTATI E COMMENTI
S=SP·NP·C= 400
con C= 1,SP= 50,NP= 8, ed ottenere risultati identici. Ecco perché non ci
deve meravigliare un risultato identico per tutte le prove: un addestramento per singolo
programma così rapido (SP= 50), a partire dalla stessa inizializzazione della rete neurale,
porta la fitness a raggiungere sempre gli stessi valori (tab. 4.1) con conseguente deviazione
standard nulla (tab. 4.2).
Nella figura 4.2.1 vediamo i risultati di una qualsiasi rete, da considerarsi best e worst
case contemporaneamente (tutte le reti si comportano allo stesso modo, pertanto i due
risultati coincidono). Si nota subito come l’output UM8della rete CTRNN si sposi perfet-
tamente con quello atteso del dataset. La rete CTRNN ha infatti appreso perfettamente
solo l’ultimo comportamento che consente al robot di raggiungere l’ottava terminazione del
labirinto, e si comporta sempre allo stesso modo, qualsiasi sia il programma Pipresentato
in ingresso.
Figura 4.2.1: Risposta della rete CTRNN numero 1 ( best/worst case) addestrata in moda-
lità online e con il dataset per il labirinto base, ovvero conλ= 2 (parametro adimensionale
proporzionale alle dimensioni del labirinto). L’unico programma corretto è il P8, per il
quale le uscite UMdel dataset e della CTRNN - al di sotto e al di sopra della soglia a 0,5
- coincidono. La lettura di UMcome segnale on-off, nel nostro caso, viene effettuata con
un offset pari a 5 dall’istante iniziale e dopo ogni discesa del segnale di trigger.
48
CAPITOLO 4. RISULTATI E COMMENTI
Tabella 4.1: Errori della CTRNN addestrata in modalità online con il labirinto base. L’apprendimento mostra chiaramente un’inca-
pacità di raggiungere soluzioni ottimali per la rete con la conseguente tendenza della fitness a favorire l’ultimo programma appreso.
Inoltre, anche in luogo dell’alto numero di iterazioni effettuate (S=SP·NP·C= 20000), non consente alcuna differenziazione dei
risultati tra una prova e l’altra a causa di un’inefficienza dell’algoritmo utilizzato per l’apprendimento di comportamenti multipli.
CTRNN
(online)
Errore del programma (Numero di svolte corrette)
P1P2P3P4P5P6P7P8
145.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
245.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
345.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
445.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
545.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
645.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
745.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
845.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
945.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
10 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
11 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
12 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
13 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
14 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
15 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
16 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
17 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
18 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
19 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
20 45.447 (0/3) 31.307 (1/3) 30.297 (1/3) 16.157 (2/3) 29.293 (1/3) 15.153 (2/3) 14.143 (2/3) 0.003 (3/3)
Successo
(3/3)
0% 0% 0% 0% 0% 0% 0% 100%
49
CAPITOLO 4. RISULTATI E COMMENTI
Tabella 4.2: Statistica dei risultati per la CTRNN addestrata in modalità online con il la-
birinto base. L’apprendimento mostra chiaramente un’incapacità di raggiungere soluzioni
ottimali per la rete con la conseguente tendenza della fitness a favorire l’ultimo programma
appreso, l’unico con errore medio quasi nullo. Inoltre, l’alto numero di iterazioni effet-
tuate (S=SP·NP·C= 20000) non consente alcuna differenziazione dei risultati tra
una prova e l’altra, infatti, la deviazione standard risulta nulla in tutti i casi e i valori
massimi e minimi d’errore coincidono.
P1P2P3P4P5P6P7P8
Errore medio 45.447 31.307 30.297 16.157 29.293 15.153 14.143 0.003
Deviazione
standard
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
Errore
massimo
45.447 31.307 30.297 16.157 29.293 15.153 14.143 0.003
Errore minimo 45.447 31.307 30.297 16.157 29.293 15.153 14.143 0.003
Frequenza di
successo
0% 0% 0% 0% 0% 0% 0% 100%
Tabella 4.3: Frequenza di successo per la CTRNN addestrata in modalità online con il
labirinto base. Con questo tipo di addestramento l’ANP riesce ad apprendere uno ed un
solo comportamento.
Programmi appresi 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8
Frequenza di successo 100% 0% 0% 0% 0% 0% 0% 0%
50
CAPITOLO 4. RISULTATI E COMMENTI
4.2.2 Architettura Non Programmabile in modalità batch
L’Architettura Non Programmabile (fig. 3.2.1) addestrata in modalità batch presenta,
rispetto alla modalità online, risultati di gran lunga migliori (tab. 4.4 e tab. 4.5). Questa
volta, infatti, i programmi P1,P5eP8hanno una percentuale di successo del 100%.
La CTRNN apprende almeno 4 su 8 programmi nel 100% dei casi e anche un quinto
programma nell’85% dei casi (tab. 4.6). Come possiamo vedere dalla figura 4.2.2 la
CTRNN, nella ottava esecuzione che è il best case, presenta, per i programmi P1,P3,P4,
P5eP8, output analoghi a quelli del dataset per il labirinto base.
Il worst case, corrispondente alla diciassettesima rete appresa, del resto, presenta giu-
sto un programma in meno rispetto al best case (fig. 4.2.3). Questo risultato è dovuto al
tipo di algoritmo di apprendimento scelto: la modalità batch, infatti, consente di minimiz-
zare gli errori dei singoli programmi, tenendo però sempre in memoria l’intera sequenza
di uscite corrispondente a tutti i possibili ingressi. Un lavoro che porta a risultati non
ottimali, ma significativamente buoni per quanto riguarda la differenziazione dei possibili
comportamenti appresi.
Figura 4.2.2: Risposta della rete CTRNN numero 8 ( best case) addestrata in modalità
batch e con il dataset per il labirinto base, ovvero conλ= 2 (parametro adimensionale
proporzionale alle dimensioni del labirinto). I programmi corretti sono P1,P3,P4,P5e
P8, per i quali le uscite UMdel dataset e della CTRNN hanno andamenti - al di sotto e al
di sopra della soglia a 0,5 - coincidenti. La lettura di UMcome segnale on-off, nel nostro
caso, viene effettuata con un offset pari a 5 dall’istante iniziale e dopo ogni discesa del
segnale di trigger.
51
CAPITOLO 4. RISULTATI E COMMENTI
Tabella 4.4: Errori della CTRNN addestrata in modalità batch con il labirinto base. Più programmi, ma non tutti, vengono appresi
correttamente. Tra le 20 esecuzioni si possono isolare un best case (fig. 4.2.2), con 5 su 8 programmi appresi, ed un worst case, con
4 su 8 programmi appresi (fig. 4.2.3).
CTRNN (batch)Errore del programma (Numero di svolte corrette)
P1P2P3P4P5P6P7P8
10.004 (3/3) 1.028 (3/3) 15.155 (2/3) 4.046 (3/3) 1.031 (3/3) 15.154 (2/3) 14.144 (2/3) 0.004 (3/3)
20.003 (3/3) 14.149 (2/3) 15.153 (2/3) 5.068 (3/3) 0.024 (3/3) 15.154 (2/3) 2.063 (3/3) 0.004 (3/3)
30.003 (3/3) 5.099 (3/3) 15.168 (2/3) 4.051 (3/3) 1.021 (3/3) 15.158 (2/3) 14.143 (2/3) 0.004 (3/3)
40.004 (3/3) 2.064 (3/3) 15.154 (2/3) 1.034 (3/3) 3.034 (3/3) 15.154 (2/3) 14.147 (2/3) 0.006 (3/3)
50.003 (3/3) 14.144 (2/3) 15.154 (2/3) 3.050 (3/3) 2.035 (3/3) 15.155 (2/3) 2.052 (3/3) 0.004 (3/3)
60.005 (3/3) 1.057 (3/3) 15.158 (2/3) 3.047 (3/3) 2.034 (3/3) 15.154 (2/3) 14.144 (2/3) 0.006 (3/3)
70.004 (3/3) 10.139 (3/3) 15.154 (2/3) 0.034 (3/3) 2.029 (3/3) 15.157 (2/3) 14.144 (2/3) 0.007 (3/3)
8 (best case)0.003 (3/3) 14.144 (2/3) 2.050 (3/3) 0.032 (3/3) 1.032 (3/3) 15.157 (2/3) 14.143 (2/3) 0.003 (3/3)
90.004 (3/3) 2.063 (3/3) 15.158 (2/3) 3.050 (3/3) 2.037 (3/3) 15.156 (2/3) 14.146 (2/3) 0.016 (3/3)
10 0.004 (3/3) 14.146 (2/3) 15.153 (2/3) 5.079 (3/3) 1.035 (3/3) 15.154 (2/3) 3.062 (3/3) 0.006 (3/3)
11 0.003 (3/3) 1.041 (3/3) 15.154 (2/3) 4.054 (3/3) 0.028 (3/3) 15.158 (2/3) 14.144 (2/3) 0.009 (3/3)
12 0.003 (3/3) 14.144 (2/3) 15.154 (2/3) 0.042 (3/3) 0.022 (3/3) 15.154 (2/3) 14.143 (2/3) 0.003 (3/3)
13 0.003 (3/3) 4.086 (3/3) 15.153 (2/3) 3.047 (3/3) 1.023 (3/3) 15.154 (2/3) 14.145 (2/3) 0.004 (3/3)
14 0.003 (3/3) 7.125 (3/3) 15.158 (2/3) 3.051 (3/3) 0.026 (3/3) 15.154 (2/3) 14.144 (2/3) 0.004 (3/3)
15 0.003 (3/3) 14.145 (2/3) 15.154 (2/3) 0.028 (3/3) 2.032 (3/3) 15.154 (2/3) 1.110 (3/3) 0.004 (3/3)
16 0.003 (3/3) 1.104 (3/3) 15.153 (2/3) 4.124 (2/3) 3.043 (3/3) 15.154 (2/3) 14.148 (2/3) 0.006 (3/3)
17 (worst case)0.003 (3/3) 14.144 (2/3) 15.153 (2/3) 0.045 (3/3) 0.024 (3/3) 15.153 (2/3) 14.144 (2/3) 0.003 (3/3)
18 0.003 (3/3) 14.144 (2/3) 15.153 (2/3) 10.119 (3/3) 1.031 (3/3) 15.154 (2/3) 2.044 (3/3) 0.004 (3/3)
19 0.003 (3/3) 14.144 (2/3) 4.057 (3/3) 2.034 (3/3) 2.034 (3/3) 16.160 (2/3) 14.143 (2/3) 0.003 (3/3)
20 0.009 (3/3) 2.128 (3/3) 15.157 (2/3) 4.092 (3/3) 1.030 (3/3) 15.154 (2/3) 14.144 (2/3) 0.004 (3/3)
Successo (3/3) 100% 55% 10% 95% 100% 0% 25% 100%
52
CAPITOLO 4. RISULTATI E COMMENTI
Tabella 4.5: Statistica dei risultati per la CTRNN addestrata in modalità batch con il labi-
rinto base. L’apprendimento mostra una buona capacità dell’ANP ad apprendere compor-
tamenti multipli ma non sufficiente ad apprenderne 8 su 8 proposti. I risultati mostrano
per tutti i programmi una deviazione standard più bassa rispetto alla media e ciò sugge-
risce che il presentarsi di un risultato migliore, anche a fronte di un numero superiore di
prove, non sia auspicabile.
P1P2P3P4P5P6P7P8
Errore medio 0.004 8.212 13.945 2.956 1.280 15.205 11.125 0.005
Deviazione standard 0.001 5.919 3.739 2.447 0.971 0.225 5.375 0.003
Errore massimo 0.009 14.149 15.168 10.119 3.043 16.160 14.148 0.016
Errore minimo 0.003 1.028 2.050 0.028 0.022 15.153 1.110 0.003
Frequenza di successo 100% 55% 10% 95% 100% 0% 25% 100%
Tabella 4.6: Frequenza di successo per la CTRNN addestrata in modalità batch con il
labirinto base. Con questo tipo di addestramento l’ANP riesce ad apprendere 5 su 8
comportamenti nel best case (85% dei casi) e almeno 4 su 8 nel worst case (il restante
15%).
Programmi appresi 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8
Frequenza di successo 100% 100% 100% 100% 85% 0% 0% 0%
Figura 4.2.3: Risposta della rete CTRNN numero 17 ( worst case) addestrata in modalità
batch e con il dataset per il labirinto base, ovvero conλ= 2 (parametro adimensionale
proporzionale alle dimensioni del labirinto). I programmi corretti sono P1,P4,P5eP8,
per i quali le uscite UMdel dataset e della CTRNN hanno andamenti - al di sotto e al
di sopra della soglia a 0,5 - coincidenti. La lettura di UMcome segnale on-off, nel nostro
caso, viene effettuata con un offset pari a 5 dall’istante iniziale e dopo ogni discesa del
segnale di trigger.
53
CAPITOLO 4. RISULTATI E COMMENTI
4.2.3 Architettura Programmabile
L’Architettura Programmabile (fig. 3.3.1) è stata addestrata, per un campione totale di
venti PNN, e relative FNN, sul dataset con il labirinto base. Prima di osservare i risulta-
ti, facciamo alcune brevi considerazioni sulle FNN. Per come è strutturata l’AP, questa
rete deve occuparsi solo dell’apprendimento della codifica di programma e non dell’ap-
prendimento dei comportamenti; è però vero che una codifica errata potrebbe influenzare
negativamente il lavoro della PNN. Nel nostro caso la FNN apprende le codifiche di tutti
i programmi nel 100% dei casi e, pertanto, non risulta utile, ai fini della valutazione delle
prestazioni, presentarne dei risultati sperimentali.
La PNN, d’altro canto, essendo una CTRNN dotata di programmabilità, così come
spiegato nel capitolo 2, ha prestazioni confrontabili con una rete CTRNN full connected
che costituisce l’ANP scelta per il raffronto. Come si può vedere dalle tabelle 4.7 e 4.8,
la rete PNN ha prestazioni di gran lunga superiori rispetto all’ANP e, infatti, riesce ad
apprendere con successo otto programmi su otto, nel 40% dei casi e, sempre e comunque,
almeno sette programmi, appresi solamente nel 60% dei casi (tab. 4.9). Il programma che
presenta più difficoltà ad essere appreso risulta essere P3, la cui frequenza di successo è
del 45%.
Figura 4.2.4: Risposta della rete PNN numero 14 ( best case) addestrata con il dataset per
il labirinto base, ovvero conλ= 2 (parametro adimensionale proporzionale alle dimensioni
del labirinto). I programmi sono tutti e otto corretti, infatti, tutte le uscite UMdel dataset
e della PNN hanno andamenti - al di sotto e al di sopra della soglia a 0,5 - coincidenti.
La lettura di UMcome segnale on-off, nel nostro caso, viene effettuata con un offset pari
a 5 dall’istante iniziale e dopo ogni discesa del segnale di trigger.
54
CAPITOLO 4. RISULTATI E COMMENTI
Tabella 4.7: Errori della PNN addestrata con il labirinto base. Grazie all’uso di un’AP, tutti i programmi possono essere appresi
correttamente. Tra le 20 esecuzioni si possono isolare un best case (fig. 4.2.4), con 8 su 8 programmi appresi, ed un worst case, con
7 su 8 programmi appresi (fig. 4.2.5).
PNN Errore del programma (Numero di svolte corrette)
P1P2P3P4P5P6P7P8
10.005 (3/3) 0.079 (3/3) 15.155 (2/3) 0.046 (3/3) 0.022 (3/3) 0.073 (3/3) 0.040 (3/3) 0.005 (3/3)
20.005 (3/3) 0.068 (3/3) 15.155 (2/3) 0.050 (3/3) 0.031 (3/3) 0.082 (3/3) 0.093 (3/3) 0.005 (3/3)
30.005 (3/3) 0.072 (3/3) 15.155 (2/3) 0.041 (3/3) 0.028 (3/3) 0.040 (3/3) 0.025 (3/3) 0.005 (3/3)
40.005 (3/3) 0.097 (3/3) 0.092 (3/3) 0.038 (3/3) 0.021 (3/3) 0.042 (3/3) 0.094 (3/3) 0.005 (3/3)
50.005 (3/3) 0.095 (3/3) 1.033 (3/3) 0.048 (3/3) 0.054 (3/3) 0.069 (3/3) 0.087 (3/3) 0.005 (3/3)
60.005 (3/3) 0.076 (3/3) 15.155 (2/3) 0.060 (3/3) 0.048 (3/3) 0.055 (3/3) 0.046 (3/3) 0.005 (3/3)
70.005 (3/3) 0.077 (3/3) 0.094 (3/3) 0.040 (3/3) 0.043 (3/3) 0.055 (3/3) 14.145 (2/3) 0.005 (3/3)
80.005 (3/3) 0.100 (3/3) 15.155 (2/3) 0.037 (3/3) 0.030 (3/3) 0.052 (3/3) 0.047 (3/3) 0.005 (3/3)
90.005 (3/3) 0.051 (3/3) 15.155 (2/3) 0.061 (3/3) 0.034 (3/3) 0.088 (3/3) 0.048 (3/3) 0.005 (3/3)
10 0.005 (3/3) 0.052 (3/3) 15.155 (2/3) 0.079 (3/3) 0.027 (3/3) 0.046 (3/3) 0.092 (3/3) 0.005 (3/3)
11 0.005 (3/3) 0.092 (3/3) 0.059 (3/3) 0.048 (3/3) 0.026 (3/3) 0.063 (3/3) 0.080 (3/3) 0.005 (3/3)
12 0.005 (3/3) 0.074 (3/3) 0.075 (3/3) 0.046 (3/3) 0.018 (3/3) 0.052 (3/3) 0.094 (3/3) 0.005 (3/3)
13 0.005 (3/3) 0.078 (3/3) 1.033 (3/3) 1.020 (3/3) 0.069 (3/3) 0.057 (3/3) 0.049 (3/3) 0.005 (3/3)
14 (best case)0.005 (3/3) 0.091 (3/3) 0.063 (3/3) 0.044 (3/3) 0.027 (3/3) 0.053 (3/3) 0.075 (3/3) 0.005 (3/3)
15 (worst case)0.005 (3/3) 0.079 (3/3) 15.155 (2/3) 0.079 (3/3) 0.092 (3/3) 0.053 (3/3) 0.087 (3/3) 0.005 (3/3)
16 0.005 (3/3) 0.067 (3/3) 1.033 (3/3) 0.046 (3/3) 0.022 (3/3) 0.042 (3/3) 0.062 (3/3) 0.005 (3/3)
17 0.005 (3/3) 0.085 (3/3) 15.155 (2/3) 0.059 (3/3) 0.029 (3/3) 0.058 (3/3) 0.066 (3/3) 0.005 (3/3)
18 0.005 (3/3) 0.076 (3/3) 0.072 (3/3) 0.064 (3/3) 0.070 (3/3) 0.058 (3/3) 0.053 (3/3) 0.005 (3/3)
19 0.005 (3/3) 0.093 (3/3) 9.097 (2/3) 0.029 (3/3) 0.034 (3/3) 0.057 (3/3) 0.088 (3/3) 0.005 (3/3)
20 0.005 (3/3) 0.092 (3/3) 15.155 (2/3) 0.056 (3/3) 0.044 (3/3) 0.064 (3/3) 0.093 (3/3) 0.005 (3/3)
Successo (3/3) 100% 100% 45% 100% 100% 100% 95% 100%
55
CAPITOLO 4. RISULTATI E COMMENTI
Tabella 4.8: Statistica dei risultati per la PNN addestrata con il labirinto base. L’ap-
prendimento mostra una buona capacità dell’AP ad apprendere comportamenti multipli e
più che sufficiente ad apprenderne anche 8 su 8 proposti. La deviazione standard è leg-
germente alta per i programmi che mostrano una certa difficoltà ad essere appresi (P3e
P7), lo si può notare dal raffronto diretto con la loro frequenza di successo. In ogni caso,
P3è l’unico programma che ha anche una media d’errore leggermente alta, ovvero tale
da sbagliare al massimo solo una svolta delle tre previste per raggiungere la terminazione
corretta del labirinto, ma comunque rendendo errato l’intero programma, concordemente
con la sua frequenza di successo (3/3 svolte corrette) al di sotto del 50%.
P1P2P3P4P5P6P7P8
Errore medio 0.005 0.080 8.210 0.100 0.038 0.058 0.773 0.005
Deviazione
standard
0.000 0.014 7.379 0.217 0.019 0.013 3.147 0.000
Errore
massimo
0.005 0.100 15.155 1.020 0.092 0.088 14.145 0.005
Errore minimo 0.005 0.051 0.059 0.029 0.018 0.040 0.025 0.005
Frequenza di
successo
100% 100% 45% 100% 100% 100% 95% 100%
Tabella 4.9: Frequenza di successo per la PNN addestrata con il labirinto base. Con questo
tipo di addestramento l’AP riesce ad apprendere 8 comportamenti su 8 nel best case (40%
dei casi) e 7 su 8 nel worst case (il restante 60%).
Programmi appresi 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8
Frequenza di successo 100% 100% 100% 100% 100% 100% 100% 40%
56
CAPITOLO 4. RISULTATI E COMMENTI
Tabella 4.10: Passi d’apprendimento della PNN con il labirinto base. Il limite massimo
di passi totali per l’apprendimento della PNN è impostato a SP NN = 2 ·Sonline = 2 ·NP·
Sbatch = 2 ·8·2500 = 40000 passi totali, che corrispondono a 5000 passi massimi per
ciascun programma. In realtà, come si vede dalla tabella, il massimo di passi raggiunto
è di 12500 che è di gran lunga inferiore rispetto ai 20000 passi massimi previsti per
l’apprendimento dell’ANP in modalità online. L’apprendimento a soglia ha ridotto da
un minimo di 40000 −12500 = 27500 passi, ad un massimo di 40000 −2450 = 37550
passi, l’apprendimento standard per una PNN. Anche se non si evince dai dati finali, un
programma che non converga ad un minimo globale entro “pochi” passi d’apprendimento,
convergerà comunque dopo “pochi” passi d’apprendimento ad un minimo locale entro il
quale si manterrà fino a fine apprendimento, ovvero, nel nostro caso, al 5000°passo,
a meno che non si protragga l’apprendimento all’infinito. In questo senso, allora, una
soglia massima di 2500 passi d’apprendimento per programma (pari a quella impostata
per l’ANP) avrebbe fornito risultati, a meno di affinamenti degli errori di ordine inferiore,
quasi del tutto identici. L’algoritmo di apprendimento a soglia è dunque più efficiente sia
di quello online che di quello batch perché ne acquista, di entrambi, i vantaggi: meno passi
totali (modalità batch) e la possibilità, trattandosi di PNN, di apprendere i programmi
singolarmente (modalità online), con maggior efficacia (minimizzazione dell’errore) sui
singoli programmi.
PNN Passi d’apprendimento per programma Passi totali
P1P2P3P4P5P6P7P8
150 100 5000 100 100 1050 350 50 6800
250 200 5000 150 100 900 700 50 7150
350 200 5000 100 100 550 450 50 6500
450 150 1150 250 100 1100 550 50 3400
550 100 5000 200 50 700 250 50 6400
650 150 5000 100 50 1000 850 50 7250
750 250 800 200 50 750 5000 50 7150
850 150 5000 150 100 700 900 50 7100
950 150 5000 100 50 600 400 50 6400
10 50 150 5000 250 100 550 350 50 6500
11 50 200 1000 100 100 450 500 50 2450
12 50 300 800 100 100 850 450 50 2700
13 50 150 5000 5000 50 650 1550 50 12500
14 50 400 600 150 50 900 900 50 3100
15 50 150 5000 50 50 750 1000 50 7100
16 50 150 5000 100 100 950 400 50 6800
17 50 150 5000 100 50 1050 300 50 6750
18 50 350 850 100 50 600 1350 50 3400
19 50 200 5000 350 50 550 650 50 6900
20 50 200 5000 150 50 950 300 50 6750
Media 50 192 3760 390 72 780 860 50 6155
Dev. standard 0 78 1946 1087 25 199 1037 0 2269
Massimo 50 400 5000 5000 100 1100 5000 50 12500
Minimo 50 100 600 50 50 450 250 50 2450
57
CAPITOLO 4. RISULTATI E COMMENTI
Figura 4.2.5: Risposta della rete PNN numero 15 ( worst case) addestrata con il dataset
per il labirinto base, ovvero conλ= 2 (parametro adimensionale proporzionale alle dimen-
sioni del labirinto). I programmi corretti sono P1,P2,P4,P5,P6,P7eP8, per i quali le
uscite UMdel dataset e della PNN hanno andamenti - al di sotto e al di sopra della soglia
a 0,5 - coincidenti. La lettura di UMcome segnale on-off, nel nostro caso, viene effettuata
con un offset pari a 5 dall’istante iniziale e dopo ogni discesa del segnale di trigger.
58
CAPITOLO 4. RISULTATI E COMMENTI
4.2.4 Confronto dei risultati
Dai risultati dell’apprendimento con il dataset per il labirinto base, risulta che i programmi
della PNN vengono appresi tutti e otto nel 40% dei casi (tab. 4.9) e, mediamente, in soli
769 passi d’apprendimento (tab. 4.10). Nell’altro 60% dei casi, vengono appresi comunque
7 programmi su 8. Un risultato notevole rispetto a quello della CTRNN addestrata in
modalità batch che ne apprende massimo 5 nell’85% dei casi e almeno 4 nel restante 15%
(tab. 4.6) con 2500 passi fissi d’apprendimento, oppure rispetto a quello della CTRNN
addestrata in modalità online che riesce ad apprendere uno ed un solo programma nel
100% dei casi (tab. 4.3), con 20000 passi fissi d’apprendimento.
In sintesi, lo scenario di base, cioè con un apprendimento limitato ad un solo labirinto
(§ 3.1.4.1), favorisce di gran lunga l’Architettura Programmabile composta da PNN e
FNN, piuttosto che l’Architettura Non Programmabile composta da una CTRNN full
connected, sia in termini di successo dell’apprendimento, con almeno 3 programmi in più
appresi, che in termini di risparmio di risorse computazionali, visto che sono necessari
meno passi d’apprendimento per raggiungere un risultato addirittura migliore.
L’Architettura Programmabile si dimostra l’unica in grado di apprendere tutti e otto
i comportamenti proposti.
4.3 Apprendimento del dataset con tre labirinti
I tre labirinti scelti per questa sessione d’apprendimento corrispondono al dataset descritto
al paragrafo 3.1.4.2. La scelta di un dataset più complesso è motivata dalla necessità di
insegnare al robot a generalizzare i comportamenti multipli appresi per più di uno scenario
dalle caratteristiche simili. L’architettura di controllo deve cioè interpretare degli input
con una maggiore variabilità e consentire al robot di continuare a manifestare gli stessi
comportamenti correttamente. Imponiamo e verifichiamo, in tal modo, la condizione
necessaria che richiede di apprendere comportamenti e non semplici traiettorie.
I labirinti scelti corrispondono ai parametri λ= 2,λ= 3 eλ= 4 che ne esprimono
sinteticamente la grandezza in termini adimensionali, sfruttando la proporzionalità tra
i tempi di percorrenza e le lunghezze dei tratti rettilinei percorsi dal robot a velocità
costante (eq. 3.1.3).
4.3.1 Architettura Non Programmabile in modalità online
L’Architettura Non Programmabile (fig. 3.2.1) è stata addestrata anche con tre labirin-
ti di grandezza diversa, ovvero per λ= 2 ,λ= 3 eλ= 4 (parametro adimensionale
proporzionale alle dimensioni del labirinto), in modalità online (nel paragrafo successivo
59
CAPITOLO 4. RISULTATI E COMMENTI
troviamo i risultati per l’altro tipo di addestramento, in modalità batch), ovvero alternan-
do l’apprendimento dei singoli programmi, in ordine crescente di nome, per un numero
fissato di passi e reiterando l’intera sequenza più volte. Sebbene questo tipo di appren-
dimento porti a buoni risultati nell’ambito della ricerca di una soluzione ottimale per il
singolo programma, l’alternarsi degli obiettivi finisce per confondere la funzione d’errore
che viene ottimizzata ora in un senso, ora verso un altro tipo di soluzione; nel complesso
non si raggiunge una soluzione in grado di portare l’errore a zero per tutti i programmi.
In particolare, quanto appena detto, può essere subito osservato dalle tabelle 4.11 e 4.12
dei risultati e 4.13 con l’analisi statistica dei risultati dove si evince che il programma P8
ha prestazioni di gran lunga migliori degli altri sette, per l’esattezza, è anche l’unico (tab.
4.14) che svolga il suo compito a dovere, portando il robot alla corretta terminazione del
labirinto, in tutte e 20 le prove effettuate.
Un altro fenomeno da osservare è quello che potremmo definire uno stallo di questo
algoritmo d’apprendimento: per quanti cicli d’apprendimento si possa pensare di eseguire,
solo gli ultimi SPpassi d’apprendimento riguardanti ciascuno degli otto programmi sono
quelli che hanno impatto sull’errore finale, questo perché ogni volta che la fitness ricomin-
cia decrescere minimizzando l’errore sul primo programma, ovvero inizia un nuovo ciclo
esterno, tende subito a “dimenticare” i risultati ottenuti al ciclo precedente. In definitiva,
se il numero di passi d’apprendimento scelto è stato:
S=SP·NP·C= 20000
con cicli C= 50, passi d’apprendimento SP= 50, numero di programmi NP= 8,
allora, avremmo anche potuto scegliere:
S=SP·NP·C= 400
con C= 1,SP= 50,NP= 8, ed ottenere risultati identici. Ecco perché non ci
deve meravigliare un risultato identico per tutte le prove: un addestramento per singolo
programma così rapido (SP= 50), a partire dalla stessa inizializzazione della rete neurale,
porta la fitness a raggiungere sempre gli stessi valori (tabb. 4.11 e 4.12) con conseguente
deviazione standard nulla (tab. 4.13).
Nelle figure 4.3.1, 4.3.2 e 4.3.3 vediamo i risultati di una qualsiasi rete, da considerarsi
best e worst case contemporaneamente (tutte le reti si comportano allo stesso modo,
pertanto i due risultati coincidono). Si nota subito come l’output UM8della rete CTRNN
si sposi perfettamente con quello atteso del dataset, in tutti e tre i labirinti. La rete
CTRNN ha infatti appreso perfettamente solo l’ultimo comportamento che consente al
robot di raggiungere l’ottava terminazione del labirinto, e si comporta sempre allo stesso
60
CAPITOLO 4. RISULTATI E COMMENTI
modo, qualsiasi sia il programma Pipresentato in ingresso.
Tabella 4.13: Statistica dei risultati per la CTRNN addestrata in modalità online con tre
labirinti di grandezza diversa, ovvero per λ= 2 ,λ= 3 eλ= 4 (parametro adimensionale
proporzionale alle dimensioni del labirinto). L’apprendimento mostra chiaramente un’in-
capacità di raggiungere soluzioni ottimali per la rete con la conseguente tendenza della
fitness a favorire l’ultimo programma appreso, l’unico con errore medio quasi nullo. Inol-
tre, l’alto numero di iterazioni effettuate (S=SP·NP·C= 20000) non consente alcuna
differenziazione dei risultati tra una prova e l’altra, infatti, la deviazione standard risulta
nulla in tutti i casi e i valori massimi e minimi d’errore coincidono.
P1P2P3P4P5P6P7P8
Errore
medio
181.791 124.221 121.191 63.621 118.179 60.609 57.579 0.009
Deviazione
standard
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
Errore
massimo
181.791 124.221 121.191 63.621 118.179 60.609 57.579 0.009
Errore
minimo
181.790 124.221 121.191 63.621 118.179 60.609 57.579 0.009
Frequenza
di successo
0% 0% 0% 0% 0% 0% 0% 100%
Tabella 4.14: Frequenza di successo per la CTRNN addestrata in modalità online con tre
labirinti di grandezza diversa, ovvero per λ= 2 ,λ= 3 eλ= 4 (parametro adimensionale
proporzionale alle dimensioni del labirinto). Con questo tipo di addestramento l’ANP
riesce ad apprendere uno ed un solo comportamento.
Programmi appresi 1/8 2/8 3/8 4/8 5/8 6/8 7/8 8/8
Frequenza di successo 100% 0% 0% 0% 0% 0% 0% 0%
61
CAPITOLO 4. RISULTATI E COMMENTI
Tabella 4.11: Errori dei programmi (tabella da P1aP4) della CTRNN addestrata in modalità online con tre labirinti di grandezza
diversa, ovvero per λ= 2 ,λ= 3 eλ= 4 (parametro adimensionale proporzionale alle dimensioni del labirinto). L’apprendimento,
osservando anche la tabella che riporta i risultati per gli altri quattro programmi, mostra chiaramente un’incapacità di raggiungere
soluzioni ottimali per la rete con la conseguente tendenza della fitness a favorire l’ultimo programma appreso. Inoltre, anche in luogo
dell’alto numero di iterazioni effettuate (S=SP·NP·C= 20000), non consente alcuna differenziazione dei risultati tra una prova
e l’altra a causa di un’inefficienza dell’algoritmo utilizzato per l’apprendimento di comportamenti multipli.
Errore del programma (Numero di svolte corrette)
CTRNN P1P2P3P4
(online)λ= 2 λ= 3 λ= 4 λ= 2 λ= 3 λ= 4 λ= 2 λ= 3 λ= 4 λ= 2 λ= 3 λ= 4
145.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
245.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
345.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
445.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
545.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
645.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
745.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
845.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
945.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
10 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
11 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
12 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
13 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
14 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
15 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
16 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
17 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
18 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
19 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
20 45.447 (0/3) 60.597 (0/3) 75.747 (0/3) 31.307 (1/3) 41.407 (1/3) 51.507 (1/3) 30.297 (1/3) 40.397 (1/3) 50.497 (1/3) 16.157 (2/3) 21.207 (2/3) 26.257 (2/3)
Successo 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0% 0%
62
CAPITOLO 4. RISULTATI E COMMENTI
Tabella 4.12: Errori dei programmi (tabella da P5aP8) della CTRNN addestrata in modalità online con tre labirinti di grandezza
diversa, ovvero per λ= 2 ,λ= 3 eλ= 4 (parametro adimensionale proporzionale alle dimensioni del labirinto). L’apprendimento,
osservando anche la tabella che riporta i risultati per gli altri quattro programmi, mostra chiaramente un’incapacità di raggiungere
soluzioni ottimali per la rete con la conseguente tendenza della fitness a favorire l’ultimo programma appreso. Inoltre, anche in luogo
dell’alto numero di iterazioni effettuate (S=SP·NP·C= 20000), non consente alcuna differenziazione dei risultati tra una prova
e l’altra a causa di un’inefficienza dell’algoritmo utilizzato per l’apprendimento di comportamenti multipli.
Errore del programma (Numero di svolte corrette)
CTRNN P5P6P7P8
(online)λ= 2 λ= 3 λ= 4 λ= 2 λ= 3 λ= 4 λ= 2 λ= 3 λ= 4 λ= 2 λ= 3 λ= 4
129.293 (1/3) 39.393 (1/3) 49.493 (1/3) 15.153 (2/3) 20.203 (2/3) 25.253 (2/3) 14.143 (2/3) 19.193 (2/3) 24.243 (2/3) 0.003 (3/3) 0.003 (3/3) 0.003 (3/3)
229.293 (1/3) 39.393 (1/3) 49.493 (1/3) 15.153 (2/3) 20.203 (2/3) 25.253 (2/3) 14.143 (2/3) 19.193 (2/3) 24.243 (2/3) 0.003 (3/3) 0.003 (3/3) 0.003 (3/3)
329.293 (1/3) 39.393 (1/3) 49.493 (1/3) 15.153 (2/3) 20.203 (2/3) 25.253 (2/3) 14.143 (2/3) 19.193 (2/3) 24.243 (2/3)