Bevezetés a mélytanulásba · Lecke 07

Generatív mélytanulás

Az eddigi hálók osztályoztak vagy megjósoltak valamit. A generatív modellek másra képesek. Nem címkéznek, hanem új adatot hoznak létre. Ebben a leckében megnézzük, mi a különbség a megkülönböztető és a generatív megközelítés között, mi az a látens tér, és hogyan működik az autoenkóder, a variációs autoenkóder, a generatív ellenséges háló és röviden a diffúziós modell.

Vissza a tananyaghoz


Megkülönböztető és generatív modellek

Az eddigi leckékben megkülönböztető (discriminative) modellekkel foglalkoztunk. Ezek adott bemenethez egy címkét vagy értéket rendelnek, tehát megtanulják, hogyan lehet az adatból egy döntést levezetni. A generatív (generative) modell más kérdést tesz fel. Nem azt tanulja meg, hogyan soroljon be egy adatot, hanem magának az adatnak a szerkezetét, az eloszlását. Ha ezt megtanulta, akkor abból új, a tanítóadathoz hasonló, mégis eredeti mintákat tud előállítani. Ez gyakran felügyelet nélküli (unsupervised) tanulás, mert nincs szükség címkékre, maga az adat belső szerkezete a tananyag.


Megkülönböztető modell

  • Bemenethez címkét vagy értéket rendel
  • Osztályoz, megjósol, felismer
  • Rendszerint felügyelt tanulás
  • Kérdés, hogy mi ez

Generatív modell

  • Az adat eloszlását tanulja meg
  • Új, hasonló mintákat állít elő
  • Gyakran felügyelet nélküli tanulás
  • Kérdés, hogyan néz ki az adat

Látens tér és autoenkóder

A generatív modellek gyakran abból indulnak ki, hogy az adat valójában néhány rejtett, mögöttes tényezővel leírható. Egy arcnál ilyen tényező lehet a fejtartás, a haj színe vagy a mosoly mértéke. Ezeket a rejtett tényezőket összefoglalva látens térnek (latent space) nevezzük, ez az adat tömör, alacsonyabb dimenziós leírása. Az autoenkóder (autoencoder) éppen ilyen tömör leírást tanul. Két részből áll. A kódoló (encoder) a bemenetet egy rövid látens kóddá sűríti, a dekódoló (decoder) pedig ebből próbálja visszaállítani az eredetit. A háló akkor tanul jól, ha a visszaállítás közel van a bemenethez, ez kényszeríti rá, hogy a lényeget ragadja meg.


bemenet kódoló látens kód tömör leírás dekódoló visszaállítás a cél, hogy a visszaállítás a bemenethez hasonlítson
Az autoenkóder a bemenetet egy rövid látens kóddá sűríti, majd abból állítja vissza. A jó visszaállítás kényszeríti a hálót, hogy a lényeget tanulja meg egy tömör reprezentációban.

Variációs autoenkóder

Az egyszerű autoenkóder látens tere nem feltétlenül alkalmas új minták generálására, mert lehetnek benne üres részek, ahonnan a dekódoló értelmetlen kimenetet adna. A variációs autoenkóder (variational autoencoder, VAE) ezt oldja meg azzal, hogy a kódoló nem egyetlen pontot, hanem egy valószínűségi eloszlást tanul a látens térben. Így a látens tér sima és folytonos lesz. Új adat generálásához elég egy pontot mintavételezni ebből az eloszlásból, és átengedni a dekódolón. Mivel a szomszédos pontok hasonló kimenetet adnak, a látens térben mozogva folytonosan változó, mégis valósághű mintákat kapunk.


Generatív ellenséges háló

A generatív ellenséges háló (generative adversarial network, GAN) egészen más ötletre épül, egy versengésre. Két háló küzd egymással. A generátor (generator) véletlen zajból próbál valósághű mintákat előállítani. A diszkriminátor (discriminator) feladata eldönteni egy adott mintáról, hogy az valódi tanítóadat vagy a generátor hamisítványa. A kettő egymás ellen tanul. A diszkriminátor egyre jobban leplezi le a hamisítványokat, a generátor pedig egyre meggyőzőbb mintákat készít, hogy becsapja. Ez a versengés hajtja mindkettőt, míg végül a generátor olyan mintákat állít elő, amelyeket nehéz megkülönböztetni a valóditól.


véletlen zaj generátor hamis mintát készít hamis valódi adat valódi diszkriminátor valódi vagy hamis döntés, majd mindkettő tanul belőle a generátor javít a visszajelzésből
A GAN két hálója egymás ellen tanul. A generátor egyre valósághűbb hamisítványokat készít, a diszkriminátor egyre jobban leplezi le őket. A versengés mindkettőt fejleszti.

Diffúziós modellek röviden

A legújabb generatív irányzat a diffúziós modell (diffusion model), amely a mai képgenerátorok jó részének az alapja. Az alapötlet meglepően egyszerű. A tanítás során fokozatosan, sok kis lépésben zajt adunk egy képhez, amíg teljesen felismerhetetlen, tiszta zaj nem lesz belőle. A modell azt tanulja meg, hogyan kell ezt a folyamatot visszafordítani, tehát lépésről lépésre eltávolítani a zajt. Ha ez megvan, akkor új kép generálásához elég tiszta zajból indulni, és a megtanult zajtalanító lépéseket egymás után alkalmazni, míg egy értelmes kép ki nem bontakozik. A diffúziós modellekkel egy külön kurzus foglalkozik részletesen.


  1. ZajosításA tanításhoz egy valódi képhez sok kis lépésben zajt adunk, amíg tiszta zaj nem lesz.
  2. Zajtalanítás tanulásaA modell megtanulja, hogyan fordítsa vissza a folyamatot, lépésenként eltávolítva a zajt.
  3. Indítás zajbólGeneráláskor tiszta véletlen zajból indulunk, minden előzetes kép nélkül.
  4. Kép kibontakozásaA megtanult lépéseket egymás után alkalmazva a zajból értelmes kép áll össze.

← Előző lecke Következő lecke →

Workshop

AI Transformation Day

Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.

Érdekel a program →