A genetic algorithm for the
classification of natural
corks
Introduzione
Sughero naturale
-Il sughero è un prodotto naturale ben conosciuto nell’industria del
vino pregiato. Il maggior vantaggio del sughero naturale è di
permettere una buona diffusione gassosa che si adatta alla
maturazione del vino.
-Il processo di produzione dei tappi di sughero è
composto di differenti fasi.
Nella prima fase il sughero viene stoccato e
lasciato stagionare.
Nella seconda fase il sughero viene bollito nell’acqua e classificato.
Nell’ultima fase il sughero viene tagliato a strisce verticali, di
dimensioni proporzionali alla lunghezza del tipo di tappo che si dovrà
produrre.
2
Introduzione
Classificazione dei tappi di sughero:
In questo studio ci interesseremo alla fase di classificazione.
Per classificare il sughero vengono considerate dall’uomo esperto
diverse caratteristiche: i fori, le crepe, i colori,..
La qualità del sughero dipende dalla natura, la quantità, la misura,
e dalla posizione dei difetti.
In questo studio i tappi di sughero vengono classificati in base
all’aspetto delle due teste del tappo.
Questa operazione permette di separare i tappi di sughero in
3 categorie.
3
Introduzione
Per ottenere informazioni necessarie per la classificazione vengono
usate fotocamere CCD che ci danno delle figure per ogni testa del
tappo di sughero.
Da queste figure otteniamo dei valori numerici.
Un programma di classificazione è allora usato per determinare le
classi di ogni tappo.
La classificazione viene fatta confrontando valori numerici ottenuti
dalla fotocamera con parametri interni del programma di
classificazione.
L’obiettivo di questo studio è di analizzare come l’algoritmo
genetico riesce a determinare questi parametri che vengono utilizzati
dal programma di classificazione.
4
Introduzione
Affrontiamo nell’ordine i seguenti problemi:
-nella prima sezione introduciamo il problema della classificazione
-nella seconda sezione viene affrontato il punto di vista matematico
-nella terza sezione viene presentato GA
-nella quarta sezione vengono mostrati i risultati sperimentali
5
1° sezione
4 CCD fotocamere permettono di ottenere 2 figure per ognuna delle
due teste del tappo.
-Ogni figura è stata analizzata per estrarre 15 parametri che
registreremo CAMij
In questo studio non viene analizzato il metodo usato per estrarre
questi parametri, né la natura dei parametri selezionati.
-Un programma di classificazione analizza i 15 parametri dati da
ognuna delle 4 camere. Per semplificare diremo che il programma di
classificazione (AUTOCLASS) usa 30 parametri interni chiamati
(P1i, P2i), i [1;15].
CLASSIFICAZIONE DEI TAPPI DI SUGHERO
6
1° sezione
CLASSIFICAZIONE DEI TAPPI DI DI SUGHERO
7
-L’algoritmo usato dal programma di classificazione confronta i
valori numerici ottenuti dalle figure CAMij con i valori del
programma di classificazione (P1i, P2i).
-Una buona impostazione di questi parametri (P1i, P2i) i [1;15]
permetterà di classificare i tappi di sughero nella maniera più
giusta secondo le informazioni date dalla fotocamera.
ALGORITMO DI CLASSIFICAZIONE
8
2°sezione
Formule matematiche:
Vengono identificate un insieme di variabili V, un insieme di domini
per le variabili, un insieme di costrizioni per le variabili e una
funzione costo da essere ottimizzata.
•Variabili:
l’insieme di variabili è composto dai parametri P1i e P2i che sono
rinominati Vi
FORMULE MATEMATICHE
9
2°sezione
•Domini:
ogni variabile Vi deve avere un valore positivo e intero.
•Costrizioni:
questa costrizione è usata per evitare che un tappo di sughero che
non può essere accettato nella classe 2 venga accettato nella classe
1 (classe 1 è di più alta qualità).
Questa costrizione è dovuta all’algoritmo di classificazione detto
prima.
FORMULE MATEMATICHE
10
2°sezione
Infatti senza questa costrizione avremmo:
k [1,15]
Vk+15<CAMik<Vk
CONSEGUENTI
IMPLICAZIONI
ANTECEDENTI
Un tappo di sughero allora può essere messo nella classe 1 (CAMik<Vk)
mentre viene escluso dalla classe 2 (Vk+15<CAMik).
•Funzione costo è la somma dei tappi di sughero che sono
FUZZIFICAZIONE
classificati in modo corretto.
Questi tappi di sughero classificati
sono quelli per cui la classe
REGOLE
determinata dall’algoritmo IMPLICAZIONE
di classificazione è la stessa di quella
data dall’uomo.
DEFUZZIFICAZIONE
L’obiettivo è di massimizzare questa funzione.
PROVE PER LA
VALIDAZIONE
FORMULE MATEMATICHE
11
L’algoritmo genetico parte da un certo numero di possibili soluzioni
(individui) che evolvono durante un numero di interazioni
(generazioni).
Il meccanismo di evoluzione è basato su alcuni operatori genetici
come il crossover e mutazioni.
Il crossover prende 2 individui per produrre 2 nuove individui.
La mutazione consiste nella modificazione casuale di un gene di
un individuo.
Finita la fase di evoluzione ad ogni soluzione viene assegnato un
valore di fitness. I migliori individui sopravviveranno e potranno
produrre nuovi individui.
La fine dell’algoritmo può avvenire:
-dopo un numero predefinito di generazioni o valore di fitness
-dopo un numero di generazioni senza miglioramenti
DEFINIZIONE DI ALGORITMO GENETICO
12
3°sezione
Dobbiamo determinare i parametri per la classficazione con GA.
Ogni individuo è definito da un vettore: Vi=Pi1,..Pi10,..Pi30
Ogni gene corrisponde ad uno dei 30 parametri e prendo il suo valore
dal valore del suo dominio. Viene usata una popolazione di 40
individui.
CROSSOVER E MUTAZIONE:
Il crossover è generato per creare nuovi individui.
Supponiamo che noi decidiamo di mutare il Kth gene Vik di un
individuo.
La selezione viene effettuata sull’intera popolazione e metà dei migliori
individui sono conservati.
Il miglior individuo è sempre registrato in una variabile V* ed è
aggiornato ogni volta che una soluzione migliore è trovata.
L’algoritmo si ferma dopo un numero di generazioni senza
miglioramento (fissato a 50 generazioni).
NOSTRO ALGORITMO GENETICO
13
3°sezione
Per valutare il fitness di un individuo scorriamo il programma di
classificazione AUTOCLASS con valori parametrici di individui
presenti in un database conosciuto.
Questo database è costituito da un insieme di tappi di sughero
classificati.
Secondo il numero di tappi correttamente classificati viene assegnato
un punteggio ai singoli individui che sono stati valutati.
Di qui viene usato un programma esterno per la valutazione del
fitness ( la valutazione costituisce il tempo maggiore dell’algoritmo )
L’algoritmo usa una funzione di diversificazione.
Se i migliori individui della popolazione non evolvono durante 10
generazioni allora l’intera popolazione subisce una mutazione (ogni
individuo è mutato) per evitare il problema della prematura convergenza
della popolazione.
NOSTRO ALGORITMO GENETICO
14
MOTORE
INFERENZIALE
INTERFACCI
UTENTE
INTERFACCIA
SVILUPPATORE
AGGOIRNAMENTO
DELLA CONOSCENZA
3°sezione
NOSTRO ALGORITMO GENETICO
15
4°sezione
Risultati sperimentali su dati artificiali:
Consideriamo un insieme di dati artificiali e casuali dove è conosciuta
la soluzione ottimale che è, per ogni tappo, la sua classe.
CONSOLIDATO
Usando tale data set possiamo paragonare i risultati dell’GA con le
EVOLUTO
soluzioni ottimali.
Questi dati sono ottenuti creando una tabella di dimensioni
NxM
FLESSIBILE
dove N=5000 (numero di tappi teorici) e M=61 (60 valori
numerici
OTTIMIZZATO
simulati che di solito sono dati dalle 4 camere più la classe del tappo)
In dettaglio la prima linea è calcolata casualmente e le informazioni
successive sono calcolate da una funzione che prende il valore della
cella della prima linea e un valore casuale.
Per ognuna delle N linee ci sono 15 parametri dati dalle 4 camere per
ogni tappo.
Poi per assegnare a ogni tappo la classe procediamo nel seguente modo.
RISULTATI SPERIMENTALI SU DATI ARTIFICIALI
16
4°sezione
Viene presa casualmente una combinazione di 30 parametri da usare
con AutoClass.
Scorriamo AutoClass con questi parametri per classificare tutti i 5000
tappi.
Quindi conosciamo la classe di ogni tappo e anche i parametri necessari
per trovare questa classificazione ( questi parametri possono essere
considerati essere ottimali per la classificazione di questi tappi ).
Ora possiamo scorrere il nostro algoritmo genetico su questi dati per
vedere se è capace di trovare questi parametri ottimali per classificare
correttamente tutti i tappi.
Noi testiamo il programma su data sets con differenti misure (50, 100,
200, 500, 1000 e 5000 tappi).
Scorriamo 10 volte l’algoritmo su ogni data set. I tests erano realizzati
su un Pentium II con 200 MHz e 64 MB di RAM.
RISULTATI SPERIMENTALI SU DATI ARTIFICIALI
17
4°sezione
CONSEGUENTI
DEDUZIONI
BASE DEI FATTI
BASE DEI DATI
IMPLICAZIONI
ANTECEDENTI
Avremo i seguenti risultati:
RISULTATI SPERIMENTALI SU DATI ARTIFICIALI
18
4°sezione
Dalla tabella si osserva, per esempio che con 200 tappi di sughero
l’algoritmo dà una giusta classificazione per 162 tappi su 200 (81%).
L’ultima colonna indica il tempo medio per ogni corsa.
Si vede che il tempo di risoluzione incrementa secondo la misura del
data set. Questo è dovuto alla fase di valutazione che usa un programma
di classificazione esterna (AutoClass).
Conclusione:
Questo esperimento è molto soddisfacente da un punto di vista pratico.
Mostra che l’algoritmo è capace di trovare la migliore soluzione
ottimale.
Si può parlare di soluzione ottimale perché è conosciuta e sappiamo che
possiamo cercarla.
RISULTATI SPERIMENTALI SU DATI ARTIFICIALI
19
4°sezione
Risultati sperimentali su dati reali:
Da una selezione visuale realizzata da uomini esperti 173 tappi erano
classificati secondo le loro teste. Avremo i seguenti risultati:
APPRENDIMENTO
RAPPRESENTAZIONE
DELLA CONOSCENZA
Analizziamo
i tappi di ogni classe con
le 4 fotocamere
in modo da
MEMORIZZAZIONE
CAPACITÀ
DECISIONALI
estrarre i 60 parametri da ogni tappo.
I dati sono registrati in una tabella con 61 colonne.
La classe
VALUTAZIONE
RIUTILIZZAZIONE
determinata dall’occhio esperto è indicata nella
61st colonna
DELL’OTTIMO
RISULTATI SPERIMENTALI SU DATI REALI
20
4°sezione
Scorriamo il nostro algoritmo per determinare i 30 parametri di
classificazione Vi i [1,30] tale che la classificazione è la stessa che è
stata determinata dall’uomo esperto.
Scorriamo l’algoritmo 20 volte prima di selezionare la soluzione
migliore.
RISULTATI SPERIMENTALI SU DATI REALI
21
4°sezione
RISULTATI SPERIMENTALI SU DATI REALI
22
4°sezione
RISULTATI SPERIMENTALI SU DATI REALI
23
4°sezione
La prossima figura mostra la tipica evoluzione della funzione di fitness
degli individui migliori con il numero di generazioni.
Si vede che il fitness dei migliori individui aumenta rapidamente per
le prime 60 generazioni. Poi l’evoluzione rallenta e si ferma intorno
a 181 con un migliore fitness di 130.
RSULTATI SPERIMENTALI SU DATI REALI
24
4°sezione
Da questi risultati noi sappiamo che i parametri di classificazione
determinati dall’algoritmo genetico permettono di classificare 130 su
173 tappi di sughero come ha indicato l’uomo esperto.
Noi ora vogliamo sapere esattamente la classificazione per ogni tappo.
Per questo scopo prendiamo uno dei migliori individui con fmax=130.
Ora riscorriamo il programma di classificazione con i parametri di
classificazione dati dall’individuo scelto. Applicato ai nostri 173 tappi
di sughero otteniamo i seguenti risultati:
RISULTATI SPERIMENTALI SU DATI REALI
25
4°sezione
Dalla tabella si può vedere che su 70 tappi che sono classificati dagli
esperti nella classe 1, 61 di loro sono classificati dal sistema di
classificazione in classe 1, 8 in classe 2, e 1 in classe 3.
Circa il 75% dei tappi di sughero viene classificato nello stesso modo
sia dall’algoritmo che dall’uomo esperto.
RISULTATI SPERIMENTALI SU DATI REALI
26
4°sezione
Se noi paragoniamo questi risultati con quelli ottenuti su tappi teorici
possiamo concludere che i risultati su dati reali sono meno buoni.
Due fattori possono spiegare la differenza tra questi due esperimenti.
-il primo è dovuto alla classificazione fatta da umani esperti
-il secondo fattore è più preoccupante ed è relativo all’algoritmo di
classificazione usato (AutoClass). I dati stessi che noi usiamo non
possono permettere di classificare correttamente il set dei tappi.
LIMITI
27
Conclusione:
La classificazione dei tappi di sughero naturali è molto importante
nell’industria del vino.
Ci siamo soffermati sul problema dell’ottimizzazione dei parametri per
un sistema di classificazione automatico.
Il problema riguarda 30 variabili con un enorme numero (sopra i 10 000)
di possibili valori per questi parametri.
Per risolvere il problema abbiamo sviluppato un approccio basato
sull’algoritmo genetico per cercare una buona combinazione per i 30
parametri.
L’approccio proposto è stato valutato su entrambi i dati reali ed artificiali
e i risultati ottenuti sono stati più che soddisfacenti.
Le analisi dei risultati hanno dimostrato che sarebbe possibile migliorare
il sistema di classificazione modificando altre fasi del processo di
classificazione (incluso il programma di classificazione).
CONCLUSIONE
28
Scarica

Claudia Cava