6.3 Metodi Mapping deterministici
6.3.2 Metodo con soglia posticipata
L’algoritmo si basa sui seguenti step: 1. point cloud 1: numero keypoints K1
point cloud 2: numero keypoints K2
2. prendere come dominio della funzione di matching la point cloud con numero K di keypoints minore
K = (K1 < K2)?K1 : K2
3. la point cloud con numero di keypoints maggiore sar`a l’immagine della funzione;
4. per ogni descrittore-istogramma (vettore) del dominio si calcolano le distanze euclidee con i descrittori dell’immagine;
5. la minima distanza trovata corrisponde al descrittore della point cloud immagine che `e meno distante;
6. se il dominio non `e esaurito, ripetere dal passo 4, altrimenti termina il ciclo;
7. sommare tutte le distanze minime e normalizzare dividendo per il nu- mero K di keypoints ottenendo quindi una distanza media ¯d
Ripetendo il calcolo tra il riferimento e pi`u esempi del casebase si otter- ranno una serie di valori confrontabili.
La distanza media ¯d `e normalizzata e quindi confrontabile con altri ten- tativi di matching che hanno diverso numero di keypoints. Sar`a necessario scegliere una soglia di validit`a al di sotto della quale una distanza media sar`a considerata valida, altrimenti verr`a scartata perch´e ritenuta troppo distante dal caso in esame.
Fra tutte le soluzioni valide, quella minima corrisponder`a all’oggetto nel casebase che dista meno dall’oggetto di riferimento, ovvero quello che gli somiglia di pi`u. Con questo metodo la scelta di una soglia di validit`a viene rinviata al termine dell’algoritmo ed eseguita una sola volta, non durante il calcolo delle distanze fra istogrammi come avviene nel primo metodo.
Appare evidente che metodi del genere sono deterministici e legati pi`u alla percezione di chi crea il modello invece che ai casi reali da analizzare.
`
E chi crea il metodo a decidere quale soglia usare osservando i dati e le risposte, ma non potr`a mai coprire la gran parte della casistica possibile in un contesto reale, qualit`a che si richiede ad un sistema per essere giudicato robusto.
`
E sufficiente modificare la soglia nel primo metodo che tutte le percen- tuali di risposta potrebbero variare drasticamente in modo imprevedibile, in- fluenzando l’esito dell’applicazione. Anche nel secondo metodo la soglia pu`o influire nello scartare o includere soluzioni non valide. Inoltre non tiene nean- che in considerazione la distribuzione delle distanze minime, considerandole tutte equivalenti.
Sono soluzioni del tutto scorrelate dall’esperienza passata perch´e fa uso di modelli predeterminati sui cui la realt`a deve immedesimarsi. Si sceglie pertanto di dirigere l’attenzione verso tecniche di tipo intelligente come le reti neurali. Questo tipo di architetture vengono addestrate a riconoscere casi che faranno parte della loro esperienza e, se l’addestramento `e stato efficace, di fronte a nuovi casi sapranno generalizzare la soluzione che non avevano imparato.
Reti Neurali
7.1
Introduzione
Le reti neurali artificiali vengono generalmente utilizzate in situazioni in cui i dati possono essere parzialmente errati o soggetti a rumore oppure quando non esistono modelli analitici chiari in grado di affrontare il problema. Sono fra gli strumenti pi`u diffusi nel Data Mining, nel riconoscimento di pattern, nelle analisi economiche e tutti gli ambiti che sfruttano i dati reali. A seguito di una fase di addestramento (una serie di ingressi), la rete `e in grado di fornire l’output pi`u probabile o una decisione in condizioni operative. Le reti neurali sono tecniche di riproduzione artificiale delle potenzialit`a cerebrali umane. Nel sistema nervoso centrale esistono miliardi di cellu- le chiamate neuroni, la cui forma particolare `e adatta ad essere riprodotta artificialmente.
Figura 7.1: Neurone
I neuroni possiedono un corpo tipico di tutte le cellule ma da cui escono piccoli prolungamenti filiformi ramificati chiamati dendriti e uno pi`u grande chiamato assone, la cui lunghezza pu`o variare da pochi centimetri fino ad un ordine di grandezza del metro.
La cellula riceve e trasmette impulsi elettrici mediante queste estensioni alle cui estremit`a si trovano altri neuroni che comunicano allo stesso modo. I dendriti sono i canali di ingresso degli impulsi elettrici mentre l’assone `e il canale di uscita, pertanto i dendriti di un neurone si trovano vicini all’assone di un’altro e cos`ı via formando una rete di collegamenti molto complessa. Sono vicini e non a contatto perch´e nel mezzo fra i terminali c’`e uno spazio in cui avviene un processo di comunicazione chiamato sinapsi.
La comunicazione avviene tramite sostanze chiamate neurotrasmettitori; vengono emesse dall’assone di un neurone stimolato dagli impulsi ricevuti nei dendriti; questi finiscono nello spazio sinaptico e vengono recepiti dalle membrane dei dendriti presenti sui neuroni circostanti. La velocit`a con cui avvengono queste interazioni `e molto pi`u lenta di quelle tipiche dei circuiti elettronici, si pu`o arrivare fino a 6 ordini di grandezza di differenza (10 ns per i chip, 10ms per i neuroni).
Tuttavia il cervello umano `e in grado di compiere operazioni molto pi`u complesse perch´e la sua “architettura” `e notevolmente pi`u ricca di potenzia- lit`a rispetto a quelle dei calcolatori moderni.
Figura 7.2: Diagramma di una cellula neuronale
Tutte le attivit`a del cervello sono strutturate in modo fortemente parallelo e non lineare, ovvero capaci di eseguire ragionamenti (calcoli) in contempo- ranea e su pi`u variabili interdipendenti (sensi e informazioni). Per esempio possiamo osservare il mondo tramite gli occhi, contemporaneamente udire, percepire odori e sensazioni tattili, capire l’ambiente che ci circonda e reagire
di conseguenza coordinando movimenti; allo stesso tempo pensare ad altre cose pi`u astratte e a come realizzarle. Siamo anche in grado di generalizzare, ovvero elaborare nuove reazioni anche di fronte a nuove esperienze. Tutto questo `e possibile solo sfruttando cellule elementari semplici come i neuroni ma che nel loro insieme formano un apparato molto pi`u potente di qualsiasi calcolatore in circolazione.
`
E molto importante considerare la velocit`a complessiva con cui riusciamo a compiere queste azioni. Rispetto ad un calcolatore otteniamo risultati finali cos`ı complessi molto prima sebbene fossimo partiti svantaggiati sulla velocit`a computazionale della singola cellula neuronale. La loro quantit`a e la loro struttura `e tale da superare anche lo scoglio della velocit`a e da migliorare la qualit`a della prestazione.
Non esiste una parte centrale che controlla le attivit`a del cervello; ognuna di esse, fino al pi`u piccolo neurone, si autocontrolla compiendo il suo lavoro di elaboratore e trasmettitore di impulsi in modo autonomo.
Inoltre il cervello umano `e in grado di modificarsi nel tempo. Le connessio- ni fra neuroni e le loro capacit`a mutano e si adattano cercando di rispondere alle nostre esigenze durante l’apprendimento e l’esperienza che accumuliamo. La loro struttura mutevole pu`o anche accumulare fisicamente le nuove infor- mazioni tramite nuove interconnessioni e nuovi neuroni, accanto a quelle gi`a accumulate o modificate, specialmente durante la fase dello sviluppo di un essere umano. Nel corso della vita il cervello `e anche tollerante ai danni di una certa misura; se un neurone muore o una connessione si danneggia, il cervello funziona ugualmente seppur con prestazioni inferiori.
Poter riprodurre artificialmente queste peculiarit`a del cervello consenti- rebbe di risolvere problemi e trovare risposte a situazioni molto complesse per la natura di un calcolatore, talvolta impossibili da modellare deterministica- mente da parte di un programmatore. Sono tutti quei fenomeni che risolvia- mo in modo naturale ma che hanno una tale quantit`a di variabili in gioco da risultarci ardue se dovessimo modellizzarle con tecniche classiche. Riprodur- re una macchina in grado di realizzare lo stesso compito, permetterebbe di incrementare notevolmente la qualit`a delle applicazioni che richiedono uno sforzo di ragionamento sui sistemi che devono analizzare.
Per quanto detto, una struttura artificiale che emula il cervello umano deve essere una rete composta da elementi molto semplici, deve essere distri- buita come i neuroni autonomi e parallela come le interconnessioni fra di essi. Deve anche essere in grado di apprendere, di modificarsi a seconda dell’espe- rienza e di generalizzare risultati di fronte alle nuove esperienze che dovr`a affrontare. Le reti neurali, per questa loro natura, sono valide soluzioni per problemi di classificazione, predizione, riconoscimento e controllo laddove la risoluzione con elaborazione di modelli classici `e difficoltosa.