rövid útmutató a konvolúciós neurális hálózathoz (CNN)

bevezetés:

Manan Parekh
Manan Parekh

követés

Jul 16, 2019 * 5 perc olvasás

konvolúciós neurális hálózat (CNN vagy ConvNet) egy osztálya mély neurális hálózatok amelyet leginkább erre használnak képfelismerés, képosztályozás, objektumérzékelésstb.

a számítógépes látás fejlődése a mély tanulással idővel felépült és tökéletesedett, elsősorban egy adott algoritmus — egy konvolúciós neurális hálózat-révén.

a Google fotókereséshez, a Facebook az automatikus címkézési algoritmusokhoz, az Amazon a termékjavaslatokhoz használja, és a lista tovább folytatódik…

a CNN segítségével sok jó dolgot tehetsz, például egy kézzel írt számjegyfelismerési modellt készítettem, amely a képen lévő számjegyet 98-mal jósolja.82% – os pontosság.

bónusz:

kód -> https://github.com/UPPERCASEGUY/CNN-implementation

azt is, hogy a hűvös modellek kevés segítséget fogalmak tekintetében CNN. Ez a blog elkezdi építeni a CNNs-ről szóló koncepcióit,és jó vagy!

konvolúciós neurális hálózatok:

a Képosztályozás feladata egy bemeneti kép készítése és egy osztály vagy az osztályok valószínűségének kimenete, amely a legjobban leírja a képet. A CNN-ben egy képet inputként veszünk fel, fontosságot tulajdonítunk a kép különböző aspektusainak/jellemzőinek, és képesek vagyunk megkülönböztetni egymástól. A CNN-ben szükséges előfeldolgozás sokkal kisebb, mint más osztályozási algoritmusok.

klasszikus CNN osztályozás kutya és macska között

építészet:

a kép mátrix ábrázolása.

számítógépek nem látja a dolgokat, mint mi, a számítógépek kép nem más, mint egy mátrix.

a CNN-nek általában három rétege van: konvolúciós réteg, pooling réteg és teljesen összekapcsolt réteg.

különböző rétegek a CNN-ben

konvolúciós réteg:

biztos vagyok benne, hogy már találkoztál a konvolúció szóval az életedben, és itt a jelentése nem változik. Igen! igazad van, ez a réteg arról szól, convolving tárgyak egymásra. A konvolúciós réteg a CNN központi építőeleme. A hálózat számítási terhelésének fő részét hordozza.

a konvolúció fő célja olyan jellemzők kinyerése, mint az élek, színek, sarkok a bemenetből. Ahogy mélyebbre megyünk a hálózaton belül,a hálózat elkezdi azonosítani a bonyolultabb jellemzőket, például alakzatokat, számjegyeket, arcrészeket is.

5x5x1 kép Konvolúciója 3x3x1 kernellel, hogy 3x3x1 konvolúciós funkciót kapjon

ez a réteg pontterméket hajt végre két mátrix között, ahol az egyik mátrix(más néven szűrő/kernel)a megtanulható paraméterek halmaza, a másik mátrix pedig a kép korlátozott része.

ha a kép RGB, akkor a szűrő magassága és szélessége kisebb lesz a képhez képest, de mélysége(magasság x szélesség x 3) megegyezik a képével.

RGB képek esetén a konvolváló rész a következőképpen jeleníthető meg:

konvolúciós művelet egy MxNx3 képmátrixon, 3x3x3 kernellel

a konvolúciós folyamat végén van egy kiemelt mátrixunk, amelynek kisebb paraméterei(méretei) vannak, mint a tényleges képnek, valamint világosabb jellemzői vannak, mint a tényleges. Tehát mostantól a kiemelt mátrixunkkal fogunk dolgozni.

Egyesítő Réteg:

ez a réteg kizárólag az adatok feldolgozásához szükséges számítási teljesítmény csökkentésére szolgál. Ez úgy történik, hogy a kiemelt mátrix méreteit még jobban csökkenti. Ebben a rétegben megpróbáljuk kivonni a domináns jellemzőket egy korlátozott mennyiségű szomszédságból. Tegyük ezt világossá egy példával.

pooling layer

a narancssárga mátrix a kiemelt mátrixunk, a barna egy pooling kernel, és a kék mátrixunkat kapjuk kimenetként az pooling elvégzése után. Tehát itt azt csináljuk, hogy a maximumot vesszük az összes szám közül, amelyek az összevonási régióban vannak, és minden alkalommal áthelyezzük az összevonási régiót, hogy feldolgozzuk a Mátrix egy másik szomszédságát.

kétféle pooling technika létezik: átlagos pooling és MAX-pooling.

a kettő közötti különbség az, hogy az átlag-poolingban a pooling régió összes értékének átlagát vesszük, a MAX-poolingban pedig csak a maximumot vesszük a pooling régióban található összes érték közül.

tehát a réteg összevonása után van egy mátrixunk, amely a kép főbb jellemzőit tartalmazza, és ennek a mátrixnak még kisebb méretei vannak, ami sokat segít a következő lépésben.

teljesen csatlakoztatott réteg:

eddig nem tettünk semmit a különböző képek osztályozásával kapcsolatban, amit tettünk, kiemeltünk néhány funkciót a képen, és drasztikusan csökkenti a kép méreteit.

teljesen összekapcsolt réteg a CNN belsejében

innentől kezdve valójában elvégezzük az osztályozási folyamatot.

most, hogy a bemeneti képet megfelelő formává alakítottuk át a többszintű, teljesen összekapcsolt architektúránkhoz, a képet egy oszlopvektorba simítjuk. A lapított kimenetet egy előremenő neurális hálózatba táplálják, és a képzés minden iterációjára alkalmazzák a backpropagációt. Több korszakon keresztül a modell képes megkülönböztetni a domináns és bizonyos alacsony szintű jellemzőket a képeken, és osztályozni őket.

összefoglaló:

  1. adja meg a bemeneti képet a konvolúciós rétegbe.
  2. vegye konvolúció kiemelt kernel/szűrők.
  3. pooling réteg alkalmazása a méretek csökkentése érdekében.
  4. adja hozzá ezeket a rétegeket többször.
  5. simítsa el a kimenetet és táplálja be egy teljesen összekapcsolt rétegbe.
  6. most képezze ki a modellt backpropagation segítségével logisztikai regresszió.

és létrehoztad a konvolúciós neurális hálózatodat.

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

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