Meccanica cerebrale



Avanzamento degli studi


>>>>>>> File lungo: premi Ctrl Fine per andare subito in fondo. <<<<<<<<

11 luglio 2009


1. I comandi chain ed execute del PASCAL non funzionano sul mio computer, per cui occorre lanciare manualmente alcuni programmi. Sarebbe bene usare una versione più moderna di PASCAL.

2. Ho due computer su uno, quello più nuovo, TABULA4 è lentissimo richiede 10-15 minuti, su quello più vecchio meno di 1 secondo!

3.Forme semplici tipo I o L portano nel programma RICON a valori numerici di potenza che eccedono i massimi ammessi dal tipo di variabile usata (ho usato il tipo Byte per risparmiare memoria). Non è un errore concettuale ma il programma va riscritto.

4.Quando si tratta di elaborare molte forme in successione il programma RICON funziona male. Ad esempio se elaboro due E quando il file RICORDI è vuoto il programma funziona in modo corretto e si hanno i collegamenti giusti fra le caratteristiche delle due forme. Se RICORDI contiene molte forme, il riconoscimento richiede l'applicazione ripetuta di RICON e le stesse due E dell'esempio precedente vengono elaborate male nel senso che il programma non collega più bene le loro caratteristiche! E' un errore grave, perché limita il numero di forme da elaborare, ma è un problema tecnico non concettuale a cui forse si rimedia usando una versione più moderna di PASCAL. Per rendersi conto che concettualmente i programmi funzionano provate, con il file RICORDI vuoto a elaborare una A, poi una R, poi ancora un'altra R. Essa sarà riconosciuta già da RICON. Il riconoscimento sarà migliorato da UNIRES e DELTA. Per questo lanciate T1. Ora cancellate RICORDI e elaborate molte forme ma non A o R. Fatto questo rifate la memorizzazione della e delle R come fatto prima: vedrete che i valori e i collegamenti sono tutti diversi e sbagliati. Io non ho la capacità di rimediare a questi difetti.

5.Il programma DELTA cerca le differenze fra le immagini, i suoi risultati vanno collocati in un contesto sintattico. Per ora ho usato una valutazione dei suoi risultati non è concettualmente corretta, l'ho usata solo perché spesso funziona.



17 luglio 2009

Il funzionamento di RICON va migliorato, anche se quando vi sono poche forme in memoria funziona adeguatamente. Quando vi sono molte forme smette di funzionare ma ripeto è un problema tecnico, non concettuale. Ho inserito in memoria, nel file RICORDI due forme C11 e G11, le potete vedere in fig.1 e fig. 2.


Fig.1


Fig.2



Poi ho rilanciato il programma con le stesse due figure memorizzate. Osservate la Fig.1, vi è una linea di 6 asterischi in alto, ogni tratto fra due asterischi corrisponde a 50 pixels del contorno della figura. Il primo asterisco a sinistra della linea corrisponde a quello verde in alto sulla C, il secondo al secondo sulla figura in senso destrorso. I perimetri di tutte le figure sono normalizzati a 250 pixels. Le linee gialle verticali sono le caratteristiche delle due C ed ovviamente sono speculari. In rosso i collegamenti fra queste caratteristiche. Dovrebbero essere verticali e lo sono tranne nella zona fra il IV e il V asterisco. E' un difetto di RICON. In Fig.2 lo stesso difetto lo fa fra il V e il VI asterisco. Un programma scritto con più accuratezza rimedia a questi errori che comunque non sono gravi, il programma MISCHIA li elimina. La procedura T.bat va comunque bene. Ecco che cosa capita quando lancio una G di foggia tipografica diversa da quella inserita.


Fig.3


Fig.4





Il confronto con la C memorizzata da luogo ad una potenza di 163 (fig.3), e la macchina nota che la differenza fra la C memorizzata e la G presentata sta in basso a destra della G e segna la zona in rosso. Il confronto fra la G memorizzata e quella presentata da luogo ad una potenza di 197 (200 è il massimo, fig 4) e non trova particolari differenti. Le conclusioni del riconoscimento topologico sono nella seguente fig.5




