Il Sistema BEATRIX per il Riconoscimento Automatico di Testi Manoscritti

Pagina creata da Silvia Molinari
 
CONTINUA A LEGGERE
Il Sistema BEATRIX per il Riconoscimento
                Automatico di Testi Manoscritti
              B. Lazzerini, F. Marcelloni, L.M. Reyneri, E. Rossi, L. Schiuma
                      Dipartimento di Ingegneria della Informazione
                    Universita di Pisa - Via Diotisalvi, 2 - 56126 PISA

Sommario
L'articolo introduce il sistema BEATRIX per il riconoscimento automatico dei testi manoscritti,
costituito da due sottosistemi fortemente interagenti, basati rispettivamente su un complesso di
reti neuronali e su un modulo di intelligenza arti ciale. I due sottosistemi si suddividono i compiti
necessari al riconoscimento, ed in particolare le reti neuronali e ettuano un pre-riconoscimento,
necessariamente approssimativo, dei singoli caratteri, mentre il sottosistema di intelligenza ar-
ti ciale e ettua un'analisi guidata da un vocabolario e da un analizzatore grammaticale, per
produrre ipotesi e correggere eventuali errori delle reti neuronali.
    In una seconda fase il sistema, sull'evidenza del riconoscimento di un suciente numero
di parole e di frasi, riaddestra le reti neuronali con le ipotesi prodotte, migliorando quindi
la capacita del sistema stesso di riconoscere la speci ca calligra a presa in esame. Questo
addestramento migliora ogni successivo riconoscimento del sistema.

1 Introduzione
 Il riconoscimento del testo manoscritto [1, 2, 3] e un problema tanto complesso quanto strategica-
 mente importante. Si considerino ad esempio l'archiviazione e la ricerca automatica di documenti
 manoscritti, la lettura e il controllo incrociato di moduli compilati manualmente, il riconosci-
 mento automatico dell'indirizzo o del C.A.P. sulle buste, l'interfaccia utente dei computer tipo
 \pen-point", ecc.
      La complessita del problema e dovuta a diversi fattori, fra cui: l'estrema variabilita delle
 calligra e di mani diverse, la variabilita col tempo della calligra a di una stessa mano, l'elevata
 similitudine di alcune lettere fra loro e la dimensione variabile dei caratteri scritti a mano.
      Finora il problema e stato a rontato con le tecniche piu svariate, che prevedono comunque
 di spezzare il problema in sottoproblemi piu semplici e quindi di complessita piu trattabile.
 Solitamente un testo viene letto sotto forma di bit-map da uno scanner, le parole vengono isolate
 e segmentate in singole lettere e riconosciute tramite o tecniche neuronali [4, 5] o tecniche di
 analisi delle caratteristiche morfologiche e dei gra di connessione dei singoli tratti elementari.
      Tutte queste tecniche danno risultati assai variabili a seconda della calligra a esaminata.
 Errori vengono introdotti sia dal processo di segmentazione che da quello di riconoscimento. Sono
 stati studiati metodi per migliorare i risultati ottenuti, ma in ogni caso il tasso di riconoscimento
e assai minore del 100%. I motivi di tali prestazioni ridotte risultano evidenti esaminando un
 qualunque alfabeto manoscritto, pur \facile", da cui appare evidente come alcune lettere risultino
 indistinguibili anche dall'occhio umano stesso.
      Risultati migliori si possono ottenere nel caso si addestri il sistema a riconoscere una cal-
 ligra a particolare (ad es. nel caso di computer pen-point), ma in questo modo si perde molto
 in generalita.
Essendo spesso necessario riconoscere un testo senza commettere errori, occorre adottare al-
tre tecniche di riduzione dell'errore, ad esempio sfruttando la ridondanza presente nella maggior
parte dei testi manoscritti (tipicamente tutti i testi di tipo discorsivo), ovvero la ridondanza
dovuta all'utilizzo di un vocabolario di dimensione nita e di una certa serie di regole grammat-
icali.
    Diversi lavori hanno analizzato la possibilita di sfruttare la ridondanza lessicale e grammat-
icale per migliorare il tasso di riconoscimento di un sistema di lettura automatica.
    Scopo di questo lavoro e quello di integrare i vari metodi proposti in un sistema unico,
che da un lato riconosca il testo di un qualunque scrittore e dall'altro impari dal testo stesso
a riconoscere le particolarita della calligra a speci ca, aumentando di conseguenza il grado di
adabilita di ogni ulteriore riconoscimento.
    Per fare cio e stato necessario far interagire strettamente le varie tecniche utilizzate e, in par-
ticolare, un complesso di reti neuronali ed un analizzatore lessicale e grammaticale. Un intenso
  usso di dati fra i due sistemi e necessario per trasferire la maggior quantita di informazione
dal modulo neuronale all'analizzatore e per permettere che quest'ultimo, sulla base delle sue
ipotesi, possa addestrare le reti neuronali alla particolare calligra a. I risultati ottenuti, anche
se preliminari, sono assai confortanti e giusti cano la prosecuzione del lavoro.

