AI-For-Beginners/translations/sv/lessons/4-ComputerVision/09-Autoencoders
leestott 68b3c9c9e7 🌐 Update translations via Co-op Translator 2025-08-28 18:09:00 +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-08-28 18:09:00 +00:00

README.md

Autoencoders

NÀr man 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 autoencoder Àr att vi har ett encoder-nÀtverk som omvandlar inmatningsbilden till ett latent utrymme (vanligtvis 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 inbÀddningen av inmatningsbilder för att fÄnga dess innebörd.

AutoEncoder Diagram

Bild frÄn Keras blog

Scenarier för att anvÀnda Autoencoders

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

  • Minska dimensionen pĂ„ bilder för visualisering eller trĂ€na bildinbĂ€ddningar. Autoencoders ger vanligtvis bĂ€ttre resultat Ă€n PCA eftersom de tar hĂ€nsyn till bilders rumsliga natur och hierarkiska funktioner.
  • AvlĂ€gsna brus, dvs. ta bort brus frĂ„n bilden. Eftersom brus innehĂ„ller mycket onödig information kan autoencodern inte passa 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.

Variationsautoencoders (VAE)

Traditionella autoencoders reducerar 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 lÀtt 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 förstÄelse för det latenta utrymmet. Denna idé leder oss till variationsautoencoder (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 dekodern 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))
  • Dekodern försöker dekoda den ursprungliga bilden med sample som inmatningsvektor

Bild frÄn denna blogpost av Isaak Dykeman

Variationsautoencoders 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 VAE À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 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 sampla 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 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.


Ansvarsfriskrivning:
Detta dokument har översatts med hjĂ€lp av AI-översĂ€ttningstjĂ€nsten Co-op Translator. Även om vi strĂ€var efter noggrannhet, vĂ€nligen notera att automatiska översĂ€ttningar kan innehĂ„lla fel eller felaktigheter. Det ursprungliga dokumentet pĂ„ sitt originalsprĂ„k bör betraktas som den auktoritativa kĂ€llan. För kritisk information rekommenderas professionell mĂ€nsklig översĂ€ttning. Vi ansvarar inte för eventuella missförstĂ„nd eller feltolkningar som uppstĂ„r vid anvĂ€ndning av denna översĂ€ttning.