In effetti fra la C e la G la differenza è poca occorre il riconoscimento sintattico, che individui la differenza e in base a questa permetta la discriminazione. I programmi UNIRES e DELTA individuano la differenza ma i loro risultati andrebbero valutati nel contesto di una frase. Tuttavia ho realizzato un piccolo e scadente sistema di riconoscimento entro il programma DELTA, esso porta alle conclusioni della seguente fig. 6.




La potenza della C risulta 184 e quella della G, 259. Prima era pot. C= 167 e pot.G=197. La differenza fra la due potenze è di 34 nel primo caso e di 75 nel secondo. Da un punto di vista percentuale la differenza è del 20% nel primo caso e del 40% nel secondo. Migliora la discriminazione, anche senza usare la frase.

C e G vengono distinte correttamente. E' ovvio io mostrassi al sistema, che ha in memoria C e G forme quali A, P o Z i collegamenti con le lettere memorizzate sarebbero scarsi come la potenza. Mentre se memorizzo A11 ed R11 poi mostro altre A ed altre R che sono simili, il sistema le riconosce. Idem per E ed F e questo avviene, in generale, senza affinare le lettere con il programma MISCHIA, con le lettere affinate il riconoscimento migliora.

Tutto bene dunque? Niente affatto.

Se le lettere in memoria sono poche, due o tre, tutto funziona come previsto. Se le lettere in memoria sono 5 o 6 o di più, il programma smette di funzionare. Le stesse C11 e G11 memorizzate confrontate con la G21 non danno più i risultati delle Figg.3 e 4. Ecco il disastro che avviene con appena otto forme.


Fig.7


Fig.8



La differenza fra Fig.3 e Fig.7 esiste e la differenza fra Fig. 4 e Fig.8 è enorme. La Fig. 8 mostra eloquentemente il problema. Le caratteristiche della forma memorizzata, le linee verticali gialle sotto le linee rosse, non vengono collegate correttamente con le linee verticali gialle sopra, che rappresentano le caratteristiche della forma presentata, nel caso G21. Io non capisco perché succeda questo guaio. E' la stessa procedura che reiterata, 2 o 3 volte va, 6 o 7 no! Va detto che non sono un esperto di computer né un programmatore. Capisco che il problema viene dal nocciolo del programma RICON, quello che collega le caratteristiche delle forme: il Pascal non sopporta la sua reiterazione. Devo rimediare, forse è una questione di differenze di velocità di elaborazione entro il computer. Al limite proverò a usare un Pascal più moderno, ho il Borland Pascal 7, ma riscrivere RICON è penoso e penso che un competente possa risolvere il problema subito. Inoltre il Borland Pascal 7 è moderno per modo di dire, è del 1992.

20 luglio 2009

Ho trovato l'errore ed ho rimediato. Era nel programma RICON. Per normalizzare una variabile dovevo moltiplicarla, una sola volta, per il fattore 0,69. Siccome avevo messo questo fattore in una procedura che veniva reiterata, la variabile veniva moltiplicata ogni volta per 0,69, diventava sempre più piccola e scombinava tutto. Ora procederò a correggere UNIRES e DELTA, che potete provare fin d'ora. Badate a non considerare i risultati di DELTA, essi hanno senso solo in un quadro di riconoscimento sintattico. In Fig.9 e 10 vedete i risultati. In Fig.10, come in Fig.8 e in Fig.2 si vede la “Dimnsione di RICORDI” ovvero il numero delle forma memorizzate. Stavolta con 8 forme i risultati sono quasi uguali a quelli di fig.2, dove le forme sono 2. Sul “quasi uguali” ci sarebbe molto da discutere....


Fig.7


Fig.8



In Fig. 9 vedete i risultati del riconoscimento topologico, che di basa sul solo contorno esterno. Le forme erano 8 in RICORDI ma 2 vengono escluse, la B e la D, perché pochissimo somiglianti con la G. Vedete che fra tutte la lettera C è quella che ha potenza maggiore. Infatti il programma RICON meccanizza la somiglianza “human like”. Chiede a un bambino quale fra le 8 lettere assomiglia di più alla G, dirà la C, di certo.


Fig.9

Ora procederò a correggere UNIRES e DELTA, che potete provare fin d'ora. Badate a non considerare i risultati di DELTA, essi hanno senso solo in un quadro di riconoscimento sintattico.

1 agosto 2009

Concettualmente il programma MISCHIA funziona esso affina le forme e ne coglie l'essenza. Scusate questo modo di parlare volgare e osceno. In effetti almeno la parola essenza dovrebbe essere evitata in ogni discorso che abbia un minimo di pretese di ragionevolezza. Comunque si osservi la Fig. 10 in essi sono confrontati G11 su C11. In Fig. 11sono stati mischiati C11 con C12 e G11 con G12.


Fig.10


Fig.11



Anche un bambino capisce che la differenza fra la C e la G è nell'asticciola piegata in Fig.12.


Fig.12

Nelle Figg.10 e 11 la zona è indicata dalla freccia e dalla parola HERE! In Fig.10 si nota la mancanza di collegamenti nelle colonne verticali superiori, quelle che rappresentano le caratteristiche della G11 ma anche in quelle inferiori, che rappresentano le caratteristiche della C11 memorizzata. Queste ultime caratteristiche dovrebbero essere collegate. Inoltre c'è un incrocio delle linee rosse, che collegano le caratteristiche: Questo è un errore che deriva da un errore nel programma RICON. Lasciando perdere l'ultimo errore si vede che in Fig.11 le cose vanno come si deve. Mescolando le caratteristiche di due C e di due G il programma UNIRES individua la differenza. Mescolando tre C e tre G la forma essenziale (sic!) delle due figure dovrebbe diventare ancora meglio definita e migliorare ulteriormente ad ogni aggiunta di lettere. UNIRES avrebbe vita facile a individuare le differenze e le somiglianze fra le parti delle varie forme. Sfortunatamente il programma UNIRES, già mescolando tre forme, mi avverte che supero i limiti di un array. Ho creato array piccoli perché altrimenti vado oltre i limiti della memoria. Detto questo devo riprendere il programma MISCHIA e vedere se posso rimediare di lì. Lottare con il computer è la mia attività principale.

17 agosto 2009

Ho, prima modificato, poi riscritto il programma MISCHIA nell'ottica di diminuire la dimensione degli array. E' stata una pena persa perché ne derivava la perdita di informazione e quindi dei particolari che permettono la discriminazione delle forme simili, come C e G. Con questo lavoro, volevo evitare l'altra strada, ovvia, ampliare gli array di UNIRES (e di RICON) ed evitare un overflow di memoria. Inoltre questi programmi sono di grandi dimensioni e complessità e riscriverli usando allocazioni dinamiche di variabili non è uno scherzo. Tuttavia è l'unico modo di fare.

24 agosto 2009

Dopo un mese di prove rinuncio all'idea di restringere i risultati di MISCHIA. Quando tento di diminuire il peso di questi risultati, in ogni modo faccia, finisco per togliere i piccoli particolari della figura il che rende impossibile il seguente riconoscimento sintattico. Chi ha fatto le prove ha notato che la parola pesante intendo un file di oltre 170 byte. Sono dimensioni risibili in assoluto ma l'elaborazione dei dati è complessa e lunga, diventerebbe semplice e veloce con una macchina parallela, costruita ad hoc, come il cervello. Senza sognare tuttavia chi conosce meglio di me i computers potrebbe riscrivere i programmi in modo più moderno ed avere a disposizione più di 64 kbyte di memoria, che è il mio standard. Al momento non vedo altri rimedi che usare poco MISCHIA, due volte al massimo. Con questa scelta la precisione del riconoscimento è fortemente ridotta. Ricordo però che questa è una versione ß. Chi è interessato al lavoro badi agli aspetti concettuali.

20 settembre 2009

Ho eliminato alcuni difetti nel programma RICON, nel programma UNIRES e nel programma DELTA. Ho ottenuto un importante miglioramento del riconoscimento. Non è stato un mero lavoro di “debug”, senza apporti concettuali, gli studi “matti e disperatissimi” svolti nel mese di luglio e agosto, che non hanno risolto nulla per MISCHIA mi hanno portato a scoprire un nuovo modo di sogliatura delle caratteristiche che individua le differenze fra le immagini, che ho adottato nei tre programmi citati. Voglio rimarcare che il riconoscimento”quasi sintattico” di DELTA risulta potentissimo, anche senza l'uso del programma MISCHIA, che non riesco a far funzionare per i miei come programmatore. Mi sovviene che i contadini dicevano di certi animali: “gli manca solo la parola”: verissimo, l'aggiunta del linguaggio rende impredicabilmente migliore il riconoscimento e quindi la capacità di previsione. DELTA com'è ora è solo la base su cui innestare il linguaggio.