2 Descrizione Generale del Sistema BEATRIX
Il sistema BEATRIX e composto da piu blocchi strettamente interconnessi, come visibile in g. 1.
Il sistema analizza un testo manoscritto a livello di frasi e/o pagine. Una pagina e considerata
come una sequenza ordinata di parole, chiaramente separate e disposte geometricamente su linee
ideali approssimativamente orizzontali. Questa ipotesi sempli ca lievemente il problema della
separazione delle parole.
     Il testo e codi cato come bit-map di risoluzione suciente per poter distinguere corretta-
mente i singoli caratteri (tipicamente 75 dpi). Facendo riferimento allo schema di g. 1, si
suppone che il testo venga fornito dal blocco PAGINA, che puo essere indi erentemente uno scan-
ner, un le, o la memoria RAM del sistema, a seconda dei casi. Per gli scopi di questo lavoro, una
pagina si considera composta da piu righe di lunghezza nota e si suppone che nessuna parola sia
stata spezzata su due linee consecutive.
     Un CONTROLLORE DI SCANSIONE fornisce le coordinate geometriche della parola (dette \co-
ordinate di parola") che di volta in volta viene sottoposta ad elaborazione, partendo inizialmente
dalla prima parola in alto a sinistra (coordinate (0,0)). Dopo che una parola e stata elaborata
completamente, il CONTROLLORE DI SCANSIONE fornisce le coordinate stimate della parola suc-
cessiva (ricavate per traslazione dalle coordinate della parola precedente).
     Per ridurre la complessita del sistema, la rete neuronale riceve al suo ingresso solo una
porzione limitata, detta \ nestra", del bit-map della parola. La dimensione della nestra (at-
tualmente di 22  22 pixel) e suciente per contenere almeno una lettera, aancata su ciascun
lato da una lettera adiacente.
     Il blocco PAGINA fornisce la parola desiderata Pj , separata dal resto della pagina, al successivo
blocco SCANNER, che ne isola una nestra alla volta.
     Durante l'elaborazione di una parola Pj , il CONTROLLORE DI SCANSIONE fornisce sequenzial-
mente allo SCANNER una \coordinata di nestra" x crescente, tale da scandire tutta la parola,
da sinistra a destra, in incrementi di uno o piu pixel alla volta. Lo SCANNER fornisce di volta in
volta la nestra F (x) centrata attorno alla coordinata x.
     La nestra selezionata F (x) viene elaborata dalla RETE NEURONALE (descritta in dettaglio
nel par. 3), che fornisce:
   1. una lista di ipotesi L(x), relative alle possibili lettere riconoscibili al centro della nestra;
Figure 1: schema a blocchi del sistema BEATRIX

   2. un valore di \energia" E (x) (calcolata dal blocco STIMA ENERGIA) che tende ad essere
       massima quando la nestra e correttamente posizionata attorno ad un carattere.
    Il CONTROLLORE DI SCANSIONE identi ca la coordinata x relativa al massimo dell'energia
E (x) e, in corrispondenza di esso, segnala al blocco CAMPIONATORE di campionare la lista delle
ipotesi. La lista campionata dovrebbe idealmente avere tanti campioni quante sono le lettere
che compongono la parola.
    La suddetta lista viene inviata al blocco SOTTOSISTEMA IA (descritto in dettaglio nel par. 4)
che la analizza lessicalmente e grammaticalmente, elaborando ipotesi sulla base di un vocabo-
lario. Il SOTTOSISTEMA IA fornisce in uscita una ipotesi sulla parola riconosciuta, o eventual-
mente una lista delle ipotesi piu probabili.
    Se il SOTTOSISTEMA IA reputa probabile che una delle ipotesi avanzate dalla rete neuronale
sia poco realistica, puo richiedere al CONTROLLORE DI SCANSIONE di riesaminare una o piu lettere
della parola. Per il momento tale funzione non e ancora stata implementata. Le \azioni" che
potranno essere richieste saranno le seguenti:
   1. rielaborare una singola lettera, ad esempio utilizzando una di erente rete neuronale, o
       pesando in maniera di erente le sottoreti del raggruppamento (vedi par. 3);
   2. tentare di riesaminare una lettera, inizialmente ipotizzata come singola, come due lettere
       diverse aancate;
3. tentare di riesaminare due lettere aancate, inizialmente ipotizzate come separate, come
       una unica lettera.
    Al termine dell'elaborazione di una parola, quando il SOTTOSISTEMA IA ritiene di non poter
ulteriormente migliorare il riconoscimento proposto, questo fornisce al CONTROLLORE DI SCANSIONE
un segnale di \Fine Elaborazione Parola", iniziando l'elaborazione della parola successiva. Con-
seguentemente il CONTROLLORE DI SCANSIONE incrementa le coordinate di parola e ripete i passi
descritti in precedenza per la parola successiva.
    Parallelamente il blocco MEMORIA PAROLE STIMATE memorizza l'elenco delle parole piu prob-
