Stima della pressione tracheale nel controllo della ventilazione meccanica mediante genetic programming

470 views

Published on

tesi triennale in ingegneria informatica

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
470
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Stima della pressione tracheale nel controllo della ventilazione meccanica mediante genetic programming

  1. 1. Università degli Studi di Trieste DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA _________________________________________________________________ Corso di Laurea in Ingegneria dell’Informazione STIMA DELLA PRESSIONE TRACHEALE NEL CONTROLLO DELLA VENTILAZIONE MECCANICA MEDIANTE GENETIC PROGRAMMING LAUREANDA RELATORE Ngouoyiwouo Mfouapon Nadine Prof. Alberto Bartoli CORRELATORE Dott. Alessandro Turco SESSIONE STRAORDINARIA _______________________________________________________________________________ Anno Accademico 2012-2013
  2. 2.   2  Indice I – INTRODUZIONE 3 II- ANALISI E STRUMENTI 5 1) Programmazione Genetica 5 2) Evolutionary Design 7 3) Dati 10 III- ESPERIMENTO NUMERICO 12 1) Organizzazione dei dati 12 2) Ricerca dei parametri ottimali 13 3) Risultati 19 IV- VALIDAZIONE 20 V- CONCLUSIONI E POSSIBILI SVILUPPI FUTURI 21 Bibliografia e Sitografia 22 Ringraziamenti 24
  3. 3.   3  I. INTRODUZIONE In medicina, la ventilazione meccanica consiste nel compensare o assistere la respirazione spontanea del paziente, utilizzando un dispositivo chiamato “ventilatore”. Essa è più spesso praticata in un contesto di cure critiche (medicina d’urgenza, terapia intensiva o intermedia) e di anestesia. Esistono numerose metodologie di ventilazione meccanica. In questa tesi ci siamo interessati in particolare alla “ventilazione percussiva ad alta frequenza”. La ventilazione percussiva ad alta frequenza (High Frequency Percussive Ventilation, HFPV) è una metodologia di ventilazione meccanica non convenzionale che associa gli aspetti benefici della ventilazione meccanica convenzionale (CMV) con quelli della ventilazione ad alta frequenza (HFV) [1]. Nel corso degli anni, questo tipo di ventilazione si è dimostrato molto utile nel trattamento di alcune condizioni patologiche: trauma cranico chiuso [2], sindrome da distress respiratorio dell’adulto (adult respiratory distress syndrom, ARDS) causato da ustioni ed inalazione di fumo [3], [4], pazienti con insufficienza respiratoria acuta (acute respiratory failure, ARF) [5], neonati con malattia delle membrane ialine o sindrome da distress respiratorio (RDS) [6]. L’utilizzo della ventilazione percussiva ad alta frequenza in generale comporta l’uso del tubo endotracheale1 (EET) che connette il circuito del ventilatore alla via respiratoria del paziente. La Figura 1 mostra un tubo endotracheale inserito in trachea [20]. La pressione misurata dal ventilatore è la somma della variazione di pressione nel tubo e della pressione tracheale dissipata per gonfiare i polmoni. La pressione del flusso d’aria insufflato dal ventilatore deve essere controllata molto accuratamente per evitare danni ai polmoni come il volutrauma e il barotrauma [7]. Poiché, al momento la pressione al livello della trachea non può essere misurata, è necessario avere un modello per stimare tale pressione basandosi sulle proprietà del tubo (EET) e sulle proprietà del flusso d’aria che al momento possono essere misurati in pratica clinica.                                                              1 Tubo di materiale plastico, spesso monouso, che viene inserito nella trachea del paziente attraverso la bocca oppure attraverso il naso. [13]
  4. 4.   4  Figura 1. Tubo endotracheale inserito in trachea attraverso la bocca: A- tubo endotracheale (blu), B- cuffia del tubo di gonfiaggio con palloncino, C- trachea, D- esofago. Nell’articolo “A Novel Estimation Methodology for Tracheal Pressure in Mechanical Ventilation Control” [8] si descrive un esperimento basato sulla Programmazione Genetica, fatto per generare tale modello. In questa tesi ci proponiamo di riprodurre con il software modeFRONTIER l’esperimento numerico descritto nell’articolo e di confrontarne i risultati. Ovvero, si vogliano testare le prestazioni dell’algoritmo di programmazione genetica (Evolutionary Design) presente in modeFRONTIER su un problema già studiato.
  5. 5.   5  II. ANALISI E STRUMENTI 1) Programmazione genetica Il nostro esperimento si basa sulla programmazione genetica (Genetic Programming, GP). La programmazione genetica è un metodo sistematico di programmazione automatizzata, ispirata dall’evoluzione biologica, per creare programmi informatici che risolvano un determinato problema [9]. La GP è stata usata in una vasta gamma di applicazioni quali la web security [10], la predizione del prezzo dell’elettricità [11], il text mining [12], la progettazione di sistema(per esempio per aerei, treni,circuiti elettronici, etc.). La GP parte da una popolazione iniziale di programmi che nel nostro caso specifico sono semplicemente formule matematiche. Tali formule sono generate in modo casuale da un insieme predefinito di funzioni (function set) e di terminali (terminal set). Ciascuno di questi programmi chiamato individuo, costituisce una soluzione candidata per il problema. La rappresentazione ad albero è usata per raffigurare ciascuna formula. Ogni nodo- foglia è un elemento preso dall’insieme predefinito di terminali e ogni nodo-padre è un elemento preso dall’insieme predefinito di funzioni. Come esempio, la Figura 2 mostra la rappresentazione in struttura ad albero di un individuo in GP. Figura 2. Rappresentazione ad albero della formula “ € Paw (t)- € Rtube ˙V(t) - € I ˙˙V(t)”  
  6. 6.   6  La versione di base della programmazione genetica richiede di specificare le cinque principali fasi preparatorie elencate di seguito: a. L’insieme di terminali (terminal set) che consiste generalmente di variabili e costanti dei programmi, numeri random, etc. b. L’insieme di funzioni (function set) che contiene generalmente funzioni primitive come, ad esempio, operatori aritmetici. c. La funzione d’idoneità (fitness function) per misurare esplicitamente o implicitamente l’idoneità degli individui nella popolazione (cioè quanto bene un individuo è capace di risolvere il problema). d. Determinati parametri di controllo dell’esecuzione del programma (numero d’individui nella popolazione, numero di generazioni, etc.). e. Il criterio di terminazione e il metodo per scegliere il risultato dell’esecuzione. Le fasi preparatorie sono gli input definiti dall’utente umano del sistema GP. La formula ancora chiamata individuo è il risultato dell’esecuzione di GP. Partendo dalla generazione casuale della popolazione iniziale (come detto più in alto), l’esecuzione di GP procede in una ricerca evolutiva strutturata in modo seguente: a. Esegue tutti questi programmi e raccoglie i risultati. b. Valuta l’idoneità di ogni individuo con la funzione di fitness. c. Costruisce nuovi individui (figli) applicando gli operatori genetici scelti (come ad esempio il “crossover”, la mutazione) sugli individui (genitori) con maggiore idoneità. d. Costruisce una nuova popolazione composta da individui con maggiore idoneità scelti tra genitori e figli. Questa popolazione costituisce una nuova generazione. e. Questo processo viene ripetuto fino a quando, un criterio di terminazione è soddisfatto. Al giorno di oggi, esistono numerosi software di Programmazione Genetica, scritti nei tanti e diversi linguaggi di programmazione. Ad esempio i software “LIL-GP” scritto in C, “GPC++” scritto in C++, “JGProg” scritto in Java, etc. [14] Il software usato in questa tesi è “modeFRONTIER” scritto in Java; è prodotto da ESTECO spa, azienda insediata presso l’Area di Ricerca di Trieste, che ha supportato la realizzazione di questa tesi. modeFRONTIER® è una piattaforma di integrazione che
  7. 7.   7  permette un interfacciamento diretto con un gran numero di strumenti Computer- Aided Design e Computer-Aided Engineering, dedicata all’ottimizzazione multiobiettivo, all’automazione dei processi di progettazione ingegneristica, all’analisi dei dati e al decision making in contesti multidisciplinari. Per l’esperimento in questa tesi, è stato usato il programma genetico Evolutionary Design (ED) implementato in modeFRONTIER, che descriveremmo nel paragrafo seguente. 2) Evolutionary Design ED è un’implementazione effettiva della metodologia GP per la regressione simbolica[15], [16], [17]. In generale, l’obiettivo del compito di regressione è di scoprire la relazione tra un insieme d’ingressi (o variabili indipendenti) x e un’uscita osservabile (o variabile dipendente) y. Nelle tecniche di regressione standard, il modello della forma funzionale f è noto in anticipo. Le uniche incognite sono alcuni coefficienti, cioè i parametri liberi del modello. ED utilizza funzioni primitive elementari. Queste funzioni possono essere combinate per specificare la funzione completa. Dato un insieme di funzioni, la forma funzionale complessiva indotta dalla programmazione genetica può assumere una varietà di forme. Le funzioni primitive sono di solito le funzioni aritmetiche standard come addizione, sottrazione, moltiplicazione e divisione, ma potrebbe includere anche funzioni trigonometriche e trascendenti. Qualsiasi combinazione ammissibile delle funzioni e delle variabili può essere ottenuta. La regressione simbolica è quindi una composizione di variabili di ingresso, coefficienti e funzioni primitive tale che l‘errore della funzione rispetto al risultato atteso sia minimizzato. Né la forma, né la dimensione sono specificate prima della regressione. Il numero di coefficienti e quali valori essi assumono sono ulteriori problematiche determinate nel processo di ricerca stesso. Attraverso l'uso di tali funzioni primitive, la programmazione genetica è in linea di principio capace di esprimere qualsiasi forma funzionale che utilizza le funzioni primitive fornite dall'utente. A differenza dei metodi tradizionali, il processo
  8. 8.   8  Evolutionary Design ottimizza automaticamente sia la forma funzionale che i valori dei coefficienti. ED è in grado di fornire risposte nel linguaggio simbolico della matematica, mentre altri metodi forniscono solo risposte in forma di serie di numeri, pesi, validi nel contesto di un modello definito in anticipo. Così, dopo l'allenamento la formula esplicita del modello di regressione è disponibile. Per lanciare l’allenamento di ED in modeFRONTIER, bisogna prima di tutto importare la tabella dei dati costituta di valori delle variabili di input e output. Ogni colonna corrisponde a una variabile ed ogni riga corrisponde ad un design (una combinazione di valori delle variabili). modeFRONTIER dispone di un wizard di importazione dei dati per guidare l’utente nell’ importazione dei dati, da un file (file di testo o file di Excel) oppure da un database server. Questo wizard consente anche di configurare la tabella impostando le variabili di input, di output e le loro proprietà. Nel nostro caso, abbiamo importato il file csv dei dati dell’esperimento tramite tale Data Import Wizard. Per quest’algoritmo di programmazione genetica, possono essere definiti diversi parametri: 1. Training set: Database/Insieme dei design per l’allenamento di Evolutionary Design. È possibile scegliere tra All Designs (in questo caso saranno usati per l’allenamento, tutti i design della tabella dei dati) e Only Market Designs (in questo caso, solo i design selezionati saranno usati per l’allenamento di ED.). 2. Exclude Error Designs: se selezionata, l'algoritmo scarta quei design che presentano errori di una o più variabili(di input o di output) non selezionate. Ad esempio se un design contiene una o più variabili senza valore oppure con un errore, allora viene rimosso dal training set. I design che presentano errori di una o più variabili selezionate sono già automaticamente esclusi dal training set. 3. Number of Jobs: numero di diverse ricerche evolutive gestite da ED. I risultati dei diversi jobs sono tutti presentati nel log, e il risultato migliore viene scelto automaticamente. 4. Tempo massimo ammissibile (s): l'algoritmo si ferma al raggiungimento di tale limite di tempo. 5. Crossover Depth: questo valore definisce la profondità massima per l’operazione di crossover. Tale operazione è applicata a degli alberi che rappresentano formule. Essa consiste nel generare due figli scambiando il ramo di un genitore con il ramo di un altro genitore. Il procedimento è esplicitato in Figura 3. Il Crossover depth è quindi la profondità massima del ramo preso da un genitore.
  9. 9.   9  6. Generations Number: questo valore definisce il numero di generazioni per il processo evolutivo. 7. Population Size: questo valore definisce il numero d’individui nella popolazione. Il numero di individui è uguale in tutte le generazioni durante il processo evolutivo. 8. Significant Decimals: numero di decimali significativi utilizzati per arrotondare i valori calcolati e la funzione di fitness . 9. Unbounded Expressions Policy: è possibile scegliere tra due diverse politiche: Allow Unbounded oppure Penalize Unbounded. Il range di variazione (codominio) di espressioni candidate del modello di regressione può essere illimitato (funzione con discontinuità infinita), oppure, al contrario può venire richiesto di essere limitato . I confini stimati delle espressioni risultanti da diversi job sono tutti presentati nel log. 10. Random Generator Seed: la modifica di questo valore permette l'esecuzione di ricerche diverse partendo dalla stessa popolazione iniziale . Il seed è un numero intero utilizzato per la ripetibilità di sequenza. Se due sequenze Evolutionary Design sono valutate con lo stesso seed, si generano e restituiscono sequenze identiche di numeri. Se il valore di inizializzazione è 0 , la sequenza è seminata automaticamente ad un valore basato sull'orologio macchina . 11. Functions Set: l'insieme delle funzioni primitive da utilizzare nel modello di regressione deve essere specificato in questo campo. 12. Multi-threading Policy: è possibile scegliere tra due diverse politiche: Use Maximum Number of Available Processors (utilizzo del numero massimo di processori disponibili) oppure User Defined (definito dall'utente). Infatti, la formazione di diversi lavori può essere eseguita in parallelo; in questo modo è possibile sfruttare i sistemi multi-core, riducendo il tempo di allenamento totale dell'algoritmo. 13. Number of Threads: questo campo è attivo solo quando il Multi-threading Policy è definito dall'utente. Questo parametro determina il numero di thread dei diversi job che sarà utilizzato in parallelo. Il limite superiore è fissato automaticamente al numero di processori / core disponibili sulla macchina locale.  
  10. 10.   10    Figura 3. Un esempio di crossover.     3) Dati Al fine di stimare la pressione tracheale per mezzo di Evolutionary Design siamo partiti da un database di variabili con valori misurati sperimentalmente in vitro (esperimento col polmone artificiale descritto nell’articolo su-citato) [8]. Questo database è costituito da due tabelle, una corrispondente all’esperimento col tubo endotracheale da 6.5 mm di diametro (tubo per bambini) e l’altro corrispondente all’esperimento col tubo endotracheale da 7.5 mm di diametro(tubo per adulti). Ciascuna delle due tabelle contiene valori per le variabili seguenti: - La pressione tracheale Ptr (t) - La pressione misurata dal ventilatore Paw (t) - Il flusso € ˙V
  11. 11.   11  - L’accelerazione volume € ˙˙V - La frequenza percussiva fp - La pressione di lavoro Pwork - Il diametro del tubo DEET - Carico resistivo del simulatore di polmoni Rsim - Carico di conformità del simulatore di polmoni Csim I valori delle variabili V’ , Paw (t), Ptr (t) e V’’ costituiscono un insieme di segnali respiratori2 rilevati durante la fase inspiratoria di ogni singolo ciclo respiratorio per una durata di 4 (s). Quindi, per ogni tubo endotracheale e per ogni combinazione diversa dei parametri Pwork, fp, Rsim, Csim è stato raccolto un insieme di segnali respiratori composto di 8000 x 4 campioni. La Figura 4 evidenzia solo due dei quattro componenti di tale segnale respiratorio: Paw (t) e Ptr (t) che sono rappresentati in ordinata. Il tempo è rappresentato in ascissa. Figura 4. Misurazioni di Ptr (t) e Paw (t) per il tubo di diametro 6.5 mm e per la combinazione di parametri Pwork = 40 cmH2O, fp =300ciclo/min, Rsim = 20 cmH2O/(Ls) e Csim = 10 mL/cmH2O.                                                              2 insieme di segnali respiratori: insieme dei valori di V’ , Paw (t), Ptr (t) e V’’ raccolti durante ogni singolo ciclo respiratorio. Hanno considerato 108 combinazioni dei parametri Pwork, fp, Rsim, Csim quindi hanno esperimentato 108 cicli respiratori.
  12. 12.   12  III. ESPERIMENTO NUMERICO L’esperimento numerico fatto in questa tesi per generare un modello di stima della pressione tracheale Ptr (t) ignota, per mezzo dell’algoritmo di programmazione genetica E-D, si è svolto nel modo seguente: 1) Organizzazione dei dati. Per ogni tubo endotracheale è stata suddivisa la corrispondente tabella in 5 blocchi ciascuno per la ricerca e la scelta di un modello e 1 blocco per il test delle formule. I primi 5 blocchi sono composti ciascuno da 7 insiemi di segnali respiratori per il training set e 3 insiemi di segnali respiratori per il validation set. L’ultimo blocco è composto dai rimanenti insiemi di segnali respiratori per il testing set. La Figura 5 illustra questa divisione; le parti in blu sono le tabelle di training set, in rosso le tabelle di validation set e in verde la tabella di testing set. In questo modo avremmo per ogni tubo, 5 modelli per la pressione tracheale. Figura 5. Organizzazione dei dati per ogni tubo.     Tabella iniziale    ⇓  Blocco1  Blocco2  Blocco3  Blocco4  Blocco5    Testing set    ⇓                              
  13. 13.   13  Abbiamo riprodotto la stessa organizzazione dei dati dell’articolo, ma non abbiamo usato il validation per scegliere, come modello, l’individuo con fitness migliore. Infatti, l'implementazione di ED inclusa in modeFRONTIER sceglie automaticamente la migliore formula tra tutti i job e tra tutte le generazioni basandosi sul training set e sull'esito dell'ottimizzazione interna affidata a NSGA-II []. Abbiamo invece utilizzato il validation set per il tuning dei parametri di ED, calcolando l’errore quadratico medio (mean square error, MSE) sulle funzioni/formule ottenuti negli esperimenti test. 2) Ricerca dei parametri ottimali La variabile Ptr (t) nelle tabelle è impostata come variabile di output. Abbiamo usato come variabili di input o Terminal set: - La pressione misurata dal ventilatore (P1) Paw(t) - Il flusso (V) - L’accelerazione volume (dV1) - La frequenza percussiva (f) fp - La pressione di lavoro (Pw) Pwork Non sono stati usati le variabili Rsim e Csim perché essendo variabili legate al simulatore di polmoni non sono misurabili in vivo. Il function set è composto di: operatori aritmetici: +, -, *, / , le funzioni esponenziale(exp) e potenza(pow) Per ogni tubo e per ogni blocco, sono stati eseguiti diversi esperimenti (esecuzioni GP) mantenendo immutati i valori di certi parametri e cambiando ogni volta i valori di altri parametri per valutare (in base all’errore quadratico medio, MSE) quali di essi portassero a risultati migliori. I parametri fissi sono: - Crossover Depth: 10 - Significant Decimals: 6 - Random Generator Seed: 1
  14. 14.   14  - Multi-threading Policy: Use Maximum Number of Available Processors (utilizzo del massimo numero di processori disponibili). Inizialmente abbiamo provato diversi set di parametri sul primo blocco e sul secondo blocco del tubo da 6.5 mm di diametro. Le tabelle seguenti illustrano tali esperimenti preliminari:   Primo Blocco (tubo da 6.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  P2_ED_3  Parametri  Number of Jobs 5 Maximum Allowable Time (s) 600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 600 Generations Number 1500 Population Size 200   Number of Jobs 5 Maximum Allowable Time (s) 600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 600 Generations Number 1000 Population Size 500   MSE  8.202932124  32.85895217  1.476096763  35.26441583  Attraverso le prove eseguite sui primi due blocchi del tubo di diametro 6.5 mm, abbiamo scelto di proseguire l’esperimento anche su tutti gli altri blocchi con il set dei parametri seguenti: Number of Jobs =5, Maximum Allowable Time (s) =3600, Generations Number =1000,   Secondo Blocco (tubo da 6.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  P2_ED_3  Parametri  Number of Jobs 5 Maximum Allowable Time (s) 600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 600 Generations Number 1500 Population Size 200   Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   MSE  18.57442143  13.20723808  0.921172951  0.926792459 
  15. 15.   15  Population Size =500 Ma non abbiamo ottenuto buoni valori di MSE per alcuni blocchi, perciò abbiamo riprovato su tutti i blocchi dei due tubi, cambiando solo il Maximum Allowable Time (s) = 7200. Abbiamo visto che aumentando il Maximum Allowable Time, l’errore era decrescente. Perciò abbiamo di nuovo riprovato aumentando sempre il Maximum Allowable Time (s) =10800. Di seguito sono riportate delle tabelle riassuntive degli esperimenti test eseguiti su tutti i blocchi:     Primo Blocco (tubo da 6.5 mm)  Funzione  P2_ED_2  P2_ED_4  P2_ED_5  Parametri  Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 10800 Generations Number 1000 Population Size 500   MSE  1.476096763  1.263911571  0.911725899        Secondo Blocco (tubo da 6.5 mm)  Funzione  P2_ED_2  P2_ED_3  P2_ED_4  Parametri  Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 10800 Generations Number 1000 Population Size 500   MSE  0.921172951  0.926792459  0.891277087 
  16. 16.   16    Terzo Blocco (tubo da 6.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  Parametri   Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 10800 Generations Number 1000 Population Size 500   MSE  8.556076443  1.425119226  1.266567463    Quarto Blocco (tubo da 6.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  Parametri  Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 10800 Generations Number 1000 Population Size 500   MSE  1.11920401  0.987614867  0.943222165      Quinto Blocco (tubo da 6.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  Parametri  Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 10800 Generations Number 1000 Population Size 500   MSE  6.851476818  0.796142996  0.836486433 
  17. 17.   17    Primo Blocco (tubo da 7.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  Parametri  Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   MSE  6.343043788  1.259394091  0.590351923        Secondo Blocco (tubo da 7.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  Parametri   Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 10800 Generations Number 1000 Population Size 500   MSE  3.062922721  3.180353145  2.436940922    Terzo Blocco (tubo da 7.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  Parametri   Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 10800 Generations Number 1000 Population Size 500   MSE  3.893228619  3.014154427  2.244820308           
  18. 18.   18      Quarto Blocco (tubo da 7.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  Parametri  Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 10800 Generations Number 1000 Population Size 500   MSE  1.380432086  1.370436148  1.37036796      Quinto Blocco (tubo da 7.5 mm)  funzione  P2_ED_0  P2_ED_1  P2_ED_2  Parametri   Number of Jobs 5 Maximum Allowable Time (s) 3600 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 7200 Generations Number 1000 Population Size 500   Number of Jobs 5 Maximum Allowable Time (s) 10800 Generations Number 1000 Population Size 500   MSE  5.729861654  0.823379  0.733360558  I risultati ottenuti durante la fase di tuning ci hanno permesso di capire che il limite temporale imposto era troppo stringente e non permetteva all'algoritmo di eseguire tutte le generazioni. Pertanto abbiamo stabilito il Maximum Allowable Time al valore massimo inseribile (100000). Nello scopo di poter meglio confrontare i risultati con quelli del sopracitato paper, abbiamo fissato i rimanenti parametri con gli stessi valori: - Number of jobs: 32 - Generetions number: 500 - Populations size: 500
  19. 19.   19  3) Risultati Al termine dell’esperimento finale, abbiamo ottenuto 5 modelli generati da ED per ciascun tubo. Infatti, com’è stato detto più in alto, ED è in grado di fornire risposte nel linguaggio simbolico della matematica. Così dopo l'allenamento, la formula esplicita del modello di regressione è disponibile. I modelli generati da ED al termine di questo esperimento sono molto lunghi. Perciò non forniremmo qui tali modelli. Ad esempio la formula generata da ED al primo blocco del tubo con diametro DEET = 6.5 mm è: 0.46239061043995733 + ((((((((((P1 - V) - (V * 1)) - V) - (V * (V * (V + V)))) - ((V * (V * (V + V))) * 1)) - (V * 1)) - V) - (dV1 * 0.1)) - ((V * (V * (V + (V * 1)))) * 1)) + (((((((V * (Pw - P1)) * (V + V)) - (((Pw / Pw) - (dV1 * 0.1)) - (((Pw - V) - (Pw / P1)) - V))) - ((dV1 * ((dV1 * 0.1) - (V + V))) * V)) - ((V + V) * (((((V * 0.1) - (V * dV1)) - (1 + V)) - (V * (Pw - P1))) - ((V + V) * ((V + V) * ((dV1 * 0.1) * (dV1 * 0.1))))))) * 0.1) * 0.1)) I risultati in termini di errore quadratico medio (mean square error, MSE) calcolati sul testing set, sono riassunti nella tabella seguente: DEET blocchi MSE Media Primo blocco 0.848919056 Secondo blocco 0.883064535 Terzo blocco 0.749136696 Quarto blocco 0.869143543 6.5 Quinto blocco 0.842826817 0.838618129 Primo blocco 0.916212388 Secondo blocco 0.901631216 Terzo blocco 1.065465306 Quarto blocco 1.038365051 7.5 Quinto blocco 0.904561585 0.965247109
  20. 20.   20  IV.VALIDAZIONE Nello scopo di valutare l’accuratezza dei nostri risultati, abbiamo considerato i modelli GP realizzati nell’esperimento descritto nell’articolo su-citato [8] e altri due modelli di base LM e NM ampiamente usati nella letteratura e realizzati da esperti del settore [18], [19]. L’accuratezza dei modelli generati da ED, dei modelli GP dell’articolo e dei modelli di base LM(Linear Model) e NM(Non-linear Model) è stato quantificato dai rispettivi errori medi quadratico calcolati sul testing set. La tabella seguente mostra i valori delle MSE per ogni blocco di ogni tubo e per ogni modello e i valori medi di MSE per ogni tubo. MSE per blocco Media MSE per ogni tubo DEET ED GP LM NM ED GP LM NM 0.85 1.01 3.44 1.94 0.88 0.78 3.47 1.92 0.75 0.76 3.57 1.98 0.87 0.82 3.48 1.89 6.5 0.84 0.84 3.29 2.06 0.84 0.84 3.45 1.96 0.92 0.90 3.33 1.94 0.90 1.06 3.35 1.95 1.07 1.03 3.24 1.90 1.04 3.21 3.27 1.89 7.5 0.90 1.03 3.25 1.94 0.97 1.44 3.29 1.91
  21. 21.   21  V. CONCLUSIONE E POSSIBILI SVILUPPI FUTURI L’esperimento numerico svolto in questa tesi, consisteva nel generare dei modelli per la stima della pressione tracheale durante la ventilazione percussiva ad alta frequenza mediante l’algoritmo di programmazione genetica Evolutionary-Design e di valutarne l’accuratezza. I risultati dell’esperimento ci portano a dedurre che Evolutionary-Design implementato in modeFRONTIER è in grado di generare dei modelli accurati in termine di MSE. Abbiamo valutato le prestazioni di ED su questo problema di grande importanza nel contesto di anestesia e di cure critiche, confrontando i nostri risultati con quelli ottenuti nell’articolo sopracitato e con quelli ottenuti dai due modelli di base LM e NM. In base all’errore quadratico medio (MSE) i nostri risultati in generale sono migliori. Per quanto riguarda il tempo di esecuzione delle evoluzioni GP (job), non possiamo fare un confronto perché è un parametro che dipende dalle caratteristiche del calcolatore usato. Poiché i diversi job possono essere eseguiti in parallelo, sfruttando i sistemi multi- core si riduce il tempo di allenamento totale dell'algoritmo. Inoltre, il fatto che modeFRONTIER sia dottato di un’ampia interfaccia grafica e che sia usabile sotto diversi sistemi operativi, fa si che Essa pregiudica le performance temporali nel lancio di ED a vantaggio del monitoring da interfaccia grafica. modeFRONTIER offre altre superficie di risposta che potrebbero permettere di risolvere questo tipo di problema. Superficie di risposta come ad esempio Kriging e Radial Basis Function e Neural Network sono metodologie potenzialmente molto promettenti. Pertanto, si potrebbe eseguire altri esperimenti con tali metodologie usando lo stesso database e confrontare i risultati per vedere se i modelli generati sono più accurati o meno. Questi nuovi esperimenti rappresentano un nuovo tema di ricerca aperto da questa tesi che potrebbero portare in futuro significative migliorie nella stima della pressione tracheale.
  22. 22.   22  Bibliografia e Sitografia. [1] U. Lucangelo, V. Antonaglia, W. Zin, L. Fontanesi, A.Peratoner, F. Bird, and A. Gullo, “Effects of mechanical load and flow, volume and pressure delivered by high-frequency percusive ventilation,” Respiratory physiology & neurobiology, vol.142, no. 1, pp. 81-91, 2004. [2] J.M. HURST, R. D. BRANSON, e C. B. DEHAVEN, “The role of high-frequency ventilation in post-traumatic respiratory insufficiency,” the Journal of trauma and acute care surgery,vol. 27, no. 3, pp. 236-242,1987. [3] C. W. Lentz e H. Peterson, “ Smoke inhalation is a multilevel insult to the pulmonary system,” Current Opinion in Pulmonary Medecine, vol. 3, no. 3, pp. 221-226, 1997. [4] S. K. Alpard, J. B. Zwischenberger, W. Tao, D. J. Deyo, D. L. Traber, e Bidani, “New clinically relevant sheep model of severe respiratory failure secondary to combined smoke inhalation/cutaneous flame burn injury,” Critical care medecine, vol. 28, no. 5, pp. 1469-1476, 2000. [5]http://www.minervamedica.it/it/riviste/minerva- anestesiologica/articolo.php?cod=R02Y2003N11A0853 [6] G. C. Velmahos, L. S. Chan, R. Tatevossian, E. E. Cornwell, W. R. Dougherty, J. Escudero, e D. Demetriades, “High-frequency percussive ventilation improbe oxygenation in patients withs ARDS,” CHEST Journal, vol. 116, no. 2, pp. 440-446, 1999. [7] P. Rocco e W. Zin, “Modelling the mechanical effects of tracheal tubes in normal subjects.” European Respiratory Journal, vol. 8, no. 1, pp. 121-126, 1995. [8] M. Ajcevic, A. De Lorenzo, A. Accardo, A. Bartoli and E. Medvet,” A Novel Estimation Methodology for Tracheal Pressure in Mechanical Ventilation Control”,DIA – University of Trieste,Italy, 8th International Symposium on Image and Signal Processing and Analysis(ISPA 2013). [9] http://it.wikipedia.org/wiki/Programmazione_genetica
  23. 23.   23  [10] E. Medvet, C. Fillon, e A. Bartoli, “Detections of web defacements by means of genetic programming,” in Information Assurance and Security, 2007. IAS 2007. Third International Symposium on. IEEE, 2007, pp. 227-234. [11] A. Bartoli, G. Davanzo, A. De Lorenzo, e E. Medvet, “GP-based electricity price forecasting,” in Genetic Programming, ser. Lectures Notes in Computer Science, S. Silva, J. Foster, M. Nicolau, P. Machado, e M. Giacobini, Eds. Springer Berlin Heidelberg, 2011, vol. 6621, pp. 37-48.[online] Available: http://dx.doi.org/10.1007/978-3-642-20407-4_4 [12] A. Bartoli, G. Davanzo, A. De Lorenzo, M. Mauri, E. Medvet, e E. Sorio, “Automatic generation of regular expressions from examples with genetic programmino,” in Proceedings of the fourteenth International conference on Genetic and evolutionary computation conference companion. ACM, 2012, pp.1477-1478. [13] http://it.wikipedia.org/wiki/Tubo_endotracheale [14] http://www.geneticprogramming.com/GPpages/software.html [15] Fillon, C., New Strategies for Efficient and Practical Genetic Programming, PhD Thesis, Università degli Studi di Trieste, 2008. [16] Koza J. R., Genetic Programming: On the Programming of Computers by Means of Natural Selection, MIT Press, 1992. [17] Banzhaf, W., Nordin, P., Keller, R.E., Francone, F.D., Genetic Programming – An Introduction; On the Automatic Evolution of Computer Programs and its Applications, Morgan Kaufmann, dpunkt.verlag, 1998. [18] S. Schumann, M. Krappitz, K. Moller, R. Hentschel, G. Braun, e J. Guttmann, “Pressure loss caused by pediatric tubes during high-frequency-oscillation-ventilation,” Respiratory physiology & neurobiology, vol.162, no. 2, pp.132-137, 2008. [19] M. Sullivan, J. Paliotta, e M. Saklad, “Endotracheal tube as a factor in measurement of respiratory mechanics,” Journal of applied physiology, vol. 41, no. 4, pp. 590-592, 1976. [20] http://pictures.doccheck.com/it/photos/2/6142/intubazione-endotracheale-schema/
  24. 24.   24  Ringraziamenti Desidero ricordare tutti coloro che mi hanno aiutato nella stesura della tesi con suggerimenti, consigli, critiche ed osservazioni: a loro va la mia gratitudine, anche se a me spetta la responsabilità per ogni errore contenuto in questa tesi. Ringrazio anzitutto il Prof. Alberto Bartoli, Relatore e il Dott. Alessandro Turco, Correlatore di questa tesi per la grande disponibilità e per tutto l’aiuto fornito durante la stesura. Un ringraziamento speciale ai miei genitori, a tutta la mia famiglia, a tutti i miei amici che in qualche modo mi hanno sostenuto e incoraggiato durante i miei anni di studi. Infine, vorrei ringraziare con tutto il cuore, il Signore Dio che nella sua immensa grazia mi fortifica e mi guida ogni giorno della mia vita.

×