AI-For-Beginners/translations/sk/lessons/4-ComputerVision/09-Autoencoders
localizeflow[bot] 3c760d21ff chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:29:36 +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:29:36 +00:00

README.md

Autoenkodéry

Pri trénovaní CNN je jedným z problémov, že potrebujeme veľké množstvo označených dát. V prípade klasifikácie obrázkov musíme obrázky rozdeliť do rôznych tried, čo si vyžaduje manuálnu prácu.

Kvíz pred prednáškou

Avšak, môžeme chcieť použiť surové (neoznačené) dáta na trénovanie CNN extraktorov vlastností, čo sa nazýva samoriadené učenie. Namiesto označení použijeme trénovacie obrázky ako vstup aj výstup siete. Hlavná myšlienka autoenkodéra je, že budeme mať enkodérovú sieť, ktorá konvertuje vstupný obrázok do určitého latentného priestoru (zvyčajne je to len vektor menšej veľkosti), a potom dekodérovú sieť, ktorej cieľom bude rekonštruovať pôvodný obrázok.

Autoenkodér je "typ umelej neurónovej siete, ktorá sa používa na učenie efektívneho kódovania neoznačených dát."

Keďže trénujeme autoenkodér, aby zachytil čo najviac informácií z pôvodného obrázku na presnú rekonštrukciu, sieť sa snaží nájsť najlepšie zobrazenie vstupných obrázkov, aby zachytila ich význam.

Schéma Autoenkodéra

Obrázok z blogu Keras

Scenáre použitia autoenkodérov

Aj keď rekonštrukcia pôvodných obrázkov nemusí byť sama o sebe užitočná, existuje niekoľko scenárov, kde sú autoenkodéry obzvlášť užitočné:

  • Zníženie dimenzie obrázkov na vizualizáciu alebo trénovanie zobrazení obrázkov. Autoenkodéry zvyčajne poskytujú lepšie výsledky ako PCA, pretože berú do úvahy priestorovú povahu obrázkov a hierarchické vlastnosti.
  • Odstraňovanie šumu, t.j. odstránenie šumu z obrázku. Keďže šum obsahuje veľa nepotrebných informácií, autoenkodér ho nedokáže všetok zapísať do relatívne malého latentného priestoru, a tak zachytí iba dôležitú časť obrázku. Pri trénovaní odstraňovačov šumu začíname s pôvodnými obrázkami a používame obrázky s umelo pridaným šumom ako vstup pre autoenkodér.
  • Super-rezolúcia, zvýšenie rozlíšenia obrázkov. Začíname s obrázkami vo vysokom rozlíšení a používame obrázky s nižším rozlíšením ako vstup pre autoenkodér.
  • Generatívne modely. Po natrénovaní autoenkodéra môžeme dekodérovú časť použiť na vytváranie nových objektov začínajúc od náhodných latentných vektorov.

Variabilné autoenkodéry (VAE)

Tradičné autoenkodéry znižujú dimenziu vstupných dát určitým spôsobom, pričom identifikujú dôležité vlastnosti vstupných obrázkov. Avšak, latentné vektory často nedávajú veľký zmysel. Inými slovami, ak vezmeme dataset MNIST ako príklad, zistiť, ktoré číslice zodpovedajú rôznym latentným vektorom, nie je jednoduchá úloha, pretože blízke latentné vektory nemusia nevyhnutne zodpovedať rovnakým čísliciam.

Na druhej strane, na trénovanie generatívnych modelov je lepšie mať určitú predstavu o latentnom priestore. Táto myšlienka nás privádza k variabilnému autoenkodéru (VAE).

VAE je autoenkodér, ktorý sa učí predpovedať štatistické rozdelenie latentných parametrov, tzv. latentné rozdelenie. Napríklad môžeme chcieť, aby latentné vektory boli normálne rozdelené s určitým priemerom zmean a štandardnou odchýlkou zsigma (oba, priemer aj štandardná odchýlka, sú vektory určitej dimenzie d). Enkodér vo VAE sa učí predpovedať tieto parametre, a potom dekodér vezme náhodný vektor z tohto rozdelenia na rekonštrukciu objektu.

Zhrnutie:

  • Zo vstupného vektora predpovedáme z_mean a z_log_sigma (namiesto predpovedania samotnej štandardnej odchýlky predpovedáme jej logaritmus)
  • Vzorkujeme vektor sample z rozdelenia N(zmean,exp(zlog_sigma))
  • Dekodér sa snaží dekódovať pôvodný obrázok pomocou sample ako vstupného vektora

Obrázok z tohto blogového príspevku od Isaaka Dykemana

Variabilné autoenkodéry používajú komplexnú funkciu straty, ktorá pozostáva z dvoch častí:

  • Rekonštrukčná strata je funkcia straty, ktorá ukazuje, ako blízko je rekonštruovaný obrázok k cieľu (môže to byť Mean Squared Error, alebo MSE). Je to rovnaká funkcia straty ako pri bežných autoenkodéroch.
  • KL strata, ktorá zabezpečuje, že rozdelenie latentných premenných zostáva blízko normálnemu rozdeleniu. Je založená na pojme Kullback-Leiblerova divergencia - metrika na odhad, ako podobné sú dve štatistické rozdelenia.

Jednou z dôležitých výhod VAE je, že nám umožňujú generovať nové obrázky relatívne jednoducho, pretože vieme, z ktorého rozdelenia vzorkovať latentné vektory. Napríklad, ak trénujeme VAE s 2D latentným vektorom na MNIST, môžeme potom meniť komponenty latentného vektora, aby sme získali rôzne číslice:

vaemnist

Obrázok od Dmitry Soshnikov

Pozorujte, ako sa obrázky prelínajú, keď začíname získavať latentné vektory z rôznych častí latentného priestoru parametrov. Tento priestor môžeme tiež vizualizovať v 2D:

vaemnist cluster

Obrázok od Dmitry Soshnikov

✍️ Cvičenia: Autoenkodéry

Získajte viac informácií o autoenkodéroch v týchto príslušných notebookoch:

Vlastnosti autoenkodérov

  • Špecifické pre dáta - fungujú dobre iba s typom obrázkov, na ktorých boli trénované. Napríklad, ak trénujeme sieť na super-rezolúciu na kvetoch, nebude dobre fungovať na portrétoch. Je to preto, že sieť dokáže vytvoriť obrázok vo vyššom rozlíšení tým, že berie jemné detaily z vlastností naučených z trénovacieho datasetu.
  • Stratové - rekonštruovaný obrázok nie je rovnaký ako pôvodný obrázok. Povaha straty je definovaná funkciou straty použitou počas trénovania.
  • Funguje na neoznačených dátach

Kvíz po prednáške

Záver

V tejto lekcii ste sa naučili o rôznych typoch autoenkodérov dostupných pre AI vedca. Naučili ste sa, ako ich vytvoriť a ako ich použiť na rekonštrukciu obrázkov. Tiež ste sa naučili o VAE a ako ich použiť na generovanie nových obrázkov.

🚀 Výzva

V tejto lekcii ste sa naučili používať autoenkodéry na obrázky. Ale môžu byť použité aj na hudbu! Pozrite si projekt Magenta MusicVAE, ktorý používa autoenkodéry na učenie rekonštrukcie hudby. Vyskúšajte niektoré experimenty s touto knižnicou a zistite, čo dokážete vytvoriť.

Kvíz po prednáške

Prehľad a samostatné štúdium

Pre referenciu si prečítajte viac o autoenkodéroch v týchto zdrojoch:

Zadanie

Na konci tohto notebooku s TensorFlow nájdete 'úlohu' - použite ju ako svoje zadanie.