AI-For-Beginners/translations/sl/lessons/4-ComputerVision/09-Autoencoders
localizeflow[bot] 2cf3095b7a chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:44:13 +00:00
..
AutoEncodersPyTorch.ipynb Fallback snapshot commit due to git add failure 2026-01-15 12:40:29 +00:00
AutoencodersTF.ipynb Fallback snapshot commit due to git add failure 2026-01-15 12:40:29 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:44:13 +00:00

README.md

Avtoenkoderji

Pri treniranju CNN-jev je ena od težav, da potrebujemo veliko označenih podatkov. Pri klasifikaciji slik moramo slike razvrstiti v različne razrede, kar zahteva ročno delo.

Predhodni kviz

Vendar pa bi morda želeli uporabiti surove (neoznačene) podatke za treniranje CNN ekstraktorjev značilnosti, kar imenujemo samonadzorovano učenje. Namesto oznak bomo uporabili slike za treniranje kot vhod in izhod mreže. Glavna ideja avtoenkoderja je, da imamo kodirno mrežo, ki vhodno sliko pretvori v nek latentni prostor (običajno je to vektor manjših dimenzij), nato pa dekodirno mrežo, katere cilj je rekonstruirati izvirno sliko.

Avtoenkoder je "vrsta umetne nevronske mreže, ki se uporablja za učenje učinkovitih kodiranj neoznačenih podatkov."

Ker treniramo avtoenkoder, da zajame čim več informacij iz izvirne slike za natančno rekonstrukcijo, mreža poskuša najti najboljšo vgradnjo vhodnih slik, da zajame njihov pomen.

Diagram avtoenkoderja

Slika iz Keras bloga

Scenariji uporabe avtoenkoderjev

Čeprav se zdi rekonstrukcija izvirnih slik sama po sebi neuporabna, obstaja nekaj scenarijev, kjer so avtoenkoderji še posebej koristni:

  • Zmanjšanje dimenzije slik za vizualizacijo ali treniranje vgradnje slik. Običajno avtoenkoderji dajejo boljše rezultate kot PCA, ker upoštevajo prostorsko naravo slik in hierarhične značilnosti.
  • Odstranjevanje šuma, tj. odstranjevanje šuma s slike. Ker šum vsebuje veliko nepotrebnih informacij, avtoenkoder ne more vsega vključiti v relativno majhen latentni prostor, zato zajame le pomemben del slike. Pri treniranju odstranjevalcev šuma začnemo z izvirnimi slikami in uporabimo slike z umetno dodanim šumom kot vhod za avtoenkoder.
  • Super-resolucija, povečanje ločljivosti slike. Začnemo z visokoločljivostnimi slikami in uporabimo sliko z nižjo ločljivostjo kot vhod za avtoenkoder.
  • Generativni modeli. Ko treniramo avtoenkoder, lahko dekodirni del uporabimo za ustvarjanje novih objektov, ki izhajajo iz naključnih latentnih vektorjev.

Variacijski avtoenkoderji (VAE)

Tradicionalni avtoenkoderji nekako zmanjšajo dimenzijo vhodnih podatkov in ugotovijo pomembne značilnosti vhodnih slik. Vendar pa latentni vektorji pogosto nimajo veliko smisla. Z drugimi besedami, če vzamemo MNIST podatkovno zbirko kot primer, ugotoviti, katere številke ustrezajo različnim latentnim vektorjem, ni enostavna naloga, ker bližnji latentni vektorji ne ustrezajo nujno istim številkam.

Po drugi strani pa je za treniranje generativnih modelov bolje imeti neko razumevanje latentnega prostora. Ta ideja nas pripelje do variacijskega avtoenkoderja (VAE).

VAE je avtoenkoder, ki se nauči napovedovati statistično porazdelitev latentnih parametrov, tako imenovano latentno porazdelitev. Na primer, morda želimo, da so latentni vektorji normalno porazdeljeni z nekim povprečjem zmean in standardnim odklonom zsigma (obe vrednosti sta vektorja neke dimenzionalnosti d). Kodirnik v VAE se nauči napovedovati te parametre, nato pa dekodirnik vzame naključni vektor iz te porazdelitve za rekonstrukcijo objekta.

Povzetek:

  • Iz vhodnega vektorja napovemo z_mean in z_log_sigma (namesto napovedovanja standardnega odklona napovemo njegov logaritem)
  • Vzamemo vzorec sample iz porazdelitve N(zmean,exp(zlog_sigma))
  • Dekodirnik poskuša dekodirati izvirno sliko z uporabo sample kot vhodnega vektorja

Slika iz tega bloga avtorja Isaaka Dykemana

Variacijski avtoenkoderji uporabljajo kompleksno funkcijo izgube, ki je sestavljena iz dveh delov:

  • Izguba rekonstrukcije je funkcija izgube, ki prikazuje, kako blizu je rekonstruirana slika ciljni (lahko je povprečna kvadratna napaka ali MSE). To je ista funkcija izgube kot pri običajnih avtoenkoderjih.
  • KL izguba, ki zagotavlja, da porazdelitev latentnih spremenljivk ostane blizu normalni porazdelitvi. Temelji na konceptu Kullback-Leiblerjeve divergence - merilu za oceno podobnosti dveh statističnih porazdelitev.

Ena pomembna prednost VAE-jev je, da omogočajo relativno enostavno generiranje novih slik, ker vemo, iz katere porazdelitve vzeti latentne vektorje. Na primer, če treniramo VAE z 2D latentnim vektorjem na MNIST, lahko nato spreminjamo komponente latentnega vektorja, da dobimo različne številke:

vaemnist

Slika avtorja Dmitry Soshnikov

Opazite, kako se slike prelivajo ena v drugo, ko začnemo pridobivati latentne vektorje iz različnih delov latentnega prostora parametrov. Ta prostor lahko vizualiziramo tudi v 2D:

vaemnist cluster

Slika avtorja Dmitry Soshnikov

✍️ Vaje: Avtoenkoderji

Več o avtoenkoderjih se naučite v teh ustreznih zvezkih:

Lastnosti avtoenkoderjev

  • Specifični za podatke - dobro delujejo le s tistimi vrstami slik, na katerih so bili trenirani. Na primer, če treniramo mrežo za super-resolucijo na rožah, ne bo dobro delovala na portretih. To je zato, ker mreža lahko ustvari sliko z višjo ločljivostjo tako, da vzame fine podrobnosti iz značilnosti, naučenih iz podatkovne zbirke za treniranje.
  • Izgubni - rekonstruirana slika ni enaka izvirni sliki. Narava izgube je določena z funkcijo izgube, uporabljeno med treniranjem.
  • Deluje na neoznačenih podatkih

Naknadni kviz

Zaključek

V tej lekciji ste se naučili o različnih vrstah avtoenkoderjev, ki so na voljo AI znanstveniku. Naučili ste se, kako jih zgraditi in kako jih uporabiti za rekonstrukcijo slik. Prav tako ste se naučili o VAE in kako ga uporabiti za generiranje novih slik.

🚀 Izziv

V tej lekciji ste se naučili o uporabi avtoenkoderjev za slike. Vendar pa jih je mogoče uporabiti tudi za glasbo! Oglejte si projekt Magenta MusicVAE, ki uporablja avtoenkoderje za učenje rekonstrukcije glasbe. Izvedite nekaj eksperimentov s to knjižnico, da vidite, kaj lahko ustvarite.

Naknadni kviz

Pregled in samostojno učenje

Za referenco preberite več o avtoenkoderjih v teh virih:

Naloga

Na koncu tega zvezka z uporabo TensorFlow boste našli 'nalogo' - uporabite jo kot svojo nalogo.