Lenzi Gianpiero - Università degli Studi di Siena

UNIVERSITÀ DEGLI STUDI DI SIENA
FACOLTÀ DI INGEGNERIA
Corso di Laurea in Ingegneria delle Telecomunicazioni
Tecniche di analisi del fondo oculare
mediante caratteristiche cromatiche e SVM
Relatore:
Chiar.mo Prof. Alessandro Mecocci
Correlatori:
Ing. Tommaso Capasso
Tesi di Laurea di:
Gianpiero Lenzi
Matr.: 080201169
Anno Accademico 2004-2005
Indice
Indice
pagina
Introduzione
5
1- L’occhio umano
1.1 - Generalità
9
1.2 - Anatomia descrittiva e topografica
10
1.3 - Vascolarizzazione
19
2- La retina
2.1 - Morfologia
22
2.2 - Struttura e ultrastruttura
24
2.3 - Istofisiologia
32
2.4 - Retinopatie vascolari: retinopatia diabetica
33
3- Tecniche di clustering
3.1 - Introduzione
39
3.2 - Sistemi in logica fuzzy
39
3.2.1 - Introduzione alla logica fuzzy
41
3.2.2 - Concetti di base
42
3.2.3 - Insiemi fuzzy
43
3.2.3.1 - Variabili linguistiche
44
3.2.3.2 - Operazioni su insiemi ordinari ed insiemi fuzzy
45
3.2.4 - Relazioni e composizioni nello stesso spazio prodotto
2
47
Indice
3.2.5 - Relazioni e composizioni in spazi prodotto differenti
48
3.2.6 - Logica fuzzy
49
3.2.7 - Ancora sui Sistemi Logici Fuzzy
51
3.2.7.A - Regole
51
3.2.7.B - Motore inferenziale fuzzy
51
3.2.7.C - Fuzzificazione
53
3.2.7.D - Defuzzificazione
53
3.2.8 - Assegnazione dei valori alle funzioni di appartenenza
54
3.3 - Fuzzy C-Means (FCM)
54
3.4 - Statistical Learning Theory
60
3.4.1 - Introduzione
60
3.4.2 - Un limite a performance di una Pattern Recognition
Machine
60
3.4.3 - La dimensione VC
62
3.4.4 - Punti separati con iperpiani orientati in Rn
63
3.4.5 - La dimensione VC e il numero di parametri
64
3.4.6 - Minimizzare il limite minimizzando h
66
3.4.7 - Minimizzazione del rischio strutturale
67
3.5 - Support Vector Machines Lineari
3.5.1 - Il caso separabile
68
69
3.5.1.1 - Le condizioni di Karush-Kuhn-Tucker
3.5.2 - Il caso non-separabile
3.5.2.1 - Esempi usando delle figure
3.6 - Support Vector Machines non lineari
72
73
76
77
3.6.1 - Condizione di Mercer
80
3.6.2 - Alcuni esempi di SVMs non lineari
81
3.7 - La dimensione VC per le SVM
82
3.8 - Esempio di classificazione SVM: IRIS data
84
4- Il progetto
4.1 - Introduzione
88
3
Indice
4.2 - La funzione Normalizzazione
90
4.3 - Le funzioni per binarizzare l’immagine
92
4.4 - La funzione EliminazioneDiscoOttico
96
4.5 - La funzione EstrazioneFeatures
98
4.6 - Valutazione delle prestazioni
99
4.7 - Ulteriori sviluppi
100
4.8 - Conclusioni
101
APPENDICE A - Stretching dell’istogramma
102
APPENDICE B - Metodo del gradiente per evidenziare i vasi sanguigni
104
Bibliografia ragionata
107
4
Introduzione
Introduzione
INTRODUZIONE AL LAVORO SVOLTO
Le malattie dell’occhio umano collegate al diabete sono le più comuni cause
di cecità nel mondo.
Ad esempio, ci sono approssimativamente sedici milioni di Americani che
hanno il diabete o nella forma giovanile (TIPO I) o nella forma adulta (TIPO
II). Tutti sono a rischio di contrarre malattie minacciose per la vista: queste
malattie sono comuni complicanze del diabete. In Singapore più della metà
dei casi di cecità sono causati da malattie della retina e la retinopatia
diabetica è la malattie che dà il maggior contributo.
Per ora il trattamento più efficace per tali malattie dell’occhio è la precoce
scoperta attraverso screenings regolari. Durante gli screenings si ottengono
immagini a colori della retina usando una fotocamera che riesce a fotografare
il fondo dell’occhio (vedi fig.0.1).
fig.0.1. Immagine tipo di occhio di paziente diabetico con evidenziati gli essudati principali.
5
Introduzione
Comunque, tutte le immagini ottenute dagli screenings hanno bisogno di
un’analisi e di una diagnosi manuale. In altre parole, i medici devono
spendere molto tempo e molta energia per riverificare manualmente tutte le
foto.
Per abbassare il costo di tali screenings, si possono adottare delle tecniche
di elaborazione delle immagini e di pattern recognition che consentano di
individuare automaticamente la presenza di anomalie nelle immagini della
retina ottenute durante gli screenings.
Alcuni autori, come Wang e Hsu [1], Osareh e Mirmehdi [2]-[3]-[4], si sono
concentrati su un particolare segno dell’anormalità: la presenza di essudati
(lesioni della retina) nelle immagini della retina. Uno stadio comunemente
presente nel loro lavoro consiste nel pre-processing delle immagini volto a
migliorare il contenuto informativo da elaborare. Essi applicano una
esaltazione del contrasto locale per distribuire i valori dei pixels intorno alla
media locale. In questa maniera, un pixel p, al centro di una piccola finestra
running w, viene modificato assumendo un nuovo valore pn, secondo la
formula seguente:
Pn = 255*[(f(p)-f(Min))/(f(Max)-f(Min))]
con
f(p)=1/[1+exp((valor_medio-p)/varianza)]
dove Min e Max sono i valori di minima e massima intensità nell'intera
immagine, mentre il valor_medio e la varianza (deviazione standard) sono
calcolati all'interno di ogni finestra.
Questa pre-elaborazione dell’immagine è stata presa in considerazione ed
implementata; tuttavia il risultato non è stato quello sperato, essendo affetto
da molto rumore (vedi fig. 0.2):
6
Introduzione
fig.0.2 Miglioramento del contrasto secondo Wang e Hsu [1], Osareh e Mirmehdi [2]-[3]-[4].
Il secondo passo eseguito da Wang e colleghi consiste nell’eseguire una
classificazione utilizzando l’algoritmo Fuzzy C-Means [1]-[2]-[3]-[4]. Come
vedremo in seguito, nel mio progetto non ho implementato un classificatore
Fuzzy perché è risultato più efficace un classificatore SVM. Tale scelta è
derivata dall’esigenza di evidenziare nettamente (e non in maniera fuzzy),
nella foto del fondo ottico, gli essudati scartando il background.
Il terzo passo eseguito dai predetti studiosi consiste nell’eliminazione del
disco ottico, avendo quest’ultimo le stesse caratteristiche cromatiche degli
essudati. Osareh e colleghi propongono due metodi: template matching
(basato su un’immagine campione della sagoma del disco e sulla sua ricerca
all’interno della foto della retina) e localisation using snakes (l’utente
7
Introduzione
inserisce manualmente una circonferenza vicino al bordo del disco ottico e
questa, via via, si allarga fino a combaciare con lo stesso bordo). Anche in
questo caso, però, i risultati sono stati solo parzialmente soddisfacenti e,
pertanto, ho sviluppato un terzo metodo di cui parlerò nel successivo
capitolo: “Il progetto”.
Infine, Wang e colleghi estraggono un certo numero di caratteristiche
(Feature Extraction) per poter caratterizzare al meglio gli essudati. Nel mio
progetto ho preso spunto dall’insieme di features estratte da Wang e colleghi
aggiungendone altre anche in vista di futuri ulteriori sviluppi del programma.
Lo scopo di questa tesi è quindi quello di fornire un classificatore, basato su
SVM, in grado di riconoscere ed evidenziare gli essudati nelle normali
immagini retiniche. Si impone l’ulteriore vincolo di estrarre le caratteristiche
(features) di tali essudati per meglio conoscere le evoluzioni della malattia.
Questo processo deve essere automatico per velocizzare il lavoro ai medici
ed abbattere i costi.
Il mio elaborato per la tesi inizia con l’individuazione del problema a livello
medico: parlerò dell’occhio come organo, della retina e delle retinopatie
diabetiche.
In seguito tratterò le più comuni tecniche di clustering, Fuzzy C-Means e
SVM, soffermandomi anche sulle teorie fondamentali dalle quali scaturiscono
questi algoritmi (Sistemi Fuzzy e Statistical Learning Theory).
Infine, nel capitolo 4, esporrò l’implementazione, da me realizzata in C++, del
progetto: mi soffermerò sulla struttura del programma, sui vari algoritmi da
me realizzati e sui risultati ottenuti.
8
Capitolo 1 – L’occhio umano
Capitolo 1
L’OCCHIO UMANO
1.1 – Generalità
L’apparato visivo è composto essenzialmente da tre formazioni: il globo, o
bulbo oculare; il nervo ottico; gli annessi oculari.
Il globo oculare è un organo dalla forma sferoidale con diametro
anteroposteriore di 24,1 mm, diametro verticale di 23,5 mm e diametro
trasversale di 23 mm. Ha un peso variabile tra i 7 e i 9 g. Vi si considerano
due poli (uno anteriore, al centro della cornea, e uno posteriore), un asse
anatomico che li congiunge, un equatore (circonferenza perpendicolare
all’asse equatoriale, equidistante tra i due poli) che lo divide in due emisferi.
L’asse anatomico non coincide con l’asse visivo (dal centro della cornea alla
fovea centralis), in quanto la fovea si trova spostata di 4 mm lateralmente e 1
mm inferiormente rispetto al polo posteriore.
Tra asse anatomico e asse visivo si forma un angolo aperto in avanti di circa
5-7°. I due assi anatomici dei due occhi formano tra loro un angolo di circa
10° aperto in avanti, mentre ciascuno di essi forma con l’asse della propria
orbita un angolo di circa 18°, giacché i due assi delle cavità orbitarie sono
nettamente divergenti determinando un angolo di circa 46° aperto
anteriormente.
L’occhio alloggia nella cavità orbitaria protetto dalle palpebre e da altri
annessi oculari. La sua funzione è quella di captare le radiazioni luminose
provenienti dal mondo esterno e di trasformarle in impulsi nervosi da inviare
alla corteccia occipitale, ove si realizza la sensazione visiva. Gli impulsi
lasciano il globo oculare, o meglio la retina sua membrana più interna, per
mezzo di fasci di fibre nervose riunite in un’unica struttura: il nervo ottico.
9
Capitolo 1 – L’occhio umano
Il nervo ottico, rivestito da guaine (dura, aracnoide e pia madre), ha un
diametro di 3-4 mm nel tratto intraorbitario e di 4-6,5 mm nel tratto
endocranico; ha una lunghezza che varia individualmente dai 35 ai 55 mm e
termina al chiasma ottico, ove parte delle sue fibre si incrocia per continuarsi
nel tratto ottico controlaterale.
Gli annessi oculari adempiono a funzioni essenziali per la normale
funzionalità del globo oculare. La motilità del bulbo oculare è infatti
assicurata dall’azione dei muscoli estrinseci ricoperti, insieme a parte del
bulbo, da una struttura fibrosa, la capsula di Tenone. La rimanente parte
anteriore del bulbo è rivestita da una membrana mucosa, la congiuntiva.
Questa riveste anche la porzione interna delle palpebre, formazioni
muscolocutanee con svariate funzioni, fra le quali la protezione del bulbo
(unitamente al sopracciglio) e l’uniforme distribuzione del secreto lacrimale
ottenuta con la loro rapida e ritmica chiusura.
Fra gli annessi oculari occorre infine ricordare l’apparato lacrimale, costituito
da ghiandole devolute alla produzione delle lacrime (ghiandole lacrimali) e da
un sistema di vie lacrimali (puntini, canalicoli, sacco e dotto naso-lacrimale)
deputato al loro drenaggio nelle cavità nasali.
1.2 – Anatomia descrittiva e topografica
Il bulbo oculare (figg. 1.1 e 1.2) è contenuto nell’orbita (figg. 1.3 e 1.4), dalle
cui
pareti
dista
in
misura
diseguale.
L’orbita,
che
rappresenta
sostanzialmente un elemento protettivo per il bulbo oculare, è strutturalmente
formata da tessuto osseo; ha l’aspetto di una piramide quadrangolare ad
apice posteriore e base rivolta anteriormente. Le pareti orbitarie sono quattro:
la parete superiore, che divide l’orbita dal seno frontale e dalla fossa cranica
anteriore; la parete laterale, che separa l’orbita dalla fossa cranica media e
da quella temporale; la parete inferiore, in diretto contatto col seno
mascellare; la parete mediale, che separa l’orbita dalla cavità nasale, dalle
cellule etmoidali e dal seno sferoidale.
10
Capitolo 1 – L’occhio umano
fig. 1.1. Anatomia del bulbo oculare. 1) Parte ciliare della retina; 2) corpo ciliare e muscolo ciliare; 3)
canale di Schlemm (seno venoso della sclerotica); 4) zona ciliare; 5) iride; 6) cornea; 7) camera
anteriore; 8) cristallino; 9) angolo iridocorneale; 10) congiuntiva; 11) ora serrata; 12) tendine del
muscolo retto mediale; 13) corpo vitreo; 14) canale ialoideo; 15) vasi venosi e arteriosi; 16) lamina
cribrosa della sclerotica; 17) nervo ottico; 18) arteria e vena centrali della retina; 19)-20) guaine del
nervo ottico; 21) fovea; 22) fascia bulbare; 23) sclera; 24) spazio sovracoroideo; 25) coroide; 26) parte
visiva della retina; 27) tendine del muscolo retto laterale.
A livello dell’apice orbitario si presentano tre aperture, attraverso le quali
decorrono strutture fondamentali per la fisiologia oculare: il forame ottico
(nervo ottico, arteria oftalmica e fibre nervose simpatiche); la fessura orbitaria
11
Capitolo 1 – L’occhio umano
superiore (nervo oculomotore comune, nervo trocleare, prima branca del
nervo trigemino, nervo abducente; vene oftalmiche, fibre nervose simpatiche
e un ramo dell’arteria meningea media); la fessura orbitaria inferiore
(seconda branca del nervo trigemino, arteria infraorbitaria e ramo della vena
oftalmica inferiore).
fig. 1.2. Anatomia dell’occhio umano con sezioni su piani diversi (visione posteriore). 1) Arterie ciliari
lunghe posteriore; 2) guaina durale; 3) guaina aracnoide; 4) fasci delle fibre del nervo ottico; 5) vasi
subdurali del nervo ottico; 6) arteria centrale della retina; 7) vena centrale della retina; 8) muscolo retto
laterale; 9) muscolo retto superiore; 10) congiuntiva; 11) corpo ciliare; 12) iride; 13) cristallino; 14)
cornea; 15) zonula ciliare; 16) canale ialoideo; 17) processi ciliari; 18) arterie e vene della coroide; 19)
retina; 20) coroide; 21) sclera; 22) arterie e vene episclerali; 23) muscolo retto inferiore.
12
Capitolo 1 – L’occhio umano
fig. 1.3. Visione d’insieme del fondo della cavità orbitaria con le inserzioni dei muscoli estrinseci
dell’occhio. 1) Foro ottico; 2) muscolo obliquo superiore; 3) troclea o puleggia del muscolo obliquo
superiore; 4) muscolo elevatore della palpebra superiore; 5) muscolo retto superiore; 6) anello dello
Zinn; 7) muscolo retto laterale esterno; 8) fessura sfenomascellare; 9) muscolo retto inferiore; 10)
muscolo obliquo inferiore; 11) canale nasale; 12) muscolo retto mediale interno.
Posteriormente, fra apice dell’orbita e occhio, si accumula una quantità,
individualmente variabile di tessuto adiposo, che contribuisce, tra l’altro, a
rendere il bulbo oculare più o meno sporgente rispetto ai margini dell’orbita
stessa. Oltre al tessuto adiposo, contribuiscono a isolare la tunica più esterna
13
Capitolo 1 – L’occhio umano
(sclerotica) del bulbo dalle pareti orbitarie altre strutture quali: la congiuntiva,
la capsula di Tenone ed i muscoli estrinseci.
fig. 1.4. Muscoli estrinseci dell’occhio visti lateralmente. 1) Seno frontale; 2) fasci del muscolo frontale;
3) nervo sopraorbitale; 4) cellulare adiposo dell’orbita; 5) septum orbitale; 6) tendine connettivo del
muscolo elevatore della palpebra superiore; 7) tendine del muscolo retto superiore; 8) fornice superiore
della congiuntiva; 9) congiuntiva; 10) tendine muscolare del muscolo elevatore della palpebra
superiore; 11) palpebra superiore; 12) muscolo orbicolare della palpebra; 13) tarso superiore; 14)
cornea; 15) pupilla; 16) tarso inferiore; 17) iride; 18) palpebra inferiore; 19) fornice inferiore della
congiuntiva; 20) tendine del muscolo retto inferiore; 21) muscolo obliquo inferiore; 22) seno mascellare;
23) tendine del muscolo retto laterale; 24) tendine del muscolo grande obliquo; 25) volta dell’orbita; 26)
muscolo laterale della palpebra superiore; 27) muscolo retto superiore; 28) muscolo retto mediale; 29)
muscolo retto laterale; 30) muscolo retto inferiore; 31) fossa pterigopalatina; 32) grande ala dello
sfenoide; 33) margine della fessura sferoidale; 34) processo clinoideo anteriore; 35) nervo ottico.
14
Capitolo 1 – L’occhio umano
La congiuntiva è una mucosa che riveste la porzione anteriore della sclera
(congiuntiva bulbare) e che, continuandosi posteriormente e ripiegandosi in
avanti (fornice congiuntivale), riveste anche la superficie interna delle
palpebre (congiuntiva palpebrale).
Le palpebre sono formazioni muscolocutanee che, in numero di due,
consentono di occludere in stato di contrazione l’apertura anteriore
dell’orbita, e che comunque, grazie alla presenza delle ciglia, emergenti dal
loro
bordo
esterno,
costituiscono
sempre
un
elemento
protettivo
determinante per il bulbo oculare e la cornea in particolare.
La palpebra superiore contribuisce poi alla protezione della ghiandola
lacrimale, situata nell’angolo supero-esterno dell’orbita e tutte e due le
palpebre, per mezzo dei puntini e canalicoli lacrimali, assicurano il drenaggio
del secreto lacrimale all’interno del sacco lacrimale. Da questo si diparte un
condotto (dotto nasolacrimale) che termina nel meato nasale inferiore.
La capsula di Tenone è un’aponeurosi, o guaina fibrosa, che avvolge
posteriormente quasi l’intero bulbo oculare e che consente e limita, nel
contempo, i movimenti oculari di verticalità, lateralità e torsione. Tali
movimenti si realizzano per azione dei muscoli estrinseci oculari retti
(laterale, superiore, mediale e inferiore) e obliqui (superiore e inferiore) che
originano, a eccezione del muscolo obliquo inferiore, dall’anello di Zinn,
formazione fibrosa posta all’apice dell’orbita. Da qui vengono a inserirsi
direttamente sulla sclera, anteriormente (retti) e posteriormente (obliqui),
all’equatore bulbare.
La sclera è la tunica bulbare più esterna, con funzioni protettive grazie,
soprattutto, alla sua marcata consistenza e contemporanea elasticità. Essa si
estende per circa i 5/6 posteriori di tutta la superficie bulbare e presenta un
colorito biancastro. Posteriormente presenta un canale dal quale fuoriesce il
nervo ottico, mentre anteriormente, attraverso una limitata area di transizione
(limbus sclerocorneale), si continua con la cornea. Questa formata di cinque
strati strutturalmente ben differenziati, funge essenzialmente da mezzo
diottrico; è avascolare, molto resistente, flessibile e riccamente innervata. Ha
15
Capitolo 1 – L’occhio umano
l’aspetto di una calotta sferica con diametro di circa 12 mm. Lo strato
corneale più esterno (epitelio), normalmente a contatto con l’aria, in
condizioni di chiusura palpebrale viene a trovarsi a contatto diretto con la
congiuntiva palpebrale stessa con l’interposizione di un sottile “film
lacrimale”; lo strato corneale più interno (endotelio) invece, limita
anteriormente la camera anteriore. Questa ha una profondità centrale media
di 3,5 mm ed è limitata posteriormente da un “diaframma” costituito da iride e
cristallino (fig. 1.5).
fig. 1.5. Anatomia della camera anteriore. 1) Cristallino; 2) cornea; 3) muscolo sfintere dell’iride; 4)
ondulazioni dell’iride; 5) camera anteriore; 6) epitelio pigmentato; 7) muscolo dilatatore dell’iride; 8)
camera posteriore; 9) endotelio; 10) membrana di Descemet; 11) legamento sospensore del cristallino
(zonula dello Zinn); 12) linea di Schwalbe; 13) trasecolato e spazi di Fontana; 14) canale di Schlemm;
15) sperone centrale; 16) angolo camerulare; 17) legamento pettinato; 18) processo ciliare; 19) fibre
circolari; 20) fibre radiate; 21) fibre meridionali; 22) congiuntiva; 23) vena ciliare anteriore; 24) sclera;
25) spazio sovracoroideo.
16
Capitolo 1 – L’occhio umano
La camera anteriore contiene umor acqueo che, prodottosi in gran parte
(70%) a livello dell’epitelio che ricopre il corpo ciliare (epitelio ciliare),
attraversa il forame pupillare per poi essere drenato a livello dell’angolo della
camera anteriore, formato dal congiungimento della cornea con l’iride
(angolo iridocorneale). Quasi all’apice di tale angolo, l’umore acqueo,
sollecitato da una pressione endoculare, attraversa un filtro (trabecolato
corneosclerale) e si immette nel canale di Schlemm, dal quale fuoriesce a
mezzo delle vene acquose e episclerali.
Tale angolo iridocorneale normalmente è aperto e consente un agevole
deflusso dell’umore acqueo, ma in condizioni anomale o patologiche può
essere stretto, o addirittura chiuso, rendendo difficoltoso, o impedendo del
tutto, l’accesso dell’umore acqueo al trasecolato corneosclerale. Ne risulta un
aumento della pressione endoculare e l’insorgere di un glaucoma.
L’iride rappresenta, praticamente, il diaframma del sistema diottrico oculare,
regolatore dell’intensità luminosa e della profondità di campo; il colore della
sua superficie anteriore varia da un soggetto all’altro (prevale il castano e
l’azzurro), mentre lo strato profondo è nero o molto scuro in tutti i soggetti
normali. Al centro di essa si trova un foro, la pupilla il cui diametro può ridursi
(miosi) o aumentare (midriasi) in varie condizioni fisiologiche e patologiche e
per azione di farmaci specifici stimolanti o inibenti il sistema nervoso
autonomo. Posteriormente all’iride, e separato da essa ad opera di una
ridottissima cavità, troviamo il cristallino o lente, di forma simile ad una lente
biconvessa, trasparente e privo di vasi e nervi. Anche dopo la nascita il suo
sviluppo procede ininterrottamente, per cui, con l’età, esso viene a perdere
alcune delle proprie caratteristiche biofisiche. La perdita di elasticità conduce
alla presbiopia (verso i 42-45 anni), ovvero alla riduzione del potere
accomodativo del cristallino stesso, sua funzione principale nel sistema
diottrico oculare. La perdita di trasparenza del cristallino, secondaria a varie
cause, prima fra tutte l’età, può condurre alla formazione di una cataratta, e
quindi ad una riduzione spesso marcata della visione.
17
Capitolo 1 – L’occhio umano
Posteriormente al cristallino e limitata dall’intera cupola retinica, vi è
un’ampia cavità (camera vitrea) che contiene una sostanza gelatinosa,
trasparente e avascolare, il vitreo. Esso adempie a funzioni diottriche e di
sostegno. Il vitreo può perdere la sua normale trasparenza soprattutto a
causa di processi patologici a carico della coroide o della retina
(infiammazioni, emorragie, ecc…). Il vitreo è praticamente a contatto con la
più interna delle tre membrane oculari, la retina.
La retina si estende dalla papilla ottica ai corpi ciliari (ora serrata) ed è
esternamente limitata dalla coroide (membrana di Bruch) per mezzo
dell’epitelio pigmentato. E’ una membrana molto sottile con spessore
massimo di 0,5 mm a livello della papilla ottica e, in condizioni normali,
trasparente. Fra la membrana di Bruch e l’epitelio pigmentato esiste uno
spazio virtuale che, nel distacco di retina, diventa reale e colmo di liquido
(liquido sottoretinico) e non consente alla retina di riadagiarsi. La retina è
composta da dieci strati costituiti da elementi ben differenziati, sia dal punto
di vista morfologico, sia da quello funzionale (fig. 1.6). I recettori sono
raggruppati nello strato dei coni (più numerosi nell’area retinica centrale) e
dei bastoncelli (più numerosi alla periferia). L’area della visione distinta è
situata posteriormente e al centro, ove la retina riduce notevolmente il suo
spessore (macula o fovea). Per maggiori dettagli sulla retina si veda il cap. 2.
fig. 1.6. Sezione istologica di occhio umano. 1) Sclera; 2) coroide; 3) retina. (100 X).
18
Capitolo 1 – L’occhio umano
La coroide è il segmento posteriore della tunica vascolare o nutritizia
dell’occhio. Ha un colorito bruno, tappezza internamente la sclera, e su di
essa si adagia la retina. In avanti a livello dell’ora serrata si continua con il
corpo ciliare. La coroide è costituita da 4 strati: la lamina fusca, che separa la
coroide dalla sclera, lo strato dei grossi vasi, lo strato dei capillari ed infine la
lamina vitrea (o membrana di Bruch) che offre sostegno all’epitelio
pigmentato della retina.
Dal punto di vista ottico, l’occhio può essere considerato come una lente
convergente dotata di un notevole potere rifrattivo. Il centro ottico viene a
trovarsi a circa 7 mm dalla cornea; il punto in cui convergono i raggi che
giungono all’occhio (cornea) paralleli tra loro è a 24 mm dalla cornea e
coincide con la retina (fovea). Un occhio otticamente normale e dotato di tali
caratteristiche è detto emmetrope; esistono tuttavia varie anomalie rifrattive
per cui l’occhio può essere ametrope (miopia, ipermetropia e astigmatismo).
Esistono lenti opportune (occhiali, lenti corneali) che consentono di
correggere in tutto od in parte tali difetti visivi.
1.3 – Vascolarizzazione
L’occhio è provvisto di due sistemi vascolari (retinico e ciliare) pressoché
indipendenti, messi in comunicazione tra di loro soltanto a livello
dell’emergenza del nervo ottico dalla sclera (fig. 1.7). Le arterie provengono
dall’arteria oftalmica (ramo della carotide interna); le vene sono affluenti delle
due vene oftalmiche, superiore ed inferiore, tributarie del seno cavernoso.
Il primo sistema è irrorato dall’arteria centrale della retina: di calibro piuttosto
piccolo (0,3 mm), giunta, dopo breve decorso, a circa 1 cm dalla sclera, si
impegna nello spessore del nervo ottico e ne segue l’asse longitudinale sino
alla papilla. Qui, nella maggior parte dei casi, si biforca in un ramo superiore
ed uno inferiore, ciascuno dei quali fornisce subito dopo un ramo mediale o
nasale ed uno laterale o temporale. Decorrendo nello strato delle fibre ottiche
essi si ramificano ripetutamente senza mai entrare in comunicazione e danno
19
Capitolo 1 – L’occhio umano
luogo a due letti capillari ,uno esterno ed uno interno per tutto il territorio
retinico interno, tranne che per la regione della fovea centralis, priva di vasi.
fig. 1.7. Schema della circolazione dell’occhio in una sezione orizzontale. 1) Arterie ciliari posteriori
brevi; 2) arterie ciliari posteriori lunghe; 3) arterie e vene ciliari anteriori; 4) vasi anteriori della
congiuntiva bulbare; 5) vasi posteriori; 6) arteria e vena centrali della retina; 7) vasi sottodurali del
nervo ottico; 8) vasi durali del nervo ottico; 9) vasa vorticosa; 10) arteria e vena episclerali; 11) arteria
coroidea ricorrente; 12) capillari della coroidea; 13) comunicazione tra le arterie ciliari brevi e l’arteria
centrale della retina; 14) comunicazione dei vasi coroidei con i vasi retinici; 15) vasi dei processi ciliari;
16) vasi dell’iride; 17) grande cerchio arterioso dell’iride; 18) canale dello Schlemm; a) nervo ottico e
sua guaina; b) sclera; c) coroide; d) retina; e) iride; f) processi ciliari; g) congiuntiva; h) cornea; i)
cristallino.
20
Capitolo 1 – L’occhio umano
Il secondo sistema è irrorato dalle arterie ciliari che si distinguono in:
1) arterie ciliari posteriori brevi: inizialmente in numero di due o tre, si
ramificano ripetutamente sino a divenire una ventina. Attorniando il
nervo ottico, esse perforano la sclera e giungono alla coroide. Qui,
decorrendo secondo i meridiani, si dividono in numerosi rami (arterie
coroidee);
2) arterie ciliari posteriori lunghe: in numero di due, nasale e temporale,
perforano la sclera in vicinanza del nervo ottico e decorrono tra sclera
e coroide senza dare rami. Arrivate davanti al muscolo ciliare si
biforcano in un ramo ascendente ed uno discendente che si mettono
in comunicazione con il rispettivo controlaterale dando luogo al
cosiddetto grande cerchio arterioso dell’iride;
3) arterie ciliari anteriori: sono collaterali delle due arterie muscolari e si
distaccano da esse all’altezza dell’inserzione dei muscoli retti
sull’occhio. Dopo aver fornito le anse marginali, si gettano nel grande
cerchio arterioso;
4) il grande cerchio arterioso dell’iride fornisce: rami ciliari, iridei e
coroidei messi in comunicazione con i vasi della coroide provenienti
dalle ciliari brevi.
Le vene sono, per il primo sistema, la centrale della retina e, per il secondo,
le ciliari anteriori (che drenano dai processi ciliari), le vorticose (che drenano
dal sistema iridociliare e coroideo) e le ciliari posteriori (dalla porzione
posteriore della sclera).
Nell’occhio non sono stati descritti veri vasi linfatici. Paragonabile a un circolo
linfatico è quello dell’umor acqueo, prodotto dai processi ciliari e drenato
,attraverso il sistema trabecolare sclerocorneale, dal seno venoso della
sclera (o canale dello Schlemm); da qui, per mezzo di esili venuzze, esso
viene trasportato nelle vene episclerali (o vene acquose) tributarie delle vene
ciliari anteriori.
21
Capitolo 2 – La retina
Capitolo 2
LA RETINA
2.1– Morfologia
La retina dell’adulto appare come una membrana sottile, trasparente, a forma
di coppa, che tappezza la porzione interna del bulbo oculare, dal nervo ottico
fino all’orifizio pupillare. La retina può essere suddivisa in una porzione ottica,
estesa dall’area di entrata del nervo ottico fino all’ora serrata; in una porzione
intermedia (ciliare) costituita da uno strato esterno di cellule pigmentate e da
uno strato interno che è in rapporto con la secrezione e il riassorbimento di
umor acqueo; in una porzione anteriore, che corrisponde all’iride ed è
costituita da cellule contrattili che formano i muscoli sfintere e dilatatore della
pupilla, nonché da cellule pigmentate (fig. 2.1).
fig. 2.1. Retina di ratto adulto. Le frecce indicano le cellule pigmentate dell’iride. (650 X).
L’ora serrata, che è il brusco punto di passaggio tra la porzione ottica e
quelle restanti della retina (fig. 2.2) (la cosiddetta retina cieca, in quanto non
deputata alla ricezione di informazioni visive), si presenta come un margine
22
Capitolo 2 – La retina
seghettato composto da arcate adiacenti con la concavità rivolta in avanti. I
denti formati tra un’arcata e l’altra presentano le punte rivolte in avanti, verso
i processi ciliari.
fig. 2.2. Sezione dell’occhio di embrione di ratto di 8 mm. C) Cristallino; I) porzione irido-ciliare della
retina; P) palpebre; R) retina. La freccia indica l’ora serrata. (30 X).
A un esame superficiale della morfologia retinica osserviamo due regioni di
particolare interesse, la macula lutea e la papilla ottica (fig. 2.3). La macula
lutea è un’area ellissoidale, di colorito giallastro, di circa 2-3 mm di larghezza
per 1-1,5 mm di altezza, localizzata a 2,5 cm lateralmente rispetto al punto di
emergenza del nervo ottico nella retina. La macula lutea si presenta rilevata
esternamente e con una depressione centrale, rotondeggiante e non molto
profonda: la fovea centrale. La fovea, che rappresenta la porzione retinica in
cui la visione è più distinta, è circondata in alto e in basso da grossi vasi
sanguigni, mentre nel suo interno sono presenti soltanto arteriole, venule e
capillari. La parte centrale della fovea, con un diametro di circa 0,5 mm,
appare, invece, completamente avascolarizzata.
La papilla ottica rappresenta il punto di emergenza del nervo ottico nella
retina (fig. 2.3). La papilla appare come un’area chiara, rotondeggiante, posta
3-4 mm medialmente e 1 mm inferiormente rispetto al polo posteriore
dell’occhio e misura 1,5 mm di diametro. Al centro della papilla è presente
una depressione in corrispondenza della quale emergono i vasi retinici. La
23
Capitolo 2 – La retina
papilla ottica è l’unica regione della porzione posteriore della retina a essere
insensibile alle stimolazioni luminose.
fig. 2.3. Papilla ottica e vasi sanguigni della retina dell’occhio sinistro visti dal davanti. Il cerchietto sulla
sinistra dell’immagine delimita la papilla ottica. 1) Macula lutea; 2) arteriola e venula maculari superiori;
3) arteriola e venula temporali retiniche superiori; 4) arteriola e venula nasali retiniche superiori; 5)
arteriola e venula mediali della retina; 6) arteriola e venula nasali retiniche inferiori; 7) arteriola e venula
temporali retiniche inferiori; 8) arteriola e venula maculari inferiori.
2.2 – Struttura e ultrastruttura
La parte ottica della retina è costituita da tre strati di cellule nervose
sostenute da cellule gliali specializzate e delimitata da due membrane
limitanti, quella esterna e quella interna. Strutturalmente, procedendo
24
Capitolo 2 – La retina
dall’esterno verso l’interno, si rileva la presenza dei seguenti dieci strati (fig.
2.4):
fig. 2.4. Rappresentazione della struttura della retina in sezione trasversale (a sx). A dx sono indicati i
neuroni dello schema di Cajal. I) Epitelio pigmentato; II) strato dei coni e dei bastoncelli; III) strato
granulare esterno; IV) strato plessiforme esterno; V) cellule orizzontali; VI) cellule bipolari; VII) cellule
amacrine; V), VI), VII) strato granulare interno; VIII) strato plessiforme interno; IX) strato delle cellule
gangliari; X) strato delle fibre nervose; a) membrana limitante esterna; b) membrana limitante interna;
c) fibra di Muller.
1. L’epitelio pigmentato. – Le cellule dell’epitelio pigmentato sono di
forma prismatica, con la base che poggia sulla coroidea e l’apice
diretto verso i fotorecettori, ma non in contatto. Le cellule epiteliali
sono saldate tra loro per mezzo di giunzioni serrate. Il nucleo è posto
alla base della cellula. Funzionalmente l’epitelio pigmentato è
deputato a fornire supporto metabolico e trofico (nutrizione dei tessuti)
ai fotorecettori. Le giunzioni serrate tra le cellule epiteliali adiacenti
costituiscono
un
dispositivo
morfofunzionale
particolarmente
importante che seleziona le sostanze che dal torrente circolatorio
possono
raggiungere
gli
strati
ematoretinica).
25
nervosi
della
retina
(barriera
Capitolo 2 – La retina
2. Strato dei fotorecettori. – I fotorecettori retinici sono cellule nervose
altamente
differenziate,
sensibili
alle
radiazioni
luminose.
Si
conoscono due tipi di recettori retinici, i bastoncelli e i coni.
Strutturalmente
entrambi
gli
elementi
cellulari
hanno
notevoli
somiglianze e si presentano allungati, con la porzione esterna rivolta
verso l’epitelio pigmentato e l’estremità opposta che guarda verso la
porzione interna della retina. Schematicamente i fotorecettori possono
essere suddivisi nelle seguenti porzioni: a) segmento esterno; b)
segmento interno; c) zona nucleare; d) regione sinaptica.
I bastoncelli. – Tutta la porzione visiva della retina, con l’eccezione
della porzione centrale della macula lutea e della papilla ottica,
contiene bastoncelli (fig. 2.5 (A)). Il segmento esterno dei bastoncelli è
costituito da lamelle disposte perpendicolarmente all’asse maggiore
del fotorecettore, di forma appiattita, sovrapposte l’una sull’altra,
avvolte e delimitate dalla membrana limitante del segmento esterno. Il
segmento esterno è congiunto a quello interno da un sottile stelo
provvisto di una struttura ciliforme modificata, di natura contrattile. Il
segmento interno viene comunemente suddiviso in due porzioni:
ellissoide e mioide. La zona nucleare contiene il corpo cellulare con il
nucleo del fotorecettore (piccolo e di forma ovale) ed è in rapporto con
il segmento interno e la regione sinaptica. La regione sinaptica (o
porzione basale del fotorecettore) presenta una forma allargata; a
livello di tale porzione del fotorecettore sono visibili bottoni (spine)
sinaptici attraverso i quali i bastoncelli si articolano con i neuroni
bipolari.
I coni. – I coni (fig. 2.5 (B)). Sono maggiormente addensati nella
macula lutea, e diminuiscono gradatamente di numero procedendo
verso le porzioni periferiche della retina. Diversamente dai bastoncelli
l’articolo esterno dei coni ha una forma conica con base allargata e
apice ristretto. Contrariamente alle lamelle dei bastoncelli, quelle
dell’articolo esterno dei coni non sono separate, ma, per la maggior
26
Capitolo 2 – La retina
parte, sono in continuità con la membrana limitante esterna
dell’articolo. Il segmento interno dei coni è più ampio di quello dei
bastoncelli; la zona nucleare presenta un nucleo di dimensioni
maggiori di quello dei bastoncelli, mentre i lembi citoplasmatici che la
uniscono con il segmento interno sono più corti di quelli dei
bastoncelli. La regione sinaptica è più ampia di quella dei bastoncelli
ed è caratterizzata dalla presenza di tre specializzazioni sinaptiche:
una, centrale, per l’articolazione con i neuroni bipolari, due laterali per
l’articolazione con i neuroni orizzontali.
(A)
(B)
fig. 2.5. (A) Rappresentazione schematica dell’organizzazione ultrastrutturale di un bastoncello. a) segmento esterno; b) stelo di congiunzione tra segmento esterno e corpo cellulare
del fotorecettore; c) ellissoide; d) mioide; e) lembo citoplasmatico di connessione tra segmento esterno e regione nucleare; f) lembo citoplasmatico di connessione tra regione nucleare e
regione sinaptica; g) regione sinaptica.(B) Rappresentazione schematica dell’organizzazione
ultrastrutturale di un cono. a) segmento esterno; b) segmento interno; c) lembo citoplasmatico
di connessione tra segmento esterno e regione nucleare; d) lembo citoplasmatico di connessione tra regione nucleare e regione sinaptica; e) regione sinaptica.
27
Capitolo 2 – La retina
3. Membrana limitante esterna. – La membrana limitante esterna, così
definita perché al microscopio ottico appare come una struttura
omogenea, contiene, invece, complessi giunzionali tra i fotorecettori e
le cellule gliali di sostegno (le cellule di Muller).
4. Strato granulare esterno. – Lo strato granulare esterno contiene i
nuclei dei fotorecettori le cui caratteristiche sono state descritte
precedentemente.
5. Strato plessiforme esterno. – Nello strato plessiforme esterno è stata
dimostrata l’esistenza di contatti sinaptici tra fotorecettori, neuroni
bipolari e neuroni orizzontali. In particolare, i bastoncelli entrano in
contatto prevalentemente con i neuroni bipolari, mentre i coni
prendono contatto sia con i neuroni bipolari che con quelli orizzontali.
6. Strato granulare interno. – Tale strato contiene i corpi cellulari dei
neuroni bipolari e di quelli orizzontali. I neuroni bipolari sono disposti
perpendicolarmente rispetto agli strati retinici; possiedono un corpo
cellulare allungato, uno o più dendriti, che prendono sinapsi con i
fotorecettori, e un solo assone che prende sinapsi con i neuroni
amacrini e con quelli gangliari. I neuroni orizzontali sono costituiti da
scarso citoplasma e da un’ampia arborizzazione dendritica (fig. 2.6
(A)). Nello strato granulare interno è posto il corpo cellulare delle
cellule di Muller (fig. 2.6 (B)) le quali hanno una forma cilindrica.
Funzionalmente possono essere considerate come elementi di
supporto trofico e meccanico ai neuroni retinici; le numerose
propaggini citoplasmatiche delle cellule di Muller si insinuano tra i
neuroni retinici.
7. Strato plessiforme interno. – Contiene i corpi cellulari dei neuroni
amacrini e rappresenta la regione del contatto sinaptico tra neuroni
bipolari, amacrini e gangliari. I neuroni amacrini sono cellule prive di
assone e provviste di numerosi dendriti. Si riconoscono due tipi di
neuroni amacrini: diffusi e stratificati. I dendriti dei neuroni diffusi sono
distribuiti a tutto lo strato plessiforme interno, mentre quelli dei neuroni
28
Capitolo 2 – La retina
stratificati seguono un percorso molto limitato e si mantengono in
prossimità delle cellule di origine.
(A)
(B)
fig. 2.6. (A) Rappresentazione schematica dei componenti di un neurone. Le frecce indicano
la
direzione
dell’impulso.
(B)
Rappresentazione
schematica
dell’organizzazione
ultrastrutturale di una cellula di Muller. n) Nucleo; fi) microfilamenti; bl) lamina basale
(costituisce la membrana limitante interna della retina).
29
Capitolo 2 – La retina
8. Strato delle cellule gangliari. – A livello di tale strato osserviamo il
corpo cellulare dei neuroni gangliari, grosse cellule nervose provviste
di un’abbondante arborizzazione dendritica e di un assone che si
mielinizza notevolmente quando abbandona lo strato: detti anche
multipolari,
i
neuroni
gangliari
costituiscono
l’ultimo
neurone
intraretinico delle vie ottiche (fig. 2.7). I neuroni gangliari sono di
grossa taglia e, in rapporto all’estensione della propria arborizzazione
dendritica, si suddividono in almeno tre gruppi: 1) neuroni gangliari
diffusi, che inviano i propri dendriti in tutto lo strato plessiforme interno;
2) piccoli neuroni gangliari, che posseggono un solo dendrite
principale dal quale si originano, a livello dello strato plessiforme
interno, ramificazioni dendritiche secondarie e terziarie; 3) neuroni
gangliari stratificati, i cui dendriti non abbandonano lo strato delle
cellule gangliari.
9. Strato delle fibre ottiche. – Gli assoni dei neuroni gangliari,
abbandonato lo strato delle cellule gangliari, si mielinizzano e seguono
un decorso radiale per convergere verso la papilla del nervo ottico da
dove, come nervo ottico, abbandoneranno il bulbo oculare (fig. 2.7). A
livello della macula lutea lo strato delle fibre ottiche è particolarmente
sottile (fig. 2.7): infatti le fibre ottiche seguono in decorso particolare,
circondando, piuttosto che attraversando, la macula lutea.
10. Membrana limitante interna. – La membrana limitante interna, che
rappresenta la porzione di confine tra retina e corpo vitreo, è costituita
dalla lamina basale delle cellule di Muller ed è rappresentata nella fig.
2.6 (B).
30
Capitolo 2 – La retina
fig. 2.7. Rappresentazione schematica delle vie ottiche. In alto a destra sono rappresentate le
cellule nervose retiniche: a) fotorecettori; b) neuroni bipolari; c) neuroni multipolari; d) fibre del
nervo ottico. Si osservi il parziale incrociamento delle vie ottiche in corrispondenza del
chiasma dei nervi ottici.
31
Capitolo 2 – La retina
2.3 – Istofisiologia
Il processo visivo a livello retinico avviene, fondamentalmente, in due fasi. I
raggi luminosi, attraversati i mezzi diottrici dell’occhio, sono proiettati sullo
strato fotosensibile (fotorecettori) della retina, dove determinano una
modificazione biochimica delle molecole di pigmento visivo dei fotorecettori.
A seguito di tale modificazione, si altera lo stato della membrana dei
fotorecettori, che depolarizzandosi o iperpolarizzandosi dà inizio alla
neurotrasmissione di impulsi nervosi lungo le vie ottiche.
I pigmenti visivi prodotti dalle cellule dell’epitelio pigmentato derivano dalla
molecola della Vit. A e, strutturalmente, sono una combinazione tra retinene
(derivato aldeidico della Vit. A) e glicoproteine idrofobiche: le opsine. I
bastoncelli contengono tutti un solo tipo di pigmento visivo, la rodopsina, che
viene attivata dalla luce crepuscolare. I coni, invece, posseggono tre diversi
tipi di pigmenti visivi, che vengono attivati, rispettivamente, dalla luce rossa,
blu e verde. Dunque, i bastoncelli sono i neuroni retinici della visione in
bianco e nero, i coni sovraintendono alla visione a colori.
fig. 2.8. Fovea centrale di retina di Macacus rhesus. 1) Sclera; 2) coroidea; 3) epitelio pigmentato; 4)
strato dei fotorecettori; 5) strato granulare esterno; 6) strato plessiforme esterno; 7) strato granulare
interno; 8) strato plessiforme interno; 9) strato delle cellule gangliari; 10) membrana limitante interna.
32
Capitolo 2 – La retina
Mentre i bastoncelli sono diffusi pressoché ovunque nella retina, i coni sono
addensati principalmente nella macula lutea e nella fovea centrale (fig. 2.8).
In quest’ultima zona, dal diametro di circa 500-550 µm, sono presenti almeno
quattro milioni di coni.
2.4 – Retinopatie vascolari: retinopatia diabetica
Nei paesi industrializzati, ove il 2-5% della popolazione è diabetica o è
destinata a divenire tale, la retinopatia diabetica è divenuta la prima causa di
cecità provocando oltre il 20% dei non vedenti. Ciò avviene perché l’insulina
e gli ipoglicemizzanti orali hanno prolungato la sopravvivenza dei diabetici,
ma per effetto della maggior durata della vita sono aumentate le
complicazioni: oculari, cardiache, renali, cerebrali, ecc.... La retinopatia è la
complicanza più temibile per la qualità della vita perché appare quando le
funzioni cardiache e renali sono ancora buone e diviene rapidamente
invalidante. Attualmente, circa la metà dei portatori di retinopatia diventano
subvedenti o ciechi entro 5-7 anni dalla scoperta della retinopatia, o per una
degenerazione maculare, o per una vitreopatia da neoformazione vasale,
mentre circa la metà dei subvedenti da un occhio lo diverrà anche dal
secondo nei 2 anni seguenti.
La frequenza della retinopatia diabetica varia a seconda dell’età nella quale
compare la malattia di base e a seconda della durata: in linea di massima i
giovani al di sotto dei 30 anni hanno maggiori probabilità di sviluppare la
retinopatia rispetto agli anziani nei quali però essa compare più
precocemente anche perché l’arteriosclerosi e l’ipertensione sono fattori
peggiorativi.
La durata del diabete è un dato incerto perché è sempre difficile stabilire la
data d’inizio della malattia e perché lo stato del compenso metabolico
influenza la comparsa della retinopatia: in linea di massima nei diabetici mal
compensati è sufficiente un periodo fra i 2 ed i 5 anni. Esistono rari casi di
resistenza individuale che dopo 20-30 anni di malattia non mostrano alcun
33
Capitolo 2 – La retina
segno oftalmoscopico o fluoroangiografico di malattia. La retinopatia
diabetica non compare o ha un decorso molto blando in occhi con importanti
alterazioni corioretiniche cicatriziali o atrofiche, come nelle grandi miopie
degenerative.
La patogenesi della retinopatia diabetica è un fenomeno complesso con
molte zone ancora in ombra, condizionato da fattori generali e locali. Fra i
fattori endocrini, a parte il deficit insulinico, la partecipazione dell’ipofisi(1) è il
più nitido. Il ruolo patogenetico dell’ormone somatotropo ipofisario (HGH)
sembra
confermato
dalla
comparsa
di
lesioni
capillari
retiniche
simildiabetiche negli animali da esperimento dopo trattamento con HGH e da
una nutrita serie di osservazioni cliniche nell’uomo che vanno dal
peggioramento della retinopatia umana dopo somministrazione di HGH, al
rilievo di alti livelli basali di ormone somatotropo nei diabetici retinopatici. Fra
i fattori locali, la lesione fondamentale è la microangiopatia diabetica, una
sequenza di fenomeni che dall’ipossia (=carenza di ossigenazione del
sangue) primitiva della retina giunge all’occlusione dei capillari retinici. Si
ritiene che l’ipossia retinica provochi inizialmente una vasodilatazione
funzionale dei capillari per supplire alle richieste metaboliche della retina.
L’accumulo di acido lattico e di anidride carbonica nel sangue accentua il
fenomeno di vasodilatazione al quale nel tempo si associano (o fanno
seguito) danni della parete capillare – l’alterazione delle cellule endoteliali,
l’ispessimento della membrana basale – che riducono la capacità di
autoregolazione dei capillari e provocano una riduzione del flusso ematico.
Sono contemporanee le alterazioni ematiche, l’aumento della viscosità
ematica e il rallentamento del flusso nel circolo capillare retinico.
NOTA (1): l’ipofisi
è una ghiandola endocrina situata alla base dell’encefalo e in una posizione
inferoventrale rispetto all’ipotalamo, al quale è collegata mediante un peduncolo. La sua forma è
ovoidale, schiacciata, e il suo asse maggiore è orientato trasversalmente. Le dimensioni medie
nell’adulto sono le seguenti: diametro trasversale 15 mm, diametro verticale 5 mm, diametro sagittale 7
mm. Nella specie umana pesa circa 0,5 g. E’ uno degli organi più importanti dell’organismo perché
produce numerosi ormoni mediante i quali controlla l’attività di altre ghiandole endocrine; inoltre essa
immagazzina e immette in circolo neurormoni di provenienza ipotalamica.
34
Capitolo 2 – La retina
L’occlusione del capillare retinico è la naturale evoluzione delle modifiche
parietali
ed
ematiche.
Da
essa
prendono
origine,
in
chiave
di
ischemia(=insufficiente afflusso di sangue arterioso)-ipossia, tutte le
alterazioni retiniche, microaneurismi (=cedimento, dilatazione patologica di
un tratto di parete arteriosa), essudati (=liquido che filtra attraverso le pareti
dei capillari sanguigni di un tessuto infiammato) duri e molli, edema
(=accumulo anomalo di liquido negli spazi interstiziali dei tessuti e nelle
cavità del corpo umano), emorragie, neovascolarizzazione, anastomosi
(=comunicazione tra due o più canali corporei) artero-venose, che nelle più
disparate combinazioni ed associazioni compongono i quadri clinici della
retinopatia diabetica (fig. 2.9).
fig. 2.9. Retinopatia diabetica. Fase non proliferativa. Evidenti i microaneurismi, le emorragie, gli
essudati retinici e le alterazioni vasali.
35
Capitolo 2 – La retina
Lo studio clinico della retinopatia diabetica richiede la biomicroscopia e la
fluoroangiografia che permettono di visualizzare le alterazioni anatomiche e
funzionali, edema maculare, microaneurismi, aree di occlusione capillare,
aree di permeabilità capillare, che non sono visibili all’oftalmoscopia.
Per la variabilità dei decorsi e per il polimorfismo dei quadri clinici la
retinopatia diabetica sfugge a tentativi organici, ma relativamente semplici, di
classificazione. Nella tendenza attuale prevalente viene distinta in due forme
o stadi, non obbligatoriamente evoluti l’uno nell’altro, la retinopatia semplice
e la retinopatia proliferante.
La retinopatia semplice o non proliferante corrisponde allo stadio
microangiopatico della malattia. Allo stadio iniziale è caratterizzata dalla
presenza di numerosi microaneurismi, localizzati soprattutto al polo
posteriore, e da piccole aree ischemiche (fig. 2.10).
fig. 2.10. Retinopatia diabetica non proliferativa. L’esame fluoroangiografico evidenza numerosi
microaneurismi e l’edema maculare.
36
Capitolo 2 – La retina
Con il passare del tempo aumentano le aree focali di chiusura capillare e
l’ipossia retinica. Compaiono le alterazioni venose – dilatazioni, tortuosità --,
le emorragie intraretiniche e più raramente epiretiniche, gli essudati duri e
l’edema retinico quando le aree di aumentata permeabilità capillare sono
divenute consistenti. Nello stadio avanzato compaiono gli essudati molli
(aree di rigonfiamento e necrosi neuronale intraretiniche, espressione di una
marcata ipossia retinica), le anastomosi artero-venose e, talvolta, la
neoformazione vasale epiretinica ed epipapillare, che iniziano lo stadio
proliferante. Nei diabetici giovani per lo più prevalgono le componenti
emorragiche e gli essudati molli, negli anziani invece gli essudati duri, le
microemorragie intraretiniche, l’edema e la degenerazione maculare. In linea
di massima, se non vi sono rapide alterazioni maculari, la visione centrale
rimane abbastanza conservata anche per periodi abbastanza lunghi ma
tende comunque a decadere ad acutezze mediocri. La cecità completa è rara
nella retinopatia semplice a patto che non evolva verso la forma proliferante.
La retinopatia proliferante è lo stadio terminale del 10-15% delle retinopatie
semplici ma può raramente esordire già come tale. E’ caratterizzata da una
neovascolarizzazione epiretinica che di solito inizia nella media periferia
peripapillare per poi farsi epipapillare ma può esordire direttamente sulla
papilla ottica allargandosi poi sulla superficie retinica. Lo stimolo alla
neovascolarizzazione è sostenuto dalla ischemia-ipossia.
Successivamente si ha una partecipazione al processo del corpo vitreo che
contrae aderenze (=connessioni patologiche che uniscono tra loro due
organi, o parti di organo, primi vicini tra loro ma non uniti, spesso in
conseguenza di un processo infiammatorio) con i vasi neoformati. Inizia così
lo stato ialopatico nel quale i vasi neoformati penetrano nel vitreo dapprima
liberi poi rivestiti da un tessuto fibroso di tipo guainale che li rende simili a
cordoni che talora sanguinano nel vitreo. La coartazione (=costrizione,
restringimento) ed il distacco posteriore del vitreo provocano poi una
attrazione in avanti dei vasi neoformati e della retina, aprendo la via a
massicce emorragie intravitreali. Le emorragie provocano immediatamente
37
Capitolo 2 – La retina
una brusca caduta della visione: tendono a riassorbirsi lentamente
soprattutto nei giovani, diventano con facilità definitive specie negli anziani.
Tali emorragie stimolano la trasformazione fibroplastica del vitreo, e
successivamente si ha un distacco retinico secondario da trazione,
localizzato al polo posteriore o diffuso, visibile quando l’intorbidamento
vitreale diminuisce: la visione a questo punto è definitivamente perduta.
38
Capitolo 3– Tecniche di clustering
Capitolo 3
TECNICHE DI CLUSTERING
3.1- Introduzione
In questo capitolo vengono analizzati e descritti i concetti alla base della
logica Fuzzy e della Statistical Learning Theory nonché l’implementazione di
due tipici classificatori: FCM (Fuzzy c-Means) e quello basato su SVM
(Support Vector Machine). In particolare sarà analizzato un classificatore
SVM, da me usato per classificare, basandomi sul colore, sia gli essudati
diabetici sia il disco ottico (hanno più o meno lo stesso colore) rispetto al
background.
Dato un universo di dati finito X={x1, ..., xn}, lo scopo della clusterizzazione è
quello di individuare una partizione di X in c cluster (sottoinsiemi di X) con
2≤c≤n.
La condizione c=1 comporterebbe il rifiuto dell’ipotesi di esistenza di possibili
cluster tra i dati. La condizione c=n corrisponde alla situazione, poco
significativa, in cui ogni singolo elemento di X forma un cluster.
Volendo noi un classificatore binario varrà c=2.
3.2- Sistemi in logica fuzzy
La fig. 3.1 illustra un’architettura di sistema in logica fuzzy (SLF) largamente
utilizzata nell’ambito del settore dei controlli automatici e della processazione
dei segnali.
39
Capitolo 3– Tecniche di clustering
fig. 3.1. Sistema Logico Fuzzy (SLF).
Un SLF mappa ingressi numerici in uscite numeriche. Contiene quattro
componenti principali: il sistema di regole, il fuzzificatore, il motore
inferenziale ed il defuzzificatore. Una volta che si sono fissate le regole, la
mappatura ingresso-uscita può essere espressa quantitativamente come
y=f(x) dove x è il vettore degli ingressi e y è l’uscita scalare. Tale mappatura
non deve essere necessariamente lineare. L’obbiettivo è ora quello di
ottenere una formula esplicita per questa mappatura tra x e y.
Le regole o come sarà poi spiegato, le regole ingegneristiche sono espresse
mediante una collezione di asserzioni IF-THEN del tipo “IF u1 è alto e u2 è
medio THEN v è medio-alto”. Questa enunciazione evidenzia come sia
fondamentale la conoscenza di:
1.
Variabili linguistiche, invece che valori numerici di una certa variabile
(es. molto freddo confrontato con una temperatura di 0°C).
2.
Un metodo di quantificazione di variabili linguistiche (es. u1 potrebbe
avere un numero finito di termini linguistici ad esso associati: basso, alto,
medio). Ogni termine linguistico è associato ad un insieme fuzzy. Dato un
ingresso numerico, il valore assunto dalla funzione di appartenenza
40
Capitolo 3– Tecniche di clustering
dell’insieme fuzzy stabilisce quanto sia attivato il termine linguistico ad esso
associato.
3.
Connessioni logiche tra variabili linguistiche (and, or,...).
4.
Metodi di valutazione di implicazioni del tipo “IF A THEN B” e metodi
di estrapolazione di un risultato numerico nella situazione di attivazione di più
regole.
Il fuzzificatore mappa i valori numerici negli insiemi fuzzy: questo si rende
necessario perché le regole sono attivate in termini di variabili linguistiche
che hanno degli insiemi fuzzy associati ad esse.
Il motore inferenziale mappa insiemi fuzzy su insiemi fuzzy. Come gli uomini
usano diversi tipi di procedure inferenziali per capire concetti o prendere
decisioni, così esistono differenti procedure inferenziali fuzzy, ma solo poche
sono usate nelle applicazioni ingegneristiche.
Il defuzzificatore mappa le uscite fuzzy in valori numerici.
3.2.1- Introduzione alla logica fuzzy
La usuale logica bivalente (di tipo Cartesiano) si basa su una visione del
mondo in cui tutto è o bianco o nero senza altre possibilità. Il mondo descritto
dalla logica fuzzy, invece, è ricco di sfumature ed il bianco ed il nero non
sono altro che due casi particolari.
Il linguaggio naturale abbonda di termini e concetti sfumati ed imprecisi, del
tipo “Ulisse è alto”, oppure “Oggi è molto freddo”.
Queste proposizioni sono difficili da tradurre in un linguaggio più preciso
senza perdere parte del valore semantico, per esempio “Ulisse è alto 185
cm” non asserisce precisamente che è alto, d’altro canto la frase “Ulisse ha
una deviazione standard di 1.3 cm dall’altezza media dei maschi della sua
età e del suo contesto sociale” non è immediatamente comprensibile ed irta
di difficoltà: un uomo con deviazione standard 1.9 cm è alto? Come si
definisce l’appartenenza di Ulisse all’insieme delle persone alte?
41
Capitolo 3– Tecniche di clustering
Si può essere d’accordo sul fatto che la vaghezza è un ostacolo alla
chiarezza, ma solo i tradizionalisti più ostinati possono sostenere che non si
perderebbe ricchezza di significato togliendo dal linguaggio asserzioni del
tipo “Ulisse è alto”. Eppure è ciò che succede quando si tenta di tradurre il
linguaggio umano nella logica classica.
Questa perdita non si avverte nella costruzione di un programma contabile,
ma quando si vogliono effettuare delle ricerche basate sul linguaggio
naturale: nel progettare ad esempio un programma di diagnostica medica, la
decisione su una particolare dose di medicinale è legata alla relativa
robustezza del paziente ed al suo stato patologico, piuttosto che ad un rigido
rapporto età/altezza/peso. Ben diverso sarà il problema da me trattato, gli
essudati diabetici, che o lo sono oppure non lo sono (perciò, come si vedrà
nel capitolo seguente, la mia scelta di classificatore è cascata su quello
basato sulle SVM).
I sistemi fuzzy affrontano i dati e la loro manipolazione con maggiore
flessibilità rispetto ai sistemi tradizionali. La logica bivalente (o classica) si
occupa solo di ciò che è completamente vero e di conseguenza di ciò che è
completamente falso, la logica fuzzy invece estende il suo interesse anche a
ciò che non è completamente vero, a ciò che è verosimile od incerto, in una
parola a tutto ciò che è fuzzy (sfumato).
3.2.2- Concetti di base
Nel 1965 Lofti A. Zadeh pubblicò “Fuzzy Sets” [5]: in tale articolo egli
descrisse la matematica degli insiemi fuzzy e da questa derivò la logica
fuzzy. La sua teoria proponeva che la funzione di appartenenza (o del vero e
falso) operasse nell’intero campo reale da 0 a 1 senza limitarsi ai valori
estremi, concetto su cui si fonda invece la logica classica.
La nozione centrale dei sistemi fuzzy considera i valori di verità (logica fuzzy)
o di appartenenza (insiemi fuzzy) estesi a tutto il campo reale [0,1], con 0 che
rappresenta l’assoluta falsità ed 1 l’assoluta verità.
42
Capitolo 3– Tecniche di clustering
Consideriamo per esempio la proposizione “Ulisse è vecchio”: se Ulisse ha
80 anni possiamo considerare di assegnare alla proposizione un valore di
verità di 0.8. La proposizione si può anche tradurre, nella terminologia dei
fuzzy set, con “Ulisse appartiene in una certa misura (0.8) all’insieme delle
persone vecchie”, o, in forma simbolica,
mVECCHIO(Ulisse) = 0.8
dove m è la funzione di appartenenza nell’insieme fuzzy degli uomini vecchi:
ciò è in netta contraddizione con la logica bivalente dove “o Ulisse è vecchio
o è non-vecchio” e non vi è una terza possibilità. E’ importante sottolineare
anche il rapporto che esiste tra sistemi fuzzy e probabilità: ambedue operano
sullo stesso campo reale ed in prima istanza ambedue hanno gli stessi valori;
ma esiste una sostanziale differenza, cioè l’approccio probabilistico
considera la proposizione “vi è una probabilità dell’80% che Ulisse sia
vecchio”, concludendo comunque che Ulisse o è vecchio o è non-vecchio,
mentre la semantica fuzzy, al contrario, afferma che Ulisse è più vecchio che
non-vecchio e che comunque appartiene, in una certa misura, ad ambedue
gli insiemi.
3.2.3- Insiemi fuzzy
Mentre in un insieme bivalente X l’appartenenza è descritta da un indicatore
I(x) che può assumere soltanto due valori (l’elemento x appartiene (1) o no
(0) all’insieme X), in un insieme fuzzy la stessa è descritta da una funzione di
appartenenza m(x) il cui valore va da 0 a 1 e può assumere ogni valore
intermedio: 0≤m(x)≤1. Già si intravede la natura estensiva della teoria degli
insiemi fuzzy che non rinnega totalmente la teoria degli insiemi bivalenti, ma
la comprende come proprio caso particolare.
Poiché un certo elemento x appartiene all’insieme X in una certa misura, ne
consegue che lo stesso non appartiene all’insieme in una certa misura.
L’appartenenza e la non-appartenenza all’insieme può non rappresentare
l’insieme vuoto (come invece sostiene la teoria degli insiemi bivalenti); alla
43
Capitolo 3– Tecniche di clustering
stessa maniera l’appartenenza o la non-appartenenza all’insieme può non
rappresentare l’insieme universo.
Un insieme fuzzy F definito in un universo del discorso U può essere
rappresentato da un insieme di coppie x e funzione di appartenenza:
F={(x,m(x))|x∈U}.
3.2.3.1- Variabili linguistiche
Sia u una variabile linguistica (per esempio una temperatura). Il valore
numerico della variabile linguistica u si indica simbolicamente con x, dove
x∈U. Una variabile linguistica viene decomposta in una serie di termini T(u)
che coprono tutto l’universo del discorso.
Ad ogni termine corrisponde un insieme fuzzy ed una funzione di
appartenenza. Noto il valore numerico x è possibile ricavare il grado di
appartenenza a ciascun insieme e di conseguenza al termine della variabile
linguistica ad esso associato.
Esempio: sia temperatura (u) una varibile linguistica. Tale variabile può
essere decomposta in una serie di termini T(temperatura)={molto freddo,
freddo, okay, caldo, molto caldo}, dove ciascun termine è caratterizzato da
un insieme fuzzy nell’universo del discorso U=[-10°C,45°C].
Si potrebbe interpretare molto freddo come una temperatura al di sotto dei
0°C, freddo come una temperatura intorno ai 8°C, okay una temperatura
intorno ai 20°C, caldo una temperatura intorno ai 30°C e molto caldo una
temperatura superiore ai 40°C (vedi fig.3.2).
44
Capitolo 3– Tecniche di clustering
fig.3.2. Funzione di appartenenza per temperatura.
Sia x=12°C, questo valore numerico rientra negli insiemi fuzzy temperatura
freddo e temperatura okay, con differenti gradi di appartenenza; questo
comporta che i due termini linguistici ad essi associati vengono “attivati”
(dall’ingresso x) di una quantità proporzionale al grado di appartenenza. Se
si disponesse di un SLF che sfrutta regole del tipo 1) IF temperatura freddo
THEN... 2) IF temperatura okay THEN... sollecitando con x=12°C verrebbero
attivate entrambe le regole(in base alla funzione di appartenenza): in base ad
esse il SLF dovrebbe essere in grado di fornire un’uscita adeguata.
3.2.3.2- Operazioni su insiemi ordinari ed insiemi fuzzy
Per introdurre le operazioni sugli insiemi fuzzy, conviene definire prima quelle
sugli insiemi ordinari facendo uso della funzione appartenenza.
Siano A e B due insiemi ordinari quindi:
mA(x) = 1 se x∈A ∧ mA(x) = 0 se x∉A;
mB(x) = 1 se x∈B ∧ mB(x) = 0 se x∉B;
si noti che, parlando di insiemi ordinari, le funzioni di appartenenza possono
valere solo 0 oppure 1.
45
Capitolo 3– Tecniche di clustering
L’unione di A e B, indicata con A∪B, contiene tutti gli elementi di A e tutti
quelli di B, quindi mA∪B(x)=1 se x∈A ∨ se x∈B; l’intersezione di A e B indicata
con A∩B contiene tutti gli elementi che sono simultaneamente in A e B,
quindi mA∩B(x)=1
se x∈A ∧ se x∈B. Sia Ā il complemento di A, esso
contiene tutti gli elementi che non appartengono ad A cioè mĀ(x)=1 se x∉A ∧
mĀ(x)=0 se x∈A.
Da quanto sopra si può verificare che:
A∪B⇒ mA∪B(x)=max[mA(x), mB(x)]
(1a)
A∩B⇒ mA∩B(x)=min[mA(x), mB(x)]
(1b)
Ā⇒ mĀ(x)=1- mA(x)
(1c)
Mentre un insieme ordinario può essere definito enumerando tutti gli elementi
che lo compongono, oppure dando una descrizione dei suoi elementi o
tramite la funzione di appartenenza, un insieme fuzzy è definito soltanto
tramite quest’ultima. Intersezione, unione e complemento sono perciò così
definiti (formule motivate dalle (1a), (1b), (1c)):
mA∪B(x)=max[mA(x), mB(x)]
(2a)
mA∩B(x)=min[mA(x), mB(x)]
(2b)
mĀ(x)=1- mA(x)
(2c)
Si noti che in questa definizione non si pone alcun vincolo alle funzioni di
appartenenza; esse possono assumere qualsiasi valore compreso tra 0 ed 1.
Una conseguenza di questo è che le leggi aristoteliche:
Legge di non Contraddizione: A∪Ā=U
Legge del Terzo Escluso:
A∩Ā=∅
46
Capitolo 3– Tecniche di clustering
non sono rispettate perché considerando un x: mA(x)=0.5 allora mĀ(x)=1mA(x)=0.5 e questo è in contraddizione con le due leggi aristoteliche.
Il max e il min non sono gli unici operatori che si possono usare per
modellare l’unione e l’intersezione fuzzy; lo stesso Zadeh nella sua prima
pubblicazione usò operatori diversi:
Unione fuzzy (massimo e somma algebrica)
mA∪B(x)=mA(x)+mB(x)- mA(x)mB(x)
(3a)
Intersezione fuzzy (minimo e prodotto algebrico)
mA∩B(x)=mA(x)mB(x)
(3b)
Successivamente furono introdotti altri operatori, definiti su base assiomatica,
l’operatore t-conorma per l’unione fuzzy, noto anche come s-norma (indicato
simbolicamente
⊕)
con
simbolicamente con
e
la
t-norma
per
l’intersezione
(indicata
):
mA∪B(x)=mA(x)⊕mB(x)
(4a)
mA∩B(x)=mA(x) mB(x)
(4b)
Confrontando le (2) e (3) con le (4) si osserva che:
•
max e somma algebrica sono t-conorme ⊕
•
min e prodotto algebrico sono t-norme
3.2.4- Relazioni e composizioni nello stesso spazio prodotto
Mentre una relazione su insiemi ordinari rappresenta la presenza o l’assenza
di associazioni, interazioni o interconnessione tra elementi di due o più
insiemi, nel campo fuzzy ne rappresenta il grado di presenza o assenza.
Le relazioni fuzzy giocano un ruolo fondamentale nei sistemi logici fuzzy.
47
Capitolo 3– Tecniche di clustering
Siano U e V due universi del discorso. Una relazione fuzzy, R(U,V) è un
sottoinsieme fuzzy nello spazio prodotto UxV ed è caratterizzato dalla
funzione di appartenenza mR(x,y) dove x∈U e y∈V, cioè R(U,V)={((x,y),
mR(x,y))|(x,y)∈UxV}.
Siano R(x,y) ed S(x,y) (R e S per brevità) due relazioni fuzzy nello stesso
spazio prodotto UxV. L’intersezione e l’unione di R ed S che sono
composizioni delle due relazioni sono definite come:
mR∪S(x,y)=mR(x,y) mS(x,y)
(5a)
mR∩S(x,y)=mR(x,y)⊕mS(x,y)
(5b)
3.2.5- Relazioni e composizioni in spazi prodotto differenti
Siano P(U,V) e Q(V,W) due relazioni fuzzy definite su due spazi prodotto
differenti, la composizione di queste due relazioni è così indicata:
R(U,W)=P(U,V)°Q(V,W)
(6)
ed è definita su un sottoinsieme di R(U,W) di UxW tale che (x,w)∈R se e solo
se ∃ almeno un y∈V|(x,y)∈P ∧ (y,w)∈Q.
Associate con R ed S ci sono le rispettive funzioni di appartenenza, le quali
permettono di introdurre la formula matematica per determinare mR°S(x,y).
Prima di introdurla vale la pena di dare la definizione per insiemi ordinari.
Definizione: La composizione max-min di relazioni P(U,V) e Q(V,W) è definita
per mezzo della funzione di appartenenza mP°Q(x,z) dove
mP°Q(x,z)={(x,z),maxy[min(mP(x,y),mQ(y,z))]}
(7)
La composizione max-prodotto di relazioni P(U,V) e Q(V,W) è definita per
mezzo della funzione di appartenenza mPxQ(x,z) dove
48
Capitolo 3– Tecniche di clustering
mPxQ(x,z)={(x,z),maxy[mP(x,y),mQ(y,z)]}
(8)
Dopo aver introdotto la definizione per gli insiemi ordinari si consideri la
definizione per gli insiemi fuzzy, la composizione sup-star di R ed S è definita
come:
mR°S(x,z)=supy∈V[mR(x,y) mS(y,z)]
(9)
che è motivata dalle (7), (8) e (4).
Si potrebbe osservare che, a differenza del caso ordinario nel quale l’uso
della (7) o della (8) porta agli stessi risultati, lo stesso non vale nel caso
fuzzy. Questa è la maggiore differenza tra composizioni fuzzy e composizioni
ordinarie.
Consideriamo adesso il caso particolare in cui la relazione R sia un insieme
fuzzy, allora mR(x,y) diventa mR(x). Quindi V=U e si ha:
supy∈V[mR(x,y) mS(y,z)]= supx∈U[mR(x) mS(x,z)] che è funzione solo di z;
questo ci permette di semplificare la notazione mR°S(x,z) in mR°S(z), così
quando R è un insieme fuzzy:
mR°S(z)=supx∈U[mR(x) mS(x,z)]
(10)
3.2.6- Logica fuzzy
La logica proposizionale tradizionale introduce la regola inferenziale Modus
Ponens:
Modus Ponens—Premessa 1: “x è A”; Premessa 2: “IF x è A THEN y è B”;
Conseguenza: “y è B”. Il Modus Ponens è associato con l’implicazione “A
implica B” [A→B]. In termini di proposizioni p e q, il Modus Ponens è
espresso come (p∧(p→q))→q.
Estendendo i concetti della logica tradizionale alla logica fuzzy, l’asserzione
“IF u è A, THEN v è B”, dove u∈U e v∈V, ha una funzione di appartenenza
49
Capitolo 3– Tecniche di clustering
mA→B(x,y) ∈[0,1] che misura il grado di verità della relazione di implicazione
tra x e y e che può essere espressa così:
mA→B(x,y)=1-min[mA(x),1-mB(y)]
mA→B(x,y)=max[1-mA(x),mB(y)].
Nella logica fuzzy il Modus Ponens è esteso al Modus Ponens
Generalizzato :
Modus Ponens Generalizzato—Premessa 1: “u è A*”; Premessa 2: “IF u è A
THEN v è B”; Conseguenza: “v è B*”.
Confrontando i due enunciati si vede come nel secondo caso l’insieme fuzzy
A* non debba essere necessariamente uguale all’antecedente della regola
IF-THEN (l’insieme fuzzy A) e come l’insieme fuzzy B* non debba essere
uguale al conseguente B.
Esempio: si consideri la regola “IF un uomo è basso, THEN non sarà mai un
bravo giocatore professionista di basket”. Qui A è l’insieme uomini bassi e
l’insieme fuzzy B è bravi giocatori professionisti di basket. Prendiamo in
esame una Premessa 1 in cui A* è la variabile linguistica uomini sotto 1.80 m
di altezza: quindi A(A*, ma A è simile ad A*. Si può allora dedurre che B*
sarà un insieme fuzzy simile a B, ma comunque diverso. Per esempio, se lo
volessimo etichettare con un attributo linguistico potrebbe essere l’insieme
scarsi giocatori professionisti di basket.
Riepilogando, nella logica fuzzy la regola IF-THEN è attivata quando c’è un
grado di similarità non nullo tra la premessa e l’antecedente della regola e il
risultato dell’attivazione è una conseguenza che ha un grado di similarità non
nulla con il conseguente della regola.
Quindi il Modus Ponens Generalizzato non è altro che una composizione
fuzzy dove la prima relazione fuzzy è sostituita dall’insieme fuzzy A*. Allora la
mB*(y) si ottiene dalla formula:
mB*(y)=supx∈U[mA*(x)
mA→B(x,y)].
50
Capitolo 3– Tecniche di clustering
3.2.7- Ancora sui Sistemi Logici Fuzzy
A questo punto si possono discutere più approfonditamente i quattro
elementi che compongono il SLF di fig.3.1; lo scopo di questa sezione è
quello di fornire le formule matematiche che legano gli ingressi all’uscita del
sistema.
3.2.7.A- Regole
Le regole fuzzy sono una collezione di regole del tipo IF-THEN che possono
essere espresse così:
R(l):
IF u1 è Fl1 e u2 è Fl2 e ... up è Flp
THEN v è Gl
(11)
dove l=1,2,...,M, Fli e Gl sono insiemi fuzzy in Ui⊂R e V⊂R (R è l’insieme dei
numeri reali), u=col(u1, u2, ... ,up)∈U1xU2x ... xUp e v∈V. u e v sono variabili
linguistiche ed i loro valori numerici sono rispettivamente x∈U e y∈V. Questa
regola presenta un antecedente multiplo che equivale a considerare un
sistema a più ingressi. Se il numero degli ingressi è p ed n è il numero di
termini linguistici associati ad ognuno di essi, il numero di regole necessarie
sarà sempre minore o uguale al prodotto pn. Nel caso di numero massimo di
regole, l’antecedente multiplo è una combinazione logica di ∧ delle singole
variabili linguistiche e la (11) ne è la spiegazione formale. Nei casi in cui il
numero di regole è minore si parla di insieme di regole incompleto, ma ci si
può sempre ricondurre formalmente alla (11).
3.2.7.B- Motore inferenziale fuzzy
Il motore inferenziale fuzzy sfrutta i principi della logica fuzzy per combinare
le regole IF-THEN al fine di ottenere una mappatura dall’insieme fuzzy di
ingresso U=U1xU2x ... xUp nell’insieme fuzzy di uscita V. Ciascuna regola
viene interpretata come un’implicazione fuzzy. Facendo riferimento alla (11),
sia Fl1xFl2x ... xFlp=A e Gl=B allora R(l): Fl1xFl2x ... xFlp→Gl=A→B.
51
Capitolo 3– Tecniche di clustering
La mappatura del motore inferenziale avviene per mezzo dalla mA→B(x,y)
dove adesso x è un vettore perchè le regole hanno un antecedente multiplo.
Quindi:
mR(l)(x,y)= mA→B(x,y)=mF1(l)(x1) ... mFp(l)(xp) mG(l)(y)
(12)
Si è implicitamente assunto che gli antecedenti siano connessi tramite
operatori AND (∧), da qui l’uso della t-norma.
L’input p-dimensionale per R(l) si ottiene dall’insieme fuzzy Ax la cui funzione
di appartenenza è data da:
mAx(x)=mx1(x1) ... mxp(xp)
(13)
dove Xk⊂Uk (k=1,2,...,p) sono insiemi fuzzy che descrivono l’input.
Ogni regola R(l) determina un insieme fuzzy di uscita B(l)=Ax°R(l) la cui
funzione di appartenenza risulta essere:
mB(l)(y)=mAx°R(l)=supx∈U[mAx(x),mA→B(x,y)]
(14)
Quest’equazione è la relazione ingresso-uscita tra l’insieme fuzzy che attiva
una regola del motore inferenziale e l’insieme fuzzy di uscita del motore
stesso (vedi fig.3.1).
Ancora non è stato spiegato come ottenere un unico valore numerico di
uscita: questo processo avviene tramite la cosiddetta defuzzificazione di cui
si parlerà nel seguito. In realtà il processo di defuzzificazione avviene a
partire dalla funzione di appartenenza di un insieme fuzzy, mentre finora si è
solamente individuato un metodo per ottenere l’insieme fuzzy di uscita di una
regola. In un SLF le regole sono molte per cui l’eccitazione di un ingresso
può dar vita a più insiemi fuzzy (e quindi a molte funzioni di appartenenza) in
uscita
dal
motore
inferenziale.
Il passo successivo consiste nella
connessione delle regole. L’insieme fuzzy in uscita (in fig.3.1 prima del
blocco di defuzzificazione) B=Ax°[R(1), R(2),...,R(M)] si ottiene combinando i Bl
52
Capitolo 3– Tecniche di clustering
e quindi le funzioni membro ad esso associate mAx°R(l)(y) (questo processo è
noto come connessione delle regole).
3.2.7.C- Fuzzificazione
Il fuzzificatore mappa un punto x=col(x1,...,xn)∈U in un insieme fuzzy A* in U.
Il fuzzificatore più usato è il singleton fuzzifier:
mA*(x)=1 se x=x’;
mA*(x)=0 altrimenti;
L’uso del singleton elimina la presenza dell’operatore sup e semplifica molto i
meccanismi inferenziali:
mB(l)(y)=mAx°R(l)(y)=supx∈Ax[mAx(x),mA→B(x,y)]=mA→B(x’,y)
Ciò ha fatto la fortuna di questo fuzzificatore.
3.2.7.D- Defuzzificazione
E’ il processo inverso al precedente (la defuzzificazione), dato un insieme
fuzzy restituisce un valore numerico rappresentativo di quell’insieme.
Esistono molti criteri di defuzzificazione, ma non esiste nessun fondamento
scientifico per essi. Dal punto di vista ingegneristico un criterio di scelta può
consistere nella semplicità computazionale. Usando questo criterio i
defuzzificatori candidati sono:
Maximum Defuzzificator
Esaminando l’insieme fuzzy B viene scelto come uscita il valore di y per il
quale mB(y) è massima. Il difetto di questo metodo è che non tiene conto
della distribuzione della funzione di appartenenza.
Mean of Maxima Defuzzifier
Vengono trovati i massimi locali di mB(y) e l’uscita viene calcolata come
media di essi. Quando il massimo è soltanto uno, questo defuzzificatore
53
Capitolo 3– Tecniche di clustering
coincide con il Maximum Defuzzificator (ereditando i suoi difetti). Altro difetto
grave è che la media dei massimi potrebbe fornire un valore che cade in una
zona in cui la funzione di appartenenza è nulla e questo non ha alcun senso
da un punto di vista ingegneristico.
Centroid Defuzzifier
Il valore numerico scelto per l’uscita viene calcolato come “centro di massa”
dell’insieme fuzzy. Il centroide ŷ viene definito in termini matematici come
l’integrale sul supporto S di mB(y):
ŷ=[∫ ymB(y) dy]/[∫mB(y)]
3.2.8- Assegnazione dei valori alle funzioni di appartenenza
Dopo aver visto come realizzare un SLF rimane un problema da affrontare:
definire le funzioni di appartenenza degli insiemi fuzzy associati alle variabili
linguistiche.
In letteratura esistono molti metodi di assegnazione delle funzioni di
appartenenza; nel seguito sono elencati quelli più noti:
•
Metodo intuitivo
•
Metodo inferenziale
•
Reti neurali
•
Algoritmi genetici
•
Metodo induttivo
•
Metodi di partizione
3.3- Fuzzy C-Means (FCM)
Per sviluppare i metodi di classificazione fuzzy è necessario definire il
concetto di famiglia di insiemi fuzzy {Ai, i=1,2,...,c} come una c-partizione
fuzzy dell’universo del discorso X (che è il nostro insieme delle osservazioni).
Adesso ogni elemento di X può avere una parziale appartenenza a più di un
cluster. Si usa questa notazione:
54
Capitolo 3– Tecniche di clustering
uik=mAi(xk)∈[0,1]
(15)
con il vincolo
∑ci=1 uik=1
∀k=1,...,n
(16)
Anche adesso si impone l’assenza di classi vuote o coincidenti con l’insieme
universo X={x1,...,xn}; ciò è espresso mediante la (17)
0< ∑ci=1 uik <n
(17)
Poiché un elemento di X può avere una parziale appartenenza a più di un
cluster, si ha:
uik ∧ ujk ≠ 0
∀k
(18)
∀k
(19)
ed inoltre valgono
∨ci=1 mAi(xk) = 1
0<∑nk=1 mAi(xk)<n
∀i
(20)
Possiamo adesso definire lo spazio delle c-partizioni fuzzy in termini di
matrici di appartenenza:
Mfc={ U | uik∈[0,1], ∑ci=1 uik=1; 0<∑nk=1 uik<n }
(21)
Ogni matrice U definisce una partizione fuzzy nell’universo X dei dati.
55
Capitolo 3– Tecniche di clustering
Il principio su cui si basa lo FCM è la minimizzazione di un funzionale Jm,
legato alla somma degli errori quadratici medi, mediante un processo
iterativo che si arresta solo al di sotto di una certa soglia. La forma di questa
funzione criterio Jm è la seguente:
J(U;v)= ∑nk=1∑ci=1(uik)m’(dik)2
(22)
dove v=(v1,...,vc)∈Rcxm e vi∈Rm è il vettore del centro dell’i-esimo cluster.
Mentre
dik=⎟⎜xk-vi⎟⎜
(23)
è una distanza qualsiasi che soddisfa queste tre condizioni:
d12=d(x1,x2)
(24a)
d12=0⇒x1=x2
(24b)
d12=d21
(24c)
Il parametro m’ viene chiamato parametro fuzzificatore o esponente fuzzy.
Nella definizione di Dunn vale 2 e successivamente è stato esteso
all’intervallo [1,∞).
Questo parametro determina il grado di “sfumatura” che deve avere la
funzione di appartenenza al variare della distanza. Come si può vedere dalla
fig.3.3, per m’=1 si ottiene una partizione netta (quindi valori binari 0 oppure
1) e via via che m’ aumenta la partizione diventa sempre più sfumata.
56
Capitolo 3– Tecniche di clustering
fig. 3.3. Andamento della funzione di appartenenza al variare della distanza in funzione di m’.
Per minimizzare la (22) Bezdek sfruttò un teorema di cui si riporta solo
l’enunciato:
TEOREMA: Sia d() una distanza che rispetti le (24), m’∈(1,∞) ed X uno
spazio finito con n elementi partizionabile in c cluster. Si definiscono ∀K gli
insiemi
Ik={ i: 1 ≤ i ≤ c; dik=⎟⎜xk-vi⎟⎜=0}
Ĩk={1,2,...,c}-Ik
Allora (U,v)∈Mfc può essere un minimo globale per Jm solo se:
Ik=∅⇒uik=1/∑cj=1(dik/djk)2/(m’-1)
(25.a1)
Ik≠∅⇒uik=0 ∀i∈ Ĩk e ∑i∈Ĩk uik=1
(25.a2)
con
57
Capitolo 3– Tecniche di clustering
vi=∑nk=1(uik)m’xk / ∑nk=1(uik)m’
∀i
(25.b)
Osservazioni: Ik è l’insieme che raccoglie per ogni elemento di X gli indici
delle classi i cui centri vi coincidono proprio con xk, mentre Ĩk è il suo
complementare.
In questo teorema non viene specificata alcun tipo di norma. Si può però
osservare che, scegliendo m’=2 ed usando una norma euclidea, le formule si
semplificano molto.
Da questo teorema Bezdek ideò questo
Algoritmo Fuzzy c-Means (FCM)
(a)
Fissare c, 2≤ c ≤n; scegliere una norma in Rm; si fissa m’,1≤ m’ ≤∞.
Si inizializza U(0)∈Mfc. Poi al passo l, l=0,1,...,:
(b)
Calcolare i c centri dei cluster {vi(l)} mediante la (25b) e la U(l).
(c)
Calcolare la U(l+1) usando la (25.a1) e {vi(l)}.
(d)
Confrontare la U(l) con U(l+1) mediante una norma matriciale opportunamente scelta:
Se (⎟⎜U(l+1)-U(l)⎟⎜≤ εL)
STOP;
Altrimenti
l = l+1 e tornare a (b) ;
◊
L’algoritmo richiede l’inizializzazione di U(0), ma quale è la scelta opportuna
da fare?
Essendo questo un algoritmo iterativo, scegliere una U(0) vicina alla soluzione
significa velocizzarne la convergenza. In generale, avere anche una vaga
idea di quale sia la soluzione non è facile per cui l’inizializzazione viene fatta
fissando casualmente la U(0). Una proposta interessante in tal senso è quella
di Bezdek:
58
Capitolo 3– Tecniche di clustering
•
fissare una U∈Mfc: uij=1/c (è una partizione in cui ogni elemento
appartiene a tutti i cluster con lo stesso grado).
•
fissare una W∈Mc qualsiasi (W è in questo caso una partizione netta).
•
fissare α=(1-√2/2) e β=1-α
•
imporre U(0)=αU+βW
Questa scelta di U(0) è motivata da un parametro di cluster validity, F: la
scelta fatta per α e β comporta che F(αU+βW)=(c+1)/2c ovvero il punto di
mezzo dell’intervallo [1/c,1], all’interno del quale stanno tutti i possibili valori
assunti da questo funzionale. Questa scelta di U(0) è una via di mezzo tra una
partizione U: uij=1/c (che esprime mancanza di aggregazione) ed una
partizione netta.
Nell’implementazione W viene scelto:
⎡1 0 0 ... 0 0 1 0 0 ... 0 0 ...⎤
0 1 0 ... 0 0 0 1 0 ... 0 0 ...
W = .........................................
0 0 0 ... 1 0 0 0 0 ... 1 0 ...
⎣ 0 0 0 ... 0 1 0 0 0 ... 0 1 ...⎦
che permette di ottenere la U(0) in questa forma:
⎡δ η η ... η η δ η η ... η η ...⎤
η δ η ... η η η δ η ... η η ...
U(0)= .........................................
η η η ... δ η η η η ... δ η ...
⎣ η η η ... η δ η η η ... η δ ...⎦
dove:
δ = α(1/c)+β
η = α(1/c)
59
Capitolo 3– Tecniche di clustering
Si può osservare che una scelta di questo tipo non prende assolutamente in
considerazione la distribuzione dei dati da clusterizzare. Nonostante ciò
facendo una serie di test si è visto che:
1. la convergenza è migliore rispetto ad un’inizializzazione totalmente
casuale;
2. quando si introducono criteri di cluster validity per predire il numero di
cluster si ottengono i risultati migliori: non solo, fare una scelta diversa
spesso porta a risultati errati.
3.4- Statistical Learning Theory
3.4.1- Introduzione
La Statistical Learning Theory fu introdotta alla fine degli anni sessanta: fino
agli anni novanta fu puramente una analisi teorica del problema della stima di
una funzione a partire da una collezione di dati forniti. A metà degli anni
novanta furono proposti nuovi algoritmi learning (chiamati support vector
machine) basati su tale teoria, e che fornivano un pratico metodo per stimare
funzioni multidimensionali.
Si deve soprattutto a Vapnik (nel 1995 e nel 1998) l’approfondimento di tale
Statistical Learning Theory.
3.4.2- Un limite alle performance di una Pattern Recognition Machine
In questo paragrafo verranno analizzati i limiti che governano la relazione tra
la qualità di una learning machine e le sue performance. La teoria scaturisce
da considerazioni su quali circostanze e quanto velocemente la media di
alcune quantità empiriche converge uniformemente, incrementando il
numero di dati, alla vera media (che dovrebbe essere calcolata su infiniti
dati).
60
Capitolo 3– Tecniche di clustering
Supponiamo di avere l osservazioni. Ad ogni osservazione è associata una
coppia (xi, yi), dove il vettore xi∈Rn , i=1,...,l, e yi rappresenta la “truth”
(verità) dataci da una sorgente fidata.
Ad esempio, in un problema di riconoscimento di un albero in una immagine,
xi potrebbe essere un vettore contenente i valori dei pixel, mentre yi varrebbe
1 se l’immagine contiene un albero, -1 altrimenti.
Assumiamo ora che esista una qualche distribuzione di probabilità
sconosciuta P(x,y) da cui sono estratti questi dati (i dati sono supposti i.i.d.,
cioè indipendentemente estratti e identicamente distribuiti).
Supponiamo, inoltre, di avere una macchina il cui compito è di imparare la
mappatura xi→yi. La macchina è definita da un insieme di possibili
mappature x→f(x,α), dove le stesse funzioni f(x,α) sono etichettate dal
parametro regolabile α. In più, si assume che la macchina sia deterministica:
per un dato ingresso x, scelto α, darà sempre la stessa uscita f(x,α). Una
particolare scelta di α genera quella che chiameremo una “trained machine”
(macchina esercitata).
Il valor medio dell’errore di test per una trained machine è perciò:
R(α)=∫(1/2)|y - f(x,α)| dP(x,y)
(26)
Notiamo che, quando esiste una densità p(x,y), dP(x,y) potrebbe essere
scritta come p(x,y)dxdy. Questa è una ottima via per scrivere la vera media
dell’errore, ma purtroppo abbiamo una stima di che cosa sia P(x,y).
La quantità R(α) è chiamata rischio medio o rischio teorico o soltanto rischio.
Il rischio empirico Remp(α) è definito come l’andamento medio dell’errore
misurato sull’insieme di training (per un numero fisso e finito di osservazioni):
Remp(α)=(1/2l)∑li=1 |yi – f(xi,α)|
(27)
61
Capitolo 3– Tecniche di clustering
E’ da notare che nella (27) non appare alcuna distribuzione di probabilità.
Remp(α) è un numero fisso per una particolare scelta di α e per un particolare
insieme di training {xi,yi}.
La teoria della convergenza uniforme in probabilità, sviluppata da Vapnik e
Chervonenkis, fornisce anche un limite alla deviazione del rischio empirico
dal rischio teorico; fissato η con 0≤η≤1 vale la seguente disuguaglianza:
R(α) ≤ Remp(α) + {(1/l)[h(log(2l/h)+1)-log(η/4)]}1/2
(28)
dove h è un intero non negativo chiamato la dimensione VapnikChervonenkis (VC). Il secondo termine sulla destra è chiamato la “VC
confidence”.
Nella (28) notiamo tre punti chiave: primo, questo limite superiore è
indipendente da P(x,y), sottolineando soltanto che sia i dati di training che i
dati di test siano estratti indipendentemente secondo qualche P(x,y);
secondo, solitamente non è possibile calcolare il lato sinistro della
disuguaglianza; terzo, se conosciamo h, possiamo facilmente calcolare il lato
destro della disuguaglianza. Così, date parecchie differenti learning machine
(nota che “learning machine” è soltanto un altro nome per una famiglia di
funzioni f(x,α)) e scelto un fisso, sufficientemente piccolo η, prendendo
quella machine che minimizza il lato destro della (28), abbiamo scelto quella
macchina che dà il più basso limite superiore al rischio teorico. Questo è in
principio il metodo per scegliere una learning machine per un dato compito,
ed è l’idea essenziale per minimizzare il rischio strutturale (vedi paragrafi
seguenti).
3.4.3- La dimensione VC
La dimensione VC è una proprietà di un insieme di funzioni {f(α)} (in seguito,
userò α come un generico insieme di parametri: una particolare scelta di α
specifica una particolare funzione) e che possiamo definire per varie classi di
62
Capitolo 3– Tecniche di clustering
funzioni f. Nella mia trattazione considererò soltanto funzioni che
corrispondono al caso di pattern recognition binario, poiché nel mio progetto
di tesi ho utilizzato un classificatore binario: così si ha f(x,α)∈{-1,1} ∀x,α.
Ora, se un dato insieme di l punti può essere etichettato in tutti i 2l modi
possibili, e per ogni etichettamento, può essere trovato un membro
dell’insieme {f(α)} che assegna correttamente quelle etichette, diciamo che
quell’insieme di punti è shattered (letteralmente, scomposto, separato) da
quell’insieme di funzioni. La dimensione VC per l’insieme di funzioni {f(α)} è
definito come il numero massimo di punti di training che possono essere
separati da {f(α)}. Notiamo infine che, se la dimensione VC è h, esisterà
almeno un insieme di h punti che può essere separato, ma in generale non
sarà vero che ogni insieme di h punti può essere separato.
3.4.4- Punti separati con iperpiani orientati in Rn
Supponiamo che i dati appartengano allo spazio R2 e l’insieme {f(α)} consista
di linee rette orientate, cosicché per una certa linea, tutti i punti da un lato
siano assegnati alla classe 1 e tutti i punti dall’altro lato alla classe -1.
L’orientamento è mostrata in fig.3.4 con una freccia, specificando da quale
lato della linea i punti devono essere assegnati alla classe 1.
2
fig.3.4. Tre punti in R , separati da linee orientate.
63
Capitolo 3– Tecniche di clustering
Mentre è possibile trovare tre punti che possono essere separati da questo
insieme di funzioni, non è possibile trovarne quattro. Perciò la dimensione
VC dell’insieme di rette orientate in R2 è tre.
Consideriamo ora degli iperpiani in Rn. Il seguente teorema potrà esserci
utile:
TEOREMA: Consideriamo alcuni insiemi di m punti in Rn. Scegliamo
qualcuno di tali punti come origine. Gli m punti possono essere separati da
iperpiani orientati se e solo se i vettori posizione dei rimanenti punti sono
linearmente indipendenti.
COROLLARIO: La dimensione VC di un insieme di iperpiani orientati in Rn è
n+1, poiché possiamo sempre scegliere n+1 punti e poi sceglierne uno come
origine, cosicché i vettori posizione dei rimanenti n punti siano linearmente
indipendenti, ma non possiamo mai scegliere n+2 di tali punti (poiché n+1
vettori in Rn non possono essere linearmente indipendenti).
3.4.5- La dimensione VC e il numero di parametri
LA dimensione VC dà così concretezza al concetto di capacità di un dato
insieme di funzioni. Intuitivamente chiunque potrebbe essere indotto ad
aspettarsi che learning machine con molti parametri avrebbero una
dimensione VC grande, mentre learning machine con pochi parametri
avrebbero una dimensione VC piccola. C’è però un impressionante
controesempio a ciò dovuto a E.Levin e J.S.Denker: una learning machine
con appena un parametro, ma con la dimensione VC infinita (una famiglia di
classificatori è detta di avere dimensione VC infinita se può separare l punti,
indipendentemente da quanto è grande l).
Definiamo la funzione gradino θ(x), x∈R: {θ(x)=1 ∀x>0; θ(x)=-1 ∀x≤0}.
Consideriamo la famiglia di funzioni ad un parametro definita da
64
Capitolo 3– Tecniche di clustering
f(x,α) = θ(sin(αx)),
x,α∈R
(29)
Possiamo scegliere alcuni numeri l e trovare l punti che possono essere
separati. Possiamo scegliere punti come:
xi=10-i,
i=1,...,l
(30)
Possiamo scegliere le etichette a piacere:
y1,...,yl,
yi∈{-1,1}
(31)
f(α) fornisce tali etichette se scegliamo α nel seguente modo:
α = π(1+∑li=1[(1-yi)10i/2])
(32)
La dimensione VC di questa machine è infinito.
Stranamente, sebbene possiamo separare un numero arbitrariamente
grande di punti, possiamo trovare appena quattro punti che non possono
essere separati: essi devono semplicemente essere equi-spaziati ed avere
l’etichette come in fig.3.5. Ciò può essere visto come segue: scriviamo la
fase in x1 come φ1=2nπ+δ. Così la scelta dell’etichetta y1=1 richiede 0<δ<π.
La fase in x2, mod2π, è 2δ; così y2=1⇒0<δ<π/2. Similmente, il punto x3 forza
δ>π/3. Infine x4, π/3<δ<π/2 implica che f(x4,α)=-1, contrariamente all’etichetta
assegnata.
fig.3.5. Quattro punti che non possono essere separati da θ(sin(αx)), malgrado una dimensione VC
infinita.
65
Capitolo 3– Tecniche di clustering
3.4.6- Minimizzare il limite minimizzando h
La fig.3.6 mostra come il secondo termine sul lato destro della (28) vari con
h, data una scelta del 95% di livello di confidenza (η=0.05) e assumendo un
campione di training di grandezza 10000. La VC confidence è una funzione
di h monotona crescente. Ciò è vero per ogni valore di l.
fig.3.6. VC confidence è monotona in h.
Date alcune selezioni di learning machine il cui rischio empirico è zero,
vogliamo scegliere quella learning machine a cui è associato un insieme di
funzioni che ha dimensione VC minima. Ciò ci condurrà ad un limite
superiore migliore al rischio teorico.
In altre parole vogliamo che il lato sinistro della (28) sia grande il più
possibile, mentre vogliamo che il lato destro sia il più piccolo possibile. Perciò
66
Capitolo 3– Tecniche di clustering
vogliamo una famiglia di classificatori che dia il peggior possibile rischio
teorico di 0.5, un rischio empirico pari a zero, e la cui dimensione VC sia
semplice da calcolare e sia minore di l. Un esempio è il seguente, il
cosiddetto “notebook classifier”. Questo classificatore consiste di un
notebook con abbastanza spazio per annotare le classi di m osservazioni di
training, dove m ≤ l. Supponiamo inoltre che i dati abbiano la stessa quantità
di esempi positivi (y=1) e esempi negativi (y=-1) e che i campioni siano scelti
casualmente. Il classificatore notebook avrà rischio empirico zero per m
osservazioni; 0.5 errore di training per tutte le seguenti osservazioni; 0.5
rischio teorico; dimensione VC h = m. Sostituendo questi valori nella (28), il
limite diventa:
(m/4l) ≤ ln(2l/m)+1-(1/m)ln(η/4)
(33)
che vale ∀η se
f(z)=(z/2)exp((z/4)-1) ≤ 1,
z=(m/l),
0≤ z ≤ 1
(34)
la quale è vera, poiché f(z) è monotona crescente con f(z=1)=0.236.
3.4.7- Minimizzazione del rischio strutturale
Parlerò ora del principio di minimizzazione del rischio strutturale (SRM).
Notiamo che il termine della VC confidence nella disuguaglianza (28)
dipende dalla classe di funzioni scelta, mentre il rischio empirico e il rischio
teorico dipendono da una particolare funzione scelta con la procedura di
training. Ci piacerebbe trovare quel sottoinsieme dell’insieme di funzioni
scelto, tale che il limite del rischio per quel sottoinsieme sia minimizzato. A tal
scopo introduciamo una “struttura” dividendo l’intera classe delle funzioni in
sottoinsiemi annidati (fig.3.7).
67
Capitolo 3– Tecniche di clustering
fig.3.7. Sottoinsiemi annidati di funzioni, ordinati secondo la dimensione VC.
Per ogni sottoinsieme, dobbiamo poter calcolare ciascun h o almeno
prendere un limite allo stesso h. SMR consiste nel trovare quel sottoinsieme
di funzioni che minimizza il limite del rischio teorico. Questo può essere fatto
semplicemente
esercitando
una
serie
di
macchine,
una
per
ogni
sottoinsieme, dove il fine del training per un dato sottoinsieme è
semplicemente minimizzare il rischio empirico. In seguito si considera quella
trained machine che ha la somma tra il rischio empirico e la VC confidence
minima rispetto alle altre.
3.5- Support Vector Machines Lineari
Le Support Vector Machines sono state sviluppate negli AT&T Bell
Laboratories da Vapnik e colleghi (Boser 1992, Guyon 1993, Cortes 1995,
Scholkopf 1995).
Dato il contesto industriale, la ricerca sulle SVM ha finora avuto una decisa
polarizzazione applicativa.
L’algoritmo Support Vector alla base delle SVM è, in realtà, una
generalizzazione dell’algoritmo Generalized Portrait sviluppato in Russia
(Vapnik e Lerner 1963, Vapnik e Chervonenkis 1964). E’ inquadrabile nella
Statistical Learning Theory, o teoria di Vapnik-Chervonenkis (Vapnik e
Chervonenkis 1974, Vapnik 1982 e 1995).
68
Capitolo 3– Tecniche di clustering
Essenzialmente, la teoria VC caratterizza le proprietà degli algoritmi di
apprendimento che permettono loro di generalizzare a dati nuovi elementi
appresi in precedenza.
3.5.1- Il caso separabile
Inizierò la mia trattazione sulle SVM con il caso più semplice: macchine
lineari addestrate su dati separabili.
Di nuovo, etichettiamo i dati di training {xi,yi}, i=1,...,l, yi∈{-1,1}, xi∈Rd.
Supponiamo di avere qualche iperpiano che separa gli esempi positivi da
quelli negativi (un iperpiano “separatore”). I punti x che giacciono
sull’iperpiano soddisfano l’equazione
w⋅x+b=0
dove w è la normale all’iperpiano, |b| /⎟⎜w⎟⎜ è la distanza perpendicolare
dall’iperpiano all’origine, e⎟⎜w⎟⎜ è la norma Euclidea di w. Sia inoltre d+ (d-) la
distanza più piccola dall’iperpiano separatore all’esempio positivo (negativo)
più vicino. Definiamo inoltre “margine” dell’iperpiano separatore la quantità
d++d- . Per il caso linearmente separabile, l’Algoritmo Support Vector
semplicemente cerca l’iperpiano separatore con il margine più grande. Ciò
può essere formulato come segue: supponiamo che tutti i dati di training
soddisfino i seguenti vincoli:
xi ⋅ w + b ≥ +1
per yi=+1
(35)
xi ⋅ w + b ≤ -1
per yi=-1
(36)
Le due disuguaglianze possono essere riunite nell’unica disuguaglianza :
69
Capitolo 3– Tecniche di clustering
yi (xi ⋅ w + b) – 1 ≥ 0
∀i
(37)
Consideriamo ora i punti per i quali vale l’uguaglianza nella (35). Questi punti
giacciono sull’iperpiano H1: xi ⋅ w + b = +1 con normale w e distanza
perpendicolare dall’origine |1-b|/⎟⎜w⎟⎜. Similmente i punti per i quali vale
l’uguaglianza nella (36) giacciono sull’iperpiano H2: xi ⋅ w + b = -1, con
normale ancora w e distanza perpendicolare dall’origine |-1-b|/⎟⎜w⎟⎜. Da qui,
d+=d-=1/⎟⎜w⎟⎜e il margine è semplicemente 2/⎟⎜w⎟⎜. Notiamo che H1 e H2
sono paralleli (hanno la stessa normale) e che nessun punto di training giace
tra loro. Ora non ci resta che cercare la coppia di iperpiani che danno il
margine massimo minimizzando ⎟⎜w⎟⎜2, soggetti ai vincoli (37).
Così ci aspettiamo che la soluzione per un tipico caso in due dimensioni
abbia la forma mostrata in fig.3.8. Quei punti di training per i quali vale
l’uguaglianza nella (37) e la cui eliminazione cambierebbe la soluzione
trovata sono chiamati support vectors; essi sono indicati in fig.3.8 con un
cerchio extra.
fig. 3.8. Iperpiani che separano linearmente per il caso separabile. I support vectors sono cerchiati due
volte.
Ora ci sposteremo su una formulazione di Lagrange del problema. Ci sono
due ragioni per fare ciò: primo, i vincoli (37) saranno sostituiti da vincoli sui
70
Capitolo 3– Tecniche di clustering
moltiplicatori di Lagrange stessi, che saranno più semplici da maneggiare.
Secondo, in questa riformulazione del problema, i dati di training saranno
rappresentati soltanto da prodotti puntuali (scalari) tra vettori.
Introduciamo quindi i moltiplicatori positivi di Lagrange αi, i=1,...,l, uno per
ognuno dei vincoli di disuguaglianza (37). Ricordo che la regola è che per
vincoli della forma ci ≥ 0, le equazioni di vincolo sono moltiplicate per
moltiplicatori positivi di Lagrange e sottratte dalla funzione obbiettivo per
formare la Lagrangiana. Per vincoli di uguglianza, i moltiplicatori di Lagrange
sono non costrittivi. Così si ha la Lagrangiana:
LP ≡ (1/2)⎟⎜w⎟⎜2 - ∑li=1[αiyi(xi ⋅ w + b)] + ∑li=1 αi
(38)
Dobbiamo ora minimizzare LP rispetto a w, b, e simultaneamente si richiede
che le derivate di LP rispetto a tutti gli αi tenda a zero, il tutto soggetto alle
restrizioni αi ≥ 0.
Possiamo inoltre equivalentemente risolvere il seguente problema duale:
massimizzare LP, soggetto ai vincoli che il gradiente di LP rispetto a w e b si
annulli e che αi ≥ 0.
La richiesta che il gradiente di LP rispetto a w e b tenda a zero ci dà le
seguenti condizioni:
w = ∑i αiyixi
(39)
∑i αiyi = 0
(40)
Possiamo così sostituire questi vincoli duali nell’equazione (38) per avere:
LD = ∑li=1 αi – (1/2) ∑i,j αiαjyiyjxi ⋅ xj
(41)
dove il pedice D sta per duale.
71
Capitolo 3– Tecniche di clustering
Il training del Support Vector (per il caso lineare e separabile) equivale a
massimizzare LD rispetto a αi, soggetto alla restrizione (40) ed alla positività
di αi, con la soluzione data dalla (39). Notiamo che c’è un moltiplicatore di
Lagrange αi per ogni punto di training: quei punti per cui αi > 0 sono chiamati
“support vectors” e giacciono su uno degli iperpiani H1, H2. Tutti gli altri punti
hanno αi = 0 e giacciono o su H1 o su H2 (cosicché vale l’uguaglianza nella
(37)), o su quel lato di H1 o H2 cosicché vale la disuguaglianza stretta nella
(37). Per le Support Vector Machines, i support vectors sono gli elementi
critici dell’insieme di training. Essi giacciono il più vicino possibile alla
frontiera della decisione; se si rimuovono tutti gli altri punti di training e si
ripete il training, si ritroverebbe lo stesso iperpiano di separazione.
3.5.1.1- Le condizioni di Karush-Kuhn-Tucker
Le condizioni di Karush-Kuhn-Tucker (KKT) giocano un ruolo centrale nella
teoria e nella pratica della ottimizzazione. Per il problema sopra espresso, le
condizioni KKT sono:
∂(LP)/∂wv = wv - ∑i αiyixiv = 0
v=1,...,d
∂(LP)/∂b = - ∑i αiyi = 0
(42)
(43)
yi(xi ⋅ w + b) – 1 ≥ 0
i=1,...,l
(44)
αi ≥ 0
∀i
(45)
αi[yi(xi ⋅ w + b) - 1] = 0
∀i
(46)
72
Capitolo 3– Tecniche di clustering
Nel 1987 Fletcher dimostrò che le condizioni KKT sono condizioni necessarie
e sufficienti per trovare una soluzione per w, b e α. Così risolvere il problema
SVM è equivalente a trovare una soluzione alle condizioni KKT.
Come immediata applicazione, notiamo che, mentre w è esplicitamente
determinato con la procedura di training, la soglia b non lo è, cioè è
implicitamente determinata. Comunque b è trovato facilmente usando la
condizione complementare KKT (46), scegliendo qualche i per cui αi ≠ 0 e
calcolando b.
Una volta che abbiamo esercitato una Support Vector Machine, come la
possiamo usare? Semplicemente decidiamo da quale lato della frontiera
decisionale (quell’iperpiano che giace a metà strada tra H1 e H2 e ad essi
parallelo) giace un dato test pattern x e assegnamo l’etichetta della
corrispondente classe, cioè il classificatore è dato da:
f(x) = sgn(x ⋅ w + b).
3.5.2- Il caso non-separabile
L’algoritmo precedente non può essere applicato a dati non separabili: come
possiamo fare allora in questo caso?
Ci piacerebbe rilassare i vincoli (35) e (36), ma soltanto quando necessario,
introducendo un ulteriore costo per far ciò. Ciò può essere fatto introducendo
le variabili positive ξi , i=1,...,l, nei vincoli, le quali diventano:
xi ⋅ w + b ≥ +1-ξi
per yi=+1
(47)
xi ⋅ w + b ≤ -1+ξi
per yi=-1
(48)
73
Capitolo 3– Tecniche di clustering
ξi ≥ 0
∀i
(49)
Quando accade un errore, il corrispondente ξi deve superare l’unità, così ∑i ξi
è un limite superiore sul numero di errori di training. Da qui una naturale via
per assegnare un costo extra per gli errori è di cambiare la funzione
obbiettivo minimizzandola rispetto a {(1/2)⎟⎜w⎟⎜2 + C(∑iξi)k}, invece che
rispetto a (1/2)⎟⎜w⎟⎜2 , dove C è un parametro scelto dall’utente (un grande C
corrisponde ad assegnare un’alta penalità agli errori). Scegliendo k=1 si ha il
vantaggio che nessuno degli ξi, neppure i loro moltiplicatori di Lagrange,
appaiono nel problema duale, che diventa:
Massimizzare:
LD ≡ ∑i αi – (1/2) ∑i,j αiαjyiyjxi ⋅ xj
(50)
soggetto a:
0 ≤ αi ≤ C ,
(51)
∑i αiyi = 0
(52)
La soluzione è ancora una volta data da
w = ∑Nsi=1 αiyixi
(53)
dove NS è il numero dei support vectors. Così l’unica differenza dal caso di
iperpiano ottimale è quella che gli αi ora hanno un limite superiore, C. La
situazione è riassunta in fig. 3.9.
74
Capitolo 3– Tecniche di clustering
fig.3.9. Iperpiani che separano linearmente per il caso non-separabile.
Avremo bisogno delle condizioni di KKT per risolvere il problema. La
Lagrangiana diventa:
LP ≡ (1/2)⎟⎜w⎟⎜2 + C∑iξi - ∑i αi {yi(xi ⋅ w + b) -1 + ξi} - ∑i µiξi
(54)
dove i µi sono i moltiplicatori di Lagrange introdotti per imporre la positività
degli ξi. Le condizioni di KKT diventano perciò (è da notare che i va da 1 al
numero dei punti di training, mentre v da 1 alla dimensioni dei dati):
∂(LP)/∂wv = wv - ∑i αiyixiv = 0
v=1,...,d
(55)
∂(LP)/∂b = - ∑i αiyi = 0
(56)
∂(LP)/∂ξi = C - αi - µi = 0
(57)
yi(xi ⋅ w + b) – 1 + ξi ≥ 0
(58)
ξi ≥ 0
∀i
75
(59)
Capitolo 3– Tecniche di clustering
αi ≥ 0
∀i
(60)
µi ≥ 0
∀i
(61)
αi[yi(xi ⋅ w + b) – 1 + ξi] = 0
(62)
µiξi = 0
(63)
Come prima, possiamo usare le condizioni di KKT complementari, (62) e
(63), per determinare la soglia b. Notiamo inoltre che la (57) combinata con
la (63) mostra che ξi = 0 se αi < C. Perciò possiamo semplicemente prendere
qualche punto di training per cui 0 < αi < C per usare l’equazione (62) (con
ξi=0) per calcolare b.
3.5.2.1- Esempi usando delle figure
La fig. 3.10 mostra due esempi di problema di pattern recognition in due
dimensioni, uno separabile e uno non separabile. L’errore nel caso non
separabile è identificabile con un attraversamento (nota che i support vectors
sono evidenziati mediante un cerchio supplementare).
fig. 3.10. Il caso lineare, separabile (a sinistra) e non (a destra).
76
Capitolo 3– Tecniche di clustering
3.6- Support Vector Machines non lineari
Come possono essere generalizzati i metodi sopra descritti al caso in cui la
funzione di decisione non è una funzione lineare dei dati?
Partiamo dal fatto che nelle equazioni del problema di training (50)-(52) i dati
appaiono solo nella forma di prodotti scalari xi ⋅ xj . Supponiamo ora di
mappare i dati in qualche altro (possibilmente di dimensione infinita) spazio
Euclideo H, usando una mappatura che chiameremo Φ:
Φ: Rd → H
(64)
Così l’algoritmo di training dipenderà soltanto dai dati attraverso il prodotto
scalare in H, cioè da funzioni della forma Φ(xi) ⋅ Φ(xj). Ora, se esistesse una
“funzione kernel” K tale che K(xi , xj) = Φ(xi) ⋅ Φ(xj), avremo bisogno soltanto
di usare K nell’algoritmo di training, e non avremo mai bisogno di sapere
esplicitamente cosa sia Φ. Un esempio è:
K(xi , xj) = exp {-(⎟⎜xi - xj⎟⎜2 ) / (2σ2)}
(65)
Tutte le considerazioni dei precedenti paragrafi valgono poiché stiamo
comunque facendo una separazione lineare, ma in uno spazio differente. Ma
come possiamo usare questa machine?
Dopo tutto, noi abbiamo bisogno di w, che esiste anche in H (vedi la (53)).
Ma una SVM è usata per calcolare i prodotti puntuali di un dato punto di test
x con w, o più precisamente per calcolare il segno della funzione
f(x) = ∑Nsi=1 αiyiΦ(si) ⋅ Φ(x) + b = ∑Nsi=1 αiyiK(si , x) + b
77
(66)
Capitolo 3– Tecniche di clustering
dove gli si sono i support vectors. Ancora una volta vogliamo evitare di
calcolare Φ(x) esplicitamente e usiamo invece la funzione
K(si , x) = Φ(si) ⋅ Φ(x)
Indichiamo ora lo spazio a cui appartengono i dati con L (L sta per “low”, cioè
per dimensione bassa, mentre H sta per “high”). E’ da notare che, oltre al
fatto che w esiste in H, in generale non esisteranno vettori in L che
mappano, attraverso Φ, w. Inoltre si nota che è facile trovare kernels (ad
esempio, kernels che sono funzioni dei prodotti scalari degli xi in L) tali che
l’algoritmo di training e la soluzione trovata sono indipendenti dalla
dimensione di ambedue L e H.
Descriviamo ora un semplice esempio di kernel ammesso, attraverso cui
possiamo costruire la mappatura Φ.
Supponiamo di avere dei dati che sono vettori in R2, e di scegliere un kernel
della forma
K(xi , xj) = (xi ⋅ xj)2
E’ facile trovare uno spazio H e la mappatura Φ da R2 a H, tali che
(x ⋅ y)2 = Φ(x) ⋅ Φ(y)
Scegliamo H = R3 e
Φ(x) = (x12, x1x2√2 , x22)T
(67)
Infatti
(x ⋅ y)2 = [(x1,x2)(y1,y2)T]2 = (x12y12 + 2x1x2y1y2 + x22y22) =
78
Capitolo 3– Tecniche di clustering
= (x12, x1x2√2 , x22) (y12, y1y2√2 , y22)T = Φ(x) ⋅ Φ(y)
fig.3.11. Immagine, in H, del quadrato [-1,1]x[-1,1]∈R2 sotto la mappatura Φ.
Per dati in L definiti sul quadrato [-1,1]x[-1,1]∈R2 l’immagine di Φ è mostrata
in fig.3.11.
La figura mostra cosa pensare di questa mappatura: l’immagine di Φ può
esistere in uno spazio anche di dimensione infinita, ma è solo una superficie,
anche se molto “contorta”, la cui dimensione intrinseca, il numero di
parametri necessari per specificare un punto, è la stessa dello spazio di
appartenenza dei vettori x, cioè L.
Notiamo che né la mappatura Φ né lo spazio H sono unici per un dato kernel.
Infatti potremmo, ugualmente bene, scegliere H = R3 e
Φ(x) = (1/√2)[(x12 – x22), 2x1x2 , (x12 + x22)]T
(68)
oppure H = R4 e
Φ(x) = (x12 , x1x2 , x1x2 , x22)T
(69)
79
Capitolo 3– Tecniche di clustering
Solitamente nei testi sulle SVM lo spazio H è chiamato spazio di Hilbert,
pensandolo come una generalizzazione dello spazio Euclideo.
3.6.1- Condizione di Mercer
Ma per quali kernels esiste una coppia {H,Φ}, con le proprietà sopra
descritte, e per quali non esiste?
La risposta ci viene data dalla condizione di Mercer:
esiste una mappatura Φ e un’espansione
K(x,y) = ∑i Φ(x)i Φ(y)i
(70)
se e solo se, per qualsiasi g(x) tale che
∫ g(x)2 dx
è finito
(71)
allora
∫ K(x,y) g(x) g(y) dx dy ≥ 0
(72)
Ancora una volta, c’è da sottolineare che in casi specifici potrebbe essere
difficile verificare se la condizione di Mercer è soddisfatta. La (72) deve
valere per ogni g che soddisfi la (71), che non è altro che una norma.
Comunque, possiamo facilmente provare che la condizione è soddisfatta per
potenze positive del prodotto scalare: K(x,y) = (x ⋅ y)p. Dobbiamo mostrare
che
∫ (∑di=1 xiyi)p g(x) g(y) dx dy ≥ 0
(73)
Espandendo il termine (∑di=1 xiyi)p si ottiene la forma
80
Capitolo 3– Tecniche di clustering
(p!/(r1!r2!...(p-r1-r2...)!)) ∫ x1r1x2r2... y1r1y2r2... g(x) g(y) dx dy
(74)
da cui, per il lato sinistro della (72), si ottiene
= (p!/(r1!r2!...(p-r1-r2...)!)) {∫ x1r1x2r2... g(x) dx}2
(75)
Una semplice conseguenza è che qualsiasi kernel che può essere espresso
come K(x,y) = ∑∞p=0 cp(x ⋅ y)p , dove cp sono coefficienti reali positivi e la
serie è uniformemente convergente, soddisfa la condizione di Mercer, fatto
dimostrato da Smola, Scholkopf e Muller nel 1998.
3.6.2- Alcuni esempi di SVMs non lineari
I primi kernels studiati per il problema del pattern recognition furono i
seguenti:
K(x,y) = (x ⋅ y + 1)p
(76)
K(x,y) = exp {-(⎟⎜x - y⎟⎜2 ) / (2σ2)}
(77)
K(x,y) = tanh(κx ⋅ y - δ)
(78)
L’equazione (76) rappresenta un classificatore polinomiale di grado p ;
l’equazione (77) dà un classificatore basato sulla funzione Gaussiana
Radiale (Gaussian Radial Basis Function) GRBF ed infine la (78)
rappresenta un tipo particolare di rete neurale sigmoidale a due strati.
La fig. 3.12 mostra i risultati per lo stesso problema di pattern recognition
mostrato in fig. 3.10, ma dove è stato scelto un kernel polinomiale di grado 3.
Notiamo che, nonostante che il numero di gradi di libertà sia grande, la
81
Capitolo 3– Tecniche di clustering
soluzione per il caso linearmente separabile (figura a sinistra) è pressappoco
lineare, indicando che la qualità diventa controllata; inoltre, il caso non
linearmente separabile (figura a destra) diventa separabile.
fig. 3.12. Kernel polinomiale di grado 3.
Finalmente notiamo che i classificatori SVM descritti sopra sono classificatori
binari, che possono essere facilmente combinati per manipolare il caso multiclasse.
3.7- La dimensione VC per le SVM
Mostriamo ora che la dimensione VC delle SVMs può essere molto grande
(anche infinito). Chiameremo qualsiasi kernel che soddisfi la condizione di
Mercer kernel positivo, e lo spazio corrispondente H lo embedding space.
Chiameremo inoltre qualsiasi embedding space con la dimensione minima
per un dato kernel lo minimal embedding space. Esiste il seguente
TEOREMA: Sia K un kernel positivo che corrisponde a un minimal
embedding space H. La dimensione VC della corrispondente support vector
machine (dove la penalità di errore C può avere tutti i valori) è dim(H) + 1.
Vediamo ora due esempi.
82
Capitolo 3– Tecniche di clustering
Calcoliamo ora la dimensione VC per i kernels polinomiali; consideriamo una
SVM con un kernel polinomiale omogeneo, agente su dati in RdL:
K(x1,x2) = (x1 ⋅ x2)p, x1,x2∈ RdL
(79)
Come nel caso in cui dL=2 e il kernel è quadratico, possiamo esplicitamente
costruire la mappatura Φ. Sostituendo zi=x1ix2i, si ha K(x1,x2) = (z1+...+zdL)p,
osserviamo che ogni dimensione di H corrisponde a un termine con potenze
di zi nell’espansione di K. Possiamo quindi esplicitamente scrivere la
mappatura per qualsiasi p e dL:
Φr1r2...rdL(x) = (x1r1...xdLrdL)[p! / (r1!...rdL!)]1/2 , ∑dLi=1 ri = p , ri ≥ 0
(80)
da cui si ricava il seguente
TEOREMA: Se lo spazio in cui esistono i dati ha dimensione dL (cioè L =
RdL), la dimensione VC per il minimal embedding space, per kernels
polinomiali omogenei di grado p (K(x1,x2) = (x1 ⋅ x2)p, x1,x2∈ RdL), è (pdL+p-1).
Calcoliamo infine la dimensione VC per i kernels GRBF; ci viene in aiuto il
seguente
TEOREMA: Consideriamo la classe di kernels positivi per cui K(x1,x2)→0 se
⎟⎜x1 – x2⎟⎜→∞, e per cui K(x,x) è O(1), e assumiamo che i dati possono
essere scelti arbitrariamente in Rd. La famiglia di classificatori composti da
SVM che usano questi kernels, e per cui la penalità di errore può assumere
qualsiasi valore, ha dimensione VC infinita.
83
Capitolo 3– Tecniche di clustering
3.8- Esempio di classificazione SVM: IRIS data
L’iris data set contiene quattro attributi del fiore dell’iris; lo scopo è quello di
individuare la classe di appartenenza di un iris basandosi su questi quattro
attributi.
Per semplicità considereremo solo i due attributi che portano maggiore
informazione riguardo alla classe di appartenenza: la lunghezza e la
larghezza del petalo.
La distribuzione dei dati è rappresentata in fig. 3.13. Nelle figure seguenti
(3.14-3.18) ci sono i risultati ottenuti.
fig. 3.13. Distribuzione dei dati.
84
Capitolo 3– Tecniche di clustering
fig.3.14. SVM lineare: separa facilmente le classi Setosa e Versicolor.
fig. 3.15. SVM polinomiale di grado 2 con C=∞.
85
Capitolo 3– Tecniche di clustering
fig. 3.16. SVM polinomiale di grado 10 con C=∞.
fig. 3.17. SVM RBF con σ=1.0 e C=∞.
86
Capitolo 3– Tecniche di clustering
fig. 3.18. SVM polinomiale di grado 2 e C=10.
87
Capitolo 4– Il progetto
Capitolo 4
IL PROGETTO
4.1- Introduzione
In questo capitolo finale verranno illustrate le parti fondamentali del programma
implementato per questa tesi.
L’ambiente di sviluppo di tale programma è Microsoft Visual C++ 6.0, contenuto
in Microsoft Visual Studio 6.0 Professional Edition.
Avendo sviluppato il programma in C++, la struttura che meglio identifica questo
linguaggio di programmazione è la Classe: perciò il mio progetto è stato
implementato strutturalmente come una Classe chiamata DiabeticBlobs.
Le funzioni membro che fanno parte di tale classe e che verranno esplicitate nei
prossimi paragrafi sono:
1. funzione
Normalizzazione,
che
effettua
la
pre-elaborazione
dell’immagine;
2. funzione BinarizzazioneLineare, che utilizzando una SVM lineare
realizza la binarizzazione dell’immagine;
3. funzione BinarizzazionePolinomiale, che utilizzando una SVM non
lineare polinomiale binarizza l’immagine;
4. funzione BinarizzazioneEsponenziale, che è una funzione simile alla 3
ma utilizza una SVM non lineare RBF;
5. funzione EliminazioneDiscoOttico, che come dice il nome elimina il disco
ottico;
6. funzione EstrazioneFeatures, che serve per estrarre le caratteristiche
volute dall’immagine
7. funzione ElaborazioneLineare, che comprende le funzioni 1, 2, 5, 6;
8. funzione ElaborazionePolinomiale, che contiene la 1, 3, 5, 6;
9. funzione ElaborazioneEsponenziale, che comprende la 1, 4, 5, 6.
88
Capitolo 4– Il progetto
Inoltre, per implementare una piccola parte del programma, ho fatto uso
dell’algoritmo SVMlight, open source code per usi scientifici, che altro non è che
l’implementazione del learning della mia SVM.
Infine
per caricare e salvare le immagini ed estrarne i valori dei pixels ho
utilizzato la Classe CTlabImage sviluppata da Etruria Innovazione Spa.
Le immagini del fondo oculare da elaborare mi sono state date gentilmente dal
caro amico Dott. Gianluca Martone, della Clinica Oftalmologica del Policlinico
Le Scotte di Siena. Un esempio è la seguente fig. 4.1.
fig. 4.1. Esempio di foto del fondo oculare.
89
Capitolo 4– Il progetto
4.2- La funzione Normalizzazione
Come già accennato nell’introduzione a questo capitolo, questa funzione serve
a pre-elaborare la foto, che nel nostro caso significa migliorare il contrasto
dell’immagine, per normalizzare il più possibile il colore del nostro target nelle
varie immagini retiniche facendole risaltare rispetto al background.
Siano (x1,y1) le coordinate di un pixel p qualsiasi all’interno dell’immagine di
partenza. L’algoritmo da me utilizzato può essere così schematizzato:
Algoritmo Normalizzazione:
(a) caricare l’immagine di partenza;
(b) portarla in scala di grigi, ottenendo così p_grigio(x1,y1);
(c) stretch (vedi appendice A alla fine del capitolo) dei livelli di grigio
dell’immagine, con risultato p_stretch(x1,y1);
(d) il pixel p_new(x1,y1) della nuova immagine sarà dato dalla
relazione:
p_new(x1,y1) = (red_new, green_new, blue_new) =
=([red_old*p_stretch(x1,y1)/p_grigio(x1,y1)],
[green_old*p_stretch(x1,y1)/p_grigio(x1,y1)],
[blue_old*p_stretch(x1,y1)/p_grigio(x1,y1)]);
dove red_..., green_..., blue_... sono i valori rosso, verde e blu dei tre canali
RGB.
L’algoritmo Normalizzazione va ripetuto per tutti i pixel dell’immagine della
retina. Il risultato di tale pre-processing è visibile in fig. 4.3 ricavata dalla fig. 4.2.
90
Capitolo 4– Il progetto
fig. 4.2. Immagine prima della funzione Normalizzazione.
fig. 4.3. Immagine risultante dopo l’applicazione della funzione Normalizzazione
91
Capitolo 4– Il progetto
4.3- Le funzioni per binarizzare l’immagine
Come accennato nell’introduzione, per implementare il learning delle mie
SVMs, cioè per ricavare i support vectors dei tre casi di kernel (lineare,
polinomiale e RBF) da me utilizzati per creare le mie machines, ho utilizzato
l’algoritmo learn del open source code
SVM-light, realizzato da Thorsten
Joachims: tale algoritmo, seguendo quanto detto nel capitolo 3, non fa altro che
ricevere in ingresso dei dati di training e fornire in uscita i support vectors,
cercando di massimizzare il margine, calcolato come una semplice distanza tra
vettori, tra i due cluster di dati.
Per passare i dati di training bisogna per prima cosa prendere l’immagine in
uscita alla funzione Normalizzazione e, con un semplice programma che può
modificare le foto (ad esempio, Microsoft Paint), etichettare gli essudati ed il
disco ottico (che hanno le stesse caratteristiche cromatiche) con il colore bianco
(r=255, g=255, b=255) ed il background con il colore nero (r=0, g=0, b=0), come
per esempio è stato fatto in fig. 4.4.
fig. 4.4. Immagine che serve per il training.
92
Capitolo 4– Il progetto
A questo punto bisogna creare un file di testo con ogni riga della seguente
forma:
A questo punto lanciamo il learn e otteniamo un file di testo dove sono indicati
vari parametri come b, i pesi (αi), le coppie (xi,yi) dei support vector, ecc....,
come si può vedere sotto:
A questo punto leggiamo quest’ultimo file e calcoliamo le tre binarizzazioni,
stando attenti a quali parti del file di testo da cui si ricavano i support vector
devono essere considerate. Nelle fig. 4.5-4.8 c’è un esempio della
binarizzazione.
93
Capitolo 4– Il progetto
fig. 4.5. Immagine da rendere binaria.
fig. 4.6. Binarizzazione lineare.
94
Capitolo 4– Il progetto
fig. 4.7. Binarizzazione polinomiale di grado 2.
fig. 4.8. Binarizzazione RBF con 1/(2σ2) = 0.005.
95
Capitolo 4– Il progetto
Come si può vedere da queste immagini la SVM con kernel RBF è più precisa
nel classificare gli essudati dell’immagine. Rimando al paragrafo 4.6 per
considerazioni più precise.
4.4- La funzione EliminazioneDiscoOttico
Questa funzione rappresenta un algoritmo originale sviluppato appositamente
per la presente applicazione.
Dopo aver osservato le immagini del fondo oculare in mio possesso, ho notato
che il disco ottico, essendo l’attaccatura del nervo ottico, è attraversato dalle
arterie principali: queste lo attraversano correndo verticalmente rispetto al piano
della foto. Da qui nasce la mia idea di cercare le arterie verticali per eliminare il
disco ottico.
Per prima cosa etichetto tutte le macchie trovate dal processo di binarizzazione.
L’algoritmo per etichettare è il seguente:
Algoritmo per etichettare:
(1) inizzializzo la variabile numero_etichetta a 0;
(2) scorro tutti i pixels dell’immagine;
(3) se trovo un pixel a 255 (siamo di fronte o a un essudato o al disco
ottico) non ancora etichettato:
a) incremento la variabile numero_etichetta;
b) metto il pixel in una pila;
(4) finché la pila non è vuota:
a) estraggo l’ultimo pixel della pila;
b) lo etichetto;
c) controllo tutti vicini: se un vicino vale 255 lo si mette nella
pila;
96
Capitolo 4– Il progetto
Dopo avere etichettato tutte le macchie, ne calcolo il centro e il raggio massimo
per cercare di raggruppare le più vicine; una volta raggruppate, mi concentro
sull’estrazione dei bordi delle vene: per far ciò estraggo il canale verde
dall’immagine iniziale (è il meno affetto da rumore) e lo convolvo con il
gradiente (vedi appendice B) di una funzione Gaussiana larga 9 pixel, per
ottenere prima solo i bordi verticali e poi solo quelli orizzontali. Estratti questi
bordi, li utilizzo per ottenere un’immagine con i soli bordi massimamente
verticali. A questo punto etichetto le coppie di pixel delle arterie con la loro
larghezza: dopo passo l’immagine risultante attraverso un filtro per eliminare le
coppie isolate che potrebbero essere frutto di rumore.
A questo punto siamo alla fine: scorro l’immagine con le arterie verticali e cerco
quella macchia che comprende una coppia di pixel delle arterie; se ce ne è più
di una estraggo quella con area maggiore. Il disco ottico coinciderà con tale
macchia. Il risultato di questo algoritmo è il seguente:
fig. 4.9. Immagine prima dell’applicazione EliminazioneDiscoOttico.
97
Capitolo 4– Il progetto
fig. 4.10. Immagine risultante.
4.5- La funzione EstrazioneFeatures
Come passo finale il programma attraverso la funzione EstrazioneFeatures
estrae alcune caratteristiche delle macchie (cioè degli essudati) che potrebbero
essere utili, a mio parere, ai medici per supervisionare l’evoluzione della
malattia e i possibili miglioramenti o peggioramenti dovuti a cure adatte o errate.
Vengono salvate su un file di testo le seguenti features:
1. area della macchia;
2. perimetro della macchia;
3. coordinate del centro;
4. raggio massimo;
5. raggio medio;
98
Capitolo 4– Il progetto
6. distanza dal disco ottico;
7. macchia più vicina;
8. distanza dalla macchia più vicina;
9. emisfero, cioè se si trovano nella parte superiore o inferiore rispetto al
disco ottico;
10. valori RGB (red, green, blue) massimi;
11. valori RGB medi;
12. media della luminanza;
13. varianza della luminanza;
Dopo consultazione con i medici potranno essere, in qualunque momento,
aggiunte altre caratteristiche che si riterranno significative per lo studio della
retinopatia diabetica.
4.6- Valutazione delle prestazioni
Nel mio progetto ho sperimentato tre tipi di SVM: il modello lineare, il modello
polinomiale e il modello RBF. Per la tesi mi sono state fornite 25 immagini a
colori della retina: 13 foto, con i loro circa 1000 objects, sono state usate per il
training delle mie SVMs, operazione durata circa due settimane. Ogni object è
stato etichettato come una regione target o come una regione background. Le
restanti 12 immagini sono state usate per il test sulla qualità del progetto: per
qualità intendo due parametri, la sensibilità e la specificità. La sensibilità è il
rapporto delle decisioni positive vere rispetto al numero dei casi positivi; la
specificità è il rapporto delle decisioni negative vere rispetto al numero totale dei
casi negativi. I risultati sono riportati nella tabella 1.
CLASSIFICATORE
SENSIBILITA’
SPECIFICITA’
SVM lineare
50%
90%
SVM polinomiale
55%
90%
SVM RBF
85%
82%
Tabella 1. Risultati.
99
Capitolo 4– Il progetto
Le regioni target delle dimensioni di circa 25x25 pixels sono classificate
ottimamente da tutti e tre i classificatori, mentre quelle più piccole sono ben
classificate soltanto dalla SVM RBF: quest’ultima SVM classifica erroneamente
alcune zone intorno al disco ottico come regioni target. Come è evidente dalla
tabella 1 il miglior compromesso per buone prestazioni è l’utilizzo del
classificatore SVM RBF. Considerando il numero ristretto di immagini di
training, i risultati sono abbastanza buoni. Sicuramente con più immagini il
progetto migliora notevolmente, considerando che le SVM si basano sulla
Statistical Learning Theory.
4.7- Ulteriori sviluppi
Per rendere l’interfaccia più immediata e più semplice da usare, la classe da me
implementata è stata importata in una interfaccia grafica sviluppata con Visual
C++ Microsoft, come si può vedere in fig. 4.11.
fig. 4.11. Interfaccia grafica con Visual C++ Microsoft.
100
Capitolo 4– Il progetto
I tasti del menù sono pratici per qualsiasi applicazione medica.
4.8- Conclusioni
L’obbiettivo della mia tesi era di implementare un metodo per automatizzare
l’analisi delle immagini a colori della retina con lo scopo di individuare e
classificare le lesioni superficiali dovute alla maculopatia diabetica. I risultati
sono
stati
abbastanza
soddisfacenti
e
mostrano
che
l’identificazione
automatizzata degli essudati sulla base delle caratteristiche cromatiche del
fondo oculare è pratica e di facile utilizzo per gli oftalmologi.
Un lavoro futuro per perfezionare il programma sarà sicuramente il
miglioramento del training e del test. Una volta raggiunta una sensibilità e una
specificità intorno al 90-93%, un ulteriore sviluppo al mio progetto potrebbe
essere l’identificazione di altre patologie della retina, come i microaneorismi e le
emorragie, per realizzare un sistema di screening a basso costo completo.
101
Capitolo 4– Il progetto
APPENDICE A- Stretching dell’istogramma
L’istogramma è una funzione che mostra il numero di pixels nell’immagine che
hanno un certo livello di grigio: per ogni livello vale
i(x,y)∈{0,1,2,...,2k-1} ∧ k∈Z
H(z) = ∫∫ [i(x,y) = z] dx dy
L’istogramma è un operatore unario che mappa l’immagine in un array di valori
{H(0),H(1),H(2),...,H(2k-1)}. E’ da notare che un’immagine ha un unico
istogramma, ma in generale non vale il contrario poiché un istogramma
contiene soltanto informazioni radiometriche e non informazioni spaziali. Un
esempio di istogramma è in fig. (a).
fig. (a). Esempio di istogramma.
Quando il range dei livelli di grigio dell’immagine originale non copre l’intero
range disponibile, il contrasto è mediocre. Per incrementare il contrasto si
utilizza il metodo dell’ histogram stretching: il livello minimo dell’immagine può
102
Capitolo 4– Il progetto
essere rimappato nel livello minimo della scala dei grigi e lo stesso può essere
fatto con il massimo; gli altri livelli dell’immagine originale sono rimappati
linearmente in livelli intermedi (vedi fig. (b)-(c)).
fig. (b). Immagine e istogramma prima dello stretching.
fig. (c). Immagine e istogramma dopo lo stretching.
Dopo lo stretching, l’istogramma ha la seguente forma
o(x,y) = (2k-1){[i(x,y)-min] / [max-min]}.
103
Capitolo 4– Il progetto
APPENDICE B- Metodo del gradiente per evidenziare i vasi sanguigni
La convoluzione di un’immagine I(x) con un kernel Gaussiano
G(x) = exp[-(x12+x22)/2σ2]
produce una immagine “liscia” e pulita dal rumore
S(x) = G(x) ⊗ I(x)
Se eseguito come convoluzione in due dimensioni, il calcolo può essere
particolarmente pesante (specialmente per grandi valori di σ). Anche se la
costruzione delle maschere di miglioramento dei vasi è molto efficiente, il
calcolo di S(x) renderebbe l’algoritmo inefficiente: fortunatamente esistono delle
strategie per renderlo efficiente.
Infatti è degno di nota che i kernels gaussiani sono separabili, cioè possono
essere espressi come
G(x) = g(x1)g(x2)
con g(z) = exp(-z2/2σ2)
Ciò significa che la convoluzione in due dimensioni G(x) ⊗ I(x) può essere
eseguita efficientemente convolvendo il kernel 1-D g(z) con le colonne
dell’immagine risultante dalla convoluzione delle righe di I(x) con lo stesso
kernel, cioè
S(x) = (g(x1) ⊗ I(x1,x2)) ⊗ g(x2)
Potendo applicare questa proprietà, possiamo iniziare a usare G(x) per
costruire altre maschere capaci di enfatizzare i vasi sanguigni o alcune delle
loro caratteristiche.
104
Capitolo 4– Il progetto
Così i tratti dei vasi possono essere approssimativamente pensati come delle
coppie di bordi a gradino vicini e paralleli con opposto contrasto: iniziamo
costruendo filtri sensibili ai bordi dei vasi aventi specifiche direzioni.
Al fine di enfatizzare i contorni dei vasi ortogonali alla direzione di un dato
vettore unitario (versore) n usiamo una stima della derivata direzionale In(x)
dell’immagine originale I(x) in una tale direzione:
In(x) = dI(x) / dn ≈ dS(x) / dn = d(G(x) ⊗ I(x)) / dn = Gn(x) ⊗ I(x)
dove Gn(x) = dG(x) / dn è una derivata direzionale del kernel Gaussiano (la fig.
(d) rappresenta il grafico di Gn(x) per n=[1,0]) e l’ultima equazione è dovuta alla
linearità della convoluzione e del’operatore differenziale.
fig. (d). Grafico di un operatore derivata direzionale del kernel Gaussiano Gn(x).
La ragione per poter utilizzare questa approssimazione è che Gn(x) può essere
decomposta come
Gn(x) = n ⋅ ∇G(x) = n1∂G(x)/∂x1 + n2∂G(x)/∂x2
dove n1 e n2 sono le componenti di n. Questo significa che In(x) può essere
ottenuta al costo di una addizione e due moltiplicazioni per pixel una volta che
105
Capitolo 4– Il progetto
sono note ∂G(x)/∂xi ⊗ I(x) (per i=1,2). Fortunatamente, non sono richieste tutte
queste convoluzioni e le maschere di derivate parziali della Gaussiana possono
essere decomposte con considerevole accuratezza con le medie di kernels
Gaussiani spostati appropriatamente. Per esempio
∂G(x)/∂x1 ≈ (1/σ) {G(x+[(σ/2),0]) – G(x-[(σ/2),0])}
Così ∂G(x)/∂xi ⊗ I(x)
può essere stimato da S(x) soltanto al costo di una
sottrazione e di una moltiplicazione per pixel.
Combinando appropriatamente le versioni spostate della nostra efficiente
realizzazione di Gn(x) è ora possibile costruire filtri sensibili alla struttura dei
vasi sanguigni in ogni direzione.
106
Bibliografia ragionata
Bibliografia ragionata
Introduzione
•
[1] Wang H., Hsu W., An effective approach to detect lesions in color
retinal images, 2002, IEEE, Singapore
•
[2] Osareh A., Mirmehdi M., Automatic Recognition of Exudative
Maculopathy using Fuzzy C-Means Clustering and Neural Networks,
IEEE, Bristol
•
[3] Osareh A., Mirmehdi M., Colour Morphology and Snakes for Optic
Disc Localisation, IEEE, Bristol
•
[4] Osareh A., Mirmehdi M., Classification and Localisation of DiabeticRelated Eye Disease, 2002, IEEE, Bristol
L’occhio umano
•
Duke-Elder S., System of Ophthalmology, 1965, Kimpton, London
•
Testut L., Latarjet A., Anatomia umana, IV, 1971, UTET, Torino
•
Toselli C., Miglior M., Oftalmologia clinica, 1979, Monduzzi, Bologna
•
Giunchi G., Enciclopedia medica italiana, 1986, USES, Firenze
107
Bibliografia ragionata
La retina
•
Cavallotti C., Amenta F., Vie e centri nervosi, 1982, USES, Firenze
•
Davson H., The physiology of the eye, 1972, Academic Press, New York
•
Bloom W., Fawcett D. W., Trattato di istologia, 1981, Piccin, Padova
•
Morgan W. W., Cell biology of the eye, 1982, Academic Press, New York
•
Frezzotti R., Guerra R., Oftalmologia essenziale, 1982, C.E.A., Siena
Tecniche di clustering
•
[5] Zadeh L.A., Fuzzy Set, 1965, Information and control vol.8
•
Yager R.R., Filer D.P., Template-based fuzzy sistems modelling, 1994, J.
Intell. And Fuzzy Syst. Vol. 2
•
Mandami E.H., Application of fuzzy alghorithms for simple dynamic plant,
1974, IEEE
•
Larsen P.M., Industrial applications of fuzzy logic control, 1980, Mach.
Studies vol.12 n.1
•
Dubois D., Prade H., Fuzzy sets and Systes: theory and application,
1980, FL. Accademic, Orlando
108
Bibliografia ragionata
•
Bezdek J., Pattern Recognition with Fuzzy objective Function Algorithm,
1981, Plenum New York
•
Dunn J.C., A fuzzy relative of the ISODATA process and its Use in
detecting compact,Well separated clusters, 1974, J. Cybern
•
Bezdek J., Fuzzy mathematics in pattern classification, 1973, Cornell
University, Ithaca
•
Vapnik V.N., The Nature of Statistical Learning Theory, 1995, New York
•
Scholkopf B., Support Vector Learning, 1997, Munich
•
Burges C.J.C., A tutorial on Support Vector Machines for Pattern
Recognition, Boston
•
Vapnik V.N., An overwiew of Statistical Learning Theory, 1999, IEEE
•
Scholkopf B., Statistical Learning and Kernel Methods, 2000, Cambridge
•
Shilton A., Incremental Training of Support Vector Machines, 2005, IEEE
•
Palaniswami M., Machine learning using support vector machines, 2000,
AISAT
109