Miért nem elég egy sűrű háló
Egy kép sok ezer, akár millió képpontból áll, és a szomszédos képpontok összefüggnek egymással. Élek, textúrák, formák mind lokális mintázatok. Ha egy képet egyszerűen kiterítenénk egyetlen hosszú számsorrá, és egy teljesen kapcsolt hálóra bíznánk, két baj lenne. Egyrészt hatalmas mennyiségű súlyra volna szükség, ami nehezen tanítható. Másrészt elveszne a térbeli szerkezet, pedig éppen az hordozza a képi információt. Ezért a gépi látás nem sűrű, hanem konvolúciós hálót használ, amely megőrzi és kihasználja a kép elrendezését.
A konvolúció
A konvolúció (convolution) lényege egy kis méretű szűrő (filter), más néven kernel, amelyet végigcsúsztatunk a képen. A szűrő minden pozícióban a lefedett képpontokkal súlyozott összeget képez, és az eredmény egy új rács, amit jellemzőtérképnek (feature map) nevezünk. Egy szűrő mindig ugyanazt a lokális mintázatot keresi, például egy adott irányú élt, bárhol is bukkan fel a képen. Ezt hívjuk súlymegosztásnak, mert ugyanazt a néhány súlyt alkalmazzuk a kép minden pontján. Ennek fontos következménye, hogy a háló akkor is felismeri a mintázatot, ha az a kép más részére csúszik el.
Rétegek egymásra épülése
Egy konvolúciós réteg általában nem egyetlen, hanem sok szűrőt tanul, mindegyik más mintázatra érzékeny. Az első réteg egyszerű dolgokat ismer fel, éleket és színátmeneteket. A rákövetkező rétegek az előző réteg jellemzőtérképeit dolgozzák fel, így egyre összetettebb mintázatokat építenek, sarkokból formákat, formákból tárgyrészeket, végül egész tárgyakat. Ez pontosan az a hierarchia, amit az első leckében a mélytanulás lényegeként említettünk, itt a képek konkrét esetére alkalmazva.
Pooling
A konvolúció mellett a másik jellemző művelet a pooling, magyarul összevonás, amely a jellemzőtérképet kisebbre zsugorítja. A leggyakoribb változat a maximum pooling (max pooling), amely egy kis ablakon belül csak a legnagyobb értéket tartja meg. Ennek két haszna van. Egyrészt csökkenti az adat méretét, ezáltal a számításigényt és a súlyok számát is. Másrészt egyfajta tűrést ad, mert ha a mintázat kicsit elcsúszik, a maximum nagy eséllyel ugyanaz marad, így a háló kevésbé érzékeny a pontos helyzetre.
- KonvolúcióA szűrők végigpásztázzák a bemenetet, és jellemzőtérképeket állítanak elő.
- AktivációEgy nemlineáris függvény, jellemzően a ReLU, engedi át a jellemzőtérkép értékeit.
- PoolingAz összevonás kisebbre zsugorítja a térképet, és tűrést ad a kis eltolódásokra.
- OsztályozásTöbb ilyen blokk után egy teljesen kapcsolt réteg dönti el, mit ábrázol a kép.
A gépi látás fő feladatai
A konvolúciós hálók a gépi látás számos feladatában alapvetők. A képosztályozás egyetlen címkét ad az egész képnek, például hogy macska vagy kutya látható rajta. Az objektumdetektálás ezen túlmegy, és nem csak felismeri, hanem be is határolja, hol vannak a tárgyak a képen. A szemantikus szegmentálás még finomabb, minden egyes képpontot besorol egy kategóriába, így a kép pontos térképét adja arról, mi hol található. Mindhárom ugyanarra a konvolúciós alapra épül, csak a kimenet és a fej felépítése tér el.
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 →