abili, cos come stimate dal SOTTOSISTEMA IA. Questo elenco rappresenta la miglior stima e et-
tuabile, sulla sola base del testo in ingresso, del contenuto del testo stesso.
    In una seconda fase si utilizza l'elenco delle parole memorizzate per il riaddestramento della
rete neuronale. Si forniscono nuovamente alla rete le nestre F (x) e le corrispondenti ipotesi
prodotte dal SOTTOSISTEMA IA. Un algoritmo di apprendimento supervisionato provvede a cor-
reggere i pesi della rete in modo opportuno.
    Cos facendo si migliora l'ecacia di riconoscimento della rete per la particolare calligra a
presa in esame. La probabilita di corretto riconoscimento aumenta, come per tutti i riconoscitori
addestrati con un'unica calligra a (vedi par. 5), anche se la capacita di generalizzazione della
rete si riduce conseguentemente.
    Al ne di mantenere contemporaneamente un'elevata capacita di generalizzazione ed un'elevato
tasso di riconoscimento per la particolare calligra a, si e pensato di utilizzare un complesso di
reti neuronali e di riaddestrare solo una delle sottoreti, mantenendo inalterate le altre (vedi
par. 3.4).

3 Rete Neuronale: Descrizione e Risultati Preliminari
La struttura della Rete Neuronale (RN) utilizzata in questo lavoro per il riconoscimento del
testo manoscritto risulta abbastanza semplice, soprattutto se confrontata con reti interamente
dedicate alla risoluzione del problema [1, 5] che comunque, ad elevate prestazioni, uniscono
architetture complicate e dunque dicilmente implementabili.
    Grazie all'interfacciamento con il sottosistema IA, si sono potute utilizzare strutture e topolo-
gie di rete non completamente dedicate (dunque piu facilmente gestibili), ma comunque in grado
di avere prestazioni accettabili autoadattandosi al tipo di scrittura esaminato.
    In realta la rete neuronale e costituita da un complesso di reti che di eriscono per il diverso
addestramento e le cui uscite sono integrate per fornire un risultato al sottosistema IA. In
questo paragrafo vengono descritte l'architettura della RN e le metodologie adottate per il suo
apprendimento rimandando comunque alla letteratura per approfondimenti e chiarimenti.
3.1 Architettura della rete
La struttura generale della RN e basata su un'architettura di tipo misto a due strati, come
visibile in g. 2. Il primo strato consta di una Radial Basis Function modi cata (RBF) mentre
il secondo di una Back Propagation (BP).
     La scelta di queste due architetture e conseguente ad un'attenta analisi delle loro caratteris-
tiche e delle loro prestazioni [2]. La RBF standard unisce ad elevate capacita di classi cazione
dei pattern di ingresso una struttura relativamente semplice, organizzando autonomamente i pesi
associati alle varie unita (neuroni). La BP consente, mediante l'apprendimento supervisionato,
di adattare l'uscita reale della RN a quella ideale minimizzando l'errore grazie ad un ecace
algoritmo di correzione dei pesi [6, 7].
     Per quanto riguarda la RBF, essa e stata adattata al riconoscimento dei caratteri ortogra ci,
modi cando gli algoritmi di inizializzazione dei pesi sinaptici e di addestramento della rete;
l'architettura della BP e le metodologie di addestramento sono invece rimaste inalterate rispetto
alla letteratura esaminata [6, 7].

                               Figure 2: schema generale della RN
    L'ingresso del sistema e una matrice di 22  22 pixel contenente l'immagine digitalizzata a 16
livelli di grigio del carattere da riconoscere (numeri, lettere minuscole, lettere maiuscole) come
illustrato nella g. 3. L'uscita e un vettore di 62 elementi (10 numeri e 52 lettere tra minuscole
e maiuscole).

       Figure 3: immagine digitalizzata di cifre e lettere di un alfabeto del training set

3.2 Sottorete RBF
A di erenza della BP, la RBF consente mappaggi fortemente non lineari dei pattern di ingresso,
con tempi di apprendimento relativamente brevi [8]. Con opportune scelte sia del numero dei
neuroni nascosti della rete, sia della inizializzazione dei centri (vettori associati ad ogni neurone
nascosto), e possibile ottenere un'ecace classi cazione dei pattern di ingresso. La struttura
dello strato RBF della RN e rappresentata in g. 4.
    L'uscita dallo strato nascosto della RBF, e calcolata secondo la formula seguente:
                                          ui =  (k~x , y~i k) ;                                  (1)
dove ~x e y~i sono rispettivamente il vettore d'ingresso alla RBF e il vettore del centro associato
al neurone i-esimo dello strato nascosto, k  k rappresenta la distanza Euclidea tra ~x e y~i ,  e
una funzione gaussiana non lineare. Normalmente () assume la forma seguente:
                                          (z ) = e,(  )2 ;
                                                      z
                                                                                                 (2)
