AI-For-Beginners/translations/sv/lessons/4-ComputerVision/09-Autoencoders
leestott 86550af01f 🌐 Update translations via Co-op Translator 2025-09-23 09:48:20 +00:00
..
AutoEncodersPyTorch.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +00:00
AutoencodersTF.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-09-23 09:48:20 +00:00

README.md

Autoencoders

NÀr vi trÀnar CNNs Àr ett av problemen att vi behöver mycket mÀrkt data. NÀr det gÀller bildklassificering mÄste vi dela upp bilder i olika klasser, vilket Àr en manuell process.

Pre-lecture quiz

Men vi kanske vill anvÀnda rÄ (omÀrkt) data för att trÀna CNN-funktionsextraktorer, vilket kallas sjÀlvövervakad inlÀrning. IstÀllet för etiketter anvÀnder vi trÀningsbilder som bÄde nÀtverksinmatning och -utmatning. Huvudidén med en autoencoder Àr att vi har ett encoder-nÀtverk som omvandlar inmatningsbilden till nÄgon latent space (vanligtvis Àr det bara en vektor av mindre storlek), och sedan ett decoder-nÀtverk, vars mÄl Àr att rekonstruera den ursprungliga bilden.

✅ En autoencoder Ă€r "en typ av artificiellt neuralt nĂ€tverk som anvĂ€nds för att lĂ€ra sig effektiva kodningar av omĂ€rkt data."

Eftersom vi trÀnar en autoencoder för att fÄnga sÄ mycket information som möjligt frÄn den ursprungliga bilden för en korrekt rekonstruktion, försöker nÀtverket hitta den bÀsta embedding av inmatningsbilder för att fÄnga dess betydelse.

AutoEncoder Diagram

Bild frÄn Keras blog

Scenarier för att anvÀnda Autoencoders

Även om att rekonstruera ursprungliga bilder inte verkar anvĂ€ndbart i sig sjĂ€lvt, finns det nĂ„gra scenarier dĂ€r autoencoders Ă€r sĂ€rskilt anvĂ€ndbara:

  • Minska dimensionen pĂ„ bilder för visualisering eller trĂ€na bildembeddings. Vanligtvis ger autoencoders bĂ€ttre resultat Ă€n PCA, eftersom de tar hĂ€nsyn till bilders spatiala natur och hierarkiska funktioner.
  • Denoising, dvs. ta bort brus frĂ„n bilden. Eftersom brus innehĂ„ller mycket onödig information kan autoencodern inte passa in allt i det relativt lilla latenta utrymmet, och fĂ„ngar dĂ€rför bara den viktiga delen av bilden. NĂ€r vi trĂ€nar brusreducerare börjar vi med ursprungliga bilder och anvĂ€nder bilder med artificiellt tillagt brus som inmatning för autoencodern.
  • Superupplösning, öka bildens upplösning. Vi börjar med högupplösta bilder och anvĂ€nder bilden med lĂ€gre upplösning som autoencoderns inmatning.
  • Generativa modeller. NĂ€r vi har trĂ€nat autoencodern kan den dekoderande delen anvĂ€ndas för att skapa nya objekt frĂ„n slumpmĂ€ssiga latenta vektorer.

Variational Autoencoders (VAE)

Traditionella autoencoders minskar dimensionen pÄ inmatningsdata pÄ nÄgot sÀtt och identifierar viktiga funktioner i inmatningsbilder. Men latenta vektorer Àr ofta svÄra att tolka. Med andra ord, om vi tar MNIST-datasetet som exempel, Àr det inte enkelt att avgöra vilka siffror som motsvarar olika latenta vektorer, eftersom nÀrliggande latenta vektorer inte nödvÀndigtvis motsvarar samma siffror.

För att trÀna generativa modeller Àr det dÀremot bÀttre att ha en viss förstÄelse för det latenta utrymmet. Denna idé leder oss till variational autoencoder (VAE).

