Autokoder

En auto-koder [1] eller autoencoder er en type kunstig nevrale nettverk som brukes til å lære effektive kodinger av umerkede data, og faller dermed innenfor området for uovervåket læring . [2] Kodingen valideres og foredles ved å forsøke å rekonstruere input fra kodingen. Autokoderen lærer en representasjon (koding) av et datasett, typisk for dimensjonalitetsreduksjon , og trener nettverket til å ignorere ubetydelige data ("støy").

Det finnes varianter som tar sikte på å begrense representasjonene som er lært til å få nyttige egenskaper. [3] Eksempler er regulerte autoenkodere ( Sparse , Denoising og Contractive ), som er effektive i å lære representasjonene som vil bli brukt i en påfølgende klassifisering , [4] og variasjonsautokodere , brukt som generative modeller. [5] Autoenkodere brukes på mange problemer, inkludert ansiktsgjenkjenning, [6] funksjonsdeteksjon [7] og anomalier, og forståelse av ordenes betydning. [8] [9] Autoenkodere er også generative modeller som tilfeldig kan generere nye data som ligner på treningsdata for nettverksinngang. [7]

Grunnleggende arkitektur

En autoenkoder har to hoveddeler: en koder som kartlegger inngangen til koden og en dekoder som gir en rekonstruksjon av inngangen fra koden.

Den enkleste måten å kopiere perfekt på er å duplisere signalet. I stedet blir autoenkodere vanligvis tvunget til å rekonstruere inndataene grovt, og bevare bare de mest relevante aspektene av dataene i kopien.

Ideen om autoenkodere har vært populær i flere tiår, med de første applikasjonene som dateres tilbake til 1980-tallet. [3] [10] [11] Tradisjonelt har de blitt brukt til dimensjonalitetsreduksjon eller funksjonslæring, men konseptet har blitt utbredt brukes til å lære generative datamodeller. Noen av de kraftigste kunstige intelligensene (AI) på 2010-tallet involverte autoenkodere stablet i dype nevrale nettverk . [12]

Den enkleste formen for en autokoder er et feed-forward , ikke - tilbakevendende nevralt nettverk, som ligner på enkeltperseptronene som utgjør en flerlags perceptron , ved å bruke et inngangslag og et utgangslag forbundet med ett eller flere skjulte lag. Utgangslaget har samme antall noder (eller nevroner) som inngangslaget. Hensikten er å rekonstruere inngangene (minimere forskjellen mellom innganger og utganger), i stedet for å forutsi en målverdi gitt inngangene . Derfor faller autoenkodere inn under uovervåket læringsalgoritmer.

En autokoder består av to deler, koderen og dekoderen, som kan defineres som kart og , slik at:

I det enkleste tilfellet, gitt et skjult lag, tar kodingstrinnet startverdien og tilordner den til  :

Dette bildet blir vanligvis referert til som kode, latente variabler eller latent representasjon, mens det er en aktiverende funksjon, for eksempel en sigmoid-funksjon eller en likeretter . Videre er det en vektmatrise og er en skjevvektor. Vekter og skjevheter initialiseres vanligvis tilfeldig og deretter iterativt oppdatert via tilbakeforplantning . Deretter er det dekodingsfasen, der vi går fra kartet til rekonstruksjonen av dataene :

hvor de for dekoderen ikke nødvendigvis er korrelert med ekvivalentene til koderen.

Autoenkodere er opplært til å minimere rekonstruksjonsfeilen, det vil si forskjellen mellom og . Den såkalte " tapsfunksjonen " (fra den engelske tapsfunksjonen ), betraktet som middelkvadratfeil , er

hvor det vanligvis formidles over hele treningssettet .

Som nevnt tidligere, utføres autoenkodertrening via feiltilbakeforplantning, akkurat som i andre nevrale nettverk med feed-forward .

I tilfeller der funksjonsrommet har en mindre dimensjonalitet enn inngangsrommet , kan egenskapsvektoren betraktes som en komprimert representasjon av inngangen . Dette er tilfellet med ufullstendige autoenkodere . Hvis de skjulte lagene er større (kalt "overfullstendig", eller overfullstendig ) eller lik inngangslaget, eller hvis de skjulte stasjonene har tilstrekkelig kapasitet, kan en autokoder potensielt lære identitetsfunksjonen og bli ubrukelig. Imidlertid avslørte eksperimentelle resultater at overfullførte autoenkodere fortsatt kunne lære nyttige funksjoner. [13] I det ideelle miljøet kan størrelsen på koden og kapasiteten til modellen settes basert på kompleksiteten i distribusjonen av dataene som skal modelleres. En måte å gjøre dette på er å dra nytte av modellvarianter kjent som regulerte autoenkodere. [3]

Merknader

  1. ^ Autokodere , på it.mathworks.com . Hentet 22. juli 2022 .
  2. ^ Ikke-lineær hovedkomponentanalyse ved bruk av autoassosiative nevrale nettverk , vol. 37, DOI : 10.1002 / aic.690370209 .
  3. ^ a b c Deep Learning-bok , ISBN 978-0262035613 .  
  4. ^ Pascal Vincent og Hugo Larochelle, Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion , i 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. Transformering av autokodere. I International Conference on Artificial Neural Networks 2011 14. juni (s. 44-51). Springer, Berlin, Heidelberg.
  7. ^ a b Aurélien Géron, praktisk maskinlæring med Scikit-Learn, Keras og TensorFlow , O'Reilly Media, Inc., 2019, s. 739–740.
  8. ^ Modellering av ordoppfatning ved bruk av Elman-nettverket , vol. 71, DOI : 10.1016 / j.neucom.2008.04.030 .
  9. ^ Autoenkoder for ord , 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, GE, & Zemel, RS (1994). Autoenkodere, minimum beskrivelseslengde og Helmholtz fri energi. In Advances in nevrale informasjonsbehandlingssystemer 6 (s. 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 .