Kapszula neurális hálózatok - beágyazott idegrétegek



Kapszulahálózatok - Ez a blog a konvolúciós neurális hálózatok korlátairól és arról szól, hogyan oldja meg a kapszula neurális hálózata ezeket a korlátozásokat.

Kapszulahálózatok:

Mi az a kapszulahálózat? Alapvetően egymásba ágyazott idegrétegek hálózata.

Azt javaslom, hogy nézze át az alábbi blogokat is:





Feltételezem, hogy ti ismeritek a Convolutional Neural Networks-t (CNN). Itt egy kis bevezetőt tartok ugyanerről, hogy megvitathassam a CNN-ek korlátait.

Az alábbi videót a konvolúciós neurális hálózaton is megtekintheti.



Konvolúciós neurális hálózatok (CNN)

A konvolúciós ideghálózatok alapvetően mesterséges neuronok különböző rétegeiből állnak, amelyeket számítógépes látáshoz használnak. Az alábbiakban megemlítettem ezeket a rétegeket:

Konvolúciós neurális hálózat - kapszula neurális hálózat - Edureka

Konvolúciós réteg: Amikor a Feedforward Neural Networks-t (többrétegű Perceptron) használjuk a képek osztályozásához, sok kihívás van vele. A legnagyobb frusztráló kihívás az, hogy rengeteg paramétert vezet be, fontolja meg a CNN-n található oktatóvideót.



Ennek a kihívásnak a leküzdésére Konvolúciós réteg vezették be. feltételezzük, hogy azok a pixelek, amelyek térben közelebb vannak egymáshoz, sokkal jobban „együttműködnek” az érdeklődésre számot tartó sajátos jellemző kialakításában, mint a kép ellentétes sarkaiban lévő pixelek. Továbbá, ha egy adott (kisebb) tulajdonságnak kiderül, hogy nagy jelentősége van a kép címkéjének meghatározásakor, akkor ugyanolyan fontos lesz, ha ez a funkció a képen belül bárhol megtalálható volt, helytől függetlenül.

ReLU réteg: A Rectified Linear Unit (ReLU) transzformációs funkció csak akkor aktivál egy csomópontot, ha a bemenet egy bizonyos mennyiség felett van, míg a bemenet nulla alatt van, a kimenet nulla, de amikor a bemenet egy bizonyos küszöbérték fölé emelkedik, akkor lineáris kapcsolatban áll a függő változó.

  • Ebben a rétegben minden negatív értéket eltávolítunk a szűrt képekről, és nullára cseréljük
  • Ez azért történik, hogy elkerüljük az értékek nullára való összegzését

Pooling réteg: Ezt használják az almintavétel elvégzésére, amely a kép kicsi és (általában) el nem választott darabjait emészti fel, és egyetlen értékre összesíti azokat. Az összesítésre többféle séma létezik - a legnépszerűbb Max-Pooling , ahol az egyes darabokon belül megkapjuk a maximális pixelértéket. Invariánssá teszi a hálózatot a bemeneti kép kis átalakulásaival, torzulásaival és fordításaival szemben (a bemenet kis torzulása nem változtatja meg a Pooling kimenetét - mivel a maximális / átlagos értéket vesszük egy helyi környéken).

Teljesen összekapcsolt réteg: Ez a réteg kiszámítja az osztály pontszámait, ahol minden szám egy osztály pontszámának felel meg. Mint a szokásos ideghálózatoknál, és ahogy a neve is mutatja, ebben a rétegben minden idegsejt össze fog kapcsolódni az előző kötet összes idegsejtjével. Dióhéjban végzi el a végső besorolást.

Ily módon a ConvNets az eredeti képet rétegenként átalakítja az eredeti pixelértékekből a végső osztályozási pontszámokba.

Ez nagyon rövid bevezetés volt a konvolúciós neurális hálózatokhoz, továbbra is azt ajánlom, hogy nézze meg a CNN videót, amelyet beágyaztam ebbe a bejegyzésbe.

Ebben a Capsule Networks blogban most a konvolúciós neurális hálózatok néhány korlátozását fogom megvitatni

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

Nos, hadd magyarázzam el ezt egy hasonlattal.

Tegyük fel, hogy van olyan ember, akinek a szeme felismeri a különféle képek jellemzőit. Tekintsük példának az ember arcát. Tehát ez a szerencsétlen fickó képes azonosítani a különféle jellemzőket, mint például a szem, az orr stb., De nem képes azonosítani a jellemzők közötti térbeli viszonyokat (perspektíva, méret, orientáció). Például a következő kép megtévesztheti azt a fickót, amikor az emberi arc jó vázlata közé sorolja.

Ez a probléma a konvolúciós neurális hálózatokkal is. A CNN jól érzékeli a funkciókat, de tévesen aktiválja az idegsejtet az arcfelismeréshez. Ez azért van, mert kevésbé hatékony a tulajdonságok közötti térbeli viszonyok feltárásában.

Egy egyszerű CNN modell képes megfelelően kinyerni az orr, a szem és a száj tulajdonságait, de tévesen aktiválja az idegsejtet az arcfelismeréshez. Anélkül, hogy észrevennénk a térbeli tájolás és méret eltéréseit, az arcfelismerés aktiválása túl magas lesz.

Nos, ez a korlátozás a Max Pooling réteg miatt van.

A CNN maximális összevonása kezeli a transzlációs varianciákat. Még egy funkció is kissé elmozdul, ha még mindig benne van a pooling ablakban, akkor is észlelhető. Mindazonáltal ez a megközelítés csak a max tulajdonságot tartja fenn (a leginkább domináns), és eldobja a többieket.

Tehát a fent látható arckép normál arcnak minősül. A pooling réteg szintén hozzáadja ezt a fajta változatlanságot.

A gyűjtőrétegnek soha nem ez volt a célja. Amit a poololásnak meg kellett tennie, az a pozíciós, orientációs, arányos invarianciák bevezetése.

A valóságban ez a pooling réteg mindenféle helyzetbeli változatlanságot ad hozzá. Amint a fenti ábrán is látható, az dilemma vezet az arc helyes észleléséhez.

Lássuk, mi a javasolt megoldás Geoffrey Hinton .

Hogyan lehet megoldani ezt a problémát?

Most azt képzeljük, hogy minden idegsejt tartalmazza a tulajdonságok valószínűségét és tulajdonságait. Például egy [valószínűség, orientáció, méret] tartalmú vektort ad ki. Ezzel a térinformációval észlelhetjük az orr, a szem és a fül jellemzőinek orientációjában és méretében rejlő következetlenséget, és ennélfogva sokkal alacsonyabb aktiválást eredményezünk az arcfelismeréshez.

Által kiadott lapban Geoffrey Hinton , az ilyen típusú idegsejteket kapszuláknak nevezzük. Ezek a kapszulák egyetlen skálaérték helyett vektorot bocsátanak ki.

Hadd világítsak meg néhányat a Capsule Networksről.

Mik azok a kapszulahálózatok?

A kapszula alapvetően beágyazott idegrétegek összessége. A kapszula belsejében található idegsejtek állapota megragadja a képen belüli egy entitás különböző tulajdonságait, mint például a póz (helyzet, méret, orientáció), deformáció, sebesség, textúra stb.

Ahelyett, hogy egy tulajdonságot egy adott variánssal rögzítenék, egy kapszulát arra oktatnak, hogy rögzítse a jellemző és annak variánsának valószerűségét. Tehát a kapszula célja nemcsak egy funkció észlelése, hanem a modell megtanítása a változat megtanulására.

Olyan, hogy ugyanaz a kapszula azonos irányú objektumosztályt képes felismerni (például az óramutató járásával megegyező irányban forog):

Mondhatjuk, hogy az egyenértékűségen működik, nem pedig az invariancián.

Invarancia: a jellemzők észlelése a változatoktól függetlenül. Például egy orrdetektáló idegsejt az orrát az irányától függetlenül detektálja.

Egyenértékűség: az egymással átalakulni képes objektumok felismerése (például különböző irányú arcok észlelése). Intuitív módon a kapszulahálózat észleli, hogy az arcot jobbra 31 ° -kal elforgatják (ekvivalencia), ahelyett, hogy rájönne, hogy az arc illeszkedik a 31 ° -kal elforgatott változathoz. Arra kényszerítve a modellt, hogy megtanulja a tulajdonságváltozatot egy kapszulában, hatékonyabban extrapolálhatjuk a lehetséges variánsokat kevesebb edzési adattal. Ezenkívül hatékonyabban utasíthatjuk el az ellenfeleket.

konvertálni kettősről int-re

A kapszula egy vektort bocsát ki az entitás létezésének ábrázolására. A vektor orientációja az entitás tulajdonságait képviseli.

A vektort az összes lehetséges szülőnek megküldi az ideghálózatban. Minden lehetséges szülő számára egy kapszula megtalálhat egy predikciós vektort. Az előrejelzési vektort a saját súlyának és a súlymátrixnak a szorzata alapján számítják ki. Amelyik szülő rendelkezik a legnagyobb skaláris predikciós vektor szorzattal, növeli a kapszulakötést. A szülők többi része csökkenti a köteléküket. Ezt hívják Útvezetés megállapodás alapján .

Ez mindenképpen jobb megközelítés, mint a max pooling, amelyben az útválasztás az alsó rétegben észlelt legerősebb tulajdonságon alapszik.

Ezután van egy összecsapás funkció, amely hozzáadódik. Ez a nem-linearitás bevezetésére szolgál. Ezt az összecsapási funkciót az egyes kapszulák vektor kimenetére alkalmazzák.

Hadd mondjam el most, hogyan működik a Capsule Networks.

Hogyan működnek a kapszulahálózatok?

Tegyünk egy lépést hátra. Teljesen összekapcsolt hálózatban az egyes neuronok kimenete a bemenetek súlyozott összege.

Most nézzük meg, mi történik a Capsule Networks szolgáltatásban.

Kapszula neurális hálózata:

Vegyünk egy kapszula ideghálózatot, ahol ‘uén„A kapszula aktivitásvektora”én'alatti rétegben.

1. lépés: Alkalmazzon transzformációs mátrixotBAN BENija kapszula kimenetéhez uén az előző réteg. Például m × k mátrixszal átalakítunk egy k-D-tuén m-D-reu ^j | i. ((m × k) × (k × 1) = m × 1).

Ez az előrejelzés ( szavazás ) a fenti „j” kapszula kimenetén lévő „i” kapszulától. ’Vj„A kapszula aktivitásvektora”j ’a fenti rétegben

2. lépés: Számítson ki egy súlyozott összegetjsúlyokkalcij.cija kapcsolási együtthatók. Ezen együtthatók összege egyenlő eggyel. Ez a tényleges paraméter, amely a kapszulacsoport viszonyán működik, amiről korábban beszéltünk.

3. lépés: A konvolúciós neurális hálózatokban a ReLU függvényt használtuk. Itt squashing függvényt alkalmazunk a vektor 0 és egységhossz közötti skálázására. A kis vektorokat nullára, a hosszúakat pedig az egység vektorokra zsugorítja. Ezért az egyes kapszulák valószínűsége nulla és egy között van.

Ez az előrejelzés ( szavazás ) a fenti „j” kapszula kimenetén lévő „i” kapszulától. Ha az aktivitásvektor szoros hasonlóságot mutat a predikciós vektorral, arra a következtetésre jutunk, hogy a kapszulaén'szorosan kapcsolódik a kapszuláhozj ’. (Például az orrkapszula nagyon rokon az arckapszulával.) Ilyen hasonlóságot a predikció és az aktivitás vektor skaláris szorzatával mérünk. Ezért a hasonlóság mind a valószerűséget, mind a tulajdonság tulajdonságait figyelembe veszi. (ahelyett, hogy csak a neuronokban való valószerűség lenne).

4. lépés: Számítsa ki a relevancia pontszámot ’bij’. Ez lesz az aktivitásvektor és a predikciós vektor pontterméke. A kapcsolási együtthatókcénja softmax értékebénj:

C kapcsolási együtthatóija b softmax-jaként van kiszámítvaij.

Ez a bijtöbbször ismétlődik iteratív módon.

Ezt hívják Útvezetés megállapodás alapján .

Az alábbi ábra egy példa:

A Capsule Networks blog után elkészül egy blog a Capsule Neural Network megvalósításáról a TensorFlow segítségével.

Remélem, hogy élvezettel olvasta ezt a blogot a kapszulahálózatokon, nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Az Edureka mély tanulás a TensorFlow tanúsítással tanfolyam segít a tanulóknak abban, hogy szakértőkké váljanak az alap- és konvolúciós neurális hálózatok képzésében és optimalizálásában valós idejű projektek és feladatok felhasználásával, olyan koncepciókkal együtt, mint a SoftMax funkció, az Auto-encoder Neural Networks, a Restricted Boltzmann Machine (RBM).

Van egy kérdésünk? Kérjük, említse meg a megjegyzések részben, és mi kapcsolatba lépünk Önnel.