21 settembre 2009

Il programma MISCHIA non va demonizzato, anzi funziona bene, non solo sotto il profilo concettuale e migliora notevolmente il riconoscimento. Per rendervi conto fate così: cancellate il file RICORDI dalla cartella dei programmi. Lanciate T.batch e memorizzate 2 lettere alfabetiche che si assomigliano, per esempio A1 e R1. Poi lanciate T.batch per una di esse, di foggia tipografica diversa, Per esempio R2. Da OPZIONI di certo uscirà che è impossibile discriminare senza la sintassi fra A e R. Lanciate T1.batch forse vi darà la risposta errata, per esempio A. Se però dopo OPZIONI lanciate MISCHIA e mescolate due A e due R il riconoscimento sarà inequivocabilmente corretto. L'ottimale sarebbe mescolare la forma riconosciuta con quelle già in memoria: le forme si affinerebbero bene. Comunque anche un modesto uso di MISCHIA, che è una rete neuronale, le percentuali di riconoscimento esatto sono manifestamente crescenti. La stessa cosa si può dire in esito al miserrimo uso della sintassi, effettuato con DELTA.



3 ottobre 2009

Il programma che richiedeva più spazio in memoria era UNIRES. Sono riuscito a scriverlo in modo che sia ugualmente efficiente ma meno ampio. Ora i risultati di MISCHIA fanno molti meno danni. Devo ancora rifinire MISCHIA e DELTA e poi potrò passare al sintattico.

5 ottobre 2009

La riscrittura di UNIRES comporta la riscrittura di MISCHIA. Mi sono accorto che esso nella versione attuale funziona malamente. Non usate MISCHIA fino a nuovo avviso.

6 dicembre 2009

Ho dovuto lavorare molto su MISCHIA. Dopo avere tentato inutilmente di affinarlo mi sono persuaso che occorrevano dei miglioramenti concettuali. Com'era MISCHIA prima, diminuiva la potenza degli elementi che si presentavano raramente e li annullava quando andavano sotto una soglia. Così facendo gli elementi poco potenti erano svantaggiati e finivano di essere eliminati. Quindi sparivano i particolari della figura che aiutavano a riconoscerla già nel modo sintattico. Allora ho pensato di introdurre l'idea di persistenza del singolo elemento, imponendo la sua cancellazione se dopo un certo numero di volte in cui si presentava la figura esso non era raramente presente. Siccome io dispongo di strumenti limitati ho imposto di cancellare quegli elementi della figura che si presentano 1 volta su tre volte che la figura è presentata. Anche operando in questo modo rozzo il riconoscimento è notevolmente migliorato. La modifica a MISCHIA ha comportato la correzione molti programmi. Correzione non ancora ultimata. Entro pochi giorni credo di potere pubblicare i programmi riveduti. Noto che è stato un lavoro che è durato due mesi.

11 dicembre 2009

Fatto. Ho anche trovato altri errori. Sostanzialmente i programmi funzionano ma andrebbero riscritti e raffinati soprattutto si dovrebbe usare un linguaggio di programmazione che permetta una memoria più ampia. Ora comunque comincerò a dedicarmi al riconoscimento sintattico.

8 gennaio 2010

Purtroppo quello che avevo scritto l'undici dicembre era troppo ottimistico. Ho passato questo mese a lavorare sul programma MISCHIA. Ho dovuto ridurlo e renderlo più rozzo perché nella sua versione primitiva è troppo pesante per il mio vecchio compilatore. Pubblico questa versione di MISCHIA che è insoddisfacente: si limita ad affinare la prima forma che gli si è presentata, facendole perdere i dettagli inessenziali ma non la arricchisce dei particolari che provengono da altre forme, mostrategli successivamente. Mi sono persino venuti dei dubbi sul funzionamento di MISCHIA nella versione completa: io sono un convinto sostenitore del metodo sperimentale e in questo caso il conforto dell'esperimento non c'è. Comunque è tutto quello che sono riuscito a concludere.

