Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Autocodificatore - Teknopedia
Autocodificatore - Teknopedia

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]

Architettura di base

[modifica | modifica wikitesto]

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]

Schema basilare di un autoencoder: X sono i dati iniziali, h è la codifica, mentre X' è la ricostruzione dei dati iniziali dalla codifica

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 Y {\displaystyle Y} {\displaystyle Y} dati gli input X {\displaystyle X} {\displaystyle X}. 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 ϕ {\displaystyle \phi } {\displaystyle \phi } e ψ {\displaystyle \psi } {\displaystyle \psi }, tali che:

ϕ : X → F {\displaystyle \phi :{\mathcal {X}}\rightarrow {\mathcal {F}}} {\displaystyle \phi :{\mathcal {X}}\rightarrow {\mathcal {F}}}
ψ : F → X {\displaystyle \psi :{\mathcal {F}}\rightarrow {\mathcal {X}}} {\displaystyle \psi :{\mathcal {F}}\rightarrow {\mathcal {X}}}
ϕ , ψ = a r g m i n ϕ , ψ ‖ X − ( ψ ∘ ϕ ) X ‖ 2 {\displaystyle \phi ,\psi ={\underset {\phi ,\psi }{\operatorname {arg\,min} }}\,\|{\mathcal {X}}-(\psi \circ \phi ){\mathcal {X}}\|^{2}} {\displaystyle \phi ,\psi ={\underset {\phi ,\psi }{\operatorname {arg\,min} }}\,\|{\mathcal {X}}-(\psi \circ \phi ){\mathcal {X}}\|^{2}}

Nel caso più semplice, dato uno strato nascosto, lo stadio di codifica prende il valore iniziale x ∈ R d = X {\displaystyle \mathbf {x} \in \mathbb {R} ^{d}={\mathcal {X}}} {\displaystyle \mathbf {x} \in \mathbb {R} ^{d}={\mathcal {X}}} e lo mappa su h ∈ R p = F {\displaystyle \mathbf {h} \in \mathbb {R} ^{p}={\mathcal {F}}} {\displaystyle \mathbf {h} \in \mathbb {R} ^{p}={\mathcal {F}}} :

h = σ ( W x + b ) {\displaystyle \mathbf {h} =\sigma (\mathbf {Wx} +\mathbf {b} )} {\displaystyle \mathbf {h} =\sigma (\mathbf {Wx} +\mathbf {b} )}

Questa immagine h {\displaystyle \mathbf {h} } {\displaystyle \mathbf {h} } viene solitamente indicato come codice, variabili latenti o rappresentazione latente, mentre σ {\displaystyle \sigma } {\displaystyle \sigma } è una funzione d'attivazione, ad esempio una funzione sigmoidea o un rettificatore. Inoltre, W {\displaystyle \mathbf {W} } {\displaystyle \mathbf {W} } è una matrice dei pesi e b {\displaystyle \mathbf {b} } {\displaystyle \mathbf {b} } è 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 h {\displaystyle \mathbf {h} } {\displaystyle \mathbf {h} } alla ricostruzione x ′ {\displaystyle \mathbf {x'} } {\displaystyle \mathbf {x'} } dei dati x {\displaystyle \mathbf {x} } {\displaystyle \mathbf {x} }:

x ′ = σ ′ ( W ′ h + b ′ ) {\displaystyle \mathbf {x'} =\sigma '(\mathbf {W'h} +\mathbf {b'} )} {\displaystyle \mathbf {x'} =\sigma '(\mathbf {W'h} +\mathbf {b'} )}

dove σ ′ , W ′ ,  e  b ′ {\displaystyle \mathbf {\sigma '} ,\mathbf {W'} ,{\text{ e }}\mathbf {b'} } {\displaystyle \mathbf {\sigma '} ,\mathbf {W'} ,{\text{ e }}\mathbf {b'} } 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 x ′ {\displaystyle \mathbf {x'} } {\displaystyle \mathbf {x'} }e x {\displaystyle \mathbf {x} } {\displaystyle \mathbf {x} }. La cosiddetta "funzione di perdita" (dall'inglese loss function), considerato l'errore quadratico medio, è

L ( x , x ′ ) = ‖ x − x ′ ‖ 2 = ‖ x − σ ′ ( W ′ ( σ ( W x + b ) ) + b ′ ) ‖ 2 {\displaystyle {\mathcal {L}}(\mathbf {x} ,\mathbf {x'} )=\|\mathbf {x} -\mathbf {x'} \|^{2}=\|\mathbf {x} -\sigma '(\mathbf {W'} (\sigma (\mathbf {Wx} +\mathbf {b} ))+\mathbf {b'} )\|^{2}} {\displaystyle {\mathcal {L}}(\mathbf {x} ,\mathbf {x'} )=\|\mathbf {x} -\mathbf {x'} \|^{2}=\|\mathbf {x} -\sigma '(\mathbf {W'} (\sigma (\mathbf {Wx} +\mathbf {b} ))+\mathbf {b'} )\|^{2}}

dove x {\displaystyle \mathbf {x} } {\displaystyle \mathbf {x} } è 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 F {\displaystyle {\mathcal {F}}} {\displaystyle {\mathcal {F}}} abbia una dimensionalità inferiore allo spazio di input X {\displaystyle {\mathcal {X}}} {\displaystyle {\mathcal {X}}}, il vettore delle caratteristiche ϕ ( x ) {\displaystyle \phi (x)} {\displaystyle \phi (x)} può essere considerato come una rappresentazione compressa dell'input x {\displaystyle x} {\displaystyle x}. 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]

Note

[modifica | modifica wikitesto]
  1. ^ Autocodificatori, su it.mathworks.com. URL consultato il 22 luglio 2022.
  2. ^ Nonlinear principal component analysis using autoassociative neural networks, vol. 37, DOI:10.1002/aic.690370209.
  3. ^ a b c Deep Learning book, ISBN 978-0262035613.
  4. ^ Pascal Vincent e Hugo Larochelle, Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion, in Journal of Machine Learning Research, vol. 11, 3371–3408, 2010.
  5. ^ An Introduction to Variational Autoencoders, vol. 12, DOI:10.1561/2200000056, arXiv:1906.02691.
  6. ^ Hinton GE, Krizhevsky A, Wang SD. Transforming auto-encoders. In International Conference on Artificial Neural Networks 2011 Jun 14 (pp. 44-51). Springer, Berlin, Heidelberg.
  7. ^ a b Aurélien Géron, Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, O’Reilly Media, Inc., 2019, pp. 739-740.
  8. ^ Modeling word perception using the Elman network, vol. 71, DOI:10.1016/j.neucom.2008.04.030.
  9. ^ Autoencoder for words, vol. 139, DOI:10.1016/j.neucom.2013.09.055.
  10. ^ Deep Learning in Neural Networks: An Overview, vol. 61, DOI:10.1016/j.neunet.2014.09.003, PMID 25462637, arXiv:1404.7828.
  11. ^ Hinton, G. E., & Zemel, R. S. (1994). Autoencoders, minimum description length and Helmholtz free energy. In Advances in neural information processing systems 6 (pp. 3-10).
  12. ^ Pedro Domingos, The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World, Basic Books, 2015, ISBN 978-046506192-1.
  13. ^ Learning Deep Architectures for AI (PDF), vol. 2, DOI:10.1561/2200000006, PMID 23946944.
  Portale Informatica
  Portale Statistica
Estratto da "https://it.wikipedia.org/w/index.php?title=Autocodificatore&oldid=144083501"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022