VGG16 – Convolutional Network for Classification and Detection

jún 29, 2021
admin

A VGG16 egy konvolúciós neurális hálózati modell, amelyet K. Simonyan és A. Zisserman javasoltak az Oxfordi Egyetemről a “Very Deep Convolutional Networks for Large-Scale Image Recognition” című tanulmányban. A modell 92,7%-os top-5 tesztpontosságot ért el az ImageNet-ben, amely egy 1000 osztályba tartozó, több mint 14 millió képet tartalmazó adathalmaz. Ez volt az ILSVRC-2014-re benyújtott egyik híres modell. Az AlexNethez képest úgy ér el javulást, hogy a nagy kernel méretű szűrőket (11 és 5 az első és a második konvolúciós rétegben) egymás után több 3×3 kernel méretű szűrővel helyettesíti. A VGG16-ot hetekig képezték, és NVIDIA Titan Black GPU-kat használtak.

vgg16 architektúra
VGG16

Adatkészlet

Az ImageNet egy több mint 15 millió nagyfelbontású, nagyjából 22 000 kategóriába tartozó, címkézett képből álló adathalmaz. A képeket a világhálóról gyűjtötték össze, és emberi címkézők címkézték meg az Amazon Mechanical Turk tömegszállító eszközének segítségével. 2010-től kezdve a Pascal Visual Object Challenge részeként évente megrendezik az ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) nevű versenyt. Az ILSVRC az ImageNet egy olyan részhalmazát használja, amely 1000 kategóriában nagyjából 1000 képet tartalmaz. Összesen nagyjából 1,2 millió gyakorló kép, 50 000 validációs kép és 150 000 tesztkép van. Az ImageNet változó felbontású képekből áll. Ezért a képeket 256×256-os fix felbontásra mintavételeztük le. Adott egy téglalap alakú kép, a képet átméretezzük, és az így kapott képből kivágjuk a központi 256×256-os foltot.

Az architektúra

Az alább ábrázolt architektúra a VGG16.

VGG16 architektúra
1. ábra. VGG16 architektúra

A cov1 réteg bemenete egy fix méretű 224 x 224 RGB kép. A kép egy köteg konvolúciós (conv.) rétegen halad át, ahol a szűrőket nagyon kicsi receptív mezővel használtuk: 3×3 (ez a legkisebb méret a balra/jobbra, fel/le, középre fogalmak megragadásához). Az egyik konfigurációban 1×1 konvolúciós szűrőket is használ, ami a bemeneti csatornák lineáris transzformációjának tekinthető (amelyet nemlinearitás követ). A konvolúciós lépésköz 1 pixelben van rögzítve; a konvolúciós réteg bemenetének térbeli kitöltése olyan, hogy a térbeli felbontás megmaradjon a konvolúció után, azaz a kitöltés 1 pixel 3×3 konvolúciós réteg esetén. A térbeli összevonást öt max-pooling réteg végzi, amelyek néhány konv. réteget követnek (nem minden konv. réteget követ max-pooling). A max-pooling egy 2×2 pixeles ablakban történik, 2 lépéssel.

Három Fully-Connected (FC) réteg követi a konvolúciós rétegek halmazát (amely különböző architektúrákban különböző mélységű): az első kettőnek egyenként 4096 csatornája van, a harmadik 1000-utas ILSVRC osztályozást végez, és így 1000 csatornát tartalmaz (minden osztályhoz egyet). Az utolsó réteg a soft-max réteg. A teljesen összekapcsolt rétegek konfigurációja minden hálózatban azonos.

A rejtett rétegek mindegyike rendelkezik a rektifikációs (ReLU) nemlinearitással. Megjegyzendő továbbá, hogy egyik hálózat sem tartalmaz (egy kivételével) helyi válasz normalizálást (LRN), az ilyen normalizálás nem javítja a teljesítményt az ILSVRC-adatkészleten, de megnövekedett memóriafogyasztáshoz és számítási időhöz vezet.

Konfigurációk

A ConvNet konfigurációkat a 2. ábra vázolja. A hálók a nevükre (A-E) hivatkoznak. Minden konfiguráció az architektúrában jelen lévő általános felépítést követi, és csak a mélységben különbözik: az A hálózat 11 súlyrétegétől (8 konv. és 3 FC réteg) az E hálózat 19 súlyrétegéig (16 konv. és 3 FC réteg). A konv. rétegek szélessége (a csatornák száma) meglehetősen kicsi, az első rétegben 64-ről indul, majd minden egyes max-pooling réteg után 2-szeresére nő, amíg el nem éri az 512-et.

2. ábra. ConvNet konfiguráció

Használati esetek és megvalósítás

A VGGNet-nek sajnos két nagy hátránya van:

  1. Fájdalmasan lassú a betanítása.
  2. A hálózati architektúra súlyai önmagukban elég nagyok (a lemez/sávszélességet illetően).

A mélysége és a teljesen összekapcsolt csomópontok száma miatt a VGG16 több mint 533 MB. Ez a VGG telepítését fárasztó feladattá teszi. a VGG16-ot számos mélytanulási képosztályozási problémában használják; azonban a kisebb hálózati architektúrák gyakran kívánatosabbak (mint például a SqueezeNet, GoogLeNet stb.). De nagyszerű építőelem tanulási célokra, mivel könnyen implementálható.

Eredmény

A VGG16 jelentősen felülmúlja az előző generációs modelleket az ILSVRC-2012 és ILSVRC-2013 versenyeken. A VGG16 eredménye versenyben van az osztályozási feladat győztesével is (GoogLeNet 6,7%-os hibával), és jelentősen felülmúlja az ILSVRC-2013 győztes pályázat Clarifai eredményét, amely külső képzési adatokkal 11,2%-ot ért el, anélkül pedig 11,7%-ot. Ami az egyhálós teljesítményt illeti, a VGG16 architektúra érte el a legjobb eredményt (7,0%-os teszthiba), 0,9%-kal felülmúlva az egy GoogLeNet-et.

VGG16 összehasonlítás
VGG16 összehasonlítás

Bebizonyosodott, hogy a reprezentációs mélység kedvezően hat az osztályozási pontosságra, és hogy az ImageNet kihívás adathalmazon a legkorszerűbb teljesítmény érhető el egy hagyományos ConvNet architektúrával, jelentősen megnövelt mélységgel.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.