15 gennaio 2010

Ho cambiato parti del programma MISCHIA ed dl programma UNIRES, base del riconoscimento sintattico. Ho potuto notare un buon miglioramento dei risultati, questo mi permette di concludere che la teoria alla base di questi programmi è buona ma la loro scrittura è ben lungi da essere definitiva. Mi sovviene Galileo che diceva: “provando e riprovando”.

11 aprile 2010

In questi tre mesi ho eseguito debug ed ho anche iniziato a meccanizzare ciò che in termini usuali si può chiamare l'attenzione ovvero l'isolamento della parte più significativa della scena, che in questo caso è una parte della linea di contorno della figura. In assenza di dispositivi che colgano il movimento è molto difficile indirizzare l'attenzione, però entro modesti limiti ci sono riuscito e, con questa miglioria, il tutto funziona meglio. A volte l'algoritmo di estrazione dei contorni produce contorni interrotti: poco male, l'apprendimento richiede qualche figura con i contorni chiari poi con il sintattico basteranno pezzi di contorno. Anche per i bambini (sotto i tre anni) è così: guardate i loro pupazzi e le illustrazioni dei loro libri, sono fortemente contrastati, questo aiuta il loro sistema visivo a estrarre contorni completi, poi da grandi non è più necessario. Inoltre una retroazione in SCEGLI che modifichi la soglia di TABULA4 risolverebbe molti casi. Non mi sono impegnato in questo miglioramento perché lo giudico inessenziale nell'economia del lavoro. Ritengo invece accettabile la parte topologica. Funziona nei limiti previsti. Il riconoscimento delle forme in base ai loro angoli, a mio avviso, è provato. La confusione in cui cade il programma è quella in cui un bambino sotto i tre anni, che possa disporre del solo senso della vista e di fronte a forme semplici come quelle che si possono disegnare in un quadrato di 70x70 pixels. Chi vuole aggiunga forme, sperimenti e mi contatti. Il programma MISCHIA andrebbe rifatto ma non ho tempo, dovrei studiare troppe cose sui calcolatori. Idem per i programmi da TABULA(I) che simulano troppo rozzamente il modo umano per l'estrazione dei contorni. Ora comincerò a migliorare UNIRES e DELTA, che sono solo degli abbozzi e non vanno ancora usati.

15 giugno 2010

In questi due mesi ho continuato il debug e la riscrittura del riconoscimento protosintattico. Ho chiamato protosintattico questo riconoscimento perché sta alla base del riconoscimento sintattico e della formazione della frase. La discriminazione che produce è impressionante. Esso risolve quasi sempre le ambiguità che derivano dal riconoscimento topologico e indica il riconoscimento corretto senza possibilità di equivoci. Notate che si tratta di immagini di 70x70 pixels e che il riconoscimento non è ancora sintattico. Volendo si potrebbe ancora migliorare il programma MISCHIA, che è una rete neuronale, tuttavia anche se è rozzo fa pochi guai. Anzi proprio la modestia di tutto l'insieme dei programmi avvalora l'idea di fondo: gli angoli sono gli elementi essenziali per riconoscere le forme. Quest'estate non credo lavorerò molto meno sui programmi perché, a Dio piacendo, vorrei rispondere al libro di Richard Gregory “Occhio e cervello” mettendo in ordine le mie idee sulla visione. Chi vuole provare i programmi lanci T, che conduce ai risultati del riconoscimento topologico. Se il riconoscimento non è univoco scriva pure il nome della forma corretta ma poi può non lanciare MISCHIA, lanci invece T1 e veda i risultati. MISCHIA lo può lanciare dopo. Nulla osta però seguire il flusso del programma.

29 agosto 2010

In questi due mesi e mezzo mi sono preso una settimana di vacanza per il resto ho studiato. Mi ero riproposto la questione: “Come si formano nel nostro cervello le immagini del mondo che guardiamo”?. E' un problema annoso ma penso di essere arrivato alla sua soluzione, combinando Hume, Darwin, la neurofisiologia e le illusioni ottiche. Presto pubblicherò il lavoro. Sono su facebook.



Home