Le Reti Neurali Artificiali: dalla teoria alle applicazioni pratiche
Reti Autoencoder
Un’altra classe di reti neurali di cui è opportuno approfondire il funzionamento è quella dell’Autoencoder (AE). Questo tipo di rete fa parte della famiglia delle feedforward con lo scopo di generare nuovi dati, dapprima comprimendo l’input in uno spazio di variabili latenti e, successivamente, ricostruendo l’output sulla base delle informazioni acquisite.
In questo caso la rete è costituita da tre macroaree:
1. encoder: il codificatore comprime i dati in ingresso e produce il codice; può essere rappresentato dalla funzione di codifica h=f(x).
2. codice.
3. decoder: il decodificatore ricostruisce l’input sulla base del codice; può essere rappresentato dalla funzione di decodifica r=g(h).
Il risultato che otteniamo è che, allenando la rete a copiare l’input, lo spazio di variabili latenti h possa evidenziare caratteristiche utili. Questo potrà accadere solamente imponendo dei limiti all’azione di codifica, costringendo lo spazio h a dimensioni minori di quelle di x: è il caso di Autoencoder Undercomplete. Se non vengono impostati sufficienti vincoli, la rete si limiterà a copiare l’input in output, senza estrapolare alcuna informazione utile sulla distribuzione dei dati. Ciò potrebbe accadere sia quando la dimensione del sottospazio latente ha la stessa grandezza dello spazio di partenza, sia nel caso di reti Overcomplete, quando le dimensioni dello spazio di variabili latenti è maggiore degli input. In questi casi anche con semplici encoder e decoder lineari possiamo copiare l’input senza imparare nulla del set di dati.
Gli autoencoder sono principalmente un algoritmo di riduzione (o compressione) della dimensionalità con alcune proprietà importanti:
⁃ Dati Specifici: sono in grado di comprimere i dati simili a quelli su cui sono stati addestrati. Poiché apprendono funzionalità specifiche per il training set fornito, sono differenti da algoritmi standard di compressione dei dati. Quindi non possiamo aspettarci che una rete, addestrata su cifre scritte a mano, sia opportuna per comprimere foto di paesaggi.
⁃ Non Supervisionata: per addestrare la rete è sufficiente lanciare i dati di input grezzi su di essa, in quanto non ha bisogno di etichette nella fase di training; ma, più precisamente, le autouncoder sono self-supervised in quanto generano loro stesse etichette dai dati di addestramento.
⁃ Lossy: l’output della rete non sarà esattamente uguale all’input, ma una sua rappresentazione.
Analizzando il funzionamento della rete in dettaglio, in una prima fase i dati in ingresso passano attraverso l’encoder (una rete completamente connessa), per produrre il codice. Successivamente il decoder, con una struttura simile alla precedente, produce l’output sulla base del codice. È da notare che l’architettura dell’encoder/decoder è speculare; questo, anche se non rappresenta un requisito fondamentale, risulta essere una caratteristica strutturale della rete. L’unico requisito da rispettare è che la dimensionalità dell’input e dell’output deve essere la stessa; qualsiasi altro parametro nel mezzo può variare.
Ci sono 4 iperparametri da impostare prima di addestrare la rete:
1. Dimensione del codice: ovvero il numero di nodi nel livello intermedio. Le dimensioni più piccole producono una maggiore compressione.
2. Numero di strati: la rete può essere profonda quanto di vuole. Nella figura precedente abbiamo due livelli sia nell’encoder che nel decoder, senza considerare l’input e l’output.
3. Numero di nodi per livello: l’architettura su cui stiamo lavorando è chiamata “stacked” (in pila) autoencoder, poiché i livelli sono impilati uno dopo l’altro. Infatti, il numero di nodi per livello diminuisce con ogni livello successivo del codificatore ed aumenta di nuovo nel decodificatore.
4. Funzione di perdita: utilizzando la crossentropia binaria (se i valori di input sono nell’intervallo [0,1]) oppure l’errore quadratico medio (MSE).
Le AE vengono addestrate allo stesso modo delle ANN: tramite la backpropagation. Possiamo potenziare la rete aumentando il numero di livelli, nodi per livello e, soprattutto, la dimensione del codice. L’aumento di questi iperparametri consentirà alla rete di apprendere codifiche più complesse, ma senza implementarla troppo, altrimenti imparerà solamente a copiare l’input in output, senza apprendere alcuna rappresentazione significativa. L’autoencoder ricostruirà perfettamente i dati di addestramento, ma sfocerà nell’overfitting, senza essere in grado di generalizzare a nuove istanze. Come accennato in precedenza, questo è il motivo per cui si predilige una struttura “in pila” mantenendo il codice di dimensioni ridotte. Poiché lo strato di codifica ha una dimensionalità inferiore rispetto agli input (undercomplete), non sarà in grado di copiare direttamente gli input nell’output e sarà costretto ad apprendere funzioni intelligenti.
Da sottolineare che, se i dati risultano essere completamente casuali, senza alcuna correlazione o dipendenza interna, una AE undercomplete non sarà in gradi di ripristinarli perfettamente. Ma, fortunatamente, nel mondo reale c’è molta dipendenza.
Possiamo citare alcune tipologie di autoencoder:
✓ Vanilla Autoencoder
È la forma più semplice, caratterizzata da una rete a tre strati, ovvero, una rete neurale con uno strano nascosto. I dati di ingresso/uscita risultano uguali.
✓ Autouncoder Multistrato
Se un solo strato nascosto non è sufficiente, possiamo estendere la rete lungo la dimensione più profonda.
✓ Autoencoder Convoluzionale
In questo caso vengono usati strati convoluzionali piuttosto di quelli interamente connessi. Al posto di vettori unidimensionali, vengono utilizzati vettori tridimensionali. I dati di input vengono campionati, ottenendo una rappresentazione latente, ossia una riduzione dimensionale, costringendo così la rete ad imparare da una versione compressa degli input.
✓ Autoencoder Regolarizzato
Esistono altri metodi con il quale vincolare la ricostruzione dell’AE in alternativa all’imposizione di una minore dimensionalità di strati nascosti. Piuttosto che limitare la capacità del modello mantenendo un’architettura poco profonda, così come una riduzione forzata, questo tipo di rete utilizzano una funzione di perdita che incoraggi il modello ad assumere proprietà che vadano oltre alla semplice abilità di copiare l’input in output. Allo stato pratico distinguiamo due tipologie differenti:
⁃ Sparse Autouncoder: solitamente usate per la classificazione. Allenando un AE, le unità nascoste dello strato centrale vengono attivate troppo frequentemente. Per evitare ciò, si abbassa il loro stato di attivazione limitandolo ad una frazione dei dati di training (vincolo di sparsità, in cui ciascuna unità è attivata da un tipo prestabilito di input).
⁃ Denoising Autoencoder: piuttosto che aggiungere penalità alla funzione di perdita, possiamo cambiare l’oggetto aggiungendo rumore all’input e facendo in modo che la rete impari autonomamente a rimuoverlo. Ciò implica che la RN estrarrà unicamente le informazioni più rilevanti ed imparerà da una rappresentazione robusta dei dati.
Purtroppo, queste reti non sono ampliamente utilizzate. Come metodo di compressione non funzionano meglio delle sue alternative ed il fatto che sono specifiche per i dati, li rende poco pratici come tecnica generale. Tuttavia, stanno trovando applicazioni in campi come nella:
⁃ riduzione della dimensionalità: quando sono interessate un gran numero di dimensioni (in genere superiore a 32), per generare una riduzione compressa dei dati;
⁃ recupero di informazioni: che trova beneficio dalla riduzione delle dimensionalità, in quanto la ricerca può diventare estremamente efficiente in spazi a bassa dimensione;
⁃ ricerca di anomalie: imparando a replicare le caratteristiche salienti nei dati di addestramento, il modello è incoraggiato ad imparare a riprodurre con precisione le caratteristiche più frequenti delle osservazioni. Di fronte ad anomalie, il modello dovrebbe peggiorare le sue prestazioni di ricostruzione. Nella maggior parte dei casi, solo i dati con istanze normali vengono utilizzate in fase di training, in altri la frequenza di anomalie è così piccola rispetto all’intera popolazione di dati, che il suo contributo alla rappresentazione appresa nel modello potrebbe essere ignorato. Dopo l’allenamento, il decoder ricostruirà bene i dati normali, mentre non riesce a farlo con le anomalie. L’errore di ricostruzione di un punto dati, che è l’errore tra il punto dati originale e la sua ricostruzione a bassa dimensione, viene utilizzato come punteggio per rilevare le anomalie.
⁃ elaborazione delle immagini: ad esempio, la necessità di metodi efficaci di restauro delle immagini, data la loro crescente produzione spesso in condizioni sfavorevoli, ne hanno incrementato l’utilizzo nel campo della preelaborazione, dimostrando la loro affidabilità in ambiti anche molto delicati, come la denigrazione delle immagini mediche.
⁃ scoperta di nuovi farmaci: nel 2019 le molecole generate con un tipo speciale di AE sono state sperimentate fino ai topi.
Questo brano è tratto dalla tesi:
Le Reti Neurali Artificiali: dalla teoria alle applicazioni pratiche
CONSULTA INTEGRALMENTE QUESTA TESI
La consultazione è esclusivamente in formato digitale .PDF
Acquista
Informazioni tesi
Autore: | Laura Angeloni |
Tipo: | Tesi di Master |
Master in | Data Science Information & knowledge management per data scientist |
Anno: | 2021 |
Docente/Relatore: | Carlo Drago |
Istituito da: | Università degli Studi Niccolò Cusano - Telematica Roma |
Lingua: | Italiano |
Num. pagine: | 83 |
FAQ
Come consultare una tesi
Il pagamento può essere effettuato tramite carta di credito/carta prepagata, PayPal, bonifico bancario.
Confermato il pagamento si potrà consultare i file esclusivamente in formato .PDF accedendo alla propria Home Personale. Si potrà quindi procedere a salvare o stampare il file.
Maggiori informazioni
Perché consultare una tesi?
- perché affronta un singolo argomento in modo sintetico e specifico come altri testi non fanno;
- perché è un lavoro originale che si basa su una ricerca bibliografica accurata;
- perché, a differenza di altri materiali che puoi reperire online, una tesi di laurea è stata verificata da un docente universitario e dalla commissione in sede d'esame. La nostra redazione inoltre controlla prima della pubblicazione la completezza dei materiali e, dal 2009, anche l'originalità della tesi attraverso il software antiplagio Compilatio.net.
Clausole di consultazione
- L'utilizzo della consultazione integrale della tesi da parte dell'Utente che ne acquista il diritto è da considerarsi esclusivamente privato.
- Nel caso in cui l’utente che consulta la tesi volesse citarne alcune parti, dovrà inserire correttamente la fonte, come si cita un qualsiasi altro testo di riferimento bibliografico.
- L'Utente è l'unico ed esclusivo responsabile del materiale di cui acquista il diritto alla consultazione. Si impegna a non divulgare a mezzo stampa, editoria in genere, televisione, radio, Internet e/o qualsiasi altro mezzo divulgativo esistente o che venisse inventato, il contenuto della tesi che consulta o stralci della medesima. Verrà perseguito legalmente nel caso di riproduzione totale e/o parziale su qualsiasi mezzo e/o su qualsiasi supporto, nel caso di divulgazione nonché nel caso di ricavo economico derivante dallo sfruttamento del diritto acquisito.
Vuoi tradurre questa tesi?
Per raggiungerlo, è fondamentale superare la barriera rappresentata dalla lingua. Ecco perché cerchiamo persone disponibili ad effettuare la traduzione delle tesi pubblicate nel nostro sito.
Per tradurre questa tesi clicca qui »
Scopri come funziona »
DUBBI? Contattaci
Contatta la redazione a
[email protected]
Parole chiave
Tesi correlate
Non hai trovato quello che cercavi?
Abbiamo più di 45.000 Tesi di Laurea: cerca nel nostro database
Oppure consulta la sezione dedicata ad appunti universitari selezionati e pubblicati dalla nostra redazione
Ottimizza la tua ricerca:
- individua con precisione le parole chiave specifiche della tua ricerca
- elimina i termini non significativi (aggettivi, articoli, avverbi...)
- se non hai risultati amplia la ricerca con termini via via più generici (ad esempio da "anziano oncologico" a "paziente oncologico")
- utilizza la ricerca avanzata
- utilizza gli operatori booleani (and, or, "")
Idee per la tesi?
Scopri le migliori tesi scelte da noi sugli argomenti recenti
Come si scrive una tesi di laurea?
A quale cattedra chiedere la tesi? Quale sarà il docente più disponibile? Quale l'argomento più interessante per me? ...e quale quello più interessante per il mondo del lavoro?
Scarica gratuitamente la nostra guida "Come si scrive una tesi di laurea" e iscriviti alla newsletter per ricevere consigli e materiale utile.
La tesi l'ho già scritta,
ora cosa ne faccio?
La tua tesi ti ha aiutato ad ottenere quel sudato titolo di studio, ma può darti molto di più: ti differenzia dai tuoi colleghi universitari, mostra i tuoi interessi ed è un lavoro di ricerca unico, che può essere utile anche ad altri.
Il nostro consiglio è di non sprecare tutto questo lavoro:
È ora di pubblicare la tesi