Timeline
Chat
Prospettiva
Autocodificatore
rete neurale che apprende codifiche di dati efficienti in maniera non supervisionata Da Wikipedia, l'enciclopedia libera
Remove ads
Un autocodificatore[1] o autoencoder è un tipo di rete neurale artificiale utilizzato per apprendere codifiche efficienti di dati non etichettati, rientrando quindi nel campo dell'apprendimento non supervisionato.[2] La codifica viene convalidata e perfezionata tentando di ricostruire l'input dalla codifica. L'autocodificatore apprende una rappresentazione (codifica) di un insieme di dati, tipicamente per la riduzione della dimensionalità, addestrando la rete a ignorare i dati insignificanti ("rumore").
Esistono varianti che mirano a vincolare le rappresentazioni apprese ad assumere proprietà utili.[3] Esempi sono gli autoencoder regolarizzati (Sparse, Denoising e Contractive), che sono efficaci nell'apprendimento delle rappresentazioni che verranno usate in una successiva classificazione,[4] e gli autoencoder variazionali, impiegati come modelli generativi.[5] Gli autoencoder vengono applicati a molti problemi, tra cui il riconoscimento facciale,[6] il rilevamento di caratteristiche[7],di anomalie e la comprensione del significato delle parole.[8][9] Gli autoencoder sono anche modelli generativi che possono generare casualmente nuovi dati simili ai dati di addestramento di input alla rete.[7]
Remove ads
Architettura di base
Riepilogo
Prospettiva
Un autoencoder ha due parti principali: un codificatore che mappa l'input nel codice e un decodificatore che fornisce una ricostruzione dell'input a partire dal codice.
Il modo più semplice per eseguire perfettamente la copia è duplicare il segnale. Invece, gli autoencoder sono in genere costretti a ricostruire l'input in modo approssimativo, preservando solo gli aspetti più rilevanti dei dati nella copia.
L'idea degli autoencoder è stata popolare per decenni, con le prime applicazioni risalenti agli anni 1980.[3][10][11] Tradizionalmente, sono stati usati per la riduzione della dimensionalità o l'apprendimento delle caratteristiche, ma il concetto è diventato ampiamente utilizzato per l'apprendimento di modelli generativi di dati. Alcune delle intelligenze artificiali (IA) più potenti degli anni 2010 hanno coinvolto autoencoder impilati all'interno di reti neurali profonde.[12]

La forma più semplice di un autocodificatore è una rete neurale feed-forward, non ricorrente, simile ai singoli percettroni che costituiscono un percettrone multistrato, utilizzando uno strato di input e uno strato di output collegati da uno o più strati nascosti. Lo strato di output ha lo stesso numero di nodi (o neuroni) dello strato di input. Il suo scopo è ricostruire i suoi input (minimizzando la differenza tra input e output), invece di prevedere un valore obiettivo dati gli input . Pertanto, gli autoencoder rientrano negli algoritmi di apprendimento non supervisionato.
Un autoencoder è costituito da due parti, il codificatore e il decodificatore, che possono essere definiti come le mappe e , tali che:
Nel caso più semplice, dato uno strato nascosto, lo stadio di codifica prende il valore iniziale e lo mappa su :
Questa immagine viene solitamente indicato come codice, variabili latenti o rappresentazione latente, mentre è una funzione d'attivazione, ad esempio una funzione sigmoidea o un rettificatore. Inoltre, è una matrice dei pesi e è un vettore di bias. I pesi e i bias vengono in genere inizializzati in modo casuale e poi aggiornati iterativamente tramite retropropagazione. Successivamente, si ha la fase di decodifica, nel quale si passa dalla mappa alla ricostruzione dei dati :
dove per il decodficatore non sono necessariamente correlata con gli equivalenti del codificatore.
Gli autoencoder sono addestrati per minimizzare l'errore di ricostruzione, cioè la differenza tra e . La cosiddetta "funzione di perdita" (dall'inglese loss function), considerato l'errore quadratico medio, è
dove è di solito mediato su tutto l'insieme di addestramento.
Come accennato in precedenza, l'addestramento dell'autoencoder viene eseguito tramite la retropropagazione dell'errore, proprio come in altre reti neurali feed-forward.
Nei casi in cui lo spazio delle caratteristiche abbia una dimensionalità inferiore allo spazio di input , il vettore delle caratteristiche può essere considerato come una rappresentazione compressa dell'input . Questo è il caso degli autoencoder non completi. Se gli strati nascosti sono più grandi (detti "sovracompleti", o overcomplete) o uguali allo strato di input, o se le unità nascoste hanno una capacità sufficiente, un autocodificatore può potenzialmente apprendere la funzione identità e diventare inutile. Tuttavia, i risultati sperimentali hanno rilevato che gli autoencoder sovracompleti potrebbero ancora apprendere funzioni utili.[13] Nell'ambiente ideale, la dimensione del codice e la capacità del modello potrebbero essere impostate sulla base della complessità della distribuzione dei dati da modellare. Un modo per farlo è sfruttare le varianti del modello note come autoencoder regolarizzati.[3]
Remove ads
Note
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads