„Ne légy túl nehéz magadnak” - valósította meg a Deep Learning

Ez a történet annak a felismerésnek a története, melyet a mély tanulás közössége idén elõzött meg - „hogy ne büntessék modelleit túlságosan azért, mert tévedtek”. Ez a felismerés akkor jött, amikor a kutatók a falnak dörömbölték a fejüket, és mindenféle csapást kipróbáltak a többféle tárgy detektálására. Aztán jött egy játékváltó a Facebook AI Research-ből (FAIR) - Fókuszveszteség a sűrű objektumok detektálására -, amely ráébresztette azt a felismerést, hogy talán túl kemények vagyunk, és ismét egy betekintés (matematikai egyenletgé vált) eltávolította az összes zűrzavar.

Először némi háttérrel kezdjük. Ahhoz, hogy bármilyen idegi hálózatot kiképzzünk, 3 dologra van szükségünk:

  1. Adat
  2. Neurális hálózati architektúra
  3. Veszteség funkció

A veszteség függvény feladata egy alacsony szám előállítása, ha az ideghálózatból származó output közel áll a tényleges értékhez, és fordítva. Így szankcionáljuk az idegi hálózatot azért, hogy tévednek.

Ha megnézzük a több objektum érzékelésének történetét, akkor két osztálymodell létezett (szinte egyidőben 2015 végén) a teljes (1 szakasz) több objektum-felismeréshez: YOLO (Ön csak egyszer) és az SSD (Single Shot Multibox Detector), amelyek a két lehetséges architektúra képviselői voltak, amelyek lehetettünk, azáltal, hogy egy egyedi fejet ragaszkodunk az előre kiképzett konvolúciós hálózathoz - mint például a ResNet.

A YOLO a modellek osztályát képviselte, ahol egy hosszú vektort kibontunk egy teljesen összekapcsolt lineáris rétegből, míg a konvolúciós aktiválások megközelítését az egyedi fejben az SSD modellek osztálya indította el.

Mióta a YOLO és az SSD megjelentek, a dolgok nagyjából elmozdultak az SSD felé - arra a pontra, hogy a YOLOv3 (a YOLO 3. verziója) most SSD módszert alkalmazza, mert az SSD kihasználja a konvolúciós aktiválások recepciós mezőjét.

Az aktiválás recepciós területe nem más, mint a bemenet azon része, amely részt vett az aktiválás kiszámításában. Ne feledje, hogy a recepciós mező nem csak azt mondja, hogy „a téglalap belsejében lévő bemenetek felelősek az aktiválásért”, hanem azt is mondja, hogy „a téglalap belsejében lévő összes bemenet közül a középen elhelyezkedő bemenetek felelősebbek az aktiválásért, mint mások” .

Forrás: http://cs231n.github.io/convolutional-networks/

A recepciós mező lehetővé teszi, hogy valami ilyesmit mondjunk:

A konvolúciós réteg kimenetének balra és balra aktiválása a kép bal felső részében található objektumokért, alul-jobbra a konvolúciós réteg kimenetének aktiválása a kép jobb alsó részén található objektumokért és így tovább .

Tehát most, a veszteségfüggvényünk megvizsgálhatja az összes kimeneti konvolúciós aktiválást, és eldöntheti, hogy az aktiválás képes-e helyesen tükrözni a befogadó mezőben lévő objektumok határoló dobozának koordinátáit és osztályait. Ezt kiderül, hogy valójában nehéz végrehajtani :(. Ez egy „illesztési problémát” jelent, amelyet úgy kell megoldani, hogy horgonyzó dobozokkal (vagy alapértelmezett mezőkkel) rendelkezik, és megtalálják azok átfedését (Jaccard index vagy keresztezés az Unió felett) az egyes talajokkal Ezután, az SSD-cikkben leírtaknak megfelelően, az egyes rögzítődobozokhoz hozzárendelnek egy földi igazságobjektum-indexet vagy hátteret.

Megjegyzés: Ha az utolsó bekezdésnek nem volt értelme, akkor olvassa el az SSD-t, vagy várjon a következő blogbejegyzésemre, hogy megértse, hogyan értelmezzük az aktiválásokat és manipuláljuk őket!

Miután túlmentünk a megfelelő szakaszon, alapvetően készen vagyunk. Vegyük az illesztett horgonydobozoknak megfelelő aktivációkat, és figyelembe vesszük az L1 veszteséget a korlátozó doboz koordinátáinak plusz a Cross Entropy veszteséget az osztályozáshoz, hogy veszteségfunkciónk legyen.

De ez még mindig nem ad nagy eredményeket. A modell nem végez jó munkát a képen lévő kis objektumokkal. És a betekintés, hogy miért nem működött, a Focal Loss for Dense Object Detection papírból származik.

Különböző méretű horgonydobozok vannak. A kisebb horgonydobozok valószínűleg felelősek a képen lévő kis tárgyak megtalálásáért. Mivel azonban a képzésünk során részt vevő kisebb horgonydobozok többsége háttérrel rendelkezik, soha nem lesznek magabiztosak más osztályok előrejelzésében. És miért ne válnak magabiztossá - mert túlságosan szigorúan büntetjük őket tévedés miatt. És ennyi volt! A Focal loss cikk ezt a betekintést az alább bemutatott matematikai képletbe változtatta, és teljesen megváltoztatta a játékot!

Forrás: Fókuszveszteség

A fenti grafikonon a kék vonal a kereszt-entrópia vesztesége. Az y tengely azt a keresztirányú entrópia veszteséget mutatja, amelyet a modellnek el kell viselnie, ha x valószínűséggel megjósolja a föld igazságosztályát (az x tengelyen). Tehát a lényeg az, hogy még ha a modell a helyes dolgot is megjósolja 0,6 valószínűséggel, még mindig sokat büntetjük. Tehát, még ha a modell meg akarja jósolni a megfelelő osztályt is, akkor nincs kifizetése, mert ez megtörténik, és mivel ez a legtöbb esetben háttér, a modell azt mondja, hogy háttér ad, hacsak nem átkozottul biztos valami más osztálynál. A trükk tehát az, hogy megváltoztassa a veszteség függvényét, hogy jobban hasonlítson a grafikon zöld vagy lila vonalához. A fókuszveszteség szorzatával szorozta meg a kereszt-entrópia veszteséget, hogy kevésbé legyen durva a modell számára, és nagyszerű eredményeket hozott, amint itt ellenőrizheti.