dove  e un'opportuna costante che puo variare da un neurone all'altro. Le uscite del primo strato
sono raggruppate in L gruppi di NL neuroni ciascuno. Ogni gruppo e associato logicamente ad
una ed una sola lettera dell'alfabeto (ad es. L = 26 lettere, da `a' a `z' nell'esempio considerato,
mentre NL e variabile da 6 a 10). All'uscita dello strato nascosto RBF abbiamo dunque un
vettore di NL  L unita.
    L'uscita dello strato nascosto della RBF costituisce l'ingresso per un secondo strato la cui
uscita e formata da L neuroni collegati come in g. 4. Ciascun neurone del secondo strato e
connesso soltanto agli NL neuroni dello strato nascosto relativi ad uno stesso carattere.
Figure 4: architettura dello strato RBF della RN

      La funzione di attivazione di ogni neurone in uscita dalla RBF e la somma quadratica dei
  valori di attivazione di tutti i neuroni con i quali e collegato. Tale soluzione si e rivelata piu
  attendibile rispetto ad un approccio \winner-takes-all", in quanto consente un piu ecace sfrut-
  tamento delle informazioni a disposizione [3]. Il valore di attivazione di ogni neurone in uscita
  dalla RBF puo considerarsi dunque un \valore energetico di riconoscimento" del carattere pre-
  sente in ingresso.
      Un'importante considerazione inerente alla con gurazione della RBF riguarda il numero dei
  centri necessari alla rete per una ecace classi cazione. Una scelta naturale sembra essere quella
  di avere un centro per ciascun dei vettori del training set (o di un suo sottoinsieme) [8, 9]. Tale
  soluzione ha comunque il problema di determinare una eccessiva dimensione della rete stessa e
  di perdere in generalita.
      Prove e ettuate su un campione di lettere minuscole hanno portato a diverse soluzioni per
  ovviare agli inconvenienti sopra citati. Fissato un certo numero NL di neuroni nascosti per ogni
  singola lettera, le metodologie di inizializzazione dei centri sono state fondamentalmente due:
tipo D suddividere tutti i vettori di ingresso relativi alla stessa lettera (ma scritta con diverse cal-
       ligra e) in NL gruppi (ovvero tanti quanti sono i neuroni nascosti per lettera), associare un
       gruppo a ciascun neurone ed inizializzare il corrispondente centro con il vettore risultante
       dal calcolo della media degli ingressi appartenenti al rispettivo gruppo;
tipo M inizializzare i centri relativi ad ogni singola lettera con gruppi di campioni di ciascuna
       lettera che sono risultati piu' distanti tra loro.
      Il conseguente apprendimento della RBF e stato un ibrido tra il metodo supervisionato
  (tipo BP) e il metodo di autoorganizzazione dei pesi (tipo Kohonen [7]) in quanto e stato
  dimostrato come un tale addestramento consenta una ulteriore velocizzazione delle operazioni
  di apprendimento, assicurando una \localita" della correzione dei centri [9, 13, 14]. In pratica
  durante l'apprendimento vengono calcolate solamente le uscite dallo strato nascosto associate
  alla lettera presentata in ingresso; il centro relativo al neurone con il piu elevato valore di
  attivazione viene poi aggiornato calcolandone una media pesata con il vettore in ingresso.
      Il lavoro e ettuato ha portato alla implementazione di diverse reti RBF che si di erenziano
  in base al numero di centri e al tipo di addestramento che e stato adottato. Considerando singole
  lettere prodotte dalla segmentazione delle parole, in un training set di 100 alfabeti scritti con
calligra e di erenti (circa 2000 pattern di ingresso) e un test set di 200 alfabeti (circa 4000
pattern), si sono ottenute percentuali di riconoscimento in media intorno al 57% (vedi tab. 1).
Tale risultato e confortante, soprattutto considerando la dimensione ridotta delle reti adottate
e la presenza dello strato BP in cascata, che migliora ulteriormente il tasso di riconoscimento,
come descritto in seguito.
                  RETE NL Inizializz. NL L Sinapsi Tasso Riconosc.
                   D6   6     D       156 75.500       55.7%
                   D8   8     D       208 100.600      57.5%
                   M6   6     M       156 75.500       53.3%
                   M8   8     M       208 100.600      54.6%
                  Table 1: dimensione e prestazioni delle reti RBF utilizzate

3.3 Sottorete BP
Lo strato di BP messo in cascata alla RBF nella RN e una classica architettura monostrato
addestrata mediante l'autoadattamento del learning rate e del momento [6, 7] in modo da poter
velocizzare le operazioni di apprendimento che, per quanto riguarda questo tipo di rete, sono
particolarmente lunghe e laboriose [10].
    Da primi risultati ottenuti su un campione di caratteri notevolmente piu piccolo rispetto a
quello di test della RBF, si e potuto constatare come la percentuale di riconoscimento della RN
risulti migliorata rispetto al pimo strato di un fattore pari al 7-8%. Il risultato sarebbe inoltre
migliorabile inserendo in cascata alla RBF una BP a due strati con un numero abbastanza
elevato di neuroni nascosti, ma questo renderebbe complicata una rete che per sua natura deve
avere nella semplicita di realizzazione una delle caratteristiche principali.

3.4 Complesso di reti neuronali
Il complesso di reti neuronali e formato dalla RN descritta precedentemente integrata, per quanto
riguarda la RBF, con altre due sottoreti strutturalmente simili a quella illustrata nel par. 3.2,
ma addestrate con pattern di erenti. Le attivazioni di uscita dei neuroni relativi allo stesso
carattere e appartenenti alle diverse sottoreti sono poi elaborate da una rete combinatoria (ad
es. calcolando la media pesata). Le diverse reti di eriscono per il training set utilizzato:
  1. il training set della prima sottorete e un insieme di circa 2000 pattern contenenti singoli
     caratteri isolati;
  2. il training set della seconda sottorete e un insieme di circa 2000 pattern contenenti singoli
     caratteri aancati ad altri (overlapping);
  3. la terza sottorete viene invece addestrata con il pattern costituito dalle nestre F(x) (vedi
     par. 2) ed il target imposto dal sistema IA, risultato delle operazioni descritte nel par. 4.
    L'apprendimento delle prime due sottoreti si e rivelato utile nell'operazione di scansione dei
bit-map per distinguere univocamente, all'interno di ogni nestra, una lettera anche se 'sporcata'
dalla presenza delle lettere adiacenti [4].
    In pratica, durante la comunicazione tra i due sottosistemi, vengono modi cati soltanto
i centri della terza sottorete, che e dunque dedicata principalmente al riconoscimento della
particolare calligra a analizzata. Cio comporta un miglioramento del tasso di riconoscimento,
mantenendo un'elevata capacita di generalizzazione (vedi par. 5).
4 Sottosistema IA: Descrizione e Risultati Preliminari
La RN e strettamente interconnessa con il sottosistema IA, rappresentato in g. 5. La comu-
nicazione tra i due sottosistemi avviene trasferendo, per ogni picco di energia E(x), le seguenti
informazioni:
  1. la distanza in pixel del picco energetico attuale dal picco precedente, e
  2. una lista ordinata di coppie (cn , en ), dove cn e un carattere riconosciuto al centro della
      nestra ed en e il valore energetico di riconoscimento associato al carattere.
    Un valore alto di en e indice di un'elevata probabilita di corretto riconoscimento del carattere
associato. Il numero N di elementi della lista, ordinati per valori energetici descrescenti, puo
essere stabilito dall'utente o ssato automaticamente dal sistema (tipicamente, tale numero e
10).

                              Figure 5: schema del sottosistema IA
    Quando tutte le nestre relative ad una parola sono state successivamente analizzate, il
blocco ALTERNATIVE genera (secondo modalita dettagliate in seguito) una possibile alternativa
di riconoscimento per la corrispondente parola in ingresso al sistema. Un'alternativa e una
combinazione di caratteri alla quale e associato un indice IR (un decimale positivo non superiore
alla somma dei valori energetici massimi associati ad ogni nestra analizzata) che rappresenta
il grado di riconoscimento dell'alternativa. L'alternativa viene inviata al blocco VOCABOLARIO
che veri ca se essa coincide con una parola nel vocabolario. In caso a ermativo la parola viene
memorizzata in una pila. Altrimenti, l'alternativa viene fatta elaborare dal FILTRO, che la
ripulisce da eventuali sussi restituendola in forma adatta alla ricerca nel vocabolario. Ad
esempio, vengono eliminati i sussi che servono per costruire il plurale dei sostantivi, le forme
comparative e superlative degli aggettivi, alcune forme dei verbi regolari, ecc. Se anche dopo
essere stata elaborata dal FILTRO l'alternativa non coincide con una parola nel vocabolario,
l'alternativa viene scartata. In ogni caso, sia che l'alternativa sia stata memorizzata nella pila
sia che sia stata scartata, il blocco VOCABOLARIO chiede al blocco ALTERNATIVE di generare una
successiva alternativa. Tale alternativa e quella con indice IR piu alto tra tutte le possibili
alternative non ancora elaborate. In questo modo si attiva un ciclo che termina al veri carsi di
una delle seguenti condizioni:
  1. se prima dello scadere di un intervallo di tempo pari a t, ssato dall'utente, esattamente
     cinque alternative coincidono con cinque parole nel vocabolario;
  2. allo scadere dell'intervallo t, si e trovata almeno una parola del vocabolario coincidente
     con un'alternativa.
Se nessuna delle condizioni 1 o 2 si veri ca, la ricerca continua nche almeno una delle alternative
viene trovata nel vocabolario.
     Al termine del ciclo, ogni alternativa presente nella pila viene elaborata dall'ANALIZZATORE
LARGHEZZE che, in primo luogo, attribuisce una larghezza ad ogni carattere che costituisce
l'alternativa. Tale larghezza e calcolata come la media delle distanze tra la nestra relativa
al carattere e, rispettivamente, le nestre successiva e precedente. In secondo luogo veri ca se il
valore di tale larghezza rientra nel range di larghezze associato al carattere. Questo range e in-
dividuato dai valori minimo e massimo delle larghezze del carattere considerato nei 200 alfabeti
sottoposti alla rete neuronale.
     In ne, l'ANALIZZATORE LARGHEZZE associa ad ogni parola un indice ID dato dalla formula
seguente:
                                                    R  num
                                           ID = Inumcar                                          (3)
 dove num e il numero di caratteri che soddisfano la veri ca precedente, mentre numcar e il
 numero di caratteri che compongono la parola. Dato che, nell'attuale realizzazione, i caratteri
 in ingresso al sistema non vengono normalizzati in dimensione, la larghezza del carattere deve
 essere moltiplicata per un coeciente dato dal rapporto tra il valor medio delle larghezze di
 tutti i caratteri dei 200 alfabeti e il valor medio (detto valor medio puntuale) delle larghezze dei
 caratteri del testo in esame. I valor medi sono ottenuti attraverso stime col metodo dei momenti.
     Quando tutte le parole componenti una frase sono state esaminate, l'ANALIZZATORE GRAMMATICALE
 cerca di costruire una frase grammaticalmente corretta. A tal ne, combina opportunamente
 le parole trovate nel vocabolario producendo una sequenza di frasi candidate, ordinate secondo
 indici di riconoscimento descrescenti. L'indice di riconoscimento associato ad una frase e de nito
 come la somma degli indici ID relativi alle parole che la compongono. Non appena viene generata
 una frase corretta, tale frase viene visualizzata e le parole componenti vengono memorizzate in
 una pila. Se l'ANALIZZATORE GRAMMATICALE non e in grado di comporre nessuna frase corretta,
 chiede al modulo ALTERNATIVE di generare ulteriori alternative.
     Per ogni frase corretta, viene aggiornata una stima del valor medio statistico degli indici
 ID delle parole componenti le frasi corrette trovate no a quel momento. Quando questa stima
e accettabile, le parole memorizzate nella pila con indice ID superiore ad una percentuale ,
 stabilita dall'utente, della stima stessa vengono inviate al modulo MEMORIA PAROLE STIMATE
 del sottosistema neuronale per l'apprendimento dinamico della rete neuronale. Il valore della
 percentuale deve essere scelto in maniera oculata: valori troppo piccoli inducono ad addestrare la
 rete con molte parole, ma poco adabili, peggiorando quindi le prestazioni; valori troppo grandi,
d'altra parte, permettono di considerare parole con un alto grado di adabilita di riconoscimento
ma in numero troppo piccolo per costituire un adeguato insieme di addestramento.
    Le parole esaminate successivamente vengono direttamente inviate al modulo MEMORIA PAROLE
STIMATE.

4.1 Ricerca nel vocabolario
Il vocabolario e un insieme di fatti Prolog [11] generati dalla traduzione di un dizionario inglese
di pubblico dominio in formato ASCII. Il programma di traduzione e stato scritto nel linguaggio
C. La generica parola del vocabolario e rappresentata dal fatto:
                                   parola(ListaCar; ListaCateg):
 dove ListaCar e la lista dei caratteri che compongono la parola e listaCateg e la lista delle possibili
 categorie grammaticali a cui la parola puo appartenere. Per ricercare una parola sul vocabolario
e necessario estrarne la radice grammaticale. A tale scopo e stata de nita una procedura Prolog
 (FILTRO) per ognuno dei casi previsti dalla grammatica del linguaggio. Ad esempio, la seguente
 procedura ricava la forma di grado positivo di un aggettivo di grado comparativo di maggioranza:

comp_magg(CompMag,Radice,Cat):-append(Radice,['e','r'],CompMag),
                               parola(Radice,L),
                               member(a,L),
                               Cat=[cmpmag],
                               assert(parola(CompMag,[cmpmag])).

comp_magg(CompMag,RadiceE,Cat):-append(Radice,['e','r'],CompMag),
                                append(Radice,['e'],RadiceE),
                                parola(RadiceE,L),
                                member(a,L),
                                Cat=[cmpmag],
                                assert(parola(CompMag,[cmpmag])).

comp_magg(CompMag,RadiceDoppia,Cat):-append(Radice,[C,C,'e','r'],CompMag),
                                     append(Radice,[C],RadiceDoppia),
                                     parola(RadiceDoppia,L),
                                     member(a,L),
                                     Cat=[cmpmag],
                                     assert(parola(CompMag,[cmpmag])).

comp_magg(CompMag,RadiceY,Cat):-append(Radice,['i','e','r'],CompMag),
                                append(Radice,['y'],RadiceY),
                                parola(RadiceY,L),
                                member(a,L),
                                Cat=[cmpmag],
                                assert(parola(CompMag,[cmpmag])).

Figure 6: Esempio di codice Prolog per ricavare la forma di grado positivo di un aggettivo di
grado comparativo di maggioranza.
4.2 Generazione delle alternative
La generazione delle alternative si basa sulle seguenti informazioni:
    le distanze in pixel fra le nestre che compongono la parola;
    i valori energetici di riconoscimento en associati ai vari caratteri;
    la probabilita Pn(ci j cu) che la rete neuronale abbia in ingresso il carattere ci condizionata
     al fatto che venga riconosciuto in uscita il carattere cu nell'n-esima posizione della lista
     ordinata di coppie (cn ; en ) in ingresso al modulo IA.
   La probabilita condizionata Pn (ci j cu ) e calcolata, applicando il teorema di Bayes, nel modo
seguente:
                                   Pn(ci j cu) = Pn (cuPj c(ic) )P (ci )                         (4)
                                                              n u
 dove Pn (cu j ci ) e la probabilita che la rete neuronale riconosca il carattere cu nell'n-esima
 posizione della lista d'ingresso al sottosistema IA quando in ingresso al sistema e posto il carattere
 ci , mentre P (ci ) e la probabilita che in ingresso si presenti il carattere ci , e Pn(cu ) e la probabilita
 che la rete neuronale riconosca il carattere cu . Pn (cu j ci ) e ottenuta sottoponendo in ingresso
 alla rete neuronale tutte le cifre e lettere minuscole e maiuscole scritte da 200 mani di erenti e
 veri cando per ogni carattere ci la percentuale di caratteri cu che vengono riconosciuti. P (ci )
e calcolata dividendo il numero di volte che il carattere ci ricorre nel vocabolario per il numero
 totale di caratteri presenti nel vocabolario. In ne, Pn (cu ) e determinata secondo la formula
 seguente:
                                                  X L
                                        Pn (cu ) = Pn (cu j ci )  P (ci );                                   (5)
                                                  i=1
dove L indica il numero di possibili caratteri di ingresso al sistema (cifre, lettere minuscole e
maiuscole) al sistema. Per ogni nestra analizzata dalla rete neuronale viene prodotta una lista
degli I possibili ingressi. Ad ogni elemento della lista viene associato un indice di adabilita di
riconoscimento Ai calcolato come segue:

                                          Ai =
                                                 XN Pn(ci j cu)  en;                                         (6)
                                                 n=1
dove en e il valore energetico relativo all'uscita cu nell'n-esima posizione della lista di ingresso al
sottosistema IA. L'indice Ai riesce a pesare in modo uniforme sia le caratteristiche, individuate
dai valori energetici, ricavate dalla rete neuronale dal particolare testo in esame, sia le caratter-
istiche proprie della rete neuronale, ottenute dalle probabilita Pn (ci j cu ). L'indice IR relativo
ad ogni alternativa (vedi par. 4) si ottiene dal rapporto tra la somma degli indici Ai relativi
ai caratteri scelti per comporre l'alternativa stessa ed il numero di caratteri dell'alternativa.
Da prove sperimentali risulta che, generando le possibili alternative sulla base dell'indice IR , la
parola in ingresso coincide generalmente con una delle prime due alternative corrispondenti a
parole del vocabolario.

5 Simulazione Preliminare dell'Anello Esterno
Le parole che la sottorete IA invia al modulo MEMORIA PAROLE STIMATE vengono utilizzate,
quando il loro numero e suciente a formare un adeguato training set, per il riaddestramento
parziale della rete neuronale. Lo scopo e quello di migliorare il riconoscimento della particolare
calligra a considerata.
I caratteri delle parole memorizzate nel modulo MEMORIA PAROLE STIMATE e le relative
  nestre F(x) vengono utilizzati rispettivamente come target e come pattern d'ingresso per
l'addestramento supervisionato della seconda sottorete del complesso RN (vedi par. 3.2). Dopo
il riaddestramento, il testo elaborato no a quel momento viene esaminato nuovamente in modo
da sfruttare la miglior qualita raggiunta nel riconoscimento.
     Di seguito viene presentato un esempio che mostra come, anche con un numero ridotto di
parole usate per il riaddestramento, si abbiano dei notevoli miglioramenti nel riconoscimento. La
calligra a scelta e riconosciuta dalla rete neuronale inizialmente con un tasso di riconoscimento
del 70%. Il numero N di elementi (cn , en ) della lista passata dalla rete neuronale al sottosis-
tema IA e 10. L'intervallo di tempo t ssato per la terminazione del ciclo di generazione delle
alternative e 60 secondi. Il valore della percentuale della stima del valor medio dell'indice IR e
inizializzato ad uno. Il riaddestramento RBF avviene appena il sistema nisce di esaminare le
frasi scelte per l'esempio. Tali frasi sono le seguenti:
    1. my father is a formidable looking man with a large stony jaw and furious black eyebrows
    2. his general presence was not one which encouraged relaxed conversation
    3. neither were things helped much by his odd way of stating each remark as if it were the
       concluding one
Per queste elaborazioni preliminari sono stati usati caratteri prodotti dalla segmentazione delle
parole. All'uscita dalla rete neuronale, considerando per ogni nestra F(x) il carattere con piu
alta energia, le frasi riconosciute sono:
    1. my faeher ls a formldable loonlng man wleh a large seony iaw and furlous blaon eyebrows
    2. hls general tresenoe was noe one whloh enoouraged relaxed oonversaelon
    3. neleher were ehlngs helted muoh by hls odd way of seaelng eaoh remarn as lf le were ehe
       oonoludlng one
Si ricava che la percentuale media di riconoscimento e dell'81%. Tale percentuale e di erente dal
tasso di riconoscimento della particolare calligra a in quanto le lettere che compongono la frase
sono un sottoinsieme di tutte le lettere dell'alfabeto su cui e calcolato l'indice di riconoscimento.
Il sottosistema IA compie gia un ottimo lavoro riportando le frasi precedenti nella forma seguente:
    1. my father is a formidable looting man with a large stony law and furious bloom eyebrows
    2. his general presence was not one which encouraged related conversation
    3. neither were things helped much by his odd way of stating each remark as if it were eke
       concluding one
La percentuale media di riconoscimento sale al 96%.
     Dopo la selezione delle parole ed il riaddestramento della RBF, otteniamo in uscita dalla
rete neuronale (considerando ancora per ogni nestra F(x) il carattere con piu alta energia):
    1. my father is a formidable looning man with a large stony iaw and furious blacn eyebrows
    2. his general tresence was not one which relaxed conversation
    3. neither were things helted much by his odd way of stating each remarn as if it were the
       concluding one
La percentuale media di riconoscimento della rete modi cata e del 97%. L'ulteriore elaborazione
con la sottorete IA fornisce le frasi seguenti:
1. my father is a formidable looking man with a large stony law and furious black eyebrows
  2. his general presence was not one which encouraged relaxed conversation
  3. neither were things helped much by his odd way of stating each remark as if it were the
     concluding one
Nonostante il riaddestramento sia eseguito su un numero esiguo di target, una sola parola (jaw)
risulta riconosciuta in maniera errata. La percentuale media di riconoscimento risulta essere del
99.5%.

References
 [1] G.L. Martin, J.A. Pitmann, \Recognizing Hand-Printed Letters and Digits Using Back-
     propagation Learning", in Neural Computation 3, Massachussets Institute of Technology
     (MA), 1991, pp.258-267.
 [2] Y. Lee, \Handwritten Digit Recognition Using K-Nearest Neighbor, Radial Basis Function
     and Backpropagation Neural Networks", in Neural Computation 3, Massachussets Institute
     of Technology (MA), 1991, pp.440-449.
 [3] M. Costa, E. Filippi, E. Pasero, \Multi-Layer Perceptron ensembles for pattern recognition:
     some experiments", negli atti del convegno ESANN'94, Bruxelles (B), Aprile 1994.
 [4] M. Schenkel, H. Weissman et al., \Recognition-based Segmentation of On-line Hand-printed
     Words", in Advances in Neural Information Processing System 3, Morgan Kaufmann ed.,
     1992, pp. 723-730.
 [5] Y. Le Cun, B. Boser, J.S. Denker et al., \Backpropagation Applied to Handwritten Zip Code
     Recognition", in Neural Computation 1, Massachussets Institute of Technology (MA), 1989,
     pp.540-551.
 [6] P.D. Wassermann \Neural Computing: Theory and Practice", edit.Van Nostrand Rheeinold
     New York, 1989.
 [7] G.C. Buttazzo, \Introduzione alle Reti Neurali", Rapporto Interno ARTS Lab 92-05, 1992.
 [8] C. Bishop, \Improving the Generalization Properties of Radial Basis Function Neural
     Networks", in Neural Computation 3, Massachussets Institute of Technology (MA), 1991,
     pp.579-588.
 [9] D. Wettschereck, T. Dietterich, \Improving the Performance of Radial Basis Function Net-
     works by Learning Center Locations", in Advances in Neural Information Processing System
     3, 1992, Morgan Kaufmann, pp.1133-1140.
[10] L.M. Reyneri, E. Filippi, \An Analysis on the Performance of Silicon Implementations
     of Backpropagation Algorithms for Arti cial Neural Networks", in IEEE Transactions on
     Computers, Vol.40, 12 Dec. 1991, pp.1380-1389.
[11] W. Clocksin, C. Mellish, \Programming in Prolog", Springer Verlag, 1981.
[12] D.E. Rumelhart, J.L. McClelland, \Parallel Distribuited Processing: Explorations in the
     Microstructure of Cognition", Vol.1, 1986.
[13] J. Moody, Christian J.Darken, \Fast Learning in Networks of Locally-Tuned Processing
     Units", in Neural Computation 1, Massachussets Institute of Technology (MA), 1989,
     pp.281-294.
[14] C. Pantaleon-Prieto, F. Diaz-de-Maria, Annibal Figueiras Vidal \On Training RBF Net-
     works", in Neuro Nimes '93, Nimes (F) 1993, pp.297-306.
Puoi anche leggere