CO.R.A. Conditional Reflex Analogue

CORA, la macchina che simula l’apprendimento

CORA è il frutto degli esperimenti di W. Grey Walter determinati a capire come funziona il meccanismo cerebrale di apprendimento per gli animali. Tali teorie sono molto ben spiegate nei cap. 6 e 7 del suo libro “Il cervello vivente” pubblicato in Italia nel 1957 e ancora reperibile in alcuni esemplari in alcune librerie online, anche in lingua originale (Inglese). Del cap. 7 ve ne proporrò solo una parte così da aver ben spiegato dallo stesso autore il meccanismo di funzionamento. (link)

Poiché lo schema originale è a valvole (2 pentodi e 1 eptodo nel modello dimostrativo) ed il mio a porte logiche, i “sette passi” non saranno proprio gli stessi sette e potrebbero essere distribuiti in maniera diversa. In ogni caso, dove la funzionalità è ben definita, verranno evidenziati sullo schema elettrico con dei numerini tra parentesi (ne: Il collaudo di CORA).

Premetto che i valori dei componenti R e C nel circuito, sono stati scelti per un circuito dimostrativo. Nel caso debba essere messo su un robot mobile, alcuni tempi dovranno essere dilatati di molto per permettere un uso proficuo del circuito. Immaginate per esempio che il robot invece di “tenere a memoria” quanto appreso per qualche giorno lo dimenticasse dopo qualche minuto o per troppo tempo (in questo caso specifico faccio riferimento alla “memoria 2” composta dal condensatore da 1uF e dalla resistenza da 150 ohm. Nel primo caso non saprebbe mai dove cercare il cibo dato che lo avrebbe già dimenticato. Nel secondo non potrebbe aggiornare quanto appreso nel caso in cui lo stimolo secondario cambiasse (ad esempio da luce a suono).

Premessa: questo circuito, dedicato agli sperimentatori un po’ esperti, è in versione “demo”. È tarato per dare dimostrazioni delle sue capacità in “tempi ragionevoli” (minuti). Con una taratura reale ad esempio, ci vorrebbero ore se non giorni per vederne il funzionamento completo. Per adattarlo ad un robot occorre allungare alcune temporizzazioni (memoria1 e memoria2) per far si che l’apprendimento si compia in ore o giorni a seconda di quanto durano i cicli di ricarica delle batterie del robot. Il circuito può essere innestato in un qualsiasi tipologia di robot in quanto fa uso solo di livelli logici elementari su ingressi e uscite. Questi livelli logici possono essere “letti” via hardware o software e usati per gli scopi designati.

Di seguito la descrizione del circuito:

se vediamo il circuito come una Black Box, possiamo prima di tutto vedere che ha due ingressi e due uscite, di cui solo una interessa a noi. Quella denominata Es (effetto specifico). Gli ingressi sono chiamati Ss (stimolo specifico) e Sn (stimolo neutro).

Lo stimolo specifico è quello relativo al cibo in quanto scopo dell’apprendimento mentre lo stimolo neutro è quello relativo a qualsiasi evento che possa essere associato al mangiare. Ad esempio, quando la mia gatta sente la parola “ciccia”, corre perché sa che è in arrivo un bel piatto di croccantini o dei pezzettini di carne o prosciutto o qualsiasi altra cosa di cui è ghiotta. Associa cioè alla parola “ciccia” qualsiasi cosa mangiabile e di gran gusto.

cora - cora3-se

In alto a sinistra (ingresso Ss) è presente il circuito “derivatore” formato da due resistenze ed un condensatore. Questo derivatore serve a restringere il tempo relativo all’assunzione del cibo. Dà cioè solo lo start di inizio pranzo, che è quello che serve per un corretto funzionamento. Il C da 22nF e la R da 18Kohm determinano la larghezza dell’impulso. Con questi valori l’apprendimento scatta dopo circa 3 volte l’applicazione della sequenza di stimoli. La R da 5600 ohm invece serve a scaricare in un tempo inferiore il C da 22nF.

Nota: normalmente la scarica del condensatore sarebbe possibile in automatico se in ingresso fosse presente un segnale “1” o “0” cosa possibile mettendo un deviatore o una porta logica. poichè non sempre è possibile, è stato deciso di uniformare il comportamento degli ingressi isolandoli con un diodo tipo 1N4148.

Il diodo 1N4148 in parallelo alla R da 18Kohm è stato messo per proteggere l’ingresso della porta logica da tensioni negative. Il circuito integrato usato è un quadruplo AND di tipo CMOS modello HEF4081 che ha agli ingressi una impedenza di 15Mohm (assorbe 1uA a 15V). Questo permette di usare i circuiti RC in condizioni quasi ideali. Con un TTL questo non sarebbe possibile se non usando R da decine di Mohm e condensatori da diversi Farad.

In basso a sinistra (ingresso Sn) tralasciando per il momento tutto quello intorno alla porta nand, è presente il circuito integratore formato da un C da 1uF e da tre R da 100Kohm, 10Mohm e 10Mohm. Questo integratore serve ad allungare (stretching) l’impulso dello stimolo neutro in modo che in un arco di tempo definito (memoria-1) possa essere intercettato l’impulso all’ingresso Ss. Come dire: se dopo aver detto “la vuoi la ciccia” faccio vedere alla gatta un pezzetto di carne, questa associerà l’offerta di cibo alla suddetta frase (cosa che puntualmente succede). Se il tempo intercorrente tra i due eventi sarà troppo lungo o invertito, l’associazione non avrà luogo (vedi cap.7).

Il tempo entro cui l’associazione è possibile è determinato dal valore di C da 1uF e dalla R da 100Kohm. Le due R in parallelo da 10Mohm determinano il tempo di scarica del condensatore. In questo caso occorre considerare che c’è una terza R da 15Mohm in parallelo ed è l’impedenza di ingresso della porta cmos.

cora - Cora_step1.4_821x1024

Nella figura qui sopra, possiamo vedere come funziona il mix tra i due stimoli. Vediamo quindi che man mano i due stimoli si allontanano tradi loro, minore è la quantità di energia trasferita e quindi maggiore il tempo in cui la memoria-2 viene rafforzata.

Il mix dei due segnali viene fatto dalla porta AND contrassegnata con il numero (3) corrispondente allo step del diagramma soprastante. Questo mix che sarà un impulso di larghezza variabile (o uno zero) e funzione della temporizzazione tra i due ingressi Sn e Ss, sarà quello che caricherà il circuito RC da 150ohm/1uF. Più impulsi saranno presenti, più alta sarà la tensione ai capi del C. Una volta che questa tensione raggiungerà il valore di soglia della porta AND successiva (metà della tensione di alimentazione), l’uscita della porta AND (evidenziata dal numero 6) andrà a “1” logico e si accenderà il led che sta a indicare l’avvenuta associazione degli stimoli (memoria-3). Questa tensione corrispondente allo Stimolo Specifico, si presenterà all’uscita Es ogni qualvolta sarà presente in ingresso lo stimolo neutro Sn.

cora - Cora_step5.7_997x1024

Nella figura soprastante sono rappresentati gli ultimi tre step che però nel nostro caso non sono oscillazioni ma livelli logici. Il significato che assumono però è coincidente.

A questo punto l’associazione è fatta, ma la carica del C non sarà sufficiente a “ricordare” per lungo tempo in quanto si scaricherà lentamente tramite la corrente di leakage della porta AND per cui per rafforzare questa associazione c’è bisogno di un continuo ripetersi nel tempo dell’associazione Sn+Ss cosa che avviene ogni qualvolta il robot avrà fame e mangerà. Minore sarà il tempo tra ricariche successive e maggiore sarà l’opera di rafforzamento della “memoria”. Questo esattamente come succede agli esseri viventi.

Rimane un ultimo punto da spiegare: a cosa serve l’ultima porta AND, quella sull’ingresso Sn?

E’ presto detto; se la luce (ma anche un suono o un qualsiasi altro stimolo scelto) è sempre presente, questo non sarà più determinante nell’associazione e quindi non potrà essere usato al nostro scopo (immaginate di dire al gatto “la vuoi la ciccia” ogni cinque minuti, alla fine disassocierà la frase al cibo). I valori scelti, faranno in modo da disattivare la porta se all’ingresso è presente lo stimolo per più di 80 secondi.

Questo è tutto. Domande e richieste di chiarimenti a questo link

A questo link potete scaricare parte del cap.7 così da capire meglio il progetto originale.

cora-elsieIn questa immagine vediamo W. Grey Walter vicino alla macchina dimostrativa CORA e al robot Elsie.

CORA600Fig. 1 – Il circuito di CORA sulla breadboard e in fase di test.

cora3_brdFig.2 – CORA montata su basetta perfboard.

 LISTA DEI COMPONENTI

        Le resistenze sono tutte da 1/4W 5%
	2 x 150 ohm
	2 x 5,6 Kohm
	1 x 18 Kohm
	2 x 100 Kohm
	1 x 1 Mohm
	2 x 10 Mohm

	 

	Condensatori
	1 x 22 nF poliestere
	2 x 1 uF elettrolitico 25V
	1 x 100 uF elettrolitico 25V


	Diodi
	5 x 1N4148
	1 x led rosso

	 
	Circuiti integrati
	HEF4081 tipo CMOS o equivalente


	Miscellanea
	1 x basetta millefori (perfboard)

Lascia un commento