AI-For-Beginners/translations/hu/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

Autoenkóderek

Amikor CNN-eket (konvolúciós neurális hálózatokat) tanítunk, az egyik probléma az, hogy sok címkézett adatra van szükségünk. Képklasszifikáció esetén például manuálisan kell azonosítani és különböző osztályokba sorolni a képeket.

Előadás előtti kvíz

Azonban előfordulhat, hogy nyers (címkézetlen) adatokat szeretnénk használni a CNN-ek jellemzőkivonóinak tanításához, amit önfelügyelt tanulásnak nevezünk. Címkék helyett a tanítóképeket használjuk a hálózat bemeneteként és kimeneteként. Az autoenkóder fő ötlete az, hogy lesz egy enkóder hálózat, amely a bemeneti képet valamilyen latens térbe (általában egy kisebb méretű vektorba) alakítja, majd egy dekóder hálózat, amelynek célja az eredeti kép rekonstruálása.

Az autoenkóder "egy mesterséges neurális hálózat típus, amelyet címkézetlen adatok hatékony kódolásának megtanulására használnak."

Mivel az autoenkódert arra tanítjuk, hogy minél több információt megőrizzen az eredeti képből a pontos rekonstrukció érdekében, a hálózat megpróbálja megtalálni a legjobb beágyazást a bemeneti képek jelentésének megragadásához.

Autoenkóder diagram

Kép a Keras blogból

Autoenkóderek használati forgatókönyvei

Bár az eredeti képek rekonstruálása önmagában nem tűnik hasznosnak, vannak olyan forgatókönyvek, ahol az autoenkóderek különösen hasznosak:

  • Dimenziócsökkentés vizualizációhoz vagy képbeágyazások tanítása. Az autoenkóderek általában jobb eredményeket adnak, mint a PCA, mivel figyelembe veszik a képek térbeli jellegét és hierarchikus jellemzőit.
  • Zajcsökkentés, azaz a zaj eltávolítása a képről. Mivel a zaj sok haszontalan információt hordoz, az autoenkóder nem tudja mindezt beilleszteni a viszonylag kis latens térbe, így csak a kép fontos részét ragadja meg. Zajcsökkentő tanításkor az eredeti képekkel kezdünk, és mesterségesen zajt adunk hozzájuk, hogy bemenetként szolgáljanak az autoenkóder számára.
  • Szuperfelbontás, azaz a kép felbontásának növelése. Magas felbontású képekkel kezdünk, és az alacsonyabb felbontású képet használjuk az autoenkóder bemeneteként.
  • Generatív modellek. Miután az autoenkódert betanítottuk, a dekóder részt új objektumok létrehozására használhatjuk véletlenszerű latens vektorokból kiindulva.

Variációs Autoenkóderek (VAE)

A hagyományos autoenkóderek valamilyen módon csökkentik a bemeneti adatok dimenzióját, és megpróbálják azonosítani a bemeneti képek fontos jellemzőit. Azonban a latens vektorok gyakran nem értelmezhetők. Más szóval, ha például az MNIST adathalmazt vesszük, nem könnyű meghatározni, hogy mely számjegyek felelnek meg különböző latens vektoroknak, mivel a közeli latens vektorok nem feltétlenül ugyanazokat a számjegyeket jelentik.

Ezzel szemben, ha generatív modelleket szeretnénk tanítani, jobb, ha van némi megértésünk a latens térről. Ez az ötlet vezet el minket a variációs autoenkóderhez (VAE).

A VAE egy olyan autoenkóder, amely megtanulja a latens paraméterek statisztikai eloszlását előre jelezni, az úgynevezett latens eloszlást. Például azt szeretnénk, hogy a latens vektorok normálisan legyenek elosztva egy zmean átlaggal és zsigma szórással (mind az átlag, mind a szórás egy d dimenziós vektor). A VAE enkóder megtanulja ezeket a paramétereket előre jelezni, majd a dekóder egy véletlenszerű vektort vesz ebből az eloszlásból, hogy rekonstruálja az objektumot.

Összefoglalva:

  • A bemeneti vektorból előre jelezzük z_mean-t és z_log_sigma-t (a szórás helyett annak logaritmusát jelezzük előre)
  • Egy sample vektort mintázunk az N(zmean,exp(zlog_sigma)) eloszlásból
  • A dekóder megpróbálja dekódolni az eredeti képet a sample vektort bemenetként használva

Kép Isaak Dykeman blogbejegyzéséből

A variációs autoenkóderek egy összetett veszteségfüggvényt használnak, amely két részből áll:

  • Rekonstrukciós veszteség, amely azt mutatja, hogy a rekonstruált kép mennyire közel áll a célhoz (ez lehet például a Mean Squared Error, vagy MSE). Ez ugyanaz a veszteségfüggvény, mint a normál autoenkódereknél.
  • KL veszteség, amely biztosítja, hogy a latens változó eloszlása közel maradjon a normál eloszláshoz. Ez a Kullback-Leibler divergencia fogalmán alapul - egy metrika, amely két statisztikai eloszlás hasonlóságát becsüli.

A VAE-k egyik fontos előnye, hogy viszonylag könnyen lehet új képeket generálni, mivel tudjuk, mely eloszlásból kell mintázni a latens vektorokat. Például, ha egy VAE-t tanítunk 2D latens vektorral az MNIST adathalmazon, akkor a latens vektor komponenseit változtatva különböző számjegyeket kapunk:

vaemnist

Kép Dmitry Soshnikovtól

Figyeljük meg, hogyan olvadnak össze a képek, ahogy a latens paramétertér különböző részeiből kezdünk latens vektorokat venni. Ezt a teret 2D-ben is vizualizálhatjuk:

vaemnist cluster

Kép Dmitry Soshnikovtól

✍️ Gyakorlatok: Autoenkóderek

További információkat az autoenkóderekről az alábbi notebookokban találhatsz:

Az autoenkóderek tulajdonságai

  • Adatspecifikusak - csak azon képtípusokkal működnek jól, amelyeken tanították őket. Például, ha egy szuperfelbontású hálózatot virágokon tanítunk, nem fog jól működni portrékon. Ennek oka, hogy a hálózat a magasabb felbontású képet úgy állítja elő, hogy finom részleteket vesz a tanító adathalmazból tanult jellemzőkből.
  • Veszteségesek - a rekonstruált kép nem ugyanaz, mint az eredeti kép. A veszteség jellege a tanítás során használt veszteségfüggvénytől függ.
  • Címkézetlen adatokkal működik

Előadás utáni kvíz

Következtetés

Ebben a leckében megismerkedtél az autoenkóderek különböző típusaival, amelyek az AI kutatók rendelkezésére állnak. Megtanultad, hogyan építsd fel őket, és hogyan használd őket képek rekonstruálására. Emellett megismerkedtél a VAE-vel, és megtanultad, hogyan használhatod új képek generálására.

🚀 Kihívás

Ebben a leckében megtanultad, hogyan használhatók az autoenkóderek képekhez. De zenéhez is használhatók! Nézd meg a Magenta projekt MusicVAE projektjét, amely autoenkódereket használ a zene rekonstruálásának megtanulására. Végezzen néhány kísérletet ezzel a könyvtárral, hogy lássa, mit tud létrehozni.

Előadás utáni kvíz

Áttekintés és önálló tanulás

További információkért olvass az autoenkóderekről az alábbi forrásokban:

Feladat

A TensorFlow-t használó notebook végén található egy "feladat" - használd ezt a házi feladatként.