pixel szintŰ szegmentÁlÁs cnn
TRANSCRIPT
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 konfiden-ciá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:
– Csak -et tudjuk becsülni (nincsenek címkéink)
• Félig ellenőrzött tanítás:
– Ellenőrzött tanításnál -et becsüljük
– Azon mintákkal, melynek nincs címkéje -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)
P x
,P y P y Px x x
P x
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:
• Pixel CNN esetén csak a lokálisan elhelyezkedő pixeleké
• Jellemzői:
– 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
1 2 1p p , ,...,i i i
i
x x x x x
Rekurrens hálók (Pixel RNN / CNN)
Pixel RNN Pixel CNN
Softmax Loss pixelenként
Pixel CNN
Autoenkóder (AE)
• Autoenkóder háló:
– Kódoló: bemenet => látens változó
– Dekódoló: látens reprezentáció => bemenet
– Mintagenerálás: „hihető” látens változó dekódolása
– Veszteségfüggvény:
• 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
?
?L D E x x x
Ez x
D z x
Generatív modellek általánosan
• Maximalizáljuk a minták likelihoodját:
Minták likelihoodja:
Logaritmálva:
• Vizsgáljuk meg kifejezést:
1 2
1
P , ,..., PN
N i
i
x x x θ x θ
1 2log P , ,..., log P
N ix x x θ x θ
1
arg min 1 log PN
i
i
N
θ
θ x θ
P PKLD x x θ
P P P log P P log PKLD x x
x x θ x x θ x x
arg min P P arg min P log PKLD
θ θ x
θ x x θ x x θ
Variációs Autoenkóder (VAE)
• Közelítsük a minták likelihoodját:
–
log E log
i
i i
qp p
z z xx x
E log
i
i
q i
p p
p
z z x
x z z
z x
E logi
ii
q i i
qp p
p q
z z x
z xx z z
z x z x
E log E log E log
i i
i
i
q qp
p p
z z z
z x z xx z
z z x
E logi i i i
KL KLp D q p D q p z
x z z x z z x z x
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: , ,diag z θ x ε 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.)
x
z
x z
x
x
z x
z
,N z z
z x x
,N x x
x z z
?
?L D E x x 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:
– Block coordinate descent / ascent alapú optimalizálás
min max E log E log 1d d gp pg d
D D G
x x z z
x z
GAN
• Minmax hibafüggvény:
– Belátható, hogy ha hipotézistere tetszőlegesen nagy,
akkor -t minimalizálja
• 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.
min max E log E log 1Val d d gpg d
D D G
x z z
x z
dD
D PJS gGx z
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
– önmagában ritkán jó bármire is dD x
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ó:
– 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
,E log P E log P
E log P 1
Valy Cimkezett
Gen
L y y K
y K
xx
x
x x
x
PdD y K x x
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:
– Hatásos, mert -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)
VAT
,
L D P , P ,
. . arg max D P , P ,
adv
adv adv
y y
s t y y
r r
x x θ x r θ
r x θ x r θ
advr
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 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?
H P ,y x θ
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: