Articolo per la rivista Punto Informatico – Luglio 2001
O. Venier – M.
Vassura – G. Vassura
Negli ultimi tempi si sta assistendo all'espansione tramite siti internet di un nuovo settore in ambito informatico, quello di prodotti e servizi basati sulle innovative Reti Neurali Artificiali. In questo articolo cercheremo di fare il punto della situazione su un settore ancora in fase di avvio, ma che potrebbe riservare interessanti sorprese negli anni a venire per le rivoluzionarie caratteristiche di questi prodotti.
Ma cos’è una Rete
Neurale?
Chi immagina un futuro affollato da
programmi senzienti o situazioni vicine a quelle descritte in film come “2001,
Odissea nello Spazio” forse rimarrà deluso, ma le prospettive sono comunque
interessanti.
Le reti neurali, o reti neuronali, sono
modelli matematici che tentano di emulare il sistema nervoso centrale umano. Lo
scopo finale delle reti neurali artificiali è realizzare i meccanismi di
apprendimento del cervello umano, facendo in modo che la rete interagisca con
l'ambiente esterno senza l'intervento umano, oltre quello della creazione. I
primi modelli di reti neurali sono stati sviluppati da W. McCulloch e W. Pitts
nel 1943 (con il loro manifesto ``A logical calculus of the ideas immanent
in nervous activity'') e successivamente sviluppati e allargati da una
lunga serie di ricercatori.
Lo scopo di questi complessi metodi
matematici è il tentativo di penetrare le leggi della Natura meglio delle
tecniche di calcolo tradizionali. Esse si basano sul concetto che, in
determinate situazioni, è possibile far "imparare" ad un apparato
matematico determinate leggi che non si conoscono a priori, semplicemente
facendogli osservare tanti casi reali. In parole più semplici le reti neurali
rappresentano un potente, e non ancora completamente compreso, mezzo statistico.
Dopo aver processato una mole notevole di dati nella fase cosiddetta di
apprendimento, esse propongono una linearizzazione del problema cui si vuole
dare una soluzione per mezzo di una formula matematica che lega tra loro le
diverse variabili espressione del problema stesso. Tale linearizzazione esprime
la probabilità' statistica che ha un nuovo caso mai esaminato prima di
collocarsi in una area di “soluzione” già verificatasi e validata nella fase di
addestramento.
I campi di applicazione sono tutti quelli
dove l'analisi statistica di tutte le variabili di un problema risulti
difficoltosa o dispendiosa in termini di calcolo, ma soprattutto dove non sia
chiaro a priori quali relazioni deterministiche esistano tra le diverse
variabili che caratterizzano il problema.
I principali campi in cui finora le reti neurali hanno dimostrato di poter dare
validi contributi e di cui è possibile trovare in internet applicazioni
tangibili sono:
Riconoscimento della
scrittura manoscritta
Stiamo parlando in questo caso di metodi
basati su reti neurali per il riconoscimento di testi scritti su supporto
cartaceo (Optical Character Recognition o OCR) e per la scrittura acquisita
on-line da un pen-based computer o un personal assistant, che permette di
interagire anche mediante una penna "elettronica".
Cercando in internet abbiamo trovato un
prodotto OCR basato sulle reti neurali in grado quindi di tradurre la
calligrafia così come i programmi di riconoscimento che usiamo quotidianamente
su qualsiasi scanner fanno con testi dattiloscritti o stampati.
Questo programma chiamato “Black Box” è
stato realizzato dallo Studio Oreste Venier, specializzato in consulenze
tecnologiche ad alto livello (http://www.drovenier.it/). Nel corso di una
breve intervista, pubblicata in calce, il Dr. Venier ci descrive le
potenzialità del proprio programma e le possibilità offerte dalle reti neurali.
Programmi di diagnostica in medicina
La medicina è stato uno dei primi settori
ad utilizzare questi sistemi innovativi per migliorare la qualità delle
diagnosi su malattie in genere e sui tumori in particolare. Questo perché
l'attività diagnostica in medicina molte volte non e' linearizzabile. Un
clinico esperto è in grado di risolvere un quesito diagnostico, ma talora non
ha alcuna idea del “come” ci sia riuscito. Egli ha certamente applicato le
regole apprese durante il corso di studi, ma verosimilmente un grosso
contributo alla sua decisione diagnostica lo hanno dato le numerose esperienze
“simili” che ha dovuto affrontare in anni ed anni di pratica clinica.
E' esperienza comune di qualsiasi pronto soccorso vedere un infermiere anziano
che pone diagnosi corretta più rapidamente di un medico giovane e inesperto. E'
quindi evidente che anche non avendo conoscenze “propedeutiche” e' possibile
per una rete neurale particolarmente efficiente come quella umana, riuscire a
categorizzare tramite l'esperienza (che non e' altro che statistica umana e
personale), riducendo così esempi di presentazione di problemi in diagnosi
attendibili.
Un esempio di programma con scopi
diagnostici nel settore medico è stato realizzato per l’ortodonzia dalla
Medical Neural Engineering srl (http://www.mne.it/), società che sviluppa e
commercializza software basati sulle reti neurali per il settore medico. Esso
ci viene descritto approfonditamente dal dr. Venier nel corso della sua
intervista.
Programmi per il controllo
di qualità su produzioni industriali
Questo è un altro settore importante. Le
reti neurali possono costituire programmi in grado di fornire a impianti
industriali le soluzioni desiderate nell'ambito del controllo di qualità della
produzione, sostituendo i metodi tradizionali di osservazione manuale di ogni
singolo prodotto o a campione, per deciderne il livello qualitativo. Questo
ovviamente dopo aver definito a priori, cosa non sempre facile, le tolleranze massime accettabili sui
prodotti realizzati.
Di fronte a una grande massa di prodotti
realizzati (e quindi di dati da elaborare) un metodo basato sulle reti neurali
procede in modo sostanzialmente diverso: basterà “far osservare” al programma
vari esempi di prodotti il cui standard qualitativo sia già stato riconosciuto
in un senso o nell’altro, segnalandolo opportunamente alla rete: la rete
neurale stessa si costruirà internamente un modello di tolleranze per poter
giudicare le successive, il tutto magari associato ad un sistema
meccanico-ottico atto ad individuare i pezzi e a scartare i refusi.
Esempi di queste applicazioni sono
illustrate nel sito http://www.e-neural.it.
( Intervista al dr. Oreste Venier,
Studio Venier, via Ragusa 3, 30174 Mestre (VE) )
Aguzzi: dr. Venier, lei dove ha imparato ad
utilizzare le Reti Neurali Artificiali (RNA) ?
Venier: dr. Aguzzi la ringrazio innanzitutto di questo spazio.
Sono molto felice di potermi rendere utile chiarendo alcune delle applicazioni
che si possono sviluppare con le RNA. Mi sono laureato a Pisa in Fisica e sto
ultimando la Scuola di Specializzazione in Fisica Sanitaria presso lo stesso
Ateneo. Ho conseguito alcune Certificazioni professionali come Sun Microsystems
Java2 Certified Programmer per lo sviluppo di applicazioni Java, ed il Red Hat
Linux Certified Engineer per la parte sistemistica. Esse mi sono state di
grande aiuto per progettare il framework informatico di supporto alle Reti
Neurali Artificiali, che sviluppo attraverso le tre società di consulenza che
ho fondato. Per quanto riguarda le RNA, ho iniziato ad utilizzarle durante la
tesi di Laurea, per risolvere il problema della ricerca automatica delle
lesioni cancerose della mammella a partire direttamente dalle lastre
radiologiche. Successivamente mi sono dedicato al riconoscimento di caratteri
manoscritti su moduli industriali, oggetto di brevetto nazionale, e alla
risoluzione dei problemi diagnostici in medicina.
Aguzzi: Ci può descrivere l’iter che
normalmente si percorre, partendo da zero, per realizzare un progetto basato
sulle RNA?
Venier : La prima e più importante
azione è la raccolta dei dati. Come lei ha perfettamente esposto nell’articolo,
è necessario fondare il proprio lavoro su dati certi, affidabili e completi. I
dati raccolti non sono però pronti per essere immessi in una rete neurale:
devono prima essere trasformati in numeri. Infatti essi possono, per esempio,
essere costituiti da immagini, da suoni, da casi clinici: tutto ciò va
convertito in numeri. Pertanto si deve elaborare un sistema detto di
preprocessing in cui dovrete costruire un modello sul quale lavorare. Questo
non significa assolutamente che dobbiate trovare voi il modello matematico per
il vostro problema - a questo ci pensa la rete neurale, a patto che le forniate
in ingresso dei dati “premasticati”. Cercate di dare una mano alla fortuna.
Molto spesso questa fase, che è la più divertente, si rivela semplice: per
esempio un suono andrà convertito in bande di frequenza, un’immagine nei valori
numerici dei propri pixel, un caso clinico in valori compatibili con l’ambiente
ecc… Altre volte invece, come nel caso dell’analisi di immagini di grandi
dimensioni (es. radiologiche) toccherà a voi trovare una formula di compromesso
che possa scremare le enormi quantità di dati (es.: milioni di pixel) che
altrimenti sarà necessario trattare.
Successivamente si
dividono i dati disponibili in due insiemi: un insieme verrà utilizzato dalla
rete per (cercare di ) apprendere il problema, l'altro invece per la verifica
di un corretto addestramento. Per questo motivo i due insiemi vengono chiamati
paniere di learn e paniere di test. E' un po' come quando a scuola si fanno gli
esercizi di geometria: con una parte di essi ci aiutiamo guardando la soluzione
mentre li svolgiamo, i rimanenti invece li teniamo per controllare, alla fine,
la nostra preparazione.
La parte finale del progetto consiste
nell'interfacciamento con il mondo esterno, ovvero con la trasformazione
"a rovescio" (post-processing) dei numeri in dati reali e con la
presentazione all'utente (es. via web, tramite un'applicazione client-side
ecc...).
Aguzzi: dr. Venier, può farci degli esempi
pratici riguardo ai progetti che sta
seguendo attualmente?
Venier: Certamente, è un'ottima idea per evitare di
addentrarci in argomentazioni sterili ed astratte. Un esempio è stato il
riconoscitore automatico di caratteri manoscritti. La prima fase della raccolta
dati è stata quantomeno divertente: ho stampato un modulo da completare con un
esempio della propria calligrafia manoscritta sia per le lettere che per le
cifre e lo ho distribuito a parenti ed amici, i quali non sono stati entusiasti
... infatti per aumentarne la precisione li ho "costretti" a
compilare diverse pagine. Ho anche messo una "taglia" nei bar: tre
moduli per una birra. In cambio di moduli manoscritti ho fatto conferenze in
scuole, associazioni, club-service ecc... Sembra una barzelletta, ma i dati
sono la cosa più importante per un progettista di sistemi neurali. Raccolti i
dati (alcune migliaia di calligrafie) ho effettuato il preprocessing ed ho
messo all'opera alcuni server Linux per l'apprendimento. Ho scritto le routines
(classi) neurali direttamente in linguaggio Java ed ho sviluppato un semplice
protocollo di rete client-server per distribuire il calcolo di apprendimento su
più macchine in configurazione cluster, sia Linux che Windows (grazie alla
caratteristica multipiattaforma di Java). Alla fine ho utilizzato parte dei moduli
per la verifica della correttezza del riconoscimento. Tutto il sistema,
comprensivo della configurazione cluster ecc..., è oggetto di brevetto
nazionale nr. VE2000A/000018 ed attualmente è in funzione anche ricevendo i
moduli via fax. Per concludere, vorrei sottolineare come spesso il progettista
si trovi a decidere se includere o meno determinate funzionalità. Per esempio,
la stragrande maggioranza delle applicazioni industriali di un OCR, come il
data-entry automatico, moduli d'ordine, inventari ecc..., si
"accontenta" di leggere caratteri manoscritti in stampatello invece
che in corsivo; nonostante riconoscere il corsivo sia una sfida molto
accattivante, potrebbe rimanere solo uno sterile esercizio scientifico.
Aguzzi: Molto interessante. Ci può illustrare
anche una tipica applicazione delle RNA nel campo medico?
Venier: Molto volentieri. Vi parlerò allora della diagnosi
neurale in ortodonzia, intesa come scelta di trattamento (ovvero la necessità o
meno di estrarre alcuni denti, e soprattutto quali, prima di applicare per
esempio il classico "apparecchio"). Non me ne vogliano gli esperti ma
sono costretto ad utilizzare un linguaggio volutamente semplificativo del
problema. Ho iniziato questo progetto sei mesi fa insieme a due professionisti
di Milano, i dottori Gabriele e Massimiliano Vassura, a cui sono legato da una
sincera amicizia personale e professionale. Insieme abbiamo creato una apposita
società (Medical Neural Engineering srl) per lo sviluppo di progetti neurali in
ambito medico (www.mne.it). Il problema
della diagnosi e della pianificazione del trattamento in ortodonzia
presenta caratteristiche tali da risultare uno dei più difficili in campo
medico. Non mi dilungo oltre in quanto potete trovare molte informazioni nelle
URL seguenti, che rappresentano articoli scientifici di cui siamo
congiuntamente autori: www.vjo.it e www.ceo.asso.fr
. In breve sostanza si tratta di analizzare i dati di una cartella clinica, che
contiene i dati cefalometrici e dentali del paziente, facilmente ricavabili da
una radiografia (per esempio attraverso il programma Tracer, www.mne.it/tracer)
e decidere una possibile terapia scelta fra circa una decina di esse come ad
esempio “nessuna estrazione” oppure “chirurgia maxillo-facciale”. Questa
operazione richiede una esperienza di molti anni e un aggiornamento continuo.
Inoltre è una operazione spesso irreversibile: togliere ad una persona i denti
errati può significare arrecarle un danno permanente. Per portare avanti questo
progetto ci siamo divisi i compiti. Loro si sono occupati della raccolta dei
dati con l’arruolamento di casi reali trattati e selezionati da alcune fra le
più prestigiose associazioni di professionisti mondiali (il francese “College
Europeen d’ Orthodontie” e la americana “Tweed Foundation for Orthodontic
Research” di Tucson): ancora una volta è bene ricordare l'assoluta necessità di
materiale di apprendimento il più possibile pulito e omogeneo, ecco perché
sarebbe stato tempo sprecato utilizzare i casi trattati personalmente tutti i
giorni da tanti amici e colleghi che si erano offerti. Abbiamo preferito
l'utilizzo di casi certi per definizione, come quelli che i professionisti
devono presentare per poter essere ammessi alle suddette associazioni, casi
vagliati e "ratificati" da una commissione d’esame autorevole. Io
invece ho preparato tutta l'infrastruttura informatica per l'ingresso e
l'uscita dei dati, creando una applicazione Java (detta Sibilla) di
interfacciamento con l'utente ed ho oculatamente scelto il modello di rete
neurale che più si adattava alle nostre esigenze. Il lavoro è proseguito a
marce forzate notturne per verificare i vari modelli di rete che via via
sfornavo e l'attendibilità dei dati stessi in ingresso, attraverso un intenso -
giornaliero - scambio di idee via email. Alla fine, il prodotto Sibilla offre
una capacità diagnostica notevole ed è di grande ausilio nella diagnosi di
tutti i giorni quando il professionista, magari all’inizio della sua carriera,
si ritrova solo nel suo studio ad affrontare un caso non immediatamente
classificabile e desidererebbe potersi confrontare con i docenti dei corsi che
ha frequentato perché lo possano consigliare. Sibilla infatti, essendo stato
realizzato allenato esclusivamente su casi forniti dai migliori professionisti
europei e statunitensi da’ risposte molto attendibili. Il livello di
affidabilità del programma è tale che per Sibilla intendiamo persino avanzare
richiesta di ammissione ad alcune società scientifiche di ortodonzia. Sappiamo
infatti tutti che numerosi software per il gioco degli scacchi hanno superato
gli esami “umani” per il titolo di Maestro. Stiamo percorrendo la stessa strada
con Sibilla affinché’ il software sia sottoposto alle stesse verifiche alle
quali viene sottoposto un professionista umano. In sostanza un Test di Touring
in sedicesimi e su un ambito molto ristretto della conoscenza umana. [ si
desidera, a fianco del proprio, il responso di "un amico"] . Per ottenere maggiori informazioni su
Sibilla o per una copia gratuita non esitate a rivolgervi al dr. Massimiliano
Vassura all'indirizzo vassura@libero.it
Aguzzi: Molto bene. La ringraziamo per il tempo
che ci ha dedicato !
Venier: Sono io che devo ringraziare lei e la redazione di
Punto Informatico. Sono a disposizione dei vostri lettori per qualunque
delucidazione in merito alla materia trattata. Potete raggiungermi in Studio
allo 041 5442558 oppure scrivendo a oreste@drovenier.it
***
In conclusione, abbiamo visto come le reti
neurali trovino grande applicazione in tutti quei casi in cui c'è abbondanza di
dati sperimentali, ma non conosciamo le regole che li gestiscono. Naturalmente,
le cose non sono così semplici: dietro la scelta di una precisa architettura di
reti neurali da usare in un particolare problema, ci deve essere l'esperienza
del progettista che provvede poi ad addestrare la rete e a consegnare al
cliente un sistema funzionante, preaddestrato, pronto al particolare uso che ne
vorrà fare, e soprattutto dotato di una interfaccia con il mondo esterno al
passo con l'attuale tecnologia.
E' indubbio che l'uomo è ancora superiore nella capacità speculativa e che, ad
esempio, in campo medico la responsabilità di ogni decisione rimane del
clinico, il quale dispone, oltre che dell’esperienza, anche di un bagaglio di
studi formali adatto a riconoscere eventuali tranelli. Ma la tecnologia può
sicuramente dare il suo contributo. Se non altro ... statistico e
probabilistico.