VAE Àr en autoencoder som lÀr sig att förutsÀga statistisk fördelning av de latenta parametrarna, den sÄ kallade latenta fördelningen. Till exempel kanske vi vill att latenta vektorer ska vara normalt fördelade med en viss medelvÀrde zmean och standardavvikelse zsigma (bÄde medelvÀrde och standardavvikelse Àr vektorer med en viss dimension d). Encoder i VAE lÀr sig att förutsÀga dessa parametrar, och sedan tar decodern en slumpmÀssig vektor frÄn denna fördelning för att rekonstruera objektet.

Sammanfattningsvis:

  • FrĂ„n inmatningsvektorn förutsĂ€ger vi z_mean och z_log_sigma (istĂ€llet för att förutsĂ€ga standardavvikelsen direkt, förutsĂ€ger vi dess logaritm)
  • Vi samplar en vektor sample frĂ„n fördelningen N(zmean,exp(zlog_sigma))
  • Decodern försöker avkoda den ursprungliga bilden med sample som inmatningsvektor

Bild frÄn denna blogginlÀgg av Isaak Dykeman

Variational autoencoders anvÀnder en komplex förlustfunktion som bestÄr av tvÄ delar:

  • Rekonstruktionsförlust Ă€r förlustfunktionen som visar hur nĂ€ra en rekonstruerad bild Ă€r mĂ„let (det kan vara Mean Squared Error, eller MSE). Det Ă€r samma förlustfunktion som i vanliga autoencoders.
  • KL-förlust, som sĂ€kerstĂ€ller att latenta variabelns fördelning förblir nĂ€ra normalfördelning. Den baseras pĂ„ begreppet Kullback-Leibler divergence - en metrik för att uppskatta hur lika tvĂ„ statistiska fördelningar Ă€r.

En viktig fördel med VAEs Àr att de gör det relativt enkelt att generera nya bilder, eftersom vi vet vilken fördelning vi ska sampla latenta vektorer frÄn. Till exempel, om vi trÀnar en VAE med en 2D latent vektor pÄ MNIST, kan vi sedan variera komponenterna i den latenta vektorn för att fÄ olika siffror:

vaemnist

Bild av Dmitry Soshnikov

Observera hur bilderna smÀlter samman nÀr vi börjar fÄ latenta vektorer frÄn olika delar av det latenta parameterutrymmet. Vi kan ocksÄ visualisera detta utrymme i 2D:

vaemnist cluster

Bild av Dmitry Soshnikov

✍ Övningar: Autoencoders

LĂ€r dig mer om autoencoders i dessa motsvarande notebooks:

Egenskaper hos Autoencoders

  • Dataspecifika - de fungerar bara bra med den typ av bilder de har trĂ€nats pĂ„. Till exempel, om vi trĂ€nar ett nĂ€tverk för superupplösning pĂ„ blommor, kommer det inte att fungera bra pĂ„ portrĂ€tt. Detta beror pĂ„ att nĂ€tverket kan producera högupplösta bilder genom att ta fina detaljer frĂ„n funktioner som lĂ€rts frĂ„n trĂ€ningsdatasetet.
  • Förlustfyllda - den rekonstruerade bilden Ă€r inte densamma som den ursprungliga bilden. Förlustens natur definieras av den förlustfunktion som anvĂ€nds under trĂ€ningen.
  • Fungerar pĂ„ omĂ€rkt data

Post-lecture quiz

Slutsats

I denna lektion lÀrde du dig om de olika typerna av autoencoders som finns tillgÀngliga för AI-forskaren. Du lÀrde dig hur man bygger dem och hur man anvÀnder dem för att rekonstruera bilder. Du lÀrde dig ocksÄ om VAE och hur man anvÀnder det för att generera nya bilder.

🚀 Utmaning

I denna lektion lÀrde du dig om att anvÀnda autoencoders för bilder. Men de kan ocksÄ anvÀndas för musik! Kolla in Magenta-projektets MusicVAE-projekt, som anvÀnder autoencoders för att lÀra sig att rekonstruera musik. Gör nÄgra experiment med detta bibliotek för att se vad du kan skapa.

Post-lecture quiz

Granskning & SjÀlvstudier

För referens, lÀs mer om autoencoders i dessa resurser:

Uppgift

I slutet av denna notebook med TensorFlow hittar du en 'uppgift' - anvÀnd detta som din uppgift.