pixel szintŰ szegmentÁlÁs cnn

34
PIXEL SZINTŰ SZEGMENTÁLÁS CNN-EL

Upload: others

Post on 06-Nov-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

PIXEL SZINTŰ SZEGMENTÁLÁS CNN-EL

Page 2: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 3: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 4: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 5: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

Mask R-CNN (*)

• Jó eredmények – pontos szegmentáció

• Nagy hatékonyság

Page 6: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

U-Net (2016)

• Teljesen konvolúciós (Fully Convolutional) háló

Page 7: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

DeepLab –v3+ (2018)

• Enkóder – Dekóder architektúrák továbbfejlesztése

Page 8: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

ELOSZLÁSOK TANULÁSA

Page 9: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 10: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 11: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 12: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

Rekurrens hálók (Pixel RNN / CNN)

Pixel RNN Pixel CNN

Softmax Loss pixelenként

Page 13: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

Pixel CNN

Page 14: PIXEL SZINTŰ SZEGMENTÁLÁS 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

Page 15: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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 θ

Page 16: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 17: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 18: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 19: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

Variációs Autoenkóder (VAE)

Page 20: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

Variációs Autoenkóder (VAE)

• Látens változók eloszlása:

AE VAE

Page 21: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 22: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 23: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 24: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 25: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 26: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

Félig ellenőrzött tanulás – VAT (*)

• Egy példa futás:

Page 27: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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 θ

Page 28: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

GAN példák

• Látens változó interpretációja:

- + =

Page 29: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

GAN példák

• Képek generálására példák:

Progressive GAN, Karras (Nvidia) 2017

Page 30: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

GAN példák

• Képek transzformálása (kondicionált GAN):

Pix2pix Isola (2017)

Page 31: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

GAN

• Képek transzformálása (kond. GAN)

Bemenet Kimenet

Page 32: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

GAN példák

• Képek transzformálása (cycle GAN):

https://github.com/junyanz/CycleGAN/blob/master/imgs/horse2zebra.gif

Page 33: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

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

Page 34: PIXEL SZINTŰ SZEGMENTÁLÁS CNN

GAN

• Képek transzformálása: