csonk Mik azok a CNN-ek (konvolúciós neurális hálózatok)? - Egyesüljetek.AI
Kapcsolatba velünk
AI mesterkurzus:

AI 101

Mik azok a CNN-ek (konvolúciós neurális hálózatok)?

mm
korszerűsített on

Talán elgondolkozott már azon, hogy a Facebook vagy az Instagram hogyan képes automatikusan felismerni az arcokat a képen, vagy hogy a Google hogyan teszi lehetővé, hogy hasonló fényképeket keressen az interneten pusztán egy saját fénykép feltöltésével. Ezek a funkciók a számítógépes látás példái, és az általuk működtetett konvolúciós neurális hálózatok (CNN-ek). De mik is pontosan a konvolúciós neurális hálózatok? Vessünk egy mély merülést a CNN architektúrájába, és értsük meg, hogyan működnek.

Mik azok a neurális hálózatok?

Mielőtt elkezdenénk beszélni a konvolúciós neurális hálózatokról, szánjunk egy percet a szabályos neurális hálózat meghatározására. Van egy másik cikk Az elérhető neurális hálózatok témakörében, ezért itt nem megyünk túl mélyre. Mindazonáltal, hogy röviden meghatározzuk őket, ezek az emberi agy által ihletett számítási modellek. A neurális hálózat úgy működik, hogy adatokat vesz fel, és az adatokat a „súlyok” beállításával manipulálja, amelyek a bemeneti jellemzők egymáshoz és az objektum osztályához való viszonyára vonatkozó feltételezések. A hálózat betanításával a súlyok értékeit módosítják, és remélhetőleg olyan súlyokhoz fognak konvergálni, amelyek pontosan rögzítik a jellemzők közötti kapcsolatokat.

Így működik egy előrecsatolt neurális hálózat, és a CNN-ek két feléből állnak: egy előrecsatolt neurális hálózatból és egy konvolúciós rétegek csoportjából.

Mik azok a konvolúciós neurális hálózatok (CNN-ek)?

Mik azok a „konvolúciók”, amelyek egy konvolúciós neurális hálózatban történnek? A konvolúció egy matematikai művelet, amely súlykészletet hoz létre, lényegében a kép egyes részeinek reprezentációját hozva létre. Ezt a súlykészletet ún kernel vagy szűrő. A létrehozott szűrő kisebb, mint a teljes bemeneti kép, és csak a kép egy részét fedi le. A szűrőben lévő értékek megszorozódnak a képen látható értékekkel. Ezután a szűrőt áthelyezik, hogy a kép egy új részét reprezentálják, és a folyamatot addig ismételjük, amíg a teljes képet be nem fedi.

Egy másik módja ennek az, hogy képzeljünk el egy téglafalat, ahol a téglák a bemeneti kép képpontjait képviselik. Egy „ablakot” oda-vissza csúsztatnak a fal mentén, ami a szűrő. Az ablakon keresztül látható téglák azok a pixelek, amelyek értéke megszorozva a szűrőn belüli értékekkel. Emiatt a súlyok szűrővel történő létrehozásának ezt a módszerét gyakran „csúsztatható ablakok” technikának nevezik.

A teljes bemeneti kép körül mozgatott szűrők kimenete egy kétdimenziós tömb, amely a teljes képet reprezentálja. Ezt a tömböt a „funkciótérkép”.

Miért elengedhetetlenek a konvolúciók?

Amúgy mi a célja a konvolúciók létrehozásának? Konvolúciókra azért van szükség, mert egy neurális hálózatnak képesnek kell lennie a kép pixeleinek számértékként értelmezésére. A konvolúciós rétegek feladata, hogy a képet számértékekké alakítsák, amelyeket a neurális hálózat értelmezni tud, majd releváns mintákat kinyerni belőle. A konvolúciós hálózat szűrőinek feladata egy kétdimenziós értéktömb létrehozása, amely átvihető a neurális hálózat későbbi rétegeibe, azokba, amelyek megtanulják a képen látható mintákat.

Szűrők és csatornák

Fotó: cecebur a Wikimedia Commonsból, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

A CNN-k nem csak egy szűrőt használnak a minták megtanulására a bemeneti képekből. Több szűrőt használnak, mivel a különböző szűrők által létrehozott különböző tömbök a bemeneti kép összetettebb, gazdagabb megjelenítéséhez vezetnek. A CNN-ek szűrőinek általános száma 32, 64, 128 és 512. Minél több szűrő van, annál több lehetősége van a CNN-nek megvizsgálni a bemeneti adatokat, és tanulni belőlük.

A CNN elemzi a pixelértékek különbségeit, hogy meghatározza az objektumok határait. Szürkeárnyalatos képen a CNN csak a fekete-fehér, a világostól a sötétig terjedő különbségeket vizsgálná. Ha a képek színesek, akkor a CNN nem csak a sötétet és a világosságot veszi figyelembe, hanem a három különböző színcsatornát – pirosat, zöldet és kéket – is figyelembe kell vennie. Ebben az esetben a szűrők 3 csatornával rendelkeznek, akárcsak maga a kép. A szűrő csatornáinak számát mélységnek nevezzük, és a szűrőben lévő csatornák számának meg kell egyeznie a képen lévő csatornák számával.

Konvolúciós Neurális Hálózat (CNN) Építészet

Vessünk egy pillantást a teljes architektúrára konvolúciós neurális hálózat. Minden konvolúciós hálózat elején található egy konvolúciós réteg, mivel a képadatokat numerikus tömbökké kell átalakítani. A konvolúciós rétegek azonban következhetnek más konvolúciós rétegek után is, ami azt jelenti, hogy ezek a rétegek egymásra rakhatók. A több konvolúciós réteg azt jelenti, hogy az egyik réteg kimenetei további konvolúciókon eshetnek át, és megfelelő mintákba csoportosíthatók. Ez gyakorlatilag azt jelenti, hogy ahogy a képadatok a konvolúciós rétegeken haladnak keresztül, a hálózat elkezdi „felismerni” a kép összetettebb jellemzőit.

A ConvNet korai rétegei felelősek az alacsony szintű jellemzők, például az egyszerű vonalakat alkotó képpontok kinyeréséért. A ConvNet későbbi rétegei ezeket a vonalakat alakzatokká egyesítik. Ez a felületi szintű elemzésről a mélyszintű elemzésre való átállás folyamata mindaddig folytatódik, amíg a ConvNet fel nem ismeri az olyan összetett formákat, mint az állatok, az emberi arcok és az autók.

Miután az adatok áthaladtak az összes konvolúciós rétegen, továbbhaladnak a CNN sűrűn összefüggő részébe. A sűrűn összekapcsolt rétegek úgy néznek ki, mint egy hagyományos előrecsatolt neurális hálózat, csomópontok sorozata, amelyek egymáshoz kapcsolódó rétegekbe vannak rendezve. Az adatok ezeken a sűrűn összefüggő rétegeken haladnak keresztül, amelyek megtanulják a konvolúciós rétegek által kinyert mintákat, és ezáltal a hálózat képessé válik az objektumok felismerésére.

Blogger és programozó szakterületekkel Gépi tanulás és a Deep Learning témákat. Daniel abban reménykedik, hogy segíthet másoknak az AI erejét társadalmi javára használni.