Reti Neurali: le principali applicazioni pratiche

Si sente parlare da anni di Reti Neurali, ma pochi ne conoscono le applicazioni commerciali. Una piccola esplorazione con un esempio pratico tutto italiano
Si sente parlare da anni di Reti Neurali, ma pochi ne conoscono le applicazioni commerciali. Una piccola esplorazione con un esempio pratico tutto italiano


Roma – Da anni ormai si sente parlare di ?reti neurali? o, per meglio dire, di ?reti neurali artificiali?, ma spesso non se ne comprende appieno il significato né i campi d?applicazione. E dunque, 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 ed estesi 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. Si basano sul concetto che, in determinate situazioni, è possibile far “apprendere” ad un apparato matematico determinate leggi che non si conoscono a priori, semplicemente facendogli analizzare un elevato numero di 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 o assimilazione, queste reti 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 un?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 i seguenti.

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 grafia 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 dr. Oreste Venier di Venezia, specializzato in consulenze tecnologiche ad alto livello. Nel corso di una breve intervista, pubblicata in fondo a questo articolo, lo stesso Venier descrive a Punto Informatico 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 può essere ricondotta ad un problema lineare. 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.

È esperienza comune di qualsiasi pronto soccorso vedere un infermiere anziano che pone diagnosi corrette più rapidamente di un medico giovane e inesperto. È quindi evidente che anche non avendo conoscenze ?propedeutiche? è possibile, per una rete neurale particolarmente efficiente come quella umana, riuscire a categorizzare tramite l’esperienza (che non è 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 – di cui si parla più avanti – è stato realizzato per l?ortodonzia dalla Medical Neural Engineering Srl , società che sviluppa e commercializza software basati sulle reti neurali per il settore medico.

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. A quel punto la rete neurale stessa costruirà al suo “interno” un modello di tolleranze per poter giudicare le successive, associando magari il tutto ad un sistema optomeccanico atto ad individuare i pezzi e a scartare i refusi.
Esempi di queste applicazioni sono illustrate nel sito e-neural.it .


Punto Informatico ha avuto l’opportunità di intervistare Oreste Venier, specialista in fisica sanitaria e presidente della Medical Neural Engineering srl.

Punto Informatico: dottor Venier, lei dove ha studiato e preso contatto con le Reti Neurali Artificiali (RNA)?

Oreste Venier: “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.
Mi sono state di grande aiuto per progettare il framework informatico di supporto alle RNA, 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.”

PI: Ci può descrivere l?iter che normalmente si percorre, partendo da zero, per realizzare un progetto basato sulle RNA?

OV: “La prima e più importante azione è la raccolta dei dati. Come 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 possono, per esempio, essere costituiti da immagini, da suoni, da casi clinici: tutto ciò va convertito in numeri. Pertanto dovrete elaborare un sistema detto di pre-processing in cui imposterete questa conversione. Questo non significa assolutamente che dobbiate trovare voi il modello matematico atto a risolvere 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.
È 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…).”

PI: Può farci degli esempi pratici, per esempio in relazione ai progetti che sta seguendo attualmente?

OV: “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 grafia manoscritta sia per le lettere che per le cifre e l’ho distribuito a parenti ed amici, che non ne sono stati entusiasti… infatti per aumentarne la precisione li ho “costretti” a compilare diverse pagine, tutto ciò coadiuvato dal nostro fidato dipendente Gianluca Calamelli. 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 pre-processing ed ho messo all’opera alcuni server Linux per l’apprendimento. Ho scritto le routine (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 può funzionare 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.”

PI: Andando nel delicato settore della medicina, quale può essere una tipica applicazione delle RNA?

OV: “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 Bassura, ed insieme abbiamo creato un’apposita società, la Medical Neural Engineering per lo sviluppo di progetti neurali in ambito medico.
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: vjo.it e 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 ) 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 è un’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 l?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?input/output dei dati, creando una applicazione Java, chiamata Sibilla (che recentemente ha preso il premio ?Miglior comunicazione scientifica originale al XVI Congresso S.I.D.O. – Genova 2001″), 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 e-mail.

Alla fine posso affermare che Sibilla, oggi, 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 allenandolo esclusivamente su casi forniti dai migliori professionisti europei e statunitensi fornisce 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. Tutti infatti sappiamo 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.”

In conclusione, si è visto come le reti neurali trovino grande applicazione in tutti quei casi in cui c’è abbondanza di dati sperimentali, ma senza regole evidenti con cui questi sono gestiti. 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? il sistema e a consegnare al cliente una soluzione funzionante e già pronta per il particolare uso che ne vorrà fare, e soprattutto dotata di una interfaccia con il mondo esterno al passo con l’attuale tecnologia.

È 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.

a cura di Andrea Aguzzi

Link copiato negli appunti

Ti potrebbe interessare

01 11 2001
Link copiato negli appunti