PIXEL SZINTŰ SZEGMENTÁLÁS CNN-EL
Csúszóablakos szegmentálás Szegmentálás direkt osztályozással Kisméretű ablakkal kivágott kép alapján megítéli az adott pixel környezetének a típusát Nagyon lassú, nehezen tanítható, pontatlan
Teljesen konvolúciós hálóval Teljesen összekötött réteg nélküli hálóval: Kimenete: minden képponthoz kategória számnyi konfidenciát rendel (softmax nemlin. után) / regresszió pixelenként Általában az U-net-el valósítják meg: 1. szakasz: felbontás csökkentése, csatornák számának növelésével 2. szakasz: felbontás növelése transzponált konvolúciókkal, csatornák számának csökkentésével
Mask R-CNN (*) Faster R-CNN kimeneti régióin teljesen konvolúciós hálóval szegmentál: a) Régiókat uniform méretűvé mintavételezve, majd az eredményt vissza méretezve b) Régiókat invalid pixelekkel uniform méretűvé kiegészítve, majd az eredményt kivágva
Mask R-CNN (*) Jó eredmények pontos szegmentáció Nagy hatékonyság
U-Net (2016) Teljesen konvolúciós (Fully Convolutional) háló
DeepLab v3+ (2018) Enkóder Dekóder architektúrák továbbfejlesztése
ELOSZLÁSOK TANULÁSA
Motiváció Nem ellenőrzött tanítás: P x Félig ellenőrzött tanítás: Csak -et tudjuk becsülni (nincsenek címkéink) Ellenőrzött tanításnál P y, x P y x P x -et becsüljük Azon mintákkal, melynek nincs címkéje P x -et finomíthatjuk Klasszikus megközelítés eszköztára gyenge: Direkt modellezés leginkább a klaszterezésben merült ki csak az eloszlás sűrűsödési pontjait tanulta meg Indirekt modellezése a transzduktív tanulásban (pl. transzduktív SVM)
Motiváció Mély tanulás megjelenésével: Lehetővé vált hiteles minták generálása (GAN) Eloszlások direkt modellezése félig ellenőrzött tanításnál (GAN-al támadás) Hasznos, és kevésbé hasznos alkalmazások: Hálószoba / macska generálás Képek transzformációja (pix 2 pix) alapon Sematikus skiccből homlokzat Térképből légi felvétel Videó hamisítások
Rekurrens hálók (RNN) Együttes eloszlást faktorizáljuk: Adott elem értékének az eloszlása a tőle kisebb indexű elemek értékeinek eloszlásának a függvénye: Jellemzői: xx x x x p p,,..., i i i1 i2 1 Pixel CNN esetén csak a lokálisan elhelyezkedő pixeleké Pontosság / hihetőség az eloszlást előállító cella komplexitásának a függvénye Hosszú hiba visszaterjesztési utak (sok dim. pontok esetén) Először ezzel akartak képeket generálni
Rekurrens hálók (Pixel RNN / CNN) Softmax Loss pixelenként Pixel RNN Pixel CNN
Pixel CNN
Autoenkóder (AE) Autoenkóder háló: Kódoló: bemenet => látens változó Dekódoló: látens reprezentáció => bemenet D z x Mintagenerálás: hihető látens változó dekódolása Veszteségfüggvény: L x D E x x Minták generálása: Pl. valódi mintákhoz tartozó látens ábrázolások konvex kombinációjának dekódolásából Mivel a veszteségfüggvény a legkisebb hibájú rekonstrukciót preferálja, ezért hihető minták generálásra gyakorlatban nem alkalmas z E x??
Generatív modellek általánosan Maximalizáljuk a minták likelihoodját: Minták likelihoodja: Logaritmálva: Vizsgáljuk meg 12N i P x, x,..., x θ P x θ N i1 12N i log P x, x,..., x θ log P x θ N arg min 1 log P i θ N x θ θ i1 D P KL x x θ P kifejezést: D P x P x θ P x log P x θ P x log P x KL x θ arg mind P P arg min P logp KL x x θ x x θ θ θ x x
Variációs Autoenkóder (VAE) Közelítsük a minták likelihoodját: i p x log E log z q z x i i p p x z z E log i q z i p z x zx i i p p q x z z zx E log i q z i i p q z x z x z x i i q q E log i z x z x z p x z Ez log Ez log p i p z zx i i i i Ez log p x z DKL q z x p z DKL q z x p z x p x i
Variációs Autoenkóder (VAE) Tehát egy prior eloszláshoz igazítjuk a látens változókat Unimodális eloszlás legyen (gyakorlatban Gauss, ezzel a legkönnyebb számolni a KL divergenciát) Unimodalitás miatt az interpolált látens változók kép eloszlása értelmes marad Új architurális elem mintavételi réteg Bemenete: egy várható érték, valamint egy kovariancia mtx. Kimenete: a bemeneti paraméterekkel leírt Gauss eloszlás egy statiszikai mintája Nincs tanítható paramétere, numerikusan jól viselkedik, hiba visszaterjesztése triviális. Megvalósítása: z θ, xdiag ε z θ, x
Variációs Autoenkóder (VAE) Visszaterjesztett hiba: Dekórder résznél alapján Enkóder résznél: Dekóderen keresztül visszaterjesztett hiba + prior eloszlástól való eltérés (Gauss prior esetén weight decay / Thikhonov reg.) L x D E x x?? x z z x z N x, x z z x N z, z x x z x x z x
Variációs Autoenkóder (VAE)
Variációs Autoenkóder (VAE) Látens változók eloszlása: AE VAE
GAN Feladjuk az explicit eloszlás modellezést: Megelégszünk egy olyan CNN-el, mely zaj bemenetből hihető képeket tud generálni. Két szereplős játék: Generátor: megpróbál olyan képeket generálni, melyek átverik a diszkriminátor hálót Diszkriminátor: megpróbálja a leginkább megkülönböztetni a generált és a valódi mintákat egymástól Tanítása: D d x D p d G g z min max E log E log 1 g d x p x z z Block coordinate descent / ascent alapú optimalizálás
GAN Minmax hibafüggvény: x Belátható, hogy ha D d hipotézistere tetszőlegesen nagy, akkor D P x z -t minimalizálja JS G g Gyakorlati problémák sokasága jellemzi: Abból erednek, hogy a diszkriminátoron keresztül tanul a generátor (annak is a gradiensén) Nehezen kézben tartható 1 epoch alatt csodák történnek Különböző regularizációs módszerek: Diszkriminátor leképezés Lipchitz hányadosának korlátozása Több lépéses előretanítás alapján súlymódosítás, stb. D D G p z min max E log E log 1 g d x Val d z z d g
GAN (*) Bonyolult hibafelület, gyakorlati javaslatok: Pooling layereket mellőzzük, helyettük nagyobb lépésközű konvolúciót alkalmazzunk mindkét részhálóban Batchnorm alkalmazása javasolt rétegpáronként Teljesen összekötött rétegeket is mellőzzük Generátorban ReLU-t használjunk, kivéve a kimenetén (ott Tanh) Diszkriminátorban szivárgó ReLU Jelenleg az eloszlástanulás state of the art eljárásai: Legalábbis ha hiteles mintákat kell generálni x önmagában ritkán jó bármire is D d
GAN a félig ellenőrzött tanulásban (*) Módosítjuk az osztályozási problémát: K+1. osztály: generált mintáké Diszkriminátor szerepét átveszi az osztályozó: x P x D y K d x Val x x x, y Cimkezett L E log P y E log P y K x Gen E log P y K 1 x A GAN pedig át akarja verni az osztályozót Érdekes elméleti / gyakorlati eredmények: Nem érdemes túl erős generátort használni Laborkörnyezetben jelentős (4-10%-os) javulás
Félig ellenőrzött tanulás VAT (*) Adversarial Training ötletét általánosítja: Támadásra a címkézetlen mintákat is felhasználja: x y x θ y x radv θ LVAT D P, P, r, r adv s. t. radv arg max D P y x, θ P y x r, θ Hatásos, mert r adv -ot hiba visszaterjesztés közben online becsli (kicsi az overhead, ~1,5 -es számítási igény) Lényegében SVM-es stat. kockázatminimalizálás: Regularizál a döntési határt olyan tartományba tolja, ahol ritka a mintakészlet (itt fáj legkevésbé a bizonytalanság)
Félig ellenőrzött tanulás VAT (*) Egy példa futás:
Aktív tanulás (*) Nagy, címkézetlen mintahalmaz: Mely mintákat éri meg ezek közül címkézni? Két megközelítés létezik konfidencia, illetve fedettség Konfidencia alapú: Ha H P y x, θ kicsi, akkor látszólag biztos a háló Valójában jobb leíró a bemeneti támadásra érzékenyég Monte Carlo Dropout jobb lenne Fedettség alapú: Ha ritkán fedett a bemenet egy része, akkor ott címkézzünk Mi van, ha alacsony dim. manifold feszíti ki a mintákat?
GAN példák Látens változó interpretációja: - + =
GAN példák Képek generálására példák: Progressive GAN, Karras (Nvidia) 2017
GAN példák Képek transzformálása (kondicionált GAN): Pix2pix Isola (2017)
GAN Képek transzformálása (kond. GAN) Bemenet Kimenet
GAN példák Képek transzformálása (cycle GAN): https://github.com/junyanz/cyclegan/blob/master/imgs/horse2zebra.gif
GAN példák Képek transzformálása (CT - MR): Marketing, határok (meg ész) nélkül: https://arxiv.org/pdf/1708.01155.pdf
GAN Képek transzformálása: