Felvettem néhány, a Teljes Konvolúciós Hálózatokhoz kapcsolódó szakirodalmat , és a következő mondattal találkoztam ,
Teljesen konvolúciós hálózatot érünk el, ha a standard CNN architektúrákban a paraméterekben gazdag, teljesen összekapcsolt rétegeket konvolúciós rétegekkel helyettesítjük $ 1 \ szorzat 1 $ kernel.
Két kérdésem lenne.
-
Mit jelent a paraméterekben gazdag kifejezés? Paramétergazdagnak hívják, mert a teljesen összekapcsolt rétegek bármilyen “térbeli” redukció nélkül adják át a paramétereket?
-
Ezenkívül hogyan működik a $ 1 \ szorzat 1 $ kernel? A “t $ 1 \ szorzat 1 $ kernel egyszerűen azt jelenti, hogy az egyik képpontot csúsztatja a kép fölé? Zavarban vagyok ettől.
Válasz
Teljesen konvolúciós hálózatok
A A teljesen konvolúciós hálózat (FCN) egy neurális hálózat, amely csak konvolúciós (és részmintavételi vagy felfeles mintavételi) műveleteket hajt végre. Ennek megfelelően az FCN egy CNN, teljesen összekapcsolt rétegek nélkül.
Konvolúciós neuronhálózatok
A tipikus konvolúciós neuronhálózat (CNN) nem teljesen konvolúciós, mert gyakran tartalmaz teljesen összekapcsolt rétegeket (amelyek nem hajtják végre a konvolúciós műveletet), amelyek paraméterekben gazdagok abban az értelemben, hogy sok paraméterük van (az egyenértékű konvolúciójukhoz képest) rétegek), bár a teljesen összekapcsolt rétegek tekercsként is tekinthetők ker nels, amelyek lefedik a teljes beviteli régiókat , ami a CNN FCN-vé alakításának fő gondolata. Lásd Andrew Ng ezt a videót , amely elmagyarázza, hogyan lehet átalakítani a teljesen összekapcsolt réteget konvolúciós réteggé.
Példa egy FCN-re
A teljesen konvolúciós hálózat példája a U-net (ezt az U alakja miatt hívják meg, amelyet az alábbi ábrán láthat), amely egy híres hálózat, amelyet a szemantikához használnak szegmentálás , azaz a kép pixeleinek osztályozása úgy, hogy az azonos osztályba (pl. személy) tartozó pixelek azonos címkéhez (azaz személyhez) társuljanak, vagyis pixelenként ( vagy sűrű) osztályozás.
Szemantikus szegmentálás
Tehát szemantikus szegmentálás során egy címkét akar társítani a bemeneti kép minden egyes pixeléhez (vagy kis pixelfoltjához). Itt egy szemantikus szegmentálást végző neurális hálózat szuggesztívabb illusztrációja.
Példányszegmentálás
Van példányszegmentálás is , ahol ugyanazon osztály különböző példányait is meg akarja különböztetni (pl. két embert meg akar különböztetni ugyanazon a képen, másképp címkézve őket). Például a szegmentálásra használt neurális hálózatra az maszk R-CNN tartozik. Rachel Draelos szegmentálás: U-Net, Mask R-CNN és orvosi alkalmazások (2020) blogbejegyzés nagyon jól leírja ezt a két problémát és hálózatot.
Itt egy példa egy képre, ahol ugyanazon osztály (azaz személy) példányait másképp (narancssárga és kék) címkékkel látták el.
Mind a szemantikai, mind a példány szegmensek sűrű osztályozási feladatok (konkrétan esnek a képszegmentálás kategóriájába), vagyis a kép egyes pixeleit vagy sok kis pixelfoltját be kell sorolni.
$ 1 \ szorozza meg az 1 $ konvolúciókat
A fenti U-net diagramon láthatja, hogy csak konvolúciók vannak, másolás és kivágás, max- pooling és upampling műveletek. Nincsenek teljesen összekapcsolt rétegek.
Tehát hogyan társíthatunk címkét az egyes pixelekhez (vagy egy kis p ixels) a bemenet? Hogyan végezhetjük el az egyes pixelek (vagy javítások) besorolását egy végső, teljesen összekapcsolt réteg nélkül?
Ez az, ahol a $ 1 \ szorzat 1 $ hasznosak a konvolúciós és a mintavételi műveletek!
A fenti U-net diagram esetében (konkrétan a diagram jobb felső részén, amelyet az alábbiakban szemléltetünk az érthetőség kedvéért) kettő $ 1 \ szor 1 \ szorosa 64 $ kernelt alkalmazunk a bemeneti kötetre (nem a képekre!) két térkép készítéséhez, amelynek mérete $ 388 \ szor 388 $ . Két $ 1 \ szorzat 1 $ kernelt használtak, mert kísérleteikben két osztály volt (cellás és nem cellás). Az említett blogbejegyzés szintén megadja neked a megérzést, ezért el kell olvasnod.
Ha gondosan megpróbálta elemezni az U-net diagramot, akkor észreveszi, hogy a kimenet leképezi térbeli (magasság és súly) méretei eltérnek a bemeneti képek méretétől, amelyek méretei $ 572 \ szor 572 \ szor 1 $ .
Ez “s remek, mert általános célunk sűrű osztályozás (azaz a kép foltjainak osztályozása, ahol a javítások csak egy pixelt tartalmazhatnak) ), bár azt mondtam, hogy pixelenkénti besorolást hajtottunk volna végre, ezért talán azt várta, hogy a kimeneteknek ugyanazok legyenek a bemenetek pontos térbeli méretei. Ugyanakkor vegye figyelembe, hogy a gyakorlatban a kimeneti térképekkel is rendelkezhet ugyanaz a térbeli dimenzió, mint a bemenetek: csak ne szerkesztette, hogy egy másik mintavételi (dekonvolúciós) műveletet hajtson végre.
Hogyan működik a $ 1 \ szorzat 1 $ konvolúció?
A $ 1 \ times 1 $ konvolúció csak a tipikus 2d konvolúció, de $ 1 \ times1 $ kernellel.
Amint valószínűleg már tudja (és ha ezt még nem tudta, most már tudja), ha van $ g \ szorzat g $ kernel, amelyet egy $ h \ -szeres x \ d-szer d $ méretű bemenetre alkalmaznak, ahol $ d $ a bemeneti kötet mélysége (amely például szürkeárnyalatos képek esetén $ 1 $ ), a kernel valójában $ g \ times g \ times d $ , azaz a kernel harmadik dimenziója megegyezik a bemenet harmadik dimenziójával, amelyre alkalmazzák. Ez mindig így van, kivéve a 3d konvolúciókat, de most a tipikus 2d konvolúciókról beszélünk! További információért lásd: ezt a választ .
Tehát abban az esetben, ha egy -t szeretnénk alkalmazni $ 1 \ szorzat 1 $ konvolúció a $ 388 \ 388-szoros 64 $ alakú bemenetre, ahol 64 USD A $ a bemenet mélysége, majd a tényleges $ 1 \ szorzat 1 $ kernelnek $ 1 \ szor 1xszeres 64 $ (ahogy fentebb említettem az U-netnél). Azt, hogy miként csökkentheti a bemenet mélységét a $ 1 \ szorzat 1 $ értékkel, a $ 1 \ szorzat 1 $ száma határozza meg a használni kívánt magok. Ez pontosan ugyanaz, mint bármely más kernelű 2d konvolúciós műveletnél (pl. $ 3 \ szorzat 3 $ ).
A U-net, a bemenet térbeli méretei ugyanúgy csökkennek, mint bármely CNN bemenetének térbeli méretei (azaz a 2d konvolúció, majd az almintavételi műveletek). Az U-net és a többi CNN közötti fő különbség (azon kívül, hogy nem használunk teljesen összekapcsolt rétegeket) az, hogy az U-net felmintázási műveleteket hajt végre, így kódolónak (bal oldali rész), majd dekódernek (jobb oldali rész) tekinthető. .
Megjegyzések
- Köszönöm a részletes választ, nagyon értékelem!